RF/CRF++工具简单使用案例——词性标注篇
一、语料准备
从网上下载一份人民日报语料(data.txt),并对其进行词性标注(或者下载一份已标注数据作为语料)。效果如下:
在/p 1998年/t 来临/v 之际/f ,/w 我/r 十分/m 高兴/a 地/u 通过/p [中央/n 人民/n 广播/vn 电台/n]nt 、/w [中国/ns 国际/n 广播/vn 电台/n]nt 和/c [中央/n 电视台/n]nt ,/w 向/p 全国/n 各族/r 人民/n ,/w 向/p [香港/ns 特别/a 行政区/n]ns 同胞/n 、/w 澳门/ns 和/c 台湾/ns 同胞/n 、/w 海外/s 侨胞/n ,/w 向/p 世界/n 各国/r 的/u 朋友/n 们/k ,/w 致以/v 诚挚/a 的/u 问候/vn 和/c 良好/a 的/u 祝愿/vn !/w
二、语料处理
对原始数据(data.txt)进行处理,分别生成训练集(train.txt)和测试集(test.txt)。处理后效果如下:
在 p
1998年 t
来临 v
之际 f
, w
我 r
十分 m
高兴 a
地 u
通过 p
其中训练集和测试集每一行都由词和词性组成,每一段结束后需换行处理。(词性视具体情况标注)
三、使用CRF++工具
从网上下载CRF++工具,将训练集(train.txt)和测试集(test.txt)文本放入同一文件夹,然后根据指令对训练集进行训练,生成模型并进行测评评估。
1. 打开命令行窗口
在保存CRF++工具的文件路径导航栏中输入CMD,打开命令行窗口
2. 训练
输入训练指令进行训练,生成模型。
crf_learn template train.txt model
3. 测试
输入测试指令,并将测试结果存入output.txt
crf_test -m model test.txt >output.txt
测试结果(output.txt)效果如下:
在 p p
1998年 t t
来临 v v
之际 f f
, w w
我 r r
十分 m m
高兴 a a
地 u u
通过 p p
4. 评估
输入测评指令,并将测评结果存入result.txt。
perl conlleval.pl -r -d "\t" < output.txt > result.txt
注意:因用到perl指令,需安装perl的环境。网上下载conlleval.pl拷贝到当前CRF++工具文件夹的下面即可。
评估结果(result.txt)效果如下:
processed 113821 tokens with 113821 phrases; found: 113821 phrases; correct: 33153.
accuracy: 29.13%; precision: 29.13%; recall: 29.13%; FB1: 29.13
Ng: precision: 80.00%; recall: 0.85%; FB1: 1.67 5
Tg: precision: 50.00%; recall: 1.10%; FB1: 2.15 2
Vg: precision: 3.57%; recall: 0.82%; FB1: 1.33 56
a: precision: 9.87%; recall: 22.76%; FB1: 13.77 7795
ad: precision: 100.00%; recall: 0.20%; FB1: 0.39 1
an: precision: 0.00%; recall: 0.00%; FB1: 0.00 0
四、结语
本文记录了使用CRF(条件随机场)进行词性标注实验的具体步骤,借此加深对CRF模型的理解和掌握。整体而言,词性标注篇和分词篇步骤基本一致,只是对语料的处理细节有所区别。具体的处理方式视数据而定,不做过多论述。初次学习了解CRF的同学可以用作参考。