一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

家谱登记表的信息抽取方法及其装置、电子设备与流程

2021-12-04 01:44:00 来源:中国专利 TAG:


1.本发明涉及信息处理技术领域,具体而言,涉及一种家谱登记表的信息抽取方法及其装置、电子设备。


背景技术:

2.家谱是一种以表谱形式展现家族人物关系信息的特殊文献。家谱登记表中可以具有多种表格结构,相关技术中,没有针对具有多种表格结构的家谱登记表中的信息抽取技术,现有的技术中,往往是先利用人工先手动地核对家谱登记表中的信息,然后再手动地将信息逐个录入系统,因此,依赖人工实现家谱表格处理的方法,不仅浪费人力成本和时间成本,而且效率低下。
3.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本发明实施例提供了一种家谱登记表的信息抽取方法及其装置、电子设备,以至少解决相关技术中通过人工登记方式,无法自动地对具有不同表格结构的家谱登记表进行结构识别以及抽取人物信息,导致信息抽取效率低的技术问题。
5.根据本发明实施例的一个方面,提供了一种家谱登记表的信息抽取方法,包括:对家谱登记表模板进行预处理,得到处理后的家谱登记表模板;对所述处理后的家谱登记表模板中的表格进行解析,得到第一字典和第二字典,其中,所述第一字典保存每个表格的结构解析结果,所述第二字典以属性名单元格坐标为键,以所述属性名单元格相应的属性值单元格坐标为值;基于所述第一字典和所述第二字典,抽取已录入的所有家谱登记表的信息,得到第三字典,其中,所述第三字典保存每个所述家谱登记表各单元格中的人物信息。
6.可选地,对家谱登记表模板进行预处理,得到处理后的家谱登记表模板的步骤,包括:对所述家谱登记表模板中不同表格中属性值单元格进行标注,其中,若所述家谱登记表中有相同表格,则不需要重复标注;若所述家谱登记表模板中同一个表格中属性名单元格与属性值单元格的对应关系重复出现,则仅标注一个所述属性值单元格,对重复的其它属性值单元格不标注。
7.可选地,对所述处理后的家谱登记表模板中的表格进行解析,得到第一字典和第二字典的步骤,包括:分析所述家谱登记表模板中表格的初始行的表格块个数和表格列数,将分析结果保存到第一预设列表中;解析每个表格块中的表格结构,将解析结果保存到第二预设列表中,其中,在所述第二预设列表中保存单元格行数或者表格行数;将所述家谱登记表模板中所有表格对应的第二预设列表保存在第一字典,其中,所述第一字典的键为所述家谱登记表模板中每个表格的序号,值为所述第二预设列表;基于所述第一预设列表和所述第二预设列表,确定所述家谱登记表模板中每个表格的属性名单元格坐标和属性值单元格坐标,将所述属性名单元格坐标和所述属性值单元格坐标保存到第二字典中。
8.可选地,解析每个表格块中的表格结构,将解析结果保存到第二预设列表中的步
骤,包括:选取所述表格块中的任一表格块,以被选取的表格块中的第一行单元格内容作为基准比对内容,其中,所述被选取的表格块中不包括所述初始行;遍历所述被选取的表格块的所有行,若出现与所述基准比对内容相同的单元格内容,记录被遍历行的单元格行数,保存到所述第二预设列表;若没有出现与所述基准比对内容相同的单元格内容,将所述被选取的表格块中的被遍历行的行数保存到所述第二预设列表中。
9.可选地,基于所述第一预设列表和所述第二预设列表,确定所述家谱登记表模板中每个表格的属性名单元格坐标和属性值单元格坐标的步骤,包括:基于所述述第一预设列表和所述第二预设列表,遍历所述家谱登记表模板中每个表格的单元格;提取每个所述单元格的坐标数值,得到每个单元格的行坐标与列坐标;基于所述行坐标与列坐标,读取单元格的内容,判断所述单元格是否为属性名单元格,将判断结果保存到第四字典中;基于所述第四字典,确定所述家谱登记表模板中每个表格的属性名单元格坐标和属性值单元格坐标。
10.可选地,基于所述第一字典和所述第二字典,抽取已录入的所有家谱登记表的信息,得到第三字典的步骤,包括:将所述第一字典和所述第二字典转换为第一文件和第二文件;读取所述第一文件和所述第二文件,生成第五字典和第三预设列表,其中,所述第三预设列表中的元素为所述第一字典中的值;遍历已录入的所述家谱登记表中的每个表格,得到每个所述表格的表格块个数和表格列数,保存到第一预设列表;基于所述第三预设列表,解析所述表格的表格结构,并将解析得到的表格结构保存到第四预设列表;基于所述第一预设列表和所述第四预设列表,抽取所述家谱登记表中的信息,保存到第三字典。
11.可选地,基于所述第一预设列表和所述第四预设列表,抽取所述家谱登记表中的信息,保存到第三字典的步骤,包括:基于所述第一预设列表,筛选出所述家谱登记表中的表格中的未重复的第一类型表格块,其中,所述第一类型表格块用于指示多表格列对应的块;基于所述第四预设列表,对于每个所述未重复的表格块,筛选出未重复的第二类型表格块,其中,所述第二类型表格块用于指示多表格行对应的块;对所述未重复的第二类型表格块进行遍历,得到所述未重复的第二类型表格块中的单元格内容,保存到第三字典中。
12.根据本发明实施例的另一方面,还提供了一种家谱登记表的信息抽取装置,包括:处理单元,用于对家谱登记表模板进行预处理,得到处理后的家谱登记表模板;解析单元,用于对所述处理后的家谱登记表模板中的表格进行解析,得到第一字典和第二字典,其中,所述第一字典保存每个表格的结构解析结果,所述第二字典以属性名单元格坐标为键,以所述属性名单元格相应的属性值单元格坐标为值;抽取单元,用于基于所述第一字典和所述第二字典,抽取已录入的所有家谱登记表的信息,得到第三字典,其中,所述第三字典保存每个所述家谱登记表各单元格中的人物信息。
13.可选地,所述处理单元包括:第一标注模块,用于对所述家谱登记表模板中不同表格中属性值单元格进行标注,其中,若所述家谱登记表中有相同表格,则不需要重复标注;第二标注模块,用于若所述家谱登记表模板中同一个表格中属性名单元格与属性值单元格的对应关系重复出现,则仅标注一个所述属性值单元格,对重复的其它属性值单元格不标注。
14.可选地,所述解析单元包括:第一分析模块,用于分析所述家谱登记表模板中表格的初始行的表格块个数和表格列数,将分析结果保存到第一预设列表中;第一解析模块,用
于解析每个表格块中的表格结构,将解析结果保存到第二预设列表中,其中,在所述第二预设列表中保存单元格行数或者表格行数;第一保存模块,用于将所述家谱登记表模板中所有表格对应的第二预设列表保存在第一字典,其中,所述第一字典的键为所述家谱登记表模板中每个表格的序号,值为所述第二预设列表;第一确定模块,用于基于所述第一预设列表和所述第二预设列表,确定所述家谱登记表模板中每个表格的属性名单元格坐标和属性值单元格坐标,将所述属性名单元格坐标和所述属性值单元格坐标保存到第二字典中。
15.可选地,所述第一解析模块包括:第一选取子模块,用于选取所述表格块中的任一表格块,以被选取的表格块中的第一行单元格内容作为基准比对内容,其中,所述被选取的表格块中不包括所述初始行;第一遍历子模块,用于遍历所述被选取的表格块的所有行,若出现与所述基准比对内容相同的单元格内容,记录被遍历行的单元格行数,保存到所述第二预设列表;第一保存子模块,用于若没有出现与所述基准比对内容相同的单元格内容,将所述被选取的表格块中的被遍历行的行数保存到所述第二预设列表中。
16.可选地,所述第一确定模块包括:第二遍历子模块,用于基于所述述第一预设列表和所述第二预设列表,遍历所述家谱登记表模板中每个表格的单元格;第一提取子模块,用于提取每个所述单元格的坐标数值,得到每个单元格的行坐标与列坐标;第一读取子模块,用于基于所述行坐标与列坐标,读取单元格的内容,判断所述单元格是否为属性名单元格,将判断结果保存到第四字典中;第一确定子模块,用于基于所述第四字典,确定所述家谱登记表模板中每个表格的属性名单元格坐标和属性值单元格坐标。
17.可选地,所述抽取单元包括:第一转换模块,用于将所述第一字典和所述第二字典转换为第一文件和第二文件;第一生成模块,用于读取所述第一文件和所述第二文件,生成第五字典和第三预设列表,其中,所述第三预设列表中的元素为所述第一字典中的值;第一遍历模块,用于遍历已录入的所述家谱登记表中的每个表格,得到每个所述表格的表格块个数和表格列数,保存到第一预设列表;第二解析模块,用于基于所述第三预设列表,解析所述表格的表格结构,并将解析得到的表格结构保存到第四预设列表;第一抽取模块,用于基于所述第一预设列表和所述第四预设列表,抽取所述家谱登记表中的信息,保存到第三字典。
18.可选地,所述第一抽取模块包括:第一筛选子模块,用于基于所述第一预设列表,筛选出所述家谱登记表中的表格中的未重复的第一类型表格块,其中,所述第一类型表格块用于指示多表格列对应的块;第二筛选子模块,用于基于所述第四预设列表,对于每个所述未重复的表格块,筛选出未重复的第二类型表格块,其中,所述第二类型表格块用于指示多表格行对应的块;第三遍历子模块,用于对所述未重复的第二类型表格块进行遍历,得到所述未重复的第二类型表格块中的单元格内容,保存到第三字典中。
19.根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的家谱登记表的信息抽取方法。
20.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项所述的家谱登记表的信息抽取方法。
21.在本技术中,对家谱登记表模板进行预处理,得到处理后的家谱登记表模板,之后
对处理后的家谱登记表模板中的表格进行解析,得到第一字典和第二字典,其中,第一字典保存每个表格的结构解析结果,第二字典以属性名单元格坐标为键,以属性名单元格相应的属性值单元格坐标为值,然后基于第一字典和第二字典,抽取已录入的所有家谱登记表的信息,得到第三字典,其中,第三字典保存每个家谱登记表各单元格中的人物信息。在本实施例中,采用一种针对具有不同表格结构的家谱登记表的自动抽取信息的方法,通过计算机自动化解析表格结构,从而快速识别家谱登记表结构并抽取其中的人物信息,这样不仅节省了人力和时间成本,而且提高了抽取信息的准确度与效率,进而解决了相关技术中通过人工登记方式,无法自动地对具有不同表格结构的家谱登记表进行结构识别以及抽取人物信息,导致信息抽取效率低的技术问题。
附图说明
22.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
23.图1是根据本发明实施例的一种可选的家谱登记表的信息抽取方法的流程图;
24.图2是根据本发明实施例的一种家谱登记表的信息抽取装置的示意图。
具体实施方式
25.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
26.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
27.为便于本领域技术人员理解本发明,下面对本发明各实施例中涉及的部分术语或名词做出解释:
28.家谱登记表模板:是指登记表中的属性名不为空,属性值为空的家谱登记表。
29.家谱登记表:是指已经填入信息的,属性名不为空,并且属性值不全为空的家谱登记表。
30.本发明下述各实施例中的涉及的家谱登记表可以具有相同结构表格或多种不同结构表格,家谱登记表中所填入的信息不仅可以是同一家族中人物信息,也可以是各个学校、各个医院或者各个公司等某个集体或组织机构中的人物信息。在本发明实施例中提出了一种针对具有多种结构的家谱登记表的自动抽取信息的方法,通过提出的解析表格结构方法和抽取信息方法可以自动的识别家谱登记表结构并抽取出其中的人物信息,最后直接
方便地录入到系统中,不仅节省了人力和时间成本,而且抽取的信息的准确度也非常高。
31.根据本发明实施例,提供了一种家谱登记表的信息抽取方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
32.实施例1
33.图1是根据本发明实施例的一种可选的家谱登记表的信息抽取方法的流程图,如图1所示,该方法包括如下步骤:
34.步骤s102,对家谱登记表模板进行预处理,得到处理后的家谱登记表模板。
35.步骤s104,对处理后的家谱登记表模板中的表格进行解析,得到第一字典和第二字典,其中,第一字典保存每个表格的结构解析结果,第二字典以属性名单元格坐标为键,以属性名单元格相应的属性值单元格坐标为值。
36.步骤s106,基于第一字典和第二字典,抽取已录入的所有家谱登记表的信息,得到第三字典,其中,第三字典保存每个家谱登记表各单元格中的人物信息。
37.通过上述步骤,可以对家谱登记表模板进行预处理,得到处理后的家谱登记表模板,之后对处理后的家谱登记表模板中的表格进行解析,得到第一字典和第二字典,其中,第一字典保存每个表格的结构解析结果,第二字典以属性名单元格坐标为键,以属性名单元格相应的属性值单元格坐标为值,然后基于第一字典和第二字典,抽取已录入的所有家谱登记表的信息,得到第三字典,其中,第三字典保存每个家谱登记表各单元格中的人物信息。在本实施例中,采用一种针对具有不同表格结构的家谱登记表的自动抽取信息的方法,通过计算机自动化解析表格结构,从而快速识别家谱登记表结构并抽取其中的人物信息,这样不仅节省了人力和时间成本,而且提高了抽取信息的准确度与效率,进而解决了相关技术中通过人工登记方式,无法自动地对具有不同表格结构的家谱登记表进行结构识别以及抽取人物信息,导致信息抽取效率低的技术问题。
38.下面结合上述各步骤对本发明实施例进行详细说明。
39.步骤s102,对家谱登记表模板进行预处理,得到处理后的家谱登记表模板。
40.在本发明实施例中,可以先对家谱登记表模板进行处理,筛选出相同的表格或者同一表格中以重复规律出现的相应的属性名和属性值单元格,以免对这些重复的结构多次处理,降低效率。
41.可选的,对家谱登记表模板进行预处理,得到处理后的家谱登记表模板的步骤,包括:对家谱登记表模板中不同表格中属性值单元格进行标注,其中,若家谱登记表中有相同表格,则不需要重复标注;若家谱登记表模板中同一个表格中属性名单元格与属性值单元格的对应关系重复出现,则仅标注一个属性值单元格,对重复的其它属性值单元格不标注。
42.在本发明实施例中,如表1所示,可以先对家谱登记表模板中的不同表格中的属性值单元格标注上不同的标号(例如数字、字母等,该实施例以数字作为标号进行示意性说明),如果同一份家谱登记表中出现相同的表格,则不需要重复标注。
43.表1
[0044][0045][0046]
如表2所示,如果在家谱登记表的同一个表格内,对应的属性名单元格与属性值单元格重复出现,则只需要标注一次,其余重复的不用标注。
[0047]
表2
[0048][0049]
步骤s104,对处理后的家谱登记表模板中的表格进行解析,得到第一字典和第二字典,其中,第一字典保存每个表格的结构解析结果,第二字典以属性名单元格坐标为键,以属性名单元格相应的属性值单元格坐标为值。
[0050]
在本发明实施例中,第一字典(可记为字典allsametext)用于保存每个表格解析后的结果,其中,字典键为每个表格的序号(例如,可以从0开始对家谱登记表模板中的表格进行标号,如此第一张表格的序号为0,以此类推,在此不再赘述),值为相应表格的解析结
果(可记为列表sametext)。第二字典(可记为字典propertydict),以相应的属性名单元格坐标和属性值单元格坐标分别作为键和值。
[0051]
可选的,对处理后的家谱登记表模板中的表格进行解析,得到第一字典和第二字典的步骤,包括:分析家谱登记表模板中表格的初始行的表格块个数和表格列数,将分析结果保存到第一预设列表中;解析每个表格块中的表格结构,将解析结果保存到第二预设列表中,其中,在第二预设列表中保存单元格行数或者表格行数;将家谱登记表模板中所有表格对应的第二预设列表保存在第一字典,其中,第一字典的键为家谱登记表模板中每个表格的序号,值为第二预设列表;基于第一预设列表和第二预设列表,确定家谱登记表模板中每个表格的属性名单元格坐标和属性值单元格坐标,将属性名单元格坐标和属性值单元格坐标保存到第二字典中。
[0052]
在本发明实施例中,对于家谱登记表模板中每一个表格,可以分析判断每个表格中的初始行(可以对表格中的每一行进行标号,例如以0开始进行标号,那么初始行的标号为0)中分为多少个表格块数,并将分析判断结果保存到第一预设列表(可记为列表kuai_num)中,具体做法如下:遍历初始行中所有单元格,以表格中初始行初始列的单元格内容作为基准比对内容;如果初始行中的某一列的单元格内容与基准比对内容相同,则将该列数添加到列表kuai_num中,最后将表格的列数也添加到列表kuai_num中;之后,可以解析每个表格块中的表格结构,将解析结果保存到第二预设列表中(可记为列表sametext),然后基于列表kuai_num和列表sametext,能够得到家谱登记表模板中每个表格的属性名单元格坐标和属性值单元格坐标。
[0053]
可选的,解析每个表格块中的表格结构,将解析结果保存到第二预设列表中的步骤,包括:选取表格块中的任一表格块,以被选取的表格块中的第一行单元格内容作为基准比对内容,其中,被选取的表格块中不包括初始行;遍历被选取的表格块的所有行,若出现与基准比对内容相同的单元格内容,记录被遍历行的单元格行数,保存到第二预设列表;若没有出现与基准比对内容相同的单元格内容,将被选取的表格块中的被遍历行的行数保存到第二预设列表中。
[0054]
在本发明实施例中,解析每个表格块中的表格结构,用于判断每个表格快中的表格结构是否有重复,具体做法如下:任意选取一个表格块(可记为a),以表格块a中的第一行的单元格内容作为基准比对内容(因为分析表格结构时不包括初始行的结构,所以表格块a中不包括初始行,即从第一行开始进行分析,第一行的标号为1);遍历表格块a的行数,如果遍历过程中出现与基准比对内容完全相同的单元格内容,则记录下该单元格的行数保存在列表sametext(即第二预设列表)中直至遍历结束;如果表格结构没有重复(即列表sametext中只有一个元素),则向列表sametext中添加一个元素,该元素为该表格行数。
[0055]
可选的,基于第一预设列表和第二预设列表,确定家谱登记表模板中每个表格的属性名单元格坐标和属性值单元格坐标的步骤,包括:基于述第一预设列表和第二预设列表,遍历家谱登记表模板中每个表格的单元格;提取每个单元格的坐标数值,得到每个单元格的行坐标与列坐标;基于行坐标与列坐标,读取单元格的内容,判断单元格是否为属性名单元格,将判断结果保存到第四字典中;基于第四字典,确定家谱登记表模板中每个表格的属性名单元格坐标和属性值单元格坐标。
[0056]
在本发明实施例中,单元格可能是多行多列的,在遍历每个单元格时,可判断该单
元格所占的跨度(即几行几列),如果单元格内容相同则认为是同一个单元格,跳过相同单元格,具体做法如下:
[0057]
对表格进行双重循环遍历,外层循环行数r的范围为从1到sametext[1]

sametext[0] 1(列表中的元素下标以0开始进行标注,sametext[1]表示列表sametext中的第二个元素,sametext[0]表示列表sametext中的第一个元素),内层循环列数c的范围为从kuai_num[j]到kuai_num[j 1](表示内循环的范围为从列表kuai_num的一个元素值到其下一个元素值,即每次内循环的次数为每个表格块中的列数),其中,j的范围为从0到len(kuai_num)

1,len(kuai_num)表示列表kuai_num的长度,即其有多少个元素,从而得到不同的单元格的行坐标和列坐标。
[0058]
之后可以将行坐标和列坐标的值进行转换为一个值(例如,行坐标乘以100加上列坐标)保存到列表flag中,然后基于列表flag,判断所有单元格中哪些是属性名和属性值以及属性名和属性值的对应关系,具体做法如下:
[0059]
遍历列表flag,得到每个元素flag[i](表示列表flag第i个元素)的行、列坐标,然后根据行、列坐标得到该单元格内容,如果该单元格内容为数字则is_property[flag[i]]=0(表示判断元素flag[i]即相应单元格是否为属性名,如果是属性名则记为1,否则记为0表示为属性值,例如is_property[a]=0表示a为属性值),否则is_property[flag[i]]=1,从而得到字典is_property(即第四字典);
[0060]
设置字典check用于判断列表flag中元素是否已经被使用(如果check[flag[i]]=0表示flag[i]还未被使用),字典check初始化为0;
[0061]
遍历字典is_property,如果is_property[flag[i]]=1时,取出flag[i]的行坐标row和列坐标col以及pos=(row 1)*100 col(表示当前元素flag[i]代表的单元格在表格中所对应的下一行单元格在列表flag中的元素值),若is_property[flag[i 1]]=0,property_belong[flag[i]]=flag[i 1](表示元素flag[i]和元素flag[i 1]所代表的单元格是相应的属性名和属性值,即属性名flag[i]的属性值为flag[i 1]),且设置check[flag[i]]=1,check[flag[i 1]]=1(表示元素flag[i]和元素flag[i 1]已经被使用);若is_property[pos]=0,则property_belong[flag[i]]=pos(表示属性名flag[i]的属性值为pos),且设置check[flag[i]]=1,check[pos]=1;
[0062]
最后将对应的属性名和属性值坐标保存在字典propertydict中。
[0063]
步骤s106,基于第一字典和第二字典,抽取已录入的所有家谱登记表的信息,得到第三字典,其中,第三字典保存每个家谱登记表各单元格中的人物信息。
[0064]
在本发明实施例中,基于得到的字典allsametext(即第一字典)和字典propertydict(即第二字典),能够得到第三字典(可记为字典resultdict),用于保存每个家谱登记表各单元格中的人物信息。
[0065]
可选的,基于第一字典和第二字典,抽取已录入的所有家谱登记表的信息,得到第三字典的步骤,包括:将第一字典和第二字典转换为第一文件和第二文件;读取第一文件和第二文件,生成第五字典和第三预设列表,其中,第三预设列表中的元素为第一字典中的值;遍历已录入的家谱登记表中的每个表格,得到每个表格的表格块个数和表格列数,保存到第一预设列表;基于第三预设列表,解析表格的表格结构,并将解析得到的表格结构保存到第四预设列表;基于第一预设列表和第四预设列表,抽取家谱登记表中的信息,保存到第
三字典。
[0066]
在本发明实施例中,可以将得到的字典allsametext(即第一字典)和字典propertydict(即第二字典)转换为sametext_pos.json(即第一文件)和property_pos.json(即第二文件)保存到到本地中,以方便后续抽取家谱登记表信息。
[0067]
之后读取第一文件和第二文件,生成字典典property_dict(即第五字典,其保存的内容与第二字典的内容相同)和列表sametext1(即第三预设列表,其中的元素为字典allsametext中的值)。
[0068]
然后遍历家谱登记表中的每个表格,得到每个表格的列表块个数保存在列表kuai_num(即第一预设列表)中,记l=len(sametext1)(表示列表sametext1的长度,即该家谱登记表中不同表格的个数),当循环下标i<l

1(i表示表格的序号)时,表示表格还没有重复出现,此时记sametext2[i]=sametext1[i](表示列表sametext2第i个元素为列表sametext1中第i个元素[i]);若i>=l

1时,表示表格已经重复出现,此时记sametext2[i]=sametext1[i%l](表示当循环到重复的表格时,此时列表sametext2第i个元素为列表sametext1中第i对l取余个元素,即表示当前表格的结构与其重复的表格结构是相同的),得到所有表格的表格结构并保存到列表sametext2(即第四预设列表)中。
[0069]
可选的,基于第一预设列表和第四预设列表,抽取家谱登记表中的信息,保存到第三字典的步骤,包括:基于第一预设列表,筛选出家谱登记表中的表格中的未重复的第一类型表格块,其中,第一类型表格块用于指示多表格列对应的块;基于第四预设列表,对于每个未重复的表格块,筛选出未重复的第二类型表格块,其中,第二类型表格块用于指示多表格行对应的块;对未重复的第二类型表格块进行遍历,得到未重复的第二类型表格块中的单元格内容,保存到第三字典中。
[0070]
在本发明实施例中,需要根据得到的列表kuai_num和列表sametext2的长度判断该家谱登记表的表格结构,以提取其中的信息。
[0071]
可以先根据列表kuai_num的长度判断表格是否具有重复的表格块(即第一类型表格块),之后根据列表sametext2的长度判断表格中的每一个表格块是否具有重复的行表格块(即第二类型表格块),具体做法如下:
[0072]
若len(kuai_num)=2,表示该表格没有重复的表格块,分为如下两种情况:
[0073]
第一种情况,若len(sametext)=2,则表示该表格此时内部没有重复的行表格块,且只有一个表格块,此时只需要遍历字典property_dict,得到每个单元格的行和列坐标,然后取出该单元格的内容,并保存在字典resultdict(即第三字典)中;
[0074]
第二种情况,若len(sametext)>2,则表示该表格内部有重复的行表格块,且只有一个表格块,此时先根据循环下标i(该下标i表示每个行表格块的序号)得到该表格内部每个行表格块的属性坐标pos=propertydict[i],然后记d=sametext2[1]

sametext2[0](表示每一个行表格块的行数),rows为该表格的总行数,之后设置下标sindex=0(表示表格每行的行数序号),当sindex<rows

1时,取出表格内每个行表格块的单元格内容,然后sindex =d(表示跳过重复的行表格块继续取出下一个行表格块的单元格内容),并将结果保存在字典resultdict中。
[0075]
若len(kuai_num)>2,表示该表格有重复的表格块,记addtimes=len(sametext2),表示该表格里每个表格块分为几个重复的行表格块。先由表格块序号kuai_
num[j]得到此时表格块的内部属性坐标字典pos=property_dict[kuai_num[j]],然后由pos可以得到每个表格块的第一个行表格块中的单元格内容。同理,对每个表格块里的其他重复行表格块的单元格坐标等于第一个行表格块中相同位置的单元格的行坐标加上d,列坐标不变即可获得,然后对每一个不重复的行表格块中的单元格进行遍历,该表格块遍历完成后,选择下一个表格块进行同样的遍历,最后将结果保存在字典resultdict中。
[0076]
本发明实施例提出的针对不同的家谱登记表中的不同结构的信息抽取方法,解决了多种家谱登记表的结构识别和人物信息抽取问题,同时,对于需要处理家谱信息的家谱公司,本发明实施例提出的自动化解析家谱登记表的方法极大程度上节省了开发成本、人力以及时间,提高了工作效率。
[0077]
下面通过另一种可选的实施例来说明本发明。
[0078]
实施例2
[0079]
本实施例中提供的一种家谱登记表的信息抽取装置包含了多个实施单元,每个实施单元对应于上述实施例一中的各个实施步骤。
[0080]
图2是根据本发明实施例的一种家谱登记表的信息抽取装置的示意图,如图2所示,该信息抽取装置可以包括:处理单元20,解析单元22,抽取单元24,其中,
[0081]
处理单元20,用于对家谱登记表模板进行预处理,得到处理后的家谱登记表模板;
[0082]
解析单元22,用于对处理后的家谱登记表模板中的表格进行解析,得到第一字典和第二字典,其中,第一字典保存每个表格的结构解析结果,第二字典以属性名单元格坐标为键,以属性名单元格相应的属性值单元格坐标为值;
[0083]
抽取单元24,用于基于第一字典和第二字典,抽取已录入的所有家谱登记表的信息,得到第三字典,其中,第三字典保存每个家谱登记表各单元格中的人物信息。
[0084]
上述信息抽取装置,可以通过处理单元20对家谱登记表模板进行预处理,得到处理后的家谱登记表模板,之后通过解析单元22对处理后的家谱登记表模板中的表格进行解析,得到第一字典和第二字典,其中,第一字典保存每个表格的结构解析结果,第二字典以属性名单元格坐标为键,以属性名单元格相应的属性值单元格坐标为值,然后通过抽取单元24基于第一字典和第二字典,抽取已录入的所有家谱登记表的信息,得到第三字典,其中,第三字典保存每个家谱登记表各单元格中的人物信息。在本实施例中,采用一种针对具有不同表格结构的家谱登记表的自动抽取信息的方法,通过计算机自动化解析表格结构,从而快速识别家谱登记表结构并抽取其中的人物信息,这样不仅节省了人力和时间成本,而且提高了抽取信息的准确度与效率,进而解决了相关技术中通过人工登记方式,无法自动地对具有不同表格结构的家谱登记表进行结构识别以及抽取人物信息,导致信息抽取效率低的技术问题。
[0085]
可选的,处理单元包括:第一标注模块,用于对家谱登记表模板中不同表格中属性值单元格进行标注,其中,若家谱登记表中有相同表格,则不需要重复标注;第二标注模块,用于若家谱登记表模板中同一个表格中属性名单元格与属性值单元格的对应关系重复出现,则仅标注一个属性值单元格,对重复的其它属性值单元格不标注。
[0086]
可选的,解析单元包括:第一分析模块,用于分析家谱登记表模板中表格的初始行的表格块个数和表格列数,将分析结果保存到第一预设列表中;第一解析模块,用于解析每个表格块中的表格结构,将解析结果保存到第二预设列表中,其中,在第二预设列表中保存
单元格行数或者表格行数;第一保存模块,用于将家谱登记表模板中所有表格对应的第二预设列表保存在第一字典,其中,第一字典的键为家谱登记表模板中每个表格的序号,值为第二预设列表;第一确定模块,用于基于第一预设列表和第二预设列表,确定家谱登记表模板中每个表格的属性名单元格坐标和属性值单元格坐标,将属性名单元格坐标和属性值单元格坐标保存到第二字典中。
[0087]
可选的,第一解析模块包括:第一选取子模块,用于选取表格块中的任一表格块,以被选取的表格块中的第一行单元格内容作为基准比对内容,其中,被选取的表格块中不包括初始行;第一遍历子模块,用于遍历被选取的表格块的所有行,若出现与基准比对内容相同的单元格内容,记录被遍历行的单元格行数,保存到第二预设列表;第一保存子模块,用于若没有出现与基准比对内容相同的单元格内容,将被选取的表格块中的被遍历行的行数保存到第二预设列表中。
[0088]
可选的,第一确定模块包括:第二遍历子模块,用于基于述第一预设列表和第二预设列表,遍历家谱登记表模板中每个表格的单元格;第一提取子模块,用于提取每个单元格的坐标数值,得到每个单元格的行坐标与列坐标;第一读取子模块,用于基于行坐标与列坐标,读取单元格的内容,判断单元格是否为属性名单元格,将判断结果保存到第四字典中;第一确定子模块,用于基于第四字典,确定家谱登记表模板中每个表格的属性名单元格坐标和属性值单元格坐标。
[0089]
可选的,抽取单元包括:第一转换模块,用于将第一字典和第二字典转换为第一文件和第二文件;第一生成模块,用于读取第一文件和第二文件,生成第五字典和第三预设列表,其中,第三预设列表中的元素为第一字典中的值;第一遍历模块,用于遍历已录入的家谱登记表中的每个表格,得到每个表格的表格块个数和表格列数,保存到第一预设列表;第二解析模块,用于基于第三预设列表,解析表格的表格结构,并将解析得到的表格结构保存到第四预设列表;第一抽取模块,用于基于第一预设列表和第四预设列表,抽取家谱登记表中的信息,保存到第三字典。
[0090]
可选的,第一抽取模块包括:第一筛选子模块,用于基于第一预设列表,筛选出家谱登记表中的表格中的未重复的第一类型表格块,其中,第一类型表格块用于指示多表格列对应的块;第二筛选子模块,用于基于第四预设列表,对于每个未重复的表格块,筛选出未重复的第二类型表格块,其中,第二类型表格块用于指示多表格行对应的块;第三遍历子模块,用于对未重复的第二类型表格块进行遍历,得到未重复的第二类型表格块中的单元格内容,保存到第三字典中。
[0091]
上述的信息抽取装置还可以包括处理器和存储器,上述处理单元20,解析单元22,抽取单元24等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
[0092]
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来抽取已录入的所有家谱登记表的信息。
[0093]
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
[0094]
本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初
始化有如下方法步骤的程序:对家谱登记表模板进行预处理,得到处理后的家谱登记表模板,之后对处理后的家谱登记表模板中的表格进行解析,得到第一字典和第二字典,然后基于第一字典和第二字典,抽取已录入的所有家谱登记表的信息,得到第三字典,其中,第三字典保存每个家谱登记表各单元格中的人物信息。
[0095]
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的家谱登记表的信息抽取方法。
[0096]
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的家谱登记表的信息抽取方法。
[0097]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0098]
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0099]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0100]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0101]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0102]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0103]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献