我有两个列表,一个包含由人类选择的真值,另一个包含提取的值。我想根据提取的列表中包含多少真值来衡量管道的性能。示例:
extracted_value = ["value", "of", "words", "that", "were", "tracked"]
real_value = ["value", "words", "that"]我需要一个度量来描述:3个实值中有3个被提取出来。
对于多个文档:10个实值中有5个被提取,3个实值中有2个被提取,9个实值中有1个被提取出来。
根据个人的比较,我能得到一个分数来描述提取的关键字在所有文档中的平均表现吗?
发布于 2022-11-30 08:03:15
像这样简单的东西会起作用吗?
score = len([x for x in real_value if x in extracted_value])/len(extracted_value)
print(score)
>>> 0.5发布于 2022-11-30 08:12:40
你要找的标准是召回。@sfat的解决方案对于单个文档运行良好,然后您可以通过sum明得到多个文档的平均值--分数,然后除以文档的len。
要获得更高级的检索评分,请查看链接文章的F分数部分。
发布于 2022-11-30 08:14:59
检查extracted_value和real_value之间共享了多少值。我相信您正在寻找您的模型的召回,您可以使用set操作,具体来说&(和)除以您的基本真理(real_values):
recall = len(set(real_value) & set(extracted_value))/len(real_values)或者,如果您想要确切地共享哪些特定值,则可以始终使用以下值的len:
shared_vals = set(real_value) & set(extracted_value)如果您想用shared_vals计算召回量:
recall = len(shared_vals)/len(real_value)https://stackoverflow.com/questions/74624497
复制相似问题