Berkeley parser使用方法
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

大功告成~~~~~~~~~
Berkeley parser使用方法的更多相关文章
- 使用Berkeley Parser进行句法分析
一.句法分析 1.定义 句法分析判断输入的单词序列(一般为句子)的构成是否合乎给定的语法,并通过构造句法树来确定句子的结构以及各层次句法成分之间的关系,即确定一个句子中的哪些词构成一个短语,哪些词是动 ...
- 使用Stanford Parser进行句法分析
一.句法分析 1.定义 句法分析判断输入的单词序列(一般为句子)的构成是否合乎给定的语法,并通过构造句法树来确定句子的结构以及各层次句法成分之间的关系,即确定一个句子中的哪些词构成一个短语,哪些词是动 ...
- XML解析之DOM详解及与SAX解析方法的比较
XML解析(DOM) XML文件解析方法介绍 我们所用到的NSXMLParser是采用SAX方法解析 SAX(Simple API for XML) 只能读,不能修改,只能顺序访问,适合解析大型XML ...
- Python中optionParser模块的使用方法[转]
本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内 ...
- 转-Python optionParser模块的使用方法
Python 有两个内建的模块用于处理命令行参数: 一个是 getopt,<Deep in python>一书中也有提到,只能简单处理 命令行参数: 另一个是 optparse,它功 ...
- python获取命令行参数的方法(汇总)
介绍python获取命令行参数的方法:getopt模和argparse模块. python版本:2.7 一.getopt模块 主要用到了模块中的函数: options, args = getopt.g ...
- Python中的option Parser
一般来说,Python中有两个内建的模块用于处理命令行参数: 一个是 getopt,<Deep in python>一书中也有提到,只能简单处理 命令行参数: 另一个是 optparse, ...
- Stanford CoreNLP 3.6.0 中文指代消解模块调用失败的解决方案
当前中文指代消解领域比较活跃的研究者是Chen和Vincent Ng,这两个人近两年在AAAI2014, 2015发了一些相关的文章,研究领域跨越零指代.代词指代.名词指代等,方法也不是很复杂,集中于 ...
- 浅谈 LayoutInflater
浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...
随机推荐
- 剪花布条---hdu2087(kmp模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2087 kmp模板题: #include <cstdio> #include <cst ...
- 2018 又一个假期 over 了
五一假期三天 在家窝三天 早上起床仍感觉没休息好 其实确实没休息好 假期的时间总不愿意拿来补觉用.周末准备去体检,真心恐惧医院的味道,硬着头皮还得上啊.
- 使用Custom Draw优雅的实现ListCtrl的重绘
common control 4.7版本介绍了一个新的特性叫做Custom Draw,这个名字显得模糊不清,让人有点摸不着头脑,而且MSDN里也只给出了一些如风的解释和例子,没有谁告诉你你想知道的,和 ...
- git mv与直接mv的区别
git mv 行为: 1.创建一个和之前文件内容一样的文件,文件名为新的文件名 2.将原来的文件删除 3.将删除的文件添加到暂存区 4.将新建的文件添加到暂存区 $ git mv a a1 $ git ...
- oracle中 rownum 与 connect by的结合使用
原文:http://blog.sina.com.cn/s/blog_a26966d90102wwkb.html oracle中 rownum 与 connect by的结合使用 SELECT ROWN ...
- linux中执行定时任务对oracle备份(crontab命令)
执行定时任务对oracle表数据备份: 1.创建sh脚本 [oracle@localhost ~]$ vi bak.sh 2.添加脚本内容 #!/bin/bash #:本脚本自动备份7天的数据库,每次 ...
- Hadoop2.7.3 HA高可靠性集群搭建
1.背景介绍 Hadoop2.0.0之前,在一个HDFS集群中,NameNode存在单节点故障(SPOF):因为集群中只有一个NameNode,所以在使用过程中,如果该NameNode出现故障或数据丢 ...
- Cloudflare发布全球最快的DNS
宣布1.1.1.1:速度最快,隐私优先的消费者DNS服务 Cloudflare的使命是帮助建立更好的互联网.今天我们很高兴能够在推出1.1.1.1--互联网最快,首先保护隐私的消费者DNS服务的同 ...
- 练习webpack遇到的一些问题以及解决办法,供自己以后参考
1.利用nodeJs安装webpack时报出以下错误提示: 这个错误我在网上搜了一下,说是npm文件配置问题,也就是权限不够 解决办法:npm config set registry http://r ...
- linux怎样使用top命令查看系统状态
有时候有很多问题只有在线上或者预发环境才能发现,而线上又不能Debug,所以线上问题定位就只能看日志,系统状态和Dump线程. Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分 ...
