У меня есть 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)
Заранее спасибо.