У меня есть проект, над которым я работаю с использованием TF-IDF, и единственный ресурс, который мне дали, это inte rnet. После долгих поисков, чтения и просмотра видео на YouTube я создал эту программу, но она работает не совсем правильно. Это код Python, написанный с использованием IDE Spyder.
import pandas as pd
data = pd.read_csv (r'C:\Users\acsch\Downloads\airline-sentiment\Tweets.csv')
df1 = pd.DataFrame(data, columns= ['Comments'])
df1.Comments.str.split().tolist()
df2 = pd.DataFrame(df1.Comments.str.split().tolist(), columns="Comments Comments_code".split())
wordSet = set(df2)
wordDict = dict.fromkeys(wordSet, 0)
for word in df2:
wordDict[word]+=1
def computeTF(wordDict, df2):
tfDict = {}
wordCount = len(df2)
for word, count in wordDict.items():
tfDict[word] = count/float(wordCount)
return tfDict
tfBow = computeTF(wordDict, df2)
def computeIDF(doc):
import math
idfDict = {}
N = len(doc)
idfDict = dict.fromkeys(doc[0].keys(), 0)
for doc in df2:
for word, val in doc.itmes():
if val > 0:
idfDict[word]+=1
for word, val in idfDict.items():
idfDict[word] = math.log10(N / float(val))
return idfDict
idfs = computeIDF([wordDict])
def computeTFIDF(tfBow, idfs):
tfidf = {}
for word, val in tfBow.items():
tfidf[word] = val*idfs[word]
return tfidf
tfidfBow = computeTFIDF(tfBow, idfs)
pd.DataFrame(tfidfBow)
Цель данной программы: Вы будете использовать свою среду Python для получения структуры из неструктурированных данных. Вы будете использовать набор данных "Airline Sentiment" из открытых наборов данных Kaggle, расположенных по адресу https://www.kaggle.com/welkin10/airline-sentiment.
. Используя этот набор данных, вы создадите приложение для анализа текста Python, которое извлекает темы из каждого комментария, используя термин «частота - обратная частота документа» (TF – IDF) или просто количество слов. Для результата предоставьте файл Python и файл .csv с вашими результатами, добавленными в виде столбца к исходному набору данных.
Любую помощь и руководство, которые я получу, чтобы понять, что мне нужно сделать для улучшения моей программы очень ценится. У меня пока нет большого опыта в Python. Спасибо.
Сначала я получал сообщение об ошибке с моей командой split. Я провел некоторое исследование и исправил его, но теперь я получаю: AttributeError: Может использовать только аксессор .str со строковыми значениями !. Я предполагаю, что это как-то связано с типом данных файла csv, но каждая попытка изменить или преобразовать его в строку не удалась.