У меня есть сценарий python, который читает текст и применяет функции предварительной обработки для выполнения анализа.
Проблема в том, что я хочу подсчитать частоту слов, но система cra sh и отображает ошибка ниже.
Файл "F: \ AIenv \ textAnalysis \ setup.py", строка 208, в файле tag_and_save file.write (word + "/" + tag + "(частота =" + str (freq_tagged_data) [word]) + ") \ n") TypeError: индексы кортежа должны быть целыми или кусочками, а не 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
, но теперь он отображает следующую ошибку:
File "F: \ AIenv \ textAnalysis \ setup.py", строка 217, в файле tag_and_save file.write (word + "/" + tag + "(частота =" + str (freq_tagged_data [word]) + ") \ n")
Ошибка типа: список
* 10 34 * индексы должны быть целыми числами или ломтиками, а не str
Как исправить эту ошибку и что мне делать?