CN109933780A - 使用深度学习技术确定文档中的上下文阅读顺序 - Google Patents

使用深度学习技术确定文档中的上下文阅读顺序 Download PDF

Info

Publication number
CN109933780A
CN109933780A CN201810987412.7A CN201810987412A CN109933780A CN 109933780 A CN109933780 A CN 109933780A CN 201810987412 A CN201810987412 A CN 201810987412A CN 109933780 A CN109933780 A CN 109933780A
Authority
CN
China
Prior art keywords
text
network
lstm
text operation
prediction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810987412.7A
Other languages
English (en)
Other versions
CN109933780B (zh
Inventor
S·索德哈尼
K·加格
B·克里什纳穆泰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of CN109933780A publication Critical patent/CN109933780A/zh
Application granted granted Critical
Publication of CN109933780B publication Critical patent/CN109933780B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/416Extracting the logical structure, e.g. chapters, sections or page numbers; Identifying elements of the document, e.g. authors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/413Classification of content, e.g. text, photographs or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Multimedia (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Character Discrimination (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了使用深度学习技术确定文档中的上下文阅读顺序。生成标记为当前的文本运行(R1)、“右侧”文本运行(R1)和“下方”文本运行(R3)。R1标记的文本运行由第一LSTM处理,R2标记的文本运行由第二LSTM处理,并且R3标记的文本运行由第三LSTM处理,其中每个LSTM生成相应的内部表示(R1'、R2'和R3')。如将理解的,可以使用除了LSTM之外的深度学习工具。相应的内部表示R1'、R2'和R3'被级联或以其他方式组合成矢量或张量表示,并且被提供给分类器网络,分类器网络生成用于下一文本运行、作为按照文档的阅读顺序的“右侧”、“下方”或EOS的预测标签。

Description

使用深度学习技术确定文档中的上下文阅读顺序
技术领域
本公开涉及用于处理文档的技术。更详细地,本公开涉及用于确定文档的阅读顺序的技术。
背景技术
将纸质文档或表单数字化并且将其转换为自适应或可回流文档的常见用例呈现了很多挑战。仅仅扫描文档是不够的,因为它只提供文档的“图像”版本,并且需要进一步处理来执行诸如结构提取和文本提取等任务。对于文本提取的特定情况,最简单的方法是对经扫描的文档执行光学字符识别(“OCR”)处理并且存储所识别的文本内容。
然而,这种简单的方法具有几个显著的缺点。具体地,一般文档包括在多个行和列上任意排列的句子、段落、标题、图像、表格和其他元素。因此,在解析经扫描的文档时出现的自然问题是确定文档的正确阅读顺序。也就是说,在阅读文档时,人类读者可以自然地推断文档中的正确阅读顺序,因为人类读者识别文档的上下文,这允许人类读者基于读者已阅读到的文档中的当前点来推断阅读顺序的下一方向。然而,计算设备并不自然地适于这种类型的推断,以允许其确定文档的正确阅读顺序。由于文档通常以多列和多行排列,文档的阅读顺序不明显,并且提取文档的阅读顺序当然不容易被编码为由计算设备执行的一组规则。例如,OCR系统无法确定文档的正确阅读顺序。相反,它需要一些智能来理解文档的正确阅读顺序,以便即使在数字版本中也可以保持正确的阅读环境。
解析经扫描的文档的特定实例之一是解析纸质表单,并且然后将它们转换为数字表单。阅读顺序很重要,因为从经扫描的文档创建可回流文档的关键方面是保持文档中各个部分之间的文本的阅读顺序,并且这同样适用于纸质表单。常规方法试图通过使用视觉模态来解决该问题,这意味着这些方法仅将表单处理为图像。在这样做时,这些方法没有明确地考虑到写在该表单中的文本,并且因此丢弃了保持该表单的上下文所需要的必要信息,使得在解析表单时无法保持表单中正确的阅读顺序。因此,用于确定文档的阅读顺序的常规方法探索式地假定从左到右和从上到下的阅读顺序。即使对于其中例如文档采用2列布局的简单的常见情况,探索式方法也会出现问题。
在文档的各个部分之间保持文本的阅读顺序的另一种方法是采用n元语法语言模型来提取相关特征,以馈送到语言模型中。备选地,可以应用简单的递归神经网络(“RNN”)模型来检测和提取特征。但是,这些方法有一些局限性。首先,在确定正确的阅读顺序时,重要的是对该表单中看到的所有文本进行上下文建模。虽然已知RNN基于语言的模型在捕获长期依赖性方面胜过n元语法模型,但语言模型方法受到显著限制。特别地,单词级模型需要文本没有拼写错误,否则单词级特征不能正确提取。特别地,当使用诸如OCR系统等视觉系统提取文本时,文本提取本身并不完美,并且存在缺失字符、分词等形式的拼写错误,导致在确定阅读顺序的整体性能中的错误。
因此,在以稳健的方式自动确定文档的阅读顺序方面存在重要且未解决的问题。
附图说明
图1是根据本公开的一个实施例的用于确定文档中的阅读顺序的过程的流程图。
图2a描绘了根据本公开的一个实施例的文本运行和文本块。
图2b示出了根据本公开的一个实施例的、对可以作为文档阅读顺序处理系统的一部分的文本块分析模块的操作。
图2c示出了根据本公开的一个实施例的R1、R2、R3文本运行和EOS。
图2d示出了根据本公开的一个实施例的关于当前R1文本运行的R3文本运行的备选标识。
图2e示出了根据本公开的一个实施例的R1、R2和R3文本运行以及EOS的各种示例。
图3a是描绘根据本公开的一个实施例的、对文档阅读顺序处理系统的操作的框图。
图3b是描绘根据本公开的一个实施例的文本运行标记模块的操作的流程图。
图3c是描绘根据本公开的一个实施例的文本块分析模块的操作的流程图。
图3d是根据本发明的一个实施例的、用于执行文档阅读顺序预测过程的阅读顺序预测网络的框图。
图4a描绘了根据本公开的一个实施例的递归神经网络的操作。
图4b描绘了为了分析的清楚性而展开的、对RNN的操作的更详细示例。
图4c描绘了根据本公开的一个实施例的LSTM的操作。
图4d示出了根据本公开的一个实施例的遗忘门的详细视图。
图4e描绘了根据本公开的一个实施例的输入门的第一阶段操作。
图4f描绘了根据本公开的一个实施例的输入门的操作的第二阶段。
图4g描绘了根据本公开的一个实施例的输出门的操作。
图5a描绘了根据本公开的一个实施例的、用于无状态网络的训练操作。
图5b描绘了根据本公开的一个实施例的、用于有状态网络的训练操作。
图6描绘了根据本公开的一个实施例的、要确定阅读顺序的示例文档。
图7a示出了根据本公开的实施例的、执行交互式语音编辑系统的示例计算系统。
图7b示出了根据本公开的一个实施例的、交互式语音编辑系统到网络环境中的示例集成。
具体实施方式
本公开描述了用于确定文档中的阅读顺序的计算机实现的技术。出于本公开的目的,术语“阅读顺序”是指:定义人类阅读文本的自然语言顺序的正确的字符序列。
根据本公开的一个实施例,文档的阅读顺序使用字符级模型来确定,与可以采用单词级模型的常规方法相比,字符级模型提供了准确性和稳健性方面的显著改进。根据本公开的一些实施例,使用可以对长期依赖性进行建模的基础字符级模型来训练LSTM(“长短期记忆”)递归神经网络(“RNN”)。使用字符级模型不需要明确定义的单词,并且从而避免了先前讨论的与单词级模型相关的很多缺点。
根据本公开的一些实施例,可以通过将本文中称为“文本运行”的项与“文本块”相关联来确定文档的阅读顺序。出于本讨论的目的,术语“文本运行”包括有限的字符序列。术语“文本块”包括有限的文本运行序列,并且可以有效地理解为句子。下面参考图2a至图2b提供术语“文本运行”和“文本块”的更详细描述。
根据本公开的一些实施例,通过跟踪被称为R1文本运行的当前文本运行来保持文档的阅读顺序中的当前上下文。紧接在R1文本运行右侧的文本运行被称为R2(“右侧”)文本运行。同样,从R1文本运行紧接向下的文本运行被称为R3(“下方”)文本运行。这些文本运行可以动态地被标记为R1、R2和R3。特殊标签EOS(“语句的结束”)可以用于指示文本块的结束(即,句子的结束)。
根据一个实施例,这些文本运行以及它们作为R1、R2和R3的标记可以经由诸如OCR过程和文本运行标记过程之类的光学过程来生成。然后,根据一个这样的实施例,R1标记的文本运行可以由使用有状态模型(如下所述)训练的第一RNN(其根据一些实施例可以是LSTM)来处理,而R2和R3标记的文本运行可以由利用无状态模型(下文讨论)训练的第二RNN(其根据一些实施例可以是LSTM)来处理。
RNN/LSTM中的每个RNN/LSTM基于相应的输入R1、R2和R3来生成可以包括RNN/LSTM的内部状态的相应的内部表示(R1'、R2'和R3')。然后,根据一个特定实施例,相应的内部表示R1'、R2'和R3'被级联或以其他方式组合成矢量或张量表示,并且被提供给分类器网络,分类器网络生成预测标签,用于预测下一文本运行是否向右(“右侧”/R2)、向下(“下方”/R3),或按照文档的阅读顺序是否预测语句的结束(EOS)。然后,这些预测标签可以由文本块分析模块使用,以将特定文本运行分组为文本块内的序列和文本块的整个序列,这些实体的聚集包括文档的阅读顺序。
推断时间处理
图1是根据本公开的一个实施例的用于确定文档中的阅读顺序的过程的流程图。根据本公开的一个实施例,图1所示的过程可以由文档阅读顺序处理系统在推断时间处执行,文档阅读顺序处理系统可以包括阅读顺序预测网络,阅读顺序预测网络本身包括各种神经网络(下文讨论)。下文描述文档阅读顺序处理系统的示例结构。下文描述用于训练各种神经网络的技术,诸如与图1所示的文档阅读顺序处理系统相关联的阅读顺序预测网络。出于本讨论的目的,假定要分析文档,以确定文档中的文本内容的阅读顺序。
简而言之,为了本讨论的目的,应当理解,文档阅读顺序处理系统可以接收文本运行序列作为输入(例如,来自OCR),并且提供文本运行的阅读顺序作为输出。作为中间操作,文档阅读顺序处理系统(下文讨论)可以提供文本运行与文本块之间的关联关系作为输出。下文描述文本运行和文本块以及相关联的示例数据结构的详细描述。此外,如上所述,标签/变量R1、R2、R3和EOS分别指代当前文本运行、在当前文本运行右侧的文本运行、在当前文本运行的下方的文本运行和语句/句子的结束。
该过程在102中启动。在128中,创建/初始化新的当前文本块。在116中,确定是否已经分析了所有文本运行。如果是(116的“是”分支),则过程结束于118。如果否(116的“否”分支),则在126中,基于与先前的分类器输出相关联的文本运行来设置变量R1,或者在先前的分类器输出是EOS或者没有生成先前的分类器输出的情况下,则是文档中的初始文本运行。在104中,接收文档中与R2和R3相对应的文本运行。通常,如下面将变得明显的,与R1、R2和R3相对应的文本运行可以由OCR系统生成。
在106中,通过本文中被称为无状态网络的网络来处理与R2相对应的文本运行,以生成R2文本运行R2的内部表示。下文描述示例网络和无状态模型的细节。如下面将变得明显的,无状态网络可以包括使用无状态的字符级模型来训练的RNN/LSTM,其中例如在处理一批字符时周期性地重置网络的内部状态。出于本讨论的目的,应当认识到,用于处理的各种网络(即,RNN/LSTM)能够保持内部状态或内部表示。为了在无状态的字符级模型的上下文中进一步阐明术语“无状态”,该概念指的是以下事实,即,在训练过程中,网络(RNN/LSTM)的内部状态可以随着每个训练批次或某个其他节奏而被重置,并且从而网络不保持长期状态。使用字符级模型不需要明确定义的单词,并且从而避免了先前讨论的与单词级模型相关的很多缺点。因此,出于本讨论的目的,应当在本上下文中理解术语“无状态”,即,术语“无状态”是指用于训练网络(RNN/LSTM)的特定方法而不是网络(RNN/LSTM)没有或无法保持状态信息。下文描述关于LSTM的结构和操作的细节。因此,在106中,通过第一无状态网络处理文本运行R2,以生成被称为R2'的、R2文本运行的内部表示,R2'根据一些实施例对应于第一无状态网络(RNN/LSTM)的内部状态。
以类似的方式,在108中,通过第二无状态网络(RNN/LSTM)处理文本运行R3以生成内部表示R3。在110中,通过有状态网络处理文本运行R1以生成内部表示R1'。如下面将变得明显的,有状态网络可以包括使用有状态的字符级模型来训练的RNN/LSTM,其中网络的内部状态在多批次的字符上被保持。然而,如下所述,有状态网络/有状态模型可以在检测到EOS时经历状态重置,EOS标志文本块的结束。根据本公开的一个实施例,用于处理R1文本运行的网络也可以是LSTM。在本上下文中的术语“有状态”指的是以下事实,即,在训练期间,与用于处理R2和R3文本运行的两个无状态网络相反,该网络的内部状态不被重置,并且从而它在任意字符序列上保持状态信息。然而,可以在文本块的结束时(即,在检测到EOS时)重置有状态网络的状态。
在112中,用于分别处理R2和R3文本运行的两个无状态网络的内部状态的表示(R2'和R3')以及用于处理R1文本运行的有状态网络的内部状态的表示(R1')被级联成级联表示(矢量或张量)。R1'、R2'和R3'的内部状态表示可以是任意长度的矢量/张量,并且它们的一般形式在深度神经网络处理的上下文中将被很好地理解。级联表示由此被称为R'=[R1'R2'R3']。
在114中,通过分类器网络处理级联表示R'=[R1'R2'R3'],以预测标签R2、R3或EOS之一,其指示按照文档的阅读顺序的下一文本运行的预测方向或表示文本块的结束的EOS。下面将描述示例分类器网络的结构,但是通常它可以包括具有softmax输出的全连接的深度神经网络(“DNN”)。分类器网络可以生成R2、R3或EOS的预测标签,其指示作为“右侧”、“下方”的预测的下一文本运行或预测到EOS(即,文本块的结束)。在130中,如果预测到EOS标签(130的“是”分支),则流程继续进行生成新的当前文本块的128。这意味着分类器已经预测到语句(句子)的结束,并且因此任何后续文本运行都应当与新的文本块相关联。然后,流程继续进行116。
另一方面,如果在130中没有预测到EOS(130的“否”分支),则表示分类器预测到R2或R3标签之一。这表示按照阅读顺序的下一文本运行是“右侧”或“下方”。在这种情况下,分别与预测标签(R2或R3)相关联的文本运行与当前文本块相关联。然后,流程继续进行116,在116中,确定是否已经分析了所有文本运行。
文本运行和文本块
图2a描绘了根据本公开的一个实施例的文本运行和文本块。如图2a所示,文本运行202可以包括任意长度的字符序列,其中字符由图2a所示的块表示。如下面将描述的,根据本公开的一个实施例,OCR系统或模块206或其他视觉处理算法可以使用视觉模态从文档生成文本运行202。特别地,根据本公开的一个实施例,文本运行202可以包括OCR系统206的增量输出,该增量输出是字符序列。OCR系统206的增量输出中的字符数可以不是固定的,而是可以具有上界或下界或者可以是任意的。根据备选实施例,文档可以已经以基于文本的格式存在,并且因此不需要OCR或其他光学系统。
此外,如图2a所示,文本块204可以包括以特定序列排列的一组文本运行202(1)至202(N)。根据本公开的一个实施例,文本块204可以对应于句子。也就是说,文本块204(句子)可以被理解为以确定的顺序排列的文本运行(202(1)至202(N))序列。根据本公开的一个实施例,由分类器预测的EOS标签可以描绘一个文本块204的结束和另一文本块的开始。根据本公开的一个实施例,文本块204可以对应于句子。
图2b示出了根据本公开的一个实施例的、可以作为文档阅读顺序处理系统的一部分的文本块分析模块的操作。文本块分析模块210可以执行例如由OCR系统206生成的各种文本运行与特定文本块204(1)至204(M)的关联。如前所述,根据备选实施例,文档可以已经以基于文本的格式存在,并且因此不需要OCR或其他光学系统。语言信息208可以包括表征要执行阅读顺序分析的特定语言的阅读顺序的任何数据或信息。例如,在英语中,文本从左到右并且从上到下流动。但是,其他语言可以使用不同的固有阅读顺序。例如,对于诸如阿拉伯语等语言,阅读顺序可以是从右到左并且从上到下。因此,根据一些实施例,不是将阅读顺序定义为从左到右和从上到下,而是可以将阅读顺序定义为“水平阅读方向”和“竖直阅读方向”。语言信息208可以由文本块分析模块210使用以执行文本块分析,并且可以指示例如诸如英语之类的特定语言具有固有的从左到右和从上到下的阅读顺序。
根据本公开的一个实施例,文本块分析模块210可以接收例如由OCR系统206生成的多个文本运行202(1)至202(N),并且将每个接收的文本运行202(1)至202(N)与特定文本块204(1)至204(N)相关联。参考图3c描述文本块分析模块210的详细操作。出于本讨论的目的,足够的是,认识到文本块分析模块210可以保持当前文本块204,并且将所接收的文本运行202与当前文本块相关联,直到分类器预测到EOS预测标签,从而确定文档的阅读顺序。
图2c示出了根据本公开的一个实施例的R1、R2、R3文本运行和EOS。如图2c所示,文本运行202可以是关于当前文本运行R1 202的R2或R3文本运行202。也就是说,如果R1标识当前文本运行202,则R2文本运行202可以包括在R1文本运行202的右侧(“右侧”)的文本运行202。此外,R3文本运行202可以包括从当前文本运行R1 202向下(“下方”)的文本。
图2d示出了根据本公开的一个实施例的关于当前R1文本运行的R3文本运行的备选标识。图2d所示的场景可以在当前文本运行R1 202位于文档的列的底部时发生。在那种情况下,如图2d所示,当前列中不存在R3文本运行202(“下方”)。为了解决这个问题,可以将下一列的顶部的文本运行202视为关于当前文本运行R1 202的R3文本运行202。
图2e示出了根据本公开的一个实施例的R1、R2和R3文本运行以及EOS的各种示例。
文档阅读顺序处理系统
图3a是描绘根据本公开的一个实施例的文档阅读顺序处理系统的操作的框图。如图3a所示,文档阅读顺序处理系统320还可以包括文本运行标记模块322、阅读顺序预测网络300和文本块分析模块210。
文档328可以由OCR系统206处理以生成多个文本运行202。虽然图3a仅示出了单个文本运行202,但是应当理解,OCR系统206可以以批次或流模式生成任何数目的文本运行202,并且可以将它们提供给文档阅读顺序处理系统320。如前所述,文本运行202可以包括序列中的任何数目的字符。此外,每个文本运行202中的字符数可以跨OCR系统206的迭代而变化。
文本运行标记模块322可以基于阅读顺序预测网络300的输出来执行利用特定标签(即,R1、R2、R3、EOS)对每个文本运行202的标记,以生成经标记的文本运行202(1)至202(3)。特别地,如下面参考图3b所述,文本运行标记模块322可以保持当前R1文本运行202。然后,它可以将紧接在当前文本运行R1 202右侧的文本运行202确定为关于当前R1文本运行202的“右侧”(R2)文本运行202。类似地,它还可以将从当前文本运行R1 202紧接向下的文本运行202确定为关于当前R1文本运行202的“下方”(R3)文本运行202。基于从阅读顺序预测网络300接收的指示下一文本运行202的预测标签340,文本运行标记模块322可以取决于预测标签340来将当前文本运行R1 202更新为R2文本运行202或R3文本运行。如果预测标签340是EOS,则文本运行标记模块322也可以更新当前文本运行R1。
注意,可以不标记进入文本运行标记模块322的文本运行202(例如,202),而在文本运行标记模块322的输出处的文本运行202(1)至202(3)被标记为R1文本运行202、R2文本运行202或R3文本运行202。经标记的文本运行202(1)至202(3)然后可以由阅读顺序预测网络300接收,其中它们可以由阅读顺序预测网络300处理,以预测下一文本运行202是“右侧”(R2)、“下方”(R3)或者替代地预测EOS。
如图3a所示,阅读顺序预测网络300可以接收经标记的文本运行202(1)至202(3),并且生成输出预测标签340,输出预测标签340又可以被提供给文本运行标记模块322和文本块分析模块210。根据本公开的一个实施例,预测标签340指示关于按照阅读顺序中的下一文本运行202是否为“右侧”(R2)、“下方”(R3)或它是否是EOS的预测。下文描述阅读顺序预测网络300的结构和操作。出于本讨论的目的,足够的是,认识到阅读顺序预测网络300可以包括以下任何计算结构,该计算结构可以基于所接收的经标记的文本运行202(1)至202(3)来做出关于与下一文本运行202相关的标签的预测的推断(即,方向:“右侧”、“下方”或EOS)。下面参考图3d描述阅读顺序预测网络300的示例结构。
文本块分析模块210可以利用预测标签340和经标记的文本运行202(1)至202(3)来将文本运行202(1)至202(3)与特定文本块204(即,语句)相关联,以生成文档阅读顺序324。根据本公开的一个实施例,文档阅读顺序324是文本运行202的有序序列,其中每个文本运行202与特定文本块204(即,句子)相关联。
图3b是描绘根据本公开的一个实施例的文本运行标记模块的操作的流程图。图3b所示的过程可以由图3a所示的文本运行标记模块322来执行。根据本公开的一个实施例,文本运行标记模块322可以操作,以标记由OCR系统206接收的文本运行202,并且基于来自阅读顺序预测网络300的输出来保持当前R1文本运行202。
参考图3b,该过程在380中开始。在342中,确定是否已经处理了所有文本运行202(即,从OCR系统206所接收的)。如果是(342的“是”分支),则过程在348中结束。如果否(342的“否”分支),则流程继续进行344,并且取决于从阅读顺序预测网络300输出的预测标签340,当前文本运行202与对应的标签R1一起被输出,连同与R2或R3相对应的文本运行202(及其对应的标签R2或R3)。
在346中,基于来自阅读顺序预测网络300的分类器的输出,并且特别是从阅读顺序预测网络300生成的预测标签340,更新当前R1文本运行202。例如,如果阅读顺序预测网络300生成作为R2的预测标签340,则将当前R1设置为与R2相关联的文本运行202(即,关于当前文本运行R1 202在“右侧”的文本运行202)。类似地,如果阅读顺序预测网络300生成作为R3的预测标签340,则将当前R1设置为与R3相关联的文本运行202(即,关于当前文本运行R1 202在“下方”的文本运行)。
图3c是描绘根据本公开的一个实施例的文本块分析模块的操作的流程图。该过程在350中开始。在352中,创建新的文本块204。在354中,确定是否已经处理了所有文本运行202。如果是(354的“是”分支),则该过程在348中结束。如果否(354的“否”分支),则流程继续进行356,并且从文本运行标记模块322接收新的经标记的文本运行202。在358中,确定(阅读顺序预测网络300)是否已经检测到EOS。如果否(358的“否”分支),则流程继续进行360,并且将在356中接收的经标记的文本运行202与当前文本块204相关联。如果是(358的“是”分支),则流程继续进行352,并且创建新的文本块204。
图3d是根据本发明的一个实施例的用于执行文档阅读顺序预测过程的阅读顺序预测网络的框图。根据本公开的一个实施例,阅读顺序预测网络300可以由文档阅读顺序处理系统320使用,以便确定文档328的阅读顺序。如图3d所示,阅读顺序预测网络300还可以包括有状态LSTM 312(1)和无状态LSTM 312(2)至312(3)、级联块310和全连接的神经网络314。如前所述,有状态网络312(1)可以包括使用有状态字符级模式来训练的LSTM(如下所述)。下面将描述LSTM的结构和操作。出于当前讨论的目的,足够的是,认识到LSTM可以包括单元结构,该单元结构保持内部和隐藏状态,并且在该单元结构中,它的输出以某种方式被反馈到其输入端。这种类型的拓扑允许LSTM“记住”序列信息。为了概念清楚,可以“展开”LSTM,诸如图中的描绘312(1),用于包括重复的单元结构302(1)至302(M)的序列。另外,每个单元302(1)至302(M)可以基于输入信号的过去历史来保持内部状态。但是,应当认识到,这种展开的表示是为了概念清晰,并不表示LSTM的实际逻辑或物理结构。
根据本公开的一个实施例,网络312(1)在以下意义上是有状态的,即,在字符级模型训练过程中,除了在检测到EOS时之外,在训练期间的任何时刻都不重置其内部状态。因此,有状态网络312(1)可以生成字符训练数据的整个历史的内部表示R1'308。如下所述,可以使用字符级模型来训练有状态网络312(1)。也就是说,有状态网络312(1)可以被训练,以从文档328的语料库中预测输入字符序列中的下一字符。具体地,根据本公开的一个实施例,由有状态网络312(1)生成的辅助输出318可以包括基于过去输入的一系列字符预测370(1)至370(N)。如下所述,辅助输出370(N)和最终输出372可以被用于训练有状态网络312(1)。
无状态网络312(2)至312(3)还可以包括LSTM。根据本公开的一个实施例,无状态网络312(2)至312(3)使用相同的模型。无状态网络312(2)至312(3)在以下意义上是无状态的,即,在训练期间,可以周期性地重置这些网络的内部状态,例如在每个训练批次之后。根据本公开的一个实施例并且如下面更详细描述的,无状态网络312(2)至312(3)利用字符级模型,并且被训练以预测输入序列中的下一字符。然而,与有状态网络312(1)相反,在训练期间,周期性地(例如,在每个训练批次之后)重置(即,LSTM状态)无状态网络312(2)至312(3)的内部状态。出于解释的目的,在本公开中,网络312(1)将被称为有状态,并且网络312(2)至312(3)被称为无状态,以指代所使用的训练方法。还应当认识到,根据无状态网络312(2)至312(3)的一些实施例在以下意义上是相同的,即,它们包括相同的基础的无状态的字符级模型,并且由此以相同的方式被训练。特别地,根据一些实施例,因为网络312(2)至312(3)是相同的,所以仅需要训练其中一个。
在图3d中,R1标记的文本运行202(1)被提供给有状态网络312(1),而R2文本运行202(2)至202(3)被分别提供给无状态网络312(2)至312(3)。这种情况可以通过返回参考图3a而被更好地理解,文本运行标记模块322由此生成经标记的文本运行R1(202(1))、R2(202(2))和R3(202(3))。这些经标记的文本运行202(1)至202(3)分别作为输入被提供给有状态网络312(1)和无状态网络312(2)至312(3)。在为每个相应网络(312(1)至312(3))提供这些输入时,输入由相应的LSTM网络312(1)至312(3)处理,使得每个LSTM基于相应的输入形成相应的内部表示(即,R1->R1',R2->R2',R3->R3')。因此,如图3d所示,有状态网络312(1)生成内部表示R1'308(1),而无状态网络312(2)至312(3)分别生成内部表示R2'308(2)和R3'308(3)。根据本公开的一个实施例,内部表示308(1)至308(3)可以包括在神经网络处理的上下文中所理解的张量。也就是说,该上下文中的张量可以包括多维阵列。
然后,可以将每个内部表示308(1)至308(3)(即,R1'、R2'和R3')提供给级联块310,级联块310可以通过将内部表示308(1)至308(3)级联成单个矢量或张量326来生成内部表示308(1)至308(3)的级联表示,单个矢量或张量326在本文中称为级联表示。如图3d所示,级联表示326可以被提供给全连接的神经网络314,全连接的神经网络314可以生成分类预测或包括预测标签340(1)至340(3)之一的最终结果372作为输出。如图3d所示,预测标签340(1)至340(3)分别指示关于下一文本运行202是右侧(“右侧”R1)、“下方”(“下方”R2)还是语句(句子)的结束(R3-EOS)的预测。
根据本公开的一个实施例,全连接的神经网络314可以执行分类功能,并且可以包括利用交叉熵损失函数的softmax层。然而,对于全连接的神经网络314的结构可以有很多变型,只要它提供分类功能。
LSTM
如前所述,有状态网络312(1)和无状态网络312(2)至312(3)可以是RNN,并且特别地是LSTM网络。递归神经网络是被清楚理解的。然而,出于简要说明的目的,回顾了对递归神经网络和LSTM特性的一些讨论。
由于时间依赖性可能相隔很多时间步骤的这一事实,标准RNN通常可能遭受所谓的爆炸/消失的梯度问题,其中以随时间反向传播的算法来计算的梯度可能变得非常大(爆炸)或非常小(消失),这导致数值不稳定,从而减轻RNN的有效性。LSTM可以解决消失/爆炸梯度问题。
图4a描绘了根据本公开的一个实施例的递归神经网络的操作。通常,递归神经网络(“RNN”)具有神经网络的重复模块链的形式。也就是说,递归神经网络的操作可以被理解为重复按时间索引的单个单元。为了提供这种递归行为,递归神经网络可以保持隐藏状态st,它被提供作为网络的下一次迭代的输入。为了本讨论的目的,变量st和ht将可互换地使用,以表示RNN的隐藏状态。因此,如图4a的左侧部分所示,递归神经网络可以从当前时间样本xt接收输入,以及从被反馈到输入段的先前的时间样本接收隐藏状态st-1/ht-1。管理对隐藏状态st/ht的更新的等式可以表示如下:
st=φ(Uxt+Wst-1)
其中通常是非线性函数,诸如tanh或ReLU。
递归神经网络的输出可以表示为:
ot=softmax(VSt)
隐藏状态st/ht可以被理解为网络的记忆。特别地,st/ht捕获有关在所有先前的时间步骤中发生的事件的信息。步骤ot的输出仅基于在时间t的记忆来计算。
图4b描绘了为了分析清楚而展开的RNN的操作的更详细示例。在该图中,具体示出为tanh函数,并且未明确示出线性权重U、V和W。与在每层使用不同参数的传统深度神经网络不同,RNN在所有步骤中共享相同的参数(上面的U、V、W)。这反映了以下事实,即,在每个步骤处都执行相同的任务,只是输入不同。这大大减少了要学习的参数的总数目。
尽管图4a至图4b示出了每个时间步骤处的输出,取决于任务,这可能不是必需的。例如,当预测句子的情绪时,只有最终输出可能很重要,而不是在每个单词之后的情绪。类似地,可能不需要每个时间步骤处的输入。RNN的主要特征是其隐藏状态st,它捕获有关序列的一些信息。
图4c描绘了根据本公开的一个实施例的LSTM的操作。LSTM可以被理解为能够学习长期依赖性的一种特殊类型的RNN。特别地,LSTM可以避免长期依赖性问题,由于消失/爆炸梯度问题,常规RNN难以处理长期依赖性问题。如图4c所示,根据本公开的一个实施例,LSTM可以包括一系列单元,类似于图4a至图4b所示的一般RNN。与一般RNN类似,LSTM中的每个单元操作,以计算针对下一时间步骤的新的隐藏状态。
如图4c所示,除了保持和更新隐藏状态st/ht之外,LSTM还可以保持单元状态Ct。此外,如图4c所示,LSTM可以允许使用一组门来从单元添加或移除信息的能力,而不是用于标准RNN的单个层,诸如图4c所示的tanh层。门可以包括耦合到点积或Hadamard乘积的乘法函数的sigmoid函数,其中sigmoid函数是:
并且Hadamard乘积用符号表示(它也可以用符号表示)。根据本公开的实施例,门可以允许或禁止通过单元的信息流。由于S函数介于0到1之间,因此该函数值控制每个分量中有多少应当被允许通过门。再次参考图4c,可以看出,LSTM单元可以包括3个门:遗忘门、输入门和输出门。
图4d示出了根据本公开的一个实施例的遗忘门的详细视图。图4d所示的遗忘门可以基于先前的隐藏状态ht-1和当前输入xt来确定要在单元状态中丢弃什么信息。特别地,遗忘门的输出可以表示为:
ft=σ(Wf[ht-1,xt]+bf)
其中Wf是某个标量常数,并且bf是偏差项,并且方括号表示级联。
图4e至4f描绘了根据本公开的一个实施例的用于存储信息的LSTM的输入门的操作。根据一个实施例,该操作可以分别在图4e和图4f中示出的两个阶段中执行。特别地,图4e描绘了根据本公开的一个实施例的输入门的第一阶段操作。如图4e所示,首先,被称为“输入门层”的sigmoid层确定要更新的值。接下来,tanh层可以创建可以被添加到状态的新的候选值的矢量。这些操作可以用以下关系式来表达:
it=σ(Wi[ht-1,xt]+bi)
图4f描绘了根据本公开的一个实施例的输入门的操作的第二阶段。如图4f所示,旧状态Ct-1可以乘以ft以引起信息的遗忘(如图4d中所确定的)。接下来,将单元状态的新的候选值添加到先前的单元状态Ct-1。这可以用以下关系式来表达:
图4g描绘了根据本公开的一个实施例的输出门的操作。根据本公开的一个实施例,输出可以基于单元状态Ct,但是可以被过滤。特别地,根据一个实施例,首先,可以应用sigmoid层,其决定要输出的单元状态Ct的哪些部分。接下来,可以通过tanh函数来处理单元状态Ct(以使值在-1到1之间),然后,将其乘以sigmoid门的输出,以选择性地仅输出被决定要输出的部分。输出门的操作可以由以下关系式来表达:
ot=σ(Wo[ht-1,xt]+bo)
如图4c至4g所描绘的LSTM的结构只是一个示例。根据其他实施例,例如,可以使用门控递归单元(“GRU”)或一些其他变型。另外,如图4c至4g所示的内部结构可以以多种方式修改,例如,以包括窥视孔连接。
训练
第一阶段——字符级语言模型无状态网络训练
根据本公开的一个实施例,在第一训练阶段,使用LSTM单元的字符级语言模型(即,用于无状态网络312(2)至312(e))用于生成针对文本序列的矢量表示。然后,可以使用LSTM的隐藏状态(即,312(2)至312(3))作为馈送到LSTM中的字符序列的表示。因为文档328中的阅读顺序的确定要求针对字符序列的独立的矢量表示,所以LSTM的内部状态(312(2)至312(3))可以在训练模型的同时随着每个批次而被重置。这使得LSTM跨不同的输入批次无状态。根据本公开的一个实施例,来自字符序列的T个连续字符的组块在本文中被称为批次。在该第一阶段期间训练的模型被称为无状态模型。
根据一些实施例,可以通过考虑期望矢量表示的字符序列的最大长度来选择批次中的时间步数。根据本公开的一个实施例,在处理批次结束时LSTM的隐藏状态(312(2)至312(3))被认为是针对批次的矢量表示(即,内部表示308(2)至308(3))。
根据本公开的一个实施例,因为第一阶段包括训练一般的字符级语言模型,所以可以利用大量公开可用的文本语料库。例如,根据本公开的一个实施例,来自诸如Wikipedia、Reddit等源的抓取的文本数据可以用于在语料库上训练第一阶段模型。鉴于最终用例是确定用于表单的阅读顺序,因此可以使用文档数据对模型进行微调。
如下面将在解决方案的第二阶段中描述的,然后可以使用在第一阶段中生成的字符级语言模型来生成由现有网络检测到的文本运行202的矢量表示。
由于实际限制,由网络312(2)至312(3)检测到的所有文本运行202的长度将不相同。为了解决这个问题,根据本公开的一个实施例,每个输入批次的结束可以用空字符填充。可以根据合适的概率分布对在每个输入批次的结束填充的多个空字符进行采样。空填充操作可以确保模型在推断时间处、在馈送所填充的输入批次上将不会任意地行为。特别地,根据一些实施例,因为文本运行不是全部具有相同的长度,所以可以在它们各自的结束端处填充较小的文本运行。这种情况在本文描述的解决方案的推断阶段期间出现。为了解决这种潜在的低效率,在训练阶段期间,根据合适的概率分布在随机点处填充输入,使得模型在推断阶段期间保持稳健。
根据本公开的一个实施例,对输入批次的预测的困惑度可以用作模型性能的度量。模型困惑度越低,就能更好地生成文本运行202的矢量表示。根据本公开的一个实施例,当在319267324个字符的语料库中训练时,在136827954个字符的验证集上获取的每批次的最佳平均困惑度是4.08686,其中每个输入批次具有20个字符。对于这个示例,在这种情况下在训练集上获取的每批次的平均困惑度为4.016625。
图5a描绘了根据本公开的一个实施例的用于无状态网络的训练操作。如图5a所示,图3d所示的LSTM网络312(2)和312(3)都可以使用所描绘的方法来训练。特别地,如前所述,网络312(2)和312(3)可以是LSTM,并且根据一个实施例,利用相同的无状态的字符级模型。出于本讨论的目的,为了简化讨论,假定将对网络312(2)执行训练。应当理解,类似的过程可以应用于网络312(3)。
如图5a所示,根据本公开的一个实施例,批次502可以被提供到网络312(2)的输入端。根据本公开的一个实施例,批次可以包括来自字符序列的T个连续字符的组块。如下所述,为了使训练在计算上更快,可以每批次仅执行一次参数的梯度更新,而不是在每个时间步骤处执行参数的梯度更新。根据本公开的一个实施例,例如,可以从文档328获取包括批次502的字符序列的训练数据,文档328中的阅读顺序已经手动确定。因此,如图5a所示,重置块504可以在批次完成时重置由网络312(2)生成的内部状态(表示)。
如图5a所示,损失函数506可以应用于最终单元304(N)的输出,以将网络312(2)的所预测的下一字符550与批次502中的实际的下一字符510相比较。根据备选实施例,每个单元304(1)至304(N)的输出被提供给损失函数506,以计算单个批次的损失。根据本公开的一个实施例,可以利用L2损失函数。然后,可以将损失函数506的输出提供给优化器508,优化器508然后可以基于梯度下降方法或某个其他优化方法来更新网络312(2)的参数。如下所述,可以应用截断的随时间反向传播的算法。根据本公开的一些实施例,因为在每个批次之后重置网络的状态,所以可以不使用截断的随时间反向传播的算法。而是,对于一个批次,针对所有误预测的字符来计算损失,并且使用针对该损失的梯度来更新网络。
无状态LSTM(312(2)至312(3))的训练可以以这样的方式来执行,以使得其能够对准其内部状态,从而它可以预测字符序列中的下一字符。特别地,根据一些实施例,可以向无状态LSTM提供表示相关联的文档的正确阅读顺序的字符批次。也就是说,批次502中的字符序列可以表示文档的正确阅读顺序。无状态LSTM的隐藏状态(即,312(2)至312(3)将表示LSTM到目前为止所看到的内容)。根据本公开的一个实施例,无状态LSTM 312(2)至312(3)可以被训练,直到达到由度量给出的期望准确度。
根据本公开的一些实施例,在训练期间,可以将噪声信号引入批次502中,以例如随机地丢弃字符,添加空白,等等,以便模仿实际数据集。噪声信号可以反映由OCR系统206执行相关联的OCR过程而引入的误差。这使得无状态LSTM(即,312(2)至312(3))对于实际数据集更加稳健。也就是说,根据本公开的一个实施例,当训练无状态的字符级模型时,可以通过引入某些突变(诸如在随机位置丢弃/替换字符,在随机位置分割单词,等等)来预处理数据。这些突变可以有助于使数据更接近真实数据,并且使模型更适用于被用于推断的真实数据。
第二阶段——监督式训练以学习决定每个文本运行的阅读顺序——有状态网络 训练
根据本公开的一个实施例,在第二阶段,使用LSTM单元对字符级语言模型执行训练,LSTM单元保持由网络探索的、属于单个文本块204的文本运行202的上下文。这在本文中称为有状态模型。根据本公开的一个实施例,在每次遇到EOS时重置有状态模型的内部状态,以保持针对不同文本块204的不同上下文。
例如,假定当前文本运行202是R1,并且R2(“右侧”)和R3(“下方”)方向上的文本运行202例如由文本运行标记模块322确定。根据本公开的一个实施例,当前文本运行R1 202被馈送到有状态模型中,并且文本运行R2和R3 202都被馈送到无状态模型中。然后,可以将为R1、R2和R3生成的内部矢量/张量表示(R1'、R2'和R3')级联成表示解析的完整状态的单个矢量/张量R'=[R1'R2'R3']。然后,这个统一表示R'可以用于将下一文本运行202分类为“右侧”(R2)、“下方”(R3)或EOS。
根据本公开的一个实施例,可以同时训练有状态模型的权重(即,与LSTM 312(1)相关联的权重)和与全连接的神经网络314相关联的softmax分类器的权重两者,将序列的每个步骤处的有状态模型的字符级输出视为辅助输出,并且将针对R1、R2和R3中的字符序列的softmax输出预测标记(340(1)至340(3))视为主输出。
图5b描绘了根据本公开的一个实施例的有状态网络的训练操作。图5b所示的训练配置可以用于训练有状态网络312(1)和该网络下面的相应的字符级有状态模型。如前所述,有状态网络312(1)可以是LSTM。参考图5b,R1、R2、R3和EOS标记的训练数据518可以用于训练有状态模型。根据本公开的一个实施例,经标记的训练数据518可以包括经标记的文本运行202,对于该经标记的文本运行202,关于当前文本运行R1 202的各种“右侧”和“下方”文本运行202(即,R2和R3)的阅读顺序已经被标记。
如图5b所示,经标记的训练数据518可以被分段为R1标记的文本运行训练数据512、R2标记的文本运行训练数据514和R3标记的文本运行训练数据516。R1标记的文本运行训练数据512可以被提供作为有状态网络312(1)的输入,而R2标记的文本运行数据514和R3标记的文本运行数据516可以分别被提供作为LSTM网络312(2)至312(3)的输入。可以将与网络312(1)相关联的辅助输出318(其可以指示下一字符预测)与文本运行训练标签520、以及由与全连接的网络314相关联的softmax的输出生成的预测标签(即,340(1)至340(3)之一)一起提供给损失函数506。然后,损失函数可以生成损失计算,例如,通过使用提供给优化器508的交叉熵损失函数。优化器508可以执行随时间反向传播的算法(截断的或非截断的),以便训练有状态网络312(1)的参数(例如,通过使用梯度下降方法)。
根据本公开的一个实施例,如所讨论的,损失函数506可以是交叉熵损失函数。交叉熵损失函数可以表达为:
其中yt是每个时间步骤t处的目标(正确)单词,并且是预测。通常,可以将完整序列视为单个训练示例,使得总误差是每个时间步骤处的误差之和。根据本公开的一个实施例,如下所述,可以利用随时间反向传播的算法来训练RNN/LSTM,其类似于针对前馈神经网络的反向传播。
截断的随时间反向传播
由于序列的长度增加,RNN(即,网络312(1)至312(3))的训练可能在计算上是昂贵的,因为为了关于模型的参数来评估梯度,每个时间步骤处的误差必须一直被反向传播回第一时间步骤。为了缓解该问题,可以限制一个时间步骤处的错误所传播到的时间步骤的数目。这被称为截断的随时间反向传播的算法。根据本公开的一些实施例,截断的随时间反向传播过程用于如下所述的训练。如前所述,对系统的、以来自序列的T个连续元素的组块的形式的输入被称为批次。为了使训练在计算上更快,可以每批次仅执行一次参数的梯度更新,而不是在每个时间步骤执行参数的梯度更新。
假定固定批次大小为T,根据本公开的一个实施例,可以如下执行截断的随时间反向传播的算法:
·在t=1时,使用第一时间步骤处的损失的梯度来更新网络参数;
·在t=2时,通过该时间步骤处的损失来计算梯度,并且将该损失反向传播到第一时间步骤;
·在t=3时,通过该时间步骤处的损失来计算梯度,并且将该损失反向传播到t=2和t=1。
·对时间步骤处t=4、t=5执行类似操作,直到t=T;
·在t=T+1时,保持网络的内部状态,但是该时间步骤处的损失不会被反向传播,并且仅使用该时间步骤处的损失来计算梯度;
·在t=T+2时,通过获取在该时间步骤处的损失并且通过将该损失反向传播到时间步骤t=T+1来计算梯度;
·对整个输入序列重复该过程。
根据本公开的一个实施例,使用备选形式的随时间反向传播的算法来计算针对每个时间步骤t=1到t=T的损失,并且然后利用累积损失来更新网络参数,而不是针对每个t=1到t=T更新参数。
训练和测试数据集
根据本公开的一些实施例,可以使用大量公开可用的语言语料库(来自诸如Wikipedia和Reddit等源)作为训练数据。根据一个实施例,可以提取具有指定范围内的长度的语句。为了生成数据,可以任意选择两个语句并且过滤语料库(句子A和句子B)。根据这个实施例,然后可以在随机点处断开句子A和句子B,以生成文本运行202,并且不同的文本运行202被混杂以生成合成数据集,合成数据集然后被馈送到文档阅读顺序处理系统320中,以确定正确的阅读顺序。特别地,根据本公开的一个实施例,语言语料库被分割成训练集和验证集(例如,80/20比例分割)。然后,可以选择训练数据中的句子对。然后,可以通过分割两个句子A和B并且将它们水平(并排)或垂直(彼此下方)排列来模拟阅读顺序问题。根据一些实施例,可以突变句子以模拟OCR的噪声行为。因为阅读顺序是已知的(即,A的所有片段按顺序依次被B的所有片段跟随),所以可以使用被标记为训练示例的、并排或彼此下方地排列的一对句子来训练系统。可以对照验证集中的句子对来检查经训练的系统的有效性。
示例和结果
图6描绘了根据本公开的一个实施例的要确定阅读顺序的示例文档。如图6所示,示例文档328包含三个部分,一个用于表示“销售单位”和“总销售额”,另一部分用于表示“签名”,最后一部分提供“附加指令”。最后一部分跨越两列,列之间没有任何明确的行分隔符。每当申请人阅读附加指令时,他/她首先阅读左侧列,并且然后阅读右侧列,而不是在阅读各行时在两个部分之间跳跃。虽然申请人在确定正确的阅读顺序方面没有任何困难,但对于常规的机器学习系统而言并不成立。现有功能很难通过仅通过视觉模态进行推断来区分两列,因为两列之间没有任何明确的分隔符。
然而,使用本公开中描述的技术,文档阅读顺序处理系统320可以推断出文档328的正确阅读顺序,如以下示例所示。参考图6所示的文档328,“销售类型:P1”是文本运行202,其是文本块204“销售类型:用每个……来替换下列代码之一”的一部分。
根据本公开的一个实施例,当从文档328检测到文本运行202时,可以顺序地解析文本运行202。在解析文档328时,对于每个文本运行202,文档阅读顺序处理系统320可以推断哪个文本运行202将保持按照阅读顺序的、当前文本运行之前的上下文,使得它们与相同的文本块204相关联(即,参见上面关于图3a的讨论)。为了符号的一致性,当前文本运行202被称为R1。文档阅读顺序处理系统320然后可以推断按照阅读顺序的下一文本运行202,并且然后通过更新R1以与下一文本运行202相关联来移动到它。在顺序移动时,文档阅读顺序处理系统320可以标记被视为“已探索”的文本运行202。
如前所述,对于任何文本运行202,存在与在当前文本运行R1 202处确定阅读顺序有关的三种可能性。第一种可能性是,阅读顺序在从左到右的方向上移动。这表示,按照阅读顺序的下一文本运行202是在空间上位于当前文本运行202的右侧的文本运行202(“右侧”或R2文本运行202)。例如,假定文档阅读顺序处理系统320当前正在解析R1=“watercraft used or”。然后,文本运行R2 202=“capable of being”是在R1的“右侧”,并且按照阅读顺序跟随“watercraft used or”。
第二种可能性是,阅读顺序在该点处断开并且移动到下一行(“下方”或R3文本运行202)。“下方”可能性存在两个子例。第一子例是,在阅读顺序中的下一个的下一文本运行202位于靠近当前文本块、在空间上位于其下方的行中。例如,假定R1=“propulsionsystem”。然后,按照阅读顺序接下来是文本运行R3 202=“which are used to”。
“下方”可能性的第二子例是,当前文本运行R1 202可以在表单的最后一行中,使得下一文本运行202是表单中最左上方未探索的文本运行202。例如,假定当前文本运行R1202=“vessels or outboard”。然后,按照阅读顺序接下来是文本运行R3 202=“motorsin Texas”。
在定义这两个子类时,假定阅读顺序从不跳过表单中的未探索的文本运行202。例如,当在文本运行R1 202=“vessels or outboard”时,阅读顺序必须前进到文本运行R3202=“motors in”。阅读不能跳转到文本运行202“include the”以跳过未探索的文本运行R3 202。
第三种可能性是,阅读顺序在当前文本运行202处结束(即,“右侧”和“下方”方向上的文本运行202具有不同的上下文)。这是EOS(“语句的结束”)场景。根据本公开的一个实施例,当预测EOS时,可以重置模型的内部状态,并且从在当前文本运行R1 202的“下方”方向上找到的文本运行202重新开始解析。遵循该过程,当从表单左上角的文本运行202开始顺序地发生对文本运行202的解析时,这三种可能性足以处理检测多部分表单中的阅读顺序的所有情况。
作为另一示例,考虑两个句子为A:“John is eating an apple.”和B:“Henry issolving reading order problem.”然后,一个可能的训练示例可能是:
["John is","eating","Henry is"]
["an ap","solving re","ading"]
["ple","order"]
根据这个示例,当文档阅读顺序处理系统320顺序地处理示例时,文档328的引导信号是:
["RIGHT","DOWN","DOWN"]
["DOWN","RIGHT","DOWN"]
["EOS","EOS"]
使用前面的句子A的示例:“John is eating an apple”和句子B:“Henry issolving reading order”,这两个句子可以在随机点被断开以模拟通过类似OCR的机制检测到的文本运行的行为。例如,让A被断开为["John is","eating","an app","ple"]和B被断开为["Henry is","solving re","ading","order"]。为了模拟阅读顺序问题,这两个句子可以以两列格式排列,A在第一列中并且B在第二列中。
本公开中描述的技术提供了端到端训练的、深度学习的解决方案,用于检测任何表单或文档中的阅读顺序。该解决方案可以很容易地适于检测任何语言的阅读顺序。这可以通过以下方式来实现:训练新的语言模型(使用大量公开可用的语言语料库),改变顺序和在每个文本运行202处所考虑的可能性,以该顺序,下一文本运行202被考虑,直到到达EOS(“语句的结束”)。
通过增加在每个文本运行202处考虑的阅读顺序的可能性的数目,可以推广本公开中描述的技术以检测一般扫描文档中的阅读顺序。
在解决方案的第一阶段中被训练以输出文本运行202的独立矢量表示的字符级语言模型可以在各种应用中被使用,在这些应用中,当前使用GloVe或Word2Vec来获取单词的矢量表示。
计算系统与网络环境的集成
图7a示出了根据本公开的实施例的执行交互式语音编辑系统的示例计算系统。如图7a所示,计算设备700包括CPU/GPU 712和文档阅读顺序处理系统320。文档阅读顺序处理系统320可以被理解为包括用于对文档328执行阅读顺序处理和推断的程序结构。具体地,CPU/GPU 712可以经由程序指令进一步配置以执行文档阅读顺序处理系统320(如本文中多方面地描述的)。典型计算系统的典型的其他组件和模块没有示出但是将是明显的,诸如例如,协处理器、处理核、图形处理单元、鼠标、触摸板、触摸屏、显示器等。鉴于本公开,很多计算环境变化将是明显的。计算设备700可以是任何独立的计算平台,诸如桌面或工作站计算机、膝上型计算机、平板计算机、智能电话或个人数字助理、游戏控制台、机顶盒或其他合适的计算平台。
图7b示出了根据本公开的一个实施例的交互式语音编辑系统到网络环境的示例集成。如图7b所示,计算设备700可以在云环境、数据中心、局域网(“LAN”)等中并置。图7b的计算设备700的结构与关于图7a描述的示例实施例相同。在这种情况下,例如,计算设备700可以是服务器或服务器集群。如图7b所示,客户端730经由网络732与计算设备700交互。具体地,客户端730可以经由在API服务器728处接收的API调用来进行请求和接收响应,API调用经由网络732和网络接口726传输。
将进一步容易理解的,网络732可以包括任何类型的公共和/或专用网络,包括因特网、LAN、WAN或这些网络的某种组合。在这个示例情况下,计算设备700是服务器计算机,并且客户端730可以是任何典型的个人计算平台。
如将进一步理解的,计算设备700(不管是图7a或图7b所示的计算设备)包括和/或以其他方式能够访问其上编码有用于实现本公开中各种描述的技术的一个或多个计算机可执行指令或软件的一个或多个非暂态计算机可读介质或存储设备。存储设备可以包括用于存储实现本文中提供的各种实施例的数据以及计算机可读指令和/或软件的任何数目的耐用存储设备(例如,任何电子、光学和/或磁存储设备,包括RAM、ROM、闪存、USB驱动器、板上CPU缓存、硬盘驱动器、服务器存储、磁带、CD-ROM或其他物理计算机可读存储介质)。可以使用任何存储器组合,并且各种存储组件可以位于单个计算设备中或者分布在多个计算设备上。另外,如前所述,一个或多个存储设备可以与一个或多个计算设备分开或远离地提供。很多配置是可能的。
在本公开的一些示例实施例中,本文中描述的具体地用于训练和/或测试网络732的各种功能模块可以用软件来实现,软件诸如编码在任何非暂态计算机可读介质或计算机程序产品(例如,硬盘驱动器、服务器、光盘或其他合适的非暂态存储器或存储器组)上的指令集合(例如,HTML、XML、C、C++、面向对象的C、JavaScript、Java、BASIC等),这些指令在由一个或多个处理器执行时使得本文中提供的各种创建者推荐方法被执行。
在其他实施例中,本文中提供的技术使用基于软件的引擎而被实现。在这样的实施例中,引擎是包括被编程或以其他方式被配置有编码本文中各种提供的创建者推荐过程的指令的一个或多个处理器的功能单元。以这种方式,基于软件的引擎是功能电路。
在其他实施例中,本文中提供的技术用硬件电路来实现,诸如门级逻辑(FPGA)或特定用途半导体(例如,专用集成电路或ASIC)。其他实施例利用具有处理器的微控制器、用于接收和输出数据的多个输入/输出端口、以及由处理器用于执行本文中提供的功能的多个嵌入例程来实现。从更一般的意义上,可以使用硬件、软件和固件的任何合适的组合,这一点将是明显的。如本文中使用的,电路是一个或多个物理组件并且用于执行任务。例如,电路可以是一个或多个处理器,其被编程或以其他方式配置有响应于输入激励集合来提供输出集合的软件模块或基于逻辑的硬件电路。很多配置将是明显的。
已经出于说明和描述的目的呈现了本公开的示例实施例的前述描述。并非旨在穷举或将本公开限制为所公开的确切形式。根据本公开,很多修改和变化是可能的。意图在于,本公开的范围不受该详细描述的限制,而是受所附权利要求的限制。
其他示例实施例
以下示例涉及其他实施例,从这些实施例,很多变换和配置将是明显的。
示例1是一种用于确定文档中的阅读顺序的方法,该方法包括:通过第一网络处理当前文本运行,以生成所述当前文本运行的第一表示,所述第一表示包括使用有状态的字符级模型来训练的递归神经网络(“RNN”)的隐藏状态,其中所述第一网络的所述隐藏状态在训练过程中没有重置;通过相应的第二网络和第三网络来处理在所述当前文本运行的右侧的第二文本运行和在所述当前文本运行的下方的第三文本运行,以生成相应的第二表示和第三表示,其中所述第二表示和所述第三表示包括使用无状态的字符级模型来训练的RNN的相应隐藏状态,其中所述第二网络和所述第三网络的所述隐藏状态在训练过程中被周期性重置;级联所述第一表示、所述第二表示和所述第三表示以生成级联表示;通过分类器处理所述级联表示,以生成预测的下一文本运行标签;基于所述预测的下一文本运行标签来生成文本块,所述文本块包括按照阅读顺序序列的至少一个文本运行;以及基于所述预测的下一文本运行标签来更新所述当前文本运行,使得所述当前文本运行是在所述当前文本运行的右侧的文本运行和在所述当前文本运行的下方的文本运行中的一项。
示例2是根据示例1的方法,其中如果所述分类器预测下一文本运行在所述当前文本运行的右侧,则所述第二文本运行与所述文本块相关联。
示例3是根据示例1的方法,其中如果所述分类器预测下一文本运行在所述当前文本运行的下方,则所述第三文本运行与所述文本块相关联。
示例4是根据示例1的方法,其中所述第二网络和所述第三网络基于相应的所述第二网络和所述第三网络的预测的下一字符以及输入序列中的实际的下一字符、使用损失函数来训练。
示例5是根据示例4的方法,其中所述第一网络基于所述第一网络的预测的下一字符和输入序列中的实际的下一字符、使用损失函数来训练。
示例6是根据示例5的方法,其中所述第一网络使用损失函数来训练,所述损失函数基于所述第一网络的预测的下一文本字符与输入序列中的实际的下一字符的比较、以及用于下一文本运行的预测标签与所述下一文本运行的实际位置的比较来计算损失。
示例7是根据示例6的方法,其中所述第一网络使用截断的时间上的反向传播算法来训练。
示例8是一种用于确定文档中的阅读顺序的系统,该系统包括:一个或多个处理器;文本运行标记模块,由所述一个或多个处理器可执行或可控制或可执行且可控制,其中所述文本运行标记模块向接收的文本运行分配作为R1(“当前”)、R2(“右侧”)、R3(“下方”)之一的标签;阅读顺序预测网络,还包括由所述一个或多个处理器可执行或可控制或可执行且可控制的第一LSTM(“长短期记忆”)网络、第二LSTM网络和第三LSTM网络,其中所述阅读顺序预测网络通过处理使用有状态的字符级模型训练的所述第一LSTM网络的隐藏状态以及使用无状态的字符级模型训练的所述第二LSTM网络和所述第三LSTM网络的隐藏状态的级联表示,基于经标记的R1文本运行、经标记的R2文本运行、经标记的R3文本运行来生成作为R2、R3和EOS(语句的结束)之一的预测标签;以及文本块分析模块,由所述一个或多个处理器可执行或可控制或可执行且可控制,其中所述文本块分析模块向文本块分配文本运行。
示例9是根据示例8的系统,其中所述经标记的R1文本运行被提供作为所述第一LSTM的输入,所述经标记的R2文本运行被提供作为所述第二LSTM的输入,并且所述经标记的R3文本运行被提供给所述第三LSTM。
示例10是根据示例9的系统,其中所述第一LSTM、所述第二LSTM和所述第三LSTM中的每个LSTM基于相应的输入来生成内部表示(R1',R2',R3')。
示例11是根据示例10的系统,还包括分类器网络,其中所述分类器网络接收R1'、R2'和R3的级联表示作为输入。
示例12是根据示例11的系统,其中所述分类器网络生成预测标签,所述预测标签包括R2、R3和EOS中的一项,R2、R3和EOS分别将预测的下一文本运行指示为当前文本运行的右侧、所述当前文本运行的下方和语句的结束。
示例13是根据示例12的系统,其中所述文本块分析模块利用所述预测标签向文本块分配文本运行。
示例14是根据示例8的系统,其中所述接收的文本运行是使用光学字符识别(“OCR”)系统来生成的。
示例15是一种计算机程序产品,包括编码有指令的一个或多个非暂态机器可读介质,所述指令在由一个或多个处理器执行时引起用于确定文档中的阅读顺序的过程被执行,所述过程包括:通过第一网络处理第一文本运行,以生成所述文本运行的第一表示,所述第一表示包括使用有状态的字符级模型来训练的递归神经网络(“RNN”)的隐藏状态;通过相应的第二网络和第三网络来处理在所述第一文本运行的右侧的第二文本运行和在所述第一文本运行的下方的第三文本运行,以生成相应的第二表示和第三表示,其中所述第二表示和所述第三表示包括使用无状态的字符级模型来训练的RNN的相应隐藏状态;级联所述第一表示、所述第二表示和所述第三表示以生成级联表示;通过分类器处理所述级联表示,以生成预测的下一文本运行标签;以及基于所述预测的下一文本运行标签来生成文本块,所述文本块包括按照阅读顺序序列的至少一个文本运行。
示例16是根据示例15的计算机程序产品,其中如果所述分类器预测下一文本运行在所述当前文本运行的右侧,则所述第二文本运行与所述文本块相关联。
示例17是根据示例15的计算机程序产品,其中如果所述分类器预测下一文本运行在所述当前文本运行的下方,则所述第三文本运行与所述文本块相关联。
示例18是根据示例15的计算机程序产品,其中所述第二网络和所述第三网络是无状态网络,并且基于相应的所述第二网络和所述第三网络的预测的下一字符以及输入序列中的实际的下一字符、使用损失函数来训练。
示例19是根据示例18的计算机程序产品,其中所述第一网络是有状态网络。
示例20是根据示例19的计算机程序产品,其中所述有状态网络使用损失函数来训练,所述损失函数基于所述有状态网络的预测的下一文本字符与输入序列中的实际的下一字符的比较、以及用于下一文本运行的预测标签与所述下一文本运行的实际位置的比较来计算损失。

Claims (20)

1.一种用于确定文档中的阅读顺序的方法,所述方法包括:
通过第一网络处理当前文本运行,以生成所述当前文本运行的第一表示,所述第一表示包括使用有状态的字符级模型来训练的递归神经网络(“RNN”)的隐藏状态,其中所述第一网络的所述隐藏状态在训练过程中没有重置;
通过相应的第二网络和第三网络来处理在所述当前文本运行的右侧的第二文本运行和在所述当前文本运行的下方的第三文本运行,以生成相应的第二表示和第三表示,其中所述第二表示和所述第三表示包括使用无状态的字符级模型来训练的RNN的相应隐藏状态,其中所述第二网络和所述第三网络的所述隐藏状态在训练过程中被周期性重置;
级联所述第一表示、所述第二表示和所述第三表示以生成级联表示;
通过分类器处理所述级联表示,以生成预测的下一文本运行标签;
基于所述预测的下一文本运行标签来生成文本块,所述文本块包括按照阅读顺序序列的至少一个文本运行;以及
基于所述预测的下一文本运行标签来更新所述当前文本运行,使得所述当前文本运行是在所述当前文本运行的右侧的文本运行和在所述当前文本运行的下方的文本运行中的一项。
2.根据权利要求1所述的方法,其中如果所述分类器预测所述下一文本运行在所述当前文本运行的右侧,则所述第二文本运行与所述文本块相关联。
3.根据权利要求1所述的方法,其中如果所述分类器预测所述下一文本运行在所述当前文本运行的下方,则所述第三文本运行与所述文本块相关联。
4.根据权利要求1所述的方法,其中所述第二网络和所述第三网络基于相应的所述第二网络和所述第三网络的预测的下一字符以及输入序列中的实际的下一字符、使用损失函数来训练。
5.根据权利要求4所述的方法,其中所述第一网络基于所述第一网络的预测的下一字符和输入序列中的实际的下一字符、使用损失函数来训练。
6.根据权利要求5所述的方法,其中所述第一网络使用损失函数来训练,所述损失函数基于所述第一网络的预测的下一文本字符与输入序列中的实际的下一字符的比较、以及用于下一文本运行的预测标签与所述下一文本运行的实际位置的比较来计算损失。
7.根据权利要求6所述的方法,其中所述第一网络使用截断的时间上的反向传播算法来训练。
8.一种用于确定文档中的阅读顺序的系统,所述系统包括:
一个或多个处理器;
文本运行标记模块,由所述一个或多个处理器可执行或可控制或可执行且可控制,其中所述文本运行标记模块向接收的文本运行分配作为R1(“当前”)、R2(“右侧”)、R3(“下方”)之一的标签;
阅读顺序预测网络,还包括由所述一个或多个处理器可执行或可控制或可执行且可控制的第一LSTM(“长短期记忆”)网络、第二LSTM网络和第三LSTM网络,其中所述阅读顺序预测网络通过处理使用有状态的字符级模型训练的所述第一LSTM网络的隐藏状态以及使用无状态的字符级模型训练的所述第二LSTM网络和所述第三LSTM网络的隐藏状态的级联表示,基于经标记的R1文本运行、经标记的R2文本运行、经标记的R3文本运行来生成作为R2、R3和EOS(语句的结束)之一的预测标签;以及
文本块分析模块,由所述一个或多个处理器可执行或可控制或可执行且可控制,其中所述文本块分析模块向文本块分配文本运行。
9.根据权利要求8所述的系统,其中所述经标记的R1文本运行被提供作为所述第一LSTM的输入,所述经标记的R2文本运行被提供作为所述第二LSTM的输入,并且所述经标记的R3文本运行被提供给所述第三LSTM。
10.根据权利要求9所述的系统,其中所述第一LSTM、所述第二LSTM和所述第三LSTM中的每个LSTM基于相应的输入来生成内部表示(R1',R2',R3')。
11.根据权利要求10所述的系统,还包括分类器网络,其中所述分类器网络接收R1'、R2'和R3的级联表示作为输入。
12.根据权利要求11所述的系统,其中所述分类器网络生成预测标签,所述预测标签包括R2、R3和EOS中的一项,R2、R3和EOS分别将预测的下一文本运行指示为当前文本运行的右侧、所述当前文本运行的下方和语句的结束。
13.根据权利要求12所述的系统,其中所述文本块分析模块利用所述预测标签向文本块分配文本运行。
14.根据权利要求8所述的系统,其中所述接收的文本运行是使用光学字符识别(“OCR”)系统来生成的。
15.一种计算机程序产品,包括编码有指令的一个或多个非暂态机器可读介质,所述指令在由一个或多个处理器执行时引起用于确定文档中的阅读顺序的过程被执行,所述过程包括:
通过第一网络处理第一文本运行,以生成所述文本运行的第一表示,所述第一表示包括使用有状态的字符级模型来训练的递归神经网络(“RNN”)的隐藏状态;
通过相应的第二网络和第三网络来处理在所述第一文本运行的右侧的第二文本运行和在所述第一文本运行的下方的第三文本运行,以生成相应的第二表示和第三表示,其中所述第二表示和所述第三表示包括使用无状态的字符级模型来训练的RNN的相应隐藏状态;
级联所述第一表示、所述第二表示和所述第三表示以生成级联表示;
通过分类器处理所述级联表示,以生成预测的下一文本运行标签;以及
基于所述预测的下一文本运行标签来生成文本块,所述文本块包括按照阅读顺序序列的至少一个文本运行。
16.根据权利要求15所述的计算机程序产品,其中如果所述分类器预测所述下一文本运行在所述当前文本运行的右侧,则所述第二文本运行与所述文本块相关联。
17.根据权利要求15所述的计算机程序产品,其中如果所述分类器预测所述下一文本运行在所述当前文本运行的下方,则所述第三文本运行与所述文本块相关联。
18.根据权利要求15所述的计算机程序产品,其中所述第二网络和所述第三网络是无状态网络,并且基于相应的所述第二网络和所述第三网络的预测的下一字符以及输入序列中的实际的下一字符、使用损失函数来训练。
19.根据权利要求18所述的计算机程序产品,其中所述第一网络是有状态网络。
20.根据权利要求19所述的计算机程序产品,其中所述有状态网络使用损失函数来训练,所述损失函数基于所述有状态网络的预测的下一文本字符与输入序列中的实际的下一字符的比较、以及用于下一文本运行的预测标签与所述下一文本运行的实际位置的比较来计算损失。
CN201810987412.7A 2017-12-15 2018-08-28 使用深度学习技术确定文档中的上下文阅读顺序 Active CN109933780B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/843,953 US10423828B2 (en) 2017-12-15 2017-12-15 Using deep learning techniques to determine the contextual reading order in a form document
US15/843,953 2017-12-15

Publications (2)

Publication Number Publication Date
CN109933780A true CN109933780A (zh) 2019-06-25
CN109933780B CN109933780B (zh) 2023-04-07

Family

ID=63715283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810987412.7A Active CN109933780B (zh) 2017-12-15 2018-08-28 使用深度学习技术确定文档中的上下文阅读顺序

Country Status (5)

Country Link
US (1) US10423828B2 (zh)
CN (1) CN109933780B (zh)
AU (1) AU2018217281B2 (zh)
DE (1) DE102018006481A1 (zh)
GB (1) GB2569418B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110569359A (zh) * 2019-08-26 2019-12-13 腾讯科技(深圳)有限公司 识别模型的训练及应用方法、装置、计算设备及存储介质
CN113111329A (zh) * 2021-06-11 2021-07-13 四川大学 基于多序列长短期记忆网络的口令字典生成方法及系统
CN114495147A (zh) * 2022-01-25 2022-05-13 北京百度网讯科技有限公司 识别方法、装置、设备以及存储介质

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109858046B (zh) * 2018-02-09 2024-03-08 谷歌有限责任公司 利用辅助损失来学习神经网络中的长期依赖性
WO2019170905A1 (en) * 2018-03-09 2019-09-12 Deepmind Technologies Limited Training an unsupervised memory-based prediction system to learn compressed representations of an environment
US10944789B2 (en) * 2018-07-25 2021-03-09 Easy Solutions Enterprises Corp. Phishing detection enhanced through machine learning techniques
US11449205B2 (en) * 2019-04-01 2022-09-20 Microsoft Technology Licensing, Llc Status-based reading and authoring assistance
US10949664B2 (en) * 2019-04-08 2021-03-16 Kyocera Document Solutions Inc. Optical character recognition training data generation for neural networks by parsing page description language jobs
CN110414516B (zh) * 2019-08-05 2022-02-01 上海海事大学 一种基于深度学习的单个汉字识别方法
CN110738182A (zh) * 2019-10-21 2020-01-31 四川隧唐科技股份有限公司 一种用于高精度识别中标金额的lstm模型单元训练方法及装置
US11087163B2 (en) * 2019-11-01 2021-08-10 Vannevar Labs, Inc. Neural network-based optical character recognition
CN111090981B (zh) * 2019-12-06 2022-04-15 中国人民解放军战略支援部队信息工程大学 基于双向长短时记忆网络的中文文本自动断句与标点生成模型构建方法及系统
CN111460223B (zh) * 2020-02-25 2023-04-18 天津大学 基于深度网络的多模态特征融合的短视频单标签分类方法
GB2596607B (en) * 2020-07-03 2024-01-03 Imagination Tech Ltd Methods and systems for running dynamic recurrent neural networks in hardware

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101414351A (zh) * 2008-11-03 2009-04-22 章毅 一种指纹识别系统及其控制方法
CN103632166A (zh) * 2013-12-04 2014-03-12 西安电子科技大学 基于融合显著信息的潜在主题极光图像分类方法
CN105678293A (zh) * 2015-12-30 2016-06-15 成都数联铭品科技有限公司 一种基于cnn-rnn的复杂图像字序列识别方法
CN106126507A (zh) * 2016-06-22 2016-11-16 哈尔滨工业大学深圳研究生院 一种基于字符编码的深度神经翻译方法及系统
CN106462626A (zh) * 2014-06-13 2017-02-22 微软技术许可有限责任公司 利用深度神经网络对兴趣度建模
CN106933804A (zh) * 2017-03-10 2017-07-07 上海数眼科技发展有限公司 一种基于深度学习的结构化信息抽取方法
CN107247755A (zh) * 2017-05-27 2017-10-13 深圳市唯特视科技有限公司 一种基于上下文序列记忆网络的个性化图像字幕生成方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7756871B2 (en) * 2004-10-13 2010-07-13 Hewlett-Packard Development Company, L.P. Article extraction
JP2007141159A (ja) * 2005-11-22 2007-06-07 Fuji Xerox Co Ltd 画像処理装置、画像処理方法、及び画像処理プログラム
JP4137951B2 (ja) * 2006-03-28 2008-08-20 シャープ株式会社 画像処理装置、システム、情報処理装置、及びプログラム
EP3436989A4 (en) * 2016-03-31 2019-11-20 Maluuba Inc. METHOD AND SYSTEM FOR PROCESSING AN INQUIRY INQUIRY
US11550751B2 (en) * 2016-11-18 2023-01-10 Microsoft Technology Licensing, Llc Sequence expander for data entry/information retrieval
US11200412B2 (en) * 2017-01-14 2021-12-14 Innoplexus Ag Method and system for generating parsed document from digital document
CN108334805B (zh) * 2017-03-08 2020-04-03 腾讯科技(深圳)有限公司 检测文档阅读顺序的方法和装置
US10713519B2 (en) * 2017-06-22 2020-07-14 Adobe Inc. Automated workflows for identification of reading order from text segments using probabilistic language models

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101414351A (zh) * 2008-11-03 2009-04-22 章毅 一种指纹识别系统及其控制方法
CN103632166A (zh) * 2013-12-04 2014-03-12 西安电子科技大学 基于融合显著信息的潜在主题极光图像分类方法
CN106462626A (zh) * 2014-06-13 2017-02-22 微软技术许可有限责任公司 利用深度神经网络对兴趣度建模
CN105678293A (zh) * 2015-12-30 2016-06-15 成都数联铭品科技有限公司 一种基于cnn-rnn的复杂图像字序列识别方法
CN106126507A (zh) * 2016-06-22 2016-11-16 哈尔滨工业大学深圳研究生院 一种基于字符编码的深度神经翻译方法及系统
CN106933804A (zh) * 2017-03-10 2017-07-07 上海数眼科技发展有限公司 一种基于深度学习的结构化信息抽取方法
CN107247755A (zh) * 2017-05-27 2017-10-13 深圳市唯特视科技有限公司 一种基于上下文序列记忆网络的个性化图像字幕生成方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110569359A (zh) * 2019-08-26 2019-12-13 腾讯科技(深圳)有限公司 识别模型的训练及应用方法、装置、计算设备及存储介质
CN110569359B (zh) * 2019-08-26 2023-09-15 腾讯科技(深圳)有限公司 识别模型的训练及应用方法、装置、计算设备及存储介质
CN113111329A (zh) * 2021-06-11 2021-07-13 四川大学 基于多序列长短期记忆网络的口令字典生成方法及系统
CN113111329B (zh) * 2021-06-11 2021-08-13 四川大学 基于多序列长短期记忆网络的口令字典生成方法及系统
CN114495147A (zh) * 2022-01-25 2022-05-13 北京百度网讯科技有限公司 识别方法、装置、设备以及存储介质

Also Published As

Publication number Publication date
GB2569418A (en) 2019-06-19
DE102018006481A1 (de) 2019-06-19
AU2018217281B2 (en) 2021-08-05
AU2018217281A1 (en) 2019-07-04
US10423828B2 (en) 2019-09-24
GB2569418B (en) 2020-10-07
US20190188463A1 (en) 2019-06-20
GB201814026D0 (en) 2018-10-10
CN109933780B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
CN109933780A (zh) 使用深度学习技术确定文档中的上下文阅读顺序
CN113822494B (zh) 风险预测方法、装置、设备及存储介质
Deng et al. Image-to-markup generation with coarse-to-fine attention
Gulli et al. Deep learning with Keras
Ozdemir et al. Feature Engineering Made Easy: Identify unique features from your dataset in order to build powerful machine learning systems
US11113598B2 (en) Dynamic memory network
Li et al. Discourse parsing with attention-based hierarchical neural networks
US20160350653A1 (en) Dynamic Memory Network
CN110390009A (zh) 生成文本内容的基于主题的概要
CN112732919B (zh) 一种面向网络安全威胁情报的智能分类标签方法及系统
CN109753566A (zh) 基于卷积神经网络的跨领域情感分析的模型训练方法
CN108073677A (zh) 一种基于人工智能的多级文本多标签分类方法及系统
CN111078836A (zh) 基于外部知识增强的机器阅读理解方法、系统、装置
CN110083700A (zh) 一种基于卷积神经网络的企业舆情情感分类方法及系统
CN106462626A (zh) 利用深度神经网络对兴趣度建模
CN110929665B (zh) 一种自然场景曲线文本检测方法
Menshawy Deep Learning By Example: A hands-on guide to implementing advanced machine learning algorithms and neural networks
CA2833355C (en) System and method for automatic wrapper induction by applying filters
CN112884551A (zh) 一种基于近邻用户和评论信息的商品推荐方法
Eckroth Python artificial intelligence projects for beginners: Get up and running with artificial intelligence using 8 smart and exciting AI applications
CN114240552A (zh) 基于深度聚类算法的产品推荐方法、装置、设备及介质
CN114610865A (zh) 召回文本推荐方法、装置、设备及存储介质
CN116227603A (zh) 一种事件推理任务的处理方法、设备及介质
CN115391570A (zh) 一种基于方面的情感知识图谱构建方法及装置
CN109190703A (zh) 基于dnn的多态蠕虫特征码自动提取方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant