gpt4 book ai didi

python - 如何对同一文本样本的不同主题/方面进行情感分析

转载 作者:行者123 更新时间:2023-12-01 01:21:14 25 4
gpt4 key购买 nike

假设我有以下客户评论,并且我想了解对酒店和食物的看法:

“我们的房间很好,但食物很一般”

如果这是在评论数据框中,分析的输出将如下所示:评论酒店美食
房间是...... Pos Neg

我在 Kaggle 和 Medium 上遇到过多个教授情绪分析的教程,但他们总是寻找整体情绪。

如果您知道方法,或者知道任何教程,或者知道通过谷歌搜索哪些术语来解决此问题,请帮助我。谢谢!

编辑:请引用以下方面: http://sentic.net/sentire2011ott.pdf它们似乎是讲义。有谁知道同样的Python实现吗?谢谢!

编辑:这个问题与ABSA(基于方面的情感分析)有关

最佳答案

假设客户评论的长度为 1 到 N 个句子,其中一部分评论多个项目(例如,房间很棒,但工作人员很粗鲁),您可能想要执行对各个文本片段进行情感分析(用标点符号和连词分隔)。

这需要结合预处理技术,将评论文本分段为句子和连词(例如“但是”、“所以”等)。

示例代码

首先,句子标记化,

假设评论文本是“不错的中心酒店。房间很棒,但工作人员很粗鲁。从中央车站很容易到达

>>> from nltk.tokenize import sent_tokenize

>>> sentences = sent_tokenize(review_text)
>>> sentences
[“Nice central hotel.”,
“Room was great but the staff were rude.”,
“Very easy to reach from the central station.”]

接下来,拆分一些连词,

import re

def split_conj(text):
return map(str.strip, re.sub('(but|yet)', "|", text).split('|'))

segments = []
for sent in sentences:
segments.extend(split_conj(sent))

请注意,您需要对片段进行一些进一步的预处理,其(基于示例评论文本)看起来像

['Nice central hotel.',
'Room was great',
'the staff were rude.',
'Very easy to reach from the central station.']

接下来,创建将评论 ID 链接到各个分割 ID 的数据集。所以你的数据框列是:

review ID | segment ID | segment text | label
# label could be a numerical value
# (range -1 to +1) instead of -1 and +1

接下来,根据与每个分割 ID 关联的评论 ID,对各个分割进行情感分析,然后将它们组合起来以获得每个评论的总体情感。

组合分数的一些选择(非详尽列表):

  • 简单相加(在正负分段数量相同的情况下,这将产生中性分数)
  • 简单加权总和(分割情感得分之和 X 分割的归一化长度)
  • 基于自定义分割重要性分配的加权总和(分割情感得分总和 X 分割的归一化重要性)
  • 等等

希望这对您有帮助。

关于python - 如何对同一文本样本的不同主题/方面进行情感分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53815389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com