我使用的是一个NER系统,它提供一个文本文件作为输出,其中包含一个命名实体的列表,这些实体是concept Speaker的实例。我正在寻找一个工具,可以通过将这个列表和黄金标准作为输入来计算系统的精确度,召回率和F1,其中实例被正确地用标签<Speaker>注释。
我有两个txt文件: Instances.txt和GoldStandard.txt。我需要将提取的实例与黄金标准进行比较,以便计算这些指标。例如,根据第二个文件,第一个文件中的前三个句子是真阳性,最后一个句子是假阳性。
instances.txt包含:
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 problemsGoldStandard.txt包含:
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发布于 2019-02-27 05:53:53
对于NER结果,人们通常衡量精确度、召回率和F1得分,而不是准确性,而conlleval可能是计算这些指标的最常见方法:https://github.com/spyysalo/conlleval.py。不过,它也报告了准确性。
conlleval脚本接受conll格式的文件作为输入。以你的第一句话为例:
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-表示块的开始、内部和结束。句子之间用空行隔开。
发布于 2019-02-28 07:45:59
这完全取决于您的用例,以及您在清理/消除NER输出的歧义方面所做的工作。还有;您可能更关心丢失的引用(即希望更高的召回率),而不是误报(更高的精确度)。可能除了其他类型的用例(发出传票或搜查令,禁止用户进行聊天滥用)。
sklearn.metrics.f1_score()实现加权F1。
告诉我们更多关于你的应用的信息:如果你错误地、错误地识别或混淆了说话人的名字(假阳性),或者错过了一个有效的名字(假阴性),那会有多糟糕?
https://stackoverflow.com/questions/54057385
复制相似问题