情感分析:有没有办法提取评论中的正面和负面方面?

Sentiment Analysis: Is there a way to extract positive and negative aspects in reviews?

目前,我正在做一个项目,我需要实时提取正面和负面评论中使用的相关方面。

对于更消极和更积极的概念,这将是一个上下文化这个词的问题。区分在负面语境中听起来正面的词(考虑反讽)。

这是一个例子: 非常欢迎!!!我们和家里的传统菜一起吃的很好,质量和数量都在预约!!!*

积极方面:欢迎、传统菜肴、质量、数量

任何人都可以向我推荐一些关于这个主题的教程、论文或想法吗?

提前致谢。

此任务称为基于方面的情感分析 (ABSA)。最受欢迎的是 2014 Semantic Evaluation Workshop (Task 5) 中指定的格式和数据集及其在随后几年的更新版本。

多年来模型效率概览:

https://paperswithcode.com/sota/aspect-based-sentiment-analysis-on-semeval

有关该主题的资源和存储库的良好来源(有些非常先进,但也有一些更适合初学者的资源):

https://github.com/ZhengZixiang/ABSAPapers

根据我在这个主题上的一般经验,一个不需要机器学习模型设计高级知识的非常强大的起点是准备一个数据集(例如为 SemEval2014 任务提供的数据集) Token Classification Format and use it to fine-tune a pretrained transformer model such as BERT, RoBERTa or similar. Check out any tutorial on how to do fine-tuning on a token classification model like this one in huggingface。他们通常使用流行的命名实体识别 (NER) 任务作为示例任务,但对于 ABSA-Task 你基本上做同样的事情,但使用其他标签和不同的数据集。

显然,一种更简单的方法是采用更多 rule-based 方法或将 rule-based 方法与训练有素的情绪分析 model/negation 检测等相结合,但我认为通常使用rule-based 与使用 state-of-the-art 模型作为转换器相比,您可以预期性能要差得多。

如果你想比 fine-tuning 预训练的 Transformer 模型更高级,请查看我提供的第二个和第三个 link 并查看一些专门设计的机器学习模型设计用于基于方面的情感分析。