将算法分词结果与人工标注的分词结果对比,以此评估分词效果优劣。人工标注分词文本通常被看作公认的“黄金”标准。主要使用处理速度、精确率、召回率和F值四个指标衡量分词算法的性能。
一、评估指标
- \(TP\):正确分词数量
- \(FP\):错误分词数量
- \(N\):黄金分词数量
- \(W\):算法处理样本字数
- \(T\):算法运行时间(秒)
- 分词算法处理速度使用每秒处理文本字数(或字节数)作为评估单位。
\[ Speed=\frac{W}{T} \] - 精确率:算法分词结果中正确切分的词数占总切分词数的比例。
\[ Precision=\frac{TP}{TP+FP} \] - 召回率:算法分词结果中正确切分的词数占黄金样本中应该被切分出的词数比例。
\[ Recall=\frac{TP}{N} \] - F值:精确率和召回率的调和值,可以理解为综合考虑结果。
\[ F1=\frac{{2}\times{Precision}\times{Recall}}{{Precision} + {Recall}} \]
注意:判断正确/错误切分时要注意切分词语的顺序,如顺序颠倒那么即使切分出词语也是错误。也就是说,不能用”if 词语 in 黄金分词”这种方法判断对错, icwb2使用”diff”命令实现分词对比。
二、封闭测试和开放测试
分词算法可能需要使用词表、统计/训练语料等相关数据,如固定黄金标准数据且提供词表和训练集用于算法设计和训练或参考,则属于封闭测试,可以理解为训练集(参考)和测试集是指定的。反之则属于开放测试。很显然封闭测试效果通常比开放测试好,在实际应用中不同行业或场景的词语切分差异很大,因此开放测试并不便于工程使用。多还是使用封闭测试,测试样本和训练样本来自相同行业/场景。
三、简体中文分词封闭测试实战
访问 Second International Chinese Word Segmentation Bakeoff Data
,下载 icwb2-data 评估数据集和脚本。
解压icwb2-data.zip后可得到多个数据集用于评估分词效果, 其中 PKU(北大), MSR(微软研究院)数据集用于评估简体中文分词. 使用其自带的最大正向匹配分词算法作为分词算法性能比较基准。
PKU分词封闭测试
使用最大正向匹配分词算法切分pku_test.utf8待文件。使用gold文件夹下的pku词表(封闭测试)。
执行score对比人工标注的黄金分词样本和之前算法切分结果差异。
# cd icwb2-data # perl scripts/mwseg.pl gold/pku_training_words.utf8 testing/pku_test.utf8 > test_segmentation.utf8 # perl scripts/score gold/pku_training_words.utf8 gold/pku_test_gold.utf8 test_segmentation.utf8 |
等待执行完成后可看到如下报告,这里其自带mwseg.pl切分的性能为精确率:0.836、召回率:0.904、新词识别率:0.058、新词识别召回率:0.059。词表中未存在的词语为新词(也称为未登陆词),在某些分词算法中词表并不是必须的,不用过多关注新词识别指标。
=== SUMMARY: === TOTAL INSERTIONS: 9829 === TOTAL DELETIONS: 1359 === TOTAL SUBSTITUTIONS: 8648 === TOTAL NCHANGE: 19836 === TOTAL TRUE WORD COUNT: 104372 === TOTAL TEST WORD COUNT: 112842 === TOTAL TRUE WORDS RECALL: 0.904 召回率 === TOTAL TEST WORDS PRECISION: 0.836 精度 === F MEASURE: 0.869 F调和 === OOV Rate: 0.058 新词率(此值同语料不会改变,毕竟词表以外都是未登陆词) === OOV Recall Rate: 0.059 未登陆词招回率 === IV Recall Rate: 0.956 已登陆词召回率 |
scripts/mwseg.pl 是其自带的最大正向匹配分词算法,此脚本分词效果作为分词评估基准。
Leave a Reply