如题,conlleval_rev.pl是命名实体识别计算precision,recall和F1分数的常用工具,但在使用过程中容易出现如下图所示问题:
processed 223833 tokens with 15018 phrases; found: 15097 phrases; correct: 12041.
accuracy: 98.08%; precision: 79.76%; recall: 80.18%; FB1: 79.97
: precision: 73.12%; recall: 73.67%; FB1: 73.39 7366
: precision: 73.12%; recall: 73.67%; FB1: 73.39 7366
LOC: precision: 89.94%; recall: 84.55%; FB1: 87.16 3439
ORG: precision: 73.65%; recall: 83.94%; FB1: 78.46 2490
PER: precision: 95.89%; recall: 92.70%; FB1: 94.27 1802
即,在计算结果中出现未知实体类别,冒号左边显示为空。显然出现该问题一定是左后的标签文件出现问题,因此,应该从生成的标签着手,如下图:
我 O O
们 O O
变 O O
而 O O
以 O O
书 O O
会 O O
友 O O
, O O
以 O O
书 O O
结 O O
缘 O O
本人的解决方案是,将标签大写字母“O” 替换为数字‘0’,然后,,,,,然后就解决了,神奇不?
processed 112188 tokens with 3819 phrases; found: 4074 phrases; correct: 3252.
accuracy: 97.55%; precision: 79.82%; recall: 85.15%; FB1: 82.40
LOC: precision: 87.07%; recall: 82.16%; FB1: 84.55 1841
ORG: precision: 62.09%; recall: 86.89%; FB1: 72.43 1377
PER: precision: 92.76%; recall: 89.82%; FB1: 91.26 856
小编只是采用conlleval_rev.pl进行计算,未深究其语言perl,如果懂行的道友,还请解释一下为什么把字母O换成‘0’就行了。。。。。?