分词程序的测试一般用backoff2005的脚本,但是backoff2005脚本是运行在linux系统上的。如果在windows系统中时,怎么使用该脚本呢?假设用户已经有了icwb2-data压缩包了。
首先得安装perl开发环境。下载地址:
https://dwimperl.googlecode.com/files/dwimperl-5.14.2.1-v7-32bit.exe
接下来,需要安装diff工具,下载地址:
http://superb-dca3.dl.sourceforge.net/project/gnuwin32/diffutils/2.8.7-1/diffutils-2.8.7-1-bin.zip
把diff工具解压到E:\diffutils目录下即可,然后把E:\diffutils\bin目录添加到系统的环境变量中。
接下来,就需要对icwb2-data/script/score脚本进行修改:
把46行的代码修改成:
$diff = "E:/diffutils/bin/diff";
把52,53行的代码修改成:(注意d:/tmp目录要存在)
$tmp1 = "d:/tmp/comp01$$";
$tmp2 = "d:/tmp/comp02$$";
接下来,就可以执行测试命令了:
在E:\icwb2-data目录中打开命令行工具并执行命令,如下:
E:\icwb2-data>perl scripts/score gold/pku_training_words.utf8 gold/pku_test_gold
.utf8 gold/pku_test_gold.utf8 > pku_maxent.score
命令的执行需要一段时间,等待即可。
测试命令完成后,会在E:\icwb2-data目录下生成pku_maxent.score文件,最终结果如下:
INSERTIONS: 0
DELETIONS: 0
SUBSTITUTIONS: 0
NCHANGE: 0
NTRUTH: 27
NTEST: 27
TRUE WORDS RECALL: 1.000
TEST WORDS PRECISION: 1.000
=== SUMMARY:
=== TOTAL INSERTIONS: 0
=== TOTAL DELETIONS: 0
=== TOTAL SUBSTITUTIONS: 0
=== TOTAL NCHANGE: 0
=== TOTAL TRUE WORD COUNT: 104372
=== TOTAL TEST WORD COUNT: 104372
=== TOTAL TRUE WORDS RECALL: 1.000
=== TOTAL TEST WORDS PRECISION: 1.000
=== F MEASURE: 1.000
=== OOV Rate: 0.058
=== OOV Recall Rate: 1.000
=== IV Recall Rate: 1.000
### gold/pku_test_gold.utf8 0 0 0 0 104372 104372 1.000 1.000 1.000 0.058 1.000 1.000
因为我们用的测试集和分词结果集是同一个文件,所以正确率、召回率什么的都是100%。