python - 'list' 对象没有属性 'encode':情感分析
问题描述
我想使用 Vader 对一些文本进行情感分析(但我在这里描述的问题也适用于任何词典,除了 Vader)。但是,在完成所有数据处理后,包括标记化和转换为小写(我在这里没有提到),我收到以下错误:
知道如何处理文档以便词典可以阅读文本吗?谢谢。
AttributeError:“列表”对象没有属性“编码”
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:“列表”对象没有属性“编码”
解决方案
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'])
推荐阅读
- svelte - 使用 sanityClient 的 Svelte.js 和 Sanity.io 错误
- node.js - 在 lambda nodejs 12.0 上安装 libreoffice 但部署时无法运行命令
- flutter - Flutter Horizontal PageView with Child Width 更大的屏幕宽度
- for-loop - 根据 n 求时间复杂度
- sql - Postgres change or check datatype of all column during select into statement
- python-3.x - 如何让命令行连续打印日志信息?
- r - 有没有办法将线性判别系数提取到数据框中?
- mysql - 特定列的 MySQL 内部联接
- c++ - 在 Windows (OS) 中的 QListView 上没有正确省略
- anylogic - AnyLogic - 密度图可以更准确吗?