表单提取器的制作方法

文档序号:31479955发布日期:2022-09-10 01:37阅读:77来源:国知局
表单提取器的制作方法
表单提取器
1.相关申请的交叉引用
2.本技术要求于2020年12月31日提交的美国申请号17/139,408的优选权益,其内容以引用的方式并入本文。


背景技术:

3.与从文档中提取数据相关联的技术要求用户标识文档中的字段以手动提取数据。从类似文档中提取数据是一项重复性任务,通常会浪费时间和技能,尤其是手动执行时。使用不同的算法技术例如机器学习和基于规则的配置,已经创建了用于配置从文档中提取数据的工具。


技术实现要素:

4.本系统和方法总体涉及机器人流程自动化领域,尤其涉及用于文档处理的表单数据提取器。该系统和方法涉及使用可以针对不同的文档类型而轻松被配置的rpa工作流进行文档处理的表单提取器。表单提取器包括用于标识文档类型(分类)和从文档中提取数据的一组模板。模板可以由用户配置,即通过定义要提取的字段和字段在文档上的位置。表单提取器对页面上模板位置的变化以及扫描旋转、大小、质量、倾斜角度变化和文件格式具有弹性,从而允许rpa流程从需要摄取的文档中提取数据,而与它们是如何创建的无关。
附图说明
5.从以下结合附图以示例方式给出的描述可以获得更详细的理解,其中附图中相同的附图标记表示相同的元件,并且其中:
6.图1a是机器人流程自动化(rpa)开发、设计、操作或执行的图示;
7.图1b是rpa开发、设计、操作或执行的另一个图示;
8.图1c是计算系统或环境的图示;
9.图2是图示分类文档范围工作流和数据提取范围工作流的屏幕截图;
10.图3是图示根据实施例的分类法管理器的屏幕截图;
11.图4是示出根据实施例的模板管理器的屏幕截图,该模板管理器用于管理文档类型的模板;
12.图5是图示根据针对w-9表单模板的实施例的模板管理器的屏幕截图,该模板管理器用于管理特定文档类型的模板;
13.图6是验证窗口的屏幕截图;以及
14.图7是示出根据本发明实施例的用于实现用于rpa的文档处理框架的方法的流程图。
具体实施方式
15.本文中公开的是根据一个或多个实施例的机器人流程引擎。机器人流程引擎包括
执行被分布式打包的机器人流程的本地化配置的软件和/或硬件。更具体地,机器人流程引擎提供了一种特定的配置和工具化机器人流程自动化方法,以提供改进的配置技术来操纵本地计算系统中的被分布式打包的机器人流程。机器人流程引擎可以是硬件(例如,处理器)和软件(例如,必须植根于硬件的处理器可执行代码)的组合。
16.本系统和方法总体涉及机器人流程自动化领域,尤其涉及用于文档处理的表单数据提取器。该系统和方法涉及使用可以针对不同的文档类型而轻松被配置的rpa工作流进行文档处理的表单提取器。基于表单的提取器包括用于标识文档类型(分类)和从文档中提取数据的一组模板。模板可以由用户配置,即通过定义要被提取的字段和字段在文档上的位置。
17.图1a是机器人流程自动化(rpa)开发、设计、操作或执行100的图示。设计器102(有时被称为工作室、开发平台、开发环境等)可以被配置为生成代码、指令、命令等以供机器人执行或自动化一个或多个工作流。根据计算系统可以提供给机器人的(多个)选择,机器人可以确定由用户或操作者选择的视觉示出的(多个)区域的代表性数据。作为rpa的一部分,多维的诸如正方形、矩形、圆形、多边形、自由形状等形状可以用于与计算机视觉(cv)操作或机器学习(ml)模型相关的ui机器人开发和运行时。
18.可以由工作流完成的操作的非限制性示例可以是以下一项或多项:执行登录、填写表单、信息技术(it)管理等。为了运行ui自动化的工作流,机器人可能需要唯一地标识特定屏幕元素,诸如按钮、复选框、文本字段、标签等,而不管应用访问或应用开发如何。应用访问的示例可以是本地、虚拟、远程、云、问的示例可以是本地、虚拟、远程、云、远程桌面、虚拟桌面基础设施(vdi)等。应用开发的示例可以是win32、java、flash、超文本标记语言(html)、html5、可扩展标记语言(xml)、javascript、c#、c++、silverlight等。
19.工作流可以包括但不限于任务序列、流程图、有限状态机(fsm)、全局异常处理程序等。任务序列可以是用于处理一个或多个应用或窗口之间的线性任务的线性过程。流程图可以被配置为处理复杂的业务逻辑,以使得能够通过多个分支逻辑运算符以更多样化的方式实现决策的集成和活动的连接。fsm可以被配置用于大型工作流。fsm可以在它们的执行中使用有限数目的状态,这些状态可以由条件、转变、活动等触发。全局异常处理程序可以被配置为在遇到执行错误时确定工作流行为、用于调试过程等。
20.机器人可以是应用、小应用、脚本等,其可以自动化对底层操作系统(os)或硬件透明的ui。在部署时,一个或多个机器人可以由指挥器104(有时称为协调器)管理、控制等。指挥器104可以指示或命令(多个)机器人或自动化执行器106在大型机、网络、虚拟机、远程机器、虚拟桌面、企业平台、(多个)桌面应用、浏览器等客户端、应用或程序中执行或监控工作流。指挥器104可以用作中心点或半中心点以指示或命令多个机器人,以自动化计算平台。
21.在某些配置中,指挥器104可以被配置用于供应、部署、配置、排队、监控、日志记录和/或提供互连。供应可以包括创建和维护(多个)机器人或自动化执行器106与指挥器104之间的连接或通信。部署可以包括确保将包版本交付给所分配的机器人以供执行。配置可以包括机器人环境和流程配置的维护和交付。排队可以包括提供对队列和队列项目的管理。监控可以包括跟踪机器人标识数据和维护用户权限。日志记录可以包括将日志存储和索引到数据库(例如,sql数据库)和/或其他存储机制(例如,提供存储和快速查询大型数据集的能力的)。指挥器104可以通过用作第三方解决方案和/或应用的集
中式通信点来提供互连性。
22.(多个)机器人或自动化执行器106可以被配置为无人值守的108或有人值守的110。对于无人值守的108操作,可以在没有第三方输入或控制的情况下执行自动化。对于有人值守的110操作,可以通过从第三方组件接收输入、命令、指令、指导等来执行自动化。无人值守的108或有人值守的110机器人可以在移动计算或移动设备环境中运行或执行。
23.(多个)机器人或自动化执行器106可以是运行在设计器102中所构建的工作流的执行代理。用于ui或软件自动化的(多个)机器人的商业示例是uipath robots
tm
。在一些实施例中,(多个)机器人或自动化执行器106可以默认安装microsoft服务控制管理器(scm)管理的服务。因此,这样的机器人可以在本地系统帐户下打开交互式会话,并且具有服务的权限。
24.在一些实施例中,(多个)机器人或自动化执行器106可以在用户模式下安装。这些机器人可以与安装给定机器人的用户具有相同的权限。该特征也可以可用于高密度(hd)机器人,以确保诸如在hd环境中以最高性能充分利用每个机器。
25.在某些配置中,(多个)机器人或自动化执行器106可以被拆分、分布等成若干组件,每个组件专用于特定自动化任务或活动。机器人组件可以包括scm管理的机器人服务、用户模式机器人服务、执行器、代理、命令行等。scm管理的机器人服务可以管理或监控会话并且用作指挥器104与执行主机(即,(多个)机器人或自动化执行器106在其上执行的计算系统)之间的代理。这些服务可以被信任并且管理(多个)机器人或自动化执行器106的凭证。
26.用户模式机器人服务可以管理和监控会话并且用作指挥器104与执行主机之间的代理。用户模式机器人服务可以被信任并且管理机器人的凭证。如果未安装scm管理的机器人服务,则应用可以自动启动。
27.执行器可以在会话下运行给定作业(即,它们可以执行工作流)。执行器可以知道每个显示器的每英寸点数(dpi)设置。代理可以是在系统托盘窗口中显示可用作业的presentation foundation(wpf)应用。代理可以是服务的客户端。代理可以请求开始或停止作业以及改变设置。命令行可以是服务的客户端。命令行是控制台应用,其可以请求开始作业并且等待其输出。
28.在其中(多个)机器人或自动化执行器106的组件如上文所解释的那样拆分的配置中,帮助开发者、支持用户和计算系统更容易地运行、标识和跟踪每个组件的执行。可以通过这种方式针对每个组件配置特殊行为,诸如为执行器和服务设置不同防火墙规则。在一些实施例中,执行器可以知道每个监控器的dpi设置。因此,工作流可以在任何dpi处执行,而不管在其上创建它们的计算系统的配置如何。来自设计器102的项目也可以独立于浏览器缩放级别。在一些实施例中,对于不知道dpi或有意标记为不知道的应用,可以禁用dpi。
29.图1b是rpa开发、设计、操作或执行120的另一图示。工作室组件或模块122可以被配置为生成代码、指令、命令等以供机器人执行一个或多个活动124。用户界面(ui)自动化126可以由客户端上的机器人使用一个或多个驱动组件128来执行。机器人可以使用计算机视觉(cv)活动模块或引擎130来执行活动。其他驱动132可以用于由机器人进行的ui自动化以取得ui元素。它们可以包括os驱动程序、浏览器驱动程序、虚拟机驱动程序、企业驱动程
序等。在某些配置中,cv活动模块或引擎130可以是用于ui自动化的驱动程序。
30.图1c是计算系统或环境140的图示,计算系统或环境140可以包括总线142或用于传送信息或数据的其他通信机制、以及耦合到总线142以进行处理的一个或多个处理器144。一个或多个处理器144可以是任何类型的通用或专用处理器,包括中央处理单元(cpu)、专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元(gpu)、控制器、多核处理单元、三维处理器、量子计算设备或其任何组合。一个或多个处理器144还可以具有多个处理核,并且核中的至少一些核可以被配置为执行特定功能。也可以配置多并行处理。此外,至少一个或多个处理器144可以是包括模拟生物神经元的处理元件的神经形态电路。
31.存储器146可以被配置为存储要由(多个)处理器144执行或处理的信息、指令、命令或数据。存储器146可以包括以下各项的任何组合:随机存取存储器(ram)、只读存储器(rom)、闪存、固态存储器、高速缓存、静态存储(诸如磁盘或光盘)或任何其他类型的非瞬态计算机可读介质或其组合。非瞬态计算机可读介质可以是可以由(多个)处理器144访问的任何介质,并且可以包括易失性介质、非易失性介质等。介质也可以是可移除的、不可移除的等。
32.通信设备148可以被配置为频分多址(fdma)、单载波fdma(sc-fdma)、时分多址(tdma)、码分多址(cdma)、正交频分复用(ofdm)、正交频分多址(ofdma)、全球移动通信系统(gsm)、通用分组无线电服务(gprs)、通用移动电信系统(umts)、cdma2000、宽带cdma(w-cdma)、高速下行链路分组接入(hsdpa)、高速上行链路分组接入(hsupa)、高速分组接入(hspa)、长期演进(lte)、高级lte(lte-a)、802.11x、wi-fi、zigbee、超宽带(uwb)、802.16x、802.15、家庭node-b(hnb)、bluetooth、射频识别(rfid)、红外数据协会(irda)、近场通信(nfc)、第五代(5g)、新无线电(nr)、或者用于经由一根或多根天线进行通信的任何其他无线或有线设备/收发器。天线可以是单一的、阵列的、定相的、开关的、波束成形的、波束控制的等。
33.一个或多个处理器144还可以经由总线142耦合到显示设备150,诸如等离子、液晶显示器(lcd)、发光二极管(led)、场发射显示器(fed)、有机发光二极管(oled)、柔性oled、柔性基板显示器、投影显示器、4k显示器、高清(hd)显示器、显示器、基于面内切换(ips)的显示器等。显示设备150可以被配置为使用电阻、电容、表面声波(saw)电容、红外、光学成像、色散信号技术、声脉冲识别、受抑全内反射或本领域普通技术人员所理解的用于输入/输出(i/o)的其他技术的触摸、三维(3d)触摸、多输入触摸或多触摸显示器。
34.键盘152和控制设备154(诸如计算机鼠标、触摸板等)还可以耦合到总线142以用于向计算系统或环境140的输入。另外,可以经由与计算系统或环境140通信的另一计算系统远程地向计算系统或环境140提供输入,或者计算系统或环境140可以自主地操作。
35.存储器146可以存储在由一个或多个处理器144执行或处理时提供功能的软件组件、模块、引擎等。这可以包括用于计算系统或环境140的os 156。模块还可以包括用于执行应用特定过程或其衍生物的定制模块158。计算系统或环境140可以包括具有附加功能的一个或多个附加功能模块160。
36.计算系统或环境140可以被适配或配置为作为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(pda)、手机、平板计算设备、量子计算设备、云计算设备、移动设备、智能电话、固定移动设备、智能显示器、可穿戴计算机等来操作。
37.本系统和方法提供了用于使用rpa进行文档处理的表单提取器。该提取器使用一组已配置的模板。例如,这些模板可以由用户配置。当文档被输入系统时,系统检查该文档是否与预定义的模板匹配。如果文档与预定义的模板中的一个预定义的模板匹配,则系统将该文档分类。在分类之后,系统开始基于文档中字段的位置从文档中提取信息,并且将提取的信息显示给用户。
38.在某些实施例中,所提供的文档可以由与提取器具有相同模板的分类器进行分类。分类器使用文档的数字化版本。分类可以通过模板匹配来执行,例如通过在给定文档中的确切位置的情况下查找模板中所定义的关键字。分类器试图找到关键字的最佳可能组合。如果所定义的关键字在文档中多次出现,它会使用锚点(anchor)和词语之间的距离来找到模板中所定义的正确关键字。在模板匹配过程中,分类器可以基于倾斜锚点、位置、页面大小等来计算变换矩阵。提取器可以使用先前所计算的变换矩阵和匹配模板中所定义的字段位置来标识文档中数据提取需要出现的确切位置。提取器可以使用备选方法进行数据提取,例如基于字段级位置的算法,以(1)细化预期出现值的区域和(2)尝试值提取,即使文档或页面级的模板匹配阶段失败。这些位置是针对所有模板相对于样本文档而被定义的,该样本文档用于模板创建目的并且被加载到提取器中。例如,这样的位置定义可以提前发生。位置定义也可以发生在训练阶段期间,其中提取器可以学习页面级模板调整和变化,以及字段级模板调整、变化和值区域的其他潜在指示符。提取器可以使用来自模板匹配阶段的页面级引用和文档类型,以应用正确的模板用于提取,并且可以使用字段级引用以便调整目标值区,以及在模板未能匹配的情况下标识新的可能目标区。
39.图2是图示根据本发明的实施例的分类文档范围工作流和数据提取范围工作流(统称为工作流200)的屏幕截图。工作流200包括表单分类器(“form classifier”)和表单提取器(“form extractor”)。工作流200包括表单分类器活动202。用户可以通过点击配置分类器(configure classifiers)链接204来配置工作流200中的分类器。在一些实施例中,分类文档范围(classify document scope)组件可以配置有任何期望数目的分类器。
40.点击配置分类器链接204打开分类器配置界面,该界面提供可以被处理的一列文档类型并且允许用户选择是否对每个文档类型应用一个、两个分类器或不应用分类器。用户还可以可选地为每个分类器正在使用内部分类法(taxonomy)的文档类型录入内部分类法唯一id。
41.在一些实施例中,分类文档范围活动可以允许在每个分类器还有分类器和文档类型级别设置最小置信度阈值。在某些实施例中,分类文档范围活动、分类器配置、优先排序算法、用户界面、数据结构和公共合约可以经历改变和调整,同时保持在开放和可扩展框架中促进文档分类的相同目的。
42.在一些实施例中,分类验证模块提供用于审阅、更正和/或手动处理用于分类的文件的用户界面。用户可以通过查看已处理文件的页面范围和自动关联的文档类型来审阅自动分类,在页面范围和文档类型级别都执行更正,删除或添加具有相关联文档类型的新部分,和/或在期望的情况下完全手动处理文档。
43.一些实施例的用户界面提供了用于理解文件中的每个单独页面和做出关于该每个个体页面的评判的视觉方法。在一些实施例中,用户界面独立于先前自动分类阶段中所使用的分类组件而可用,为文档分类审阅和处理提供单个、统一的、最先进的用户界面。这
种方法可以消除人类学习和使用取决于所采用的分类技术的用于文档分类的不同屏幕的需要,从而统一整体体验并且减少学习曲线和文档处理所需的总时间。
44.在一些实施例中,自动数据提取功能性允许工作流中的提取器被互换使用。这样的实施例可以确保标准输入、标准输出、提取器之间的中介、以及回退机制。提取器的一些示例可以包括但不限于基于模板的提取器、基于布局的提取器、基于关键字的提取器、基于正则表达式的提取器、基于上下文的提取器、基于标签/锚点的提取器、基于模式的提取器、基于自然语言处理的提取器、机器学习提取器、基于元数据的提取器等。
45.在一些实施例中,用户可以添加任何期望数目的提取器实现作为插件。在某些实施例中,用户能够删除、改变、交换提取器、以及改变提取器的顺序。在一些实施例中,用户可以基于所使用的每个提取器的最小置信度阈值来定义接受标准。在一些实施例中,用户可以基于每个字段/提取器组合的最小置信度阈值来定义接受标准。
46.在一些实施例中,用户可以执行从主分类法(例如,在一些实施例中使用分类法管理器所设计和定义的分类法)和一个或多个提取器内部分类法的分类法映射,以用于以统一的方式使所有数据达到共同点(common denominator)。当给定的提取器报告内部的一组“能力”(即提取器可以提取的字段)作为应被映射(被转换)到主分类法的数据提取的结果时,该功能性可以被使用。用户可以决定来自所使用的每个提取器的结果的优先级。例如,提取器在处理发票时可以报告名为“inv-no”的字段的值,而主分类可能包含名为“发票编号(invoice number)”的字段。该功能性允许从提取器报告的“inv-no”与主分类中所定义的“发票编号”对应的规定。
47.用户还可以决定哪些提取器组件被允许解析某些字段,哪些被限制这样做。给定特定用例中所使用的每个提取器实现(即组件)的已知特征和限制,这些功能允许对文档提取进行微调。在一些实施例中,提取器可以被实现为rpa工作流中的活动。
48.工作流200包括数据提取器(data extractor)活动206和表单提取器活动208。用户可以通过点击配置提取器(configure extractor)链接210来配置工作流200中的提取器。
49.点击配置提取器链接210打开提取器配置界面。可以查看来自主分类法的文档类型(document type)和字段。通过在每个提取器的和固定形式提取器中选择对应的复选框,提取器在每个字段的基础上被应用。最小置信百分比也可以被指定。
50.该实施例中的文档提取功能性确保了相同类型的输出(output),而不管基于数字化文件和分类法所使用的提取器如何。简而言之,一些实施例的文档处理框架采取具有页面边界的文件和分类结果(classification result),尝试标识每个相关联字段的数据,使用工作流中所包括的提取算法,收集结果,并且基于置信度、排序和提取器链接报告每个字段的最佳结果。在一些实施例中,可以利用业务特定信息或验证、特定格式化和/或其他后处理来进一步增强提取结果。在某些实施例中,可以使用以任何期望组合中可用的任何其他rpa工作流活动来检查/更正/增强自动数据提取组件的输出。这些活动可以用于操纵自动数据提取的输出,并且可添加、删除或更改结果中包含的某些值。例如,这可以用于复杂的用例,在这些用例中,所提取的数据应该利用来自数据库或当时被处理的单个文件外部的其他源的信息而被增强。
51.在一些实施例中,数据提取验证模块提供用户界面,该用户界面用于审阅、更正
和/或手动处理由数据提取模块报告的数据点(即,所提取的信息)的用户界面。用户可以通过以下方式审阅来自自动数据提取的结果:(1)查看值、证据、所提取的值在文档内被发现的位置、从文档的已处理部分(例如,在与分类有关的某些页面范围)所提取的值的置信度等;(2)通过编辑正确地被报告的值中的ocr错误、更正所报告的值的定位、完全替换所报告的值、添加自动处理缺失的值和/或移除自动处理所错误标识的值来执行更正;(3)通过以下直接与正在被处理的原始文件的图形表示交互:通过直接在原始文件视图上选择范围、区域、(多个)词语来等执行操作;(4)对文档的文本版本的查看和执行操作;和/或(5)在期望时完全手动处理文档。
52.一些实施例的用户界面提供了视觉方法,用于理解要在文件中被标识和被提取的个体字段和数据片段以及做出关于其的评判。某些实施例的用户界面可以独立于先前自动分类和数据提取阶段中所使用的数据提取组件而可使用,提供了用于文档数据提取审阅和处理的、统一的、最先进的用户界面。这种方法可以消除人类学习和使用取决于所采用的数据提取技术学习的不同屏幕进行数据验证的需要,从而统一整体体验并且减少学习曲线和文档处理的整体时间。一些实施例的数据验证组件允许定义和使用自定义验证规则,这些规则可以在允许人类提交通过文档验证功能性被处理的文档之前被检查。以这种方式,该模块可以确保完全可扩展性,并且取决于要覆盖的业务用例对自定义实现开放。
53.在一些实施例中,分类器训练模块促进完成能够从人工反馈中学习的分类器的反馈回路。分类器训练模块可以以统一的方式确保经人工验证的数据和使算法能够从人工反馈中学习的信息以相应分类器可理解的形式(例如,通过使用分类法映射功能)到达激活的分类器、并且启用正确的权限(例如,通过使用训练分类器激活功能)。这种方法可以提供用于关闭独立于所使用的(多个)分类器、并且还可以独立于用于实际文件分类的分类器组件的反馈回路的统一体验。例如,这允许rpa开发人员在提取器被激活用于实际文档数据提取之前训练提取器,从而实现“即时(on-the-fly)”训练并且消除对特定于每个分类组件的大量预先被注释的文件的需要。
54.还可以在分类器训练模块内使用基于表单的分类器。这使得能够摄取人工更正信息,目的是利用新数据调整/完成分类器中的学习。分类器训练(学习)模块的目的是实现分类器性能的自我改进,因为分类器训练模块可以从人工审阅结果所提供的反馈中学习得越来越多。
55.在一些实施例中,分类器训练模块促进完成能够从人工反馈中学习的提取器的反馈回路。提取器训练模块可以以统一的方式确保使算法能够从人工反馈学习的人工验证数据和信息以由(多个)提取器可理解的形式到达激活的(多个)提取器(例如,通过使用分类映射功能性)并且启用正确的权限(例如,通过使用训练提取器字段级激活功能性)。这种方法可以提供用于关闭反馈回路的统一体验,其独立于使用哪(多个)提取器组件,并且也可以独立于用于数据提取的实际文件处理的提取器组件。例如,这允许rpa开发人员在提取器被激活用于实际文档数据提取之前训练提取器,从而实现“即时”训练并且消除特定于每个提取组件的大量预先被注释的文件的需要。
56.类似于分类训练模块,基于表单的提取器也可以用在提取器训练模块内,以使得能够摄取人工更正信息,目的是利用新数据调整/完成提取器训练模块的学习。训练(学习)模块的目的是实现提取器性能的自我高金,因为提取器训练模块可以从人类审阅结果给出
的反馈中学习得越来越多。
57.分类器可以对文档的数字化版本进行操作以标识文档的类型。“分类法管理器”可用于定义要被分类的文档得类型(例如,账单、发票、所得税表单等)。“分类法管理器”允许指定要在文档中被标识的文档类型和字段名称。例如,可以处理w-9表单。在“分类法管理器”中,文档类型可以被定义为w-9表单,并且诸如姓名、公司名称、地址、ssn号等字段被添加。
58.图3是示出根据实施例的分类法管理器(taxonomy manager)300的屏幕截图。分类法管理器300包括文档类型(document types)定义界面310、文档类型细节(document type details)界面320和编辑字段(edit field)界面330。总的来说,界面310、320、330允许用户定义一列文档类型,提供文档类型细节,以及编辑文档类型的字段。
59.文档类型定义界面310被配置为允许用户添加新的文档类型(add new document type)或者编辑或删除已有的文档类型。该界面还提供选择组(group)和类别(category)以及针对组和类别搜索(search)的功能。在该实施例中使用组和类别以更好地组织分类法中的文档类型的集合。基于界面310中的这些设置,组和类别过滤可以可用。可以经由界面320将每个文档类型指派给组和类别。分类法组织(例如,按组、类别、文档类型、字段等)可能随着时间而改变,同时保持捕获文档处理元数据的相同目的。此外,数据结构、用户界面和公共合约也可能在设计、打包、内容、功能性等方面演进。
60.文档类型细节界面320允许用户提供文档类型的名称,以及选择文档类型的组和类别。还可以选择性地指定文档类型代码(document type code)。与文档类型相关联的字段(fields)被示出,并且用户也可以添加、编辑或删除字段。
61.编辑字段界面330允许用户编辑给定字段的属性。可用属性可能基于多种因素而不同,这些因素可能包括但不限于字段类型、类别、组等。
62.在定义了要在分类法管理器300中被标识的文档类型和字段之后,工作流200的表单分类器202中的“管理模板(manager templates)”可以被启动来定义模板。通过创建模板并且上传文档(例如保险表单、银行表单、irs文件)来完成模板的定义。已定义的模板可以用于分类和数据提取。
63.图4是示出根据实施例的模板管理器(template manager)400的屏幕截图,模板管理器400用于管理文档类型的模板。模板管理器可以被配置为提供可以在文档类型和模板窗格402中被选择的不同文档类型和模板。窗格402可以向用户提供针对文档类型选择任何数目的预定义模板的能力,包括示例性示出的发票(invoice)模板,例如“发票01”和w9表单(w-9form)。尽管图4中未示出,但其他文档类型也可以被表示,包括但不限于银行对账单、保险表单、医疗表单、irs表单、水电费账单等。任何文档类型都可以被配置为使用基于表单的分类器和提取器,目的是执行文档处理,如果方法是合适的,没有限制。如模板管理器400中所示,尽管尚未创建针对文档类型的模板,但是该文档类型可以被标识。在这种情况下,文档类型可以被注释为具有模板“尚未创建”标记。启动这样的模板,用户可以被呈现在用于创建新模板(create a new template)的窗口410内。窗口410包括针对要被标识的文档类型的入口点、要被命名的模板、样本文档、和如果扫描样本文档要使用的ocr引擎(ocr engine)。在录入指定信息后,模板可以被创建。模板管理器还可以允许编辑先前所创建的模板以及导出或导入先前所创建的模板。
64.用户可以通过选择样本文档(模板)上的字段来定义针对文档必须被提取的字段或字段区域(例如,姓名、地址、电话号码、签名等),如图5所示。图5是示出根据w-9表单模板的实施例的模板管理器编辑窗口500的屏幕截图,模板管理器编辑窗口500用于管理特定文档类型的特定模板。用户可以通过选择字段在样本文档上的位置并且选择针对当前文档类型的相关关键字(页面匹配信息(page matching info)505)来定义参数以将模板分类和提取数据。这使得表单分类器能够标识匹配的模板,并且使得“表单提取器”能够标识来自文档中所标识位置的特定字段的值。页面匹配信息可以针对文档的每个页面被定义,并且可以表示出现在与当前文档类型有关的所有文档的相同位置的关键字或静态文本片段、标志、图章或其他唯一可标识信息。例如,分类法字段515可以包括例如姓名(name)、企业名称(business name)、s公司(s-corporation)、c公司(s-corporation)、地址(address)和社会安全号码(ssn)的字段。这些字段可以在文档510内被标识,它们各自的位置被模板化以用于提取。
65.在图5的示例性屏幕截图中,模板管理器编辑窗口500中的“名称字段配置(name field configuration)”可以通过突出显示来自文档510的部分520而被启动,其中该字段的值驻留在一起被显示的模板文档中。在(共同地)针对所有字段515定义位置520之后,模板被保存。通过选择工作流200中的配置分类器204和配置提取器210来激活分类器和提取器。
66.对于给定的文档类型,可以创建多个模板,诸如对于单个文档类型(出于示例目的,w-9表单),多个模板(出于示例目的,不同irs版本中发布的w-9表单的变体)可以被定义。表单提取器可以找到最适合用于数据提取的模板。
67.使用模板管理器的导入和导出能力,可以跨不同的rpa活动共享表单提取器的模板。导出能力可以导出与被选择导出的一系列模板相关的数据,并且可以与模板一起存储任何附加的相关信息,诸如创建模板的文档类型设置、如何处理特定字段的运行时设置等。导入能力可以确保导入模板、文档类型、字段级设置等,并且也可以确保基于新导入的信息调整给定的rpa流程。
68.在文档被分类并且数据从文档中被提取后,数据与原始文档一起在“验证站(validation station)窗口”上被显示给用户。如果系统所提取的数据不正确,则为用户提供修改提取数据的设施。图6是验证窗口600的屏幕截图。窗口600包括标识从文档提取的每条数据的左侧部分605,而右侧610显示文档本身。这允许针对数据被提取处的文档部分来监控每个字段615。例如,名称(name)625可以直接与包含名称的文档部分620相比较。继续示例,企业名称(business name)635可以直接与包含企业名称的文档部分630相比较。继续示例,s公司(s corporation)645可以直接与包含针对s公司的复选框的文档部分640进行比较,并且c公司(c corporation)655可以直接与包含针对c公司的复选框的文档部分650相比较。继续示例,地址(address)665可以直接与包含地址信息的文档部分660进行比较。ssn 675也可以直接与包含ssn信息的文档部分(图6中未示出)。附加字段615可以包括文档610内的位置定位,如会从本文描述的特定示例性字段中所理解的。
69.图7是示出根据本发明的实施例的用于实现rpa的文档处理框架的方法700的流程图。该流程开始于在710处定义和存储一般分类法(general taxonomy)。在一些实施例中,这可以包括执行提供界面的分类法管理器,该界面促进对以分类和数据提取为目标的一列
文档类型、以及针对文档类型中的每个文档类型的相关联字段的定义,接收已定义的一列文档类型和针对已定义的文档类型中的每个文档类型的相关联字段,以及将该一列文档类型和相关联字段存储在主分类法数据结构中。
70.接下来,在720处,数字化活动在rpa工作流中被执行并且文件的文本版本和被存储在文档对象模型(dom)数据结构中的dom被输出。在一些实施例中,dom包括与文件中的类型化的部分、类型化的词组和词级信息相关的信息,其利用旋转、倾斜和相对宽度和高度信息而被增强,并且还可以包括ocr置信度值的信息。在某些实施例中,数字化活动使用多个ocr引擎并且数字化活动包括实现针对多个ocr引擎的投票系统,并且输出来自多个ocr引擎的最佳组合结果。
71.在730处,使用rpa工作流中的一种或多种分类器将文件分类成一种或多种文档类型,并且自动分类信息被输出。在一些实施例中,该信息可以被存储在分类数据结构中。在一些实施例中,一个或多个分类器被配置为执行基于布局的分类、基于情感的分类、基于特征的分类、基于自然语言处理(nlp)的分类、基于机器学习(ml)的分类、基于深度学习的分类、基于图像的分类、基于关键字的分类、基于颜色的分类、它们的任意组合或任何其他文档分类方法。在某些实施例中,分类包括使用接受标准,该接受标准基于针对一个或多个分类器中的每个分类器的最小置信度阈值。在一些实施例中,分类包括针对一个或多个分类器映射主分类法和相应分类器的内部分类法。在某些实施例中,分类包括基于rpa工作流程中的分类器顺序对来自每个分类器的结果进行优先排序,基于文档类型选择一个或多个分类器中的分类器用于分类,向一个或多个分类器中的至少一个分类器指派最小置信度字段,或前述项的任何组合。
72.在740处,分类验证模块被执行并且自动分类信息被输出,该分类验证模块提供用于审阅、更正和/或手动处理用于分类的文件的界面。在750处,分类器训练模块被执行。该分类器训练模块促进完成针对一个或多个分类器的反馈循环。然后,在760处,使用rpa工作流程中的一个或多个提取器,数据从已分类文档中被提取,并且自动被提取的数据被输出。在一些实施例中,该被提取的数据可以存储在提取数据结构中。在一些实施例中,提取包括基于rpa工作流中的提取器顺序对来自每个提取器的结果进行优先排序,基于文档类型选择一个或多个提取器中的提取器用于提取,向一个或多个提取器中的至少一个提取器指派最小置信度字段,或签署项的任何组合。
73.在770处,数据提取验证模块被执行并且经确认的被提取数据被输出,该数据提取验证模块提供用于更正和/或手动处理来自数据提取的数据点的界面。在780处,促进完成针对一个或多个提取器的反馈循环的提取器训练模块被执行。然后在790处,包括分类结果和被提取信息的经处理数据被导出。应当注意,一旦定义了分类法,在一些实施例中,基于用例的需要,步骤720-790中的一个或多个步骤可以是可选的。
74.在方法700已完成之后,经验证的信息现在可用于其他系统中。例如,可以将信息插入到数据库或文件中,可以经由电子邮件发送具有特定值的通知等。作为非限制性示例,图7的方法700可以从pdf文件开始并且以知道该文件是发票、该发票中写入的总金额为42美元、供应商为“xyz书店”以及购买日期是2019年7月23日而结束。例如,这些值现在可以以编程方式被插入到核算(accounting)系统中。
75.在本文中给出的示例中,模块可以被实现为硬件电路,该硬件电路包括定制的超
大规模集成(vlsi)电路或门阵列、诸如逻辑芯片等现成半导体、晶体管或其他分立组件。模块还可以在可编程硬件设备中实现,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件、图形处理单元等。
76.模块可以至少部分以软件实现以供各种类型的处理器执行。所标识的可执行代码单元可以包括一个或多个物理或逻辑计算机指令块,该物理或逻辑计算机指令块可以例如被组织为对象、过程、例程、子例程或功能。共同定位或被存储在不同位置中的所标识的模块的可执行文件在逻辑上连结在一起时构成该模块。
77.可执行代码模块可以是分布在若干不同代码段上、在不同程序之间、跨若干存储器设备等的单个指令、一个或多个数据结构、一个或多个数据集、多个指令等。操作或功能数据在本文中可以在模块内被标识和说明,并且可以以合适的形式体现并且组织在任何合适类型的数据结构内。
78.在本文中给出的示例中,计算机程序可以以硬件、软件或混合实现来配置。计算机程序可以由彼此有效通信并且传递信息或指令的模块组成。
79.尽管以上以特定组合描述了特征和元素,但本领域普通技术人员将理解,每个特征或元素可以单独使用或与其他特征和元素以任何组合使用。此外,本文中描述的方法可以在计算机程序、软件或固件中实现,该计算机程序、软件或固件并入计算机可读介质中以供计算机或处理器执行。计算机可读介质的示例包括电子信号(通过有线或无线连接传输)和计算机可读存储介质。计算机可读存储介质的示例包括但不限于只读存储器(rom)、随机存取存储器(ram)、寄存器、高速缓冲存储器、半导体存储器设备、磁介质(诸如内部硬盘和可移除存储器磁盘)、磁光介质和光介质(诸如cd-rom磁盘)和数字通用磁盘(dvd)。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1