【问题标题】:'list' object has no attribute 'encode': sentiment analysis'list' 对象没有属性 'encode':情感分析
【发布时间】:2018-12-08 08:03:06
【问题描述】:

我想使用 Vader 对一些文本进行情感分析(但我在这里描述的问题也适用于任何词典,除了 Vader)。 但是,在完成所有数据处理后,包括标记化和转换为小写(我在这里没有提到),我收到以下错误:

知道如何处理文档以便词典可以阅读文本吗?谢谢。

AttributeError: 'list' 对象没有属性 'encode'

with open('data_1.txt') as g:
    data_1 = g.read()
with open('data_2.txt') as g:
    data_2 = g.read()
with open('data_3.txt') as g:
    data_3 = g.read()

df_1 = pd.DataFrame({"text":[data_1, data_2, data_3]})

df_1.head()
                                                 text
#0  [[bangladesh, education, commission, report, m...
#1  [[english, version, glis, ministry, of, educat...
#2  [[national, education, policy, 2010, ministry,...

from nltk.sentiment.vader import SentimentIntensityAnalyzer
vader = SentimentIntensityAnalyzer()

df_1['Vader_sentiment'] = df_1.text.apply(lambda x: vader.polarity_scores(x)['compound'])

AttributeError: 'list' 对象没有属性 'encode'

【问题讨论】:

    标签: python sentiment-analysis vader


    【解决方案1】:

    df_1.text 是一系列列表列表。您不能将 VADER 应用于任何列表,尤其是列表列表。将列表转换为字符串,然后应用 VADER:

    df_1['text_as_string'] = df_1['text'].str[0].str.join(" ")
    df_1['text_as_string'].apply(lambda x: vader.polarity_scores(x)['compound'])
    

    【讨论】:

    • 非常感谢。此解决方案也适用于我的其他词典。
    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 2018-10-16
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    相关资源
    最近更新 更多