标识文档中的序列标题

文档序号:1043313 发布日期:2020-10-09 浏览:6次 >En<

阅读说明:本技术 标识文档中的序列标题 (Identifying sequence titles in a document ) 是由 达雷尔·E·贝勒特 于 2020-03-24 设计创作,主要内容包括:本公开涉及标识文档中的序列标题。一种用于处理电子文档(ED)以推断ED中的章节标题序列的方法。方法包括:由计算机处理器基于预定的章节标题模式和ED中的多个字符的正则表达式匹配,生成ED中的候选标题列表;由计算机处理器基于候选标题列表,生成用于推断章节标题序列的部分的链片段列表;以及由计算机处理器基于预定的准则,通过合并链片段列表中的至少两个链片段来生成章节标题序列。(The present disclosure relates to identifying sequence titles in a document. A method for processing an Electronic Document (ED) to infer a sequence of chapter titles in the ED. The method comprises the following steps: generating, by the computer processor, a list of candidate titles in the ED based on a predetermined chapter title pattern and regular expression matching of a plurality of characters in the ED; generating, by the computer processor, a list of chain fragments for inferring portions of the sequence of section titles based on the list of candidate titles; and generating, by the computer processor, a chapter title sequence by merging at least two chain segments in the list of chain segments based on a predetermined criterion.)

标识文档中的序列标题

技术领域

本发明涉及文档中的序列标题的标识。

背景技术

作者可以将电子文档(electronic document,ED)(例如PDF文档或OOXML文档等)的内容组织到ED内的章节(section)中。存在许多不同的文件格式。每个文件格式定义文件的内容是如何编码的。无论文件格式如何,作者暗示的语义信息(诸如章节或章节标题)可能不能使用ED内的计算机可识别的信息来指定。

发明内容

总体上,在一个方面,本发明涉及用于处理电子文档(ED)以推断ED中的章节标题序列的方法。方法包括:由计算机处理器基于预定的章节标题模式和ED中的多个字符的正则表达式匹配,生成ED中的候选标题列表;由计算机处理器基于候选标题列表,生成用于推断章节标题序列的部分的链片段列表;以及由计算机处理器基于预定的准则,通过合并链片段列表中的至少两个链片段来生成章节标题序列。

总体上,在一个方面,本发明涉及非暂时性计算机可读介质(computer readablemedium,CRM),存储有在其上实施的用于处理电子文档(ED)以推断ED中的章节标题序列的计算机可读程序代码。当被计算机执行时,计算机可读程序代码包括以下功能:基于预定的章节标题模式和ED中的多个字符的正则表达式匹配,生成ED中的候选标题列表;基于候选标题列表,生成用于推断章节标题序列的部分的链片段列表;基于预定的准则,通过合并链片段列表中的至少两个链片段来生成章节标题序列。

总体上,在一个方面,本发明涉及用于处理电子文档(ED)以推断ED中的章节标题序列的系统。系统包括存储器以及连接到存储器的计算机处理器,计算机处理器被配置为:基于预定的章节标题模式和ED中的多个字符的正则表达式匹配,生成ED中的候选标题列表;基于候选标题列表,生成用于推断章节标题序列的部分的链片段列表;基于预定的准则,通过合并链片段列表中的至少两个链片段来生成章节标题序列。

通过以下描述和所附权利要求书,本发明的其他方面将变得明确。

附图说明

图1示出根据本发明的一个或多个实施例的系统。

图2A-2B示出根据本发明的一个或多个实施例的流程图。

图3A-3G示出根据本发明的一个或多个实施例的实现示例。

图4示出根据本发明的一个或多个实施例的计算系统。

具体实施方式

现在将参考附图详细地描述本发明的具体实施例。为了一致性,各个附图中的相似的元素由相似的附图标记来表示。

在以下对本发明的实施例的详细描述中,阐明许多具体细节以便提供对本发明的更透彻的理解。然而,对于本领域的普通技术人员将明确的是,可以不用这些具体细节而实践本发明。在其他实例中,没有详细地描述众所周知的特征,以避免不必要地使描述变得复杂。

一些诸如PDF文档或OOXML文档的电子文档(ED)未明确地标识文档的章节或章节标题。特别地,章节标题是作者暗示开始ED的章节的一段文本。为了获得更有意义的见解,用户可以请求查看或搜索大型文档的具体章节中的信息。例如,用户可以通过发出诸如“向我显示此文档中讨论西部艾草榛鸡的摄食习性的章节”的命令来请求检索关于文档中的具体章节的信息。作为响应,如果未明确地标识文档的章节和/或章节标题,则需要进行推断以有助于有针对性的查询。

总体上,本发明的实施例提供用于在ED中将某些文本推断为序列章节标题的方法、非暂时性计算机可读介质以及系统。在本发明的一个或多个实施例中,序列章节标题是按序列的章节标题,其中每个章节标题在章节标题的前导位置(即最左边的位置)具有一个或多个序列字符(例如1.1、1.2、1.2.1、a.、b.、i.、ii.、iii.、iv.等)。特别地,可以由标点符号来分隔序列字符。后续的序列章节标题中的序列字符在序列中一个接一个。序列标题中的所有序列字符都属于相同的族(family)类型,族类型是数字字符、大写罗马数字、小写罗马数字、大写字母字符和小写字母字符中的一种。因此,可以基于章节标题的序列字符将章节标题分组为5个可能的族(包括数字、大写罗马数字、小写罗马数字、大写字母和小写字母)中的一个或多个。

在本发明的一个或多个实施例中,将推断出的章节标题信息***或嵌入(例如,指定为OOXML标签或者某种其他标准)到先前缺乏计算机可识别的章节或章节标题的标识的ED中。例如,可以将推断出的章节标题信息***或嵌入到ED中的相应文本附近,或者以其他方式***或嵌入到例如文档属性中。此外,具有被嵌入的推断出的信息的最终文档可以是OOXML、PDF或者允许通过操作系统或软件应用中的标准文本搜索工具进行搜索的任何其他文件格式。

图1示出根据本发明的一个或多个实施例的系统100。如图1所示,系统100具有多个组件,包括例如缓冲器104、解析引擎108以及推断引擎110。这些组件104、108、110中的每一个组件可以位于相同计算设备(例如个人计算机(PC)、膝上型计算机、平板式计算机、智能电话、多功能打印机、信息亭(kiosk)、服务器等)上或者位于通过具有有线和/或无线网段的任意规模的网络连接的不同计算设备上。下面讨论这些组件中的每一个组件。

在本发明的一个或多个实施例中,可以以硬件(即电路)、软件或其任何组合来实现缓冲器104。缓冲器104被配置为存储包括由字符组成的一个或多个文本行的ED 106。ED106还可以包括图像和图形。ED 106可以从任何来源获得(例如下载、扫描等)。ED 106可以是ED集合的一部分。此外,ED 106可以是任何规模和任何格式(例如PDF、OOXML、ODF、HTML等)。ED 106包括由作者暗示为章节和章节标题的语义内容,这些章节和章节标题未被ED106本身指定或明确地标识。换句话说,未使用ED 106中的计算机可识别的信息(例如标签或者其他标识符)来指定或者明确地标识章节和章节标题。

在本发明的一个或多个实施例中,可以以硬件(即电路)、软件或其任何组合来实现解析引擎108。解析引擎108解析ED 106以提取ED 106中字符的内容、布局和样式信息,并且基于提取的信息生成ED 106的解析版本,称为解析的ED 107。特别地,解析的ED 107包括经由ED 106的提取的信息的原始内容的表示。解析的ED 107可以存储在缓冲器104中。

在一个或多个实施例中,解析的ED 107是诸如JSON或XML的通用的预定的结构化格式,该格式通过来自ED 106的提取的信息而被编码。这种通用格式存储文本的段落、行和单元(run)以及相应的边界框和样式信息。此外,这种通用格式可以存储其他文档内容,诸如图像和图形。ED 106和解析的ED 107的示例分别在图3A和图3B中描述。

如图3A所示,ED A 310是ED 106的示例,并且包括由字符组成的多个文本行。文本行可以被分组为段落312。如图3A所示,每个段落可以包括单个文本行或多个文本行。在EDA(310)被解析之后,在图3B中示出文档子集的通用格式的表示。

图3B示出ED A 310的解析版本的部分,称为解析的ED 321。解析的ED 321是解析的ED 107的示例,并且包括针对ED A 310的第三段中的字符的样式信息324、布局信息323和内容信息322。例如,内容信息322包括图3A所示的字符“bomb-sniffing cat”。如图3B中看出,样式信息324被表达为定义文本(即style_id)的各种特征或方面(即样式)的变量(即v:4)。特别地,内容信息322包括文本行中的被应用样式信息324的所有字符。

尽管以上仅是示例性的,但是通用格式标识文档的基础结构和样式细节。特别地,文档中的具体段落被标识,其中每个段落被分解成一个或多个文本行。此外,每一行被分解成一个或多个文本单元(run),其中一个单元中的所有文本都具有特定的样式信息。在以上示例中,通过参考ID来处理样式信息(其中针对特定ID的确切的样式细节出现在文件末尾处的“run_props”列表中)。在其他示例中,样式信息也可以与单元本身一起编码在行内。无论如何,样式细节都对诸如字体、磅值、文本颜色、粗体、下划线和斜体处理之类的信息进行编码。除了提供样式信息之外,还经由标识段落、行和单元的不同边界框的char_bbox/visible_bbox提供布局信息(例如布局信息323)。最后,文档的文本本身被提供为每个单元的部分。

返回到图1的讨论,在本发明的一个或多个实施例中,可以以硬件(即电路)、软件或其任何组合来实现推断引擎110。特别地,推断引擎110被配置为将解析的ED 107中的某些文本推断为ED 106的序列章节标题。基于由解析引擎108提取的内容信息和样式特性,推断引擎110生成被组装成多个链片段(chain fragment)以构成章节标题序列的部分的ED106中的候选标题。较低等级链片段被合并到较高等级链片段以生成完整的章节标题序列。如本文中所使用的,候选标题是要被标识为章节标题的候选的一段文本。链片段(或简称为片段)是可以有资格作为章节标题序列的部分的一个或多个候选标题。在整个本公开中,术语“候选标题”和“标题”可以互换使用,除非被明确地指定为“章节标题”。

在本发明的一个或多个实施例中,推断引擎110生成与推断引擎110的一个或多个中间结果相对应的ED 106的元数据112,例如候选标题、候选标题的置信度量和等级度量、链片段、链片段的父/子关系等。换句话说,元数据112包括表示推断引擎110的一个或多个中间结果的信息。在一个或多个实施例中,推断引擎110将元数据112存储在缓冲器104中。可替代地,在一个或多个实施例中,推断引擎110将元数据112存储回到解析的ED 107中。元数据112可以存储在外部缓冲器中并且由推断引擎110检索以供使用。

在本发明的一个或多个实施例中,推断引擎110使用下面参考图2A所描述的方法来执行上述功能。

尽管系统100被示出为具有三个组件104、108、110,但是在本发明的其他实施例中,系统100可以具有更多或更少的组件。此外,上述每个组件的功能可以在组件之间划分。此外,每个组件104、108、110可以被多次利用以执行迭代操作。

图2A示出根据本发明的一个或多个实施例的流程图。流程图描述推断电子文档(ED)中的一个或多个序列章节标题的过程。可以由以上参考图1所讨论的系统100的组件来执行图2A中的一个或多个步骤。在本发明的一个或多个实施例中,可以省略、重复和/或以与图2A所示的顺序不同的顺序执行图2A所示的一个或多个步骤。因此,本发明的范围不应被认为限于图2A所示的步骤的具体安排。

参考图2A,首先在步骤200中,对ED进行解析以生成包括字符的内容信息、样式特性以及布局特性的ED的解析版本。特别地,ED包括未使用ED中的计算机可识别的信息(诸如标签或者其他标识符)指定或明确地标识的章节和章节标题。

根据一个或多个实施例,在步骤201中,基于预定的章节标题模式生成ED中的候选标题列表。在本发明的一个或多个实施例中,预定的章节标题模式是作为定义搜索模式的字符序列的“正则表达式(regular expression)”。候选标题是ED中与正则表达式匹配的用于推断章节标题序列的多段文本(“正则表达式匹配”)。<序列字符><文本>模式被用作用于在ED中搜索候选标题的正则表达式。换句话说,将具有<序列字符><文本>模式的一段文本标识为候选标题中的一个。在这种背景下,候选标题包括被称为候选标题的序列字符和文本的<序列字符>部分和<文本>部分。候选标题包括ED中的单个段落。换句话说,候选标题由相应的段落边界框来界定。根据候选标题的段落编号来对候选标题列表进行排序,并且生成候选标题列表包括生成标识列表中的候选标题的元数据以及与ED或ED的解析版本相关联地存储元数据。

根据一个或多个实施例,在步骤202中,为候选标题列表中的每个候选标题生成等级。候选标题的等级是在候选标题的序列字符中找到的嵌套级别的度量。例如,等级可以与由候选标题的序列字符中的标点符号进行分隔的序列字符的数量相对应。等级与ED或ED的解析版本相关联地存储为元数据。

根据一个或多个实施例,在步骤203中,为候选标题列表中的每个候选标题生成置信度。候选标题的置信度是特定候选标题的样式独特性的度量。例如,样式独特性可以与ED中具有特定样式的字符的统计度量(例如百分比)相对应。置信度可以与ED或ED的解析版本相关联地存储为元数据。

根据一个或多个实施例,在步骤204中,基于候选标题列表生成用于推断章节标题序列的链片段列表。根据等级和族类型,将一个或多个候选标题分组为链片段。换句话说,链片段中的所有候选标题都具有定义链片段的等级和族的相同等级和相同族类型。根据各个等级对链片段进行排序以形成链片段列表,并且基于链片段中包括的每个候选标题的置信度来确定每个链片段的置信度。此外,将具有基础候选标题的平均置信度小于预定的置信度阈值的一个或多个链片段从链片段列表中移除或者排除。然后,表示链片段列表的信息与ED或ED的解析版本相关联地存储为元数据。

根据一个或多个实施例,在步骤205中,通过基于预定的准则(例如要合并的片段的置信度量和接近度量)合并链片段来生成章节标题序列。特别地,根据各个等级和族来执行合并。在相同族内,较低等级链片段被合并到比该较低等级链片段高一个等级的较高等级链片段。此外,生成较高等级链片段和较低等级链片段之间的接近度量。例如,接近度量可以与较高等级链片段中的***点与较低等级链片段中的前导候选标题之间的段落编号差相对应。另外,基于较高等级链片段的置信度量和接近度量的加权平均来生成较高等级链片段的得分。相应地,基于该得分,将较高等级链片段选择为较低等级链片段的父链片段。例如,如果较高等级链片段的得分是所有可能的较高等级链片段中最高的,则将其选择为较低等级链片段的父链片段。表示章节标题序列的信息与ED或ED的解析版本相关联地存储为元数据。

图2B示出根据本发明的一个或多个实施例的流程图。流程图描述在ED中进行搜索的过程,在该ED中未使用ED中的计算机可识别的信息(诸如标签或者其他标识符)来指定或明确地标识作者在语义上暗示的章节和章节标题。为了改善搜索结果,可以由以上参考图1所讨论的系统100的组件使用以上参考图2A所描述的方法来实现ED的章节标题信息。在本发明的一个或多个实施例中,可以省略、重复和/或以与图2B所示的顺序不同的顺序执行图2B所示的一个或多个步骤。因此,本发明的范围不应被认为限于图2B所示的步骤的具体安排。

在步骤210中,从用户接收指定搜索短语的搜索请求。在本发明的一个或多个实施例中,用户可以在文件查看器中打开ED。用户可以在文件查看器中打开搜索对话框并且输入搜索短语,以搜索可以导向ED中针对用户的相关信息的一个或多个匹配的短语。

在步骤211中,搜索ED以标识一个或多个匹配的短语的位置。例如,ED中可能存在多个匹配的短语,而在ED的章节中找到一些比其他匹配的短语与用户更相关的匹配的短语。推断出的章节标题信息被添加到ED,现有(例如旧版)搜索引擎可以使用该信息返回找到匹配的短语的整个章节。例如,可以在接收到来自用户的搜索请求之前,推断章节标题信息并添加到ED。在另一个示例中,可以响应于接收到来自用户的搜索请求来推断章节标题信息并添加到ED。使用以上参考图2A所描述的方法来推断章节标题信息并添加到ED。

在本发明的一个或多个实施例中,查看器搜索引擎通过推断出的章节标题信息进行搜索,以标识找到匹配的短语的整个章节。当找到匹配时,文件查看器获取匹配的短语的位置以及包含匹配的短语的章节。

在步骤212中,在本发明的一个或多个实施例中,将匹配的短语和包含匹配的短语的章节呈现给用户。呈现匹配的短语和关联的章节可以包括在关联的章节中突出显示匹配的短语。包含多个匹配的短语的多个章节被呈现给用户,使得用户可以选择包含与用户最相关的信息的章节。

如图2A和2B所示,一个或多个实施例允许对ED进行的计算机化的搜索,使得不仅返回匹配的(一个或多个)短语,而且还返回找到匹配的(一个或多个)短语的ED的(一个或多个)章节。因此,用户能够基于作者语义上暗示的、未使用ED中的计算机可识别的信息(例如标签或者其他标识符)指定或明确地标识的章节标题来查看与搜索短语相关的其他信息。

图3C-3G示出根据本发明的一个或多个实施例的实现示例。图3C-3G所示的实现示例基于以上参考图1、2A和2B所描述的系统和方法流程图。在本发明的一个或多个实施例中,可以省略、重复和/或以不同的安排组织图3C-3G所示的一个或多个元素。因此,本发明的范围不应被认为限于图3C-3G所示的元素的具体安排。

参考图3C和下面表1描述生成具有关联的等级度量和置信度量的候选标题的示例。如图3C所示,ED B 330包括从段落0到段落20的21个段落,诸如段落0 331、段落2 332、段落5 333、段落6 334、段落18 335以及段落19 336等。通过使用正则表达式搜索具有<序列字符><文本>模式的多段文本,将ED中的候选标题标识为下面表1中16行条目的列表。特别地,表1示出以上参考图2A的步骤201、202和203所描述的候选标题列表的示例。

表1

Figure BDA0002422729930000101

在表1的候选标题列表中,候选标题的位置标识ED B 330中的候选标题的段落编号。在整个本公开中,术语“位置”表示“候选标题的位置”,除非另外说明。候选标题的等级是候选标题中的一些序列字符。等级指示候选标题的嵌套级别。例如,序列字符为“3.”的候选标题位于等级1,而序列字符为“2.1”的候选标题位于等级2,而序列字符为“2.2.1”的候选标题位于等级3,依此类推。

候选标题的置信度指示特定的候选标题的样式独特性。通常,与ED中的其他文本相比,ED的作者暗示的标题具有独特的样式。例如,段落0 331、段落2 332和段落19 336都是作者暗示的主要标题并且共享仅专属于这些段落的共同样式。因此,这些候选标题的置信度计算为1减去具有这种特定的共同样式的字符数除以ED中的总字符数的商。在ED B330的示例中,段落0 331、段落2 332和段落19 336共有90个字符,并且总共503个字符。因此,如以上表1所列出的,段落0 331、段落2 332和段落19 336中的每个段落的置信度计算为1-90/503,等于0.82。

特别地,注意表1中将段落6 334标识为两个标题,一个为小写字母,另一个为小写罗马数字。这是由于“i.”既是字母又是罗马数字的歧义。换句话说,由于歧义,ED中的一个或多个候选标题可能被归类为属于多个族,歧义在后续步骤中被解决。

作为以上参考图2A的步骤204的示例,基于等级度量,根据候选标题生成章节标题序列的一些链片段。如上所述,链片段(或简称为片段)是要有资格作为章节标题序列的部分的一个或多个候选标题。在序列字符的最右边的数位处具有前导序列字符(即对于数字是“1.”,对于大写字母是“A.”,或者对于小写罗马数字是“i.”等)的候选标题形成单个标题链片段或者充当具有多个候选标题的链片段的起始。链片段中的多个候选标题的序列字符从链片段的起始起一个接一个。在一个或多个实施例中,通过从候选标题列表向后行进以搜索链片段的起始来生成链片段。如本文中所使用的,“向后”表示向表1的开始或顶部,而“向前”表示向表1的末尾或底部。链片段的起始也称为链片段起始。例如,以下序列字符都可以表示链片段的起始。换句话说,可以将包括以下序列字符的候选标题标识为潜在的链片段起始。

·4.1

·4.2.1

·4.3.1

·1.

·i.

·a)

一旦标识出潜在的链片段起始,就通过搜索具有与潜在的链片段起始相同的文本样式并且还未被纳入其他链片段的相同等级和相同族的后续候选标题来依次构建链片段。在这个步骤中发生对不同解释的歧义消除。例如,在候选标题中找到的“i.”被区分为罗马数字链的起始或者字母链的第9个条目。特别地,区别是基于是否使用“i.”作为链片段起始来生成链片段的。换句话说,如果使用“i.”作为链片段起始来生成链片段,则将“i.”视为罗马数字。相反,如果没有链片段是使用“i.”作为链片段起始来生成的,则将“i.”视为字母。

继续以上图3C和表1的示例,算法从段落19 336开始,发现这个候选标题的序列字符以3结尾并且未起始链片段。从表1的末尾开始向后数的下一个候选标题是具有以1结尾的序列字符2.1的段落18 335。因此,选择段落18 335作为起始链片段。然后,算法从选择的段落18 335向表1的末尾向前行进,在样式与段落18 335相同的候选标题中搜索下一个序列字符2.2。然而,在表1的列表中未找到这样的候选标题,这总结出链片段1具有单个候选标题,如下面表2所示。

表2

链片段1:

类似于表1的列表中的段落18,段落16被标识为链片段起始,根据该链片段起始生成具有单个候选标题的链片段2,如下面表3所示。

表3

链片段2:

位置 等级 置信度 文本
16 数字 3 0.94 2.2.1.This is a minor heading.

算法在表1的列表中继续向后行进,并且基于序列字符的最左边的数位处的“a)”而将段落12标识为链片段起始。然后,算法在表1中向前移动,搜索共享相同族(小写字母)和样式并且依次排在下一个的下一个候选标题。因此,段落13、14和15包括在如下面表4所示的链片段3中。

表4

链片段3:

Figure BDA0002422729930000122

Figure BDA0002422729930000131

算法再次在表1的列表中继续向后,并且将段落6标识为潜在的链片段起始。在此,对候选标题中的“i.”有两种可能的解释。“i.”作为小写字母的第一种解释未被标识为潜在的链片段起始并被忽略。“i.”作为小写罗马数字的第二种解释被标识为潜在的链片段起始,并且被算法采用以进一步进行。因此,使用段落6作为链片段起始来生成链片段4,如下面表5所示。

表5

链片段4:

类似地,生成链片段5和6,如下面表6和表7所示。

表6

链片段5:

位置 等级 置信度 文本
4 数字 2 0.88 2.1.This is a subheading
10 数字 2 0.88 2.2.This is a second subheading

表7

链片段6:

Figure BDA0002422729930000133

如以上参考图2A的步骤204所描述的,链片段按等级排序。在一个或多个实施例中,首先将等级为1的所有链片段添加到片段列表,然后是等级为2的所有链片段,然后是等级3,依此类推。从ED B 330生成的已排序的片段列表340的示例在图3D中示出。如图3D所示,片段列表340的等级1部分中包括链片段6 346、链片段4 344以及链片段3 343;片段列表340的等级2部分中包括链片段5 345以及链片段1 341;并且片段列表340的等级3部分中包括链片段2 342。

此外,将无资格的链片段从片段列表中移除。一旦所有链片段均已被构建,则算法对不太可能形成较大序列链的链片段进行修剪。在一个或多个实施例中,被标识为落到某个置信度阈值以下的链片段或列表的链片段被取消资格,并且被从片段列表中移除。

如果链片段的“列表概率”落到特定阈值以上,该链片段被标识为列表。“列表概率”计算为链片段中的相邻候选标题的数量与链片段中的候选标题的总数量之比。例如,由段落0、2和19组成的链片段6 346具有0个相邻的候选标题,因为0、2和19不是相邻的段落位置。因此,链片段6 346的“列表概率”为0/3=0。在另一个示例中,由段落6、7、8和9组成的链片段4 344具有4个相邻的段落,并且“列表概率”是4/4=1。不考虑基于“列表概率”对具有单个候选标题的链片段进行修剪,因为没有足够的上下文来标识该链片段是孤立的标题还是一个元素的列表。

链片段的置信度计算为链片段的所有候选标题的置信度的平均值。例如,具有段落4和10的链片段5 345的置信度计算为0.88。置信度低于指定阈值的链片段也被修剪。

在一个或多个实施例中,使用“列表概率”阈值1和链片段置信度阈值0.8。因此,将由段落6、7、8和9组成的链片段4 344,由段落12、13、14和15组成的链片段3 346,以及由段落18组成的链片段1 341从片段列表340移除,以生成修剪的片段列表350,如图3E所示。

作为参考以上图2A的步骤205的示例,通过将较低等级链片段合并到较高等级链片段,根据修剪的片段列表生成章节标题序列。从最低等级的链片段开始,每个链片段的可能的父链片段被定位。在所有可能的父链片段中选择最佳父链片段,使得父链片段和子链片段合并。重复这个过程以移动到等级更高的链片段。

在一个或多个实施例中,合并特定等级的链片段基于下面的过程。

·通过置信度递减来对特定等级的所有链片段进行排序,以首先处理置信度最高的链片段。

·对于以上已排序的列表中的每个链片段:

a.生成该链片段可能潜在地适合的所有父链片段的列表(potential_parents)。要搜索的父链片段的集合比当前的链片段的等级高一个等级。因此,对于高一个等级的链片段的集合中的每个父链片段,如果该链片段潜在地适合于该父链片段,则将父链片段和其适合的以(parent_pos)命名的父标题的位置添加到列表potential_parents。换句话说,父标题是其后可以***子链片段以进行合并的候选标题。下面将对所使用的函数FitsWithin()进行详细描述。

b.对于potential_parents中的每个片段,标识从parent_pos到子链片段中的第一个候选标题的位置的距离,并且将最大距离记录为max_dist。

c.标识potential_parents中的最佳父链片段。这是使用接近度和链片段置信度的组合来完成的。将函数ScoreFit()应用于每个父链片段,以选择具有最高得分的父链片段。

d.将链片段合并到最佳父链片段。具体地,将链片段中的每个候选标题移动到最佳父链片段中,并且删除现在为空的链片段。

这里是函数FitsWithin()的示例展开:

·对于父链片段中的每个标题,执行下面的步骤:

a.标识父链片段中的当前的父标题之后的下一个标题(如果存在),并且将其指定为next_heading。

b.标识子链片段的placement_fit。如果子链片段中的第一个标题位置大于当前的父标题位置parent_pos,并且1)不存在next_heading或者2)存在next_heading并且子链片段中的最后一个标题位置小于next_heading的位置,则placement_fit为真。

c.标识子链片段的sequence_fit。如果子链片段中的第一个标题位置跟随当前的父标题的序列字符,则sequence_fit为真。例如,2.3和2.2.1二者都跟随2.2并且将有资格适合序列(sequence fit),而2.2.2和2.4不跟随2.2并且将取消适合序列的资格。在随后描述的函数Follows()中处理对一个候选标题是否跟随另一个候选标题的检查。

d.如果当前的父标题存在placement_fit和sequence_fit二者,则标识该父片段和在其后***子链片段的父标题(parent_pos),并退出循环。

·如果已标识父片段,则验证该父片段不具有与子链片段中第一个标题的序列字符匹配的序列字符。换句话说,验证意图添加的子链片段在父链片段中尚未存在。如果是,或者未定位到合适的父标题,则对于父片段返回“NULL”并且对于parent_pos返回“-1”。否则,返回对父片段和parent_pos的引用。

这里是函数ScoreFit()的示例展开:

·根据从子链片段到父链片段的距离计算距离得分。例如,dist_score=1.0–(子链片段中的第一个标题的位置和parent_pos之间的差)/max_dist。

·将confidence_score计算为父链片段中的所有标题的平均置信度。

·返回dist_score和confidence_score的加权平均值作为final_score。例如,final_score=0.75*dist_score+0.25*confidence_score。

这里是确定标题b是否跟随标题a的函数Follows(a,b)的示例展开:

·建立与a和b二者相对应的数字级别的数组。数组的大小等于标题的等级,并且数组中的每个条目都是序列中的每个字符条目的数值等效。这里是一些不同序列标题的数字级别的几个示例:

Figure BDA0002422729930000171

·将bool found_an_increment初始化为假。

·对于b的数字级别数组中的每个条目,重复:

a.标识该条目的位置并将其称为entry_num。

b.如果found_an_increment为真,则返回假。(原理:如果已找到增量,则b的数字级别数组中不应该再有任何条目。示例:4.2.1.1不跟随4.2.。)

c.如果条目编号小于a的数字级别数组的大小,则:

i.如果b在entry_num处的数字级别数组小于a在entry_num处的数字级别数组,则返回假。(示例:4.2.1不跟随4.2.3,因为1小于3。)

ii.如果b在entry_num处的数字级别数组等于a在entry_num处的数字级别数组加1,则将found_an_increment设置为真。否则,如果b在entry_num处的数字级别数组不等于a在entry_num处的数字级别数组,则返回false。(原理:如果b的值比a的对应值大1,则找到了增量。否则,如果当前的对应的值相等,则仅继续到数字级别数组中的下一个条目。例如:4.2.2跟随4.2.1)

d.否则,如果条目编号等于a的数字级别数组的大小,则:

i.如果b在entry_num处的数字级别数组等于1,则将found_an_increment设置为真。(示例:4.2.1跟随4.2)。

·返回found_an_increment。

继续以上在图3E中所示的修剪的片段列表350的讨论,合并链片段的过程开始于最低级别的所有链片段,在片段2 342中是3。通过置信度递减来对此级别的所有链片段进行排序。当仅具有一个等级为3的链片段(即片段2 342)时,排序无效。合并链片段的过程开始于高一个等级的所有链片段,即等级2。在修剪的片段列表350中,仅存在一个等级为2的链片段(即片段5 345)。应用函数FitsWithin()来确定等级为3的片段2 342作为子片段是否适合于作为父片段的等级为2的片段5 345。

在FitsWithin()内部,评价等级为2的片段5 345中的每个标题。第一个标题与如下段落4相对应。

位置 等级 置信度 文本
4 数字 2 0.88 2.1.This is a subheading

对于此标题,因为在片段5 345中存在下一个标题(位置10),并且在片段2 342中的最后一个标题位置16不小于下一个标题的位置10,所以placement_fit为假。此外,因为片段2 342中的序列字符2.2.1不跟随片段5 345中的序列字符2.1,所以sequence_fit为假。因此,对FitsWithin()的评价继续到等级为2的片段5 345的下一个标题。下一个标题与如下段落10相对应。

位置 等级 置信度 文本
10 数字 2 0.88 2.2.This is a second subheading

对于此标题,因为在片段5 345中不存在下一个标题,并且子片段2 342中的第一个标题位置16大于父片段5 345中的当前的父标题位置10,所以placement_fit为真。此外,因为子片段2 342中的序列字符2.2.1跟随父片段5 345中的序列字符2.2,所以sequence_fit为真。

最后,验证了在等级为2的片段5 345中已不存在具有序列字符2.2.1的标题。假设父片段已不包含子片段,则FitsWithin()返回片段5 345作为父片段以及parent_pos为10,将其添加到潜在父片段列表中。

假设列表中仅存在一个潜在父片段,则选择等级为2的片段5 345作为等级为3的片段2 342的最佳父片段。因此,等级为3的片段2 342被合并到等级为2的片段5 345中,以生成图3F所示的合并的片段列表A 360。如图3F所示,合并的片段列表A 360包括等级为1的片段6 346以及等级为2的合并的片段A 361。特别地,合并的片段A 361是修剪的片段列表350中的片段2 342和片段5 345的组合。

没有仍为等级3的链片段,因此合并过程在所有链片段都为等级2的合并的片段列表A 360中重复第二次,其仅包括合并的片段A 361。根据合并过程,按置信度递减来对等级为2的所有链片段进行排序。由于仅具有一个链片段(即合并的片段A 361),排序无效。因此,合并链片段的过程开始于高一个等级(等级1)的所有链片段。在合并的片段列表A 360中,仅有一个等级为1的链片段(即片段6 346)。应用函数FitsWithin()来确定等级为2的合并的片段A 361作为子片段是否适合于作为父片段的等级为1的片段6 346。

在FitsWithin()内部,评价等级为1的片段6 346中的每个标题。第一个标题与如下段落0相对应。

位置 等级 置信度 文本
0 数字 1 0.82 1.This is a main heading

对于该标题,因为片段6 346中存在下一个标题(位置2),并且合并的片段A 361中的最后一个标题位置16不小于下一个标题的位置2,所以placement_fit为假。此外,因为合并的片段A 361中的序列字符2.1不跟随片段6 346中的序列字符1,所以sequence_fit为假。因此,对FitsWithin()的评价继续到等级为1的片段6 346中的下一个标题。下一个标题与如下段落2相对应。

对于该标题,因为合并的子片段A 361中的第一个标题位置4大于父片段6 346中的当前父标题位置2,所以placement_fit为真。此外,合并的子片段A 361中的最后一个标题位置16小于父片段6 346中的下一个标题位置19。此外,因为合并的子片段A 361中的序列字符2.1跟随父片段6 346中的序列字符2,所以sequence_fit为真。

最后,验证了等级为1的片段6 346中已没有具有序列字符2.1的标题。假设父片段已不包括子片段,则FitsWithin()返回片段6 346作为父片段并且返回parent_pos为2,它们被添加到潜在父片段列表中。

假设列表中仅有一个潜在父片段,则选择片段6 346作为等级为2的合并的片段A361的最佳父片段。因此,等级为2的合并的片段A 361被合并到等级为1的片段6 346中,以生成如图3G所示的合并的片段列表B 370。如图3G所示,合并的片段列表B 370仅包括等级为1的合并的片段B 371。特别地,合并的片段B 371是合并的片段列表A 360中的合并的片段A 361和片段6 346的组合。

现在已完成合并过程,并且合并的片段B 371被标识为ED B 330的序列标题或章节标题序列。根据这些信息,可以自动地将章节标识为章节标题之间的文本区域,并且能够根据等级信息标识文档中的章节的整体嵌套,以允许回答诸如“向我显示关于…的章节”的查询。

在上述示例的各个步骤中,在本发明的一个或多个实施例中,针对中间结果生成推断的元数据。特别地,推断的元数据包括候选标题列表、关联的等级和置信度、链片段列表、关联的得分和父/子关系等的表示。在本发明的一个或多个实施例中,推断的元数据被添加到ED和/或ED的解析版本。

本发明的实施例实质上可以在任何类型的计算系统上实现,而与所使用的平台无关。例如,计算系统可以是一个或多个移动设备(例如膝上型计算机、智能电话、个人数字助理、平板式计算机或者其他移动设备)、台式计算机、服务器、服务器机架中的刀片(blade)、或者至少包括最小处理能力、存储器以及(一个或多个)输入输出设备以执行本发明的一个或多个实施例的任何其他类型的计算设备或设备。例如,如图4所示,计算系统400可以包括一个或多个计算机处理器402、关联的存储器404(例如随机存取存储器(RAM)、高速缓冲存储器、闪存等)、一个或多个存储设备406(例如硬盘、诸如光盘(CD)驱动器或数字多功能磁盘(DVD)驱动器这样的光驱、闪存棒等)以及许多其他元件和功能。(一个或多个)计算机处理器402可以是用于处理指令的集成电路。例如,(一个或多个)计算机处理器可以是处理器的一个或多个核或微核。计算系统400还可包括一个或多个输入设备410,诸如触摸屏、键盘、鼠标、麦克风、触摸板、电子笔或任何其他类型的输入设备。此外,计算系统400可以包括一个或多个输出设备408,诸如屏幕(例如液晶显示器(LCD)、等离子显示器、触摸屏、阴极射线管(CRT)监视器、投影仪或者其他显示设备)、打印机、外部存储装置或者任何其他输出设备。一个或多个输出设备可以与(一个或多个)输入设备相同或不同。计算系统400可以经由网络接口连接(未示出)连接到网络412(例如局域网(LAN)、诸如因特网的广域网(WAN)、移动网络或者任何其他类型的网络)。(一个或多个)输入和输出设备可以本地或远程地(例如经由网络412)连接到(一个或多个)计算机处理器402、存储器404和(一个或多个)存储设备406。存在许多不同类型的计算系统,并且前述(一个或多个)输入和输出设备可以采取其他形式。

用于执行本发明的实施例的计算机可读程序代码形式的软件指令可以全部或部分、临时地或永久地存储在非暂时性计算机可读介质(诸如CD、DVD、存储设备、软磁盘、磁带、闪存、物理存储器或者任何其他计算机可读存储介质)上。具体地,软件指令可以与在被(一个或多个)处理器执行时被配置为执行本发明的实施例的计算机可读程序代码相对应。

此外,前述计算系统400的一个或多个元件可以位于远程位置并通过网络412连接到其他元件。此外,本发明的一个或多个实施例可以在具有多个节点的分布式系统上实现,其中本发明的每个部分可以位于分布式系统内的不同节点上。在本发明的一个实施例中,节点与确切的计算设备相对应。可替代地,节点可以与具有关联的物理存储器的计算机处理器相对应。节点可以可替代地与具有共享存储器和/或资源的计算机处理器的微核或计算机处理器相对应。

尽管已经针对有限数量的实施例描述了本发明,但是受益于本公开的本领域技术人员将理解,可以设计出不脱离如本文所公开的本发明的范围的其他实施例。因此,本发明的范围应仅由所附权利要求书限定。

29页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种专利申请文本的生成方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!