用于从实体文档提取信息的系统和方法
文献发布时间:2023-06-19 11:55:48
优先权要求
本申请要求于2018年11月6日提交的标题为“用于从实体文档提取信息的系统和方法(Systems and Methods for Extracting Information from a PhysicalDocument)”的美国临时专利申请第62/756,262号的优先权的权益。通过引用将上述专利申请并入本文。
技术领域
本公开总体上涉及从源提取信息。更具体地,本公开涉及从实体文档(physicaldocument)自动提取有用信息。
背景技术
世界上有很大一部分仍生产纸质文档(例如,身份证、账单、收据、成绩单等),该纸质文档包括有用的信息(例如,有效期数据、到期日、跟踪号等)。但是,由于这些文档可能不遵循相同的静态结构、布局和/或术语,可能很难自动从这些文档的图像提取有用的信息。例如,护照读取器在机场很常见,由于护照的已知和固定布局和结构,护照读取器能够从护照文档提取各种信息。类似地,由于信用卡的已知和固定的布局和结构,信用卡读取器(例如,基于图像的读取器)可以能够解析出信用卡号。但是,这些系统对于它们正在读取的信息源的结构、布局和/或术语的改变不具有鲁棒性,并且当然不能从不同于其目标文档(例如,护照或信用卡)的任意文档类型(例如,公共设施账单)提取信息。
此外,作为与从文档自动提取信息关联的另一示例性挑战,由不同实体产生的文档可能对同一数据项目使用不一致的术语。例如,虽然两个公共设施账单都可以提供支付到期日,但是由第一公共设施公司产生的第一帐单可能包括以第一方式格式化和/或表述的信息(例如,“请于以下之前支付:”),而由公共设施公司生产的第二账单可能包括以第二不同方式格式化和/或表述的信息(例如,“账单到期日:”)。大量不同的可能措辞或术语对自动处理/理解从文档提取的信息提出了重大挑战。
发明内容
本公开实施例的各方面和优点将在以下描述中部分阐述,或者可以从描述中获悉,或者可以通过实施例的实践获知。
本公开的一个示例方面涉及一种用于从文档提取信息的计算机实现的方法。该方法可以包括获得表示从文档的图像提取的一个或多个文本单元的数据。该方法可以包括从一个或多个文本单元确定一个或多个被注释的值。该方法可以包括确定一个或多个被注释的值中的每个被注释的值的标签。每个被注释的值的标签可以包含解释被注释的值的键。该方法可以包括:对于每个被注释的值,至少部分地基于被注释的值在文档内的位置,在一个或多个文本单元中执行对标签的搜索。该方法可以包括部分地基于与来自一个或多个被注释的值的至少一个被注释的值关联的标签将至少一个被注释的值映射到呈现给用户的动作。
本公开的另一示例方面涉及一种计算系统。该计算系统可以包括一个或多个处理器,以及其上存储有指令的计算机可读介质,该指令在由一个或多个处理器执行时使系统执行操作。该操作可以包括获得表示从文档的图像提取的一个或多个文本单元的数据。该操作可以包括从一个或多个文本单元确定一个或多个被注释的值。该操作可以包括确定一个或多个被注释的值中的每个被注释的值的标签。每个被注释的值的标签可以包含解释被注释的值的键。该操作可以包括:对于每个被注释的值,至少部分地基于被注释的值在文档内的位置,在一个或多个文本单元中执行对标签的搜索。该操作可以包括至少部分地基于与来自一个或多个被注释的值的至少一个被注释的值关联的标签将至少一个被注释的值映射到呈现给用户的动作。
本公开的又一示例方面涉及一种或多种存储计算机可读指令的有形非暂时性计算机可读介质,该计算机可读指令在由一个或多个处理器执行时使一个或多个处理器执行操作。该操作可以包括获得表示从文档的图像提取的一个或多个文本单元的数据。该操作可以包括从一个或多个文本单元确定一个或多个被注释的值。该操作可以包括确定一个或多个被注释的值中的每个被注释的值的标签。每个被注释的值的标签可以包含解释被注释的值的键。该操作可以包括:对于每个被注释的值,至少部分地基于被注释的值在文档内的位置,在一个或多个文本单元中执行对标签的搜索。该操作可以包括至少部分地基于与来自一个或多个被注释的值的至少一个被注释的值关联的标签将至少一个被注释的值映射到呈现给用户的动作。
本公开的其他方面涉及各种系统、装置、非暂时性计算机可读介质、用户界面和电子设备。
参考以下描述和所附权利要求,将更好地理解本公开的各个实施例的这些和其他特征、方面和优点。结合在本说明书中并构成本说明书的一部分的附图示出了本公开的示例实施例,并且与说明书一起用于解释相关原理。
附图说明
在说明书中阐述了针对本领域普通技术人员的实施例的详细讨论,说明书参考了附图,其中:
图1描绘了根据本公开的示例实施例的可以从文档提取信息的示例计算系统的框图;
图2描绘了根据本公开的示例实施例的示例信息提取模型的框图;
图3描绘了根据本公开的示例实施例的示例信息提取模型的框图;
图4描绘了根据本公开的示例实施例的表示文档的示例图像数据的图;和
图5描绘了根据本公开的示例实施例的从文档提取信息的示例方法的流程图。
在多个附图之间重复的附图标记旨在标识各种实施方式中的相同特征。
具体实施方式
本公开的示例方面涉及从源提取信息,并且特别地涉及从实体文档自动提取有用的信息。与本公开一致的系统和方法可以包括一个或多个信息提取模型,其可以用于生成表示从源提取的信息的数据。(一个或多个)信息提取模型可以接收表示源的图像数据,处理图像数据以识别源中的文本,并注释识别的文本以检测(一个或多个)感兴趣的值。例如,OCR系统可以从图像识别文本,并且注释系统可以识别和注释识别的文本中的感兴趣的值。例如,感兴趣的值可以包括日期、数字值(诸如电话号码)、地址、跟踪码、名称或其他感兴趣的值。此外,本公开的系统和方法可以将标签分配给每个被注释的值。每个被注释的值的标签可以是解释被注释的值的键。例如,对于被注释为日期的值,标签可以是解释日期是支付到期日的键。
特别地,根据本公开的一方面,(一个或多个)信息提取模型可以基于(一个或多个)被注释的值在源中的相对位置将图像数据解析为键值对。例如,在从左到右(LTR)语言的情况下,可以通过寄望文档的坐标空间中的被注释的值的左侧和顶部来找到被注释的值的候选标签字符串,而在从右到左(RTL)语言的情况下,可以通过寄望右侧和顶部来找到被注释的值的候选标签字符串。可以使用不同的启发法(heuristics)来生成候选标签字符串。例如,可以通过拾取字符串的被不超过一个空格分开的部分来生成标签字符串。作为具体示例,与日期对应的标签字符串可以是“出生日期”或“支付到期日”等。
根据另一方面,本公开的系统和方法可以使用语义匹配来确定规范标签(canonical label)以用于代替候选标签。作为示例,为了过滤候选标签字符串,可以将候选标签输入使用基于嵌入的相似性评分系统的嵌入模型。该嵌入模型可以包含已转换为相应的N维向量的几个良好规范的标签字符串(例如,“到期日期”、“应付金额”、“有效日期”)。候选标签还可以被转换成N维嵌入向量,并且可以相对于规范标签向量计算相应的距离。例如,可以选择距离最近/最小且高于指定阈值的良好规范的标签作为规范描述。因此,尽管使用了不同的术语(例如,“请于以下之前支付”),但是所识别的值(例如,日期)可以与周知的规范标签(例如,“到期日期”)匹配。
因此,本公开提供了与从文档的图像自动提取信息有关的问题的多种技术解决方案,所述文档可能在布局、结构和/或术语方面不同。作为一个示例,本公开的系统和方法可以通过理解来智能地搜索被检测的值(例如,被检测的日期、名称、位置、跟踪号等)的候选标签,其中,该理解基于与文档的语言在文档内相对于值的可能位置(而不是其在文档内的绝对位置)的文档的语言关联的定向语言约定(directional language convention)。这可以减少搜索候选标签花费的时间量和处理力,同时还提高准确性或其他结果。其次,本公开提供了使用机器学习的嵌入模型来确定文档中的候选标签与周知概念的相似性。嵌入模型的使用可以改善搜索过程的资源使用,因为不需要存储和搜索大量不同的术语排列。尤其是这两种解决方案使提出的系统和方法极为灵活,消除了对文档的机器可解析性的固定布局或QR码的要求。
根据本公开的各方面,计算系统可以从文档的图像获得表示文本的内容数据。在一些实施方式中,系统可以包括一个或多个光学字符识别(OCR)模型,其可以接收表示文档的图像的图像数据并输出表示从文档的图像识别的文本的内容数据。例如,可以生成实体和/或纸质文档(例如,账单、ID卡、收据、票证、支付卡、包裹标签、标志、法律文档等)的图像(例如,通过扫描实体文档、拍摄实物文档的照片等)。例如,用户可以使用他的智能电话拍摄文档的照片。系统可以将表示文档的图像的图像数据输入(一个或多个)OCR模型,并获得由(一个或多个)OCR模型响应于图像数据输出的内容数据。
在一些实施方式中,系统可以从文档获得包括一个或多个文本单元(例如,单词、数字、短语、句子等)的内容数据。例如,响应于接收图像数据,(一个或多个)OCR模型可以确定文档中的一个或多个文本单元。(一个或多个)OCR模型可以输出包括一个或多个文本单元的内容数据。
在一些实施方式中,系统可以获得包括与一个或多个文本单元关联的一个或多个边界区域的内容数据。一个或多个边界区域可各自与一个或多个文本单元中的文本单元关联。与文本单元关联的边界区域可以表示文本单元在文档内的位置(例如,坐标)。例如,响应于接收图像数据,(一个或多个)OCR模型可以确定与由图像数据表示的文档关联的坐标空间。(一个或多个)OCR模型可以确定一个或多个文本单元,并至少部分地基于与文档关联的坐标空间确定与一个或多个文本单元关联的一个或多个边界区域。(一个或多个)OCR模型可以输出包括一个或多个文本单元和一个或多个边界区域的内容数据。
在一些实施方式中,系统可以获得包括与一个或多个文本单元关联的一个或多个语言预测符(language predictor)的内容数据。与文本单元关联的每个语言预测符可以表示与文本单元关联的语言的预测。作为示例,响应于接收文档的图像,(一个或多个)OCR模型可以从文档确定一个或多个文本单元以及与一个或多个文本单元关联的一个或多个语言预测符。(一个或多个)OCR模型可以输出包括一个或多个文本单元和一个或多个语言预测符的内容数据。作为另一示例,系统可以包括一个或多个语言预测模型。该系统可以将内容数据输入(一个或多个)语言预测模型,并且获得与内容数据中的一个或多个文本单元关联的一个或多个语言预测符作为(一个或多个)语言预测模型的输出。在一些实施方式中,系统可以至少部分地基于一个或多个语言预测符确定与文档关联的语言(例如,通过向一个或多个语言预测符中的每一个分配分数,然后基于分数确定文档的语言)。在一个示例中,可以选择对于其已将最大数量的语言预测符分配给文本单元的语言作为文档的语言。
根据本公开的各方面,系统可以至少部分地基于内容数据获得表示一个或多个被注释的值的被注释数据。在一些实施方式中,该系统可以包括一个或多个注释模型,其可以接收内容数据并输出被注释数据。该系统可以将内容数据输入注释模型,并且获得由(一个或多个)注释模型响应于内容数据而输出的被注释数据。(一个或多个)注释模型可以包括例如一个或多个基于正则表达式的系统、基于语法解析的系统、机器学习模型、启发法等。
在一些实施方式中,(一个或多个)注释模型可以分析内容数据中的一个或多个文本单元,以从一个或多个文本单元识别和注释一个或多个感兴趣的值(例如,日期、电话号码、地址、跟踪号、知识图实体等)。(一个或多个)注释模型可以输出包括一个或多个被注释的值的被注释数据。一个或多个被注释的值可各自与来自内容数据的一个或多个文本单元关联。例如,响应于接收包括第一文本单元(例如,“555-555-5555”)的内容数据,(一个或多个)注释模型可以输出包括与第一文本单元关联的注释值(例如,“电话号码”)的被注释数据。
在一些实施方式中,系统可以获得包括与一个或多个被注释的值关联的一个或多个边界区域的被注释数据。例如,响应于接收包括第一文本单元和与第一文本单元关联的第一边界区域的内容数据,(一个或多个)注释模型可以输出包括与第一文本单元和第一边界区域关联的注释值的被注释数据。
根据本公开的各方面,系统可以针对被注释数据中的一个或多个被注释的值的确定表示一组候选标签(例如,一个或多个候选标签)的候选标签数据。一个或多个候选标签可各自与来自内容数据的一个或多个文本单元关联。在一些实施方式中,来自一个或多个候选标签的候选标签可以与包括来自内容数据的多个文本单元的字符串关联。
在一些实施方式中,系统可以仅针对匹配感兴趣的某些类型的某些被注释的值确定表示一组候选标签的候选标签数据。相关且对于其确定候选标签的感兴趣的类型可以基于文档的特定分类而不同。例如,当从公共设施账单提取信息时,第一组被注释的值可能更相关(并且因此更全面地被处理),而当从活动票证提取信息时,第二组不同的被注释的值可能更相关(并且因此更全面地被处理)。在一些实施方式中,可以使用集成学习模型(ensemble model)、图像分类器和/或循环神经网络来获得文档的分类。
在一些实施方式中,系统可以包括一个或多个候选标签模型,其可以接收被注释数据,并输出候选标签数据。系统可以将被注释数据输入(一个或多个)候选标签模型,并获得(一个或多个)候选标签模型响应于被注释数据而输出的候选标签数据。
在一些实施方式中,(一个或多个)候选标签模型可以至少部分地基于内容数据来确定一个或多个候选标签。例如,文档可以包括被布置为键值对的信息,使得文档中感兴趣的“值”往往被标记有关于每个值表示什么的对应“键”信息。(一个或多个)候选标签模型可以分析内容数据以针对指示被注释的值表示什么的每个被注释的值确定一个或多个候选标签(例如,一个或多个文本单元)。
作为示例,系统可以确定与文档关联的语言(例如,基于包括一个或多个语言预测符的内容数据)。如果系统确定语言是LTR类型的语言,则系统可以检查文档的坐标空间中文档相对于与被注释的值关联的边界区域的左侧区域和/或顶部区域,以确定被注释的值的一个或多个候选标签。与此相比,如果系统确定文档语言是RTL类型的语言,则系统可以检查文档的坐标空间中相对于与被注释的值关联的边界区域的右侧区域和/或顶部区域,以确定被注释的值的一个或多个候选标签。作为另一示例,如果被注释的值与日期对应,则被注释的值的一个或多个候选标签可以包括“出生日期”、“支付到期日”等。
因此,在一种示例技术中,可以基于文档的语言来限制被注释的值的候选标签的搜索空间。例如,如果系统确定语言是LTR类型的语言,则系统可以仅在文档的坐标空间中主要包含文档的相对于与被注释的值关联的边界区域的左侧区域和/或顶侧区域的搜索区域内进行搜索。同样,对于RTL类型的语言,可以将搜索空间限制到在文档的坐标空间中主要包含文档的相对于与被注释的值关联的边界区域的右侧区域和/或顶侧区域的搜索区域。
在另一示例技术中,不一定限制搜索空间。但是,可以相对于不满足某些相对位置特性的候选标签优先选择满足某些相对位置特性的候选标签。
例如,对于LTR类型的语言,系统可以在被注释的值周围的所有相对位置中搜索候选标签。但是,与不位于被注释的值的左侧和/或顶部的候选标签相比,系统可以偏向于选择位于被注释的值的左侧和/或顶部的候选标签。在该技术中,将优先给予满足某些相对位置特性的那些候选标签,但是如果给定候选标签的其他特性指示它是被注释的值的更好匹配(例如,候选标签字符串针对被注释为“电话号码”的值包括单词“电话”),则可以推翻这种优先。
在一些实施方式中,(一个或多个)候选标签模型可以使用一种或多种不同的技术(例如,启发法)来确定一个或多个被注释的值的一个或多个候选标签。作为示例,(一个或多个)候选标签模型可以使用第一技术来确定第一被注释的值的一个或多个候选标签,并且可以使用第一技术来确定第二被注释的值的一个或多个候选标签。作为另一示例,(一个或多个)候选标签模型可以使用第一技术来确定第一被注释的值的一个或多个第一候选标签,并且可以使用第二技术来确定第一被注释的值的一个或多个第二候选标签。作为另一示例,(一个或多个)候选标签模型可以使用第一技术来确定第一被注释的值的一个或多个候选标签,并且可以使用第二技术来确定第二被注释的值的一个或多个候选标签。
根据本公开的各方面,系统可以至少部分地基于候选标签数据确定被注释数据中的一个或多个被注释的值的规范标签。在一些实施方式中,该系统可以包括一个或多个评分模型,其可以接收表示被注释的值的一组候选标签(例如,与被注释的值关联的一个或多个候选标签)的数据,并输出表示被注释的值的规范标签的规范标签数据。该系统可以将候选标签数据输入(一个或多个)评分模型,并获得由(一个或多个)评分模型响应于候选标签数据而输出的规范标签数据。
在一些实施方式中,(一个或多个)评分模型可以使用基于嵌入的相似性评分技术。(一个或多个)评分模型可以包括一组规范标签(例如,“到期日期”、“应付金额”、“有效日期”等),其各自被转换为N维向量。(一个或多个)评分模型可以将该组候选标签中的每个候选标签转换为N维向量,并计算表示规范标签和候选标签的N维向量之间的相应距离。(一个或多个)评分模型可以基于距离选择规范标签。例如,(一个或多个)评分模型可以将在距离上与候选标签最接近/最小并且高于阈值的规范标签确定为与该组候选标签关联的被注释的值的规范标签。(一个或多个)评分模型可以输出包括所确定的规范标签的规范标签数据。作为示例,产生嵌入的嵌入模型可以包括神经网络,诸如例如循环神经网络和/或卷积神经网络。在一些实施方式中,嵌入模型可以是预训练的语言嵌入模型(例如,Word2vec),但是可以约束进行嵌入相似性匹配的搜索空间以仅针对少数规范标签嵌入进行搜索。
因此,在一些实施方式中,(一个或多个)评分模型可以输出指示表示规范标签和候选标签的N维向量之间的计算的距离的规范标签数据。系统可以至少部分地基于规范标签数据从一组规范标签中选择规范标签,使得规范标签和一个或多个候选标签之间的距离是最接近/最小的距离并且高于指定阈值。
在一些实施方式中,可以基于将被注释的值的注释与与规范标签关联的注释类型进行比较的一组规则针对被注释的值选择规范标签中的一个。例如,被注释为日期的文本字符串与其可能与“跟踪号”的规范标签匹配相比更有可能与“到期日期”的规范标签匹配。各种其他规则或关系可以是注释,也可以应用规范标签。
根据本公开的各方面,系统可以至少部分地基于与被注释的值关联的规范标签将被注释的值映射到动作。作为示例,如果从文档提取的信息包括支付到期日期(例如,包括与规范标签“支付到期”关联的日期的被注释的值),则系统可以设置提醒(例如,用户的电子日历中的条目和/或通知提示)以在到期日期之前进行适当的支付。作为另一示例,如果从文档提取的信息包括包裹跟踪号(例如,包括与规范标签“跟踪号”关联的数字的被注释的值),则系统可以向API查询包裹的状态。
本文描述的系统和方法可以提供许多技术效果和益处。例如,计算系统可以包括一个或多个信息提取模型。(一个或多个)信息提取模型可以从表示源的数据(例如,表示扫描文档的图像数据)提取信息。
(一个或多个)信息提取模型可以基于任何位置或取向上的文档的图像来提取信息。与要求文档以特定取向对齐的传统系统(例如,护照扫描仪、信用卡扫描仪等)不同,(一个或多个)信息提取模型可以基于文档中与感兴趣的值关联的描述性标签的相对位置来提取信息。以这种方式,(一个或多个)信息提取模型可以与平移、旋转或透视变形无关地提取信息,并且(一个或多个)信息提取模型可以识别和补偿文档的图像中的剪切像差和球面像差。另外,(一个或多个)信息提取模型可以使用语言嵌入来确定语义含义和相似性,这可以允许(一个或多个)信息提取模型从各种不同的文档类型提取信息,而无需字符串的长列表进行对照匹配。以这种方式,(一个或多个)信息提取模型可以从与多种不同语言关联的文档提取信息,因为嵌入可以与语言无关。因此,本公开的(一个或多个)信息提取模型可以解析其之前可能从未见过的文档,并且以最小的修改来处理多种语言。
本文描述的系统和方法还可以提供对任务为自动提取信息的计算技术的作为结果的改进。提取有用信息的速度和准确性的提高可以直接提高操作速度并减少对计算系统的处理要求,最终导致更高效地利用资源。以这种方式,可以保留计算系统内本来将需要用于这样的任务的宝贵计算资源,以用于其他任务,诸如从附加源提取信息。
图1描绘了根据本公开的示例实施例的可以从文档提取信息的示例计算系统100的框图。系统100包括通过网络180通信地联接的用户计算设备102、服务器计算系统130和训练计算系统150。
用户计算设备102可以是任何类型的计算设备,诸如例如个人计算设备(例如,膝上型计算机或台式计算机)、移动计算设备(例如,智能电话或平板计算机)、游戏控制台或控制器、可穿戴计算设备、嵌入式计算设备或任何其他类型的计算设备。
用户计算设备102包括一个或多个处理器112和存储器114。一个或多个处理器112可以是任何合适的处理设备(例如,处理器核、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是一个处理器或操作性地连接的多个处理器。存储器114可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等以及它们的组合。存储器114可以存储数据116和指令118,该指令由处理器112执行以使用户计算设备102执行操作。
在一些实施方式中,用户计算设备102可以存储或包括一个或多个信息提取模型120。例如,信息提取模型120可以是或可以以其他方式包括各种机器学习模型,诸如神经网络(例如,深度神经网络)或其他类型的机器学习模型,包括非线性模型和/或线性模型。神经网络可以包括前馈神经网络、循环神经网络(例如,长短期记忆循环神经网络)、卷积神经网络或其他形式的神经网络。参考图2和3讨论示例信息提取模型120。
在一些实施方式中,可以通过网络180从服务器计算系统130接收一个或多个信息提取模型120,将其存储在用户计算设备存储器114中,然后由一个或多个处理器112使用或以其他方式实现。在一些实施方式中,用户计算设备102可以实现单个信息提取模型120的多个并行实例(例如,以跨表示文档的图像的图像数据的多个实例执行并行信息提取)。
更具体地,信息提取模型120可以接收表示文档的图像的图像数据作为输入,并且响应于接收图像数据,信息提取模型120可以针对图像数据中的一个或多个被注释的值中的每一个输出规范标签。特别地,信息提取模型120可以确定图像数据中的一个或多个文本单元,至少部分地基于一个或多个文本单元确定一个或多个被注释的值,确定一个或多个被注释值中的每一个的一个或多个候选标签,并至少部分地基于一个或多个候选标签,针对一个或多个被注释标签中的每一个确定规范标签。
附加地或替代地,一个或多个信息提取模型140可以被包括在服务器计算系统130中或以其它方式由其存储和实现,该服务器计算系统130根据客户端-服务器关系与用户计算设备102进行通信。例如,信息提取模型140可以由服务器计算系统140实现为网络服务(例如,信息提取服务)的一部分。因此,可以在用户计算设备102处存储和实现一个或多个模型120,和/或可以在服务器计算系统130处存储和实现一个或多个模型140。
用户计算设备102还可以包括接收用户输入的一个或多个用户输入组件122。例如,用户输入组件122可以是对用户输入对象(例如,手指或手写笔)的触摸敏感的触敏组件(例如,触敏显示屏或触摸板)。触敏组件可以用于实现虚拟键盘。其他示例用户输入组件包括麦克风、传统键盘或用户可通过其提供用户输入的其他装置。
服务器计算系统130包括一个或多个处理器132和存储器134。一个或多个处理器132可以是任何合适的处理设备(例如,处理器核、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是一个处理器或操作性地连接的多个处理器。存储器134可以包括一个或多个非暂时性计算机可读存储介质,例如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等以及它们的组合。存储器134可以存储数据136和指令138,该指令由处理器132执行以使服务器计算系统130执行操作。
在一些实施方式中,服务器计算系统130包括一个或多个服务器计算设备或以其他方式由其实现。在服务器计算系统130包括多个服务器计算设备的情况下,这样的服务器计算设备可以根据顺序计算架构、并行计算架构或其某种组合进行操作。
如上所述,服务器计算系统130可以存储或以其他方式包括一个或多个机器学习信息提取模型140。例如,模型140可以是或可以以其他方式包括各种机器学习模型。示例机器学习模型包括神经网络或其他多层非线性模型。示例神经网络包括前馈神经网络、深度神经网络、循环神经网络和卷积神经网络。参考图2和3讨论示例模型140。
用户计算设备102和/或服务器计算系统130可以经由与通过网络180通信地联接的训练计算系统150的交互来训练模型120和/或140。训练计算系统150可以与服务器计算系统130分离,或者可以是服务器计算系统130的一部分。
训练计算系统150包括一个或多个处理器152和存储器154。一个或多个处理器152可以是任何合适的处理设备(例如,处理器核、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是一个处理器或操作性地连接的多个处理器。存储器154可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等以及它们的组合。存储器154可以存储数据156和指令158,该指令由处理器152执行以使训练计算系统150执行操作。在一些实施方式中,训练计算系统150包括一个或多个服务器计算设备或以其他方式由其实现。
训练计算系统150可以包括模型训练器160,其使用各种训练或学习技术(诸如例如,错误的反向传播)来训练存储在用户计算设备102和/或服务器计算系统130处的机器学习模型120和/或140。在一些实施方式中,执行错误的反向传播可以包括执行通过时间的截断反向传播。模型训练器160可以执行多种泛化技术(例如,权重衰减、丢弃等),以提高被训练的模型的泛化能力。
特别地,模型训练器160可以基于训练数据162的集合来训练信息提取模型120和/或140。训练数据162可以包括例如指示对表示文本的图像数据执行的光学字符识别的数据、指示来自一个或多个文本单元的感兴趣的值的数据、指示与一个或多个文本单元对应的一个或多个注释的数据、指示可能包括指示被注释的值表示什么的信息的被注释的值的搜索空间的数据和/或可以用于训练信息提取模型120和/或140的其他数据。
在一些实施方式中,如果用户已经提供同意,则训练示例(training example)可以由用户计算设备102提供。因此,在这样的实施方式中,可以通过在从用户计算设备102接收的用户特定的数据上由计算系统150训练提供给用户计算设备102的模型120。在某些情况下,该过程可以被称为使模型个性化。
模型训练器160包括用于提供期望功能的计算机逻辑。模型训练器160可以以硬件、固件和/或控制通用处理器的软件来实现。例如,在一些实施方式中,模型训练器160包括存储在存储设备上、加载到存储器中并由一个或多个处理器执行的程序文件。在其他实施方式中,模型训练器160包括一组或多组计算机可执行指令,其存储在有形的计算机可读存储介质(诸如RAM硬盘或光学或磁介质)中。
网络180可以是任何类型的通信网络,诸如局域网(例如,内部网)、广域网(例如,互联网)或其某种组合,并且可以包括任意数量的有线或无线链路。通常,可以使用各种通信协议(例如,TCP/IP、HTTP、SMTP、FTP)、编码或格式(例如,HTML、XML)和/或保护方案(例如,VPN、安全HTTP、SSL)经由任何类型的有线和/或无线连接来承载通过网络180的通信。
图2描绘了根据本公开的示例实施例的示例信息提取模型200的框图。在一些实施方式中,信息提取模型200被训练为接收描述文档的图像的输入数据204的集合,并且作为接收输入数据204的结果,提供指示输入数据204中的一个或多个被注释的值中的每一个的规范标签的输出数据206。特别地,信息提取模型200可以确定输入数据204中的一个或多个文本单元,至少部分地基于一个或多个文本单元确定一个或多个被注释的值,针对一个或多个被注释的值中的每一个确定一个或多个候选标签,并至少部分地基于一个或多个候选标签针对一个或多个被注释标签中的每一个确定规范标签。
图3描绘了根据本公开的示例实施例的示例信息提取模型300的框图。除了信息提取模型300还包括OCR模型302、注释模型306、候选标签模型310和评分模型316之外,信息提取模型300类似于图2的信息提取模型200。
OCR模型302可以被训练为接收描述文档的图像的输入数据204,并且作为接收输入数据204的结果,提供内容数据304。内容数据304可以包括来自文档的一个或多个文本单元。在一些实施方式中,内容数据304可以包括与一个或多个文本单元关联的一个或多个边界区域。OCR模型302可以至少部分地基于与文档关联的坐标空间来确定一个或多个文本单元以及一个或多个边界区域。在一些实施方式中,内容数据304可以包括与一个或多个文本单元关联的一个或多个语言预测符。在一些实施方式中,OCR模型302可以包括一个或多个语言预测模型,其被训练为接收内容数据304,且作为接收内容数据304的结果,提供与内容数据304中的一个或多个文本单元关联的一个或多个语言预测符。
注释模型306可以被训练为接收内容数据304,并且作为内容数据304的结果,提供被注释数据308。注释模型306可以包括例如正则表达式模型、语法解析模型、基于启发法的模型、机器学习模型和/或其他模型。被注释数据308可以包括内容数据304中的一个或多个被注释的值,该一个或多个被注释的值各自与内容数据304中的一个或多个文本单元关联。在一些实施方式中,被注释数据308可以包括与一个或多个被注释的值关联的一个或多个边界区域。特别地,注释模型306可以分析内容数据304中的一个或多个文本单元,以识别和注释来自一个或多个文本单元的一个或多个感兴趣的值(例如,日期、电话号码、地址、跟踪号、知识图实体等)。
候选标签模型310可以被训练为接收被注释数据308,并且作为被注释数据308的结果,提供候选标签数据314。候选标签数据314可以包括例如针对被注释数据308中的每个被注释的值的一组一个或多个候选标签。与被注释的值关联的该组候选标签中的每个候选标签可以指示被注释的值表示什么。来自该组候选标签的每个候选标签可以与内容数据304中的一个或多个文本单元(例如,单个文本单元或包括多个文本单元的字符串)关联。在一些实施方式中,候选标签模型310可以仅针对被注释数据308中与感兴趣的某些类型匹配的某些被注释的值确定一组候选标签。在一些实施方式中,候选标签模型310可以使用一种或多种不同的技术(例如,试探法)来确定一个或多个被注释的值的一组或多组候选标签。在一些实施方式中,候选标签模型310可以至少部分地基于内容数据304来确定一组候选标签。特别地,候选标签模型310可以确定文档中被布置为键值对的信息,使得文件中感兴趣的“值”往往被标记有关于每个值表示什么的对应“键”信息。在一些实施方式中,候选标签模型310可以确定与文档关联的语言(例如,至少部分地基于包括一个或多个语言预测符的内容数据304),并且至少部分地基于文档的语言确定被注释的值的该组候选标签。特别地,候选标签模型310可以至少部分地基于文档的语言,在与文档关联的坐标空间中确定该组候选标签相对于与被注释的值关联的边界区域的搜索空间。候选标签模型310可以至少部分地基于搜索空间内的内容数据304中的一个或多个文本单元,确定被注释的值的该组候选标签。
可以将评分模型316训练为接收候选标签数据314,并且作为候选标签数据314的结果,提供输出数据206。输出数据206可以包括针对被注释数据308中的一个或多个被注释的值中的每一个的规范标签(例如,规范标签数据)。在一些实施方式中,评分模型316可以使用基于嵌入的相似性评分技术。特别地,评分模型316可以包括各自被转换成N维向量的一组规范标签(例如,“到期日期”、“应付金额”、“有效日期”等)。评分模型316可以将候选标签数据314中的每个候选标签转换成N维向量,并计算表示规范标签和候选标签的N维向量之间的相应距离。评分模型316可以确定被注释的值的规范标签,使得规范标签的N维向量在距离上与与被注释的值关联的该组候选标签中的候选标签的N维向量最接近/最小(且高于指定阈值)。
图4描绘了根据本公开的示例实施例的表示文档的示例图像数据的图。用户计算设备102可以生成图像数据402(例如,通过扫描实体文档、拍摄实体文档的照片等)。在一些实施方式中,用户计算设备102可以经由用户计算设备102的显示设备401显示图像数据402。用户计算设备102可以将图像数据402输入(一个或多个)信息提取模型120(例如,信息提取模型300),并且响应于图像数据402,获得表示与图像数据402关联的一个或多个被注释的值中的每一个的规范标签的数据。
用户计算设备102可以将图像数据402作为输入数据204的一部分输入OCR模型302,并且响应于输入数据204,获得表示表示从图像数据402识别的文本的内容数据304。内容数据304可以包括来自图像数据402的一个或多个文本单元。例如,如图4所示,内容数据304可以包括文本单元421(“John”)、文本单元423(“123Grand Ave”)、文本单元425(“到期日”)、文本单元427(“4/6/17”)、文本单元429(“1111111121”)和文本单元431(“123.64”)。在一些实施方式中,内容数据304可以包括与一个或多个文本单元关联的一个或多个边界区域。如图4所示,例如,内容数据304可以包括与文本单元421关联的边界区域422、与文本单元423关联的边界区域424和与文本单元427关联的边界区域428。在一些实施方式中,用户计算设备102可以将内容数据304输入一个或多个语言预测符模型,并且响应于内容数据304,获得表示与内容数据304中的一个或多个文本单元关联的一个或多个语言预测符的数据。例如,用户计算设备103可以将文本单元421、423和425输入(一个或多个)语言预测符模型,并获得指示LTR语言(例如,英语)的与每个文本单元421、423和425关联的语言预测符。
用户计算设备102可以将内容数据304输入注释模型306,并且响应于内容数据304,获得表示内容数据304中的一个或多个被注释的值的被注释数据308。被注释数据308中的一个或多个被注释的值可以各自与内容数据304中的一个或多个文本单元关联。例如,用户计算设备102可以将表示文本单元421、423、425、427、429和431的数据输入注释模型306,并获得被注释数据308,该注释数据可以包括与文本单元421关联的第一被注释的值、与文本单元423关联的第二被注释的值和与文本单元427关联的第三被注释的值。第一被注释的值可以与“名称”对应,第二被注释的值可以与“地址”对应,并且第三被注释的值可以与“日期”对应。
用户计算设备102可以将被注释数据308输入候选标签模型310,并且响应于被注释数据308,获得表示被注释数据308中的每个被注释的值的一组一个或多个候选标签的候选标签数据314。例如,用户计算设备102可以将表示第三被注释的值的数据输入候选标签模型310,并获得与第三被注释的值关联的一组候选标签。候选标签模型310可以确定该组候选标签相对于与第三被注释的值关联的边界区域(例如,与与第三被注释的值关联的文本单元427关联的边界区域428)的搜索空间,并至少部分地基于搜索空间内的内容数据304中的一个或多个文本单元,确定该组候选标签。特别地,候选标签模型310可以至少部分地基于与指示LTR语言(例如,英语)的文本单元427关联的语言预测符确定位于第三被注释的值的左侧和/或顶部(例如,位于边界区域428的左侧和/或顶部)的搜索空间。如图4所示,例如,与第三被注释的值关联的该组候选标签可以包括与边界区域428左侧的文本单元429关联的第一候选标签,以及与边界区域428顶部的文本单元425关联的第二候选标签。
用户计算设备102可以将候选标签数据314输入评分模型316,并且响应于候选标签数据314,获得表示被注释数据308中的一个或多个被注释的值中的每一个的规范标签的输出数据206。例如,用户计算设备102可以输入表示第三被注释的值的第一和第二候选标签的数据,并获得第三被注释的值的规范标签。特别地,评分模型316可以包括各自被转换成N维向量的一组规范标签(例如,“到期日期”、“应付金额”、“有效日期”等)。评分模型316可以将候选标签数据314中的第一候选标签和第二候选标签转换成N维向量,并计算表示规范标签和候选标签的N维向量之间的相应距离。评分模型316可以确定第三被注释的值的规范标签(例如,“到期日期”),使得该规范标签的N维向量在距离上与与第三被注释的值关联的该组候选标签中的候选标签的N维向量最接近/最小(且高于指定阈值)。
在一些实施方式中,用户计算设备102可以基于将注释与与规范标签关联的注释类型进行比较的一组规则选择被注释的文本单元的规范标签中的一个。例如,已被注释为日期的文本单元427可以与“到期日期”的规范标签匹配,而不是与例如“应付金额”的替代规范标签匹配,因为“应付金额”标签应与已被注释为数字的文本单元匹配。注释与规范标签之间的各种其他规则或关系也可以适用。
用户计算设备102可以至少部分地基于与第三被注释的值关联的规范标签将第三被注释的值映射到动作。例如,用户计算设备102可以设置提醒,以在由与第三被注释的值和规范标签“到期日期”关联的文本单元427指示的日期之前进行适当的支付。
在一些实施方式中,用户计算设备102可以将图像数据402提供给服务器计算系统130,和/或服务器计算系统130可以从一个或多个其他计算系统和/或设备获得图像数据402。服务器计算系统130可以将图像数据402输入(一个或多个)信息提取模型140(例如,信息提取模型300),并且响应于图像数据402,获得表示与图像数据402关联的一个或多个被注释的值中的每一个的规范标签的数据。
图5描绘了根据本公开的示例实施例的从文档提取信息的示例方法的流程图。尽管为了说明和讨论的目的,图5描绘了以特定顺序执行的步骤,但是本公开的方法不限于特定示出的顺序或布置。在不脱离本公开的范围的情况下,可以以各种方式省略、重新布置、组合和/或调整方法500的各个步骤。
在502,计算系统可以获得内容数据。例如,用户计算设备102可以获得输入数据204(例如,图像数据)并且将输入数据204输入OCR模型302。用户计算设备102可以获得内容数据304作为OCR模型302响应于输入数据204的输出。输入数据204可以表示文档的图像,并且内容数据304可以表示来自文档的图像的一个或多个文本单元。
在一些实施方式中,OCR模型302可以确定与一个或多个文本单元关联的一个或多个边界区域,并且内容数据304可以包括指示一个或多个边界区域的数据。与文本单元关联的每个边界区域可以表示文本单元在与文档关联的坐标空间内的位置。
在一些实施方式中,OCR模型302可以确定与一个或多个文本单元关联的一个或多个语言预测符,并且内容数据304可以包括指示一个或多个语言预测符的数据和/或指示与文档关联的语言的数据。
在2018年8月28日提交且标题为“图像查询分析(Image Query Analysis)”的美国专利申请第16/114,788号中描述了根据方法500的一些示例系统和方法,其能够响应于查询识别从其提取信息的文档的图像。通过引用将美国专利申请第16/114,788号整体并入本文。
仍参考图5,在504,计算系统可以基于内容数据确定一个或多个被注释的值。例如,用户计算设备102可以将内容数据304输入注释模型306。用户计算设备102可以获得被注释数据308作为注释模型306响应于内容数据304的输出。注释模型306可以包括例如基于正则表达式的模型、基于语法解析的模型、机器学习模型或启发式模型。被注释数据308可以包括来自内容数据304中的一个或多个文本单元的一个或多个被注释的值。在一些实施方式中,一个或多个被注释的值中的每一个与一个或多个文本单元和与一个或多个文本单元关联的边界区域关联。一个或多个被注释的值可以包括例如日期、数字值、电话号码或地址。
在506,计算系统可以确定每个被注释的值的一个或多个候选标签。例如,用户计算设备102可以将被注释数据308输入候选标签模型310。用户计算设备102可以获得候选标签数据314作为候选标签模型310响应于被注释数据308的输出。候选标签数据314可以包括被注释数据308中的至少一个被注释的值的一组一个或多个候选标签。候选标签模型310可以通过至少部分地基于与文档关联的语言以及每个被注释的值在与文档关联的坐标空间中的位置对该组候选标签执行搜索来确定每组候选标签。
在一些实施方式中,候选标签模型310可以至少部分地基于与文档的语言关联的定向语言约定通过相对于关联的被标注的值在与文档关联的坐标空间内的位置限定搜索空间来执行对一组候选标签的搜索。候选标签模型310可以仅在限定的搜索空间内对该组候选标签进行搜索。
在一些实施方式中,候选标签模型310可以至少部分地基于内容数据304表示的一个或多个键值对(例如,表示来自文档的图像的文本的数据)来确定每组候选标签。候选标签模型310可以确定文档中位于与被注释的值关联的位置附近的键与该被注释的值形成键值对。
在一些实施方式中,候选标签模型310可以至少部分地基于第一技术来确定被注释数据308中的被注释的值的至少第一候选标签,并且可以至少部分地基于第二技术来确定被注释数据308中的被注释的值的至少第二候选标签。在一些实施方式中,第一候选标签和第二候选标签可以与相同的被注释的值关联(例如,第一候选标签和第二候选标签可以是与相同的被注释的值关联的一组候选标签的一部分)。
在一些实施方式中,当与文档关联的语言是LTR语言时,候选标签模型310可以通过仅搜索文档的坐标空间中相对于与被注释的值关联的位置(例如,与被标注的值关联的边界区域)的左侧区域和上侧区域来确定每组候选标签。替代地,当与文档关联的语言是RTL语言时,候选标签模型310可以通过仅搜索文档的坐标空间中相对于与被注释的值关联的位置(例如,与被标注的值关联的边界区域)的右侧区域和上侧区域来确定每组候选标签。
在508,计算系统可以确定每个被注释的值的规范标签。例如,用户计算设备102可以将候选标签数据314输入评分模型316。用户计算设备102可以获得输出数据206作为评分模型316响应于候选标签数据314的输出。输出数据206可以包括来自被注释数据308中的一个或多个被注释的值的每个被注释的值的规范标签。评分模型316可以至少部分地基于与被注释的值关联的该组候选标签来确定每个被注释的值的规范标签。
在一些实施方式中,评分模型316可以通过下述方式确定每个被注释的值的规范标签:产生针对这样的被注释的值确定的一个或多个候选标签中的每一个的嵌入;确定一个或多个候选标签中的每一个的嵌入和与多个规范标签关联的相应嵌入之间的相应距离;和至少部分地基于一个或多个候选标签中的每一个的嵌入和与多个规范标签关联的相应嵌入之间的相应距离从多个规范标签选择被注释的值的规范标签。
在一些实施方式中,评分模型316可以通过从多个规范标签选择规范标签,使得规范标签的相应嵌入与一个或多个候选标签之间的距离为最近/最小的距离且高于阈值,来从多个规范标签选择被注释的值的规范标签。在一些实施方式中,多个规范标签可以包括例如到期日期、应付金额或有效日期。在一些实施方式中,规范标签可以与标准或规范描述关联。
在510,计算系统可以基于规范标签将被注释的值映射到动作。例如,用户计算设备102可以至少部分地基于与来自被注释数据308中的一个或多个被注释的值的至少一个被注释的值关联的规范标签,将至少一个被注释的值映射到呈现给用户的动作。
如果从文档提取的信息包括支付到期日期(例如,包括与规范标签“支付到期”关联的日期的被注释的值),则用户计算设备102可以设置提醒(例如,用户电子日历中的条目和/或通知提示)以在到期日期之前进行适当的支付。如果从文档提取的信息包括包裹跟踪号(例如,包括与规范标签“跟踪号”关联的数字的被注释的值),则用户计算设备102可以向API查询包裹的状态。
本文讨论的技术参考了服务器、数据库、软件应用和其他基于计算机的系统,以及所采取的行动和发送到这样的系统和从这样的系统发送的信息。基于计算机的系统的固有灵活性允许在两个组件之间以及更多个组件之间进行多种可能的配置、组合以及任务和功能的划分。例如,本文讨论的过程可以使用单个设备或组件或联合工作的多个设备或组件来实现。数据库和应用可以在单个系统上实现,或者可以分布在多个系统上。分布式组件可以顺序或并行地进行操作。
尽管已经针对本主题的各种特定示例实施例详细描述了本主题,但是每个示例都是通过说明的方式提供的,而不是对本公开的限制。本领域技术人员在理解了前述内容之后,可以容易地对这样的实施例进行更改、变化和等同。因此,本公开内容并不排除包括对本主题的这样的修改、变化和/或添加,这对于本领域的普通技术人员来说是显而易见的。例如,作为一个实施例的一部分示出或描述的特征可以与另一实施例一起使用以产生又一实施例。因此,本公开旨在涵盖这样的更改、变化和等同。
- 用于从实体文档提取信息的系统和方法
- 用于从电子文档提取信息的方法和系统