基于单词重要性加权的问题生成方法

文档序号:25889750发布日期:2021-07-16 19:38阅读:161来源:国知局
基于单词重要性加权的问题生成方法

1.本发明涉及自然语言生成技术领域,尤其涉及一种基于单词重要性加权的问题生成方法。


背景技术:

2.随着对话机器人、机器人客服等智能人机对话系统的广泛应用,越来越需要计算机系统能够更准确地理解和使用人类语言。“段落

问题

答案”数据是训练计算机模型实现自然语言理解和自然语言生成任务地重要数据来源,然而人工标注数据需要耗费大量的人力、物力、财力,且效率低下、数据总量少。而互联网上拥有海量无标注文本数据,可以从无标注文本段落数据中选择一个或者多个连续的词语作为答案,再使用问题生成技术生成问题,获取海量“段落

问题

答案”数据。因此,问题生成技术具有很高的研究价值与实用价值。
3.现有的问题生成技术多采用基于预训练语言模型进行微调的方法,然而普遍存在一个问题:无法准确抓取最关键内容,常常从不重要的角度进行提问,生成无价值的问题。这是由于问题生成任务的“一对多”特性所导致的,根据给定的文本段落和答案,人类可以提出多个问题,并且很容易分辨哪些问题有价值,哪些问题无价值,而对计算机系统而言,可以生成问题但是无法判断问题的价值性。生成的问题缺乏实际使用价值会导致整个“段落

问题

答案”数据集的可用性降低。


技术实现要素:

4.本发明的目的是提供一种基于单词重要性加权的问题生成方法,从词频与单词与答案之间的相对关系两个方面衡量单词的重要性,从而提升生成的问题文本的价值,进而提升“段落

问题

答案”数据集的可用性。
5.本发明的目的是通过以下技术方案实现的:
6.一种基于单词重要性加权的问题生成方法,包括:
7.训练阶段:通过统计数据集中所有文本段落每个单词出现的频率以及单个文本段落中每个单词出现的频率,确定各个文本段落中每个单词的重要程度,并得到重要程度排序向量;同时,对于单个文本段落,通过依存句法分析建立单词与答案之间的相对关系矩阵;将文本段落及相应的问题文本、文本段落的重要程度排序向量与每个单词的重要程度、以及单词与答案之间的相对关系矩阵输入至问题生成模型;所述问题生成模型计算问题文本中每个单词的嵌入向量,以及根据文本段落与重要程度排序向量计算文本段落每个单词的嵌入向量,并将所有单词的嵌入向量输入至添加有单词之间的相对关系矩阵的自注意力编码器中,获得所有单词的编码向量构成的隐向量矩阵,最终结合单词的重要程度预测出问题文本中每个单词的概率分布;结合输入的文本段落对应的问题文本与预测出的问题文本中每个单词的概率分布训练问题生成模型,直至满足终止条件;
8.测试阶段:给定待生成的问题文本的长度,将输入的文本段落、文本段落的重要程
度排序向量与每个单词的重要程度、以及单词与答案之间的相对关系矩阵输入至训练后的问题生成模型,预测出不超过给定长度的问题文本。
9.由上述本发明提供的技术方案可以看出,对文本段落中的每个单词进行词频分析,以获取每个单词的重要程度,并对输入文本段落中的每个单词构建与答案词之间的相对关系,以获取每个单词对答案而言的重要性,最后利用词频分析特征与相对关系特征来训练问题生成模型,该方案能更有效地抓取段落中的关键信息生成问题文本,具有良好的应用前景。
附图说明
10.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
11.图1为本发明实施例提供的一种基于单词重要性加权的问题生成方法训练阶段的流程图;
12.图2为本发明实施例提供的单词与答案相对关系构建示意图;
13.图3为本发明实施例提供的相对关系矩阵示意图。
具体实施方式
14.下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
15.为了解决现有技术所存在的上述技术缺陷,本发明实施例提供一种基于单词重要性加权的问题生成方法,以提升所生成问题的价值。本发明提出两个方法衡量单词重要性。一个方法是词频分析:比较文本段落中各个单词出现的频率同整个数据集的大量文本中单词出现的频率,并对各个单词进行排名,以此确定文本段落中各单词的重要程度,最后将词频分析的结果作为特征既加到问题生成模型的嵌入向量中,又加到生成结果概率分布的加权调整中。另一个方法是单词与答案之间的相对关系构建:首先对输入的文本段落进行依存句法分析,然后构建每一个单词与答案之间的相对关系路线图,以建立单词之间的逻辑关系,从而捕捉对于答案而言原文中每个单词的重要程度,最后将相对关系以关系矩阵的方式添加到问题生成模型的自注意力编码器中。
16.本发明实施例提供一种基于单词重要性加权的问题生成方法,包含训练与测试两个阶段,如图1所示,为训练阶段的主要流程,包括:
17.1、词频分析。通过统计数据集中所有文本段落每个单词出现的频率以及单个文本段落中每个单词出现的频率,确定各个文本段落中每个单词的重要程度,并得到重要程度排序向量。
18.2、建立相关关系。对于单个文本段落,通过依存句法分析建立单词与答案之间的相对关系矩阵。
19.3、问题生成。将文本段落、答案及相应的问题文本、文本段落的重要程度排序向量与每个单词的重要程度、以及单词与答案之间的相对关系矩阵输入至问题生成模型;所述问题生成模型计算问题文本中每个单词的嵌入向量,以及根据文本段落与重要程度排序向量计算文本段落中每个单词的嵌入向量,并将所有单词的嵌入向量输入至添加有单词之间的相对关系矩阵的自注意力编码器中,获得所有单词的编码向量构成的隐向量矩阵,最终结合单词的重要程度预测出问题文本中每个单词的概率分布;结合输入的文本段落对应的问题文本与预测出的问题文本中每个单词的概率分布训练问题生成模型,直至满足终止条件(例如,训练达到设定次数)。
20.测试阶段:给定待生成的问题文本的长度,将输入的文本段落、文本段落的重要程度排序向量与每个单词的重要程度、以及单词与答案之间的相对关系矩阵输入至训练后的问题生成模型,预测出不超过给定长度的问题文本。
21.本领域技术人员可以理解,测试阶段与训练阶段都各自具有相应的数据集(称为测试集与训练集),测试阶段利用测试集进行词频分析,以及对各文本段落建立相关关系,操作流程与训练阶段相同,故不再赘述。
22.为了便于理解,下面针对上述流程中的三个部分做详细的说明。
23.一、词频分析。
24.词频分析的优选实施方式如下:
25.1)统计整个数据集中所有文本段落中每个单词出现的频率,将所有单词按出现的频率降序排序,所得序列向量记为s1。
26.2)每一文本段落,统计其中每个单词出现的频率,并按频率按出现的降序排序,所得序列向量记为s2。
27.3)对于每一文本段落,比较其中每个单词在序列向量在s1和s2中的排名,将其在序列向量s2中的排名和其在序列向量s1中的排名作差,得到单词的重要程度d(t
i
);之后,将文本段落中各单词按照重要程度降序排序,得到重要程度排序向量δs,并以此可以确定各单词在重要程度排序向量中的位置;公式表示为:
28.d(t
i
)=s2(t
i
)

s1(t
i
)
29.δs=sort(d(t
i
)),i=1,

,l
t
30.其中,s2(t
i
)表示文本段落中第i个单词t
i
在序列向量s2中的排名,s1(t
i
)表示文本段落中第i个单词t
i
在序列向量s1中的排名,l
t
为文本段落的长度,sort(.)为排序函数。
31.上述每个单词的重要程度d(t
i
)将作为之后问题生成的加权概率,单词在重要程度排序向量δs中的位置也将以嵌入向量的方式加入问题生成模型中编码,具体将在后文进行介绍。
32.另外,考虑到问题生成阶段生成的单词可能在相应的文本段落以及数据集中都未出现过,因此,将这类未出现过的单词在序列向量s1与s2中的值都记为0,那么相应的重要程度也为0。
33.二、构建相对关系矩阵。
34.构建段落中单词之间的相对关系矩阵需要借助依存句法分析任务。本发明实施例中,构建相对关系矩阵时只考虑包含答案的句子,构建相对关系矩阵的优选实施方式如下:
35.1)提取文本段落中包含答案的句子,并构建单向树:单向树中每个节点表示一个
单词,答案中所包含的单词作为根节点词语,两个节点之间的连接表示两个单词之间的单向依存关系;所述答案为文本段落中的连续文本,通常情况下直接在文本段落中进行标记。
36.2)在得到的单词之间的单向依存关系基础上,对每个单向关系均添加一个反向的关系,形成双向关系的树结构。
37.3)最后,遍历整个双向关系的树结构,保留其他单词到答案词的路径上的依存关系,而删除答案词到其他单词的路径上的依存关系,剩余的单向关系作为最终的相对关系,并根据最终的相对关系构建相对关系矩阵。
38.如图2所示,以句子“我有红苹果”为例,展示了相对关系构建的示意图,图2中从左至右的三个部分依次对应上述1)~3)。
39.以上过程中依存句法分析的实现已有spacy等较为成熟的现有工具参与实现,亦可使用lstm、bert等模型重新训练一个依存句法分析模型。
40.根据最终的相对关系构建相对关系矩阵,如图3所示。上述过程可表示为:
41.r=f
tree
(t)
42.r为得到的关系矩阵,f
tree
表示上述基于依存关系树的构建算法,t为输入的单条句子。
43.三、问题生成。
44.本部分通过问题生成模型来实现,问题生成模型可以通过在预训练语言模型bert的基础上进行模型设计来实现。
45.本发明实施例中,数据集中的每一数据样本input
qg
包含了问题文本与文本段落,表示为:
[0046][0047]
其中,表示问题q中的单词序列,l
q
表示问题文本中单词的数量,表示文本段落t中的单词序列,l
t
表示文本段落中单词的数量;[cls]为开始符号,[sep]为分割符号。
[0048]
本发明实施例中,所述问题生成模型主要包括:嵌入向量层、编码器层、输出层;其中:
[0049]
所述嵌入向量层,用于生成问题文本中每个单词的嵌入向量,以及根据文本段落与重要程度排序向量δs获得每个单词的嵌入向量;
[0050]
所述编码器层为添加有单词之间的相对关系矩阵的自注意力编码器,用于根据每个单词的嵌入向量获得每个单词的隐向量,从而构成隐向量矩阵;
[0051]
所述输出层,用于结合单词的重要程度d(t
i
)预测出问题文本中每个单词的概率分布。具体来说:
[0052]
1、嵌入向量层。
[0053]
对于问题文本,嵌入向量层将每个单词的词嵌入向量emb
word
、句子嵌入向量emb
sen
、以及位置嵌入向量emb
pos
按元素相加作为最终的嵌入向量emb,表示为:
[0054]
emb=emb
word
+emb
sen
+emb
pos

[0055]
对于文本段落,嵌入向量层将每个单词的词嵌入向量emb
word
、句子嵌入向量emb
sen
、位置嵌入向量emb
pos
、词频排名嵌入向量emb
sort
按元素相加作为最终的嵌入向量
emb,表示为:
[0056]
emb=emb
word
+emb
sen
+emb
pos
+emb
sort
[0057]
其中,词嵌入向量emb
word
指的是对文本段落或者问题文本中每个单词根据其在词表中的位置序号映射得到一个可训练向量;句子嵌入向量指的是对文本段落或者问题文本中每个单词根据其所在句子的前后顺序映射得到一个可训练的向量;位置嵌入向量指的是对文本段落或者问题文本中每个单词根据其所在数据中的位置映射得到一个可训练的向量;词频排名嵌入向量指的是对文本段落中每个单词根据其在重要程度排序向量δs的排名映射得到一个可训练的向量。
[0058]
2、编码器层。
[0059]
文本段落与问题文本的各单词的嵌入向量传到编码器层得到每个单词的编码向量,编码器层采用多层transformer结构。在编码器层,为加强学习单词与单词之间的关联,训练时添加掩码矩阵m,使段落中的单词计算注意力时只考虑段落中的单词,而不考虑问题中的单词;问题中的单词计算注意力时只考虑段落中的单词和问题中自身所在位置之前的单词,而不考虑问题中自身所在位置之后的单词。
[0060]
此外,将之前得到的相对关系矩阵r经过一个嵌入向量层,使得每一种相对关系映射到一个可训练的相对关系嵌入向量,形成相对关系嵌入向量矩阵d
e
。掩码矩阵m和相对关系嵌入向量矩阵d
e
添加到自注意力编码器的自注意力计算过程中的key矩阵和value矩阵中参与编码,自注意力计算过程用公示表示如下:
[0061][0062]
其中,attention(.)表示自注意力计算得到的注意力向量,x表示数据在编码器中每层的隐向量,w
q
表示query矩阵,w
k
表示key矩阵,w
v
表示value矩阵,t为矩阵转置符号;
[0063]
自注意力编码器输出的编码向量矩阵与一个可训练的词向量矩阵w
tok
相乘,作为隐向量矩阵h
qg
,表示为:
[0064][0065]
其中,表示带有掩码矩阵m和依存关系嵌入向量矩阵d
e
的自注意力编码器,emb表示输入的单词的嵌入向量。
[0066]
3、输出层。
[0067]
首先,对于问题文本中每个单词q
j
,取其前一个单词q
j
‑1的位置[j

1]的隐向量h
qg
[j

1],经过softmax层后输出q
j
的位置上所生成单词的初始概率分布,表示为:
[0068]
p(q
j
)=softmax(h[i

1])
[0069]
上述过程中,j=1,

,l
q
,以问题文本“我叫小明”为例,输入数据形式为“[cls],我,叫,小明”,当j=1时,利用“[cls]”处的隐向量输出“我”这一位置上所生成单词的概率分布。
[0070]
初始概率分布中包含若干生成单词的概率,将当前生成单词对应的文本段落中的单词记为t
k
,k=1,

,l
t
,并利用单词t
k
的重要性程度d(t
k
)=s2(t
k
)

s1(t
k
)对初始概率分布做进一步加权调整,如果当前生成单词在本条文本段落数据中没有对应单词,则生成单词的重要性程度为d(t
l
)=s2(t
l
)

s1(t
l
)=0

s1(t
l
),其中,t
l
表示当前生成单词,s1(t
l
)表示
当前生成单词t
l
在整个数据集的文本段落中出现的次数:利用所有生成单词对应文本段落中单词的重要性程度按词表的顺序形成差值向量d,乘以一个可训练的参数w
d
,加到初始概率分布上,再经过softmax层得到最终的概率分布,表示为:
[0071]
p

(q
j
)=softmax(p(q
j
)+w
d
*d)。
[0072]
以具体的示例来介绍上述输出层的原理,本示例中,输入的问题文本为“你午饭吃的什么?”,文本段落为“我早餐吃的面包,午饭吃的米饭”。当j=2时,根据问题文本第1个单词的隐向量,经过softmax层后输出第2个单词位置上所生成单词的初始概率分布p(q
j
);初始概率p(q
j
)分布包含了词表中所有单词的概率,假设p(q
j
)中早餐、午饭、晚餐三个单词的概率分别是0.6,0.2,0.1;文本段落包含早餐、午饭这两个单词,且之前也已经计算出这两个单词的重要性程度,但是文本段落并不包含晚饭这个单词,因此重要性程度根据其在整个数据集中的词频排序计算,为0

s1(t
k
),因此,将这三个单词的重要性程度按词表的顺序形成差值向量d,假设午饭、早餐、晚饭对应的值依次为3、1,

1,可训练的参数w
d
=0.2,则w
d
*d后得到午饭、早餐、晚饭对应的值依次为0.6、0.2,

0.2,之后,与初始概率分布p(q
j
)相加后,得到早餐、午饭、晚餐三个单词的概率分别是0.6+0.6=1.2,0.2+0.2=0.4,0.1

0.2=

0.1,再经过softmax层得到最终的概率分布p

(q
j
)。
[0073]
训练过程中采用的损失函数是问题文本中各单词的概率分布与数据集中真实的问题文本的负对数似然的均值,表示为:
[0074][0075]
其中,q
j
表示输入问题文本中第j个位置的单词,也即问题文本中第j个位置的真实标签,p

(q
j
)表示预测出的单词q
j
的概率分布,即预测出单词是q
j
的概率。
[0076]
测试阶段中,对于输入的文本段落,利用词频分析结果以及相关关系矩阵结合训练后的问题生成模型预测出问题文本;预测时问题文本中每个单词连续生成,最终连接组成一个问题文本,所生成的问题文本长度不超过给定的问题文本的长度。
[0077]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd

rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0078]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1