1. 简介
Berkeley Parser 是加州大学伯克利分校 NLP 实验室开发的一种基于概率上下文无关文法(PCFG)的成分句法分析器,支持英语,汉语,德语等多个语种,它具有较高的句法分析性能,准确率较高,可选参 数较多,运行速度快递优点,在 ACL,NAACL 等主流国际会议的论文中得到广泛使用。
想了解 Berkeley Parser 可以参考这篇论文”Learning Accurate, Compact, and Interpretable Tree Annotation“,这篇论文是句法分析领域的一篇经典之作。
2. 使用
从 http://code.google.com/p/berkeleyparser/ 下载或者github上下载
下载之后,我上网搜了好长时间Berkely parser的教程,可是并没有。
其实就在我们下载的文件夹内,一个叫README的东东。
我们主要介绍模型自己训练的方法。
耐心阅读以下文本, 这里介绍如何训练模型 。
准备一个训练语料,是树型的
准备测试语料
注意是要分好词的,其次测试语料的输入的特征需要在训练语料中出现。。。。。。
1.进入到你的目录下,输入这个命令
java -cp berkeleyParser.jar edu.berkeley.nlp.PCFGLA.GrammarTrainer </home/phoebe/parser/berkeleyparser/data/train.txt -out bpmodel -treebank SINGLEFILE
解释:java后面跟着的文件名称就是运行这个程序 在这里就是运行 可执行的jar包berkelyParse.jar(这个jar包你下载之后可能名字不同,但是我觉得都只要是jar包都一样)
-cp 应该是找到这个jar包
berkeleyParser.jar edu.berkeley.nlp.PCFGLA.GrammarTrainer 是主函数 你要制定主函数的入口
< 的意思是-path(但是我输入-path就报错)后面跟着训练文本的位置,我这里是单源文件,所以最后指定- treebank SINGLEFIL
-out bpmodel是输出搜生成的模型 ,你可以指定它的位置,没有指定就是在berkelyParser这个文件夹下
你可以看到这样的东西(没截全)。。。有用的就是左上角的
>是输出
然后你可以看到很多迭代的结果,当然你也可以把这些结果输出到一个文本
java -cp berkeleyParser.jar edu.berkeley.nlp.PCFGLA.GrammarTrainer </home/phoebe/parser/berkeleyparser/data/train.txt -out bpmodel -treebank SINGLEFILE > test.log 2>&1 &
2.测试模型
$java -jar berkeleyParser.jar -gr bpmodel -inputFile ./data/test.in -outputFile ./data/test.out3 或者java -jar berkeleyParser.jar -gr bpmodel < ./data/test.in > ./data/test.out3
大功告成~~~~~~~~~