首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何自动计算NER的准确率(精确度、召回率、F1)?

如何自动计算NER的准确率(精确度、召回率、F1)?
EN

Stack Overflow用户
提问于 2019-01-06 07:49:40
回答 2查看 1.1K关注 0票数 0

我使用的是一个NER系统,它提供一个文本文件作为输出,其中包含一个命名实体的列表,这些实体是concept Speaker的实例。我正在寻找一个工具,可以通过将这个列表和黄金标准作为输入来计算系统的精确度,召回率和F1,其中实例被正确地用标签<Speaker>注释。

我有两个txt文件: Instances.txt和GoldStandard.txt。我需要将提取的实例与黄金标准进行比较,以便计算这些指标。例如,根据第二个文件,第一个文件中的前三个句子是真阳性,最后一个句子是假阳性。

instances.txt包含:

代码语言:javascript
复制
is sponsoring a lecture by <speaker> Antal Bejczy from
announces a talk by <speaker> Julia Hirschberg
His name is <speaker> Toshiaki Tsuboi He will
to produce a schedule by <speaker> 50% for problems

GoldStandard.txt包含:

代码语言:javascript
复制
METC is sponsoring a lecture by <speaker> Antal Bejczy from Stanford university
METC announces a talk by <speaker> Julia Hirschberg
The speaker is from USA His name is <speaker> Toshiaki Tsuboi He will              
propose a solution to these problems
It led to produce a schedule by 50% for problems
EN

回答 2

Stack Overflow用户

发布于 2019-02-27 05:53:53

对于NER结果,人们通常衡量精确度、召回率和F1得分,而不是准确性,而conlleval可能是计算这些指标的最常见方法:https://github.com/spyysalo/conlleval.py。不过,它也报告了准确性。

conlleval脚本接受conll格式的文件作为输入。以你的第一句话为例:

代码语言:javascript
复制
METC    O   O
is  O   O
sponsoring  O   O
a   O   O
lecture O   O
by  O   O
Antal   B-speaker   B-speaker
Bejczy  I-speaker   I-speaker
from    O   O
Stanford    O   O
university  O   O

其中,第一列是word,第二列是系统输出,第三列是金色标签。O表示token不属于任何区块。后缀B-I-表示块的开始、内部和结束。句子之间用空行隔开。

票数 2
EN

Stack Overflow用户

发布于 2019-02-28 07:45:59

这完全取决于您的用例,以及您在清理/消除NER输出的歧义方面所做的工作。还有;您可能更关心丢失的引用(即希望更高的召回率),而不是误报(更高的精确度)。可能除了其他类型的用例(发出传票或搜查令,禁止用户进行聊天滥用)。

sklearn.metrics.f1_score()实现加权F1。

告诉我们更多关于你的应用的信息:如果你错误地、错误地识别或混淆了说话人的名字(假阳性),或者错过了一个有效的名字(假阴性),那会有多糟糕?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54057385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档