一、句法分析

1、定义

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

2、主流技术

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

3、应用领域

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

二、Stanford Parser

1、简介

Stanford parser 是由斯坦福大学自然语言处理小组开发的开源句法分析器,是基于概率统计句法分析的一个 JAVA 实现。 分析器目前提供了5个中文文法。

2、优点

①既是一个高度优化的概率上下文无关文法和词汇化依存分析器,也是一个词汇化上下文无关文法分析器。

②基于权威可靠的宾州树库(Penn Treebank)作为分析器的训练数据,目前已面向英文、中文、德文、阿拉伯文、意大利文、保加利亚文、葡萄牙文等语种提供句法分析功能。

③提供了多样化的分析输出形式,除句法分析树输出外,还支持分词和词性标注文本输出、短语结构树输出、斯坦福依存关系输出等。

④分析器内置了分词工具、词性标注工具、基于自定义树库的分析器训练工具等句法分析辅助程序。

⑤通过设置不同的运行参数,可实现句法分析模型选择、自定义词性标记集、文本编码设置和转换、语法关系导入和导出等功能的定制。

三、使用Stanford Parser教程

(一)IDE中运行

1. 在Stanford官方网站下载最新安装包

2. 解压下载后的zip包 stanford-parser-full-2015-12-09.zip,里面会有数据,依赖包以及demo,还有相关的source code和java doc

3. 使用Eclipse创建项目,名为stanfordparser,在build path中引入stanford-parser-3.6.0-models.jar,stanford-parser.jar,slf4j-simple.jar,slf4j-api.jar

4.从步骤2中解压的文件中把ParserDemo.java和ParserDemo2.java和data文件夹都复制到Eclipse项目中。

5. 以ParserDemo.java为例,在Eclipse中右键点击ParserDemo.java文件,设置运行参数Arguments为:

edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz data/english-onesent.txt

(注意gz和data之间有个空格,空格前是第一个参数,空格后是第二个参数。)

第一个参数是PCFG路径,models里已经提供,第二个参数是待分析的数据文件,在data文件夹中。

6.运行,输出的结果为:

(二)命令行中运行

在已解压的stanford-parser-full-2015-12-09文件夹中,找到lexparser.bat文件。在命令窗口中运行这个文件,得到如下结果,即为命令行运行结果。

(三)可视化界面查看句法分析结果

1.在已解压的stanford-parser-full-2015-12-09文件夹中,找到lexparser-gui.bat文件。在命令窗口中运行这个文件,得到如下可视化界面。

2.点击Load File选择要进行句法分析的语料文件。点击Load Parser选择model文件,解析器选择英文。最后点击Parser>即可生成解析树。

上图用了stanford-parser-3.6.0-models.jar的model文件,用了english-onesent.txt作为要句法分析的语料文件。

上图用了stanford-chinese-corenlp-2016-01-19-models.jar的model文件,用了chinese-onesent-utf8.txt作为要句法分析的语料文件。

四、使用Stanford Parser的实例分析

Example:分词&词性标注、句法分析树、依存句法分析

1、先贴全部代码

2、分析的句子

“中国的神威太湖之光计算机被用于天气预报、制药研究和工业设计等领域。”

3、运行结果

①分词并词性标注结果:

②句法分析树结果:

③依存句法分析结果:

4、代码分析

定义modelpath用来存放模型文件。中文处理方面的模型文件有:chineseFactored.ser.gz、chinesePCFG.ser.gz、xinhuaFactored.ser.gz、xinhuaFactoredSegmenting.ser.gz、xinhuaPCFG.ser.gz等。其中factored包含词汇化信息,PCFG是更快更小的模板,xinhua是根据大陆的《新华日报》训练的语料,而chinese同时包含香港和台湾的语料,本程序使用的xinhuaFactoredSegmenting.ser.gz可以对未分词的句子进行句法解析。

初始化用于句法分析的类LexicalizedParser,函数loadModel加载模型文件。

调用ParserGrammar.class里的parse函数,该函数调用tokenize解析函数:首先初始化treebankLanguageBank抽象类的getTokenizerFactory方法,生成解析器tokenizer,将句子分词并进行词性标注,结果放在tokens然后返回。

调用Tree.class里的pennPrint方法打印句法分析树。

实例化ChineseGrammaticalStructure类。调用GrammaticalStructure类的typedDependenciesCollapsed函数,它会调用typedDependencies方法对句子进行依存句法分析。

例如:调试过程中,运行typedDependencies方法对句子进行依存句法分析中,过程变量elementData的第10个数据正在分析句子中“制药研究”的依赖关系,调试结果如下:

“制药研究”的支配词(governor)是“研究”,词性是“NN”,即下图的gov-label-values[3]&[4]

“制药研究”的从属词(dependent)是“制药”,词性是“NN”,即下图的dep-label-values[3]&[4]

“制药研究”的依存关系(reln)是“nn(名词组合形式)”,即下图的reln-shortName

调试结果分析结束。

输出句子的词性标注结果。

参考资料

【1】《大规模语料库上的Stanford和Berkeley句法分析器性能对比分析》项炜,金澎;文献编号1009-3044(2013)08-1984-03

【2】Stanford Parser中标记的中文释义参考-《Stanford Parser学习入门(3)-标记》-http://www.cnblogs.com/csts/p/5445719.html

参考文件

斯坦福句法分析 java_使用Stanford Parser进行句法分析相关推荐

  1. 斯坦福句法分析 java_使用stanford nlp进行依存句法分析

    序 本文主要研究下如何使用stanford nlp进行依存句法分析 maven edu.stanford.nlp stanford-corenlp 3.9.1 LexicalizedParser Le ...

  2. 使用Stanford CoreNLP进行句法分析实战

    使用Stanford CoreNLP进行句法分析实战 目录 使用Stanford CoreNLP进行句法分析实战 Stanford CoreNLP 实战代码

  3. Stanford Parser的学习之开篇(一)

    由于学习的需要,我找到了能够分析中文句子的句法分析器Stanford Parser. 下载地址:http://nlp.stanford.edu/software/lex-parser.shtml#Do ...

  4. stanford parser的python使用

    前提知识: StanfordParser(短语结构句法), StanfordDependencyParser(依存结构句法) StanfordParser 和 StanfordDependencyPa ...

  5. 基于Stanford Parser 及OpenNLP Shallow Parser构建句子语法解析树

    最近做一个项目需要对给定的文本中的句子做Parse,根据POS tag及句子成分信息找出词语/短语之间的dependency,然后根据dependency构建句子的parse tree. 需要用到St ...

  6. 斯坦福神经调控疗法(Stanford Neuromodulation Therapy, SNT)

    抑郁症是全世界致残的主要原因,一半的抑郁症患者患有难治性抑郁症.间歇性theta脉冲刺激 (Intermittent theta-burst stimulation, iTBS) 获美国食品和药物管理 ...

  7. 依存句法分析:基于图的依存句法分析、基于转移的依存句法分析、基于神经网络的依存句法分析

    依存句法分析:基于图的依存句法分析.基于转移的依存句法分析.基于神经网络的依存句法分析 目录

  8. 利用Stanford Parser进行观点词否定词抽取

    利用Stanford Parser进行观点词否定词抽取 问题: 接上一篇内容,当我们在文本中得到特征词的观点词之后,如果我们要做情感分析.极性判定(用户是在赞美还是批评),除了分析观点词本身的情感色彩 ...

  9. python自然语言处理--安装JDK和Stanford Parser

    1. 安装JDK和设置JAVA_HOME 在windows系统上安装JDK和设置JAVA_HOME的步骤如下: 下载JDK,点这里,选择相应的JDK,并单击"Download" 安 ...

  10. 斯坦福句法分析 java_斯坦福句法分析使用方法(java版)

    首先说一下句子相似度分析的主要思想.句法分析和义元分析是两个大方向,如果学过编译原理的大概能明白其中的关系.我做的方向就是句法分析这个方向的. 斯坦福句法分析器绝对不是最好用的中文句法分析器,它的主要 ...

最新文章

  1. 在Ubuntu 16.04.1 LTS上安装ats 5.3.2
  2. 算法笔记_204:第四届蓝桥杯软件类决赛真题(Java语言C组)
  3. 【手写系列】透彻理解MyBatis设计思想之手写实现
  4. 人才测评——帮你“透视”人才
  5. 收集一些工作中常用的经典SQL语句
  6. mysql触发器 node_node.js中事件触发器events的使用
  7. container_of深入理解
  8. java找出两个List集合的重复项
  9. python3.5.2安装pygame_#Python3.6.2(32位) pip安装 和 pygame 环境配置
  10. OpenCV-Python实战(17)——人脸识别详解
  11. stm32,51单片机,AVR单片机( arduino )到底选哪个比较好
  12. 《AIX 5L 系统管理技术》学习笔记之第七章设备管理
  13. 个人主页博客网页设计制作HTML5+CSS大作业——清新春暖花开个人博客网站(6页)
  14. DNS 域名解析系统:CNAME 记录的作用是?
  15. 资产监测设备中法国配置工具介绍(二)
  16. python英文发音-用Python写一个背英文单词程序
  17. 囧,现在才只QQ有远程控制
  18. vectorvn1610报价_VECTOR VN1610 +CANOE+CANALYZER
  19. 7-1 列出连通集(25 分)
  20. excel的常用函数

热门文章

  1. 赛迪中国ECM市场报告解读一:市场需求在2023年将达到275亿元
  2. 杂项-公司:Apple
  3. authentication failed : unrecognized kernel32 module. / NM
  4. 个人博客网站的设计与实现
  5. 栈——后进先出(LIFO:last in first out)
  6. 区块链简介与PMD投资方式
  7. leetcode 1179
  8. 愚人节恶搞html,愚人节来玩变装!爆笑在线恶搞照片网站
  9. linux网卡驱动rtl8188cu,Realtek RTL8188CU芯片无线网卡的Linux驱动安装
  10. docker Got permission denied while trying to connect