после 2 предыдущих вопросов по-прежнему не удалось решить проблему. вопрос 1 вопрос 2
У меня есть сценарий python, который очищает текст, прежде чем он перейдет к части анализа текста.
, поэтому у меня есть некоторые функции, которые очищают текст и создают POS-теги для разделения текста и его токенизации. Мне нужно вернуть слово + теги + частоту существующих.
проблема в том, что функция принимает список кортежей и затем завершает работу системы cra sh и отобразите следующую ошибку:
Файл "F: \ AIenv \ textAnalysis \ setup.py", строка 221, в файле tag_and_save file.write ("{0} / {1} {2} \ n ".format (word, tag, freq_tagged_data [word]))
TypeError: индексы списка должны быть целыми числами или слайсами, а не 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 tag") номер частоты.