细粒度情感分析实战——UIE之评论观点情感分析小样本微调

信息抽取是自然语言处理界中比较广泛研究以及应用的一个领域,用专业的学术表达就是将文本这中非结构化的数据结构化。因为计算机对于非结构化的信息处理起来很困难,但是对于结构化的信息就可以很轻松的进行处理,可以进行后续的检索,统计,相似度计算等后续应用。在深度学习火起来之后,采用深度学习进行信息抽取越来越成为一种范式。但是由于关系抽取和事件抽取等不同类型的任务的输出有着一定的区别,所以大家会设计不同的模型去完成不同类型的信息抽取任务。最近UIE提出采用一个模型完成这些不同类型的信息抽取任务,实现了信息抽取任务的大一统,同时UIE可以在大量的语料上进行预训练,在小样本训练上也有着出色的效果。

UIE模型简介

UIE模型全称是Unified Structure Generation for Universal Information Extraction。字面意思就是用一个大一统的模型完成各种各样的信息抽取的工作。如下图所示:以前完成上述关系抽取和事件抽取等任务,需要设计不同的模型架构去完成,而UIE的目的则是采用一个同一的模型完成以前需要用四个模型才能完成的任务。

image.png

而其中最UIE的的主要思想如下图所示: 就是设计是一种基于Schema的SSI(Structural Schema Instructor) + 输入句子 生成一种结构化抽取语言(Structural Extraction Language, SEL)
(1)SSL 作为 prompt 去指导模型做那种信息抽取任务。
(2)而不同的信息抽取任务的结果都可以表示成一种特殊SEL
(3)模型输入SSL + Text 生成 SLE,原文采用的是Seq2Seq的句子生成式模型进行的训练。

image.png

虽然原版的UIE采用的式句子生成式的方式进行的,但UIE也可以采用 阅读理解式(MRC)的抽取式 +一些后处理 进行SLE的生成。比如百度paddleNLP开源的UIE就是基于抽取式的方式进行训练的。


image.png

细粒度情感分析任务简介

细粒度的情感分析这个任务:主要任务是判断判断句子在某方面的情感极性。
其具体建模过程如下:

输入:文本是“这家餐厅的环境还不错,可以菜做的不怎么样”
输出 :"环境"这个维度, 以及"环境"的观点词"还不错",和 "环境"的情感极性正向;
"菜"这个维度,以及"菜"的观点词 "不怎么样"和"菜"的情感极性负向。

这也是一个信息抽取类型的任务。在舆情分析,用户评论分析等方面都有着巨大的用处。。接下来笔者就用百度PaddleNLP开源的基于ernie3.0训练的抽取式的UIE进行细粒度文本分类的实战。

实战部分

其具体的过程完成按照https://github.com/PaddlePaddle/PaddleNLP/tree/develop/model_zoo/uie文档的教程进行操作。

数据标注

这里采用的doccano开源标注工具进行10条数据的标注。需要采用关系抽取的标注方式进行标注。其具体的标注过程如图所示:
比如: 保湿效果不错这句话

  • 其中"保湿效果" 需要标注成 评价维度##正向span
  • "很不错" 需要标标注成 观点词span
  • 最后将"保湿效果" 和"不错" 用 观点词relation 这个关系连接
image.png

数据预处理

标注完成后,将数据导出,采用下方脚本进行标注数据预处理。

python doccano.py --doccano_file test.json --task_type "ext" --save_dir ./data --splits 0.8 0.1 0.1 --prompt_prefix "情感倾向" --options "正向" "负向" --separator "##"


image.png

处理后的训练数据如下图所示,完全式一个抽取式任务的训练数据格式,比如第一条样本是在做评价维度的抽取
模型输入:"值得囤的一款面膜,价格实惠,肤感也不错" + "评价维度" 。
模型输出:"肤感" 的在句子序列中 index(14,16] 。

而情感倾向的抽取如最后一条样本:
模型输入:"值得囤的一款面膜,价格实惠,肤感也不错" + "肤感的情感倾向[负向,正向]" 。
模型输出:"正向" 的在句子序列中 index(-4,-2] 。

{"content": "值得囤的一款面膜,价格实惠,肤感也不错。", "result_list": [{"text": "价格", "start": 9, "end": 11}, {"text": "肤感", "start": 14, "end": 16}], "prompt": "评价维度"}
{"content": "值得囤的一款面膜,价格实惠,肤感也不错。", "result_list": [{"text": "实惠", "start": 11, "end": 13}, {"text": "也不错", "start": 16, "end": 19}], "prompt": "观点词"}
{"content": "值得囤的一款面膜,价格实惠,肤感也不错。", "result_list": [{"text": "实惠", "start": 11, "end": 13}], "prompt": "价格的观点词"}
{"content": "值得囤的一款面膜,价格实惠,肤感也不错。", "result_list": [{"text": "也不错", "start": 16, "end": 19}], "prompt": "肤感的观点词"}
{"content": "值得囤的一款面膜,价格实惠,肤感也不错。", "result_list": [{"text": "正向", "start": -7, "end": -5}], "prompt": "价格的情感倾向[正向,负向]"}
{"content": "值得囤的一款面膜,价格实惠,肤感也不错。", "result_list": [{"text": "正向", "start": -4, "end": -2}], "prompt": "肤感的情感倾向[负向,正向]"}

UIE模型finetune

运行下方脚本进行模型微调。可以看到模型的loss在进行下降,F1在进行上升。

python finetune.py --train_path ./data/train.txt --dev_path ./data/dev.txt --save_dir ./checkpoint --learning_rate 1e-5 --batch_size 4 --max_seq_len 512 --num_epochs 4 --model uie-base --seed 1000 --logging_steps 10 --valid_steps 10


image.png

UIE模型测试

先采用百度开源的默认的UIE模型进行 一条新样本的 SEL的抽取。我们发现抽取出来了
: "肤感" + "不错" + "正向" ; "成分" + "安全" + "正向"; "效果" + "好" + "正向"
而并没有将保湿效果这个评价维度抽取出来。

image.png

接下来我们采用微调后的模型进行 SEL的抽取,抽取出来的信息则是: "肤感" + "不错" + "正向" ; "成分" + "安全" + "正向"; "保湿效果" + "好" + "正向"
确实微调后的新模型就将我们想要的信息抽取出来了。
image.png

结语

百度官方其实也作过测试,放出了在不同领域采用小样本微调UIE后模型的效果提升。在ERNIE3.0的加持下,UIE在金融,医疗和互联网领域只需要5条标注数据微调就可以将指标提升20%-30%,确实UIE不仅实现了信息抽取任务的大一统,还对于小样本的信息抽取有着很好的效果。


image.png

参考
https://github.com/PaddlePaddle/PaddleNLP/tree/develop/model_zoo/uie
https://zhuanlan.zhihu.com/p/495315026

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容