在2D阵列中转换单词及其形态分割的列表



我有一个带有单词列表的文本文件,其形态分割:

例如:

AIMS AIM:AIM_V S: PL,AIM:AIM_V S: 3SG

航空公司空气:air_n线:line_n

警报的警报:alarm_n's: gen

炼金术士ALCHEM:alchemy_n ist:istrong s: pl

我想在python中的2D数组中trasform trasform,其中第一个维度是单词,第二个维度是代表单词形态分割的字符串

例如,对于"航空公司"一词,形态分割应为bmebmme,其中:

  • b是变体的开始
  • m是变体的中间特征
  • e是变体的末端

我们也有代表单个字符变体的S,例如,"目标"我们将BME作为其形态分割。

单词已经被分割成一条线的右侧的变形。

我真的很感谢您的帮助:)

尝试以下:

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)']

我怀疑警报中撇号的处理是否正确,但这是一个开始!

最新更新