一些实用的语义角色标注(SRL)工具使用方法
2013-04-24 10:29
441 查看
不懂SRL的自己去扫盲吧,简言之就是predict-argument分析。找了一些工具,其中暂时调通两个
1. swirl
http://sourceforge.net/projects/swirl-parser/,可以从这下载,本工具里readme介绍较详细,主要是注意有多种输入格式。
带有名实体标注的可能效果比较好,什么都没有的效果比较差一点,下面就简单说一下什么都没有的输入格式。
格式:
每一行一个句子,每个单词都是一个三元组(单词 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,下面贴一个自己的
model对应好,jar里面对应好
在根目录执行这个script就ok了。生成的结果文件会在当前目录保存。
mate-tool不会受什么符号影响,而且速度较快。
最后贴个结果吧
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.txt LANG="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不会受什么符号影响,而且速度较快。
最后贴个结果吧
1 Our our our PRP$ PRP$ _ _ 3 3 NMOD NMOD _ _ A1 _ 2 current current current JJ JJ _ _ 3 3 NMOD NMOD _ _ AM-TMP _ 3 population population population NN NN _ _ 4 4 SBJ SBJ Y population.01 A2 _ 4 is be be VBZ VBZ _ _ 0 0 ROOT ROOT _ _ _ _ 5 6 6 6 CD CD _ _ 6 6 DEP DEP _ _ _ _ 6 billion billion billion CD CD _ _ 7 7 NMOD NMOD _ _ _ _ 7 people people people NN NN _ _ 4 4 PRD PRD _ _ _ _ 8 and and and CC CC _ _ 4 4 COORD COORD _ _ _ _ 9 it it it PRP PRP _ _ 10 10 SBJ SBJ _ _ _ A1 10 is be be VBZ VBZ _ _ 8 8 CONJ CONJ _ _ _ _ 11 still still still RB RB _ _ 10 10 TMP TMP _ _ _ AM-TMP 12 growing grow grow VBG VBG _ _ 10 10 VC VC Y grow.01 _ _ 13 exponentially exponentially exponentially RB RB _ _ 12 12 MNR MNR _ _ _ A2 14 . . . . . _ _ 4 4 P P _ _ _ _
相关文章推荐
- 一些实用的语义角色标注(SRL)工具使用方法
- SQLServer按顺序执行多个脚本的方法(sqlcmd实用工具使用方法)
- 目标检测标注工具labelImg使用方法
- WordPress静态化实用工具cos-html-cache使用方法
- underscore.js 源码中一些实用的工具方法
- SQLServer按顺序执行多个脚本的方法(sqlcmd实用工具使用方法)
- 一些常用的工具使用方法
- 一些Mingw工具的使用方法
- 二十、语义角色标注的基本方法
- SQLServer按顺序执行多个脚本的方法(sqlcmd实用工具使用方法)
- 一些小工具方法,能将容器转换成指定的数组类型有使用泛型
- 使用ADempiere 3.6.0 LTS的WEB访问以及其他的一些访问方法及工具(基于Ubuntu Desktop 12.04 LTS)
- 在GATE工具中使用自己的XSD模式进行语义标注
- CryptTool 封装了一些加密工具方法-实用
- 【敏捷实用工具】JIRA介绍以及使用方法
- 在GATE工具中使用自己的XSD模式进行语义标注
- scrapy一些非常实用资料整理,与其他mongdb、django、redis、solr、tor结合使用以及用Python脚本调用等等方法
- ASE中的命令行实用工具isql的几个参数的使用方法
- 常用修图工具的一些使用技巧及问题解决方法——ai
- 视频加密和程序加密工具超级狗的一些介绍和使用方法