NER 的评估方式应该是以entity为基本单位而不是以单个tag 为单位
jiesutd opened this issue · comments
Jie Yang commented
感谢使用我们的论文和数据。
我发现你的评估函数中 precision/recall/F1 是所有tag 的平均值,然而实际的NER 的评估是以entity 为单位的而不是以tag 为单位。举个例子:
美 B-LOC
国 E-LOC
的 O
华 B-PER
莱 I-PER
士 E-PER
我 O
跟 O
他 O
谈 O
笑 O
风 O
生 O
这里实际上我们只关心美国(LOC) 和 华莱士(PER) 这两个entity 有没有预测对。 因此评估时需要先把识别出的entity的位置及其种类抽取出来,如果其中有任何一个不一致就得当作这个预测是错的。
可以参考https://github.com/jiesutd/NCRFpp/blob/master/utils/metric.py 对NER评估函数的实现。
Ray commented
@jiesutd 你好,这种序列标注的ensemble,应当是针对每一个tag(每一个字)去投票吗,还是说应当对识别出实体投票,只是简单的取交集的话,不是会丢弃很多有可能正确的数据吗,这方面有没有什么资料呢?感激不尽
Lijuce commented
同意,单纯某个标签预测准确是无太大意义的。要完整实体识别出来并正确分类,才是最终要的结果。
pustar commented
这个问题(评价标准)改了吗?