`

基于CRF序列标注的中文依存句法分析器的Java实现

阅读更多


这是一个基于
CRF的中文依存句法分析器,内部CRF模型的特征函数采用 双数组Trie树(DoubleArrayTrie)储存,解码采用特化的维特比后向算法。相较于《最大熵依存句法分析器的实现》,分析速度翻了一倍,达到了1262.8655 sent/s

开源项目

本文代码已集成到HanLP中开源项目中,最新hanlp1.7版本已经发布

CRF简介

CRF是序列标注场景中常用的模型,比HMM能利用更多的特征,比MEMM更能抵抗标记偏置的问题。在生产中经常使用的训练工具是CRF++,关于CRF++的使用以及模型格式请参阅《CRF++模型格式说明》。

CRF训练

语料库

与《最大熵依存句法分析器的实现》相同,采用清华大学语义依存网络语料的20000句作为训练集。

预处理

依存关系事实上由三个特征构成——起点、终点、关系名称。在本CRF模型中暂时忽略掉关系名称(在下文可以利用其它模型补全)。

根据依存文法理论, 我们可以知道决定两个词之间的依存关系主要有二个因素: 方向和距离。因此我们将类别标签定义为具有如下的形式:

[ + |- ] dPOS

其中, [ + | – ]表示方向, + 表示支配词在句中的位置出现在从属词的后面, – 表示支配词出现在从属词的前面; POS表示支配词具有的词性类别; d表示距离。

比如原树库:



 

转换后:



 

特征模板

 



 

训练参数

 

1.crf_learn -f 3 -c 4.0 -p 3 template.txt train.txt model -t

 

我的试验条件(机器性能)有限,每迭代一次要花5分钟,最后只能设定最大迭代数为100。经过痛苦的迭代,得到了一个效果非常有限的模型,其serr高达50%,暂时只做算法测试用。

解码

标准的维特比算法假定所有标签都是合法的,但是在本CRF模型中,标签还受到句子的约束。比如最后一个词的标签不可能是+nPos,必须是负数,而且任何词的[+/-]nPos都得保证后面(或前面,当符号为负的时候)有n个词语的标签是Pos。所以我覆写了CRF的维特比tag算法,代码如下:


 

 

注意上面的

 

 1.if (!isLegal(j, i, table)) continue;

 

保证了标签的合法性。

这一步的结果:

 



 

后续处理

有了依存的对象,还需要知道这条依存关系到底是哪种具体的名称。我从树库中统计了两个词的词与词性两两组合出现概率,姑且称其为2gram模型,用此模型接受依存边两端的词语,输出其最可能的关系名称。

最终结果

转换为CoNLL格式输出:



 

 

 

  • 大小: 74.7 KB
  • 大小: 26.4 KB
  • 大小: 121.4 KB
  • 大小: 217.4 KB
  • 大小: 28.5 KB
  • 大小: 85.6 KB
分享到:
评论

相关推荐

    自然语言句法词法分析器Java版

    这通常通过构建句法树来实现,Java版的句法分析器可能采用了如CFG(上下文无关文法)、依存句法分析或者更现代的深度学习模型(如LSTM、Transformer)来完成。这样的工具对于理解文本意义,特别是进行复杂的语义分析...

    Java 词海分析 自然语言分析 人名地名机构名提取自定义词典

    中文分词 最短路分词 N-最短路分词 CRF分词 索引分词 极速词典分词 用户自定义词典 词性标注 命名实体识别 ...基于神经网络的高性能依存句法分析器 MaxEnt依存句法分析 CRF依存句法分析 语料库工具

    maltparser 1.7 句法分析器

    **maltparser 1.7 句法分析器** maltparser 1.7 是一个广泛使用的开源软件,专门用于句法分析,尤其在数据驱动的依存句法解析领域表现出色。它由瑞典乌普萨拉大学的研究团队开发,为自然语言处理(NLP)提供了强大...

    句法分析器

    5. **统计模型**:现代的句法分析器通常基于统计学习方法,如隐马尔科夫模型(HMM)、条件随机场(CRF)或更复杂的神经网络模型,这些模型通过大量标注数据进行训练,以预测最佳的句法结构。 6. **特征工程**:在...

    基于 TensorFlow & PaddlePaddle 的通用序列标注算法库.zip

    在NLP领域,常见的序列标注任务包括词性标注、实体识别、依存句法分析等。这些任务对于理解文本语义、信息提取和机器翻译等应用至关重要。例如,在命名实体识别中,系统需要识别出文本中的人名、地名、机构名等实体...

    句法树可视化程序

    短语结构分析关注构成句子的各个短语及其组成关系,而依存句法分析则强调词与词之间的依赖关系,即每个词都依赖于句中的另一个词(通常是动词)来确定其语法功能。 语义角色标注是句法分析的延伸,它不仅关注词的...

    典型相关分析matlab实现代码-java-summary-project:关于引用到HanLP项目的文本摘要(摘自hankcs/HanLP)

    基于神经网络的高性能依存句法分析器 MaxEnt依存句法分析 CRF依存句法分析 语料库工具 分词语料预处理 词频词性词典制作 BiGram统计 词共现统计 CoNLL语料预处理 CoNLL UA/LA/DA评测工具 在提供丰富功能的同时,...

    典型相关分析matlab实现代码-PLnaH:肺炎

    基于神经网络的高性能依存句法分析器 MaxEnt依存句法分析 CRF依存句法分析 语料库工具 分词语料预处理 词频词性词典制作 BiGram统计 词共现统计 CoNLL语料预处理 CoNLL UA/LA/DA评测工具 在提供丰富功能的同时,...

    HanLP:汉语语言处理-源码

    基于ArcEager转移系统的柱搜索依存句法分析器 文本分类 情感分析 文本聚类 KMeans,Repeated Bisection,自动推断聚类数目k word2vec 词向量训练,加载,词语相似度计算,语义运算,查询,KMEANS聚类 文档语义相似度...

    典型相关分析matlab实现代码-HandLP:HandLP

    基于神经网络的高性能依存句法分析器 MaxEnt依存句法分析 CRF依存句法分析 文本分类情感分析 word2vec 词向量训练、加载、词语相似度计算、语义运算、查询、KMeans聚类 文档语义相似度计算 语料库工具 分词语料...

    典型相关分析matlab实现代码--:--

    基于神经网络的高性能依存句法分析器 MaxEnt依存句法分析 CRF依存句法分析 语料库工具 分词语料预处理 词频词性词典制作 BiGram统计 词共现统计 CoNLL语料预处理 CoNLL UA/LA/DA评测工具 在提供丰富功能的同时,...

    典型相关分析matlab实现代码-HanLP:汉普

    基于神经网络的高性能依存句法分析器 MaxEnt依存句法分析 CRF依存句法分析 语料库工具 分词语料预处理 词频词性词典制作 BiGram统计 词共现统计 CoNLL语料预处理 CoNLL UA/LA/DA评测工具 在提供丰富功能的同

    典型相关分析matlab实现代码-HanLP:汉语言处理

    基于神经网络的高性能依存句法分析器 MaxEnt依存句法分析 CRF依存句法分析 语料库工具 分词语料预处理 词频词性词典制作 BiGram统计 词共现统计 CoNLL语料预处理 CoNLL UA/LA/DA评测工具 在提供丰富功能的同时,...

    典型相关分析matlab实现代码-HanLP-1.5.4:汉LP-1.5.4

    基于神经网络的高性能依存句法分析器 MaxEnt依存句法分析 CRF依存句法分析 文本分类情感分析 word2vec 词向量训练、加载、词语相似度计算、语义运算、查询、KMeans聚类 文档语义相似度计算 语料库工具 分词语料...

    NewMode-Summary:Using DP based on Bidirectional stragety for ShortestSegment is more efficient than the original GreedyMethod using ViterbiSegment or DijkstraSegment .(Forked from hankcsHanLP)改良于里面的分词作法,本论文对于文章之自动摘要基于双向的动态规划方法之处理下而优化整体分词效能

    HanLP: Han Language Processing 汉语言处理包 HanLP是由一系列模型与算法组成的Java工具包,目标是普及自然语言处理...基于神经网络的高性能依存句法分析器 MaxEnt依存句法分析 CRF依存句法分析 语料库工具 分词语料预

    深度学习500问-Tan-16第十六章 NLP1

    HMM和Viterbi算法常用于词性标注,而Bi-LSTM+CRF组合则在序列标注任务中表现出色,如命名实体识别。Parser是进行句法分析的工具,如ZPar,它可以生成句法树,帮助我们理解句子的组成和关系。 总的来说,本章深入浅...

    典型相关分析matlab实现代码-hanlp-mi:删除一些功能以满足我们的要求

    基于神经网络的高性能依存句法分析器 MaxEnt依存句法分析 CRF依存句法分析 语料库工具 分词语料预处理 词频词性词典制作 BiGram统计 词共现统计 CoNLL语料预处理 CoNLL UA/LA/DA评测工具 在提供丰富功能的同

    NLP常用开源地址

    句法分析是确定句子结构的过程,包括短语结构分析和依存句法分析。Stanford Parser不仅提供词性标注,还提供了强大的句法分析功能。Berkeley Parser和Charniak Parser是另外两个著名的英文句法分析器。依存分析工具...

    matlab信息熵代码-HanLP-master:一个人工智能的框架

    基于神经网络的高性能依存句法分析器 MaxEnt依存句法分析 CRF依存句法分析 语料库工具 分词语料预处理 词频词性词典制作 BiGram统计 词共现统计 CoNLL语料预处理 CoNLL UA/LA/DA评测工具 在提供丰富功能的同时, Ha

Global site tag (gtag.js) - Google Analytics