有人可以为下面的情况提出解决方案吗?
我们有餐厅的菜单。每间餐厅都有自己的菜单。目标是识别菜单中的元素,如菜单项,浇头,价格等,并更新数据库。
Fox示例:餐馆菜单可以包含名为“Sandwiches”的组中的“Chicken”,“Vegetarian”等菜单项。
为此,我计划使用OCR的java实现。这会成功吗?
答案 0 :(得分:1)
如果您想在代码中使用OCR,可以使用Tessrect-OCR进行本地开发。它是一个非常强大的库,具有快速输出。此链接用于Tessrect的包装类,或者您也可以使用{ {3}}替代Tesjeract(第一个)。这是谷歌使用的相同库,你也可以添加多种语言支持。
答案 1 :(得分:1)
将PDF转换为图像(使用javacv等)并使用tesseract或tess4j对其进行OCR。它不是永久性或最佳解决方案,但效果很好!
答案 2 :(得分:0)
如果您正在输入PDF,然后使用它,则无需执行此操作;只需阅读PDF(见下文)。但是,如果您正在扫描PDF(图像而非文本),则需要使用OCR。
之类的内容答案 3 :(得分:0)
有趣的项目! Java或任何其他语言,我认为OCR不够准确,无法满足您的需求。菜单通常使用非标准字体打印,有时使用背景图像,这使得OCR难以准确读取每个单词。然后你有格式化的挑战。有些菜单可以按鸡肉,素食,牛肉来组织内容。其他可能有Light Fare,Entree,Appetizer,small plates等类别。
这对我来说是一次真正的数据工程挑战。虽然菜单看起来像是分层的,但它们的实际结构非常灵活,各种各样的东西各不相同。在这个混乱中加入OCR会给这个混乱带来错别,现在你需要寻找像“鸡”这样的词,因为你可能实际上有Chicen或Cichen或者(h1ckn。
也许我从来没有使用过非常棒的OCR软件,我想象的是一个不存在的问题。我认为大多数餐馆都会在电脑上输入菜单,你最好还是让他们与你分享这些文件。