如何将oseti中的情感值附加到数据帧中?

2024-05-14 10:01:33 发布

您现在位置:Python中文网/ 问答频道 /正文

第一个帖子在这里!你知道吗

在与mecab和编码斗争之后,我让oseti为日本情绪分析工作,在哪里oseti分析仪()获取一个字符串并打印一个列表,每个句子有一个值:

>>> import oseti
>>> analyzer = oseti.Analyzer()
>>> analyzer.analyze('心配です。でも好き。')
[-1.0, 1.0]

(抱歉,无法100%确定是否打印或只是重新返回列表)

我有一个大约10000行的pandas数据帧,并希望创建一个新的列(OS),其平均值为oseti分析仪特定列的输出(HD)。一些HD单元有数百个句子,呈现数百个情感值。你知道吗

下面的行给出了一条错误消息:

df['OS'] = sum((analyzer.analyze(df['HD']))) / len((analyzer.analyze(df['HD'])))

TypeError: Argument 'text' has incorrect type (expected str, got Series)

我不知道该怎么办。隔离每个HD观测的字符串部分?将列转换为字符串?在for循环中运行oseti,然后再将by CSV数据转换为Pandas数据帧?你知道吗

如果你现在还不知道的话,我是个新手,刚开始接触Python和熊猫。我浏览了一些常见的网络课程和视频,但没有看到任何关于oseti或其他模块直接适用的例子。你知道吗


Tags: 数据字符串编码df列表osanalyzeranalyze
1条回答
网友
1楼 · 发布于 2024-05-14 10:01:33

对于@pressurionslayer建议的扁平化,我提出了下面的代码,它可能不是最优雅的,但确实起到了作用。非常感谢你的帮助。你知道吗

OStemp = np.array(df['HD'].apply(analyzer.analyze))
OStemp.flatten()
df['OS'] = [(sum(i) / len(i)) for i in OStemp]

相关问题 更多 >

    热门问题