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

CRF++词性标注

训练和测试的语料都是人民日报98年标注语料,训练和测试比例是10:1,直接通过CRF++标注词性的准确率:0.933882。特征有一千多万个,训练时间比较长。机器cpu是48核,通过crf++,指定并线数量 -p为40,训练了大概七个小时才结束。

语料库、生成训练数据的python脚本、训练日志、模型、计算准确率脚本都上传到网盘,可以直接下载:戳我下载 CRF++词性标注,程序在centos6.5+python2.7下面运行通过,如果在win下或者ubuntu下可能会有异常,通常都是编码、路径规范等小问题,通过逐行debug脚本应该很容易找到问题,同时要确定crf++在自己机器本身编译没有问题,下面说一下每一步的过程。

生成训练和测试数据

生成训练和测试数据脚本:get_post_train_test_data.py,执行过程中会打印出来一些调试信息。

执行训练和测试

设置模板为:

训练的时候的-p参数根据自己机器情况设置

计算准确率

通过命令:python clc_f.py  test.rst 执行python脚本,clc_f.py中的具体程序:

实验结果

 

未经允许不得转载:大数据算法 » CRF++词性标注

分享到:更多 ()

评论 20

*

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #8

    这个如果想提高识别的准确率有什么办法?

    这个如果想提高识别准确率2年前 (2016-04-07)回复
    • (1)比较有效的办法是通过词典缩小当前词性的候选集(默认有44种词性),然后再跑维特比算法计算。 (2)更加复杂的特征、针对bad case针对性的添加训练语料

      leihao2年前 (2016-04-07)回复
  2. #7

    生成训练和测试数据的python脚本有问题吧?运行半天都没有生成数据

    pythoner2年前 (2016-04-27)回复
    • 下载对应语料了吗? 网盘中有完整的语料、代码、训练好的模型

      leihao2年前 (2016-04-27)回复
  3. #6

    下载语料的连接怎么是空的

    星辰2年前 (2016-05-18)回复
  4. #5

    可能是网络问题,我今天下载的时候是好的了,不好意思哦

    星辰2年前 (2016-05-19)回复
  5. #4

    怎么解决文本过大导致crf++(0.58版本)在训练的时候停止运行的问题,windows下训练的?我的训练语料处理为crf格式之后大概是200W行,但是我把训练数据缩小到100W行的时候就可以成功运行出model文件。求楼主解答!

    梦-游江南夜2年前 (2016-06-30)回复
    • 我没有你的规模大,我是linux下面训练的,你可能是内存不够了?训练过程中可以关注一下cpu和内存的情况。其实如果100W的准确率已经达到预期,就可以不折腾了,如果一定要使用所有的语料,可以尝试将特征模板改的简单一些。我这边单机是250G内存48核CPU的机器,如果方便,我很愿意帮你训练试试。我的邮箱 adleihao#outlook.com

      leihao2年前 (2016-06-30)回复
      • 我在linux上面跑成功了,还是谢谢~~~

        梦-游江南夜2年前 (2016-07-01)回复
        • 怎么跑成功的?内存和CPU,以及训练语料规模可否说下

          DJ2年前 (2016-09-01)回复
  6. #3

    hi,您好,我单线程跑没出问题。多线程跑的时候就报错了,好奇怪。shrinking size: 20Segmentation fault (core dumped)tagger.cpp(57) [feature_index_->open(model.c_str(), 0)] feature_index.cpp(105) [mmap_.open(filename1)] mmap.h(160) [(fd = open__(filename, flag | O_BINARY)) >= 0] open failed: model

    陈军2年前 (2016-10-27)回复
    • 好像发现了问题,语料中有多个空行,貌似就不能跑多线程了。可是你可以跑多线程啊,下载的是你的训练语料句子里面是有多个空行的,不知道什么原因、

      陈军2年前 (2016-10-27)回复
      • 可能系统问题,我是linux centos

        leihao2年前 (2016-10-27)回复
        • 哦哦,我的是ubutun

          陈军2年前 (2016-11-03)回复
    • sudo sh exec.sh

      wotaoyanjiaobu11个月前 (09-16)回复
  7. #2

    楼主,为什么训练程序一直出来不来,是死循环吗?运行半天都没有生成数据,用的就是百度云的源数据,在ubuntu下跑的

    kingsleyhsu1年前 (2017-03-24)回复
    • 是运行了do.sh吗? 程序会将所有输出定向到文件里,看文件即可。

      leihao1年前 (2017-03-24)回复
  8. #1

    同问是否生成训练数据和测试数据的Python脚本有问题,一直运行但不返回数据。(语料没有问题)

    lalland1年前 (2017-04-09)回复
    • centos上面测试的python2.7是没有问题的,你可以逐行都调试一下试试

      leihao1年前 (2017-04-09)回复
    • 想问一下,这个问题有解决么,还没看出那里有问题。但是这个Python脚本无法生成结果

      XXD1年前 (2017-05-12)回复

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

本站的GitHub关于本站