【发布时间】:2017-06-14 20:20:19
【问题描述】:
我有一个庞大的字符串列表,我正在遍历这些字符串以创建字典。我不知道每个字符串会是什么,因为它是从一个充满表格的文档中解析出来的。
有时字符串中会有多余的空格,或者单词中间有一个空格,而单词文档中没有。
有没有办法检测单词之间的多余空格,以及单词之间的多余空格。
示例
myString = 'I have N o other way to get here'
myString = detectedDoubleSpace_After_Have_AndSpace_In_Middle_Of_No(myString.replace(stuff))
我知道正则表达式、替换函数、strip、lstrip、rstrip。 但是,我不知道如何专门查找单词中间的双空格或空格。
编辑
显然这是一项艰巨的任务,因为检测什么是词和不是词是一个问题,我没有考虑过。
【问题讨论】:
-
没有简单的方法来检测
hel lo是一个词还是两个词。您可能应该搜索一些语料库并构建一个字典/一组有效词,然后假设您遇到的任何无效词实际上是一个单词被空格分成两个。 -
很难知道什么是有效词,除非你建立一个字典。例如,
to get her是 3 个单词的有效集合,或者是一个包含两个空格的单词 (together) 的无效集合...看到问题了吗? -
@Coldspeed 这将是一项巨大的工作,因为我正在从 Word 文档中解析这些列表。我希望可能有一种相当简单的方法来使用正则表达式。如果没有,我可以忍受。
-
我建议你修复你的解析,这样它就不会在不应该存在的单词之间放置空格
-
我在从 ocred PDF 进行文本挖掘时遇到了同样的问题。很多额外的空间。我所做的是提取所有 2-gram,然后如果两侧之一不在我的字典中(变形词列表)并且串联是,那么建议将它们进行人工审查。不过我没用英文写。如果你找到一个很好的屈折英语单词列表,我想我明天可以给你一个令人满意的解决方案
标签: python regex string replace