【发布时间】:2020-03-12 06:12:05
【问题描述】:
我有一个 Python 脚本,它可以读取文本并应用预处理函数来进行分析。
问题是我想统计单词出现的频率但是系统崩溃并显示如下错误。
文件“F:\AIenv\textAnalysis\setup.py”,第 208 行,在 tag_and_save 中 file.write(word+"/"+tag+" (frequency="+str(freq_tagged_data[word])+")\n") TypeError: tuple 索引必须是整数或切片,而不是 str
我正在尝试计算频率,然后写信给text file。
def get_freq(tagged):
freqs = FreqDist(tagged)
for word, freq in freqs.items():
print(word, freq)
result = word,freq
return result
def tag_and_save(tagger,text,path):
clt = clean_text(text)
tagged_data = tagger.tag(clt)
freq_tagged_data = get_freq(tagged_data)
file = open(path,"w",encoding = "UTF8")
for word,tag in tagged_data:
file.write(word+"/"+tag+" (frequency="+str(freq_tagged_data[word])+")\n")
file.close()
我希望输出是这样的:
('*****/DTNN') 3
基于
的回答我将函数 get_freq() 更改为:
def get_freq(tagged):
freq_dist = {}
freqs = FreqDist(tagged)
freq_dist = [(word, freq) for word ,freq in freqs.items()]
return freq_dist
但现在它显示以下错误:
文件“F:\AIenv\textAnalysis\setup.py”,第 217 行,在 tag_and_save file.write(word+"/"+tag+" (frequency="+str(freq_tagged_data[word])+")\n")
类型错误:列表
索引必须是整数或切片,而不是 str
如何解决这个错误,我该怎么办?
【问题讨论】:
标签: python nlp nltk word-frequency