基于深度学习的文档拆分器的制作方法

文档序号:32946867发布日期:2023-01-14 11:23阅读:20来源:国知局
基于深度学习的文档拆分器的制作方法
基于深度学习的文档拆分器
1.相关申请的交叉引用
2.本技术要求于2020年9月25日提交的印度专利申请号202011041647以及于2020年10月21日提交的美国实用新型专利号17/075,731的优先权,上述申请的公开的全部内容通过引用并入于此。
技术领域
3.本发明一般地涉及机器人流程自动化(rpa),并且更特别地涉及用于rpa中的文档处理的基于深度学习的文档拆分器。


背景技术:

4.机器人流程自动化(rpa)是一种使用软件机器人来使工作流自动化的过程自动化的形式。rpa可以被实施以使重复性的和/或劳动密集型的任务自动化以减少成本并且提高效率。rpa中的一项重要的任务是文档处理。通常地,对包括多个子文档的电子计算机文件中执行文档处理。例如,这样的电子计算机文件可以包括与发票、报告、保险单等对应的子文档。为了执行很多文档处理任务(诸如,例如文档数字化),电子计算机文件必须被拆分为多个子文档。
5.用于电子计算机文件的文档拆分的常规方法依赖于对该电子计算机文件中的关键词的标识。然而,利用常规的文档拆分方法的这种对关键词标识的依赖具有很多缺陷,诸如,例如,需要对关键词的手动标识、难以在电子计算机文件中定位关键词、在包括相同关键词的多个子文档中的关键词冲突、以及在关键词分配中的人为错误。


技术实现要素:

6.根据一个或多个实施例,提供了用于使用经训练的基于机器学习的模型来将电子文件拆分为子文档的系统和方法。电子文件被接收。电子文件的部分使用经训练的基于机器学习的模型而被分类。类别表示部分在电子文件的子文档内的相对位置。电子文件基于部分的相对位置被拆分为子文档。子文档被输出。
7.在一个实施例中,表示部分在电子文件的子文档内的相对位置的类别包括表示子文档的第一部分的类别、表示子文档的最后部分的类别、以及表示在该第一部分和该最后部分之间的子文档的部分的类别。电子文件的部分可以通过将从该电子文件的部分中的每个部分所提取的感兴趣的特征映射到类别而被分类。感兴趣的特征包括词云、页码、或文本相关特征中的一项或多项。
8.在一个实施例中,被错误分类的部分使用统计校验器从经分类的部分被检测到,并且该被错误分类的部分被呈现给用户以供手动分类。
9.在一个实施例中,电子文件在被分类为子文档的第一部分的每个部分之前被立即拆分。电子文件的部分可以对应于电子文件的页。
10.在一个实施例中,经训练的基于机器学习的模型是经训练的深度学习模型。该经
训练的基于机器学习的模型可以是基于以下中的一项:lstm(长短期记忆)架构、bi-lstm(双向lstm)架构、或者seq2seq(序列到序列)架构。
11.在一个实施例中,子文档使用分类器被分类。
12.通过参考下面的详细的描述以及附图,本发明的这些和其他优点对于本领域技术人员来说将是显而易见的。
附图说明
13.图1是图示了根据本发明的实施例的机器人流程自动化(rpa)系统的架构图;
14.图2是图示了根据本发明的实施例的所部署的rpa系统的示例的架构图;
15.图3是图示了根据本发明的实施例的rpa系统的经简化的部署示例的架构图;
16.图4示出了根据本发明的实施例的用于将电子计算机文件拆分为子文档的方法;
17.图5示出了根据本发明的实施例的电子文件的表示的框图;
18.图6示出了根据本发明的实施例的用于训练基于机器学习的模型来对电子文件的部分分类的方法;以及
19.图7是根据本发明的实施例的计算系统的框图。
具体实施方式
20.机器人流程自动化(rpa)被用来使工作流和过程自动化。图1是根据一个或多个实施例的rpa系统100的架构图。如图1所示,rpa系统100包括设计器102,以允许开发者设计自动化过程。更具体地,设计器102支持rpa过程和机器人的开发和部署以用于执行过程中的活动。设计器102可以提供针对应用集成、以及自动化第三方应用、管理性信息技术(it)任务、和用于联络中心操作的业务过程的解决方案。设计器102的实施例的一个商业示例是uipath studio
tm

21.在设计基于规则的过程的自动化中,开发者控制执行次序和在过程中所开发的步骤的定制集合之间的关系,在本文中被定义为“活动”。每个活动可以包括诸如点击按钮、读取文件、写入日志面板等动作。在一些实施例中,过程可以被嵌套或嵌入。
22.一些类型的过程可以包括但不限于序列、流程图、有限状态机(fsm)、和/或全局异常处理器。序列可以特别地适于线性过程,使得能够从一个活动流向另一活动而不会使过程混乱。流程图可以特别地适合较复杂的业务逻辑,使得能够通过多个分支逻辑运算符以更加多样化的方式集成决策并且连接活动。fsm可以特别地适于大型工作流。fsm在其执行中可以使用有限数量的状态,这些状态由条件(即,过渡)或活动触发。全局异常处理器可以特别地适于当遇到执行错误时确定工作流行为并且适于调试过程。
23.一旦过程在设计器102中被开发,业务过程的执行被指挥器(conductor)104编排(orchestrate),指挥器104编排执行由设计器102中所开发的过程的一个或多个机器人106。指挥器104的实施例的一个商业示例是uipath orchestrator
tm
。指挥器220支持对rpa环境中的资源的创建、监测和部署的管理。在一个示例中,指挥器104是web应用。指挥器104还可以运作为与第三方解决方案和应用的集成点。
24.指挥器104可以通过从集中点连接并且执行机器人106来管理rpa机器人106的机群(fleet)。指挥器104可以具有各种能力,包括但不限于建置(provision)、部署、配置、排
队、监测、日志记录(logging)、和/或提供互连性。建置可以包括对在机器人106和指挥器104(例如,web应用)之间的连接的创建和维护。部署可以包括确保将包版本正确递送到所分配的机器人106以供执行。配置可以包括维护和递送机器人环境和过程配置。排队可以包括提供对队列和队列项的管理。监测可以包括跟踪机器人标识数据以及维护用户许可。日志记录可以包括将日志存储并且索引到数据库(例如,sql数据库)和/或另一存储机制(例如,其提供存储和快速查询大型数据集的能力)。指挥器104可以通过作为针对第三方解决方案和/或应用的通信的集中点来提供互连性。
25.机器人106是执行代理,其运行设计器102中内置的过程。机器人106的一些实施例的一个商业示例是uipath robots
tm
。机器人106的类型可以包括但不限于有人值守的机器人108和无人值守的机器人110。有人值守的机器人由用户或用户事件触发,并且与人类用户一起在相同的计算系统上操作。有人值守的机器人108可以帮助人类用户完成各种任务,并且可以由人类用户和/或用户事件直接地触发。在有人值守的机器人的情况下,指挥器104可以提供集中的过程部署以及日志记录介质。在某些实施例中,有人值守的机器人108只能够从“机器人托盘(robot tray)”或web应用中的命令提示符开始。无人值守的机器人110在虚拟环境中的无人值守模式下运行,并且能够被用于使很多过程(例如,高容量、后端过程等)自动化。无人值守的机器人110可以负责远程执行、监测、调度、和为工作队列提供支持。有人值守的机器人和无人值守的机器人两者都可以使各种系统和应用自动化,包括但不限于大型机、web应用、vm、企业应用(例如,由等生产的)、以及计算系统应用(例如,桌上型和膝上型应用、移动设备应用、可穿戴式计算机应用等)。
26.在一些实施例中,机器人106默认安装microsoft服务控制管理器(scm)所管理的服务。作为结果,这样的机器人106能够在本地系统账户下打开交互式会话,并且具有服务的权利。在一些实施例中,机器人106能够在用户模式下被安装有与已经安装有给定机器人106的用户相同的权限
27.在一些实施例中,机器人106被拆分为若干部件,每个部件专用于特别的任务。在一些实施例中,机器人部件包括但不限于scm管理的机器人服务、用户模式机器人服务、执行器、代理、和命令行。scm管理的机器人服务管理并且监测会话,并且充当指挥器104与执行主机(即,在其上执行机器人的计算系统)之间的代理。这些服务是受信的并且为机器人106管理凭据。控制台应用由本地系统下的scm启动。在一些实施例中,用户模式机器人服务管理和监测会话,并且充当指挥器104与执行主机之间的代理。用户模式机器人服务可以是受信的并且为机器人106管理凭据。如果scm管理的机器人服务没有被安装,则应用可以自动地被启动。执行器可以在会话下运行给定作业(例如,它们可以执行工作流),并且它们可以知道每监测器每英寸点数(dpi)设置。代理可以是呈现基础(presentation foundation)(wpf)应用,这些应用显示系统托盘窗口中的可用的作业。代理可以是服务的客户端。代理可以请求开始或停止作业并且改变设置。命令行是服务的客户端并且是控制台应用,其能够请求开
始作业并且等待它们的输出。拆分机器人部件能够帮助开发者,支持用户,并且使得计算系统能够更容易运行、标识、并且跟踪每个机器人部件正在执行什么。例如,可以为每个机器人部件配置特殊的行为,诸如设置针对执行器和服务的不同的防火墙规则。作为进一步的示例,在一些实施例中,执行器可以知道每监测器的dpi设置,并且作为结果,工作流可以在任何dpi被执行,无论在其上创建工作流的计算系统的配置如何。
28.图2示出了根据一个或多个实施例的rpa系统200。rpa系统200可以是图1的rpa系统100,或者可以是图1的rpa系统100的部分。应当指出的是,在不背离本发明的范围的情况下,“客户端侧”、“服务器侧”、或者两者可以包括任何期望数量的计算系统。
29.如在此实施例的客户端侧上所示的,计算系统200包括一个或多个执行器204、代理206和设计器208。在其他实施例中,设计器208可以不在相同的计算系统202上运行。执行器204(其可以是如以上描述的机器人部件)运行过程并且在一些实施例中,多个业务过程可以同时运行。在此示例中,代理206(例如,服务)是针对管理执行器204的联络(contact)的单个点。
30.在一些实施例中,机器人表示在机器名称与用户名之间的关联。机器人可以同时管理多个执行器。在支持多个交互式会话同时运行的计算系统(例如,server 2012)上,多个机器人可能正在同时运行(例如,高密度(hd)环境),每个在单独的会话中使用唯一的用户名。
31.代理206还负责发送机器人的状态(例如,周期性地发送指示该机器人仍在运作的“心跳”信息)并且下载要执行的包的所需要的版本。在一些实施例中,在代理206与指挥器212之间的通信是由代理206发起的。在通知场景的示例中,代理206可以打开websocket通道,该websocket通道之后由指挥器212使用以向机器人发送命令(例如,开始、停止等)。
32.如在此实施例中的服务器侧所示的,呈现层包括web应用214、开放数据协议(odata)代表性状态传送(rest)应用编程接口(api)端点216以及通知和监测api 218。在服务器侧上的服务层包括api实现/业务逻辑220。在服务器侧上的持久层包括数据库服务器222和索引器服务器224。指挥器212包括web应用214、odata rest api端点216、通知和监测api 218、以及api实现/业务逻辑220。
33.在各种实施例中,用户在指挥器212的界面中(例如,经由浏览器210)执行的大部分动作是通过调用各种api被执行的。这样的动作可以包括但不限于在机器人上开始作业、在队列中增加/移除数据、调度作业来以无人值守的方式运行等。web应用214是服务器平台的可视层。在此实施例中,web应用214使用超文本标记语言(html)和javascript(js)。然而,在不背离本发明的范围的情况下,可以使用任何期望的标记语言、脚本语言、或任何其他格式。在此实施例中,为了执行各种动作以控制指挥器212,用户经由浏览器210与来自web应用214的web页面交互。例如,用户可以创建机器人组、向机器人分配包、分析每个机器人的日志和/或每个过程的日志、开始和停止机器人等。
34.除了web应用214之外,指挥器212还包括暴露odata rest api端点216(或者在不背离本发明的范围的情况下可以被实施的其他端点)的服务层。rest api由web应用214和代理206两者消耗。在此示例性配置中,代理206是在客户端计算机上的一个或多个机器人的监督者。
35.在此实施例中的rest api涵盖配置、日志记录、监测和排队功能。在一些实施例中,配置rest端点可以被用于定义和配置应用用户、许可、机器人、资产、释放、和环境。例如,日志记录rest端点可以被用于日志记录不同的信息,比如,诸如错误、由机器人所发送的显式消息、和其他特定环境信息。如果开始作业命令被用在指挥器212中,则部署rest端点可以由机器人使用来查询应当被执行的包版本。排队rest端点可以负责队列和队列项管理,诸如向队列增加数据、从队列获取事务、设置事务的状态等。监测rest端点监测web应用214和代理206。通知和监测api 218可以是如下的rest端点:这些rest端点被用于注册代理206、向代理206递送配置设置、以及用于发送/接收来自服务器和代理206的通知。在一些实施例中,通知和监测api 218还可以使用websocket通信。
36.在此图示的实施例中,在服务器侧上的持久层包括一对服务器——数据库服务器222(例如,sql服务器)和索引器服务器244。在此实施例中,数据库服务器222存储机器人、机器人组、相关联的过程、用户、角色、时间表等的配置。在一些实施例中,此信息通过web应用214而被管理。数据库服务器222还可以管理队列和队列项。在一些实施例中,数据库服务器222可以存储由机器人所日志记录的消息(附加于索引器服务器224或代替索引器服务器224)。在一些实施例中是可选的索引器服务器224存储并且索引由机器人所日志记录的信息。在某些实施例中,索引器服务器224可以通过配置设置而被禁用。在一些实施例中,索引器服务器224使用该是开源工程全文搜索引擎。由机器人所日志记录的消息(例如,使用类似日志记录消息或写入行的活动)可以通过(多个)日志记录rest端点被发送到索引器服务器224,在索引器服务器224中这些消息被索引以供将来利用。
37.图3图示了根据一个或多个实施例的rpa系统300的经简化的部署示例的架构图。在一些实施例中,rpa系统300可以是或者可以包括图1和/或图2各自的rpa系统100和/或200。rpa系统300包括运行机器人的多个客户端计算系统302。计算系统302能够经由在其上运行的web应用与指挥器计算系统304通信。指挥器计算系统304继而与数据库服务器306和可选的索引器服务器308通信。关于图2和图3,应当指出,尽管在这些实施例中使用了web应用,在不背离本发明的范围的情况下,任何适当的客户端/服务器软件可以被使用。例如,指挥器可以运行与在客户端计算系统上的非基于web的客户端软件应用通信的服务器侧应用。
38.图1的rpa系统100、图2的rpa系统200、和/或图3的rpa系统300可以被实施以使用一个或多个rpa机器人自动地执行多种rpa任务。一个重要的rpa任务是文档处理。很多文档处理任务(诸如例如文档数字化)涉及将电子文件拆分为各种子文档,以对子文档执行进一步的下游的文档处理。每个子文档可以对应于,例如发票、报告、保险单等。本文所描述的实施例提供了使用经训练的基于机器学习的模型来将电子文件拆分为子文档。电子文件的每个部分使用经通用训练的基于机器学习的模型来被标记。这种标记有助于决定两个连续的子文档之间的部分的包容性。有利地,本文所描述的实施例提供了更精确的文档拆分结果,而不具有常规的基于关键词的文档拆分方法的缺陷,因此产生较高质量的下游文档处理。
39.图4示出了根据一个或多个实施例的用于将电子计算机文件拆分为子文档的方法400。方法400可以由一个或多个适当的计算设备(诸如例如图7的计算系统700)来执行。
40.在步骤402处,电子文件被接收。该电子文件是任何适当的格式的计算机文件,诸
如例如是pdf(可移植文档格式)。该电子文件可以通过加载来自计算机系统的存储装置或存储器的先前所存储的电子文件而被接收,或者通过接收来自远程计算机系统所传递的电子文件而被接收。
41.电子文件包括很多部分。在一个实施例中,电子文件的每个部分对应于该电子文件的页。然而,应当理解,电子文件的部分可以是任何适当的部分,诸如例如为电子文件的段落、电子文件的章节等。电子文件的部分与各种文档类型的子文档相关联。例如,这些部分可以与如例如发票、报告、保险单或任何其他适当的子文档的这样的子文档相关联。
42.图5示出了根据一个或多个实施例的电子文件500的表示的框图。电子文件500可以是在图4的步骤402处所接收的电子文件。电子文件500包括页502-a、502-b、502-c、

、502-x、502-y、和502-z(本文中共同地被称为页502)。页502可以包括电子文件500的任何数量的页。尽管页502被表示为电子文件500的页,应当理解,页502可以是电子文件502的任何部分(例如,段落、章节等)。每个页502-a、502-b、502-c、

、502-x、502-y、和502-z分别包括多个词504-a、504-b、504-c、...、504-x、504-y和504-z(在本文中共同地被称为词504)。
43.返回到图4,在步骤404处,电子文件的部分使用经训练的基于机器学习的模型来被分类。类别表示部分在电子文件的子文档内的相对位置。在一个实施例中,类别是以iob(内部-外部-开始或内部-其他-开始)格式来将部分在子文档内的相对位置表示为内部类别、外部(或其他)类别、或者开始类别中的一个,其中开始类别表示子文档的第一部分,外部类别表示子文档的最后部分,并且内部类别表示在第一部分与最后部分之间的部分。然而,该类别可以包括表示部分在子文档内的相对位置的任何其他适当的类别。
44.经训练的基于机器学习的模型接收电子文件作为输入。电子文件的每个部分可以具有任何数量的词。然而,经训练的基于机器学习的模型仅考虑预定数目的词(包括它们的元特征),该预定数目在训练该基于机器学习的模型时被按经验确定。因此,对于具有少于预定数目的词的部分,通过附加空的词来空填补这些部分,直到预定数目的词被达到。对于具有多于预定数目的词的部分,词由该经训练的基于机器学习的模型从部分的顶部向下以及从该部分的底部向上选择以供考虑,直到预定数目的词被达到。词可以从部分的顶部和底部等量地被选择,或者可以是加权的,以用于从部分的顶部选择更多的词或者从部分的底部选择更多的词。例如,如果词的预定数目是每页250,并且具体的页具有400个词,那么250预定数目的词的70%可以从该页的顶部被选择,而250预定数目的30%可以从该页的底部被选择。在此示例中,175个词将会从该页的顶部被选择,而75个词将会从该页的底部被选择。通过从部分的顶部和底部选择词,元数据和/或携带了对实际词的偏爱的文本的特性以及在部分(例如,页)的页眉(header)和页脚(footer)中的有价值的信息被保留了。词的预定数目可以在基于机器学习的模型的先前的离线期间或训练阶段期间被确定。在一个实施例中,词的预定数目被确定为训练数据集的部分中的词的中值数量。
45.经训练的基于机器学习的模型从电子文件的每个部分提取感兴趣的特征,并且将针对部分中的每个部分的所提取的感兴趣的特征映射到类别,从而对电子文件的部分分类。感兴趣的特征可以以任何适当的格式被表示。在一个实施例中,感兴趣的特征作为张量(tensor)的部分被包括。例如,张量可以是3d张量,包括部分的列表作为第一维度、每部分的词作为第二维度、以及针对每个词的文本相关特征的集合作为第三维度。
46.感兴趣的特征可以是dom(文档对象模型)相关特征。例如,在一个实施例中,感兴
趣的特征包括针对电子文件的每个部分的词云。词云是基于部分中的词对该部分的范围的表示。词云是基于词嵌入而被生成的,词嵌入是使用例如glove(针对词表示的全局向量)算法所提取的、部分中的词的数值向量表示。在另一实施例中,感兴趣的特征包括页码或长度。例如,页码“第2页,共5页”可以在页的页脚或页眉中被标识,以将该页分类为在具有总共5页的子文档的内部。在另一实施例中,感兴趣的特征包括文本相关特征。文本相关特征可以包括与部分的文本有关的任何特征,诸如例如文本的字母大小写(例如,小写字母、大写字母、标题)、文本的字体或格式(例如,高度、宽度、字体样式、词的长度(例如使用边界框所确定的)、从文本的顶部或者从文本的底部的距离)、章节类型(例如段落、表格、页眉)、或者任何其他适当的文本相关的特征。在一个实施例中,从电子文件提取的感兴趣的特征在由经训练的基于机器学习的模型映射到类别之前被标准化。
47.经训练的基于机器学习的模型的输出可以是标识针对电子文件的每个部分的类别的类别向量。在一个实施例中,该类别向量是[内部外部开始]格式的独热编码(one-hot encoded)类别向量,使得在向量中的1表示正类别并且在向量中的0表示负类别。例如,针对部分的向量[1 0 0]表示该部分被分类为内部,向量[0 1 0]表示该部分被分类为外部,并且向量[0 0 1]表示该向量被分类为开始。类别向量包括针对电子文件中的每个部分的向量。在一个示例中,类别向量是:
[0048]
[[0 0 1],[1 0 0],[1 0 0],[0 1 0]]
[0049]
其表示第一部分被分类为开始,第二部分被分类为内部,第三部分被分类为内部,并且第四部分被分类为外部。
[0050]
经训练的基于机器学习的模型可以是任何适当的基于机器学习的模型,诸如例如为基于神经网络的模型或者基于人工神经网络的模型。在一个实施例中,基于机器学习的模型是基于深度学习的模型。在一个实施例中,基于机器学习的模型可以使用lstm(长短期记忆)rnn(循环神经网络)架构被实施。lstm rnn提供长期记忆,该长期记忆通过打开或关闭输入门、输出门和/或遗忘门而被控制。lstm rnn因此使得所编码的特征能够存储以及随后取回,从而基于来自电子文件先前的部分的类别的所编码的特征来提供电子文件的部分的类别。在另一实施例中,基于机器学习的模型可以使用bi-lstm(双向lstm)rnn架构被实施。bi-lstm rnn使双向通信能够基于来自先前部分的类别的所编码的特征以及来自电子文件中的下一部分的类别的所编码的特征来提供电子文件的部分的类别。在另一实施例中,基于机器学习的模型可以使用seq2seq(序列到序列)网络架构被实施。
[0051]
基于机器学习的模型被训练以用于使用在先前离线或训练阶段期间的训练数据集来对电子文件的部分分类。在一个实施例中,基于机器学习的模型根据下面详细描述的图6的方法600被训练。一旦被训练,经训练的基于机器学习的模型在步骤404被应用到未见过的数据以在在线或预测阶段期间对电子文件的部分分类。
[0052]
在一个实施例中,在由经训练的基于机器学习的模型对电子文件的部分中的每个部分分类之后,统计检查器被应用来检测被错误分类的部分。检测是基于如下的假设被执行的:在先前训练阶段期间正确预测的softmax分数遵循高斯分布或者正态分布。在先前训练阶段期间,对于每个类别,假设高斯分布、最小值、最大值、平均值、以及该分布的标准差是使用所观测的softmax值来计算的。对于新的预测(例如,对于在步骤404处的部分的类别),从经训练的基于机器学习的模型来获得softmax
p
。根据以下等式(1)来计算阈值或截
止值:
[0053]
threshold=ceiling(mean-standarddeviation)公式(1)
[0054]
其中上限是将值四舍五入到最接近的整数,并且平均值和标准差是在先前训练阶段期间被计算的。统计校验器基于softmax
p
和所计算的阈值提供引导(guidance)。该引导可以是二进制引导,使得如果softmax
p
的值小于所计算的阈值,则由经训练的基于机器学习的模型所预测的类别被丢弃;否则所预测的类别是经验证的。在统计校验器标识被错误分类的部分的地方,具有被错误分类的部分的电子文件可以被呈献给用户以供手动分类。
[0055]
在步骤406处,电子文件基于部分的相对位置而被拆分为子文档。每个子文档包括一个或多个部分的序列。在一个实施例中,电子文件在被分类为子文档的第一部分的每个部分之前被立即拆分。例如,电子文件可以在具有开始类别的每个部分之前被立即拆分。相应地,电子文件可以通过,例如从电子文件提取每个拆分之间的部分的序列作为子文档而被拆分。
[0056]
应当理解,针对每个子文档的部分的序列不一定包括被分类为开始的部分、被分类为内部的一个或多个部分、以及被分类为内部的部分。例如,包括单个部分的子文档会具有被分类为开始的一个部分。在另一示例中,包括两个部分的序列的子文档会具有被分类为开始的一个部分和被分类为外部的另一部分。
[0057]
在步骤408处,子文档被输出。子文档可以通过例如在计算机系统的显示设备(例如,图7的显示器710)上显示子文档来被输出,或者通过在计算机系统的存储器或存储装置(例如,图7的存储器706)上存储子文档来被输出。
[0058]
在一个实施例中,子文档被输出用于进一步文档处理以供执行rpa任务。在一个示例中,子文档被输出到分类器用于根据文档类型(诸如例如为发票、报告、保险单或任何其他适当的文档类型)来对子文档分类。分类器可以是任何适当的分类器。在一个示例中,分类器是基于机器学习的分类器。
[0059]
图6示出了根据一个或多个实施例的用于训练基于机器学习的模型来对电子文件的部分分类的方法600。方法600的步骤在离线或训练阶段期间被执行。一旦被训练,经训练的基于机器学习的模型被应用以在在线或预测阶段期间对电子文件的部分分类。在一个实施例中,根据方法600的经训练的基于机器学习的模型可以在图4的步骤404处的预测阶段期间被应用,以对电子文件的部分分类。应当理解,关于应用经训练的基于机器学习的模型(例如,在图4的方法400的预测阶段期间)所描述的特征和实施例还可以适用于训练该基于机器学习的模型(例如,在方法600的训练阶段期间)。方法600还由一个或多个适当的计算设备(诸如例如为图7的计算系统700)来被执行。
[0060]
在步骤602处,训练数据集被接收。训练数据集包括一个或多个电子文件,每个电子文件包括一个或多个训练子文档。每个训练子文档在训练数据集内被标识,使得基于机器学习的模型能够推测出部分在子文档内的相对位置而不需要手动注释。
[0061]
在步骤604处,感兴趣的特征从训练数据集被提取。感兴趣的特征可以包括上述关于图4的步骤404所描述的感兴趣的特征。例如,感兴趣的特征可以包括针对训练子文档的部分的词云、页码或长度、或与文本相关特征。
[0062]
在步骤606处,基于机器学习的模型被训练,以基于所提取的感兴趣的特征对训练数据集的部分分类。基于机器学习的模型可以是基于深度学习的模型或者任何其他适当的
基于机器学习的模型。在一个实施例中,基于机器学习的模型可以使用lstm rnn、bi-lstm rnn或seq2seq网络架构被实施。在训练期间,基于机器学习的模型学习在所提取的感兴趣的特征与类别之间的映射。在一个实施例中,类别呈iob格式,但是可以是表示部分在子文档内的相对位置的任何其他适当的类别。
[0063]
在步骤608处,经训练的基于机器学习的模型被输出。经训练的基于机器学习的模型可以通过例如在计算机系统的存储器或存储装置(例如,图7的存储器706)上存储经训练的基于机器学习的模型而被输出。经训练的基于机器学习的模型然后可以从存储器被取回以用于在在线或预测阶段期间(诸如,例如在图4的步骤404处)对电子文件的部分分类。
[0064]
本文所描述的实施例使用总共具有大约52000页的540个子文档的可用数据集被实验式地验证。实验验证结果是88%的训练准确率和83%的验证准确率。
[0065]
有利地,本文所描述的实施例提供用于使用经训练的基于机器学习的模型将电子文件拆分为子文档、而不需要先前标注或者拆分用于训练该基于机器学习的模型的训练数据集。一旦经训练,在经训练的基于机器学习的模型在预测阶段期间被应用之前,该经训练的基于机器学习的模型不需要被再训练。本文所描述的实施例提供了针对拆分电子文件的成本有效的解决方案,而不需要由用户手动验证,并且还避免了常规的基于关键词的文档拆分方法的缺陷。
[0066]
图7图示了根据本发明的实施例的被配置为执行本文所描述的方法、工作流和过程(包括图4和图6所示的方法)的计算系统700的框图。在一些实施例中,计算系统700可以是本文中所描绘和/或描述的计算系统中的一个或多个计算系统。计算系统700包括总线702或用于传达信息的其他通信机制,以及被耦合到总线702用于处理信息的(多个)处理器704。(多个)处理器704可以是任何类型的通用处理器或专用处理器,包括中央处理单元(cpu)、专用集成电路(acis)、现场可编程门阵列(fpga)、图形处理单元(gpu)、其多个实例、和/或其任何组合。(多个)处理器704还可以具有多个处理核,并且处理核中的至少一些核可以被配置为执行特定的功能。在一些实施例中,多并行处理可以被使用。
[0067]
计算系统700还包括存储器706,存储器706用于存储信息和将由(多个)处理器704执行的指令。存储器706可以包括以下各项的任何组合:随机存取存储器(ram)、只读存储器(rom)、闪存、高速缓存、静态存储装置(诸如磁盘或光盘)、或者任何其他类型的非暂态计算机可读介质或其组合。非暂态计算机可读介质可以是能够由(多个)处理器704访问的任何可用的介质,并且可以包括易失性介质、非易失性介质、或两者。该介质还可以是可移除介质、非可移除介质、或者两者。
[0068]
附加地,计算系统700包括通信设备708,诸如收发器,以经由根据任何当前存在的或将来被实施的通信标准和/或协议的无线连接和/或有线连接提供对通信网络的访问。
[0069]
(多个)处理器704还经由总线702被耦合到适于向用户显示信息的显示器710。显示器710还可以被配置为触摸显示器和/或任何适当的触觉i/o设备。
[0070]
键盘712和光标控制设备714(诸如计算机鼠标、触摸板等)还被耦合到总线702,以使得用户能够与计算系统接口。然而,在某些实施例中,物理键盘和鼠标可能不存在,并且用户可以通过显示器710和/或触摸板(未示出)与该设备独自交互。输入设备的任何类型和组合可以被用作设计选择。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户可以经由与其通信的另一计算系统与计算系统700远程交互,或者计算系统700可以自主地
操作。
[0071]
存储器706存储软件模块,该软件模块当由(多个)处理器704执行时提供功能性。该模块包括针对计算系统700的操作系统716以及一个或多个附加的功能性模块718,功能性模块718被配置为执行本文所描述的全部过程或者部分过程或其衍生物。
[0072]
本领域技术人员应当理解,在不背离本发明的范围的情况下,“系统”可以被体现为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(pda)、移动电话、平板计算设备、量子计算系统、或任何其他适当的计算设备、或设备的组合。将上文所描述的功能呈现为由“系统”执行不旨在以任何方式限制本发明的范围,而是旨在提供本发明的很多实施例中的一个示例。实际上,本文所公开的方法、系统和装置可以以与包括云计算系统的计算技术一致的本地化形式和分布式形式来实施。
[0073]
应当指出,在此说明书中所描述的系统特征中的一些系统特征已经被呈现为模块,以更加特别地强调它们实现的独立性。例如,模块可以被实施为硬件电路,该硬件电路包括定制超大规模集成(vlsi)电路或门阵列、诸如逻辑芯片的现成(off-the-shelf)半导体、晶体管、或其他分立的部件。模块还可以在可编程硬件设备(诸如,现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等)中被实施。模块还可以至少部分地在软件中被实施,以供各种类型的处理器执行。可执行代码的经标识的单元可以例如包括可以例如被组织为对象、过程(procedure)或功能的计算机指令的一个或多个物理块或逻辑块。然而,可执行的经标识的模块不需要物理地位于一起,但是可以包括存储在不同位置的不同的指令,当这些指令逻辑上结合在一起时,包括模块并且实现模块所陈述的用途。进一步的,在不背离本发明的范围的情况下,模块可以被存储在计算机可读介质上,该计算机可读介质可以是例如硬盘驱动器、闪存设备、ram、磁带、和/或用于存储数据的任何其他这样的非暂态计算机可读介质。实际上,可执行代码的模块可以是单个指令、或很多指令,并且甚至可以分布在多个不同代码段上、在不同程序之中、以及跨多个存储器设备。类似的,在本文中,操作性数据可以在模块内被标识和说明,并且可以以任何适当的形式被体现并且可以在任何适当的类型的数据结构内被组织。操作性数据可以被收集为单个数据集,或者可以在不同位置上分布,包括在不同存储设备上分布,并且可以至少部分地仅作为系统或网络上的电子信号而存在。
[0074]
前述仅仅说明了本公开的原理。因此,应当理解,本领域技术人员将能够想出尽管没有在本文中明确地描述或示出但体现本公开的原理并且被包括在其精神和范围内的各种布置。另外,本文中所叙述的所有示例和有条件的语言主要是旨在仅针对教育目的,以助于读者理解本公开的原理和由发明人为增进本领域所贡献的概念,并且应被解释为不限于这样的具体地叙述的示例和条件。此外,本文中叙述本公开的原理、方面、和实施例的所有陈述,以及其具体的示例都旨在涵盖其结构等价物和功能等价物。附加地,这样的等价物旨在包括当前已知的等价物以及将来被开发的等价物两者。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1