首页 / 资讯中心 / 文章详情

目标级情感分析ABSA数据集全指南:从SemEval到中文与进阶数据集选型

目标级情感分析ABSA数据集全指南:从SemEval到中文与进阶数据集选型 ★ FEATURED ARTICLE
1. 目标级情感分析到底在解决什么问题第一次接触目标级情感分析Aspect-Based Sentiment Analysis简称ABSA的人往往会把它和普通的情感分类搞混。普通情感分类是给一整句话打一个标签比如这家餐厅太棒了就是正面。但现实中的评论远比这复杂——环境很好但服务员态度冷漠菜也一般整句话到底是正面还是负面普通分类器会直接懵掉。目标级情感分析要做的就是把评价拆解到具体的目标上。上面那句话里环境对应正面服务员态度对应负面菜对应偏负面。每个目标有自己独立的情感极性互不干扰。这就是ABSA的核心价值细粒度地还原用户真实态度。这个任务在实际业务里的应用场景非常广。电商平台需要从海量评论里提取物流包装性价比等维度的情感倾向酒店预订平台要区分位置卫生隔音的评价甚至舆情监控里也要针对特定对象做情感判断。可以说只要涉及用户对多个对象同时表达态度的场景ABSA就是绕不开的技术方案。而做ABSA研究或落地第一步永远不是调模型而是找到合适的数据集。数据集决定了你能做什么任务、能对比哪些基线、最终指标有没有说服力。我见过太多人上来就搭网络结构结果发现手头数据集的标注格式根本不支持自己想做的那类任务白白浪费几周时间。所以这篇笔记我想把目标级情感分析领域主流的数据集做一个系统梳理讲清楚每个数据集的特点、适用任务、标注体系以及在实际使用中容易踩的坑。内容会覆盖从早期的SemEval系列到中文数据集再到近几年出现的多目标、多语言、隐式目标等进阶数据集。适合正在做ABSA相关研究、需要选数据集的同学也适合想了解这个领域数据现状的从业者。我会尽量把每个数据集的脾气讲透让你选的时候心里有数。2. SemEval系列ABSA数据集的奠基石2.1 SemEval-2014绕不开的起点只要做ABSA几乎不可能不碰SemEval-2014。这个数据集来自2014年的语义评测任务包含两个领域餐厅评论和笔记本电脑评论。它的标注体系奠定了后续很多工作的基础。具体来说SemEval-2014的每条样本包含一个句子、若干目标aspect term、每个目标对应的情感极性positive/negative/neutral/conflict。比如我特别喜欢这家店的意大利面里意大利面是目标positive是极性。任务通常分为两个子任务一是目标抽取找出评价对象二是目标情感分类判断极性。这个数据集规模不算大餐厅训练集约3000多条笔记本约2000多条。但它的标注质量很高边界清晰所以至今仍是论文里的标配对比数据集。我个人的经验是新手入门ABSA从SemEval-2014开始最稳妥因为它的格式规范、社区支持好、baseline多跑出来的结果容易找到参照。不过要注意一个坑SemEval-2014里存在少量conflict标签表示情感矛盾或无法判断。很多论文在处理时会直接丢弃这类样本但如果你要做完整对比最好说明自己的处理方式否则复现时对不上数。2.2 SemEval-2015与2016任务分化与难度升级SemEval-2015在2014的基础上做了扩展最大的变化是把目标抽取和情感分类拆得更细并且引入了情感极性对类别的概念。它同样覆盖餐厅和笔记本领域但数据分布和2014不完全一致。很多论文会把2014和2015的数据合并使用扩大训练集这在实践中是可行的但要注意两个数据集的标注规范有细微差别。SemEval-2016则进一步升级除了餐厅和笔记本还加入了酒店领域。更重要的是2016的任务设计更贴近真实场景比如要求模型同时处理目标类别和目标词两个层级。所谓目标类别是指服务价格位置这种抽象维度而目标词是具体的服务员菜单价格等。这个区分很关键因为有些评论只提类别不提具体词比如太贵了你需要判断它属于价格类别且情感为负面。我在用SemEval-2016时发现一个实际问题不同领域的数据量差异很大酒店领域相对小如果做跨领域实验容易出现过拟合。建议做跨领域时先统计各领域的目标分布必要时做重采样或分层抽样。2.3 SemEval-2017及后续走向多语言与对话SemEval-2017把ABSA扩展到了多语言覆盖英语、西班牙语、法语、德语、土耳其语等。这对做跨语言迁移的研究者非常有价值。但多语言数据集的通病是各语言标注质量参差不齐小语种样本量偏少。我的建议是如果主攻英语可以把多语言数据当作辅助如果专门做跨语言务必先做数据质量筛查。再往后ABSA的任务形态逐渐从单句走向对话级和文档级。比如有些数据集开始标注多轮对话中的目标情感这比单句难得多因为目标可能跨轮次指代情感也可能随对话推进而变化。这类数据集目前规模还不大但代表了趋势值得关注。数据集领域语言主要任务规模特点SemEval-2014餐厅、笔记本英语目标抽取情感分类中等标注精SemEval-2015餐厅、笔记本英语目标类别极性中等任务细分SemEval-2016餐厅、笔记本、酒店英语多层级目标领域不均SemEval-2017多领域多语言多语言ABSA小语种偏少3. 中文ABSA数据集从稀缺到逐步丰富3.1 早期中文数据集的困境做中文ABSA的人都有一个共同痛点公开数据集太少且质量参差。早期很多中文情感数据集只标注整句极性根本没有目标级标注。想做中文ABSA要么自己标要么用翻译工具把英文数据集转过来——但翻译会丢失大量语言特性比如中文的省略、倒装、网络用语效果往往打折扣。我试过用机器翻译把SemEval-2014转成中文结果发现意大利面被翻成意面还算好的有些目标词直接翻错导致标签对不上。所以翻译方案只能应急不能作为正式实验依据。3.2 几个值得关注的中文数据集近几年情况有所改善。有几个中文ABSA数据集逐渐被社区接受。一类是电商评论数据集覆盖手机、电脑、服饰等品类标注了目标词和极性。这类数据贴近真实业务但往往不公开或只公开部分。另一类是餐饮评论数据集类似SemEval的中文版标注规范相对统一。还有一个方向是基于现有中文情感语料二次标注。比如某些公开的酒店评论、外卖评论原本只有整句标签研究者在此基础上补充目标级标注。这种做法成本高但数据真实性强。如果你手头有业务数据这其实是最靠谱的路径。使用中文数据集时要特别注意分词问题。中文目标词边界不像英文那么清晰服务态度是一个目标还是两个不同数据集的切分标准可能不同。做实验前一定要读标注指南否则模型学到的边界和评测标准不一致指标会虚高或虚低。3.3 中文数据集的实操建议如果你现在要启动一个中文ABSA项目我的建议是先盘点手头能拿到的数据优先用有明确标注规范的公开集做baseline再用业务数据做微调。不要一上来就追求大数据集标注一致性比数据量更重要。我见过一个项目用了十万条评论但标注标准前后不统一最后模型表现还不如用两万条精标数据。另外中文ABSA评测时要注意中性样本的处理。很多中文评论情感模糊还行一般到底算中性还是弱正面不同数据集定义不同。做对比实验时要么统一映射规则要么在论文里明确说明否则结果没法比。4. 进阶数据集隐式目标、多目标与跨域挑战4.1 隐式目标数据集前面说的数据集大多针对显式目标也就是句子里明确出现了评价对象。但现实中大量评论是隐式的比如太贵了没有出现价格二字等了一小时没提上菜速度。这类需要推理才能确定目标的样本就是隐式目标。隐式目标数据集的价值在于更贴近真实场景但难度也大得多。模型不仅要理解情感还要推断评价对象是什么。目前这类数据集规模普遍偏小标注成本高是主要原因。我在使用时的体会是隐式目标任务上预训练语言模型比传统方法优势明显但即便如此准确率也远低于显式目标。如果你的业务场景隐式评论多建议预留更多标注预算或者考虑用规则模型混合方案。4.2 多目标与目标关系数据集有些数据集专门关注一句话里多个目标之间的关系。比如这家店菜好吃但服务差两个目标情感相反模型需要分别判断还要理解它们可能存在的对比关系。这类数据集对模型的结构建模能力要求更高。多目标数据集的一个常见坑是目标重叠。比如苹果手机壳里苹果和手机壳可能都被标为目标但实际评价对象是手机壳。不同数据集对嵌套目标的处理方式不同用之前一定要确认标注规则。4.3 跨域与少样本数据集跨域ABSA是另一个热门方向。数据集通常提供源域如餐厅和目标域如酒店要求模型在源域训练、目标域测试。这类数据集的价值在于检验模型的泛化能力。但跨域实验有个陷阱领域差异可能被数据泄漏掩盖。如果源域和目标域有大量相同目标词指标会虚高。做实验时最好做目标词重叠度分析。少样本ABSA数据集则是为了模拟标注资源稀缺的场景通常每个类别只给几条样本。这类数据集适合研究提示学习、元学习等方法。使用时要注意样本划分的随机性最好多次采样取平均否则结果波动很大。5. 数据集选型与使用的实战经验5.1 怎么根据任务选数据集选数据集不是越大越好而是越匹配越好。我一般按这个顺序判断先看任务类型目标抽取、极性分类、还是端到端再看语言中文还是英文再看领域和业务是否接近最后看规模。如果做方法研究优先选社区认可度高的方便对比如果做落地优先选领域匹配的哪怕小一点。还有一个容易被忽略的点数据集的许可证。有些数据集只允许学术使用商用需要额外授权。做产品前务必确认否则后期很麻烦。5.2 数据预处理中的常见坑ABSA数据预处理有几个高频坑。第一是标签体系不一致不同数据集的极性定义可能不同合并前要统一映射。第二是目标词边界英文按词、中文按分词处理方式不同。第三是重复样本有些数据集存在重复或近似重复会导致训练集测试集泄漏。我一般会做去重和相似度筛查确保评测可信。第四是类别不平衡。ABSA数据集里中性样本通常偏少如果直接训练模型会偏向多数类。可以用重采样、类别权重或focal loss缓解。但要注意测试集不能重采样否则指标失真。5.3 评测与复现的注意事项最后说评测。ABSA的评测指标通常用准确率和F1但宏平均和微平均差别可能很大尤其是类别不平衡时。报告结果时最好两个都给并说明用哪个做主指标。另外目标抽取任务常用边界匹配但不同实现的匹配规则可能不同复现时要以原论文代码为准。还有一个经验不要只跑一次就下结论。ABSA模型对随机种子敏感尤其是小数据集。我通常至少跑三次取平均并报告标准差。如果标准差很大说明模型不稳定需要检查初始化或数据划分。常见问题表现解决思路标签体系不一致合并后极性混乱统一映射规则目标边界模糊抽取指标异常对齐标注指南数据泄漏测试指标虚高去重相似度筛查类别不平衡偏向多数类重采样/权重/loss调整结果波动大标准差高多次实验取平均6. 我在实际项目中的几点体会做了几个ABSA相关项目后我最大的体会是数据集的质量和匹配度比模型结构重要得多。早期我总想着换更复杂的网络后来发现把数据清洗干净、标注统一带来的提升往往比换模型明显。另外不要迷信公开数据集的指标。公开集上刷到高分不代表业务场景能用。业务数据的目标分布、语言风格、噪声水平都和公开集不同。我的做法是公开集上验证方法可行性业务数据上做最终评估两者缺一不可。最后分享一个小技巧如果手头数据不够可以考虑主动学习。先标一小批训练模型挑模型最不确定的样本再标循环几轮往往能用更少标注达到不错效果。这个方法在ABSA里尤其适用因为目标边界和隐式目标是最需要人工判断的部分。
阅读完成 · 觉得有帮助?
咨询建站