用BRAT进行中文情感分析语料标注
1.背景
情感分析是NLP中的一大分支,無論在學(xué)術(shù)界還是工業(yè)界都有廣泛的研究,在SemEval語義分析會(huì)議中有單獨(dú)的情感分析任務(wù)分支,其中最難的一個(gè)任務(wù)叫做ABSA:Aspect-Based Sentiment Analysis,面向方面的情感分析。舉例來說,就是對(duì)以下句子,
新版本英雄的皮膚很不錯(cuò),但是游戲經(jīng)常出現(xiàn)掉線
要能識(shí)別出這樣的情感標(biāo)注結(jié)果:<英雄,視覺性,正面>,<游戲,穩(wěn)定性,負(fù)面>
而其中,[英雄,游戲]為實(shí)體(entity),[視覺性,穩(wěn)定性]為方面(aspect),ABSA的任務(wù)就是識(shí)別句子中關(guān)于某些實(shí)體的某些方面的正負(fù)面情感。
從Semeval?2015的結(jié)果來看,目前沒有任何技術(shù)能夠做到無監(jiān)督解決這一任務(wù),既然需要監(jiān)督學(xué)習(xí)就少不了標(biāo)注。如果借助現(xiàn)有的工具來提高標(biāo)注效率在工程上具有重要意義。
本文主要介紹如何利用BRAT進(jìn)行針對(duì)ABSA問題的語料標(biāo)注,后續(xù)如何利用這些標(biāo)注構(gòu)建模型來解決ABSA問題將在隨后的文章中介紹。本系列的所有的工作都來自企鵝風(fēng)訊團(tuán)隊(duì)的努力成果
(http://fsight.qq.com)。
2.BRAT簡介
BRAT是一個(gè)基于web的文本標(biāo)注工具,主要用于對(duì)文本的結(jié)構(gòu)化標(biāo)注,用BRAT生成的標(biāo)注結(jié)果能夠把無結(jié)構(gòu)化的原始文本結(jié)構(gòu)化,供計(jì)算機(jī)處理。利用該工具可以方便的獲得各項(xiàng)NLP任務(wù)需要的標(biāo)注語料。以下是利用該工具進(jìn)行命名實(shí)體識(shí)別任務(wù)的標(biāo)注例子:
第一步:安裝BRAT
brat的安裝非常簡單,只需要unix-like系統(tǒng)和web server支持cgi環(huán)境即可,具體安裝流程官網(wǎng)寫的很清楚,http://brat.nlplab.org/installation.html,需要注意的是web server下各個(gè)路徑的權(quán)限需要設(shè)置好,python需要支持sqlite
第二步:標(biāo)注配置
brat通過配置文件來決定對(duì)語料的標(biāo)注可以滿足何種任務(wù),包括四個(gè)文件
- ??????????annotation.conf: annotation type configuration
- ??????????visual.conf: annotation display configuration
- ??????????tools.conf: annotation tool configuration
- ??????????kb_shortcuts.conf: keyboard shortcut tool configuration
一般只需要修改annotation.conf即可,該文件用于對(duì)標(biāo)注的數(shù)據(jù)結(jié)構(gòu)進(jìn)行配置,典型的配置如下:
[entities]
英雄
技能
?
[relations]
同盟Arg1:英雄, Arg2:英雄
擁有Arg1:英雄, Arg2:技能
?
[events]
1v1Participant1:英雄, Participant2:英雄
?
[attributes]
攻擊力Arg:<ENTITY>, Value:1|2|3|4|5
?每個(gè)文件需要包含四類模塊:entities、relations、events、attributes。各個(gè)模塊都可以定義為空,其中
entities用來定義標(biāo)注的實(shí)體名稱,其格式為每行一個(gè)實(shí)體類型,比如:人名、地名、英雄名、技能名等
relations用來定義實(shí)體間的關(guān)系,格式為每行定義一種關(guān)系,第一列為關(guān)系類型,隨后是用逗號(hào)分隔的ArgN:實(shí)體名,用來表示關(guān)系的各個(gè)相關(guān)者。比如例子中,同盟關(guān)系是存在于英雄之間
events用來定義事件,每行定義一類事件,第一列為事件名,隨后是用逗號(hào)分隔的Participant:實(shí)體名,用來表示事件的各個(gè)參與者。比如例子中,1v1事件需要多個(gè)英雄參加
attributes用來定義屬性,每行一個(gè)屬性,第一列為屬性名,隨后是用逗號(hào)分隔的Arg:<模塊類型>, Value:屬性值,注意屬性值可以有多個(gè),比如例子中,定義了實(shí)體類型可以有攻擊力,值從1-3
特別說明:brat本身是不支持中文的,如果在配置文件里定義中文會(huì)報(bào)錯(cuò),解決辦法是修改./server/src/projectconfig.py文件的第163行,加上中文支持即可:
n??=?re.sub(u'[^a-zA-Z\u4e00-\u9fa5<>,0-9_-]', '_', n)
第三步:導(dǎo)入數(shù)據(jù)
brat將需要標(biāo)注的數(shù)據(jù)放在data目錄下,每個(gè)子文件是一個(gè)項(xiàng)目,可以看到默認(rèn)有examples和tutorials兩個(gè)目錄。里面放了各種教程和實(shí)例項(xiàng)目,你可以自己定義自己的項(xiàng)目,比如data/project/bee/,每個(gè)項(xiàng)目里需要至少包含一個(gè)txt文件和一個(gè)ann文件,其中ann是標(biāo)注結(jié)果寫入的文件,txt是標(biāo)注數(shù)據(jù)文件,另外自定義的配置文件也要放在項(xiàng)目目錄中,否則系統(tǒng)會(huì)采用默認(rèn)的配置
第四步:標(biāo)注數(shù)據(jù)
接下來就可以對(duì)語料進(jìn)行標(biāo)注了,在第一步安裝完成以后就應(yīng)該可以在webserver配置的地址訪問到brat的首頁,默認(rèn)情況下會(huì)提示你選擇項(xiàng)目路徑,如
你可以根據(jù)你的項(xiàng)目路徑定位到需要標(biāo)注的文本文件,打開后,默認(rèn)加載之前的標(biāo)注結(jié)果,此時(shí)你可以對(duì)文本進(jìn)行標(biāo)注(注意要先登錄)
標(biāo)注的方法很簡單直觀,首先選中需要標(biāo)注的一段文本,然后會(huì)彈出對(duì)該段文本的標(biāo)注類型:
這里可以選擇實(shí)體類型、事件類型和屬性,
對(duì)于兩個(gè)標(biāo)注后的部分,可以從一端拖動(dòng)到另一端,實(shí)現(xiàn)關(guān)系的標(biāo)注:
3.ABSA標(biāo)注結(jié)構(gòu)
以上就是使用BRAT進(jìn)行標(biāo)注的方法,對(duì)于ABSA問題,需要標(biāo)注各個(gè)文本片段的<實(shí)體,方面,情感值>,特別的對(duì)與semeval?2015中的ABSA問題的slot2,還需要標(biāo)注文本的觀點(diǎn)片段,而我們利用BRAT解決這一標(biāo)注的方案是:
定義實(shí)體為<實(shí)體,方面>對(duì)
定義實(shí)體具有屬性<情感>,其值域是[正面,負(fù)面,中立]
因此annotation.conf里的內(nèi)容如下:
[entities]
角色,操作感
角色,視覺
?
[relations]
[events]
?
[attributes]
情感????Arg:<ENTITY>, Value:正面|負(fù)面|中立
?為了便于可視,我還特別定義的視覺配置visual.conf(這一部分規(guī)則不在此詳述,感興趣請(qǐng)參考官網(wǎng)說明):
[labels]
[drawing]
SPAN_DEFAULT????fgColor:black,?bgColor:lightgreen,?
? ? ? ? ? ? ? ? borderColor:darken
ARC_DEFAULT?color:black, arrowHead:triangle-5
角色,操作感?bgColor:#ffccaa
情感???
?最終的標(biāo)注效果如下:
由此便可以對(duì)各個(gè)片段進(jìn)行ABSA任務(wù)的標(biāo)注,最終生成的標(biāo)注結(jié)果格式如下:
T2角色,操作感?23?32艾瑞克,手感很不錯(cuò)
A2情感?T2?正面
T3角色,操作感?36?44操作一般的用沃爾
A3情感?T3?中立
T4角色,操作感?44?54操作不錯(cuò)的可以用隆多
A4情感?T4?中立
T5角色,操作感?59?66SG的精髓是準(zhǔn)
A5情感?T5?負(fù)面
T1角色,視覺?1091?1102猛龍時(shí)期的啊,發(fā)型夠吊
A1情感?T1?正面
?以上是對(duì)標(biāo)注工具BRAT進(jìn)行ABSA問題的標(biāo)注全過程,目前brat官網(wǎng)上并沒有關(guān)于情感任務(wù)的標(biāo)注實(shí)例,故而有此文章幫助需要的人減少學(xué)習(xí)成本。
總結(jié)
以上是生活随笔為你收集整理的用BRAT进行中文情感分析语料标注的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习各种框架
- 下一篇: paddle一体安装