Google解释了云计算服务Document AI,用来解析发票的技术,这项技术发布于计算机语言学会年会ACL 2020中,Google提出一种可从各式单据截取结构化资料的方法,而这与之前从纯文本档文件截取资料的方法不同,新方法将单据可能出现的字段类型纳入考量,因此能良好地截取单据上的内容。
企业有不少工作流程需要处理收据、账单以及报价单等单据,目前仍有不少企业依赖人工操作,Google以发票为例提到,发票样式很多种,不同企业甚是企业不同部门所开出的发票,各自布局都略有不同,但发票包含的结构化信息,诸如发票编号、日期和金额等又大致相同,而自动化可以解决人工处理容易发生错误的缺点,且可大幅提高工作流程的效率。
之所以处理单据文件很困难,Google解释,因为截取单据信息,除了需要运用自然语言处理技术之外,还跨了计算机视觉领域,跟典型的自然语言处理任务不同,单据中不会有句子和段落这类自然语言形式存在,单据资料通常是以表格的形式呈现,通常具有多页面和多段落的特性,并以各种布局和格式组织信息。要处理这类资料,Google提到,关键是需要理解二维文本布局,但又不能以纯粹的图片分割方式处理,否则又难以运用文本语义的信息。
Google的新方法让开发者可以使用两种输入来训练截取系统,分别是目标结构(Schema)以及带有标签的文件集,目标结构是指需要截取的字段列表和其类型,支持的字段类型包括日期、整数、字母数字组合、金额、电话号码和URL。
输入的文件要先经过OCR服务,截取文本和布局信息,接着以候选生成器,识别文本范围可能对应的字段,候选生成器会使用预先创建的字段类型库,关联像是日期、号码和电话号码等信息,并使用神经网络Scorer来估算截取项目的分数,在默认情况下,目标字段就是获得最高分的候选者,例如日期信息就截取单据上获得Scorer评分最高分的项目,不过,在特定情况,也会考量顺序等因素。
Scorer是一个二元分类器,将目标字段和候选项目作为输入,产生0到1之间的分数,Scorer会学习在矢量空间表示每个目标字段以及候选项目的方法,当目标字段在矢量空间和候选项目越相近,则候选项目为目标字段的几率越大。
为了实验方法的可靠性,Google使用了具多种布局的发票资料集,证明该模型可对大多数字段运行良好,不过侦测发送日期(delivery_date)的准确度表现较差,Google提到,原因是他们训练集中,只有一小部分的资料存在这个字段,因此需要更多的训练资料来改进该字段准确度。