一、句法分析

1、定义

  句法分析判断输入的单词序列(一般为句子)的构成是否合乎给定的语法,并通过构造句法树来确定句子的结构以及各层次句法成分之间的关系,即确定一个句子中的哪些词构成一个短语,哪些词是动词的主语或宾语等问题。

2、主流技术

  基于统计的方法是现阶段句法分析的主流技术。常见的概率句法分析模型包括概率上下文无关模型、基于历史的句法分析模型、层次化渐进式的句法分析模型和中心词驱动的句法分析模型。综合多种模型而实现的句法分析器种类繁多,目前在开源中文句法分析器中比较具有代表性有Stanford parserBerkeley parser。前者基于因子模型,后者基于非词汇化分析模型。

3、应用领域

  随着自然语言应用的日益广泛,特别是对文本处理需求的进一步增加,句法分析的作用愈加突出,它在机器翻译、信息检索与抽取、问答系统、语音识别等研究领域中都有重要的应用价值。

二、Berkeley Parser

1、简介

Berkeley Parser是由伯克利大学自然语言处理小组开发的开源句法分析器,目前支持的语种主要有英文、中文、德文、阿拉伯文、保加利亚文、法文等。

2、特点

1) Berkeley Parser是一个纯粹的基于 PCFG的句法分析器,只能进行成分句法分析。

2) 分析器的输入形式可以文件为单位 (每行一个句子),分析完成后得到的输出文件中包含了输入文件中所有句子的句法分析结果。

3) 默认的分析结果输出形式是文本,但为了让分析结果更加直观,可以设置程序的输出形式为句法分析树图像。

4) 可指定输出基于一个句子的排名前 n的句法分析树及每棵树的概率值。

5) 分析器提供了用于读取标准树库的代码,可基于用户指定的树库来训练新的文法。

6) 支持多线程分析,在多处理机系统上能获得更高的句法分析性能。

7) 由于分析器不含分词功能,所以必须先借助外部分词工具来进行分词,再将经过预处理的分词结果串作为句法分析器的输入。

三、使用Berkeley Parser教程——命令行中运行

1. 在Berkeley Parser的github上找到Berkeley Parser的jar包和模型文件并下载。(https://github.com/slavpetrov/berkeleyparser

2. 一个简易的Berkeley Parser工具只需要包含:

  ①berkeleyParser.jar

  ②模板文件:中文为chn_sm5.gr,英文为eng_sm6.gr

  ③输入文件

3. 分析器不含分词功能,所以必须先借助外部分词工具来进行分词,再将经过预处理的分词结果串作为句法分析器的输入。

4. 进行parse之前需要将分词文本中的英文小括号”(“ 和“)”分别转化为”-LRB-”和”-RRB-”。Berkeley parser不能自动的进行这样的转化。中文parser输入输出标记不能用参数-inputFile和-outputFile,必须用”<”和”>”指定,否则会出现乱码问题。

5. 基本命令:

①打印parser的所有选项:

输入:

输出:

②对英文句子进行句法分析:

输入:

③对中文句子进行句法分析:

输入: 

(参数解释:-mx1g     给java虚拟机分配的最大内存为1)

四、使用Berkeley Parser实例

1、中文句法分析

(1)分词包:BerkeleyParser-1.7.jar

(2)输入文件:chinese-ansi-input.txt(ANSI编码)

(3)待分析的句子:中国 的 神威 太湖 之 光 计算机 被 用于 天气 预报 、 制药 研究 和 工业 设计 等 领域 。

(4)使用模板文件:chn_sm5.gr

(5)输出结果到文件:chinese-output.txt

(6)命令行运行的代码:

(7)输出文件的内容:

2、英文句法分析

(1)分词包:BerkeleyParser-1.7.jar

(2)输入文件:english-input.txt(UTF8编码)

(3)待分析的句子:One meets its destiny on the road he takes to avoid it.

(4)使用模板文件:eng_sm6.gr

(5)输出结果到文件:english-output.txt

(6)命令行运行的代码:

(7)输出文件的内容:

参考资料

【1】文献《大规模语料库上的Stanford和Berkeley句法分析器性能对比分析》项炜,金澎;

【2】Berkeley parser -《句法分析工具指南(parser guideline) 》- http://3y.uu456.com/bp-8d672929ed630b1c59eeb595-1.html

参考文件

使用Berkeley Parser进行句法分析的更多相关文章

  1. Berkeley parser使用方法

    1. 简介  Berkeley Parser 是加州大学伯克利分校 NLP 实验室开发的一种基于概率上下文无关文法(PCFG)的成分句法分析器,支持英语,汉语,德语等多个语种,它具有较高的句法分析性能 ...

  2. 使用Stanford Parser进行句法分析

    一.句法分析 1.定义 句法分析判断输入的单词序列(一般为句子)的构成是否合乎给定的语法,并通过构造句法树来确定句子的结构以及各层次句法成分之间的关系,即确定一个句子中的哪些词构成一个短语,哪些词是动 ...

  3. 我的nlp之路(1)

    1/8日任务 基础篇: 如何使用远程连接从windows或者linux连到服务器进行操作(切换用户,传递文件) (严禁使用root账户) Linux基本bash命令 a)        查看文件大小, ...

  4. Stanford CoreNLP 3.6.0 中文指代消解模块调用失败的解决方案

    当前中文指代消解领域比较活跃的研究者是Chen和Vincent Ng,这两个人近两年在AAAI2014, 2015发了一些相关的文章,研究领域跨越零指代.代词指代.名词指代等,方法也不是很复杂,集中于 ...

  5. Measuring Text Difficulty Using Parse-Tree Frequency

    https://nlp.lab.arizona.edu/sites/nlp.lab.arizona.edu/files/Kauchak-Leroy-Hogue-JASIST-2017.pdf In p ...

  6. NLP常用开源/免费工具

    一些常见的NLP任务的开源/免费工具, *Computational Linguistics ToolboxCLT http://complingone.georgetown.edu/~linguis ...

  7. Stanford parser学习:LexicalizedParser类分析

    上次(http://www.cnblogs.com/stGeekpower/p/3457746.html)主要是对应于javadoc写了下LexicalizedParser类main函数的功能,这次看 ...

  8. parsing:NLP之chart parser句法分析器

    已迁移到我新博客,阅读体验更佳parsing:NLP之chart parser句法分析器 完整代码实现放在我的github上:click me 一.任务要求 实现一个基于简单英语语法的chart句法分 ...

  9. 哈工大LTP语言分析:分词、词性标注、句法分析等

    1. LTP介绍和安装 LTP语言云官网  在线演示 | 语言云(语言技术平台云 LTP-Cloud) 安装LTP的python接口包 $ sudo pip install pyltp 模型文件下载 ...

随机推荐

  1. Google Analytics Overview - Google Analytics 概述

    该文档讨论了如何开始使用Google Analytics SDK for Android v3. Before you Begin - 在开始之前 在开始实现SDK之前,请确保有下面的东东: 1.  ...

  2. 2016-2017 ACM-ICPC CHINA-Final Ice Cream Tower 二分+贪心

    /** 题目:2016-2017 ACM-ICPC CHINA-Final Ice Cream Tower 链接:http://codeforces.com/gym/101194 题意:给n个木块,堆 ...

  3. 浅谈Java中的补零扩展和补符号位扩展

    今天,魏屌出了一道题,题目如下: 定义一个大头序的byte[]a={-1,-2,-3,-4},转换成short[]b.问b[0]和b[1]分别是多少? 乍一看,这题不难,无非就是移位操作,再进行组合. ...

  4. URL编码,空格和+

    下表中列出了一些URL特殊符号及编码 + URL 中+号表示空格 %2B 空格 URL中的空格可以用+号或者编码 %20 / 分隔目录和子目录 %2F ? 分隔实际的URL和参数 %3F % 指定特殊 ...

  5. ubuntu 自动清理/tmp目录

    在Ubuntu系统中,在/tmp文件夹里面的内容,每次开机都会被清空,如果不想让他自动清理的话,只需要更改rcS文件中的TMPTIME的值. 我们看如何来修改 sudo vi /etc/default ...

  6. WPF之数据绑定

    WPF学习之数据绑定 1. Banding基础 WPF中的数据绑定提供了很强大的功能.与普通的WinForm程序相比,其绑定功能为我们提供了很多便利,例如Binding对象的自动通知/刷新,Conve ...

  7. 编写高质量代码--改善python程序的建议(一)

    原文发表在我的博客主页,转载请注明出处! 初衷 python是一个入门十分容易的编程语言,但是想要写好python却是一件不容易的事情,如果不是专业使用python的人,只是将python作为一个脚本 ...

  8. JZOJ.5234【NOIP2017模拟8.7】外星人的路径

    Description 有一个外星人控制了你的大脑.一开始你处于原点(0,0).外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左).平面上有N 个关键点,每当外星人 ...

  9. Win10-64位 免安装版Mysql8下载安装运行

    今天忙活了很久去下载安装Mysql,感觉网上的那些教程怎么都对不上呢,很奇怪,不过我乱点一通至少能用了,先凑和着用吧... 记录一下, 要是不对的,以后再修改...windows10系统 2018-5 ...

  10. Less-mixin函数基础二

    //mixin函数 基础使用方法 --包含选择器,example: .test(){ &:hover{ border:1px solid red; } } button{ .test; } / ...