你爱我吗?企鹅风讯利用BRAT进行中文情感分析语料标注掌握玩家心

情感分析是游戏运营重要组成部分,本文将详细介绍企鹅风讯利用BRAT进行中文情感分析语料标注方法掌握玩家心

1.背景

情感分析是NLP中的一大分支,无论在学术界还是工业界都有广泛的研究,在SemEval语义分析会议中有单独的情感分析任务分支,其中最难的一个任务叫做ABSA:Aspect-Based Sentiment Analysis,面向方面的情感分析。举例来说,就是对以下句子,

新版本英雄的皮肤很不错,但是游戏经常出现掉线

要能识别出这样的情感标注结果:<英雄,视觉性,正面>,<游戏,稳定性,负面>

而其中,[英雄,游戏]为实体(entity),[视觉性,稳定性]为方面(aspect),ABSA的任务就是识别句子中关于某些实体的某些方面的正负面情感。

Semeval 2015的结果来看,目前没有任何技术能够做到无监督解决这一任务,既然需要监督学习就少不了标注。如果借助现有的工具来提高标注效率在工程上具有重要意义。

本文主要介绍如何利用BRAT进行针对ABSA问题的语料标注,后续如何利用这些标注构建模型来解决ABSA问题将在随后的文章中介绍。本系列的所有的工作都来自企鹅风讯团队的努力成果

http://fsight.qq.com)。

2.BRAT简介

BRAT是一个基于web的文本标注工具,主要用于对文本的结构化标注,用BRAT生成的标注结果能够把无结构化的原始文本结构化,供计算机处理。利用该工具可以方便的获得各项NLP任务需要的标注语料。以下是利用该工具进行命名实体识别任务的标注例子:

第一步:安装BRAT

brat的安装非常简单,只需要unix-like系统和web server支持cgi环境即可,具体安装流程官网写的很清楚,http://brat.nlplab.org/installation.html,需要注意的是web server下各个路径的权限需要设置好,python需要支持sqlite

第二步:标注配置

brat通过配置文件来决定对语料的标注可以满足何种任务,包括四个文件

  •           annotation.conf: annotation type configuration
  •           visual.conf: annotation display configuration
  •           tools.conf: annotation tool configuration
  •           kb_shortcuts.conf: keyboard shortcut tool configuration

一般只需要修改annotation.conf即可,该文件用于对标注的数据结构进行配置,典型的配置如下:

[entities]

英雄

技能

 

[relations]

同盟Arg1:英雄, Arg2:英雄

拥有Arg1:英雄, Arg2:技能

 

[events]

1v1Participant1:英雄, Participant2:英雄

 

[attributes]

攻击力Arg:<ENTITY>, Value:1|2|3|4|5

 每个文件需要包含四类模块:entities、relations、events、attributes。各个模块都可以定义为空,其中

entities用来定义标注的实体名称,其格式为每行一个实体类型,比如:人名、地名、英雄名、技能名等

relations用来定义实体间的关系,格式为每行定义一种关系,第一列为关系类型,随后是用逗号分隔的ArgN:实体名,用来表示关系的各个相关者。比如例子中,同盟关系是存在于英雄之间

events用来定义事件,每行定义一类事件,第一列为事件名,随后是用逗号分隔的Participant:实体名,用来表示事件的各个参与者。比如例子中,1v1事件需要多个英雄参加

attributes用来定义属性,每行一个属性,第一列为属性名,随后是用逗号分隔的Arg:<模块类型>, Value:属性值,注意属性值可以有多个,比如例子中,定义了实体类型可以有攻击力,值从1-3

特别说明:brat本身是不支持中文的,如果在配置文件里定义中文会报错,解决办法是修改./server/src/projectconfig.py文件的第163行,加上中文支持即可:

 = re.sub(u'[^a-zA-Z\u4e00-\u9fa5<>,0-9_-]', '_', n)

第三步:导入数据

brat将需要标注的数据放在data目录下,每个子文件是一个项目,可以看到默认有examples和tutorials两个目录。里面放了各种教程和实例项目,你可以自己定义自己的项目,比如data/project/bee/,每个项目里需要至少包含一个txt文件和一个ann文件,其中ann是标注结果写入的文件,txt是标注数据文件,另外自定义的配置文件也要放在项目目录中,否则系统会采用默认的配置

第四步:标注数据

接下来就可以对语料进行标注了,在第一步安装完成以后就应该可以在webserver配置的地址访问到brat的首页,默认情况下会提示你选择项目路径,如

你可以根据你的项目路径定位到需要标注的文本文件,打开后,默认加载之前的标注结果,此时你可以对文本进行标注(注意要先登录)

标注的方法很简单直观,首先选中需要标注的一段文本,然后会弹出对该段文本的标注类型:

这里可以选择实体类型、事件类型和属性,

对于两个标注后的部分,可以从一端拖动到另一端,实现关系的标注:

3.ABSA标注结构

以上就是使用BRAT进行标注的方法,对于ABSA问题,需要标注各个文本片段的<实体,方面,情感值>,特别的对与semeval 2015中的ABSA问题的slot2,还需要标注文本的观点片段,而我们利用BRAT解决这一标注的方案是:

定义实体为<实体,方面>对

定义实体具有属性<情感>,其值域是[正面,负面,中立]

因此annotation.conf里的内容如下:

[entities]

角色,操作感

角色,视觉

 

[relations]

[events]

 

[attributes]

情感    Arg:<ENTITY>, Value:正面|负面|中立

 为了便于可视,我还特别定义的视觉配置visual.conf(这一部分规则不在此详述,感兴趣请参考官网说明):

[labels]

[drawing]

SPAN_DEFAULT    fgColor:blackbgColor:lightgreen

                borderColor:darken

ARC_DEFAULT color:black, arrowHead:triangle-5

角色,操作感 bgColor:#ffccaa

情感   

 最终的标注效果如下:

由此便可以对各个片段进行ABSA任务的标注,最终生成的标注结果格式如下:

T2角色,操作感 23 32艾瑞克,手感很不错

A2情感 T2 正面

T3角色,操作感 36 44操作一般的用沃尔

A3情感 T3 中立

T4角色,操作感 44 54操作不错的可以用隆多

A4情感 T4 中立

T5角色,操作感 59 66SG的精髓是准

A5情感 T5 负面

T1角色,视觉 1091 1102龙时期的啊,发型够吊

A1情感 T1 正面

 以上是对标注工具BRAT进行ABSA问题的标注全过程,目前brat官网上并没有关于情感任务的标注实例,故而有此文章帮助需要的人减少学习成本。

最新文章
1浅谈渗透测试服务在泛互行业带来的价值 在泛互联网行业中,渗透测试服务对于保障企业的网络安全至关重要。
2云手机卡顿/无特定设备/商店登录受限怎么办?WeTest专有云帮您解决! 公有云满足了大量小微企业、个人的测试需求;随着客户深入使用,也遇到了一系列新问题。本篇将对几个常见问题予以解答
3小程序安全相关标准和规章制度 针对小程序安全相关标准及规章制度的调研
4浅谈渗透测试及红蓝攻防对抗中的差异 渗透测试和红蓝攻防对抗已经成为企业保障网络安全的重要手段。
5腾讯WeTest成功当选中关村智联软件服务业质量创新联盟理事单位,获得权威认可! 今年,在北京成功召开的“中关村智联软件服务业质量创新联盟第三届第五次会员大会暨第四届第一次会员大会”中,腾讯WeTest成功当选为新一届的理事单位,腾讯IEG品质管理部总经理荆彦青先生当选为理事。
购买
客服
反馈