一文了解成分句法分析

栏目: 编程工具 · 发布时间: 5年前

本文系作者投稿,作者公众号: AI小白入门(id: StudyForAI),欢迎关注,点击文末"阅读原文"可直达原文链接,也欢迎大家投稿,AI、NLP相关即可。

一文了解成分句法分析

本文介绍了自然语言处理中成分句法分析, 包括定义、基本任务、常见方法以及短语结构和依存结构的关系,最后,分享了一些流行的工具以及 工具 实战例子。

定义

维基百科上给的定义如下: The constituency-based parse trees of constituency grammars (= phrase structure grammars) distinguish between terminal and non-terminal nodes. The interior nodes are labeled by non-terminal categories of the grammar, while the leaf nodes are labeled by terminal categories.

句子的组成成分叫句子成分,也叫句法成分。在句子中,词与词之间有一定的组合关系,按照不同的关系,可以把句子分为不同的组成成分。句子成分由词或词组充当。

句法结构分析是指对输入的单词序列(一般为句子)判断其构成是否合乎给定的语法,分析出合乎语法的句子的句法结构。句法结构一般用树状数据结构表示,通常称之为句法分析树(syntactic parsing tree)或简称分析树(parsing tree),而完成这种分析过程的程序模块称为句法结构分析器(syntactic parser),也简称分析器(parser)。

基本任务

句法结构分析的基本任务主要有三个:1.判断输入的字符串是否属于某种语言。2.消除输入句子中的词法和结构等方面的歧义。3.分析输入句子的内部结构,如成分构成、上下文关系等。

如果一个句子有多种结构表示,句法分析器应该分析出该句子最有可能的结构。有时人们也把句法结构分析称为语言或句子识别。

一般构造一个句法分析器需要考虑二部分:语法的形式化表示和词条信息描述问题,分析算法的设计。目前在自然语言处理中广泛使用的是上下文无关文法(CFG)和基于约束的文法(又称合一语法)。

常见方法

句法结构分析可以分为基于规则的分析方法、基于统计的分析方法以及近年来基于深度学习的方法等。

基于规则的分析方法:其基本思路是由人工组织语法规则,建立语法知识库,通过条件约束和检查来实现句法结构歧义的消除。

基于统计的分析方法:统计句法分析中目前最成功当属基于概率上下文无关文法(PCFG或SCFG)。该方法采用的模型主要包括词汇化的概率模型(lexicalized probabilistic model)和非词汇化的概率模型(unlexicalized probabilistic model)两种。

基于深度学习的分析方法:近几年深度学习在nlp基础任务取得了不错的效果,也涌现出了不少论文。

短语结构和依存结构关系

短语结构树可以被一一对应地转化成依存关系树,反过来则不然,因为一棵依存关系树可能对应多个短语结构树。转化方法可以通过如下实现:

定义中心词抽取规则,产生中心词表;

根据中心词表,为句法树中每个结点选择中心子结点;

同一层内将非中心子结点的中心词依存到中心子结点的中心词上,下一层的中心词依存到上一层的中心词上,从而得到相应的依存结构。

工具推荐

StanfordCoreNLP

斯坦福的,提供成分句法分析功能。

Github地址: https://github.com/Lynten/stanford-corenlp

官网: https://stanfordnlp.github.io/CoreNLP/

# 安装:pip install stanfordcorenlp
# 国内源安装:pip install stanfordcorenlp -i https://pypi.tuna.tsinghua.edu.cn/simple
# 使用stanfordcorenlp进行句法成分分析
# 先下载模型,下载地址:https://nlp.stanford.edu/software/corenlp-backup-download.html
from stanfordcorenlp import StanfordCoreNLP
# 对中文进行句子成分分析
zh_model = StanfordCoreNLP(r'stanford-corenlp-full-2018-02-27', lang='zh')
s_zh = '我爱自然语言处理技术!'
con_zh = zh_model.parse(s_zh)
print(con_zh)

(IP
(IP
(NP (NN 我爱))
(ADVP (AD 自然))
(NP (NN 语言))
(VP (VV 处理)
(NP (NN 技术))))
(PU !)))

# 对英文进行句子成分分析
eng_model = StanfordCoreNLP(r'stanford-corenlp-full-2018-02-27')
s_eng = 'I love natural language processing technology!'
con_eng = eng_model.parse(s_eng)
print(con_eng)


(ROOT
(S
(NP (PRP I))
(VP (VBP love)
(NP (JJ natural) (NN language) (NN processing) (NN technology)))
(. !)))

Berkeley Parser

伯克利大学nlp组开源的工具。提供英文的句法分析功能。

官方地址: http://nlp.cs.berkeley.edu/software.shtml

SpaCy

工业级的自然语言处理工具,遗憾的是不支持中文。

Gihub地址: https://github.com/explosion/spaCy

官网: https://spacy.io/

代码已上传:https://github.com/yuquanle/StudyForNLP/blob/master/NLPbasic/Constituency.ipynb

参考:

1. 统计自然语言处理

2. 中文信息处理报告-2016

作者 乐雨泉,湖南大学在读硕士,研究方向机器学习与自然语言处理,曾在IJCAI、TASLP等会议/期刊发表文章多篇。本文系作者学习过程中的整理总结,欢迎志同道合的朋友关注作者公众号"AI小白入门",一起交流学习,探讨成长

一文了解成分句法分析

长按二维码关注~

AI小白入门

ID: StudyForAI

学习AI学习ai(爱)

期待与您的相遇


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

MySQL性能调优与架构设计

MySQL性能调优与架构设计

简朝阳 / 2009-6 / 59.80元

《MySQL性能调优与架构设计》以 MySQL 数据库的基础及维护为切入点,重点介绍了 MySQL 数据库应用系统的性能调优,以及高可用可扩展的架构设计。 全书共分3篇,基础篇介绍了MySQL软件的基础知识、架构组成、存储引擎、安全管理及基本的备份恢复知识。性能优化篇从影响 MySQL 数据库应用系统性能的因素开始,针对性地对各个影响因素进行调优分析。如 MySQL Schema 设计的技巧......一起来看看 《MySQL性能调优与架构设计》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具