在前面的两个问题之后,仍然没有解决问题question 1question 2
我有一个python脚本,可以在分析文本部分之前清除文本
因此,我有一些函数来清理文本并制作POS标记,以便拆分文本并标记它。 我需要返回单词+标签+现有频率。
问题在于,函数获取元组列表,然后在系统崩溃结束时显示以下错误:
File "F:\AIenv\textAnalysis\setup.py", line 221, in tag_and_save file.write("{0} /{1} {2} \n".format(word,tag,freq_tagged_data[word]))
TypeError: list indices must be integers or slices, not str
def get_freq(tagged):
freq_dist = {}
freqs = FreqDist(tagged)
freq_dist = [(word, freq) for word ,freq in freqs.items()]
# print(freq_dist)
return freq_dist
def tag_and_save(tagger,text,path):
clt = clean_text(text)
tagged_data = tagger.tag(clt)
print("tagged_data\n\n\n",tagged_data)## **here its a list of tuple [('','')]**
tagged_data = sorted(tagged_data,key=operator.itemgetter(1))
freq_tagged_data = get_freq(tagged_data)
file = open(path,"w",encoding = "UTF8")
for word,tag in tagged_data:
file.write("{0} /{1} {2} \n".format(word,tag,freq_tagged_data[word]))## the error is here
file.close()
预期产出: (“******/POS标签”)频率编号
改变
到
它可能会解决这个问题。当您将dict更改为该行中的列表时
在
tag_and_save
中尝试以下操作:相关问题 更多 >
编程相关推荐