我正在尝试寻找指标来评估多种算法,以便从已经 OCRed 发票中提取关键信息。例如,给定发票,这样的算法可以发现:
{
"company": "STARBUCKS STORE #10208",
"date": "14/03/2015",
"address": "11302 EUCLID AVENUE, CLEVELAND, OH (216) 229-0749",
"total": "4.95",
}
正式地,我将任务定义为一个函数f,它对于给定的发票文档D返回一个条目字典:{ field1 : value1 , field2 : value2 ,...}。
最初,我考虑使用精度、召回率和 F1 度量,假设如果字段及其值与基本事实完全匹配,则每个字典条目都被标记为正确。我从ICDAR 2019 Robust Reading Challenge on Scanned Receipts OCR and Information Extraction借用了这种方法。
然而,基于精确字符串匹配的度量的问题在于,它们甚至会惩罚小错误:缺失/冗余的单词、字符和间距的单一差异。这些错误不仅可能源于不完善的信息提取算法,还可能源于错误的 OCR 算法。不幸的是,我无法单独测试信息提取(即,给定 100% 完美的 OCRed 输入)。
因此,我正在寻找一些更宽松的指标。我的可能性是什么?该领域使用了什么?
我想到的一些想法:
- 使用字符/单词的 Levenstein 距离计算两个文本之间的距离
- 如果距离小于阈值 X,则考虑两个文本匹配。
- 或者在最终测量中包含有关距离的信息,例如对其进行标准化和对每个文档进行微平均。