Как разбить каждое предложение на отдельные слова в ряду данных и усреднить полярность для каждого слова в предложении? - PullRequest
0 голосов
/ 28 августа 2018

У меня есть df, который выглядит так:

       text
0   Thanks, I’ll have a read!
1   Am I too late

Как применить токенизацию TextBlob к каждому слову в предложении и усреднить значения полярности каждого слова в каждом предложении?

например, я могу сделать это с помощью одного предложения в переменной:

from textblob import TextBlob
import import statistics as s

#tokenize word in sentence
a = TextBlob("""Thanks, I'll have a read!""")
print a.words

    WordList(['Thanks', 'I', "'ll", 'have', 'a', 'read'])

#get polarity of every word
    for i in a.words:
        print( a.sentiment.polarity)

    0.25
    0.25
    0.25
    0.25
    0.25
    0.25


#calculating the mean of the scores
c=[]
for i in a.words: 
    c.append(a.sentiment.polarity)
    d = s.mean(c)
    print (d)

0.25

Как применить a.words к каждой строке столбца данных для предложения?

Новый df:

      text                        score
0   Thanks, I’ll have a read!      0.25
1   Am I too late                  0.24

Я пришел к выводу, что я могу получить полярность каждого предложения, используя эту функцию на фрейме данных:

def sentiment_calc(text):
    try:
        return TextBlob(text).sentiment.polarity
    except:
        return None

df_sentences['sentiment'] = df_sentences['text'].apply(sentiment_calc)

Заранее спасибо.

...