【发布时间】:2015-08-05 21:41:12
【问题描述】:
(我正在尝试更新 hunspell 拼写词典) 我的同义词文件看起来像这样......
mylist="""
specimen|3
sample
prototype
example
sample|3
prototype
example
specimen
prototype|3
example
specimen
sample
example|3
specimen
sample
prototype
protoype|1
illustration
"""
第一步是合并重复的单词。在上面提到的示例中,重复了“原型”一词。所以我需要把它放在一起。由于添加了“插图”同义词,计数将从 3 变为 4。
specimen|3
sample
prototype
example
sample|3
prototype
example
specimen
prototype|4
example
specimen
sample
illustration
example|3
specimen
sample
prototype
第二步比较复杂。合并重复项是不够的。添加的单词也应该反映到链接的单词中。在这种情况下,我需要在同义词列表中搜索“原型”,如果找到,应该添加“插图”一词。 最终的单词列表将如下所示...
specimen|4
sample
prototype
example
illustration
sample|4
prototype
example
specimen
illustration
prototype|4
example
specimen
sample
illustration
example|4
specimen
sample
prototype
illustration
一个新词“illustration”应该添加到原始列表中,其中包含所有 4 个链接词。
illustration|4
example
specimen
sample
prototype
我尝试过的:
myfile=StringIO.StringIO(mylist)
for lineno, i in enumerate(myfile):
if i:
try:
if int(i.split("|")[1]) > 0:
print lineno, i.split("|")[0], int(i.split("|")[1])
except:
pass
上面的代码返回带有行号和计数的单词。
1 specimen 3
5 sample 3
9 prototype 3
13 example 3
17 protoype 1
这意味着我需要将第 18 行上的 1 个单词与第 4 行第 9 行(“原型”)上找到的单词合并。 如果我能做到这一点,我将完成任务的第 1 步。
【问题讨论】:
标签: python