使用Vader的情感分析-AttributeError:“ float”对象没有属性“ encode”

时间:2019-05-17 12:17:32

标签: python python-3.x vader

import numpy as np
import pandas as pd
df=pd.read_excel('Finning2.xlsx',encoding='utf-8')
import nltk
nltk.download('vader_lexicon')
from nltk.sentiment.vader import SentimentIntensityAnalyzer
sid = SentimentIntensityAnalyzer()

 review = df['review']
 review = str(review).encode('utf-8')

 df['scores'] = df['review'].apply(lambda review:sid.polarity_scores(review))

4 个答案:

答案 0 :(得分:1)

我们需要在应用极性_得分功能之前将评论列转换为字符串

    df['score'] = df['review'].apply(lambda review:sid.polarity_scores(str(review)))

答案 1 :(得分:0)

我模拟了一个示例(如下所示),但是无法复制您看到的行为。您能否向我们展示数据框的形成方式或数据“查看”列的样例?

dict = {"population": [200.4, 143.5, 1252, 1357, 52.98]}

import pandas as pd
df = pd.DataFrame(dict)

pop = str(df['population']).encode("utf-8")
print(pop)

这是输出:

b'0     8.516\n1    17.100\n2     3.286\n3     9.597\n4     1.221\nName: area, dtype: float64'

答案 2 :(得分:0)

试试这个(对我有用):

    import numpy as np
    import pandas as pd
    df=pd.read_excel('Finning2.xlsx').astype(str)
    import nltk
    nltk.download('vader_lexicon')
    from nltk.sentiment.vader import SentimentIntensityAnalyzer
    sid = SentimentIntensityAnalyzer()

    review = df['review']
    review = str(review).encode('utf-8')

    df['scores'] = df['review'].apply(lambda review:sid.polarity_scores(review))

答案 3 :(得分:-1)

谢谢,但仍然无法正常工作。这是一个例子。

评论 不,不是真的。 不要打电话给我 他们应该使它更容易 不,不是。我总是觉得他们很有帮助。