CRF学习日记-1

来源:互联网 发布:对外贸易数据网 编辑:程序博客网 时间:2024/06/02 19:43

     把CRF的学习来的一点知识总结一下啊,脑子总是坏的很,一转眼就忘了,如果能给如我这样的NLP和计算机菜鸟带来帮助的话,就更开心了。偷笑

    概述 

         对于想学习NLP的入门级人员来说,先找个模型,做一个简单的任务,俺以为是一个非常不错的方法,感谢导师,让俺选择CRF做实体识别。

       初学者一定要先科普一些NLP分词识别和词性识别的基础,再学习CRF++里面Example里面的案例(Example里面有四个任务,basenp,chunking,JapaneseNE,seg。前两个是英文数据,后两个是日文数据。第一个是命名实体识别,第二个应该是分词,后面两个没学习)。

 CRF分词原理

     CRF代表了新一代的机器学习技术分词,其基本思路是对汉字进行标注即由字构词(组词),不仅考虑了文字词语出现的频率信息,同时考虑上下文语境,具备较好的学习能力,因此其对歧义词和未登录词的识别都具有良好的效果;其不足之处是训练周期较长,运营时计算量较大,性能不如词典分词。

  1. CRF把分词当做字的词位分类问题,通常定义字的词位信息如下:

  • 词首,常用B表示
  • 词中,常用M表示
  • 词尾,常用E表示
  • 单子词,常用S表示

2. CRF分词的过程就是对词位标注后,将B和E之间的字,以及S单字构成分词

3. CRF分词实例:

  • 原始例句:我爱北京天安门
  • CRF标注后:我/S 爱/S 北/B 京/E 天/B 安/M 门/E
  • 分词结果:我/爱/北京/天安门

CRF分词工具包

          我选择了CRF++,地址:http://taku910.github.io/crfpp/,可以去下载程序包,上面还有 案例介绍。windows环境下不需要安装,准备好训练数据,模板,测试数据之后,直接在Dos下运行命令即可。工具包内部文件如下图所示。

      

     doc文件夹:就是官方主页的内容。
    example文件夹:有四个任务的训练数据、测试数据和模板文件。
    sdk文件夹:CRF++的头文件和静态链接库。
    crf_learn.exe:CRF++的训练程序。
    crf_test.exe:CRF++的预测程序
    libcrfpp.dll:训练程序和预测程序需要使用的静态链接库。

    实际上,需要使用的就是crf_learn.exe,crf_test.exe和libcrfpp.dll,这三个文件。






0 0
原创粉丝点击