代码之家  ›  专栏  ›  技术社区  ›  srboisvert

将空格放回包含不可靠空格信息的文本字符串中

  •  1
  • srboisvert  · 技术社区  · 17 年前

    我需要解析pdf中的一些文本,但是pdf格式会导致非常不可靠的间距。结果是我不得不忽略空格,并且有一个连续的非空格字符流。

    关于如何解析字符串并通过猜测将空格放回字符串中,有什么建议吗?

    我用的是ruby。或者我应该说我在沉思Ruby?

    .7aspe-5.5cts-715.1o0.6f-708.5f-0.4aces-721.4that-716.3are-720.0i-1.8mportant-716.3in-713.9soc-5.5i-1.8alcommunica6.6tion6.3.-711.6Althoug6.3h-708.1m-1.9od6.3els-709.3o6.4f-702.8f5.4ace-707.9proc6.6essing-708.2haveproposed-611.2ways-615.5to-614.7deal-613.2with-613.0these-613.9diff10.4erent-613.7tasks,-611.9it-617.1remainsunclear-448.0how-450.7these-443.2mechanisms-451.7might-446.7be-447.7implemented-447.2in-450.3visualOne-418.9model-418.8of-417.3human-416.4face-421.9processing-417.5proposes-422.7that-419.8informa-tion-584.5is-578.0processed-586.1in-583.1specialised-584.7modules-577.0(Breen-584.4et-582.9al.,-582.32002;Bruce-382.1and-384.0Y92.0oung,-380.21986;-379.2Haxby-379.9et-380.5al.,-

    如果我只打印字符串数据(我在每行末尾添加了返回值,以防止 弄乱了这里的布局:

    “区分人脸的面部特征和可改变的方面在人类中的表现” 沃尔夫森研究所EWBANK心理学系, 2003年12月23日,英国杜勒姆大学;2004年3月26日修订;接受2004年7月27日可用实验室 LeonLine 2004年10月14日,神经系统的面部感知必须代表不变 特定身份的场所的特征,以及便利身份的场所的可更改方面 社会交流。然而,关于面部的方式信息在大脑中仍然存在 相反,在这项研究中,我们使用了DFMRA适应(以下为降低NMR活性):

    数据是通过回调输出的,因此如果我在返回时打印每个字符串,它看起来如下所示:

    ”“是的

    -571.3

    -573.7

    底层

    惯性导航与制导

    -577.2

    -573.0

    13.7

    -574.9

    -572.1

    20.8

    埃森特

    -577.0

    这个

    不变的

    G

    -538.5

    羽毛

    16.5

    锿

    -529.5

    属于

    A.

    '

    检查时,看起来真空间是大负数<-300和假空格是更小的正数。谢谢各位。仅仅是到了我清楚地提出这个问题的地步,就帮助我回答了这个问题!

    3 回复  |  直到 14 年前
        1
  •  4
  •   Lazarus    17 年前

    如果PDF中的间距不可靠,它如何不可靠?PDF查看器需要能够可靠地分隔文本,这样数据就在某个地方,您只需要找到它。

    编辑以下评论:

    为什么不看看现有的解决方案,比如linux中的PS2ASCI,从Ruby中调用函数并获取结果呢。

        2
  •  2
  •   schnaader    17 年前

    PDF不仅将空格存储为空格字符,还使用布局命令来设置间距(因此它不会打印空格,而是将“画笔”向右移动)。也许你应该看一看 PDF reference (网站底部的大PDF),第9章“文本”应该是你想要的。

    编辑:在阅读了你对拉扎勒斯回答的评论后,这似乎不是你想要的。我认为你应该试着从某处获取一个单词列表,并尝试使用它分割文本。一个好的策略是使用递归实现,因为例如:

    “我的意思是你”

    第一个词可以是“我”或“卑鄙”,但如果你尝试“卑鄙”,那么“dyou”就没有意义了,所以它将是“我”,下一个词可能是“a”或“an”或“and”,只有“and”有意义。

        3
  •  0
  •   banjollity    17 年前