получение одинаковых значений tfidf для разных слов - PullRequest
0 голосов
/ 03 июля 2018

Итак, я делаю проект по анализу настроений в твиттере, в котором мне, возможно, нужно использовать TFIDF в собранных твитах. Поэтому я преобразовал список твитов в одну строку и передал их объекту, проблема в том, что я получаю идентичные значения для большинства слов с некоторыми другими значениями, но они также очень часты. Почему это происходит ? Это потому, что я использую одну строку в качестве ввода?

вот код https://trinket.io/python/9c2daed912

Вот скриншот, так как многие из них имеют одинаковые значения TFIDF

1 Ответ

0 голосов
/ 12 июля 2018

Частота может быть одинаковым числом для разных слов в зависимости от того, сколько раз оно встречается. Мой код для проекта Гутенберга приводит к следующему.

from sklearn.feature_extraction.text import TfidfVectorizer
tfvect = TfidfVectorizer(stop_words='english')
### The corpus is from Project Gutenberg after all the text cleanup.
karlmarx_freq = tfvect.fit_transform(gutenberg_KarlMarx_Corpus)

tftermFreq = pd.DataFrame(karlmarx_freq.toarray(),columns=tfvect.get_feature_names())
tfsumdf = tftermFreq.sum(axis=0)
pd.DataFrame({'Vocab': tfsumdf.index, 'Frequency': tfsumdf.values}).sort_values(by='Frequency', ascending=False)

Результаты:

1412 производство 0.177513

345 условий 0.174032

1151, современный 0,142706

1704, социальный 0,128784

1000 труда 0,128784

641 существование 0.111381

1705 социализм 0.104419

1117 означает 0,100939

923 промышленность 0.100939

Подробнее о том, как производится этот расчет, см. Документацию scikit-learn .

Tf-Idf = Термин частота * Обратная частота документа

...