我目前正在尝试创建的 ML 项目需要帮助。
我从许多不同的供应商那里收到了很多发票——所有这些发票都有自己独特的布局。我需要从发票中提取3 个关键要素。这3 个元素都位于所有发票的表/行项目中。
这3个要素是:
- 1:关税编号(位数)
- 2:数量(总是一个数字)
- 3:总行金额(货币价值)
请参阅下面的屏幕截图,我在示例发票上标记了这些字段。
我使用基于正则表达式的模板方法开始了这个项目。然而,这根本不是可扩展的,我最终得到了大量不同的规则。
我希望机器学习可以在这里帮助我 - 或者可能是混合解决方案?
共同点
在我所有的发票中,尽管布局不同,但每个行项目将始终包含一个关税编号。此关税编号始终为 8 位数字,并且始终采用以下格式之一:
- xxxxxxxx
- xxxx.xxxx
- xx.xx.xx.xx
(其中“x”是从 0 到 9 的数字)。
此外,正如您在发票上看到的那样,每行既有单价又有总金额。我需要的量总是每条线的最高量。
输出
对于上面的每张发票,我需要每一行的输出。例如,这可能是这样的:
{
"line":"0",
"tariff":"85444290",
"quantity":"3",
"amount":"258.93"
},
{
"line":"1",
"tariff":"85444290",
"quantity":"4",
"amount":"548.32"
},
{
"line":"2",
"tariff":"76109090",
"quantity":"5",
"amount":"412.30"
}
然后去哪儿?
我不确定我要做什么属于机器学习,如果是,属于哪个类别。是计算机视觉吗?自然语言处理?命名实体识别?
我最初的想法是:
- 将发票转换为文本。(发票都是可文本的 PDF,所以我可以使用类似的东西
pdftotext来获取确切的文本值) - 为和创建自定义命名实体
quantitytariffamount - 导出找到的实体。
但是,我觉得我可能错过了一些东西。
任何人都可以在正确的方向上帮助我吗?
