T-тест Scipy для измерения разницы между использованием лексики в двух документах - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть следующие два документа указанной длины.

 df_1.head()
                                             text  cat     word_count
 0  [india, education, commission, report, ma...     1         143615
 1  [national, education, policy, 2017, by, min...   2          30601

Я использую лексикон два измерения отрицательных слов в обоих документах, и я получаю следующий результат в столбце neg_scores.(1000 означает количество слов в каждой из 1000 слов)

def scores(text, lexicon):

count = sum([text.count(word) for word in lexicon])
score = count/len(text)*1000
print (text, score)
return score

df_1["neg_score"]=df_1.text.apply(lambda x: scores(x,neg_score))

df_1.head()
                                           text   cat  word_count neg_scores
 0  [india, education, commission, report, ma...    1     143615       0.065
 1  [national, education, policy, 2017, by, min...  2      30601       0.989

Однако я хочу вычислить scipy t-test, чтобы увидеть среднюю разницу между обоими документами.Проблема в том, что у меня есть только два вида наблюдений, хотя количество слов выше этого.Можно ли как-нибудь рассчитать t-критерий Сципи, считая слова своим образцом?В настоящее время я использую следующие коды и получаю эти результаты.

from scipy.stats import ttest_ind
ttest_ind(df_1[df_1.cat==2].neg_scores, 
   df_1[df_1.cat==1].neg_scores)

Ttest_indResult (статистика = nan, pvalue = nan)

С функцией Scipy's scipy.stats.ttest_ind_from_stats IМожно рассчитать, когда я знаю размер выборки, среднее значение и дисперсию обоих документов.Но как мне рассчитать это с помощью лексикона?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...