CRF/CRF++工具简单使用案例——分词篇

CRF/CRF++工具简单使用案例——分词篇

一、语料准备

从网上下载一份人民日报语料(data.txt),并采用分词工具对其进行分词处理,。效果如下:(每一句话为一行)

北京/金融街/是/首都/金融/主/中心区/,/“/一/行/三/会/”/和/近/2000/家/国/内/外/大型/金融/机构/及/国企/总部/汇聚/于/此/,/资产/规模/占/全国/金融/机构/资产/规模/的/40%/,/是/全国/一/平方公里/高端/产业/最/聚集/、/创造/价值/最大/的/区域/。/

二、语料处理

对原始数据(data.txt)进行处理,分别生成训练集(train.txt)和测试集(test.txt)。处理后效果如下:(每一句话后需作空行处理)

北    B-word
京    E-word
金    B-word
融    I-word
街    E-word
是    S-word
首    B-word
都    E-word

B-word:指一个单词的开头,例如北京的’北’,金融街的’金’。
E-word:指一个单词的结尾,例如北京的’京’,金融街的’街’。
I-word:指一个单词的中间,例如金融街的’融‘,*的’安‘。
S-word:代表一个课单独存在的字,例如’的‘、‘是’。

三、使用CRF++工具

从网上下载CRF++工具,将训练集(train.txt)和测试集(test.txt)文本放入同一文件夹,然后根据指令对训练集进行训练,生成模型。

1. 打开命令行窗口

在保存CRF++工具的文件路径导航栏中输入CMD,打开命令行窗口
CRF/CRF++工具简单使用案例——分词篇
CRF/CRF++工具简单使用案例——分词篇

2. 训练

输入训练指令进行训练,生成模型。

crf_learn template train.txt model

CRF/CRF++工具简单使用案例——分词篇

3. 测试

输入测试指令,并将测试结果存入output.txt

crf_test -m model test.txt >output.txt

CRF/CRF++工具简单使用案例——分词篇
测试结果(output.txt)效果如下:

北    B-word    B-word
京    E-word    E-word
金    B-word    B-word
融    I-word    I-word
街    E-word    E-word
是    S-word    S-word
首    B-word    B-word
都    E-word    E-word
4. 评估

输入测评指令,并将测评结果存入result.txt。

perl conlleval.pl -r -d "\t" < output.txt > result.txt

注意:因用到perl指令,需安装perl的环境。网上下载conlleval.pl拷贝到当前CRF++工具文件夹的下面即可。
CRF/CRF++工具简单使用案例——分词篇
评估结果(result.txt)效果如下:

processed 544 tokens with 544 phrases; found: 544 phrases; correct: 476.
accuracy:  87.50%; precision:  87.50%; recall:  87.50%; FB1:  87.50
       B-word: precision:  85.92%; recall:  93.85%; FB1:  89.71  213
       E-word: precision:  84.98%; recall:  92.82%; FB1:  88.73  213
       I-word: precision:  91.67%; recall:  78.57%; FB1:  84.62  24
       S-word: precision:  95.74%; recall:  71.43%; FB1:  81.82  9

四、结语

本文记录了使用CRF(条件随机场)进行分词实验的具体步骤,借此加深对CRF模型的理解和掌握。整个分词过程比较简单,初次学习CRF的同学可以用作参考。

上一篇:[白话解析] 用水浒传为例学习条件随机场


下一篇:【DB笔试面试691】在Oracle中,分布式事务ORA-01591错误如何解决?