Stanford CRFClassifier 性能评估输出

Stanford CRFClassifier performance evaluation output

我正在关注此常见问题解答 https://nlp.stanford.edu/software/crf-faq.shtml 以训练我自己的分类器,我注意到性能评估输出与结果不匹配(或者至少与我预期的方式不匹配)。 特别是这个部分

CRFClassifier tagged 16119 words in 1 documents at 13824.19 words per second. Entity P R F1 TP FP FN MYLABEL 1.0000 0.9961 0.9980 255 0 1 Totals 1.0000 0.9961 0.9980 255 0 1

我希望 TP 是预测标签与黄金标签匹配的所有实例,FP 是预测 MYLABEL 但黄金标签是 [=14] 的所有实例=]、FN 是预测为 O 但黄金为 MYLABEL 的所有实例。

如果我自己根据程序的输出计算这些数字,我会得到完全不同的数字,与程序打印的内容无关。我用各种测试文件试过这个。 我正在使用 Stanford NER - v3.7.0 - 2016-10-31

我是不是漏掉了什么?

F1 分数基于实体而不是标签。

示例:

(Joe, PERSON) (Smith, PERSON) (went, O) (to, O) (Hawaii, LOCATION) (., O).

在此示例中,有两个可能的实体:

Joe Smith   PERSON
Hawaii      LOCATION

实体是通过使用具有相同标签的所有相邻标记创建的。 (除非你使用更复杂的 BIO 标签方案;BIO 方案有像 I-PERSON 和 B-PERSON 这样的标签来指示一个标记是否是一个实体的开始,等等)。