词向量生成方法和装置与流程

文档序号:11432220阅读:369来源:国知局
词向量生成方法和装置与流程

本发明涉及自然语言处理技术领域,特别是涉及一种词向量生成方法和装置。



背景技术:

随着计算机应用领域的不断扩大,自然语言处理受到了人们的高度重视。机器翻译、语音识别以及信息检索等应用需求对计算机的自然语言处理能力提出了越来越高的要求。自然语言理解的问题要转化为机器学习的问题,首先要找一种方法把自然语言数学化。

目前,在处理自然语言任务时,最常用的文本表示方法,是把每个文本表示为一个很长的向量,这个向量的维度是词表大小,向量的每个维度就代表某个特定的词。对于单个词而言,只有在某个特定维度有值,在其它维度的值均为0。但这种文本表示方法有两个缺点:(1)容易受维度灾难的困扰,尤其是应用于深度学习的一些算法时;(2)不能很好地描述词与词之间的相似性,也就是存在“词汇鸿沟”的问题。

目前存在另一种文本表示方法称为distributedrepresentation(分布式表达),这种文本表示方法是通过训练将自然语言中的每一个词映射成一个固定长度的向量,将所有这些向量放在一起形成一个词向量空间,而每一向量则为该空间中的一个点,在这个空间上引入“距离”,则可以根据词之间的距离来判断词之间的相似性了。在进行文本进行表示时,直接用词的向量取代词本身来表示文本,该方法在处理文本任务特别是短文本任务时,是一种非常有效的文本表示方法。

word2vec是一种词的distributedrepresentation技术,即把所有词投影到一定维度的语义空间上,每个词可以简单表示为多维空间上的一个点,而空间维度可以自定义,一般设置100~200维(word2vec默认是100维),维度越大训练越复杂,经过训练后,一个词可能会被表示成类似{0.159,-0.234,0.789, -0.578,-0.501,0.921,0.374,...}这样的向量。直观理解,word2vec方法是希望通过一些技术手段,把一些语义相近的词投影到多维空间后,使得相似的词在高维空间上位置相邻。word2vec生成的词向量用于文本挖掘特别是短文本挖掘的一些领域,能够取得非常不错的效果。

然而,word2vec现有的训练技术,只能支持一次性训练。如果有新增语料,需要将新增语料加入到全局语料中,再基于新的全局语料重新进行训练,重新训练需要更多的计算和时间资源,因此获得词向量的效率低下。



技术实现要素:

基于此,有必要针对目前有新增语料时,每次都需要重新进行训练导致的获取词向量效率低下的问题,提供一种词向量生成方法和装置。

一种词向量生成方法,所述方法包括:

获取根据旧语料库生成词向量时所生成的已训练哈夫曼树;

获取相对于所述旧语料库的新增语料库;

将所述新增语料库中的语料进行分词处理,获得相应的新增语料词集合;

将所述新增语料词集合中的词按照词频从高到低的顺序排序,获得新增语料词序列;

对于所述新增语料词序列中不存在于旧语料库的新词,根据相应新词在新增语料词序列中的位置,从已训练哈夫曼树中选择哈夫曼路径;

根据选择的哈夫曼路径生成所述新增语料词序列中词的词向量。

一种词向量生成装置,所述装置包括:

已训练哈夫曼树获取模块,用于获取根据旧语料库生成词向量时所生成的已训练哈夫曼树;

新增语料库获取模块,用于获取相对于所述旧语料库的新增语料库;

分词模块,用于将所述新增语料库中的语料进行分词处理,获得相应的新增语料词集合;

新增语料词排序模块,用于将所述新增语料词集合中的词按照词频从高到 低的顺序排序,获得新增语料词序列;

哈夫曼路径选择模块,用于对于所述新增语料词序列中不存在于旧语料库的新词,根据相应新词在新增语料词序列中的位置,从已训练哈夫曼树中选择哈夫曼路径;

词向量生成模块,用于根据选择的哈夫曼路径生成所述新增语料词序列中词的词向量。

上述词向量生成方法和装置,保留根据旧语料库生成词向量时所生成的已训练哈夫曼树,当存在新增语料库时,对新增语料库中的语料进行分词处理,获得新增语料词集合,对新增语料词集合按照词频从高到低排序,获得新增语料词序列。而已训练哈夫曼树中的路径本身基本是以旧语料库中词的词频为基础组织的,这样对于所述新增语料词序列中不存在于旧语料库的新词,根据新增语料词序列中新词的位置从已训练哈夫曼树中选择的哈夫曼路径,是与新增语料词序列中新词位置相似的词的哈夫曼路径,从而基于位置相似词的哈夫曼路径继续训练来生成新增语料词序列中词的词向量。这样当存在新增语料库时,不需要将其合并到旧语料库后重新开始训练,而是基于已训练哈夫曼树和新增语料库进行增量式训练,提高了生成词向量的效率。

附图说明

图1为一个实施例中用于实现词向量生成方法的电子设备的结构示意图;

图2为一个实施例中词向量生成方法的流程示意图;

图3为一个实施例中对于新增语料词序列中不存在于旧语料库的新词,根据相应新词在新增语料词序列中的位置,从已训练哈夫曼树中选择哈夫曼路径的步骤的流程示意图;

图4为一个实施例中伪哈夫曼树的数据结构示意图;

图5为一个实施例中根据新增语料词序列中词的位置在旧语料词序列中查找相同或相似位置处的词的步骤的流程示意图;

图6为一个实施例中将旧语料词序列中的词按照相应的词频依次投影到固 定长度单位的示意图;

图7为一个实施例中根据选择的哈夫曼路径生成新增语料词序列中词的词向量的步骤的流程示意图;

图8为一个实施例中词向量生成装置的结构框图;

图9为另一个实施例中词向量生成装置的结构框图;

图10为一个实施例中哈夫曼路径选择模块的结构框图;

图11为一个实施例中词查找模块的结构框图;

图12为再一个实施例中词向量生成装置的结构框图;

图13为一个实施例中词向量生成模块的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,在一个实施例中,提供了一种电子设备,包括通过系统总线连接的处理器、非易失性存储介质和内存储器。其中处理器具有计算功能和控制该电子设备工作的功能,该处理器被配置为执行一种词向量生成方法。非易失性存储介质包括磁存储介质、光存储介质和闪存式存储介质中的至少一种,非易失性存储介质存储有操作系统和词向量生成装置。该词向量生成装置用于实现一种词向量生成方法。

如图2所示,在一个实施例中,提供了一种词向量生成方法,本实施例以该方法应用于上述图1中的电子设备来举例说明。该方法具体包括如下步骤:

步骤202,获取根据旧语料库生成词向量时所生成的已训练哈夫曼树。

其中旧语料库是指自然语言的片段构成的集合,一般以句子为单位,句子可以组成段落。句子是一个或多个词组成的具有语义的词序列。根据旧语料库训练词向量时可采用word2vec工具。

根据旧语料库生成词向量时可采用类似神经网络的词向量模型,依次包括输入层、隐含层和输出层。输入输入层的是若干词向量,输入隐含层的是这些 若干词向量的累加和向量,隐含层是一棵哈夫曼树上从根节点到叶子节点的路径上所有的非叶子节点,输出层则是该哈夫曼树的叶子节点,将词向量模型训练完成后获得的哈夫曼树便是已训练哈夫曼树。词向量模型是用于将词语投影到一个高维的语义空间里面去,将词表示为词向量。

已训练哈夫曼树是一个二叉树,每个叶子节点代表旧语料库的旧语料词集合中的一个词,每个叶子节点对应一个词向量,已训练哈夫曼树的所有叶子节点所代表的词便构成了旧语料库的旧语料词集合。已训练哈夫曼树的每个非叶子节点也对应一个向量,该向量不是词向量,而是一组权重参数,这组权重参数主要用于二分类。输入词向量模型的词向量与词向量模型最终输出的词向量一般是不同的词,但在语义上存在关联。

步骤204,获取相对于旧语料库的新增语料库。

其中,新增语料库是相对于旧语料库所新增的语料的集合,新增语料库并不要求与旧语料库完全不同,允许存在相同的词甚至相同的句子。旧语料库可以是广泛的各领域的语料构成的集合,新语料库可以是专业领域的语料;旧语料库可以包括已有的ugc(usergeneratedcontent,用户原创内容),而新增语料库则可以是相对于已有的ugc所新增的ugc。

步骤206,将新增语料库中的语料进行分词处理,获得相应的新增语料词集合。

具体地,分词处理是指将一个自然语言文字序列切分成一个个单独的词的处理过程,这里的词可以是单字也可以由两个以上的字构成,每个词可独立表达语义。获得的新增语料词集合中的词不重复,可将新增语料库中的语料进行分词处理切分出单独的词之后进行去重处理,以获得新增语料词集合。分词处理可以采用字符匹配分词方式、语义分析分词方式和基于统计的分词方式,其中字符匹配分词方式又可以采用正向最大匹配分词方式、逆向最大匹配分词方式、最少切分分词方式以及双向最大匹配分词方式等。

步骤208,将新增语料词集合中的词按照词频从高到低的顺序排序,获得新增语料词序列。

具体地,电子设备可统计新增语料词集合中的各个词相对于新增语料库的 词频,从而按照统计的词频从高到低的顺序对新增语料词集合中的词进排序,排序后的词构成新增语料词序列。新增语料词集合中的各个词相对于新增语料库的词频,可以直接用新增语料词集合中的词在新增语料库中出现的次数表示。

步骤210,对于新增语料词序列中不存在于旧语料库的新词,根据相应新词在新增语料词序列中的位置,从已训练哈夫曼树中选择哈夫曼路径。

具体地,电子设备可逐个地对新增语料库中切分出的词进行处理,对于当前处理的词,可根据当前处理的词在新增语料词序列中的位置,在已训练哈夫曼树中选择与当前处理的词位置最相似的词的哈夫曼路径。在已训练哈夫曼树中,从根节点到一个叶子节点的路径称为哈夫曼路径。

步骤212,根据选择的哈夫曼路径生成新增语料词序列中词的词向量。

具体地,选择的哈夫曼路径可视为与相应的新增语料词序列中词位置相似的词的哈夫曼路径,基于该哈夫曼路径,便可以在已训练哈夫曼树基础上进行增量式的训练,获得新增语料词序列中相应词的词向量。生成的词向量可以用来表达词,从而可以进一步用于自然语言的处理,比如对文本特别是短文本进行分类或者计算文章之间的相似度等。词之间的相似度可以用相应的词向量之间的余弦相似度来表示。

上述词向量生成方法,保留根据旧语料库生成词向量时所生成的已训练哈夫曼树,当存在新增语料库时,对新增语料库中的语料进行分词处理,获得新增语料词集合,对新增语料词集合按照词频从高到低排序,获得新增语料词序列。而已训练哈夫曼树中的路径本身基本是以旧语料库中词的词频为基础组织的,这样对于所述新增语料词序列中不存在于旧语料库的新词,根据新增语料词序列中新词的位置从已训练哈夫曼树中选择的哈夫曼路径,是与新增语料词序列中新词位置相似的词的哈夫曼路径,从而基于位置相似词的哈夫曼路径继续训练来生成新增语料词序列中词的词向量。这样当存在新增语料库时,不需要将其合并到旧语料库后重新开始训练,而是基于已训练哈夫曼树和新增语料库进行增量式训练,提高了生成词向量的效率。

在一个实施例中,该词向量生成方法还包括:当新增语料库中的句子数小于预设句子数阈值或者新增语料词集合中的词数量小于预设词数量阈值时,从 已训练哈夫曼树中随机为新增语料词集合中的词选择哈夫曼路径。

具体地,电子设备可在步骤202之前,判断新增语料库中的句子数是否小于预设句子数阈值,若判断为否,则执行步骤202至步骤212;若判断为是,则从已训练哈夫曼树中随机为新增语料词集合中的词选择哈夫曼路径。电子设备也可以在步骤202之前,判断新增语料词集合中的词数量是否小于预设词数量阈值,若判断为否,则执行步骤202至步骤212;若判断为是,则从已训练哈夫曼树中随机为新增语料词集合中的词选择哈夫曼路径。其中预设句子数阈值和预设词数量阈值可根据需要设定。

本实施例中,考虑到当判断为是时,说明新增语料库的数量级很小,这种情况下如果仍执行步骤202至步骤212,会导致新增语料词集合中词的哈夫曼路径存在过多重复的现象。因此这里从已训练哈夫曼树中随机为新增语料词集合中的词选择哈夫曼路径,可克服新增语料库量级过小时导致增语料词集合中词的哈夫曼路径存在过多重复的现象。

如图3所示,在一个实施例中,步骤210具体包括如下步骤:

步骤302,将旧语料库对应的旧语料词集合中的词按照词频从高到低的顺序排序,获得旧语料词序列。

具体地,电子设备在根据旧语料库生成词向量时,也会对旧语料库中的语料进行分词处理,获得相应的旧语料词集合,在根据旧语料库完成训练后,仍然保留旧语料词集合以及旧语料词集合中各词的词频。旧语料词集合中各词的词频可直接用旧语料词集合中的词在旧语料库中出现的次数表示。电子设备在执行步骤208之后,便可以将旧语料词集合中的词按照该词相对于旧语料库的词频从高到低的顺序排序,获得旧语料词序列。

步骤304,根据新增语料词序列中词的位置在旧语料词序列中查找相同或相似位置处的词。

具体地,电子设备在旧语料词序列中查找与新增语料词序列中词的位置相同或相似位置处的词。其中新增语料词序列中词的位置是指词相对于新增语料词序列的相对位置,相同位置是指查找到的词相对于旧语料词序列的位置,与相应的新增语料词序列中的词相对于新增语料词序列的位置相同,相似位置则 是指查找到的词相对于旧语料词序列的位置,与相应的新增语料词序列中的词相对于新增语料词序列的位置接近。

步骤306,从已训练哈夫曼树中选择查找到的词所对应的哈夫曼路径。

具体地,已训练哈夫曼树中每个叶子节点表示一个唯一的词,对应唯一的哈夫曼路径,因此电子设备在查找到相同或相似位置处的词后,便可以从已训练哈夫曼树中选择代表该查找到的词的叶子节点所对应的哈夫曼路径。电子设备可根据新增语料词序列中各词的词频构建一棵伪哈夫曼树,参照图4,之所以称为伪哈夫曼树,是因为其并不真实存在,本实施例借助该伪哈夫曼树来获取新增语料词序列中各词的哈夫曼路径,从而实现既能使用原有词向量模型的信息又能结合新增语料库中新增词的序列特征。图4中虚线表示的就是伪哈夫曼路径,内节点也就是非叶子节点,词节点也就是叶子节点。

本实施例中,在根据新增语料词序列中词的位置从已训练哈夫曼树中选择哈夫曼路径时,考虑旧语料词序列与新增语料词序列中相同或相似位置处词的语义相似性,这样选择的哈夫曼路径则是位置相似的词的哈夫曼路径,获得的词向量也可以很好地表达出这种相似性,最终获得的词向量的性能更好。

如图5所示,在一个实施例中,根据新增语料词序列中词的位置在旧语料词序列中查找相同或相似位置处的词,具体包括如下步骤:

步骤502,将旧语料词序列中的词按照相应的词频依次投影到固定长度单位。

具体地,电子设备将旧语料词序列中的词带权展开,这里的权指的是词频。假设旧语料词序列中的词数量为n,固定长度单位为m,则m>>n,“>>”表示远大于。用w表示旧语料词序列中的词,则将词w带权展开到m上。具体采用下述公式(1)进行带权展开:

公式(1)

其中,posw表示将词w投影到固定长度单位m上的相对位置,pos(w-1)表示将词w的前一个词w-1投影到固定长度单位m上的相对位置,cntw表示词w在旧语料库中出现的词频。λ是常量,一般0<λ<1,用来调整各词投影到固定 长度单位m上的区段长度之间的差距,d表示旧语料词集合。

投影效果如图6所示,投影后旧语料词集合中各词的顺序和词频大小都反映在固定长度单位m上,词频越大,相应的投影在固定长度单位m上的区段长度越长。

步骤504,将新增语料词序列中的词按照相应的词频依次投影到固定长度单位。

具体地,电子设备将新增语料词序列中的词带权展开,这里的权指的是词频。假设新增语料词序列中的词数量为n’;固定长度单位为m,则m>>n’,“>>”表示远大于。用w’表示新增语料词序列中的词,则将词w’带权展开到m上。具体采用下述公式(2)进行带权展开:

公式(2)

其中,posw’表示将词w’投影到固定长度单位m上的相对位置,pos(w’-1)表示将词w’的前一个词w’-1投影到固定长度单位m上的相对位置,cntw’表示词w’在新增语料库中出现的词频。λ’是常量,一般0<λ’<1,用来调整各词投影到固定长度单位m上的区段长度之间的差距,λ’可等于λ,d’表示新增语料词集合。

步骤506,在固定长度单位上查找与新增语料词序列中的词所投影的区段长度重叠度最大的属于旧语料词序列的词。

具体地,将相应词投影到固定长度单位上的区段长度之间的重叠度可以用两个区段的交集除以两个区段长度的并集来计算。电子设备在处理新增语料词序列中的词时,在固定长度单位上查找到与当前处理的词的区段长度重叠度最大的、由旧语料词序列的词所投影到固定长度单位上的区段长度,从而获得该查找到的区段长度所对应属于旧语料词序列的词。

本实施例中,将旧语料词序列和新增语料词序列中的词都投影到固定长度单位上,可以同时反映词的位置和词频大小关系。投影到固定长度单位上的区段长度的重叠度最大的词也就是位置最相似的词,这样结合词的位置和词频所 选择的哈夫曼路径所计算出的词向量具有更好的语义表达性能。

在一个实施例中,该词向量生成方法还包括:判断新增语料词集合中当前处理的词是否属于旧语料库对应的旧语料词集合;若是,则直接从已训练哈夫曼树中选择当前处理的词所对应的哈夫曼路径,并执行步骤212;若否,则执行步骤210。

具体地,电子设备可对新增语料词集合中的词逐个进行处理,对于当前正在处理的词,判断该词是否属于旧语料词集合。如果判定属于,说明该词在已训练哈夫曼树中已由一个叶子节点来表示,可直接选择该词所对应的哈夫曼路径继续训练。如果判定不属于,说明该词是一个新出现的词,在已训练哈夫曼树中没有对应的叶子节点,此时则可以根据新增语料词序列中词的位置,从已训练哈夫曼树中优先选择位置相似的词的哈夫曼路径。

本实施例中,将新增语料词集合中的词分为属于旧语料词集合的词和不属于旧语料词集合的词分别进行处理,从而基于已训练哈夫曼树来进行增量式训练,提高效率的同时保证生成的词向量的语义表达性能。

如图7所示,在一个实施例中,步骤212具体包括如下步骤:

步骤702,获取新增语料词集合中当前处理的词相对于新增语料库的上下文。

具体地,电子设备可逐个地处理新增语料词集合中的词,从而获取当前处理的词的上下文。其中,当前处理的词的上下文是指当前处理的词所在新增语料库的句子中之前和/或之后在取词半径范围内的词,上下文的取词半径可以根据需要设定,比如可取1至4。举例说明,比如一个句子中的词为abcde,若取词半径为1,词c的上下文可以是b和d,若取词半径为2,则词c的上下文可以是a、b、c和d。

步骤704,将上下文的词向量累加获得累加向量。

具体地,词向量是固定长度的实值向量,电子设备在获取到选择的哈夫曼路径后,将上下文转化为词向量输入词向量模型的输入层,经过累加运算,将上下文的词向量进行累加,获得累加向量。

步骤706,根据累加和向量以及选择的哈夫曼路径获得当前处理的词相对于 上下文的条件概率函数;根据条件概率函数获得目标函数。

其中,当前处理的词相对于上下文的条件概率函数,是指在上下文的条件下存在当前处理的词的概率,该条件概率函数与累加和向量和选择的哈夫曼路径相关。具体地,可获得目标函数如公式(3):

公式(3)

其中,w’表示新增语料库中的词,context(w')表示词w’的上下文的累加向量,p(w'|context(w'))表示词w’相对于词w’的上下文的条件概率函数,corpus表示新增语料库。使用word2vec工具生成词向量时,条件概率函数p(w'|context(w'))在hierarchicalsoftmax(分层逻辑回归模型)和negativesampling(负采样模型)下可采用不同的计算方式。

步骤708,对目标函数进行优化,以更新当前处理的词的词向量以及上下文的词向量。

具体地,可通过对目标函数求取极大值和极小值来对目标函数进行优化,将累加向量输入到词向量模型的隐含层,即已训练哈夫曼树的非叶子节点,利用sigmoid函数作为隐含层的计算公式,把经过的哈夫曼路径上的每个标记(0或1)当成一个二分类问题,哈夫曼编码为0的节点看成是正例(sigmoid函数值≥0.5),而哈夫曼编码为1的节点看成负例(sigmoid函数值<0.5),使用随机梯度计算方式迭代计算并更新非叶子节点的权重信息、当前处理的词的词向量以及上下文的词向量。sigmoid函数可表示为s(x)=1/(1+e-x),其中x为自变量,e为自然底数。

本实施例中,基于已有的词向量模型,根据新增语料词序列中的词相对于新增语料库的上下文,并结合选择的哈夫曼路径,可以通过增量式训练提高生成词向量的效率的同时,考虑了相应词在新增语料库中上下文的语义环境,提高了生成的词向量的语义表达能力。

原生的word2vec工具每次训练需要消耗巨大的资源,而采用本发明实施例的方法,可以实现支持几乎无延迟的词向量更新和新词向量的训练。而且,采用本发明实施例训练获取的词向量对用户评论内容进行分类,与采用原生的 word2ved工具获得的词向量对用户评论内容进行分类相比,分类准确率更高。分类准确率比较下表一所示:

表一:

如图8所示,在一个实施例中,提供了一种词向量生成装置800,包括:已训练哈夫曼树获取模块801、新增语料库获取模块802、分词模块803、新增语料词排序模块804、哈夫曼路径选择模块805和词向量生成模块806。

已训练哈夫曼树获取模块801,用于获取根据旧语料库生成词向量时所生成的已训练哈夫曼树。

新增语料库获取模块802,用于获取相对于旧语料库的新增语料库。

分词模块803,用于将新增语料库中的语料进行分词处理,获得相应的新增语料词集合。

新增语料词排序模块804,用于将新增语料词集合中的词按照词频从高到低的顺序排序,获得新增语料词序列。

哈夫曼路径选择模块805,用于对于新增语料词序列中不存在于旧语料库的新词,根据相应新词在新增语料词序列中的位置,从已训练哈夫曼树中选择哈夫曼路径。

词向量生成模块806,用于根据选择的哈夫曼路径生成新增语料词序列中词的词向量。

上述词向量生成装置800,保留根据旧语料库生成词向量时所生成的已训练哈夫曼树,当存在新增语料库时,对新增语料库中的语料进行分词处理,获得新增语料词集合,对新增语料词集合按照词频从高到低排序,获得新增语料词 序列。而已训练哈夫曼树中的路径本身基本是以旧语料库中词的词频为基础组织的,这样对于所述新增语料词序列中不存在于旧语料库的新词,根据新增语料词序列中新词的位置从已训练哈夫曼树中选择的哈夫曼路径,是与新增语料词序列中新词位置相似的词的哈夫曼路径,从而基于位置相似词的哈夫曼路径继续训练来生成新增语料词序列中词的词向量。这样当存在新增语料库时,不需要将其合并到旧语料库后重新开始训练,而是基于已训练哈夫曼树和新增语料库进行增量式训练,提高了生成词向量的效率。

如图9所示,在一个实施例中,词向量生成装置800还包括:哈夫曼路径随机选择模块807,用于当新增语料库中的句子数小于预设句子数阈值或者新增语料词集合中的词数量小于预设词数量阈值时,从已训练哈夫曼树中随机为新增语料词集合中的词选择哈夫曼路径。

本实施例中,从已训练哈夫曼树中随机为新增语料词集合中的词选择哈夫曼路径,可克服新增语料库量级过小时导致增语料词集合中词的哈夫曼路径存在过多重复的现象。

如图10所示,在一个实施例中,哈夫曼路径选择模块805包括:旧语料词排序模块805a、词查找模块805b和路径选择模块805c。

旧语料词排序模块805a,用于将旧语料库对应的旧语料词集合中的词按照词频从高到低的顺序排序,获得旧语料词序列。

词查找模块805b,用于根据新增语料词序列中词的位置在旧语料词序列中查找相同或相似位置处的词。

路径选择模块805c,用于从已训练哈夫曼树中选择查找到的词所对应的哈夫曼路径。

本实施例中,在根据新增语料词序列中词的位置从已训练哈夫曼树中选择哈夫曼路径时,考虑旧语料词序列与新增语料词序列中相同或相似位置处词的语义相似性,这样选择的哈夫曼路径则是位置相似的词的哈夫曼路径,获得的词向量也可以很好地表达出这种位置相似性,最终获得的词向量的性能更好。

如图11所示,在一个实施例中,词查找模块805b包括:第一投影模块805b1、第二投影模块805b2和查找模块805b3。

第一投影模块805b1,用于将旧语料词序列中的词按照相应的词频依次投影到固定长度单位。

第二投影模块805b2,用于将新增语料词序列中的词按照相应的词频依次投影到固定长度单位。

查找模块805b3,用于在固定长度单位上查找与新增语料词序列中的词所投影的区段长度重叠度最大的属于旧语料词序列的词。

本实施例中,将旧语料词序列和新增语料词序列中的词都投影到固定长度单位上,可以同时反映词的位置和词频大小关系。投影到固定长度单位上的区段长度的重叠度最大的词也就是位置最相似的词,这样结合词的位置和词频所选择的哈夫曼路径所计算出的词向量具有更好的语义表达性能。

如图12所示,在一个实施例中,词向量生成装置800还包括判断模块808,用于判断新增语料词集合中当前处理的词是否属于旧语料库对应的旧语料词集合;哈夫曼路径选择模块805还用于若判断模块808判断为是,则直接从已训练哈夫曼树中选择当前处理的词所对应的哈夫曼路径;若判断模块808判断为否,则对于新增语料词序列中不存在于旧语料库的新词,根据相应新词在新增语料词序列中的位置,从已训练哈夫曼树中选择哈夫曼路径。

本实施例中,将新增语料词集合中的词分为属于旧语料词集合的词和不属于旧语料词集合的词分别进行处理,从而基于已训练哈夫曼树来进行增量式训练,提高效率的同时保证生成的词向量的语义表达性能。

如图13所示,在一个实施例中,词向量生成模块806包括:上下文获取模块806a、累加模块806b、目标函数获得模块806c和词向量更新模块806d。

上下文获取模块806a,用于获取新增语料词集合中当前处理的词相对于新增语料库的上下文。

累加模块806b,用于将上下文的词向量累加获得累加向量。

目标函数获得模块806c,用于根据累加和向量以及选择的哈夫曼路径获得当前处理的词相对于上下文的条件概率函数。根据条件概率函数获得目标函数。

词向量更新模块806d,用于对目标函数进行优化,以更新当前处理的词的词向量以及上下文的词向量。

本实施例中,基于已有的词向量模型,根据新增语料词序列中的词相对于新增语料库的上下文,并结合选择的哈夫曼路径,可以通过增量式训练提高生成词向量的效率的同时,考虑了相应词在新增语料库中上下文的语义环境,提高了生成的词向量的语义表达能力。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质,或随机存储记忆体(randomaccessmemory,ram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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