У меня есть следующие два документа указанной длины.
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Можно рассчитать, когда я знаю размер выборки, среднее значение и дисперсию обоих документов.Но как мне рассчитать это с помощью лексикона?
Спасибо.