一些实用的语义角色标注(SRL)工具使用方法
来源:互联网 发布:python实现rfm模型 编辑:程序博客网 时间:2024/05/17 23:34
不懂SRL的自己去扫盲吧,简言之就是predict-argument分析。找了一些工具,其中暂时调通两个
1. swirl
http://sourceforge.net/projects/swirl-parser/,可以从这下载,本工具里readme介绍较详细,主要是注意有多种输入格式。
带有名实体标注的可能效果比较好,什么都没有的效果比较差一点,下面就简单说一下什么都没有的输入格式。
格式:
0 Some O - countries O - are O be having O have difficulties O - in O - managing O manage a O - place O - to O - live O live for O - their O - citizen O - as O - they O - tend O tend to O - get O get overpopulated O - . O -
每一行一个句子,每个单词都是一个三元组(单词 O -),针对动词的srl,如果是动词,则最后的-要填上动词原形,如上例中的have,tend等,最前面的是一个0,类似于分类器的类别标签吧,不管它,加了便是。
这样使用swirl就可以parse了,命令行格式比较简单./swirl_parse ./swirl_model ./charniak_model input云云,有说明自己看吧。
缺点是有些特殊符号不识别,就会down掉,比如双引号、横线等,而且分析速度较慢,效果也一般。
2. mate-tools
由google code上下载 http://code.google.com/p/mate-tools/
需要下载srl的tar包,以及对应语言的各种model文件
暂时只调了英文的pipeline的形式,即输入单纯的英文的句子,就能输出诸如词性标注、句法、语义角色等信息,以conll2009的形式,见demo(http://barbar.cs.lth.se:8081/parse),中文等其他语言应该也类似吧。
输入格式按列来分布,只要保证第二列是单词即可,其他无所谓,如
-I -
-am -
-tied -
该换句子的时候, 就加个空行。
需要修改script中的pipeline的sh文件中的内容,上面都有写,自己对应好就ok,下面贴一个自己的
#################################################### (1) The following needs to be set appropriately##################################################INPUT=data/eng/test.txtLANG="eng"LEMMATIZER_MODEL="models/CoNLL2009-ST-English-ALL.anna-3.3.lemmatizer.model"POS_MODEL="models/CoNLL2009-ST-English-ALL.anna-3.3.postagger.model"PARSER_MODEL="models/CoNLL2009-ST-English-ALL.anna-3.3.parser.model"SRL_MODEL="models/CoNLL2009-ST-English-ALL.anna-3.3.srl-4.1.srl.model"OUTPUT="$LANG.out"#################################################### (2) These ones may need to be changed##################################################JAVA="java" #Edit this i you want to use a specific JRE.MEM="4g" #Memory for the JVM, might need to be increased for large corpora.CP="srl.jar:lib/anna-3.3.jar:lib/liblinear-1.51-with-deps.jar:lib/opennlp-tools-1.5.2-incubating.jar:lib/opennlp-maxent-3.0.2-incubating.jar:lib/seg.jar"JVM_ARGS="-cp $CP -Xmx$MEM"
model对应好,jar里面对应好
在根目录执行这个script就ok了。生成的结果文件会在当前目录保存。
mate-tool不会受什么符号影响,而且速度较快。
最后贴个结果吧
1OurourourPRP$PRP$__33NMODNMOD__A1_2currentcurrentcurrentJJJJ__33NMODNMOD__AM-TMP_3populationpopulationpopulationNNNN__44SBJSBJYpopulation.01A2_4isbebeVBZVBZ__00ROOTROOT____5666CDCD__66DEPDEP____6billionbillionbillionCDCD__77NMODNMOD____7peoplepeoplepeopleNNNN__44PRDPRD____8andandandCCCC__44COORDCOORD____9itititPRPPRP__1010SBJSBJ___A110isbebeVBZVBZ__88CONJCONJ____11stillstillstillRBRB__1010TMPTMP___AM-TMP12growinggrowgrowVBGVBG__1010VCVCYgrow.01__13exponentiallyexponentiallyexponentiallyRBRB__1212MNRMNR___A214.....__44PP____
- 一些实用的语义角色标注(SRL)工具使用方法
- 一些实用的语义角色标注(SRL)工具使用方法
- 语义角色标注
- 二十、语义角色标注的基本方法
- NLP+语义分析(四)︱中文语义分析研究现状(CIPS2016、角色标注、篇章分析)
- 一些实用的工具
- PaddlePaddle︱开发文档中学习情感分类(CNN、LSTM、双向LSTM)、语义角色标注
- 【图像语义分割】Label data的标注--Labelme(python)
- 【Mark工具】一些好用的图片标注工具
- 基于内容的视频语义标注(一)——视频标注的三种方法和不同层次划分标注
- nova list 的一些实用使用方法
- 一些Mingw工具的使用方法
- 一些常用的工具使用方法
- CNN for Semantic Segmentation(语义分割,论文,代码,数据集,标注工具,blog)
- Fuse角色产生软件的实作流程 - 一款实用的游戏角色制作工具
- Linux下的一些实用的工具
- 目标检测标注工具labelImg使用方法
- 一些实用的图标制作工具
- yield生成器对象返回Fiabs元素
- android Encrypt/Decrypt Strings 在4.2中无法解密解决办法
- Android中assets目录和res/raw目录的异同和使用场景
- test
- mysclise 修改svn地址 MyEclipse中如何修改SVN的地址
- 一些实用的语义角色标注(SRL)工具使用方法
- 我是如何向老婆解释MapReduce的?
- 看门狗WDT
- ios 静态库制作过程
- hello
- 黑马程序员学习log第三篇基础知识:JAVA面向对象之继承总结
- Tomcat内存溢出
- Linux网络编程(4):select函数
- Failed to install xx.apk on device 'xxx': timeout