首页 > 解决方案 > 如何在 sklearn-crfsuite 中取回不正确的 NER 预测

问题描述

我正在使用 sklearn-crfsuite 执行 NER。我正在尝试将实体提及案例报告为真阳性(预测和预期正确,即使没有实体),假阳性(预测说是,预期否)或假阴性(预测说不,预期是)。

除了基于标签/令牌的汇总统计信息之外,我看不到如何获取 NER 性能的任何其他信息。

我可以用不同的方式对实体提及进行分组,例如:正确的、不正确的、部分的、缺失的、虚假的。我可以自己围绕它编写一大堆代码来尝试完成此操作(并且可能必须这样做),但是必须通过一次调用来获取此信息?

以下是为获取摘要统计信息而进行的一些调用:

from sklearn import metrics
report = metrics.classification_report(targets, predictions,
                                       output_dict=output_dict)
precision = metrics.precision_score(targets, predictions,
                                    average='weighted')
f1 = metrics.f1_score(targets, predictions, average='weighted')
accuracy = metrics.accuracy_score(targets, predictions)

标签: scikit-learnnlpnamed-entity-recognitioncrf

解决方案


获得您提到的指标(即正确、不正确、部分、缺失、虚假)并不是那么简单,我认为这些指标与引入的 SemEval'13 挑战相同。

我还需要根据这些指标报告一些结果并最终自己编写代码:

我正在与其他人一起工作,我们计划将其发布为可以轻松与开源 NER 系统集成和/或读取 CoNLL 等标准格式的包。随时加入并帮助我们:)


推荐阅读