一种词向量的生成方法及相关设备与流程

文档序号:20875946发布日期:2020-05-26 16:31阅读:182来源:国知局
一种词向量的生成方法及相关设备与流程

本发明涉及自然语言处理技术领域,特别涉及一种词向量的生成方法及相关设备。



背景技术:

文字是一种信息的载体,在我们的社会发展中起到重要作用。为了让计算机能够处理自然语言问题,首先要将这些离散的文字数学化。最简单的方法是使用one-hotrepresentation,把每个词转换成|v|维的一个向量,|v|表示词表的大小。其中该词序号所对应的位置为1,其它位置为0。2003年,yoshuabengio等人最早将神经网络应用于语言模型,提出用distributedrepresentation替代传统one-hotrepresentation来表示词向量,使得词向量不仅可计算,而且有意义。2013年,mikolov等人提出了continuousbagofwords和skip-gram模型,有效的减小了计算复杂度,以更快的训练速度得到了更好的词向量。

词向量从提出到现在已经经过了10多年的时间。早期的词向量仅是语言模型训练任务中的一个附属品,缺乏对词向量的深入研究。并且使用语言模型获取词向量时,由于隐含层的存在,在大规模文本上训练代价高。实践中发现使用1g左右大小的训练文本,在前馈神经网络和循环神经网络上分别需要1~2周的时间。这对文本量巨大或者文本变化速度快需要不断更新的应用来说是难以接受的。之后虽然continuousbagofwords与continuousbagofwords解决了训练计算量大的问题,但其实都是基于词语间的共现信息通过邻居词(在预设窗口里面的词语)的词向量推理得到当前词的词向量,与传统的居于词语间关联矩阵分解得到词向量的方法无异。

这类方法在获取目标词向量时仅考虑邻居词的影响,针对中文,已经有许多研究者提出改进方案,希望从词语的自身特征来丰富词向量的表达信息。比如把一个词拆分成字、把一个词抽取出偏旁部首。通过对字、偏旁部首训练出一套向量,然后与原始的词向量相加得到最终的词向量。目前的研究方法中都是用词向量与字向量相加的方法。这些方法没有考虑不同汉字的重要度不同,仍需改进。



技术实现要素:

本发明实施例提供了一种词向量的生成方法及相关设备,可以通过注意力机制,在字向量往词向量的转化过程中,加入了词语中的字向量的重要度,将字向量的加权平均与原始的词向量组合,获取最终的词向量,能够有效提升词向量的表达能力。

本发明实施例第一方面提供了一种词向量的生成方法,具体包括:

获取目标词语,所述目标词语为待生成词向量的词语;

通过训练模型确定所述目标词语的初始词向量、所述目标词语中的每个字的字向量以及全局变量;

通过所述全局变量以及所述每个字的字向量确定所述每个字在所述目标词语中的权值;

根据所述每个字的字向量、所述每个字在所述目标词语中的权值以及所述目标词语的初始词向量确定所述目标词语的目标词向量。

可选地,所述通过所述全局变量以及所述每个字的字向量确定所述每个字在所述目标词语中的权值包括:

确定所述目标词语中的每个字的字向量对应的转置向量以及所述目标词语中字的数量;

根据所述目标词语中的每个字的字向量对应的转置向量、所述目标词语中字的数量以及所述全局变量确定所述每个字在所述目标词语中的权值。

可选地,所述根据所述目标词语中的每个字的字向量对应的转置向量、所述目标词语中字的数量以及所述全局变量确定所述每个字在所述目标词语中的权值包括:

通过如下公式计算所述每个字在所述目标词语中的权值:

其中,ai为所述目标词语中的第i个字在所述目标词语中的权值,为所述目标词语中的第i个字的字向量对应的转置向量,uc为所述全局向量,n为所述目标词语中字的数量,exp为指数函数,k为所述目标词语中的任意一个字,为所述目标词语中的第k个字的字向量对应的转置向量,1≤k≤n。

可选地,所述根据所述每个字的字向量、所述每个字在所述目标词语中的权值以及所述目标词语的初始词向量确定所述目标词语的目标词向量包括:

将所述目标词语的初始词向量、所述目标词语中每个字在所述目标词语中的权值以及所述目标词语中每个字的字向量通过点和或者拼接操作确定所述目标词向量。

可选地,所述将所述目标词语的初始词向量、所述目标词语中每个字在所述目标词语中的权值以及所述目标词语中每个字的字向量通过点和、或者拼接操作确定所述目标词向量包括:

通如下公式计算所述目标词向量:

其中,w为所述目标词向量,w’为所述目标词语的初始词向量,为点和或者拼接操作,ai为所述目标词语中的第i个字在所述目标词语中的权值,ci为所述目标词语中的第i个字的字向量。

可选地,所述通过训练模型确定所述目标词语的初始词向量、所述目标词语中的每个字的字向量以及全局变量之前,所述方法还包括:

生成所述训练模型。

可选地,所述生成所述训练模型包括:

获取语料库对应的词语列表以及汉字列表,所述词语列表与所述汉字列表具有关联关系;

确定所述词语列表中每个词语对应的词向量以及负采样;

确定所述汉字列表中的每个汉字对应的字向量;

遍历所述语料库中的每个词语,以构造所述每个词语对应的负例集;

根据上下文窗口确定所述词语列表中的每个词语对应的上下文内容;

基于所述词向量、所述负采样、所述字向量、所述负例集以及所述上下文内容通过梯度下降法进行迭代计算,以得到所述训练模型。

本发明实施例第二方面提供了一种词向量的生成装置,其特征在于,包括:

获取单元,用于获取目标词语,所述目标词语为待生成词向量的词语;

第一确定单元,用于通过训练模型确定所述目标词语的初始词向量、所述目标词语中的每个字的字向量以及全局变量;

第二确定单元,用于通过所述全局变量以及所述每个字的字向量确定所述每个字在所述目标词语中的权值;

第三确定单元,用于根据所述每个字的字向量、所述每个字在所述目标词语中的权值以及所述目标词语的初始词向量确定所述目标词语的目标词向量。

可选地,所述第二确定单元具体用于:

确定所述目标词语中的每个字的字向量对应的转置向量以及所述目标词语中字的数量;

根据所述目标词语中的每个字的字向量对应的转置向量、所述目标词语中字的数量以及所述全局变量确定所述每个字在所述目标词语中的权值。

可选地,所述第二确定单元还具体用于:

通过如下公式计算所述每个字在所述目标词语中的权值:

其中,ai为所述目标词语中的第i个字在所述目标词语中的权值,为所述目标词语中的第i个字的字向量对应的转置向量,uc为所述全局向量,n为所述目标词语中字的数量,exp为指数函数,k为所述目标词语中的任意一个字,为所述目标词语中的第k个字的字向量对应的转置向量,1≤k≤n。

可选地,所述第三确定单元具体用于:

将所述目标词语的初始词向量、所述目标词语中每个字在所述目标词语中的权值以及所述目标词语中每个字的字向量通过点和或者拼接操作确定所述目标词向量。

可选地,所述第三确定单元还具体用于:

通如下公式计算所述目标词向量:

其中,w为所述目标词向量,w’为所述目标词语的初始词向量,为点和或者拼接操作,ai为所述目标词语的第i个字在所述目标词语中的权值,ci为所述目标词语中的第i个字的字向量。

可选地,所述装置还包括训练单元,所述训练单元,用于生成所述训练模型。

可选地,所述训练单元具体用于:

获取语料库对应的词语列表以及汉字列表,所述词语列表与所述汉字列表具有关联关系;

确定所述词语列表中每个词语对应的词向量以及负采样;

确定所述汉字列表中的每个汉字对应的字向量;

遍历所述语料库中的每个词语,以构造所述每个词语对应的负例集;

根据上下文窗口确定所述词语列表中的每个词语对应的上下文内容;

基于所述词向量、所述负采样、所述字向量、所述负例集以及所述上下文内容通过梯度下降法进行迭代计算,以得到所述训练模型。

本发明实施例第三方面提供了一种处理器,所述处理器用于运行计算机程序,所述计算机程序运行时执行如上述各方面所述的词向量的生成方法的步骤。

本发明实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时上述各方面所述的词向量的生成方法的步骤。

综上所述,可以看出,本发明实施例提供的技术方案中,在词向量生成的过程中加入注意力机制,通过全局向量,对词语中的不同组成部分的重要性进行评估,然后通过对词语的原始词向量、词语所包含字的字向量的加权平均,最终得到每个词对应的词向量,相对于现有技术得到的词向量,能够有效的提升词向量的表达能力。

附图说明

图1为本发明实施例提供的词向量的生成方法的实施例示意图;

图2为本发明实施例提供的训练模型的生成方法的流程示意图;

图3为本发明实施例提供的训练模型的结构示意图;

图4为本发明实施例提供的词向量的生成装置的实施例示意图;

图5为本发明实施例提供的服务器的硬件结构示意图。

具体实施方式

本发明实施例提供了一种词向量的生成方法及相关设备,可以通过注意力机制,在字向量往词向量的转化过程中,加入了词语中的字向量的重要度,将字向量的加权平均与原始的词向量组合,获取最终的词向量,能够有效提升词向量的表达能力。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

下面从词向量的生成装置的角度对本发明的词向量的生成方法进行说明,该词向量的生成装置可以是服务器,也可以是服务器中的服务单元,具体不做限定。

请参阅图1,图1为本发明实施例提供的词向量的生成方法的实施例示意图,包括:

101、获取目标词语。

本实施例中,词向量的生成装置可以获取目标词语,其中该目标词语为待生成词向量的词语,此处具体不限定获取方式,例如可以接收用户输入的目标词语。

102、通过训练模型确定目标词语的初始词向量、目标词语中的每个字的字向量以及全局变量。

本实施例中,词向量的生成装置可以首先生成一个训练模型,之后,将该目标词语输入训练模型,以输出目标词语的初始词向量、目标词语中的每个字的字向量以及全局变量。

103、通过全局变量以及每个字的字向量确定每个字在目标词语中的权值。

本实施例中,词向量的生成装置在得到全局变量以及目标词语中的每个字的字向量之后,可以首先确定目标词语中的每个字的字向量对应的转置向量以及目标词语中字的数量,之后根据目标词语中的每个字的字向量对应的转置向量、目标词语中字的数量以及全局变量确定所述每个字在目标词语中的权值,具体的,通过如下公式计算每个字在目标词语中的权值:

其中,ai为目标词语中的第i个字在目标词语中的权值,为目标词语中的第i个字的字向量对应的转置向量,uc为全局向量,n为目标词语中字的数量,exp为指数函数,k为目标词语中的任意一个字,为目标词语中的第k个字的字向量对应的转置向量,1≤k≤n。

需要说明的是,此处具体不限定如何确定目标词语中每个字的字向量对应的转置向量,例如可以通过现有的转置向量转换方法。

104、根据每个字的字向量、每个字在目标词语中的权值以及目标词语的初始词向量确定目标词语的目标词向量。

本实施例中,词向量的生成装置在得到每个字的字向量、每个字在目标词语中的权值以及目标词语的初始词向量之后,可以将目标词语的初始词向量、目标词语中每个字在目标词语中的权值以及目标词语中每个字的字向量通过点和或者拼接操作确定目标词向量,具体的可以通过如下公式计算目标词向量:

其中,w为目标词向量,w’为目标词语的初始词向量,为点和或者拼接操作,ai为所述目标词语中的第i个字在目标词语中的权值,ci为目标词语中的第i个字的字向量。

综上所述,可以看出,本发明提供的实施例中,在词向量生成的过程中加入注意力机制,通过全局向量,对词语中的不同组成部分的重要性进行评估,然后通过对词语的原始词向量、词语所包含字的字向量的加权平均,最终得到每个词对应的词向量,相对于现有技术得到的词向量,能够有效的提升词向量的表达能力。

下面对词向量的生成装置如何确定训练模型进行说明,请参阅图2,图2为本发明实施例提供的词向量的生成装置生成训练模型的流程示意图,包括:

201、获取语料库对应的词语列表以及汉字列表。

本实施例中,词向量的生成装置可以获取语料库对应的词语列表以及汉字列表,其中该词语列表与该汉字列表具有关联关系,也就是说,词语列表中的所有字均有可以在汉字列表中找到一样的字。具体的,可以对语料库中的文章进行分词,得到初始分词列表,由于得到的分词包括一些很少用到的词语,可以统计每个词在语料库的文章中的频率,根据参数min_time删除出现次数少于预设值(例如100次,当然也还可以是其他数值,具体不限定)的罕见词,得到词语列表v,之后统计词语列表v中出现的所有字,得到字列表c。

可以理解的是,该语料库可以为维基百科的中文数据集,也可以为百度百科的中文数据集,具体不做限定,另外可以采用常用的中文分词工具进行分词,此处具体不限定分词工具的种类,只要能完成分词即可。

202、确定词语列表中每个词语对应的词向量以及负采样。

本实施例中,词向量的生成装置可以随机的初始化两套词向量:w1以及w2,该w1以及其中,表示矩阵,|v|表示词语列表的大小,例如包括多少个词语,d表示维度(例如可以为100,当然也可以是其他的数值,具体不限定),该w1用于模型的输入,该w2为词语列表v中的每个词语对应的负采样。

203、确定汉字列表中的每个汉字对应的字向量。

本实施例中,词向量的生成装置可以随机的初始化字列表c中的每个字的字向量。

需要说明的是,此处具体不限定如何得到每个词语的词向量、负采样以及每个汉字对应的字向量。

可以理解的是,通过步骤202可以确定词语列表中的每个词语对应的词向量以及负采样,通过步骤203可以确定汉字列表中的每个汉字对应的字向量,然而这两个步骤之间并没有执行顺序的限制,可以先执行步骤202,也可以先执行步骤203,或者同时执行,具体不做限定。

204、遍历语料库中的每个词语,以构造每个词语对应的负例集。

本实施例中,为了提高训练模型的训练效果,可以遍历语料库中的每个词语x,以构造每个词语对应的负例集neg(x),其中该负例集neg(x)的大小为k,也即负例集neg(x)中包括k个词语。

205、根据上下文窗口确定词语列表中的每个词语对应的上下文内容。

本实施例中,词向量的生成装置可以设置上下文窗口的长度c,之后可以根据上下文窗口的长度确定词语列表中的每个词语对应的语料库中的上下文内容,例如若当前词语为xi,上下文窗口的长度为c,则当前词语xi的上下文词{xi-c,xi-c+1,…,xi-1,xi+1,…,xi+c-1,xi+c}。

需要说明的是,通过步骤204可以构造每个词语对应的负例集,通过步骤205可以确定词语列表中的每个词语对应的上下文内容,然而这两个步骤之间并没有执行顺序的限制,可以先执行步骤204,也可以先执行步骤205,或者同时执行,具体不做限定。

206、基于词向量、负采样、字向量、负例集以及上下文内容通过梯度下降法进行迭代计算,以得到训练模型。

本实施例中,词向量的生成装置可以基于词向量、负采样、自向量、负例集以及上下文内容通过梯度下降法进行迭代计算,以得到训练模型,具体如下:

通过如下公式计算训练过程中的损失函数:

其中,l为训练过程中的损失函数,|corpus|表示语料库的大小(例如语料库中包括多少个词语),xi为语料库中的词语,context(xi)为当前词语xi的上下文词语;

之后,通过梯度下降法对context(xi)中出现词语中的词在w1中的词向量、context(xi)中出现词语中的字在c中的字向量、u在w2中的词向量以及全局变量进行迭代计算,直至收敛,具体如下:

通过如下公式对context(xi)中出现词语中的词在w1中的词向量进行迭代计算,直至收敛:

其中,wi为context(xi)中出现词语中的词在w1中的词向量,η为学习率,l为训练过程中的损失函数;

通过如下公式context(xi)中出现词语中的字在c中的字向量进行迭代计算,直至收敛:

其中,ci为context(xi)中出现词语中的字在c中的字向量,η为学习率,l为训练过程中的损失函数;

通过如下公式对u在w2中的词向量进行迭代计算,直至收敛:

其中,wu为u在w2中的词向量,η为学习率,l为训练过程中的损失函数,u∈{xi}∪neg(xi);

通过如下公式对全局变量进行迭代计算,直至收敛:

其中,uc为全局变量,η为学习率,l为训练过程中的损失函数。

最终得到训练模型。

下面结合图3对训练模型是如何预测当前词语的概率值进行说明,请参阅图3,图3为本发明实施例提供的训练模型的结构图:

首先设置上下文窗口的长度c,选取当前词语xi的上下文词{xi-c,xi-c+1,…,xi-1,xi+1,…,xi+c-1,xi+c}作为训练模型的原始输入,以图3中的“中国”、“制造”、“世界”以及“一流”为当前词语xi进行说明,输出w’、c1、c2以及uc:

图3中的w’为词语“中国”的初始词向量,c1为“中”字的字向量,c2为“国”字的字向量,a1为通过步骤103中计算出的“中”字在词语“中国”中的权值,a2为为通过步骤103中计算出的“国”字在词语“中国”中的权值,之后通过步骤104中的公式计算词语“中国”的目标词向量w,以此类推,可以计算出词语“制造”、“世界”、“一流”的初始词向量,字向量以及每个字对应的权值,之后计算得到每个词语的目标词向量,然后通过如下公式对上下文词的词向量求平均:

其中,以x为特征,对当前词语的可能性进行预测,得出词语“水平”的概率值最高。

上面对本发明实施例提供的词向量的生成方法进行说明,下面结合图4对本发明实施例提供的词向量的生成装置进行说明。

请参阅图4,图4为本发明实施例提供的词向量的生成装置的实施例示意图,该词向量的生成装置包括:

获取单元401,用于获取目标词语,所述目标词语为待生成词向量的词语;

第一确定单元402,用于通过训练模型确定所述目标词语的初始词向量、所述目标词语中的每个字的字向量以及全局变量;

第二确定单元403,用于通过所述全局变量以及所述每个字的字向量确定所述每个字在所述目标词语中的权值;

第三确定单元404,用于根据所述每个字的字向量、所述每个字在所述目标词语中的权值以及所述目标词语的初始词向量确定所述目标词语的目标词向量。

可选地,所述第二确定单元403具体用于:

确定所述目标词语中的每个字的字向量对应的转置向量以及所述目标词语中字的数量;

根据所述目标词语中的每个字的字向量对应的转置向量、所述目标词语中字的数量以及所述全局变量确定所述每个字在所述目标词语中的权值。

可选地,所述第二确定单元403还具体用于:

通过如下公式计算所述每个字在所述目标词语中的权值:

其中,ai为所述目标词语中的第i个字在所述目标词语中的权值,为所述目标词语中的第i个字的字向量对应的转置向量,uc为所述全局向量,n为所述目标词语中字的数量,exp为指数函数,k为所述目标词语中的任意一个字,为所述目标词语中的第k个字的字向量对应的转置向量,1≤k≤n。

可选地,所述第三确定单元404具体用于:

将所述目标词语的初始词向量、所述目标词语中每个字在所述目标词语中的权值以及所述目标词语中每个字的字向量通过点和或者拼接操作确定所述目标词向量。

可选地,所述第三确定单元404还具体用于:

通如下公式计算所述目标词向量:

其中,w为所述目标词向量,w’为所述目标词语的初始词向量,为点和或者拼接操作,ai为所述目标词语的第i个字在所述目标词语中的权值,ci为所述目标词语中的第i个字的字向量。

可选地,所述装置还包括训练单元405,所述训练单元405,用于生成所述训练模型。

可选地,所述训练单元405具体用于:

获取语料库对应的词语列表以及汉字列表,所述词语列表与所述汉字列表具有关联关系;

确定所述词语列表中每个词语对应的词向量以及负采样;

确定所述汉字列表中的每个汉字对应的字向量;

遍历所述语料库中的每个词语,以构造所述每个词语对应的负例集;

根据上下文窗口确定所述词语列表中的每个词语对应的上下文内容;

基于所述词向量、所述负采样、所述字向量、所述负例集以及所述上下文内容通过梯度下降法进行迭代计算,以得到所述训练模型。

本实施例中的词向量的生成装置的各单元之间的交互方式如前述图1以及图2所示实施例中的描述,具体此处不再赘述。

综上所述,可以看出,本发明提供的实施例中,在词向量生成的过程中加入注意力机制,通过全局向量,对词语中的不同组成部分的重要性进行评估,然后通过对词语的原始词向量、词语所包含字的字向量的加权平均,最终得到每个词对应的词向量,相对于现有技术得到的词向量,能够有效的提升词向量的表达能力。

请参阅图5,图5是本发明实施例提供的一种服务器的结构示意图,该服务器500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)522(例如,一个或一个以上处理器)和存储器532,一个或一个以上存储应用程序542或数据544的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器532和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器522可以设置为与存储介质530通信,在服务器500上执行存储介质530中的一系列指令操作。

服务器500还可以包括一个或一个以上电源526,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口558,和/或,一个或一个以上操作系统541,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上述实施例中由词向量的生成装置所执行的步骤可以基于该图5所示的服务器结构。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本发明实施例还提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述词向量的生成方法。

本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述词向量的生成方法。

本发明实施例还提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:

获取目标词语,所述目标词语为待生成词向量的词语;

通过训练模型确定所述目标词语的初始词向量、所述目标词语中的每个字的字向量以及全局变量;

通过所述全局变量以及所述每个字的字向量确定所述每个字在所述目标词语中的权值;

根据所述每个字的字向量、所述每个字在所述目标词语中的权值以及所述目标词语的初始词向量确定所述目标词语的目标词向量。

可选地,所述通过所述全局变量以及所述每个字的字向量确定所述每个字在所述目标词语中的权值包括:

确定所述目标词语中的每个字的字向量对应的转置向量以及所述目标词语中字的数量;

根据所述目标词语中的每个字的字向量对应的转置向量、所述目标词语中字的数量以及所述全局变量确定所述每个字在所述目标词语中的权值。

可选地,所述根据所述目标词语中的每个字的字向量对应的转置向量、所述目标词语中字的数量以及所述全局变量确定所述每个字在所述目标词语中的权值包括:

通过如下公式计算所述每个字在所述目标词语中的权值:

其中,ai为所述目标词语中的第i个字在所述目标词语中的权值,为所述目标词语中的第i个字的字向量对应的转置向量,uc为所述全局向量,n为所述目标词语中字的数量,exp为指数函数,k为所述目标词语中的任意一个字,为所述目标词语中的第k个字的字向量对应的转置向量,1≤k≤n。

可选地,所述根据所述每个字的字向量、所述每个字在所述目标词语中的权值以及所述目标词语的初始词向量确定所述目标词语的目标词向量包括:

将所述目标词语的初始词向量、所述目标词语中每个字在所述目标词语中的权值以及所述目标词语中每个字的字向量通过点和或者拼接操作确定所述目标词向量。

可选地,所述将所述目标词语的初始词向量、所述目标词语中每个字在所述目标词语中的权值以及所述目标词语中每个字的字向量通过点和或者拼接操作确定所述目标词向量包括:

通如下公式计算所述目标词向量:

其中,w为所述目标词向量,w’为所述目标词语的初始词向量,为点和或者拼接操作,ai为所述目标词语中的第i个字在所述目标词语中的权值,ci为所述目标词语中的第i个字的字向量。

可选地,所述通过训练模型确定所述目标词语的初始词向量、所述目标词语中的每个字的字向量以及全局变量之前,所述方法还包括:

生成所述训练模型。

可选地,所述生成所述训练模型包括:

获取语料库对应的词语列表以及汉字列表,所述词语列表与所述汉字列表具有关联关系;

确定所述词语列表中每个词语对应的词向量以及负采样;

确定所述汉字列表中的每个汉字对应的字向量;

遍历所述语料库中的每个词语,以构造所述每个词语对应的负例集;

根据上下文窗口确定所述词语列表中的每个词语对应的上下文内容;

基于所述词向量、所述负采样、所述字向量、所述负例集以及所述上下文内容通过梯度下降法进行迭代计算,以得到所述训练模型。

本文中的设备可以是服务器、pc、pad、手机等。

本发明还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:

获取目标词语,所述目标词语为待生成词向量的词语;

通过训练模型确定所述目标词语的初始词向量、所述目标词语中的每个字的字向量以及全局变量;

通过所述全局变量以及所述每个字的字向量确定所述每个字在所述目标词语中的权值;

根据所述每个字的字向量、所述每个字在所述目标词语中的权值以及所述目标词语的初始词向量确定所述目标词语的目标词向量。

可选地,所述通过所述全局变量以及所述每个字的字向量确定所述每个字在所述目标词语中的权值包括:

确定所述目标词语中的每个字的字向量对应的转置向量以及所述目标词语中字的数量;

根据所述目标词语中的每个字的字向量对应的转置向量、所述目标词语中字的数量以及所述全局变量确定所述每个字在所述目标词语中的权值。

可选地,所述根据所述目标词语中的每个字的字向量对应的转置向量、所述目标词语中字的数量以及所述全局变量确定所述每个字在所述目标词语中的权值包括:

通过如下公式计算所述每个字在所述目标词语中的权值:

其中,ai为所述目标词语中的第i个字在所述目标词语中的权值,为所述目标词语中的第i个字的字向量对应的转置向量,uc为所述全局向量,n为所述目标词语中字的数量,exp为指数函数,k为所述目标词语中的任意一个字,为所述目标词语中的第k个字的字向量对应的转置向量,1≤k≤n。

可选地,所述根据所述每个字的字向量、所述每个字在所述目标词语中的权值以及所述目标词语的初始词向量确定所述目标词语的目标词向量包括:

将所述目标词语的初始词向量、所述目标词语中每个字在所述目标词语中的权值以及所述目标词语中每个字的字向量通过点和或者拼接操作确定所述目标词向量。

可选地,所述将所述目标词语的初始词向量、所述目标词语中每个字在所述目标词语中的权值以及所述目标词语中每个字的字向量通过点和或者拼接操作确定所述目标词向量包括:

通如下公式计算所述目标词向量:

其中,w为所述目标词向量,w’为所述目标词语的初始词向量,为点和或者拼接操作,ai为所述目标词语中的第i个字在所述目标词语中的权值,ci为所述目标词语中的第i个字的字向量。

可选地,所述通过训练模型确定所述目标词语的初始词向量、所述目标词语中的每个字的字向量以及全局变量之前,所述方法还包括:

生成所述训练模型。

可选地,所述生成所述训练模型包括:

获取语料库对应的词语列表以及汉字列表,所述词语列表与所述汉字列表具有关联关系;

确定所述词语列表中每个词语对应的词向量以及负采样;

确定所述汉字列表中的每个汉字对应的字向量;

遍历所述语料库中的每个词语,以构造所述每个词语对应的负例集;

根据上下文窗口确定所述词语列表中的每个词语对应的上下文内容;

基于所述词向量、所述负采样、所述字向量、所述负例集以及所述上下文内容通过梯度下降法进行迭代计算,以得到所述训练模型。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

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