Перечислите все слова в корпусе, которые отвергают нулевую гипотезу с помощью критерия хи-квадрат - PullRequest
0 голосов
/ 05 марта 2019

У меня есть скрипт, который перечисляет лучшие n слов (слова с более высоким значением хи-квадрат).Однако вместо извлечения фиксированного числа слов n я хочу извлечь все слова, для которых значение p меньше 0,05, то есть отвергает нулевую гипотезу.

Вот мой код:

from sklearn.feature_selection import chi2

#vectorize top 100000 words
tfidf = TfidfVectorizer(max_features=100000,ngram_range=(1, 3))
X_tfidf = tfidf.fit_transform(df.review_text)
y = df.label
chi2score = chi2(X_tfidf, y)[0]
scores = list(zip(tfidf.get_feature_names(), chi2score))
chi2 = sorted(scores, key=lambda x:x[1])
allchi2 = list(zip(*chi2))

#lists top 20 words
allchi2 = allchi2[0][-20:]

Итак, в данном случае вместо перечисления 20 лучших слов мне нужны все слова, которые отвергают нулевую гипотезу, т.е. все слова в обзорах, которые зависят от класса настроения (положительного или отрицательного)

1 Ответ

0 голосов
/ 05 марта 2019
from sklearn.feature_selection import chi2

#vectorize top 100000 words
tfidf = TfidfVectorizer(max_features=100000,ngram_range=(1, 3))
X_tfidf = tfidf.fit_transform(df.review_text)
y = df.label
chi2_score, pval_score = chi2(X_tfidf, y)
feature_pval_items = filter(lambda x:x[1]<0.05, zip(tfidf.get_feature_names(), pval_score))
you_want_feature_pval_items = sorted(feature_pval_items, key=lambda x:x[1])
...