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

一种关键词抽取方法及装置和编码器和解码器与流程

2022-07-01 23:48:30 来源:中国专利 TAG:


1.本技术涉及但不限于信息处理技术,尤指一种关键词抽取方法及装置和编码器和解码器。


背景技术:

2.关键词抽取是在给定一段较长文本的情况下,通过某些手段提取出文本所要表达的核心内容,从而在大量信息中准确、快速地提取出关键信息。这些关键词可以是具有特定意义的实体、也可以是一些基础概念或者事件。抽取出的关键词可以采用关键词序列来表示,关键词序列可以按照置信度依次列出,置信度越高其排序越靠前。抽取出的关键词序列可以被应用到如游记、笔记、新闻等不同领域文章的主题标签标注,以及文献检索、推荐系统中。
3.相关技术中,一种方式是采用词频-逆向文件频率(tf-idf,term frequency-inverse document frequency)、用于文本的基于图的排序算法(textrank)等方法来抽取关键词。这种方式大致包括:从原文中依据一定的规则选择部分短语作为关键词候选,而后通过有监督或无监督的方法训练一个短语排序模型来进行关键词选择。这种方式过于依赖人工编写的规则,而且总体效果不够好。
4.另一种方式是基于序列到序列模型抽取关键词,但是,这种方式面临着两个问题:1)如何产生一个足够好的文档表示,以反映出原始文档中对关键词抽取最重要的关键语义信息;2)如何建模关键词集合中关键词间的关系,即如何更好地学习条件概率p(yn|y
《n
),其中,yn是当前需要产生的关键词,y
《n
是已经生成的关键词序列。其中,序列到序列模型是一种起源于神经机器翻译领域的神经网络生成模型框架,适用于输入和输出都是文本序列的问题场景,包括编码器和解码器两个部分;编码器用于将输入文本序列编码为向量语义表示(本文中也称为文档表示),解码器则通过注意力机制等方式与编码器输出进行交互,依次产生输出序列的每个词。


技术实现要素:

5.本技术提供一种关键词抽取方法及装置,能够提升文档编码效果,从而产生准确的关键词。
6.本发明实施例提供了一种关键词抽取方法,包括:
7.根据待处理文档的句法信息和当前时刻已生成的关键词信息进行编码处理,获取当前时刻的文档表示信息;
8.根据所述当前时刻的文档表示信息和所述当前时刻已生成的关键词信息进行解码处理,获取下一时刻的关键词信息。
9.在一种示例性实例中,所述待处理文档的句法信息通过如下方式获得:
10.从所述待处理文档中抽取出一个或多个句法树以构成句法树集合;
11.根据所述句法树集合,为所述待处理文档构建句法图,所述句法图的节点为所述
待处理文档中的词,所述句法图的有向边为所述待处理文档中词与词之间的依赖边。
12.在一种示例性实例中,所述根据待处理文档的句法信息和当前时刻已生成的关键词信息进行编码处理,获取当前时刻的文档表示信息,包括:
13.根据所述当前时刻已生成的关键词信息更新所述待处理文档的句法图信息,获得当前时刻所述句法图中有向边的边权重;
14.根据原始文档中每个词的词表示向量更新所述句法图中节点表示向量;
15.根据所述节点表示向量和有向边的边权重得到当前时刻的文档表示信息。
16.在一种示例性实例中,所述根据所述当前时刻已生成的关键词信息更新所述待处理文档的句法图信息,获得当前时刻所述句法图中有向边的边权重,包括:
17.获得当前时刻已生成的关键词集合;
18.计算所述关键词集合的平均表示;
19.根据所述平均表示计算有向边的边权重。
20.在一种示例性实例中,根据所述平均表示计算有向边的边权重包括:
21.获得词i的词嵌入与词j的词嵌入;
22.获得词i与词j之间的依赖边类型的边类型嵌入;
23.根据所述词i的词嵌入、词j的词嵌入、词i与词j之间的依赖边类型的边类型嵌入,以及所述平均表示,计算词i与词j之间的边权重。
24.在一种示例性实例中,所述根据原始文档中每个词的词表示向量更新所述句法图中节点表示向量,包括:
25.将所述原始文档中的每个词表示为词嵌入;
26.通过拼接预先获得的词性标注对应的每个词的词性嵌入和位置信息对应的位置向量,得到每个词的词表示向量;
27.根据所述原始文档对应的词表示向量得到语序感知的文档表示;
28.根据所述语序感知的文档表示更新所述句法图中节点表示向量。
29.在一种示例性实例中,所述方法还包括:
30.合并所述原始文档中具有同样词根形式的所有节点。
31.在一种示例性实例中,所述根据所述当前时刻的文档表示信息和所述当前时刻已生成的关键词信息进行解码处理,获取下一时刻的关键词信息,包括:
32.根据所述文档表示信息、所述当前时刻已生成的关键词信息、以及当前时刻关键词的已生成词,预测当前时刻关键词的待生成词。
33.在一种示例性实例中,所述预测当前时刻关键词的待生成词,包括:
34.根据所述文档表示信息、所述当前时刻已生成的关键词信息、以及当前时刻关键词的已生成词,获取在所述文档表示信息中文档的词的预测概率分布;
35.基于集束搜索,根据得到的预测概率分布确定当前时刻关键词的下一个词。
36.在一种示例性实例中,所述获取在所述文档表示信息中文档的词的预测概率分布,包括:
37.如果预测第n个关键词的第一个词,将所述文档表示信息输入门限线性单元glu,得到用于初始化门控循环单元gru隐状态的当前时刻的上下文向量;
38.如果在预测第n个关键词的第i个词,将所述文档表示信息、所述当前时刻已生成
的关键词,以及第n个关键词中已生成的词输入glu,计算得到gru隐状态si;
39.根据gru隐状态si和所述文档表示信息计算注意力权重,以获得所述文档表示信息中词的预测概率分布。
40.在一种示例性实例中,还包括:
41.对所述集束搜索中前一时刻同一词产生的l个后代节点,以其预测顺序作为惩罚,将经过惩罚的对数概率作为当前时刻得分,来确定下一时刻的候选序列;其中,l为待处理文档中词的数量;
42.和/或,
43.对比所述集束搜索中所有词的候选序列和当前时刻已生成的关键词序列,对相同的n元语法n-gram进行惩罚,使用带有惩罚项的序列得分函数来确定下一时刻的候选序列。
44.本技术实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项所述的关键词抽取方法。
45.本技术实施例还提供一种实现滚关键词抽取的设备,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行上述任一项所述的关键词抽取方法的步骤。
46.本技术实施例又提供一种关键词抽取装置,包括:编码模块、解码模块,其中,
47.编码模块,设置为根据待处理文档的句法信息和当前时刻已生成的关键词信息进行编码处理,获取当前时刻的文档表示信息;
48.解码模块,设置为根据所述当前时刻的文档表示信息和所述当前时刻已生成的关键词信息进行解码处理,获取下一时刻的关键词信息。
49.在一种示例性实例中,还包括预处理模块,设置为获取所述待处理文档的句法信息:
50.从所述待处理文档中抽取出一个或多个句法树以构成句法树集合;
51.根据所述句法树集合,为所述待处理文档构建句法图,所述句法图的节点为所述待处理文档中的词,所述句法图的有向边为所述待处理文档中词与词之间的依赖边。
52.在一种示例性实例中,所述编码模块具体设置为:
53.根据所述当前时刻已生成的关键词信息更新所述待处理文档的句法图信息,获得当前时刻所述句法图中有向边的边权重;
54.根据原始文档中每个词的词表示向量更新所述句法图中节点表示向量;
55.根据所述节点表示向量和有向边的边权重得到当前时刻的文档表示信息。
56.在一种示例性实例中,所述编码模块中的获得当前时刻所述句法图中有向边的边权重,包括:
57.获得当前时刻已生成的关键词集合;
58.计算所述关键词集合的平均表示;
59.根据所述平均表示计算有向边的边权重。
60.在一种示例性实例中,所述编码模块中的根据所述平均表示计算有向边的边权重包括:
61.获得词i的词嵌入与词j的词嵌入;
62.获得词i与词j之间的依赖边类型的边类型嵌入;
63.根据所述词i的词嵌入、词j的词嵌入、词i与词j之间的依赖边类型的边类型嵌入,以及所述平均表示,计算词i与词j之间的边权重。
64.在一种示例性实例中,所述编码模块中的根据原始文档中每个词的词表示向量更新所述句法图中节点表示向量,包括:
65.将所述原始文档中的每个词表示为词嵌入;
66.通过拼接预先获得的词性标注对应的每个词的词性嵌入和位置信息对应的位置向量,得到每个词的词表示向量;
67.根据所述原始文档对应的词表示向量得到语序感知的文档表示;
68.根据所述语序感知的文档表示更新所述句法图中节点表示向量。
69.在一种示例性实例中,所述编码模块还设置为:合并所述原始文档中具有同样词根形式的所有节点。
70.在一种示例性实例中,所述解码模块设置为:
71.根据所述文档表示信息、当前时刻关键词的已生成词以及所述当前时刻已生成的关键词信息,预测当前时刻关键词的待生成词。
72.在一种示例性实例中,所述解码模块中的预测当前时刻关键词的待生成词,包括:
73.根据所述文档表示信息,当前时刻关键词的已生成词以及所述当前时刻已生成的关键词信息,获取在所述文档表示信息中文档的词的预测概率分布;
74.基于集束搜索,根据得到的预测概率分布确定当前时刻关键词的下一个词。
75.在一种示例性实例中,所述解码模块包括:门限线性单元glu gru、预测模块、生成模块;其中,
76.glu gru设置为:预测第n个关键词的第一个词,根据所述文档表示信息得到用于初始化gru隐状态的当前的上下文向量;预测第n个关键词的第i个词,根据所述文档表示信息、所述当前时刻已生成的关键词,以及第n个关键词中已生成的词,计算出gru隐状态si;
77.预测模块设置为:根据gru隐状态si和所述文档表示信息计算注意力权重,以获得所述文档表示信息中文档的词的预测概率分布;
78.生成模块设置为:根据得到的预测概率分布确定当前时刻关键词的下一个词。
79.在一种示例性实例中,所述解码模块还包括:推断模块,设置为:
80.对所述预测模块中的集束搜索中前一时刻同一词产生的l个后代节点,以其预测顺序作为惩罚,将经过惩罚的对数概率作为当前时刻得分,来确定下一时刻的候选序列,其中,l为待处理文档中词的数量;
81.和/或,
82.对比所述预测模块中的集束搜索中所有词的候选序列和当前时刻已生成的关键词序列y
《n
,对相同的n-gram进行惩罚,使用经过惩罚的序列得分函数确定下一时刻候选序列。
83.本技术实施例再提供一种编码器,包括上述任一项所述的编码模块。
84.本技术实施例还提供一种解码器,包括上述任一项所述的解码模块。
85.本技术实施例通过利用已经生成的关键词信息动态修改原始文档的句法图结构的方式,将关键词生成过程即解码信息传递到了编码处理部分,从而同时解决了建模关键词关系和获得更好地语义表示这两个问题,提升了文档编码的效果。
86.在一种实施例中,本技术进一步通过配合多样性推断过程,获得了更加准确和多样的关键词序列。也就是说,提高了关键词生成的准确率,减少了产生的重复关键词、增多了产生的关键词总数。
87.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
88.附图用来提供对本技术技术方案的进一步理解,并且构成说明书的一部分,与本技术的实施例一起用于解释本技术的技术方案,并不构成对本技术技术方案的限制。
89.图1为本技术实施例中关键词抽取方法的流程示意图;
90.图2为本技术实施例中关键词抽取装置的组成结构示意图;
91.图3为本技术实施例中关键词抽取装置中的编码模块的组成结构示意图;
92.图4为本技术实施例中关键词抽取装置中的解码模块的组成结构示意图。
具体实施方式
93.为使本技术的目的、技术方案和优点更加清楚明白,下文中将结合附图对本技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互任意组合。
94.在本技术一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
95.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
96.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
97.在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
98.图1为本技术实施例中关键词抽取方法的流程示意图,如图1所示,包括:
99.步骤100:根据待处理文档的句法信息和当前时刻已生成的关键词信息进行编码处理,获取当前时刻的文档表示信息。
100.在一种示例性实例中,待处理文档x包括若干个词,可以表示为:x={x1,

,x
l
},xi表示每个词。
101.在一种示例性实例中,关键词信息是一个关键词序列,包含n个关键词:{y1,

,yn},其中,每个关键词由若干个词构成;第j个关键词表示为:在生成第j个关键词时,已经生成的关键词序列表示为:y
《j
={y1,

,y
j-1
}。
102.在一种示例性实例中,可以采用基于序列到序列框架的集束搜索生成关键词序列。其中,集束搜索是一种用于逐步求解问题中的启发式搜索算法,在求解的每一步以某种评判准则在所有候选节点中选择最佳的k个节点,以减少时间和空间开销。集束搜索被广泛应用于序列到序列框架的生成过程中。
103.可选地,本步骤之前,还包括:获取待处理文档的句法信息。
104.在一种示例性实例中,获取待处理文档的句法信息,可以包括:
105.从每个待处理文档中抽取出一个或多个句法树以构成句法树集合,在一种实施例中,可以使用如预先训练的依赖解析器(dependency parser,也称为依存句法分析器)来实现;
106.根据对应的句法树集合,为每个待处理文档构建句法图;该句法图以待处理文档中的词为节点即句法图的节点为待处理文档中的词,以词之间的依赖边作为有向边即句法图的有向边为待处理文档中词与词之间的依赖边。
107.在一种示例性实例中,步骤100可以包括:
108.根据当前时刻已生成的关键词信息更新待处理文档的句法图信息,获得当前时刻句法图中有向边的边权重;
109.根据原始文档中每个词的词表示向量更新句法图中节点表示向量;
110.根据更新后的节点表示向量和有向边的边权重得到当前时刻的文档表示信息。
111.在一种示例性实例中,还包括:
112.合并原始文档中具有同样词根形式的所有节点。
113.在一种示例性实例中,根据当前时刻已生成的关键词信息更新待处理文档的句法图信息,获得当前时刻句法图中有向边的边权重,可以包括:
114.获得当前时刻已生成的关键词集合;
115.计算关键词集合的平均表示;
116.根据计算得到的平均表示计算有向边的边权重。
117.在一种示例性实例中,根据计算得到的平均表示计算有向边的边权重,可以包括:
118.获得词i的词嵌入与词j的词嵌入;
119.获得词i与词j之间的依赖边类型的边类型嵌入;
120.根据获得的词i的词嵌入、词j的词嵌入、词i与词j之间的依赖边类型的边类型嵌入,以及计算得到的平均表示,计算词i与词j之间的边权重。
121.在一种示例性实例中,根据原始文档中每个词的词表示向量更新句法图中节点表示向量,可以包括:
122.将原始文档中的每个词表示为词嵌入;
123.通过拼接预先获得的词性标注对应的每个词的词性嵌入和位置信息对应的位置向量,得到每个词的词表示向量;
124.根据原始文档对应的词表示向量得到语序感知的文档表示;
125.根据语序感知的文档表示更新所述句法图中节点表示向量。
126.本技术实施例中,根据依赖边所对应的依赖关系不同,可以确定出不同的边的权重,从而构造包含句法信息的有向带权重稀疏的句法图。由于句法信息能够识别出词在句子中的成分和词与词之间的句法依赖关系,因此,本技术实施例中,利用待处理文档的句法信息,为很好地帮助抽取每句话中的关键信息提供了良好的前提条件。
127.在一种示例性实例中,获得当前时刻句法图中有向边的边权重,可以包括:
128.获得当前时刻已生成的关键词的关键词集合y
《n
,n为大于1的整数;
129.获取生成第n个关键词时即当前时刻已生成的关键词集合y
《n
的平均表示,n为大于1的整数;在一种实施例中,平均表示可以为:关键词中所有词嵌入经过平均池化后的向量;
130.拼接获得的平均表示、边的两个节点的词嵌入、对应的依赖边类型d
ij
的边类型嵌入和根据已生成的关键词获得的关键词语义表示;
131.拼接后的信息经过全连接层(fc)和激活函数如sigmoid函数等,得到任意两个节点如节点wi和节点wj的边的权重。边的权重的取值范围为[0,1]。
[0132]
在一种示例性示例中,步骤100可以包括:
[0133]
利用生成的每个关键词信息,动态更新包含待处理文档的句法信息的句法图的结构,以生成全局信息感知的文档表示信息即文档表示h。这样,解决了全局信息无法传递到编码器端的问题。在一种实施例中,比如可以采用预先设置的动态打分函数来实现对句法图的结构的更新。
[0134]
在一种示例性实例中,利用生成的每个关键词信息,动态更新包含待处理文档的句法信息的句法图的结构,以生成全局信息感知的文档表示信息,包括:
[0135]
将待处理文档中每个字符xi表示为词嵌入的形式,比如可以使用fastext等,获取待处理文档中每个字符xi的语义表示;其中,fasttext是一种预训练词向量/词嵌入的名称.
[0136]
在生成第n个关键词时,根据已生成的关键词集合y
《n
的平均表示(即关键词中所有词嵌入经过平均池化后的向量)计算句法图中所有边的权重;计算任意两个节点wi和wj的边的权重时,拼接获得的平均表示、相应节点的词嵌入、对应的依赖边类型d
ij
的边类型嵌入和根据已生成的关键词获得的关键词语义表示;拼接后的信息经过fc和激活函数如sigmoid函数等,得到取值在[0,1]的边权重,以实现对句法图的结构的更新;
[0137]
拼接预先获得的词性标注对应的词的词性嵌入和预先获得的位置信息(即词在整个待处理文档中的绝对位置)对应的位置向量,得到更新后的待处理文档中每个词的词表示向量;
[0138]
对待处理文档对应的词表示向量的列表进行编码处理,得到语序感知的第一文档表示(即向量列表形式的表示);
[0139]
使用多层图神经网络(gcn),对句法图更新节点表示向量即更新句法图中每个词的词表示向量进行融合处理,得到融合句法信息后的第二文档表示;其中,每个节点的初始表示向量为编-解码器中编码器的输出,多层gcn的输出是融合句法信息后的文档表示;在一种实施例中,融合句法信息的图神经网络可以是图卷积神经网络(gcn,graph convolution network);
[0140]
合并待处理文档中具有同样词根形式的所有节点,比如利用平均池化层来实现合
并,得到最终的文档表示h。在一种实施例中,比如合并的节点为节点词为china的节点和节点词为chinese的节点。本技术实施例中,通过这样的合并处理,避免了由于句法树只在句子内部进行交互而缺少句子之间连接的问题。
[0141]
本步骤通过根据待处理文档得到的能够反映词在句子中的成分和词间的句法依赖关系的句法信息,以及已经由解码器生成的关键词序列,将关键词生成过程即解码信息传递到了编码处理部分,即在词语义信息和语序信息以外,引入了句法信息和图神经网络。生成的文档表示(即向量列表)是全局信息感知的更好的文档表示,解决了建模关键词关系和获得更好地语义表示这两个问题,为提升文档编码效果提供了良好的基础。
[0142]
步骤101:根据所述当前时刻的文档表示信息和所述当前时刻已生成的关键词信息进行解码处理,获取下一时刻的关键词信息。
[0143]
在一种示例性实例中,关键词信息是一个关键词序列,包含n个关键词:{y1,

,yn},其中,每个关键词由若干个词构成;第j个关键词表示为:在生成第j个关键词时,已经生成的关键词序列表示为:y
《j
={y1,

,y
j-1
}。在一种实施例中,可以采用基于序列到序列框架的集束搜索生成关键词序列。
[0144]
在一种示例性实例中,编-解码器中的解码器的输入为编-解码器中的编码器生成的文档表示以及已经由编-解码器中的解码器生成的关键词序列,使得编-解码器中的解码器属于自回归的解码器,因此,本技术实施例中的解码器的上一时刻的输出词也将在下一时刻作为该解码器的输入,而输出是当前正在解码的关键词的下一个词。
[0145]
解码阶段可以看作编码的逆过程。在解码阶段,在一种示例性实例中,步骤101可以包括:
[0146]
根据文档表示信息、当前时刻关键词的已生成词以及当前时刻已生成的关键词信息即关键词序列,预测当前时刻关键词(即正在生成的第n个关键词)包括的词即当前时刻关键词的待生成词。
[0147]
在一种示例性实例中,预测当前时刻关键词的待生成词,可以包括:
[0148]
根据文档表示信息,当前时刻关键词的已生成词以及当前时刻已生成的关键词信息即关键词序列,获取在最终的文档表示h中文档的词的预测概率分布;
[0149]
基于集束搜索,根据得到的预测概率分布确定当前时刻关键词包括的下一个词。
[0150]
举个例子来看,假设原始文档1包括:[i am a chinese i love china],这也是文档表示1和文档表示2对应的词列表。合并之后,合并了具有相同词根的词,合并后的文档2包括:[i am a china love],对应最终文档表示的词列表。最终的文档表示h中文档的词指的就是文档2包括的词。
[0151]
在一种示例性实例中,获取在最终的文档表示h中文档的词上的预测概率分布,可以包括:
[0152]
预测第n个关键词的第一个词,文档表示h输入门限线性单元(glu),得到当前的上下文向量c;当前时刻的上下文向量c用于初始化解码器的gru隐状态;
[0153]
预测第n个关键词的第i个词,文档表示h、当前时刻已生成的关键词y
《n
,以及第n个关键词中已生成的词输入glu,计算得到gru隐状态si;根据gru隐状态si和文档表示h使用注意力机制计算注意力权重,以获得最终的文档表示h中文档的词上的预测概率分布
[0154]
需要说明的是,在训练时,解码器所有时刻的输入均为数据集中的关键词的词的标签,使用预测概率分布与当前时刻的词标签之间的交叉熵计算损失函数,并通过反向传播更新整个编-解码器模型参数,比如:编码器部分包括gru、gcn和dgcn中的参数,解码器部分包括gru中的参数。
[0155]
在一种示例性实例中,根据得到的预测概率分布确定当前关键词包括的下一个词,可以包括:
[0156]
在推断(即预测)第n个关键词的第i个词时,已经生成的关键词序列为y
《n
,集束搜索维护k个候选序列其中,假设待处理文档中词数量为l,那么,当前时刻解码器会生成一个预测分布p,从而得到k*l个候选序列,相关技术中的集束搜索利用每个候选序列中经过序列长度惩罚的词的预测概率的对数和作为每个序列的候选得分选择当前时刻的k个序列作为推断第n个关键词的第i 1个词时的候选序列,并在整个集束搜索结束后得到预测的第n个关键词。
[0157]
本技术实施例提供的关键词抽取方法,通过利用已经生成的关键词信息动态修改原始文档的句法图结构的方式,将关键词生成过程即解码信息传递到了编码处理部分,从而同时解决了建模关键词关系和获得更好地语义表示这两个问题,提升了文档编码的效果。也就是说,通过本技术提供的关键词抽取方法,一方面,在语序信息以外有效利用了句法信息,提高了语义编码质量;另一方面,将解码信息传递到编码器端,这样,在输出文档表示时同时建模关键词之间关系,提升了文档编码的效果。本技术实施例在编码器端的这些改进,克服相关技术中的缺点,同时解决了关键词抽取任务中序列到序列框架的两个问题。
[0158]
本技术实施例中的关键词序列可以采用基于序列到序列框架的集束搜索生成。其中,集束搜索是一种用于逐步求解问题中的启发式搜索算法,在求解的每一步以某种评判准则在所有候选节点中选择最佳的k个节点,以减少时间和空间开销。集束搜索被广泛应用于序列到序列框架的生成过程中。但是,采用集束搜索方式生成的关键词序列会出现重复和单调的现象,为了缓解这个问题,在一种示例性实例中,本技术实施例中的根据得到的预测概率分布确定下一个输出的关键词包括的词,可以包括:
[0159]
对集束搜索中前一时刻同一词产生的l个后代节点,以其预测顺序作为惩罚,将经过惩罚的对数概率作为当前时刻得分,来确定下一时刻的候选序列。其中,l为待处理文档中词的数量。通过这样的词级别多样性惩罚,避免了某一时刻概率较高的词影响集束搜索结果的多样性,即避免了生成的关键词序列单调的现象;这里,后代节点即是当前时刻,以前一个词所在序列为基础,在大小为l的词库上预测得到的概率分布。
[0160]
和/或,
[0161]
对比集束搜索中所有词的候选序列和当前时刻已生成的关键词序列y
《n
,对相同的n元语法(n-gram)进行惩罚,使用带有惩罚项的序列得分函数来确定下一时刻的候选序列。通过这样的序列级别多样性惩罚,避免了集束搜索出现和之前生成的过于相似的结果的情况,即避免了生成的关键词序列出现重复的现象。其中,n-gram是一种基于统计语言模型的算法。
[0162]
本技术实施例中,通过配合多样性推断过程,获得了更加准确和多样的关键词序列。也就是说,提高了关键词生成的准确率(即准确),减少了产生的重复关键词、增多了产
生的关键词总数(即多样性)。也就是说,通过在推断过程中引入多样性推断,有效地产生了多样的输出,实验结果表明,通过配合本技术实施例中的多样性推断过程,产生了更加多样、准确的关键词序列。
[0163]
本技术实施例提出的动态图编码器的改进方法,同时缓解了关键词抽取任务中序列到序列框架的两个问题。而且,进一步配合多样性推断过程,产生了多样、准确的关键词序列。
[0164]
本技术实施例提供的关键词抽取方法可以应用于如商品描述、情感识别等多种使用场景。
[0165]
本技术还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项的关键词抽取方法。
[0166]
本技术再提供一种实现关键词抽取的设备,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行上述任一项所述的关键词抽取方法的步骤。
[0167]
图2为本技术关键词抽取装置的组成结构示意图,如图2所示,包括:编码模块、解码模块,其中,
[0168]
编码模块,设置为根据待处理文档的句法信息和当前时刻已生成的关键词信息进行编码处理,获取当前时刻的文档表示信息;
[0169]
解码模块,设置为根据当前时刻的文档表示信息和当前时刻已生成的关键词信息进行解码处理,获取下一时刻的关键词信息。
[0170]
在一种示例性实例中,本技术关键词抽取装置还包括:预处理模块;
[0171]
预处理模块,设置为获取待处理文档的句法信息。
[0172]
在一种示例性实例中,预处理模块可以设置为:
[0173]
从每个待处理文档中抽取出一个或多个句法树以构成句法树集合,在一种实施例中,可以使用如预先训练的依赖解析器(也称为依存句法分析器)来实现;
[0174]
根据对应的句法树集合,为待处理文档构建句法图;该句法图以待处理文档中的词为节点即句法图的节点为待处理文档中的词,以词之间的依赖边作为有向边即句法图的有向边为待处理文档中词与词之间的依赖边。
[0175]
在一种示例性实例中,编码模块具体可以设置为:
[0176]
根据当前时刻已生成的关键词信息更新待处理文档的句法图信息,获得当前时刻句法图中有向边的边权重;
[0177]
根据原始文档中每个词的词表示向量更新句法图中节点表示向量;
[0178]
根据更新后的节点表示向量和有向边的边权重得到当前时刻的文档表示信息。
[0179]
在一种示例性实例中,编码模块中的获得当前时刻句法图中有向边的边权重,可以包括:
[0180]
获得当前时刻已生成的关键词集合;计算关键词集合的平均表示;根据计算得到的平均表示计算有向边的边权重。
[0181]
在一种示例性实例中,编码模块中的根据计算得到的平均表示计算有向边的边权重,可以包括:
[0182]
获得词i的词嵌入与词j的词嵌入;获得词i与词j之间的依赖边类型的边类型嵌入;根据获得的词i的词嵌入、词j的词嵌入、词i与词j之间的依赖边类型的边类型嵌入,以
及计算得到的平均表示,计算词i与词j之间的边权重。
[0183]
在一种示例性实例中,编码模块中的根据原始文档中每个词的词表示向量更新句法图中节点表示向量,可以包括:
[0184]
将原始文档中的每个词表示为词嵌入;通过拼接预先获得的词性标注对应的每个词的词性嵌入和位置信息对应的位置向量,得到每个词的词表示向量;根据原始文档对应的词表示向量得到语序感知的文档表示;根据语序感知的文档表示更新所述句法图中节点表示向量。
[0185]
由于句法信息能够识别出词在句子中的成分和词与词之间的句法依赖关系,因此,本技术实施例中,利用待处理文档的句法信息,为很好地帮助抽取每句话中的关键信息提供了良好的前提条件。
[0186]
在一种示例性实例中,预处理模块还设置为:根据已生成的关键词获得的关键词语义表示;此时,编码模块中的获得当前时刻句法图中有向边的边权重,可以包括:
[0187]
获得当前时刻已生成的关键词的关键词集合y
《n
,n为大于1的整数;
[0188]
获取生成第n个关键词时即当前时刻已生成关键词集合y
《n
的平均表示,n为大于1的整数;在一种实施例中,平均表示可以为:关键词中所有词嵌入经过平均池化后的向量;
[0189]
拼接获得的平均表示、边的两个节点的词嵌入、对应的依赖边类型d
ij
的边类型嵌入和根据已生成的关键词获得的关键词语义表示;
[0190]
拼接后的信息经过fc和激活函数如sigmoid函数等,得到任意两个节点wi和wj的边的权重。边的权重的取值范围为[0,1]。
[0191]
在一种示例性示例中,编码模块可以设置为:
[0192]
利用生成的每个关键词信息,动态更新包含待处理文档的句法信息的句法图的结构,以生成全局信息感知的文档表示信息。这样,解决了全局信息无法传递到编码器端的问题。在一种实施例中,比如可以采用预先设置的动态打分函数来实现对句法图的结构的更新。
[0193]
在一种示例性示例中,编码模块还设置为:合并原始文档中具有同样词根形式的所有节点。
[0194]
在一种示例性实例中,预处理模块还设置为:
[0195]
将待处理文档中每个字符xi表示为词嵌入的形式,比如可以使用如fastext等,获取待处理文档中每个字符xi的语义表示;
[0196]
编码模块(本实施例中也可称为动态图编码器),如图3所示,可以包括:更新模块、编码处理模块、多层gcn、合并模块;其中,
[0197]
更新模块,设置为在生成第n个关键词时,根据已生成的关键词集合y
《n
的平均表示(即关键词中所有词嵌入经过平均池化后的向量)计算句法图中所有边的权重;计算任意两个节点wi和wj的边的权重时,拼接获得的平均表示、相应节点的词嵌入、对应的依赖边类型d
ij
的边类型嵌入和根据已生成的关键词获得的关键词语义表示;拼接后的信息经过fc和激活函数如sigmoid函数等,得到取值在[0,1]的边权重,以实现对句法图的结构的更新得到句法图更新信息;
[0198]
编码处理模块,设置为拼接预先获得的词性标注对应的词的词嵌入和预先获得的位置信息对应的位置向量,得到更新后的待处理文档中每个词的词表示向量即句法图更新
节点表示向量;对待处理文档对应的词表示向量的列表进行编码处理,得到语序感知的第一文档表示(也称为向量列表);
[0199]
多层gcn,设置为对句法图更新节点表示向量即更新句法图中每个词的词表示向量进行融合处理,得到融合句法信息后的第二文档表示;其中,每个节点的初始表示向量为编-解码器中编码器的输出,多层gcn的输出是融合句法信息后的文档表示;
[0200]
合并模块,设置为合并待处理文档中具有同样词根形式的所有节点,比如利用平均池化层来实现合并,得到最终的文档表示h。本技术实施例中,通过这样的合并处理,避免了由于句法树只在句子内部进行交互而缺少句子之间连接的问题。
[0201]
需要说明的是,实际上每个词的输入表示向量是不变的,假设为x,如果原本的句法图是g1,更新后的句法图是g2,那么,这个更新模块的过程是:gcn(x,g1)-gcn(x,g2),其处理过程和节点表示更新流程是不变的,改变的只是上一个输出的句法图信息。
[0202]
本技术实施例中的编码模块,通过根据待处理文档得到的能够反映词在句子中的成分和词与词之间的句法依赖关系的句法信息,以及已经由解码器生成的关键词序列,将关键词生成过程即解码信息传递到了编码处理部分,即在词语义信息和语序信息以外,引入了句法信息和图神经网络。生成的文档表示(即向量列表)是全局信息感知的更好的文档表示,解决了建模关键词关系和获得更好地语义表示这两个问题,为提升文档编码效果提供了良好的基础。
[0203]
本技术还提供一种编码器,包括图3所示的任一项编码模块。
[0204]
在一种示例性实例中,解码模块可以设置为:
[0205]
根据当前时刻的文档表示信息、当前时刻关键词的已生成的词以及当前时刻已生成的关键词信息即关键词序列,预测关键词包括的词。
[0206]
在一种示例性实例中,解码模块中的预测关键词包括的词,可以包括:
[0207]
根据文档表示信息,当前时刻关键词已生成的词以及当前时刻已生成的关键词信息即关键词序列,获取在最终文档表示h中文档的词的预测概率分布;
[0208]
基于集束搜索,根据得到的预测概率分布确定当前时刻关键词包括的下一个词。
[0209]
在一种示例性实例中,如图4所示,解码模块可以包括:门限线性单元(glu) gru、预测模块、生成模块;其中,
[0210]
glu gru设置为:预测第n个关键词的第一个词时,根据文档表示h得到当前的上下文向量c;当前时刻的上下文向量c用于初始化gru隐状态;在预测第n个关键词的第i个词时,根据文档表示h、当前时刻已生成的关键词y
《n
,以及第n个关键词中已生成的词计算出gru隐状态si;
[0211]
预测模块设置为:根据gru隐状态si和文档表示h使用注意力机制计算注意力权重,以获得最终文档表示h中文档的词的预测概率分布
[0212]
生成模块设置为:根据得到的预测概率分布确定当前时刻关键词包括的下一个词。
[0213]
预测模块设置为:基于序列到序列框架的集束搜索生成当前关键词包括的下一个词。在一种实施例中,可以具体设置为:
[0214]
在推断(即预测)第n个关键词的第i个词时,已经生成的关键词序列为y
《n
,集束搜
索维护k个候选序列其中,假设待处理文档中词数量为l,那么,当前时刻解码器会生成一个预测分布p,从而得到k*l个候选序列,相关技术中的集束搜索利用每个候选序列中经过序列长度惩罚的词的预测概率的对数和作为每个序列的候选得分选择当前时刻的k个序列作为推断第n个关键词的第i 1个词时的候选序列,并在整个集束搜索结束后得到预测的第n个关键词。
[0215]
在一种示例性实例中,解码模块还包括:推断模块,设置为:
[0216]
对预测模块中的集束搜索中前一时刻同一词产生的l个后代节点,以其预测顺序作为惩罚,将经过惩罚的对数概率作为当前时刻得分,来确定下一时刻的候选序列。其中,l为待处理文档中词的数量。通过这样的词级别多样性惩罚,避免了某一时刻概率较高的词影响集束搜索结果的多样性,即避免了生成的关键词序列单调的现象;
[0217]
和/或,
[0218]
对比预测模块中的集束搜索中所有词的候选序列和当前时刻已生成的关键词序列y
《n
,对相同的n-gram进行惩罚,使用带有惩罚项的序列得分函数来确定下一时刻的候选序列。通过这样的序列级别多样性惩罚,避免了集束搜索出现和之前生成的过于相似的结果的情况,即避免了生成的关键词序列出现重复的现象。
[0219]
本技术实施例中,通过配合多样性推断过程,获得了更加准确和多样的关键词序列。也就是说,提高了关键词生成的准确率(即准确),减少了产生的重复关键词、增多了产生的关键词总数(即多样性)。也就是说,通过在推断过程中引入多样性推断,有效地产生了多样的输出,实验结果表明,通过配合本技术实施例中的多样性推断过程,产生了更加多样、准确的关键词序列。
[0220]
本技术还提供一种解码器,包括图4所示的任一项解码模块。
[0221]
虽然本技术所揭露的实施方式如上,但所述的内容仅为便于理解本技术而采用的实施方式,并非用以限定本技术。任何本技术所属领域内的技术人员,在不脱离本技术所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本技术的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
再多了解一些

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

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

相关文献