一种面向非结构化表格文档的实体与关系抽取方法
技术领域
本发明涉及知识图谱、人工智能等领域,特别给出了一种面向非结构化表格文档的实体与关系抽取方法。
背景技术
知识图谱本质上是一种大规模的语义网络,旨在描述现实世界中存在的各种实体、概念及关系,作为大数据时代的重要知识表示方法,知识图谱已经成为人工智能的关键技术之一,被广泛应用于语义搜索、智能问答、智能推荐等领域。知识图谱的基本组织形式是(实体,关系,实体)或(实体,属性,属性值),实体间或实体属性值间通过相关链接构成大规模的结构化网络,即知识图谱。知识图谱将世界上所有人物、地名等专有名词表示为实体,将实体之间的内在联系表示为关系,旨在将数据库中的海量知识表示为实体之间的利用关系。
实体抽取作为三元组抽取中的子任务,也是最基础的一步,指的是从原始语料中自动识别出指定类型的命名实体,如国家名、人名、地名等。关系抽取是实体抽取基础上的一个任务,其目的在于从非结构化的文本信息中挖掘出实体间的语义关联,促进知识图谱的构建,从而为用户提供更加精准的搜索服务、知识问答等。曾道建等(江西师范大学学报(自然科学版),2013)从非结构化文本中抽取给定实体的属性及属性值,将属性抽取看作是一个序列标注问题,充分利用百度百科信息框已有的结构化内容,对非结构化文本回标自动产生训练数据,得到训练语料后,结合中文特点,选取多维度特征训练序列标注模型,并利用上下文信息进一步提高系统性能,进而在非结构化文本中抽取出实体的属性及属性值。冯建周等(电子学报,2019)提出一种基于改进注意力机制的卷积神经网络实体关系抽取模型,该模型针对包含同一实体对的句子集合,从中尽可能地找出所有体现该实体对关系的正实例,构建组合句子向量,抛弃可能的噪声句子,从而最大程度地降低噪声句子的影响又能充分利用正实例的语义信息。万常选等(计算机学报,2019)研究了基于协陪义动词的中文隐式实体关系抽取问题,将机器学习方法与规则相结合,借助于显式实体关系对隐式实体关系进行推理,利用依存句法分析,设计了协陪义候选句型分类算法、相应的协陪义成分识别算法三种句内以及基于协陪义动词的隐式实体关系推理规则;并建立不同句子中协陪义动词的主体成分与客体成分之间的联系,实现句间基于协陪义动词的隐式实体关系抽取。S Zheng等(Neurocomputing,2017)提出了一种混合神经网络模型来提取实体及其关系,而不需要任何手工特征,该混合神经网络包含一个用于实体抽取的双向编译码器LSTM模块(BiLSTM-ED)和一个用于关系分类的CNN模块, BiLSTM-ED中实体的上下文信息进一步传递到CNN模块,改进了关系分类。
发明内容
非结构化表格文档被广泛应用于政府部门和企事业单位,其中存储了大量的数据,从非结构化表格文档中抽取实体和关系是知识图谱面临的技术难点。为此,本发明提出一种面向非结构化表格文档的实体与关系抽取方法,利用表格中的位置特征和文本规则精准地抽取出文档中的实体、关系、属性及属性值,形成三元组集合,用于构建知识图谱。
为了解决上述技术问题本发明提供如下的技术方案:
一种面向非结构化表格文档的实体与关系抽取方法,包括以下步骤:
1)非结构化表格文档划分,过程如下:
表格中的标题区指数据的性质和类别,数据区是指标题区对应的实际取值,根据表格中标题区与数据区的对应关系,将表格文档划分为单值表格和多值表格,其特征为:
1.1)单值表格:标题区与数据区是一对一关系,且相邻;
1.2)多值表格:标题区与数据区是一对多关系,标题区后紧跟着是连续的标题区,标题区个数与每行的数据区个数相同,且一一对应;
根据以上特征,将文档切分为离散的单值表格和多值表格;
2)单值表格知识抽取,过程如下:
利用标题区与数据区的位置特征,从单值表格中抽取实体、关系、属性及属性值并组织成三元组集合形式,输入为单值表格文档,输出为结构化三元组集合,步骤如下:
(2.1):若表格文档的格式是PDF,则利用PDFelement软件将PDF格式转换成word格式;
(2.2):利用Apache poi插件按单元格的行列值大小依次对表格进行解析,定位出所有标题区的行列坐标,设标题区的坐标为(x,y),那么其对应的数据区的坐标为(x,y+1);
(2.3):抽取出标题区及其数据区,组织成二元组集合;
(2.4):对二元组集合进行实体、关系、属性及属性值的自动标注,标注规则如下:
2.4.1)若标题区含有类似“姓名”、“名称”、“人”的指代命名实体的字符串,则对应的数据区被标注为实体,否则标注为属性值;
2.4.2)若关于实体A的表格中有标题区X,且对应的数据区B被标注成实体,则X被标注为实体A与实体B的关系,但若数据区B被标注为属性值,则X被标注为实体A的属性;
(2.5):完成实体、关系、属性及属性值的标注后,按照(实体,关系,实体)或(实体,属性,属性值)的形式组织这些知识,得到最终的三元组集合;
3)多值表格知识抽取,过程如下:
利用标题区与数据区的位置特征,从多值表格中抽取实体、关系、属性及属性值并组织成三元组集合形式,输入为多值表格文档,输出为结构化三元组集合,
步骤如下:
(3.1):若表格文档的格式是PDF,则利用PDFelement软件将PDF格式转换成word格式;
(3.2):利用Apache poi插件按单元格的行列值大小依次对表格进行解析,定位出所有标题区的行列坐标,设标题区的坐标为(x,y)、(x,y+1)、(x,y+2), 那么其对应的数据区的第一条数据坐标为(x+1,y)、(x+1,y+1)、(x+1,y+2),第二条数据坐标为(x+2,y)、(x+2,y+1)、(x+2,y+2),以此类推;
(3.3):根据数据区字符串是否包含空行、序号或固定格式来执行不同的操作:
3.3.1)若不包含空行、序号或固定格式,表明数据区是一个独立的字符串,可直接按照标题区和数据区的坐标一一对应得到二元组集合;
3.3.2)若包含空行、序号或固定格式,表明数据区不是独立的字符串,也就是说两条数据在进行单元格解析时错误的被当成一条,此时需对该数据区进行字符串语义分割并按照顺序进行自动编号,语义分割规则如下:
3.3.2.1)若字符串包含空行,则第一条数据应从第一个字符开始截取至空行,第二条数据从空行开始截取至下一空行或字符串末尾;
3.3.2.2)若字符串包含类似“1、”,“2、”的序号,则第一条数据应截取至“2、”前一个字符,第二条数据从“2、”开始截取至下一标号开始的字符或字符串末尾;
3.3.2.3)若字符串中包含固定格式,则根据该格式利用正则表达式将字符串分割成若干个数据区;
(3.4):抽取出标题区及其数据区,组织成二元组集合;
(3.5):对二元组集合进行实体、关系及属性的自动标注,标注规则如下:
3.5.1)若标题区含有类似“姓名”、“名称”、“人”的指代命名实体的字符串,则对应的数据区被标注为实体,否则标注为属性值;
3.5.2)对两个实体进行关系标注时,先抽取出同时包含指代两个实体的字符串,定位每个实体在字符串中的位置,截取两个实体间的字符串,将其标注为实体间的关系;
3.5.3)若关于实体A的表格中有标题区X,且对应的数据区B被标注为属性值,则X被标注为实体A的属性;
(3.6):完成实体、关系、属性及属性值的标注后,按照(实体,关系,实体)或(实体,属性,属性值)的形式组织这些知识,得到最终的三元组集合。
本发明的有益效果是:本发明给出的实体与关系抽取方法能够将非结构化表格文档的信息处理成结构化数据,并准确的抽取出其中的实体、关系、属性及属性值,形成三元组集合,为进一步构建知识图谱的工作奠定了良好的基础。
附图说明
图1是完整的表格文档。
图2是单值表格。
图3是多值表格。
图4是本发明的多值表格知识抽取算法框架图。
具体实施方式
下面结合附图对本发明的作进一步说明。
参照图1~图4,一种面向非结构化表格文档的实体与关系抽取方法,包括以下步骤:
1)非结构化表格文档划分,过程如下:
根据表格中标题区与数据区的对应关系,将文档切分为离散的单值表格和多值表格;
2)单值表格知识抽取,过程如下:
以图2为例,根据单值表格知识抽取算法可得:
由(2.2)可知,标题区“姓名”坐标为(0,0),对应数据区“张三”的坐标为(0,1),标题区“年龄”坐标为(1,0),对应数据区“48”的坐标为(1,1),以此类推;
由(2.3)可知,得到的二元组集合为:
a)(姓名,张三)
b)(性别,男)
c)(申报职务,副教授)
d)(申报类型,正常申报)
e)(年龄,48)
f)(现从事专业,应用物理)
g)(证明人,李四)
h)(现专业技术职务,讲师)
i)(资格取得时间,2010.07)
由(2.4)中标注规则2.4.1)可知,标题区为“姓名”和“证明人”对应的数据区“张三”和“李四”被标注为实体,由于该表格是关于“张三”的信息表,所以其余数据区应被标注为“张三”的属性值;
由(2.4)中标注规则2.4.2)可知,关于实体“张三”的表格中有标题区“证明人”,且对应的数据区“李四”也被标注为实体,所以“证明人”被标注为实体“张三”和实体“李四”之间的关系,又因该表格中除“李四”之外的数据区都被标注成属性值,所以这些数据区对应的标题区均被标注为实体“张三”的属性;
由(2.5)可知,需将二元组转换成三元组的形式,而“张三”本身就是实体,且含有多个属性,所以得到的最终三元组集合为:
a)(张三,性别,男)
b)(张三,申报职务,副教授)
c)(张三,申报类型,正常申报)
d)(张三,年龄,48)
e)(张三,现从事专业,应用物理)
f)(张三,证明人,李四)
g)(张三,现专业技术职务,讲师)
h)(张三,资格取得时间,2010.07)
3)多值表格知识抽取,过程如下:
以图3为例,根据多值表格知识抽取算法可得:
由(3.2)可知,标题区“论文、著作名称”坐标为(0,0),对应数据区“1. 一种基于表示学习的改进###\r\n2.面向知识图谱领域的推荐***”的坐标为 (1,0),标题区“发表时间”坐标为(0,1),对应数据区“2013.05\r\n2014.06”的坐标为(1,1),以此类推;
由(3.3)中3.3.2)可知,坐标为(1,0)的数据区符合语义分割规则(3.3.2.2),所以该数据区对应的第一条数据应从“1.”截取至“###”,第二条数据应从“2.”截取至字符串末尾,坐标为(1,1)的数据区符合语义分割规则(3.3.2.1),所以该数据区对应的第一条数据应截取为“2013.05”,第二条数据应截取为“2014.06”,坐标为(1,2)和(1,3)的数据区也都符合语义分割规则(3.3.2.1);
由(3.4)可知,得到的二元组集合为:
a)(论文、著作名称-1,1.基于表示学习的改进###)
b)(发表时间-1,2013.05)
c)(本人排名-1,1/1)
d)(影响因子/他引次数-1,IF:2.545)
e)(论文、著作名称-2,2.面向知识图谱领域的推荐***)
f)(发表时间-2,2014.06)
g)(本人排名-2,1/2)
h)(影响因子/他引次数-2,IF:1.665)
由(3.5)中标注规则3.5.1)可知,标题区“论文、著作名称”对应的数据区“1.一种基于表示学习的改进###”和“2.面向知识图谱领域的推荐***”被标注为实体,按照数据编号的对应顺序,标题区“发表时间”、“本人排名”和“影响因子/他引次数”对应的两个数据区则分别被标注为“1.一种基于表示学习的改进###”和“2.面向知识图谱领域的推荐***”对应的属性值;
由(3.5)中标注规则3.5.2)可知,表格标题“本人发表论文、著作情况”中“本人”指代“张三”,“论文、著作情况”指代“1.基于表示学习的改进###”和“2.面向知识图谱领域的推荐***”,因此字符串“发表”则被标注为实体“张三”和实体“1.一种基于表示学习的改进***”、实体“2.面向知识图谱领域的推荐***”的关系;
由(3.5)中标注规则3.5.3)可知,标题区“发表时间”、“本人排名”和“影响因子/他引次数”对应的数据区均被标注为“1.一种基于表示学习的改进###”和“2.面向知识图谱领域的推荐***”的属性值,因此该标题区均分别被标注为对应实体的属性;
由(3.6)可知,需将二元组转换成三元组的形式,而“1.一种基于表示学习的改进###”和“2.面向知识图谱领域的推荐***”本身就是实体,且含有多个属性,所以得到的最终三元组集合为:
a)(张三,发表,1.基于表示学习的改进###)
b)(1.基于表示学习的改进###,发表时间,2013.05)
c)(1.基于表示学习的改进###,本人排名,1/1)
d)(1.基于表示学习的改进###,影响因子/他引次数,IF:2.545)
e)(张三,发表,2.面向知识图谱领域的推荐***)
f)(2.面向知识图谱领域的推荐***,发表时间,2014.06)
g)(2.面向知识图谱领域的推荐***,本人排名,1/2)
h)(2.面向知识图谱领域的推荐***,影响因子/他引次数,IF:1.665)。