【发布时间】:2014-07-01 08:07:16
【问题描述】:
我有一张包含文字信息的图片,并且:
- 我从中提取/裁剪了一个小图像
- 我正在使用 OCR 从小图像中提取文本
- 如果匹配,则检查提取的值是否与模式(浮点数、日期...)匹配
- 我将值存储在数据库中
问题是:有时 ocr 会提取一个包含一些符号的值,因此它与模式示例不匹配:对于我拥有的模式日期:
pattern = "(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/(19|20)\d\d"
图片中的值是
12/02/2014
但是提取了 OCR:
12? /02 -2014
我想获得模式和提取的值之间的相似性(最近处理它)有没有办法在不改变模式的情况下做到这一点?
【问题讨论】:
-
这实际上取决于您的 OCR 软件的准确性和您正在扫描的材料的质量。可能存在各种错误 - 添加的问号(不确定匹配,由 OCR 标记)、不匹配的字符 - 例如l 或 I 代替 1,O 或 o 代替 0 等。我建议您允许对 OCR 材料进行一些预处理,然后尝试使用正则表达式进行解析。
-
是的,这取决于它,但我没有选择我必须考虑与模式非常相似的值,即使它不匹配
-
您是否允许您的客户在使用正则表达式模块处理之前编辑 OCR 模块识别的文本?
-
还有,大相似度代表什么具体的东西。
-
据我了解,OP 询问是否有办法处理来自 OCR 软件的错误/不确定匹配,并使用一些正则表达式来识别捕获的数据可能是:float、date、号码等...
标签: java regex ocr error-correction