一种Web网页表格标题生成方法与流程

文档序号:22430273发布日期:2020-10-02 10:11阅读:354来源:国知局
一种Web网页表格标题生成方法与流程

本发明涉及自然语言处理技术领域,尤其涉及一种web网页表格标题生成方法。



背景技术:

现代搜索引擎不再简单地返回相关链接网页,而是根据用户的搜索信息返回以半结构化的方式显示的窗体,如表或列表;但这些半结构数据并没有明确的标识概括其内容,不利于用户查看,所以给这些半结构化数据设置一个标题是十分重要的,但是由于这些返回的数据都不是固定的,并不能通过人为设置标题。

现有生成表格标题方法的缺陷在于对于网页中文本标签的依赖性过强,不能实现灵活地生成概括性强且语义自然的表格标题,主要以以下两种方式为主:一种常见的方法是直接通过选择页面中最具有概括性的文本片段作为标题,但此方法要求一个高质量的标题出现在网页上的某个地方且当现有文本片段与某个表相关时,它们通常只包含该表的理想标题的一部分,不能有效概括表格整体内容;另一种方法是通过挖掘之前用户在浏览器中搜索该表内容的查询日志,将查询日志中用户查询内容做为候选标题,但该方法的成功取决于高质量的标题,且该标题取决于存在先验条件可供选择。对于很少查询的表,成功的可能性不大。此外,对于其中具有多个表的网页,将导致查询该页面中其他相关的表变得更加困难。



技术实现要素:

本发明的目的就在于为了解决上述问题而提供一种web网页表格标题生成方法,本发明的技术本质在于提出一种具有复制机制和生成机制的序列到序列神经网络模型,通过生成标题而不是选择现有文本字符串或对现有文本字符串进行排名生成标题,即使在源文本中不存在时也能够构成高质量的标题字符串;通过复制机制和生成机制的序列到序列神经网络模型的高质量表标题生成框架,为这些半结构数据生成高质量的标题。

本发明通过以下技术方案来实现上述目的:

一种web网页表格标题生成方法,包括以下步骤:

步骤1:本文选择:包括:页面标题、节标题、表标题、生成标题、列标题、前缀文本、后缀文本和表格行内容;

步骤2:数据采集:利用网页爬虫技术进行数据采集,通过对每张表的相关内容进行处理,以人工的方式为每个表格生成标题,以<表格文本,生成的标题>格式来构建模型训练所需的训练集、验证集和测试集数据;

步骤3:模型选择:选择基于注意力机制序列到序列机制的指针生成器网络模型,利用注意力机制的解码器-编码器上的工作体将这些数据元结构化字段建模为一个序列,将序列数据输入到模型中,进行训练;

步骤4:利用训练集数据训练模型:将这些字段令牌进行处理后输入到编码器中,encoder端是一个双向的lstm,这个双向的lstm可以捕获原文本的长距离依赖关系以及位置信息,将输入的第i个字段令牌yi作为编码器第i步的输入,其双向lstm再第i步产生两个相反的隐藏层状态

在每一步中连接正反反向的隐藏层状态得到每一步的编码状态hi;

在解码器端,解码器是一个单向的lstm,训练阶段时表格数据元依次输入,在时间步t得到解码状态st;使用hi和st得到该时间步原文第i个词注意力权重:

at=softmax(et)

上式中的vt,wh,ws和battn是模型需要学习的参数,得到的at是编码器的输入文本上的一个概率分布;由上式可知,其注意力分布由编码器隐藏层状态hi,解码器隐藏层状态st共同决定;每一个词都对应一个概率值可以理解该词所获取的注意力权重,我们将该词对应的隐藏层状态hi与相乘,并且求和,得到上下文向量

可以看成是该时间步通读了原文的固定尺寸的标准,然后将ht和经过两层线性层得到单词表分布pvocab:

其中v′、v、b、b′都是模型需要学习的参数,pvocab为预设词表上的概率分布;

在每个解码步骤中,使用线性层计算标量值pgen∈(0,1)如下:

pgen是介于0到1之间的标量,它代表从词汇集中生成一个单词的概率,而不是从源文本进行复制;当要生成的词不在预设词表里,而出现在文章编码器的输入文本里时,该机制会使模型有机会直接从编码器的输入文本中取词,从而部分缓解了oov问题;其中是上下文向量,ht是隐藏的解码器状态,st是解码器输入,和bptr是可学习的参数,σ表示sigmoid函数标量pgen用于对词汇分布pvocab和注意分布pattn进行加权,生成最终分布在词汇表和输入标记的联合中定义每个标记词汇w:

生成单词w的概率等于从词汇集生成w的概率再加上指向原文本任何位置出现该词的概率;当该词不在预设表中,则pvocab(w)=0,故该词只能从编码器的输入文本中去取值,反之,若该词出现在预设词表中,而不是编码器输入文本内,则则该词只能从词表中去取;

本模型的损失函数是所生成序列的平均负对数似然率:

每进行一定次数训练后就利用验证集来检验当前训练的模型是否已经过拟,如果过拟则停止训练,否则继续训练;

步骤5:利用测试集数据测试模型的准确度:在模型训练过程中会得到多个模型,选择在验证集上损失值最低的模型作为模型训练得到的最优模型,测试集输入到最有模型中,进行解码,解码器每一步解码时,都会得到在扩展词表上的概率分布,利用beamsearch方式从该分布中采样得到一个词,作为该步所生成的词,这样在解码完成后就会得到连续的多个词,连在一起就是一个完整的句子,即是所要生成的表格标题。

进一步方案为,所述步骤4中,利用训练集来训练模型,利用验证集来检测当前训练的模型是否已经过拟,如果过拟,则停止训练,否则继续训练:每次从训练集中随机抽取一批样本,供模型进行训练;每进行50次该操作,保存当前训练好的模型,输入验证集,计算当前模型的验证集上的损失值,并画出损失值的变化曲线,当越过最低点时,说明该模型已经发生过度拟合,则应停止训练;结束训练后,选择出最优模型,并进行测试,验证其生成表格标题的精确度。

进一步方案为,通过将算法的概率归零,来禁止算法在一个标题中生成两次相同的令牌。

本发明的有益效果在于:

本发明提出了一个用于生成高质量表标题的新框架。该方法利用了具有复制机制和生成机制的序列到序列神经网络模型,通过生成标题而不是选择现有文本字符串或对现有文本字符串进行排名,这种方法即使在源文本不存在的情况下也能构成高质量的标题字符串。同时,借助复制机制,可以检索稀有令牌和oov令牌。

此外,作为一种高容量的机器学习模型,具有足够的训练数据,与大多数基于启发式的方法相比,该模型能够学习和利用更多细微差别的模式,从而使其对于各种表都更加健壮;并且生成的标题具有语意自然,概括性强的特性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要实用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明整体流程图;

图2为本发明搜索引擎返回的半结构化数据图;

图3为本发明数据元收集图;

图4为本发明模型实现效果图;

图5为本发明指针生成器网络算法流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

本发明提出一种基于复制机制和生成机制的序列到序列神经网络模型的高质量表标题生成框架,通过生成标题而不是选择现有文本字符串或对现有文本字符串进行排名生成标题,使得生成标题的概括性更强,语义更自然。

在任一实施例中,如图1-5所示,本发明的一种web网页表格标题生成方法,包括:

步骤1中:数据元的选择对本发明模型的输出结果影响非常重要。一种方案是包括整个网页的描述性文本数据,这样可以保证涵盖可能与标题表相关的任何文本;但是它还将包含大量无关的文本,从而降低了信噪比和输入相关文本的正确比率。另外,使用序列到序列模型编码信息的序列性质意味着训练时间与要编码的序列的长度成比例,将成千上万的令牌编码为输入的计算开销是不合理的。为了了降低复杂性和运行时间,使用试探法仅查看表前或表后的非结构化文本。并且通过大量数据的研究,最终确定了数据文本的选择:页面标题、节标题、表标题、生成标题、列标题、前缀文本、后缀文本和表格行内容;

步骤2中:利用python中的爬虫技术对搜索引擎返回的表结构数据的特定内容(页面标题、节标题、表标题、生成标题、列标题、前缀文本、后缀文本和表格行内容)进行爬取。对爬取的内容进行数据清理,剔除一些相关性较差的干扰数据。通过对每张表的相关数据进行分析和总结,为每张表人为设置一个标题(专业操作,能保证添加标题的准确度)。表的相关内容和人为添加的准确标题构成了完整数据集,将数据集按照80%,10%,10%的比例划分为训练集、验证集和测试集数据;

步骤3中:一旦知道要在模型输入中包含哪些信息,就会出现如何表示此信息的问题。利用编码器-解码器框架上丰富且迅速扩展的工作体,选择将这些结构化字段建模为一个序列,并发现表标题的生成很适合这种方法。输出-自然语言的标题-本质上显然是顺序的,输入是与表格关联的文本元素的组合,在几个不同的级别上显示出顺序的性质。首先,每个字段中的文本按从左到右的顺序排列。其次,当收集到的每个元数据字段离表格越来越近时,它们的特异性趋于增加。正如希望在网页上按该顺序阅读它们一样,它们倾向于以该顺序保留在高质量标题中。按照刚刚给出的顺序遍历了各个字段,并将它们的内容串联起来,便于区分每个完整的令牌,在每个值(一个或多个令牌)之前加上特殊形式的“#”字段令牌[字段名称]”,如图4所示。

将这些字段令牌输入到编码器(encoder)中,encoder端是一个双向的lstm,这个双向的lstm可以捕获原文本的长距离依赖关系以及位置信息,将输入的第i个字段令牌yi作为编码器第i步的输入,其双向lstm再第i步产生两个相反的隐藏层状态

在每一步中连接正反反向的隐藏层状态得到每一步的编码状态hi;

在解码器端,解码器(decoder)是一个单向的lstm,训练阶段时表格数据元依次输入(测试阶段时时上一步的生成词),在时间步t得到解码状态st。使用hi和st得到该时间步原文第i个词注意力权重:

at=softmax(et)

上式中的vt,wh,ws和battn是模型需要学习的参数,得到的at是编码器的输入文本上的一个概率分布(注意力分布)。由上式可知,其注意力分布由编码器隐藏层状态hi,解码器隐藏层状态st共同决定。每一个词都对应一个概率值可以理解该词所获取的注意力权重,我们将该词对应的隐藏层状态hi与相乘,并且求和,得到上下文向量

可以看成是该时间步通读了原文的固定尺寸的标准,然后将ht和经过两层线性层得到单词表分布pvocab:

其中y′、v、b、b′都是模型需要学习的参数,pvocab为预设词表上的概率分布。

步骤4中:表格倾向于描述特定的实体和数量,而不是抽象的表达。诸如“在户外市场上购物的人们”之类的通用描述可能对图像有效,但是表格中诸如“国家和数字”之类的通用性标题将无济于事。为了生成更具语义化的标题,本发明在序列到序列模型的解码器中加入了复制机制。复制机制允许解码器网络不仅从已知词汇表生成令牌,还可以从输入中直接复制令牌。并且该模型还学会了控制何时复制令牌和生成令牌的参数。因此,该模型能够从训练数据中学习特定的模式,这些模式表明标题中的下一个单词很可能是应复制而不是生成的稀有或oov单词。例如,在以很高的概率制作了“动作电影主演”令牌之后,下一个生成的令牌将是男演员或者女演员的名字,训练数据集中可能有很多相关数据,并且它们的嵌入物可能非常接近,但是几乎可以肯定该演员的姓名会出现在与表格相关联的元数据中(例如,在页面标题或栏目标题中)。为了实现这个效果,本发明引进了指针生成器网络用于模型的训练:它是一种将文档抽象概括为几个句子的工具。指针生成器网络主要使用双lstm编码器和lstm解码器,其对传统的序列到序列模型进行优化,使得复制和生成机制更加合理。

在每个解码步骤中,使用线性层计算标量值pgen∈(0,1)如下:

pgen是介于0到1之间的标量,它代表从词汇集中生成一个单词的概率,而不是从源文本进行复制。当要生成的词不在预设词表里,而出现在文章编码器的输入文本里时,该机制会使模型有机会直接从编码器的输入文本中取词,从而部分缓解了oov问题。其中是上下文向量(隐藏的编码器的加权和

状态,使用注意力分布),ht是隐藏的解码器状态,st是解码器输入,和bptr是可学习的参数,σ表示sigmoid函数。标量pgen用于对词汇分布pvocab(即在传统的序列到序列生成模型中生成词汇的采样分布)和注意分布pattn进行加权,生成最终分布pfinal,在词汇表和输入标记的联合中定义每个标记词汇w:

生成单词w的概率等于从词汇集生成w的概率再加上指向原文本任何位置出现该词的概率。当该词不在预设表中,则pvocab(w)=0,故该词只能从编码器的输入文本中去取值,反之,若该词出现在预设词表中,而不是编码器输入文本内,则则该词只能从词表中去取。

本模型的损失函数是所生成序列的平均负对数似然率:

使用的adagrad优化器的初始学习率为0.15,梯度削波为2.0,并尽早停止验证集以控制过度拟合。单词嵌入(128维)被随机初始化并在训练模型时学习。lstm隐藏状态(256维)使用随机均匀初始化进行初始化,最大初始化幅度为0.02。训练的最小批量为64个,并使用波束搜索(波束大小=8)进行解码,最小解码长度为4个令牌,最大为20个令牌。输入的文本被截断为150个标记。并且该训练模型中没有限制词汇量,词汇量约为18k。

使用负对数可能性目标函数的人工产物是,我们经常看到相同的令牌被背对背生成,例如生成“nba最高薪水nbanba”而不是“nba最高薪水”或“nba球员最高薪水”。最初的指针生成器网络论文提出了一种覆盖机制,用于减少生成的摘要中短语的重复。覆盖机制的工作原理是对所有先前解码器时间步长上的注意力分布求和,并对那些具有高价值的令牌进行惩罚。但是标题比文章摘要短得多,一种简单的启发式方法可以达到相同的目的,同时简化了模型并需要更少的参数来学习:本发明只是通过将生成重复令牌算法的概率归零,来禁止算法在一个标题中生成两次相同的令牌。

利用训练集来训练模型,利用验证集来检测当前训练的模型是否已经过拟,如果过拟,则停止训练,否则继续训练:每次从训练集中随机抽取一批样本,供模型进行训练。每进行50次该操作,保存当前训练好的模型,输入验证集,计算当前模型的验证集上的损失值,并画出损失值的变化曲线,当越过最低点时,说明该模型已经发生过度拟合,则应停止训练。

步骤5:通过测试集数据对训练完成的模型进行测试,生成标题:在模型训练过程中,我们会得到多个模型,选择在验证集上损失值最低的模型作为模型训练得到的最优模型,测试集输入到最有模型中,进行解码,解码器每一步解码时,都会得到在扩展词表上的概率分布,利用beamsearch方式从该分布中采样得到一个词,作为该步所生成的词,这样在解码完成后就会得到连续的多个词,连在一起就是一个完整的句子,即是所要生成的表格标题。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1