`

pyhanlp 两种依存句法分类器

阅读更多

 

 依存句法分析器

HanLP中一共有两种句法分析器

·依存句法分析

1基于神经网络的高性能依存句法分析器

2MaxEnt依存句法分析

基于神经网络的高性能依存句法分析器

HanLP中的基于神经网络的高性能依存句法分析器参考的是14年Chen&Manning的论文(A Fast and Accurate Dependency Parser using Neural Networks),这里还有一个发在了Github的实现程序,其实现语言为Python。除此之外,你还可以参考ljj123zz 的CSDN 一篇博客:blog.csdn.net/ljj123zz/article/details/78834838

HanLP作者的原文介绍已经写得比较清楚,唯一要注意的是原文章中介绍的依存句法分析器为早期版本,输出的依存关系为英文,现在应该变为中文,而且从测试结果看,训练语料应该已经更新了,但是更新为了那个语料现在还不会是很清楚。

 

hanlp开源项目负责人hankcs

基于最大熵的依存句法分析器

经过测试这个句法分析器为真的很坑,绝对不建议使用,测试代码见最后,作者原文介绍请点击www.hankcs.com/nlp/parsing/to-achieve-the-maximum-entropy-of-the-dependency-parser.html

下面是使用的例子

基于神经网络的高性能依存句法分析器

from pyhanlp import *

# 依存句法分析

sentence = HanLP.parseDependency("徐先生还具体帮助他确定了把画雄鹰、松鼠和麻雀作为主攻目标。")

 

print(sentence)

 

for word in sentence.iterator():  # 通过dir()可以查看sentence的方法

    print("%s --(%s)--> %s" % (word.LEMMA, word.DEPREL, word.HEAD.LEMMA))

print()

 

# 也可以直接拿到数组,任意顺序或逆序遍历

word_array = sentence.getWordArray()

for word in word_array:

    print("%s --(%s)--> %s" % (word.LEMMA, word.DEPREL, word.HEAD.LEMMA))

print()

 

# 还可以直接遍历子树,从某棵子树的某个节点一路遍历到虚根

CoNLLWord = JClass("com.hankcs.hanlp.corpus.dependency.CoNll.CoNLLWord")

head = word_array[12]

while head.HEAD:

    head = head.HEAD

    if (head == CoNLLWord.ROOT):

        print(head.LEMMA)

    else:

        print("%s --(%s)--> " % (head.LEMMA, head.DEPREL))

1徐先生徐先生nhnr_4主谓关系__

2dd_4状中结构__

3具体具体aad_4状中结构__

4帮助帮助vv_0核心关系__

5rr_4兼语__

6确定确定vv_4动宾关系__

7uu_6右附加关系__

8pp_15状中结构__

9vv_8介宾关系__

10雄鹰雄鹰nn_9动宾关系__

11wpw_12标点符号__

12松鼠松鼠nn_10并列关系__

13cc_14左附加关系__

14麻雀麻雀nn_10并列关系__

15作为作为vv_6动宾关系__

16主攻主攻vvn_17定中关系__

17目标目标nn_15动宾关系__

18wpw_4标点符号__

 

徐先生 --(主谓关系)--> 帮助

--(状中结构)--> 帮助

具体 --(状中结构)--> 帮助

帮助 --(核心关系)--> ##核心##

--(兼语)--> 帮助

确定 --(动宾关系)--> 帮助

--(右附加关系)--> 确定

--(状中结构)--> 作为

--(介宾关系)--> 把

雄鹰 --(动宾关系)--> 画

--(标点符号)--> 松鼠

松鼠 --(并列关系)--> 雄鹰

--(左附加关系)--> 麻雀

麻雀 --(并列关系)--> 雄鹰

作为 --(动宾关系)--> 确定

主攻 --(定中关系)--> 目标

目标 --(动宾关系)--> 作为

--(标点符号)--> 帮助

 

徐先生 --(主谓关系)--> 帮助

--(状中结构)--> 帮助

具体 --(状中结构)--> 帮助

帮助 --(核心关系)--> ##核心##

--(兼语)--> 帮助

确定 --(动宾关系)--> 帮助

--(右附加关系)--> 确定

--(状中结构)--> 作为

--(介宾关系)--> 把

雄鹰 --(动宾关系)--> 画

--(标点符号)--> 松鼠

松鼠 --(并列关系)--> 雄鹰

--(左附加关系)--> 麻雀

麻雀 --(并列关系)--> 雄鹰

作为 --(动宾关系)--> 确定

主攻 --(定中关系)--> 目标

目标 --(动宾关系)--> 作为

--(标点符号)--> 帮助

 

麻雀 --(并列关系)-->

雄鹰 --(动宾关系)-->

--(介宾关系)-->

--(状中结构)-->

作为 --(动宾关系)-->

确定 --(动宾关系)-->

帮助 --(核心关系)-->

##核心##

最大熵依存句法分析器

MaxEntDependencyParser = JClass("com.hankcs.hanlp.dependency.MaxEntDependencyParser")

 

print("hankcs每天都在写程序")

print(MaxEntDependencyParser.compute("hankcs每天都在写程序"))

print("吴彦祖每天都在写程序")

print(MaxEntDependencyParser.compute("吴彦祖每天都在写程序"))

hankcs每天都在写程序

1hankcshankcsxx_6限定__

2每天每天rr_5施事__

3dd_5程度__

4dd_5程度__

5vv_0核心成分__

6程序程序nn_5内容__

 

吴彦祖每天都在写程序

1吴彦祖吴彦祖nnr_5施事__

2每天每天rr_5施事__

3dd_5程度__

4dd_5程度__

5vv_0核心成分__

6程序程序nn_5内容__

 

作者:FontTian

 

分享到:
评论

相关推荐

    依存句法深度学习

    依存句法分析是一种语法分析方法,它关注于句子中词语之间的直接关系,即依存关系。这种关系反映了词汇层面的结构特征,能够帮助理解和解析句子的语义。传统的依存句法分析通常采用基于规则的方法或概率图模型来进行...

    依存句法情感分析参考文档

    依存句法情感分析是一种在自然语言处理领域中广泛应用的技术,它结合了依存句法分析和情感分析两个核心概念。依存句法分析旨在理解句子中词语之间的结构关系,而情感分析则专注于识别和提取文本中的主观信息,如情感...

    依存句法分析代码.py

    自然语言理解,依存句法,句法分析,机器学习,人工智能

    依存句法树解析(Stanfordnlp、nltk)

    ## 使用Stanfordnlp和nltk进行**依存句法分析**,提取动名词短语 分词之后名词动词合并成chunking短语 主函数:sentenceSplit_host.py 输入:text.txt 输出:dependency.txt ## 主要步骤 通过读取text.txt文本...

    自然语言处理 中英文句法分析与依存句法分析——文本和代码

    在使用StanfordCoreNLP对文本句子进行分析时,需要先对句子进行分词 nlp.word_tokenize(sentence) 然后对分词后的句子进行...再之后就是句法分析与依存句法分析 nlp.parse(sentence) nlp.dependency_parse(sentence)

    论文研究-中文复杂名词短语依存句法分析.pdf

    针对中文复杂名词短语的依存句法分析...实验证明对于复杂名词短语的依存句法分析,算法准确率比简单边优先算法有明显提高,且优于基于最大生成树算法的中文句法分析器;算法分析效率更高,时间复杂度为O(n2 log n)。

    基于依存句法分析的中文语义角色标注

    该系统针对中文依存关系树,采用有效的剪枝算法和特征,使用最大熵分类器进行语义角色的识别和分类。系统使用了两种不同的语料,一种是由标准短语结构句法分析(CTB5.0)转换而来,另一种是CoNLL2009公布的中文语料。系统...

    论文研究-依存句法分析在语音识别后处理中的应用 .pdf

    本文探讨了依存句法分析在语音识别后处理中的应用,通过提出一种基于依存句法分析的长距离语言模型和基于依存关系下的词性搭配加权联合重打分方法,有效地提高了语音识别系统的识别率。 首先,要理解依存句法分析的...

    基于序列标注的中文依存句法分析方法

    提出了一种基于序列标注模型的中文依存句法分析方法。 该方法将依存句法分析转化成序列标注问题, 利用条件随机 场 CRF ( Cond itionalR andom F ie ld)建立序列标注模型。 在宾州中文树库的测试中, 达得了 76. 59% ...

    百度开源的依存句法分析系统

    依存句法分析是自然语言处理核心技术之一,旨在通过分析句子中词语之间的依存关系来确定句子的句法结构,依存句法分析作为底层技术,可直接用于提升其他NLP任务的效果,这些任务包括但不限于语义角色标注、语义匹配...

    MSTParser.tar.gz_MSTParser_max-mstparser_依存句法_依存句法分析

    依存句法分析是理解句子结构的一种方法,它关注的是词汇项之间的直接依赖关系,而不是传统的短语结构。MSTParser,全称Maximum Spanning Tree Parser(最大生成树解析器),其核心理念基于图论中的最大生成树算法,...

    句法依存和语义依存.key

    依存句法分析和语义依存是自然语言处理的重要任务。本资料介绍了依存句法和语义依存,并着重对比了依存句法、SRL和语义依存的不同,重点突出了语义依存的优点。

    结合全局向量特征的神经网络依存句法分析模型.pdf

    本文介绍了一种结合全局向量特征的神经网络依存句法分析模型,旨在提高依存句法分析的准确率。该模型使用时序型长短时记忆(LSTM)网络和分片池化的卷积神经网络(CNN),分别提取词向量特征和全局向量特征,将两类...

    基于依存句法的关系抽取

    2. **NLTK**:NLTK是一个广泛使用的Python NLP库,虽然它的依存句法分析能力相对较弱,但它可以与MaltParser或UDPipe等外部解析器结合使用。首先,需要下载相关的数据资源,然后调用`nltk.parse.malt`模块进行句法...

    Stanford_Parser中文句法分析器使用教程

    Stanford Parser 是一种功能强大的中文句法分析器,它可以对中文句子进行依存关系分析,生成句法树和词性标注。下面是使用 Stanford Parser 进行中文句法分析的教程。 一、使用时注意两点: 在使用 Stanford ...

    农业领域知识图谱的构建,包括数据爬取、数据分类、基于依存句法分析的关系抽取和利用neo4j生成可视化知识图谱+源代码+文档说明

    农业领域知识图谱的构建,包括数据爬取、数据分类、基于依存句法分析的关系抽取和利用neo4j生成可视化知识图谱+源代码+文档说明,主要包括数据爬取(百度百科)、数据分类、利用结构化数据生成三元组、非结构化数据的...

    课件06_自然语言理解_句法分析1_短语结构与依存结构句法.pdf

    自上而下和自下而上的方法是句法分析的两种基本策略。自上而下分析从起始符号开始尝试使用产生式规则推导句子,而自下而上分析则是从句子的各个词汇开始,尝试回溯到起始符号。 CKY算法是一种动态规划算法,用于...

    DDParser:百度开源的依存句法分析系统

    人员和商业合作伙伴共享效果领先的依存句法分析技术,我们开源了基于大规模分类数据训练的高级的依存句法分析工具,并提供一键式安装及预测服务,用户只需一条命令即可获取依存句法分析结果。 项目介绍 DDParser...

    09.2 依存句法分析基本概念、方法及实现,短语结构与依存结构的关系,局部句法分析,汉英句法结构特点对比1

    总的来说,依存句法分析是自然语言处理中的重要工具,它提供了一种理解和建模句子结构的有效方法,尤其适用于那些语序灵活、动词支配性强的语言。在实际应用中,这种分析方法常用于信息抽取、机器翻译、问答系统等...

Global site tag (gtag.js) - Google Analytics