社会的大部分'最有价值的数据生活在公式文档中,又名。船长像司机,护照,收据,发票,支付存根,薪酬存根和急性疫苗接种记录都是所有的形式。
表单有标准化的字段,但每个实例都有自己的值。这笔工资存根,forexample,有田地支付期,发薪日,公司,员工等。所有Gusto支付存根都是一样的。
我们想在以编程方式可访问的每个文档中进行信息。例如,如果我们正在验证收入,例如,我们希望将上面的工资存根转换为键值映射,如:
{"支付期" :" 2019年7月12日 - 2019年7月25日" ,"支付日" :" 2019年8月2日和#34; ,"公司" :"洛克曼 - 克莱因" ,#34;员工" :" Belle Tremblay" ,"总收入" :" $ 1,480.00" }
提取表单信息不是最酷的主题,但它'非常有价值的和挑战。大规模的工具与最伟大的AI有关最先进的结果,但我们将这些声称提出到考试并避开了不受欢迎的。
我们注释了电视广告发票的一个小型数据集,并通过Fouroff-The Off形式的API运行它,用于通用形式提取。我们对功能,准确性,响应时间,易用性和商业考虑等级进行了分级的各种产品,如成本和数据安全。有关我们的测试协议和评估条件,请参阅方法选项卡。
作为一项规则,我们不接受联盟委员会,使我们的报告保持不偏见。
我们测试的产品都不能始终找到所有表单数据。最好的一个只有4个正确的2.8个正确的表单字段对(钥匙和值,平均配对)。对于复杂的文件,这项技术简直就是' T.
对于更简单的文件,我们怀疑结果会更好。在这种情况下,我们推荐谷歌表格解析器 - 这是我们测试中最准确的服务,并且到目前为止。对于PDF文件,它也是唯一的服务,足以成为同步管道的一部分。
一个替代策略是首先使用非结构化文本提取,然后写下自己的后处理以将键与值匹配。对于这种方法,我们推荐Amazon Textract。与Textract' S非结构化文本输出和一个相当朴素的后处理启发式,我们在平均而不是4个正确的字段中找到了2.9个 - 比任何专用形式的提取工具更好,并且大大更便宜。
ABBYY Cloud OCR SDK似乎需要提前编写表单布局。我们记住的应用是不可能的,其中许多不同的形式口味具有不同的布局。
Microsoft表单识别器需要在提取数据之前培训自定义模型。对于我们来说,这感觉就像很多额外的开销,如果模型准确性远远优于竞争产品,那么只能是合理的。不幸的是,形式识别器'平均召回是我们测试过的最糟糕的服务。
有专门的服务来从收据,发票,名片和税务文件中提取文本。鉴于我们的通用形式提取良差,我们建议探索这些专业产品,如果您有其中一种类型类型。
我们为每个表单提取服务组织了我们的备注和测试结果,进入FiveMensions,从0(总失败)到100(完美)。然后将这些与加权平均值的总分组合。尺寸和重量是:
功能(35%):产品是否执行我们所需要的以及它所做的事情?
下面的蓝色雷达图显示了每种产品的尺寸分数。 GrayBackground图显示了最佳产品的细分,以获取上下文。
表单是具有标准化字段和变量值的文档。它们是存储和传达信息的主题元素方式之一,因此它们突出到处都弹出。有些常见示例包括:
文档表单提取是将形式转向可操作数据,inan自动化,可扩展的时尚的过程。例如,使用薪水存根,我们想转动帖子:
{"支付期" :" 2019年7月12日 - 2019年7月25日" ,"支付日" :" 2019年8月2日和#34; ,"公司" :"洛克曼 - 克莱因" ,#34;员工" :" Belle Tremblay" ,"总收入" :" $ 1,480.00" }
经过一点点额外的处理来将提取的字符串投入到日期和数值,我们可以使用这些数据来验证客户'符合时间,或帮助他们随着时间的推移,他们的储蓄预测,或者将他们的收益与行业标准的收益进行比较我们的业务用例可能是。
对于大多数人来说,普通目的文件表单萃取相对容易,但非常自动化。 Pay Stub示例显示为什么。
某些值根本没有明确的键。 1其他人有两个键,因为它们'在表中,行和列标签一起定义该字段。表还具有键与值之间具有大量距离的额外问题。
密钥和值之间的关联取决于页面布局,标点符号和样式的主观读数。一些键和值垂直排列,其他键和值水平地排列。有些键被冒号描绘,其他钥匙是大胆的字体。
每个付款处理器都使用不同的布局。我们可以难以编码Gusto表单中字段的位置,但ADP和PayChex Pay存根的布局,样式和字段名称也不同,即使基础信息是相同的。
文本提取产品的市场在航空线之前巨大而令人困惑,并且它只变得更糟。广泛地说,这些工具在一个三级级别运行。
在最基本的级别中是从图像中提取RawText的光学字符识别(OCR)。这是一项良好的技术,但它并不多么统一表格文件的业务价值。
我们金字塔顶部最有价值的任务是模板填充。 Inthis情景,我们拥有自己的钥匙的固定模式,我们希望找到从"填充"模板中的每个插槽。据我们所知,这个仍然是雄心勃勃的研究目标,而不是解决的技术。
对于这项研究,我们专注于第二级:键值映射。这些工具唱结构键值对从提取的文本,但他们不尝试将TheFiration匹配到预定的架构。
产品是否找到引用正确值的键,即使这些键areN' t匹配标准架构?
输出格式。是人类可读吗?它可以序列化吗?需要多少后处理?
另一项问题要询问该标题是否完全适合此标题是您的用例可用的缺矿工具。出于发票和收据,Taggun,Rossum,Google Provurement Docai,Andmicrosoft Azure表单识别器预设地收据模型都是显式的这些类型的文档。对于身份验证,请尝试Onfido,Trulioo或Jumio。
我们已经编制了有关每个产品的功能和业务考虑的信息和#39; S网站。每个单元格中的REF链接表示信息的来源。请查看各个产品审查,了解我们实践评估的结果。
50 MB。用于图像:10k x 10k像素。对于PDFS:17 x 17英寸,200页。裁判
同步到最多5页,异步高达100页或2,000页(Docs是矛盾的)。裁判
API文档称为A"长时间运行(LRO)"呼叫可以阻塞或非阻塞。裁判
预付或每月订阅固定数量的页面。订阅从30美元/月以上的500美元,最高可达840美元/月30K页。每个表单字段都计入0.2页。裁判
因区域而异,取决于所需的布局复杂性:线,形式和/或表格。对于US-EAST-2,具有非结构化文本和表格输出(但不是表格):$ 0.05 / PAGE最多1M页,页面超过1M的页面0.04 /页。裁判
配额列出免费试验,但不适用于付费账户,这可能表明有偿账户没有限制?裁判
我们使用术语密钥表示在给定表单中命名字段的文本。 ↩
本文旨在适用于应用数据科学家和工程师,以及想要了解更多关于文档表单提取的信息的数据Scienceand Engineering Team,或者需要选择用于文档表单提取的服务。
根据域指南描述的尺寸,我们将笔记和评级分为五个方面。对于每个区域,我们将产品从0(不存在)到100(完美)进行评分,然后将总分数计算为尺寸的加权平均值。我们的维度是:
这种比较中的易用性只有10%的重量,远低于Thedata App Frameworks比较。数据应用程序框架更加关于开发经验;另一方面,文档表单提取工具是MorestAndardized API。
我们的准确性措施是基于召回的。对于每个测试文档,我们计算出的4个地面键值对中的一个表单提取服务返回,忽略了API的任何其他输出。该服务的最终得分是所有包含文档的平均召回。
我们使用Jaro-Winkler字符串相似性函数来比较提取的和地面真值文本,并决定是否匹配。
有些服务将送货分数与输出文本返回。我们忽略了这个;如果其输出文本与地面真实的对之一匹配,则产品分数匹配,无论信心得分如何。
在我们的结果表中,我们还有一排称为"均否召回非结构化文本PlusCustom键值映射"这是比较规范召回反对的基准。对于每个服务,我们还请求非结构化文本,除了半结构尺寸值对之外。然后,我们通过关联连续的文本块的每个分析来创建自己的key-value候选集。例如,如果非结构化输出是
{"支付日:" :" 2019年8月2日和#34; ," 2019年8月2日和#34; :" 912 Silver St." ," 912 silver st。" :"套房1966" }
这些候选对中的大多数都是废话,但由于我们根据召回评估,这种方法结果是合理的基线。
拥有自由审判或支付优惠定价模型,以避免企业销售流程
符合这些标准的工具,我们选择了这四个似乎最适合我们的测试场景(下面的详细信息)。
对于这种评估,我们'重新担心手写形式,语言或文档的图像。我们也假设我们没有机器学习团队终身训练自定义模型。
假设我们希望建立一个帮助政治活动验证和跟踪他们的支出的服务。当广告系列从广播公司收到的发票时,他们上传其假设的服务,我们会答复(快速,如果可能),发票是合法的验证,并匹配计划的支出(或不)。对于此挑战,我们希望提取发票号,广告商,发票的开始日期以及汇总金额。
{"合同#" :" 26795081" ,"广告商:" :"房子大多数前进" ,"飞行:" :" 2/5/20 - 2/18 / 20" ,"总量为$" :" $ 33,500.00" }
要以尺度提取如此,我们需要具有文件的文本提取服务:
处理不同的口味形式。即使信息是相同的,每个广播网络都使用自己的表单,具有不同的布局,样式和键。这里有一个相应正确答案的第二个例子:
第一个例子使用键"飞行"表明Thead活动的开始和结束日期,而第二个说"时间表日期"还有其他微妙的差异标点符号(冒号),货币符号和日期格式。
我们的测试集中的文件是2020个DELOTICAPAINGS的电视广告发票。这些文件最初由FCC提供,但我们从权重和amp下载了下载了这些文件。偏见项目Deepform竞争(博客帖子,竞争,代码回购)。具体而言,我们从项目Deepform和#39中列出的1,000中列出了51个文件,从项目Deepform Amazon S3桶FCC更新 - 示例-2020中列出并下载了DocumentDirectly。
DeepForm项目确实创建了基础的注释,但我们忽略了他们。 DeepFormis专注于端到端模板填充,比我们&#39更具有挑战性的任务;识别我们的挑战者产品。我们还注意到DeepformAnnotations中的错误比我们感到满意。创建自己的地面真理使我们迄今为止找到相关键值对的能力,而不担心这些对应该插入我们的标准架构。
注释表单文件很棘手,我们做出了许多小决定,以使TheComonison尽可能统一和公平。
有时,PDF文件'嵌入文字与肉眼解释不同。我们尽可能多地使用可见的文字。
有时,应该配对的钥匙和价值在页面上相距甚远,通常是因为它们'重复一部分。上面的第二个例子说明了这一点:钥匙"总计:"与其价值分开" $ 1,230.00"通过不同的数据元素。我们在我们的注释中包含了这些,知道这是任何自动化系统的一项非常艰巨的任务,尽管我们选择了通常在表中报告的字段。
日期以多种不同的方式排列。当呈现为范围时,我们将整个范围字符串包含为正确的答案,但是当分开时,我们只包含开始日期。