我需要一些帮助,我正在处理一个问题,其中我有一张发票图像的OCR,我想从中提取某些数据,如OCR中存在的发票编号,金额,日期等。我尝试使用分类模型,在该模型中,我分别将每个句子从OCR传递到模型,并预测它的发票编号或日期或其他任何内容,但是这种方法会花费很多时间,我认为这是不正确的方法。
所以,我在考虑是否存在一种算法,在该算法中我可以有一个输入字符串,并具有从该字符串映射的输出,例如字符串中包含发票编号,日期和金额。
例如:
Inp string: The invoice 1234 is due on 12 oct 2018 with amount of 287
Output: Invoice Number: 1234, Date: 12 oct 2018, Amount 287
所以,我的问题是,有没有一种算法可以对多张发票进行训练然后做出预测?
答案 0 :(得分:0)
基本上,您正在寻找NER(命名实体识别)。有多种免费和付费工具可用于意图和实体映射。您可以使用Google DialogFlow,MS LUIS或开源RASA在给定的文本中标识实体。 如果您想开发自己的解决方案,那么也可以查看OpenNLP。 请根据您对这些问题的看法恢复您的问题
答案 1 :(得分:0)
您要搜索的是发票数据提取ML。有很多ML算法可用,但是在您的用例中都没有完成。为什么?因为这是一个非常特殊的用例。尽管它可以返回多个输出,但不能只使用Tensorflow并使用句子作为输入。
您可以使用NLP(自然语言处理)方法来提取数据。 Taggun使用它从收据中提取数据。在这种情况下,您只能使用句子。但是您仍然需要将句子转换为NLP形式(令牌化)。
您可以使用深度学习(例如Tensorflow)。在这种情况下,您需要将句子矢量化为可以输入到神经网络的矢量。这种方法需要更多的创造力,而没有标准的方法可以做到。目的是尽可能描述每个句子。但是仍然存在一个问题-如何解析日期,金额等。如果您将句子标记为 contains_date True / False,这对NN有帮助吗?可能是。 发票数据提取服务中使用了类似的方法,例如:
因此,如果您出于娱乐/研究目的而做,我建议您从一张非常简单的发票开始。尝试编写一个程序,该程序将使用解析和 if 语句提取发票编号,开票日期,供应商和总金额。这将帮助您定义NN的特征向量输入的属性。例如, contains_date , contains_total_amount_word 等。请参见此tutorial,以NN开头。
如果您在工作中使用它,建议您查看一下用于发票数据提取的现有服务之一。
免责声明:我是typty的创造者之一。随时提出修改建议。