首页 / 一种标题识别方法、装置、设备和存储介质

一种标题识别方法、装置、设备和存储介质实质审查 发明

技术领域

[0001] 本申请涉及计算机技术领域,尤其涉及一种标题识别方法、装置、设备和存储介质。

相关背景技术

[0002] 在构建大语言模型预训练样本时,对文档中的每个段落标题的识别非常重要,这样可以让模型学习到标题后面的段落文本主要是围绕什么问题展开阐述的。但是,文档的种类多种多样,文档的段落标题也没有统一的格式标记,为此本领域技术人员提出了基于正则表达式的文档段落标题识别方法,以及基于模型的文档段落标题识别方法。
[0003] 但是,现有的文档段落标题识别方法的识别准确性都很低。具体的问题包括:1、将不是标题的文本错误地识别成标题,比较典型的情况是文档中如果存在以数字开头的文本,就比较容易被误认为标题;2、生成的标题同级列表不连续或者存在残缺,这是因为现有的识别方法只是针对单个标题的识别,没考虑标题之间的顺序关系和层级关系,导致识别出的标题不连续或残缺。
[0004] 例如:2型糖尿病(diabetes mellitus type 2,T2DM),因为以数字“2”开头,“2型糖尿病”极易被误认为是一个段落标题,
[0005] 又如:识别出的层级标题列表为:
[0006] 1XXX
[0007] 1.1XXX
[0008] 1.3XXX
[0009] 1YYYY
[0010] 2XXXX。
[0011] 分析上层级标题列表可知,1.1和1.3中间的同级标题序号残缺;1XXX和1YYYY这两个标题序号重复。

具体实施方式

[0035] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0036] 下文的公开提供了许多不同的实施例或例子用来实现本申请的不同结构。为了简化本申请的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本申请。此外,本申请可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。
[0037] 本申请实施例提供了一种标题识别方法。如图1所示,为根据本申请一实施例的标题识别方法的流程图。
[0038] 步骤S110,获取待识别文档并且将所述待识别文档划分为多个文本块。
[0039] 待识别文档为PDF文档。
[0040] 文本块为待识别文档的局部内容。可以将待识别文档划分为由多个文本块组成的文本块序列。
[0041] 为了避免由于文本样式问题造成的标题识别遗漏,本实施例在所述获取待识别文档之后,在将所述待识别文档划分为多个文本块之前,还包括:设置标题序号对应的文本类型;在所述待识别文档中,将具有所述文本类型的文本内容进行文本样式的标准化处理。
[0042] 标题序号对应的文本类型,包括但不限于:中文数字,阿拉伯数字,英文大写字母,英文小写字母和罗马数字。
[0043] 文本样式的标准化处理,包括但不限于:对具有上述文本类型的文本内容的字号,字体进行统一化处理。一般而言,标题序号可能包含在具有上述文本类型的文本内容中,对文本内容进行统一化处理,可以提升标题识别的成功率。
[0044] 步骤S120,调用预先构建的多个层级标题模板。
[0045] 层级标题模板包括至少一个基于正则表达式的标题样式。
[0046] 层级标题模板用于在待识别文档的多个文本块识别出疑似标题。
[0047] 由于待识别文档可以采用的标题样式多种多样,所以预先设置多个层级标题模板,并且不同的层级标题模板之间存在不同的标题样式。
[0048] 步骤S130,针对每个所述层级标题模板,在多个所述文本块中,识别出与所述层级标题模板相匹配的文本块,并且根据与所述层级标题模板相匹配的文本块,确定所述层级标题模板对应的候选标题。
[0049] 与所述层级标题模板相匹配的文本块为待识别文档中的疑似标题。由于疑似标题可能在存在错误,所以需要对疑似标题进行过滤,得到候选标题。
[0050] 步骤S140,针对每个所述层级标题模板对应的候选标题进行层级排序过滤,并根据所述层级排序过滤结果,对所述层级标题模板进行评分。
[0051] 层级排序过滤,是指对层级标题模板对应的候选标题进行验证,过滤掉错误的候选标题。
[0052] 针对每个层级标题模板对应的层级排序过滤结果,确定所述层级排序过滤结果中包括的候选标题的数量,并且将所述数量作为所述层级标题模板的评分。
[0053] 步骤S150,将评分最高的所述层级标题模板对应的层级排序过滤结果,确认为所述待识别文档的标题识别结果。
[0054] 本申请实施例获取待识别文档并且将所述待识别文档划分为多个文本块;调用预设的多个层级标题模板;针对每个所述层级标题模板,在多个所述文本块中,识别出与所述层级标题模板相匹配的文本块,并且根据与所述层级标题模板相匹配的文本块,确定所述层级标题模板对应的候选标题;针对每个所述层级标题模板对应的候选标题进行层级排序过滤,并根据所述层级排序过滤结果,对所述层级标题模板进行评分;将评分最高的所述层级标题模板对应的层级排序过滤结果,确认为所述待识别文档的标题识别结果。本申请实施例利用多个层级标题模板分别执行标题识别,囊括了各种标题样式,使得标题识别更精准,为标题识别的准确性提供了基础。本申请实施例利用层级标题模板匹配出疑似标题的文本块,根据真实标题之间的层级关系以及序号关系,在疑似标题的文本块中确定候选标题,并且对候选标题进行层级排序过滤,最终选择评分最高的层级排序结果作为待识别文档的标题识别结果,确保标题识别结果的正确性。
[0055] 下面针对层级标题模板的构建进行描述。
[0056] 本实施例构建多个基于正则表达式的层级标题模板。层级标题模板包括具有级别高低属性的多个层级以及每个层级对应的标题样式。
[0057] 多个层级具有级别顺序。例如:每个层级标题模板包括三个级别以及每个级别对应的标题样式,一级、二级和三级的级别依次减小。
[0058] 标题样式可以使用正则表达式来体现。每个层级对应一个正则表达式,以便匹配出符合该层级的正则表达式的疑似标题。
[0059] 层级标题模板的示例如下表1所示,但是本领域技术人员应当知道的是,层级标题模板的内容不限于此:
[0060] 级别 正则表达式 说明1 ^(\d).{1,30}$ 匹配以数字开头的一级标题,如1.
2 ^(\d\.\d).{1,30} 匹配以数字开头的二级标题,如1.1
3 (\d\.\d\.\d).{1,30} 匹配以数字开头的二级标题,如1.1.1
[0061] 表1
[0062] 由于各级标题的标题序号多种多样,例如:一级标题有的以阿拉伯数字开头的,有的以中文数字开头的,如:一、二、三;有的是罗马数字开头的,如I、II、III。对与二级和三级标题,也有各种表达,如:1)、(1)、一)、A、a、a)等。根据各级标题的标题序号可能采用的标题形式,可以将所有可能的层级标题模板都构建出来,将构建好的层级标题模板都存储在层级模板列表中。
[0063] 本实施例可以借助于正则表达式灵活性和概括能力,将尽可能多的标题形式都归纳进来。
[0064] 下面针对在多个文本块中,识别出与层级标题模板相匹配的文本块的过程进行进一步地描述。
[0065] 如图2所示,为根据本申请一实施例的匹配文本块的步骤流程图。
[0066] 步骤S210,针对每个层级标题模板,按照多个所述文本块在所述待识别文档中的顺序,将每个所述文本块与所述层级标题模板中各个层级对应的标题样式分别进行匹配。
[0067] 针对每个层级标题模板而言,层级标题模板包括具有级别高低属性的多个层级以及每个层级对应的标题样式。
[0068] 按照级别从大到小的顺序,使用层级标题模板中的多个层级分别对应的标题样式顺序匹配当前的文本块。
[0069] 步骤S220,识别出与所述层级标题模板中的标题样式相匹配的文本块,并且,将识别出的文本块确定为其匹配的标题样式对应的层级。
[0070] 由于高级别的层级的匹配规则比较宽松,在匹配文本块时,不但会匹配出高级别层级的标题样式匹配的文本块,还会匹配出与低层级标题样式匹配的文本块。所以,识别出的文本块至少对应一个层级。
[0071] 例如:在匹配一级标题时,不但会匹配出一级标题,往往还会匹配出二级标题。比如一级标题不仅会匹配1.XXX,还会匹配到1.1XXX,1.1.1XXX等,因为它们都是以数字1开头。
[0072] 一般而言,标题应对应一个层级,本实施例为了解决文本块对应两个以上层级的问题,为识别出的文本块确定唯一对应的层级,形成该层级对应的候选标题。
[0073] 下面针对确定候选标题的过程进行描述。如图3所示,为根据本申请一实施例的确定候选标题的步骤流程图。
[0074] 步骤S310,针对每个层级标题模板,在与所述层级标题模板相匹配的文本块中,根据每个所述文本块对应的层级,生成每个所述层级对应的文本块集合。
[0075] 在本实施例中,每个所述文本块至少属于一个所述文本块集合。
[0076] 步骤S320,按照每个所述层级的级别高低,在高级别的层级对应的文本块集合中,过滤掉低级别的层级对应的文本块集合中的文本块,将所述高级别的层级对应的文本块集合中剩余的文本块作为所述高级别的层级对应的候选标题。
[0077] 在高层级的文本块集合中过滤掉低层级的文本块集合中出现的文本块,用于将不属于当前级别的文本块过滤掉。
[0078] 在本实施例中,最低级别的层级对应的文本块集合中的文本块直接作为所述最低级别的层级对应的候选标题。
[0079] 在包括三个层级时,过滤公式如下:
[0080] T1’=T1–T2–T3;
[0081] T2’=T2–T3;
[0082] T3’=T3;
[0083] 其中,T1’、T2’和T3’分别对应过滤后的一级的文本块集合,二级的文本块集合和三级的文本块集合;T1、T2和T3分别对应过滤前的一级的文本块集合,二级的文本块集合和三级的文本块集合。
[0084] 例如:在一级的文本块集合中过滤掉包含1.1XXX(实际为二级),1.1.1XXX(实际为三级)的文本块,在一级的文本块集合中只保留1XXX,2XXX的文本块,得到真正的一级的文本块集合。同理,二级的文本块集合,三级的文本块集合也做类似处理。
[0085] 步骤S330,将所述层级标题模板中各个级别分别对应的候选标题,确定为所述层级标题模板对应的候选标题。
[0086] 例如:T1’、T2’和T3’分别对应过滤后的一级的文本块集合,二级的文本块集合和三级的文本块集合,那么T1’、T2’和T3’中的候选标题为当前层级标题模板对应的候选标题。
[0087] 下面针对层级排序过滤的过程进行描述。如图4所示,为根据本申请一实施例的层级排序过滤的步骤流程图。
[0088] 步骤S410,针对每个所述层级标题模板,在所述层级标题模板对应的每个候选标题中,提取所述候选标题对应的标题序号。
[0089] 步骤S420,根据所述层级标题模板对应的各个所述候选标题分别对应的层级和标题序号,利用有限状态机,对所述层级标题模板对应的各个所述候选标题进行层级排序过滤,形成所述层级标题模板对应的具有树形结构的层级排序过滤结果。
[0090] 由于多层级的标题之间具有关联性,所以本实施例使用有限状态机可以对层级标题模板对应的各个候选标题进行验证。
[0091] 对于各层级的候选标题,存在表2所示的几种状态:
[0092]状态名称 状态代号 示例
一级标题开始 first_grade_begin 1
二级标题开始 second_grade_begin 1.1
三级标题开始 third_grade_begin 1.1.1
一级标题序号加1 first_grade_continue 2
二级标题序号加1 second_grade_continue 1.2
三级标题序号加1 third_grade_continue 1.1.2
[0093] 表2
[0094] 根据各层级的候选标题的状态,可以生成最高层级及其下属子层级对应的状态转移关系图。如图5所示,为根据本申请一实施例的有限状态机的状态转移关系图。有限状态机可以按照状态转移关系图的转移关系,对每个候选标题进行验证。
[0095] 具体而言,将当前层级标题模板对应的候选标题按照从前往后的顺序进行排列,得到一个候选标题的序列,对序列中的每个候选标题进行验证,确定是否为真正的标题,即:确定候选标题的标题序号是否正确,确定候选标题的层级是否正确。
[0096] 首先,从匹配一级标题(即:层级最高的候选标题)的开始,如1XXX、一XXX等,只要匹配到了,就确定一级标题开始这个状态完成匹配,根据状态转移关系图,该一级标题后面只有两种状态:一种是一级标题继续(即:依旧是同层级的候选标题),如2XXX、二XXX等;或者一级标题下面还有子标题(即:最高层级的下一级的候选标题),就是二级标题开始的状态,如1.1XXX、一)XXX等。根据篇章的文档结构,只有这两种可能,以此类推,按照这种状态转移规律,将其用状态转移关系图来表示,并依据状态转移关系来标记各个候选标题。例如:文本块B只要能被状态转移关系图中的某个状态S匹配上,就标记B的层次为S。
[0097] 下面换一种角度来描述,由于层级之间具有级别高低顺序,标题序号之间具有先后顺序,所以本实施例针对每个层级标题模板,根据所述层级标题模板对应的各个所述候选标题在所述待识别文档中的顺序,顺序对每个所述候选标题执行如下操作:
[0098] 由于待识别文档中的第一个候选标题一般是一级标题,所以本实施例从待识别文档中的第一个候选标题开始,顺序获取每个候选标题。
[0099] 步骤S1,比较当前的所述候选标题对应的层级和后一个所述候选标题对应的层级,并且,比较当前的所述候选标题对应的标题序号和后一个所述候选标题对应的标题序号。
[0100] 步骤S2,判断当前的所述候选标题对应的层级和后一个所述候选标题对应的层级是否相同;如果是,则执行步骤S3;如果否,则执行步骤S4。
[0101] 步骤S3,如果当前的所述候选标题对应的层级和后一个所述候选标题对应的层级相同,则确定当前的所述候选标题对应的标题序号是否小于后一个所述候选标题对应的标题序号;如果小于,则保留当前的所述候选标题;如果不小于,则删除当前的所述候选标题。
[0102] 在当前的候选标题为一级候选标题时,如果当前的所述候选标题对应的层级和后一个所述候选标题对应的层级相同,那么后一个候选标题也应为一级候选标题,这样,在正常情况下,后一个候选标题的标题需要应为当前的候选标题的标题序号加1。当然,在一些情况下,可能存在遗漏候选标题的问题,即便出现这样的问题,当前的候选标题对应的标题序号也应小于后一个候选标题对应的标题序号。所以,如果当前的候选标题对应的标题序号大于后一个候选标题对应的标题序号,则可以确定当前的候选标题不是真正的标题。
[0103] 步骤S4,如果当前的所述候选标题对应的层级和后一个所述候选标题对应的层级不同,则确定当前的所述候选标题对应的层级和后一个所述候选标题对应的层级是否相邻;如果相邻,则确定当前的所述候选标题对应的标题序号是否小于前一个所述候选标题对应的标题序号;如果小于,则保留当前的所述候选标题;如果不小于或者不相邻,则删除当前的所述候选标题。
[0104] 以当前的候选标题为二级候选标题为例,如果当前的所述候选标题对应的层级和后一个所述候选标题对应的层级不同,则后一个候选标题为三级级候选标题。由于标题序号具有连续性,所以当前的候选标题对应的标题序号小于后一个候选标题对应的标题序号,否则,可以确定当前的候选标题不是真正的标题。
[0105] 在针对每个所述层级标题模板对应的候选标题进行层级排序过滤之后,根据所述层级排序过滤结果,对所述层级标题模板进行评分。
[0106] 例如:评分值score=sum(matched(T1))+sum(matched(T2))+sum(matched(T3));其中,sum表示求和;T1、T2和T3分别对应过滤前的一级的文本块集合,二级的文本块集合和三级的文本块集合;matched表示对文本块集合中保留下来的候选标题的数据进行汇总。
[0107] 将各个层级标题目标对应的评分值进行比较,将评分最高的所述层级标题模板对应的层级排序过滤结果,确认为所述待识别文档的标题识别结果。
[0108] 进一步地,在最佳匹配模板(评分最高的所述层级标题模板)的层级排序过滤结果中,一级的候选标题标记为一级标题,标题序号就是一级标题自身的编号;二级的候选标题标记为二级标题,标题序号就是二级标题自身的编号;三级的候选标题标记为三级标题,标题序号就是三级标题自身的编号。
[0109] 本申请实施例提出了一整套通用的文档多级标题匹配方法。首先构建层级标题模板,然后通过正则表达式生成候选标题,再根据有限状态机进行过滤,最后再根据评分结果,选择最佳模板的标题识别结果。整个方法不仅考虑了标题的本身特点,而且考虑了多级标题的连续性,保证了最后得出的标题识别结果不仅是正确的,而且是符合文档编号规则的;通过评分的竞争机制,保证了最终的标题识别结果是众多结果中的最优结果。
[0110] 本申请实施例还提供了一种标题识别装置。如图6所示,为根据本申请一实施例的标题识别装置的结构图。
[0111] 该标题识别装置,包括:
[0112] 获取和划分模块610,用于获取待识别文档并且将所述待识别文档划分为多个文本块。
[0113] 调用模块620,用于调用预先构建的多个层级标题模板。
[0114] 识别和确定模块630,用于针对每个所述层级标题模板,在多个所述文本块中,识别出与所述层级标题模板相匹配的文本块,并且根据与所述层级标题模板相匹配的文本块,确定所述层级标题模板对应的候选标题。
[0115] 过滤和评分模块640,用于针对每个所述层级标题模板对应的候选标题进行层级排序过滤,并根据所述层级排序过滤结果,对所述层级标题模板进行评分。
[0116] 确认模块650,用于将评分最高的所述层级标题模板对应的层级排序过滤结果,确认为所述待识别文档的标题识别结果。
[0117] 本申请实施例所述的装置的功能已经在上述方法实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
[0118] 本申请实施例还提供了一种标题识别设备,如图7所示,为根据本申请一实施例的标题识别设备的结构图。
[0119] 该标题识别设备包括:处理器710、通信接口720、存储器730和通信总线740。其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。
[0120] 存储器730,用于存放计算机程序。
[0121] 在本申请一个实施例中,处理器710,用于执行存储器730上所存放的程序时,实现前述任意一个方法实施例提供的标题识别方法,包括:获取待识别文档并且将所述待识别文档划分为多个文本块;调用预先构建的多个层级标题模板;针对每个所述层级标题模板,在多个所述文本块中,识别出与所述层级标题模板相匹配的文本块,并且根据与所述层级标题模板相匹配的文本块,确定所述层级标题模板对应的候选标题;针对每个所述层级标题模板对应的候选标题进行层级排序过滤,并根据所述层级排序过滤结果,对所述层级标题模板进行评分;将评分最高的所述层级标题模板对应的层级排序过滤结果,确认为所述待识别文档的标题识别结果。
[0122] 其中,所述层级标题模板包括具有级别高低属性的多个层级以及每个层级对应的标题样式;所述在多个所述文本块中,识别出与所述层级标题模板相匹配的文本块,包括:按照多个所述文本块在所述待识别文档中的顺序,将每个所述文本块与所述层级标题模板中各个层级对应的标题样式分别进行匹配;识别出与所述层级标题模板中的标题样式相匹配的文本块,并且,将识别出的文本块确定为其匹配的标题样式对应的层级。
[0123] 其中,所述根据与所述层级标题模板相匹配的文本块,确定所述层级标题模板对应的候选标题,包括:在与所述层级标题模板相匹配的文本块中,根据每个所述文本块对应的层级,生成每个所述层级对应的文本块集合;其中,每个所述文本块至少属于一个所述文本块集合;按照每个所述层级的级别高低,在高级别的层级对应的文本块集合中,过滤掉低级别的层级对应的文本块集合中的文本块,将所述高级别的层级对应的文本块集合中剩余的文本块作为所述高级别的层级对应的候选标题;其中,最低级别的层级对应的文本块集合中的文本块直接作为所述最低级别的层级对应的候选标题;将所述层级标题模板中各个级别分别对应的候选标题,确定为所述层级标题模板对应的候选标题。
[0124] 其中,所述针对每个所述层级标题模板对应的候选标题进行层级排序过滤,包括:针对每个所述层级标题模板,在所述层级标题模板对应的每个候选标题中,提取所述候选标题对应的标题序号;根据所述层级标题模板对应的各个所述候选标题分别对应的层级和标题序号,利用有限状态机,对所述层级标题模板对应的各个所述候选标题进行层级排序过滤,形成所述层级标题模板对应的具有树形结构的层级排序过滤结果。
[0125] 其中,所述利用有限状态机,对所述层级标题模板对应的各个所述候选标题进行层级排序过滤,包括:根据所述层级标题模板对应的各个所述候选标题在所述待识别文档中的顺序,顺序对每个所述候选标题执行如下操作:比较当前的所述候选标题对应的层级和后一个所述候选标题对应的层级,并且,比较当前的所述候选标题对应的标题序号和后一个所述候选标题对应的标题序号;如果当前的所述候选标题对应的层级和后一个所述候选标题对应的层级相同,则确定当前的所述候选标题对应的标题序号是否小于后一个所述候选标题对应的标题序号;如果小于,则保留当前的所述候选标题;如果不小于,则删除当前的所述候选标题;如果当前的所述候选标题对应的层级和后一个所述候选标题对应的层级不同,则确定当前的所述候选标题对应的层级和后一个所述候选标题对应的层级是否相邻;如果相邻,则确定当前的所述候选标题对应的标题序号是否小于前一个所述候选标题对应的标题序号;如果小于,则保留当前的所述候选标题;如果不小于或者不相邻,则删除当前的所述候选标题。
[0126] 其中,所述根据所述层级排序过滤结果,对所述层级标题模板进行评分,包括:确定所述层级排序过滤结果中包括的候选标题的数量,并且将所述数量作为所述层级标题模板的评分。
[0127] 其中,在所述获取待识别文档之后,在将所述待识别文档划分为多个文本块之前,还包括:设置标题序号对应的文本类型;在所述待识别文档中,将具有所述文本类型的文本内容进行文本样式的标准化处理。
[0128] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0129] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0130] 应理解的是,文中使用的术语仅出于描述特定示例实施方式的目的,而无意于进行限制。除非上下文另外明确地指出,否则如文中使用的单数形式“一”、“一个”以及“所述”也可以表示包括复数形式。术语“包括”、“包含”、“含有”以及“具有”是包含性的,并且因此指明所陈述的特征、步骤、操作、元件和/或部件的存在,但并不排除存在或者添加一个或多个其它特征、步骤、操作、元件、部件、和/或它们的组合。文中描述的方法步骤、过程、以及操作不解释为必须要求它们以所描述或说明的特定顺序执行,除非明确指出执行顺序。还应当理解,可以使用另外或者替代的步骤。
[0131] 以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

当前第1页 第1页 第2页 第3页