我有一个文本文件,其中包含带有形态分割的单词列表:
例如:
目标瞄准:目标_V s:+ PL,目标:目标_V s:+ 3SG
航空公司空运:air_N line:line_N
闹钟的闹钟:闹钟_N' s:+ GEN
炼金术士炼金术:alchemy_N ist:ist_s s:+ PL
我想在Python中的2D数组中对此文本文件进行转换,其中第一维是单词,第二维是表示单词形态分割的字符串
例如“航空公司”这个词。形态分割应该是BMEBMME,其中:
我们还有代表单字符变形的S,例如对于'目标'我们将BMES作为其形态分割。
这些单词已经被划分为一行右侧的变形。
我真的很感谢你的帮助:)。
答案 0 :(得分:0)
试试这个:
file = 'myfile'
fh = open(file)
segArr = []
for line in fh:
list = line.split()
output = '('+list[0]+','
for word in list[1:]:
fragments = word.split(':')
fragment = fragments[0]
if len(fragment) == 1:
output += 'S'
else:
output += 'B'+'M'*(len(fragment)-2)+'E'
segArr.append(output+')')
print (segArr)
使用上面的示例给出:
['(aims,BMESBMES)', '(airline,BMEBMME)', "(alarm's,BMMMEBE)", '(alchemists,BMMMMEBMES)']
我怀疑警报中对撇号的处理是否正确,但这是一个开始!