Мне нужно руководство по созданию программы с использованием TF-IDF - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть проект, над которым я работаю с использованием 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, но каждая попытка изменить или преобразовать его в строку не удалась.

...