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

基于概率图模型的网络表格列类型检测方法

2022-04-30 13:29:46 来源:中国专利 TAG:


1.本发明属于语义网中的表格解释领域,主要涉及一种基于概率图模型的网络表格列类型检测方法。


背景技术:

2.网络表格使用固定结构来呈现其内容,提供由属性描述的实体的紧凑表示以及实体间的关系,并且与其他类型的表(例如主要用于格式化目的的布局表或者用于以网格格式显示数字摘要的矩阵表)不同,它的结构包含着十分有价值的关系型知识。同时与非结构化数据相比,它的研究又减少了提取和解释数据的工作量。出于上述原因,网络表格越来越受到研究界的关注。网络表格中蕴含着丰富的知识,目前存在许多利用网络表格这种丰富的半结构化数据资源的实际用例,包括问题回答、表格搜索、表格扩充、知识库补全、语义检索和创建链接开放数据等。
3.网络表格数据的有用性很大程度上取决于对其语义的理解,恢复表格语义的一种方法是将其与知识库相匹配,这一过程也被称为“表格语义解释”,即开发有效的方法来提取和解释web表中的信息。表格语义解释主要包含以下三种任务:列类型检测、单元格实体匹配和列间属性关系注释。其中如何正确地检测数据列的语义类型对于表格语义解释任务至关重要,是其他两个任务的前提。
4.由于网络表格来源广泛且没有固定的规范,来自不同网站的表格的表标题和列标题可能会使用完全不同的术语,因此只利用标题来对列类型进行检测的方法行不通。此外,有些表格的标题和列标题等元数据可能会存在缺失的情况,因此机器无法直接通过列标题或者表头信息来判断列类型。网络表格往往充斥着各种脏数据,经常出现单元格内容不完整,内容存在错误拼写。另外,知识库中的类是复杂繁多的,会给列类型检测带来一定程度的困难。同时由于采用实体类别的粒度也随任务的不同而有所区分,同一个实体可以归属于不同的类型。
5.现有的网络表格列类型检测方法具有如下局限性:(1)传统的方法基于单元格的本体匹配,查找目标列中所包含的单元格数据在知识库中对应的实体,一方面是在真实数据集中存在很大一部分网络表格中的单元格无法找到知识库中对应的实体,另一方面是忽略了单元格之间存在的语义关联,这就导致对脏数据不具有鲁棒性;(2)基于特征工程的方法大多需要人工定义的多种特征,可扩展性不强,计算耗时耗力,同时由于仅采用词汇比较的方法而没有考虑语义层面的相似度,容易出现歧义而降低匹配的准确度;(3)大部分模型只考虑到了单元格内部的特征和语义关系,忽略了单元格之间可能存在的关联,只针对单列的特征建模,并未利用到表格特殊的组织结构以及单元格间潜在的复杂语义关系。


技术实现要素:

6.本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于概率图模型的网络表格列类型检测方法,可以对网络表格中的列所属的语义类型进行检测。
7.为解决上述技术问题,本发明提供的技术方案是:
8.一种基于概率图模型的网络表格列类型检测方法,该方法包括以下步骤:
9.步骤1:网络表格拼接:将网络表格数据集中具有相同列标题的网络表格拼接成一张表格,获得拼接表格;
10.步骤2:针对步骤1中获得的拼接表格进行单列分类:首先将所述拼接表格中的列划分为数值型列和字符型列,然后分别针对数值型列和字符型列进行分类;
11.步骤3:基于步骤2的单列分类结果,构建概率图模型挖掘列间隐含的语义关系,实现对整张表的列类型序列的检测。
12.进一步地,根据所述的基于概率图模型的网络表格列类型检测方法,所述网络表格数据集的获取方法为:遍历网络表格语料库,在同一网站下寻找具有相同一组列标题的关系型表格形成网络表格数据集。
13.进一步地,根据所述的基于概率图模型的网络表格列类型检测方法,利用启发式方法将所述拼接表格中的列划分为数值型列和字符型列。
14.进一步地,根据所述的基于概率图模型的网络表格列类型检测方法,针对所述数值型列进行分类的方法为:给定一组彼此不相交的k个知识库类型的集合,表示为{v1,v2,...,vk},vi∈|v|,其中|v|为知识库中预定义的语义类型集合,将表格数据作为输入,通过基于随机森林的分类器为每一个类别vi分配一个实际的概率得分从而得到整列的概率得分为使得目标列的正确类型所在的位置具有最高的概率值得分;
15.所述基于随机森林的分类器是指采用基于统计特征的分类方式,提取数值信息中的均值、方差、中位数、众数、最大值、最小值、峰值、偏度和标准差;提取文字信息中每个字母出现的频率、字符长度的均值与方差,以及具有字符的单元格的占比;再将提取的所有统计量作为特征,利用随机森林算法对分类过程进行建模。
16.进一步地,根据所述的基于概率图模型的网络表格列类型检测方法,针对所述字符型列进行分类的方法为:通过融合词嵌入和字符嵌入表达文本语义,使用融合行列信息的单元格嵌入方法,并利用得到的单元格向量表示构建基于深度学习的分类模型,生成单列在各个类型下的概率值。
17.进一步地,根据所述的基于概率图模型的网络表格列类型检测方法,针对所述字符型列进行分类的方法具体包括如下步骤:
18.步骤2.3.1:单元格文本向量化:将单元格文本视为一段长度为n的初始文本,使用预训练的词向量模型glove和一维卷积神经网络1d-cnn分别得到单元格文本的单词嵌入向量和字符嵌入向量后,将二者垂直联接产生一个矩阵,接着将该矩阵通过高速神经网络highway-nn得到融合词嵌入和字符嵌入的词向量;
19.步骤2.3.2,单元格嵌入过程:除了目标单元格自身携带的信息外,关注与目标单元格位于同一列和同一行的其他单元格中的信息,以充分学习各种隐式连接;
20.步骤2.3.2.1,列间聚合:针对位于m行n列的目标单元格t
m,n
,聚合n列其他单元格t
m',n
(m'≠m)的上下文信息;
21.步骤2.3.2.2,行间聚合:针对位于m行n列的目标单元格t
m,n
,聚合m行中其他单元格的上下文信息;
22.步骤2.3.2.3,单元格嵌入表示:将目标单元格自身携带的信息以及与所述目标单元格相关的行间聚合信息和列间聚合信息融合在一起以获取所述目标单元格的全部文本语义表示;
23.步骤2.3.3,字符列分类过程:通过聚合待检测目标列的所有单元格的嵌入获得整列的语义嵌入,利用该嵌入作为输入训练字符列分类模型。
24.进一步地,根据所述的基于概率图模型的网络表格列类型检测方法,所述步骤3包括如下步骤:
25.步骤3.1,生成基于数据集的列类型共现关系矩阵p
corr
:统计类型对共同出现的次数得到基于数据集的共现关系矩阵;
26.步骤3.2,生成基于知识库的关系矩阵p
rela
:利用知识库中属性及其值域和定义域间的关系得到基于知识库的关系矩阵;
27.步骤3.3:生成基于实例的关系矩阵p
entity
:通过遍历两列中位于同一行中的单元格对得到基于实例的关系矩阵;
28.步骤3.4:融合上述三种关系矩阵,获得融合后的多关系矩阵q;
29.融合后的多关系矩阵q如下
[0030][0031]
其中α1和α2分别指的是ci列和cj列各自的单元格实体覆盖率;
[0032]
步骤3.5:构建概率图模型进行网络表格的列类型序列检测,方法为:在整个网络表格上使用线性链条件随机场linear-crf,对相邻列的值之间的相关性进行建模以执行联合预测;其中用单个数值型列在各个类型下的概率值和单个字符型列在各个类型下的概率值来表示状态特征函数φ
single
(ci,yi);利用多关系矩阵q来表示转移特征函数φ
multi
(y
i-2
,y
i-1
,yi,c),其中c表示输入的表格列序列{c1,c2,...,cn},转移特征函数依赖于当前列yi以及前两列y
i-2
和y
i-1
的状态,用来表示列间关系对语义类型检测的影响。
[0033]
进一步地,根据所述的基于概率图模型的网络表格列类型检测方法,所述基于数据集的列类型共现关系矩阵的生成方法为:首先初始化一个矩阵用来记录不同表格中相同列类型对出现的频率;然后遍历已有数据集中已标注好列的语义类型的全部表格,遍历每一个表格的所有列,统计共同出现的列类型对的次数,同时对应的索引位置的值加一;最后统计列类型对的总数并计算得到两种列类型同时出现的频率矩阵p
corr

[0034]
进一步地,根据所述的基于概率图模型的网络表格列类型检测方法,所述基于知识库的关系矩阵的方法为:对预定义的k个知识库中的类型v进行遍历,利用sparql对每一种类型进行搜索,寻找以该类型为定义域的所有属性并赋值给一集合;接着遍历该集合,寻找每一种属性的值域所属于的类型,如果该类型存在于集合|v|中,则基于知识库的关系矩阵p
rela
中对应的索引位置赋值为对应的概率值。
[0035]
进一步地,根据所述的基于概率图模型的网络表格列类型检测方法,所述基于实例的关系矩阵生成方法为:对于ci和cj两列,通过遍历位于同一行rm中的单元格对(t
m,i
,t
m,j
)来寻找潜在的关系,如果通过模糊查找确定知识库中存在与单元格t
m,i
中文本对应的实体e且该实体属于当前类型,则判断t
m,j
是否存在于该实体的属性值中,最后通过多数投票算法得到基于实例的关系矩阵p
entity

[0036]
采用上述技术方案所产生的有益效果在于:本发明提供的基于概率图模型的网络
表格列类型检测方法,可以对网络表格中列的语义类型进行检测并取得较好的效果,相对于其它列类型检测方法,准确率均有10%及以上提高。
附图说明
[0037]
图1为本实施方式基于概率图模型的网络表格列类型检测方法的框架示意图;
[0038]
图2为本实施方式基于概率图模型的网络表格列类型检测方法的流程示意图;
[0039]
图3为本发明方法与其他现有方法应用在测试集上得到的检测结果对比图。
具体实施方式
[0040]
为了便于理解本技术,下面将结合附图和实施例对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0041]
图1为本实施方式的基于概率图模型的网络表格列类型检测方法的框架示意图,图2为本实施方式的基于概率图模型的网络表格列类型检测方法的流程示意图,如图图1和图2所示,所述基于概率图模型的网络表格列类型检测方法包括如下步骤:
[0042]
步骤1:网络表格拼接:将网络表格数据集中具有相同列标题的网络表格拼接成一张表格,获得拼接表格。
[0043]
本步骤是对原始网络表格数据的预处理过程,为了弥补数据集中存在多个规模过小的表格这一缺陷,本实施方式提出将网络表格组合拼接成更大规模的表后再与知识库进行匹配,以此有效地减少数据集的异构性。
[0044]
在本实施方式中,遍历网络表格语料库,在同一网站下寻找具有相同一组列标题的关系型表格,将这些具有相同列标题的网络表格组合拼接成更大规模的表。具体是,首先解析文件:原始数据集中包含着从网页上爬取到的关系型网络表格及其相关的网页信息,以json文件的形式存储着。在对网络表格数据集进行进一步的处理前,需要对其进行预处理。作为一种轻量级的数据格式,json是若干个“key/value”对的集合,需要读取并解析json文件,提取文件中的关键信息,也就是网络表格的内容。然后拼接表格:遍历网络表格语料库中的全部表格,定位到“url”字段,使用字典记录唯一存在的网站,将同一网站下的表格拥有相同的一组列标题的所有表格拼接在一起形成规模更大的表格,相同的列标题代表这些表格以相同的模式来组织文本内容。
[0045]
步骤2:基于步骤1中获得的拼接表格进行单列分类:首先将所述拼接表格中的列划分为数值型列和字符型列,然后分别针对数值型列和字符型列进行分类。
[0046]
步骤2.1:利用启发式方法将所述拼接表格中的列划分为数值型列和字符型列。
[0047]
步骤2.2:对所述数值型列进行分类:基于特定的字符分布和格式语义对所述数值型列进行特征提取,通过统计给定的不同特征值来构建基于随机森林的分类器并给出预测结果。
[0048]
在本实施方式中针对数值型列,基于特定的字符分布和格式语义对其进行特征提取,通过统计不同的特征来构建基于随机森林的分类器并给出预测结果。所述基于随机森林的分类器是指,采用简单的基于统计特征的分类方式,提取数值信息中的均值、方差、中位数、众数、最大值、最小值、峰值、偏度和标准差等统计量,提取文字信息中每个字母出现的频率、字符长度的均值与方差,以及具有字符的单元格的占比等统计量,再将所有这些统
计量作为特征,利用随机森林算法对分类过程进行建模。具体而言,给定一组彼此不相交的k个知识库类型的集合,表示为{v1,v2,...,vk},vi∈|v|,其中|v|为知识库中预定义的语义类型集合。将表格数据作为输入,通过所述基于随机森林的分类器为每一个类别vi分配一个实际的概率得分从而得到整列的概率得分为使得目标列的正确类型所在的位置具有最高的概率值得分。
[0049]
步骤2.3:对字符型列进行分类:通过融合词嵌入和字符嵌入表达文本语义,使用融合行列信息的单元格嵌入方法,并利用得到的单元格向量表示构建基于深度学习的分类模型,生成单列在各个类型下的概率值。
[0050]
在本实施方式中通过融合词嵌入和字符嵌入表达文本语义,使用融合行列信息的单元格嵌入方法,并利用得到的单元格向量表示构建基于深度学习的分类模型,生成单列在各个类型下的概率值具体包括如下步骤:
[0051]
步骤2.3.1:单元格文本向量化。
[0052]
将单元格文本视为一段长度为n的初始文本,使用预训练的词向量模型glove和一维卷积神经网络1d-cnn分别得到单元格文本的单词嵌入向量和字符嵌入向量后,将二者垂直联接产生一个矩阵,接着将该矩阵通过highway-nn(高速神经网络)得到嵌入结果。具体公式如下:
[0053][0054]
其中,h代表隐藏层向量,x
in
代表高速神经网络的输入矩阵,wh代表权重,bh代表偏置,σ代表非线性变换函数。在退出highway-nn时,将输入的转化部分和未转化部分加起来得到向量化表示x
out
,二者输入的大小由转换率t和携带率1-t来控制
[0055]
步骤2.3.2:单元格嵌入过程。
[0056]
为了在最大程度上汇总表间的上下文信息,提出融合行聚合和列聚合的单元格嵌入表示学习方法。其思想是:除了目标单元格t
m,n
(表格中对应m行n列的单元格)自身携带的信息之外,关注与其位于同一列和同一行的其他单元格中的信息,以充分学习各种隐式连接,具体包括如下步骤:
[0057]
步骤2.3.2.1:列间聚合。针对在表格中的位置为m行n列的目标单元格t
m,n
,聚合n列其他单元格t
m',n
(m'≠m)的上下文信息。聚合列间上下文后的嵌入的计算公式如下:
[0058][0059]
其中,代表位于m行n列的单元格t
m,n
的初始嵌入向量;relu为一种常见的激活函数;wc代表参数矩阵;m代表表格中的总行数;是单元格t
m',n
(m'≠m)在列间聚合中的权重表示,具体如下:
[0060][0061]
步骤2.3.2.2:行间聚合。针对位于m行n列的目标单元格t
m,n
,聚合m行中其他单元格的上下文信息。
[0062]
具体而言,使用基于双向门控循环单元bigru与注意力机制attention的混合神经网络模型来提取深层次的语义特征,其中bigru由两个方向相反的单向门控循环单元gru构造,从而有效地获取词向量前后文的依赖关系,具体公式如下:
[0063][0064]
其中,gru函数表示把输入的词向量编码非线性变换成对应的gru隐层状态;w
t
表示t时刻双向gru所对应的前向隐层状态所对应的权重;v
t
则表示反向隐层状态所对应的权重;b
t
表示t时刻隐层状态所对应的偏置;代表(t-1)时刻前向隐层状态的输出;代表反向隐层状态的输出;w和v代表权重,b代表偏置,输出h
t
由和的输出共同决定。
[0065]
接着将bigru层的输出向量放入attention层,目的是进一步突出多个临近单元格文本中的关键信息,给出聚合行间上下文后的嵌入的计算公式:
[0066][0067]
权重系数α
t
为各个隐层状态在新的隐层状态中的权重大小,其中uw表示为随机初始化的注意力矩阵,为上一层bigru的输出向量,ww为权重系数。
[0068]
步骤2.3.2.3:单元格嵌入表示。将目标单元格自身携带的信息以及与它相关的行间聚合信息和列间聚合信息融合在一起以获取单元格更全面的文本语义表示。
[0069]
在该步骤中使用如下公式得到聚合整张表行列间上下文的目标单元格的嵌入表示:
[0070][0071]
其中wh为参数矩阵,用于将初始单元格嵌入与表内存在的列间上下文和行间上下文聚合在一起,得到最后融合表内上下文的单元格嵌入表示
[0072]
步骤2.3.3:字符列分类过程:通过聚合待检测目标列的所有单元格的嵌入获得整列的语义嵌入,利用该嵌入作为输入训练字符列分类模型。
[0073]
具体而言,将目标列中各个单元格的嵌入聚合在一起得到接着再用学习输入和输出之间关系的全连接层(fully connected layers,fc)进行进一步堆叠,以对目标列类型建模:
[0074][0075]
其中,f是目标列类型分数,w
fc
和b
fc
分别是参数矩阵和偏置项。
[0076]
最后将全连接层的输出叠加softmax(一种逻辑回归模型)层以计算每一类型的输
出权重,得到关于目标列cn的输出的预测概率向量
[0077][0078]
其中,fi是目标列属于类型i的分数,k为预定义的知识库中的类型个数,vi表示第i位的类型,中的每一位代表该列属于某种语义类型的概率。
[0079]
使用交叉熵函数作为损失函数来进行评估:
[0080][0081]
代表指示函数(indicator function),yi∈v为t
*,n
的真实类型,对于预定义的所有语义类型,如果该类型v和样本的类型yi相同就是1,否则为0。
[0082]
步骤3:基于步骤2的单列分类结果,构建概率图模型挖掘列间隐含的语义关系,实现对整张表的列类型序列的检测。
[0083]
利用步骤2提出的单列分类模型可以得到对列的语义类型初步的判断,以步骤2得到的单列分类结果为基础,同时综合考虑到了各种语义类型在知识库和真实数据集中的共现关系以及单元格中实例间的关系,通过融合多关系矩阵得到列间关系的量化表示。为了使检测结果更加准确,本步骤利用列间的局部上下文特征和基于概率图的多列类型检测模型检测列类型,在单列分类模型的基础上更好地利用列间隐含的语义关系,实现对整张表的列类型序列的检测。具体包括如下步骤:
[0084]
步骤3.1:生成基于数据集的列类型共现关系矩阵:统计类型对共同出现的次数得到基于数据集的共现关系矩阵;
[0085]
所述基于数据集的列类型共现关系矩阵的生成方法为:首先初始化一个矩阵用来记录不同表格中相同列类型对出现的频率;然后遍历已有数据集中已标注好列的语义类型的全部表格,遍历每一个表格的所有列,统计共同出现的列类型对的次数,同时对应的索引位置的值加一;最后统计列类型对的总数并计算得到两种列类型同时出现的频率矩阵p
corr

[0086]
步骤3.2:生成基于知识库的关系矩阵:利用知识库中属性及其值域和定义域间的关系得到基于知识库的关系矩阵;
[0087]
所述基于知识库的关系矩阵的方法为:对预定义的k个知识库中的类型v进行遍历,利用sparql(sparql protocol and rdf query language,rdf查询语言和数据获取协议)对每一种类型进行搜索,寻找以该类型为定义域(domain)的所有属性并赋值给一集合。接着遍历该集合,寻找每一种属性的值域(range)所属于的类型,如果该类型存在于集合|v|中,则基于知识库的关系矩阵p
rela
中对应的索引位置赋值为对应的概率值。
[0088]
步骤3.3:生成基于实例的关系矩阵:通过遍历两列中位于同一行中的单元格对得到基于实例的关系矩阵;
[0089]
所述基于实例的关系矩阵生成方法为:对于ci和cj两列,通过遍历位于同一行rm中的单元格对(t
m,i
,t
m,j
)来寻找潜在的关系,如果通过模糊查找确定知识库中存在与单元格t
m,i
中文本对应的实体e且该实体属于当前类型,则判断t
m,j
是否存在于该实体的属性值中,
最后通过多数投票算法(boyer-moore)得到基于实例的关系矩阵p
entity

[0090]
步骤3.4:融合多关系矩阵。
[0091]
使用融合上述三种关系矩阵的方法,使融合后的矩阵q能更好地表示类型对之间的关系:
[0092][0093]
其中α1和α2分别指的是ci和cj各自的单元格实体覆盖率(是指ci和cj中包含相同实体数量占总实体数量的比值),当单元格实体覆盖率较高时,更倾向于使用基于实例的关系矩阵来衡量列间的语义关系。
[0094]
步骤3.5:构建概率图模型进行网络表格的列类型序列检测。
[0095]
在整个网络表格上使用线性链条件随机场linear-crf,对结构链接变量也就是相邻列的值之间的相关性进行建模,以执行联合预测。
[0096]
具体来讲,利用步骤2生成的概率值和来表示状态特征函数φ
single
(ci,yi)。利用多关系矩阵q来表示转移特征函数φ
multi
(y
i-2
,y
i-1
,yi,c),转移特征函数依赖于当前列yi以及前两列y
i-2
和y
i-1
的状态,用来表示列间关系对语义类型检测的影响:
[0097][0098][0099]
其中c表示输入的表格列序列{c1,c2,...,cn},y表示输出中每列对应的类型序列{y1,y2,...,yn},yi取值于知识库中的类型v,λk和μ
l
为权重系数。对score(c,y)做归一化处理后得到的p(y|c),则表示在给定输入序列c时对预测输出序列为y的条件概率。
[0100]
将多列类型检测问题形式化地定义为在给定表格内容的时候最大化联合条件概率值:
[0101][0102]
本实施例选取t2k match、lookup-vote、colnet三种不同的算法作为对比测试,如图3所示,proposed代表本发明提出的方法,测试结果显示,本发明在准确率上有10%以上的提高。
[0103]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
再多了解一些

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

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

相关文献