Python NLP情绪分析:';列表';对象没有属性';情绪';

Python NLP情绪分析:';列表';对象没有属性';情绪';,python,nlp,sentiment-analysis,textblob,Python,Nlp,Sentiment Analysis,Textblob,对于当前的项目,我计划使用TextBlob对许多单词组合进行情感分析 当运行情绪分析行polarity=common_words.thousion.polarity并使用print(i、word、freq、polarity)调用结果时,我收到以下错误消息: polarity = common_words.sentiment.polarity AttributeError: 'list' object has no attribute 'sentiment' 有什么聪明的办法可以让它运行吗?相应

对于当前的项目,我计划使用TextBlob对许多单词组合进行情感分析

当运行情绪分析行
polarity=common_words.thousion.polarity
并使用print(i、word、freq、polarity)调用结果时,我收到以下错误消息:

polarity = common_words.sentiment.polarity
AttributeError: 'list' object has no attribute 'sentiment'
有什么聪明的办法可以让它运行吗?相应的代码部分如下所示:

for i in ['Text_Pro','Text_Con','Text_Main']:
    common_words = get_top_n_trigram(df[i], 150)
    polarity = common_words.sentiment.polarity
    for word, freq in common_words:
        print(i, word, freq, polarity)
编辑:请在下面找到针对这种情况的完整解决方案(根据与用户leopardxpreload的讨论):


似乎您正在尝试对列表使用
TextBlob
调用,而不是
TextBlob
对象

对于['Text\u Pro'、'Text\u Con'、'Text\u Main'中的i:
常用单词=获取顶部三角图(df[i],150)
#不确定常用词是什么,但它必须是字符串
极性=TextBlob(常用词)。情绪。极性
对于word,常用词中的频率:
打印(i、字、频率、极性)

如果
common_words
是您可能需要添加的列表:

polarity_list = [TextBlob(i).sentiment.polarity for i in common_words]
可能的复制粘贴解决方案:

for i in ['Text_Pro','Text_Con','Text_Main']:
    common_words = get_top_n_trigram(df[i], 150)
    polarity_list = [TextBlob(i).sentiment.polarity for i in common_words]
    for element in polarity_list:
        print(i, element)

common\u words
是一个
列表
,不是一个具有
情感
功能的对象。是的,因此您有一个列表,而
TextBlob
函数只接受一个字符串——初始化变量后执行
打印(common\u words)
,您应该会看到一个方括号内的输出。另外,我认为尝试对word、freq in common_words执行
操作会导致“解包问题”-您需要对comon_words
中的元素执行
操作,然后执行索引:
元素[1]
。。等等。
#
注释掉下面的所有内容
common\u words=…
是的,但是打印出来的是什么?我通过将common\u words和polarity\u列表定义为字符串来实现。将在问题文本中为其他用户突出显示这一点。再次感谢你的帮助。
for i in ['Text_Pro','Text_Con','Text_Main']:
    common_words = get_top_n_trigram(df[i], 150)
    polarity_list = [TextBlob(i).sentiment.polarity for i in common_words]
    for element in polarity_list:
        print(i, element)