使用SnowNLP分析数据显示object of type 'float' has no len()求解决

问题:使用SnowNLP分析数据显示object of type 'float' has no len()求解决

import os
os.chdir(r'C:\Users\13083\Desktop')
from snownlp import SnowNLP
import pandas as pd
# 读取数据
df = pd.read_csv('data1111.csv',encoding='utf-8')
danmu = df['content']
scores = [SnowNLP(i).sentiments for i in danmu]
emotions = []
for i in scores:
    if i > 0.5:
        emotions.append('正面')
    elif i==0.5:
        emotions.append('中立')
    else:
        emotions.append('负面')

【以下回答由 GPT 生成】

问题的原因是在分析数据时,遇到了一个类型错误。这个错误说明在某个地方传入了一个浮点型的数据,而SnowNLP只能处理字符串类型的数据。解决这个问题的方法是将浮点型的数据转换成字符串类型。

下面是修改后的代码:

import os
os.chdir(r'C:\Users\13083\Desktop')
from snownlp import SnowNLP
import pandas as pd

# 读取数据
df = pd.read_csv('data1111.csv', encoding='utf-8')
danmu = df['content']
scores = [SnowNLP(str(i)).sentiments for i in danmu]
emotions = []

for i in scores:
    if i > 0.5:
        emotions.append('正面')
    elif i == 0.5:
        emotions.append('中立')
    else:
        emotions.append('负面')

修改后的代码通过使用str()函数将数据转换为字符串类型,以确保SnowNLP能够正确地处理它们。现在,您应该能够成功地将文本的情感得分分类为正面、中立或负面了。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^