欢迎光临 x-algo
关注算法在工业界应用
Hi, 这是一个关注大数据算法在工业界应用的网站

CRF++依存句法分析

语料是清华大学的句法标注语料,包括训练集(train.conll)和开发集合文件(dev.conll),根据模板文件生成了将近两千万个特征,使用CRF++训练,开了40个并发进程,训练了7个小时左右。语料、程序、模型等文件下载:戳我下载【CRF依存句法分析】

在使用网上模板,没有规则修正crf模型输出的情况下,开发集的效果数据如下:

详细过程如下:

生成训练和开发语料

依存关系本身是一个树结构,每一个词看成一个节点,依存关系就是一条有向边。语料本身格式:

数据格式说明:

通过一个python脚本,生成所需要的训练数据: cat train.conll | python get_parser_train_test_input.py > train.data 和测试使用的开发数据: cat dev.conll | python get_parser_train_test_input.py > dev.data ,代码如下(已经折叠):

模板文件

将来可能会在不同的模板下面进行训练尝试,本次使用网络(hankcs)上的一个模板:

 

进行训练和测试过程

通过执行下面命令,-p 表示并发数,我这里服务器是48个核,所以开的比较大:

 

基于规则改写维特比算法

只是通过模型进行预估的时候,可能会有一些违背尝试的结果,例如多个Root、边界超越、依赖边交叉等。所以通过crf进行标注的结果应该是挑选一个满足规则(只有一个Root的数)概率最大的标注结果。所以设计到维特比算法的改写,这里先挖个坑,将来有时间再写。

效果计算脚本

下面脚本用于计算单个词的准确性DA(Dependency Acuracy),Root节点的准确性RA(Root Acuracy),句子准确性SA(SentenceAcuracy)。通过执行: cat dev.rst | python clc.py 进行统计。代码如下(已折叠):

画依存图

纯JS实现:使用JS生成依存句法树

参考资料

基于序列标注的中文依存句法分析方法.pdf  计 峰 邱锡鹏

未经允许不得转载:大数据算法 » CRF++依存句法分析

分享到:更多 ()

评论 抢沙发

*

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

关注大数据算法在工业界应用

本站的GitHub关于本站