一种词语相关度的计算方法及终端与流程

文档序号:16468697发布日期:2019-01-02 22:56阅读:522来源:国知局
一种词语相关度的计算方法及终端与流程

本发明涉及数据处理技术领域,尤其涉及一种词语相关度的计算方法及终端。



背景技术:

词语的相关度计算作为自然语言处理领域的重要研究方向,是语义网、信息检索、数据挖掘、信息集成、知识管理、文本分类、词义消歧和基于实例的机器翻译等多种自然语言处理技术的重要基础,因此语义相关度的研究具有很重要的意义。在计算语义相关性的现有技术中,word2vec词向量技术一经提出,迅速吸引了研究者的注意,并产生了广泛的应用。

word2vec是google推出的一款基于深度学习的开源的学习工具。word2vec通过在给定语料库上训练一个模型,将词语转换成词向量形式。词向量具有良好的语义特性,是表示词语特征的常用方式,词向量每一维的值代表一个具有一定的语义和语法上解释的特征。通过词向量训练,可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上词与词之间的相关度,来表示词语语义上的相关度。word2vec包含了两种训练模型,分别为连续词袋(cbow,continuousbag-of-word)模型和skip-gram模型,且cbow模型和skip-gram模型均基于神经网络模型,包含输入层、投影层和输出层。其中,cbow模型是通过上下文来预测当前词语,skip-gram模型则是通过当前词语来预测其上下文。cbow模型的输入层为当前词语wt的上下文,包括wt-2、wt-1、wt+1和wt+2等的词向量,映射层的输入为上下文的词向量的累加和,输出为wt的词向量。映射层模型通常采用基于哈夫曼huffman树的层次softmax(hierarchicalsoftmax)模型或者随机负采样(neg,negativesampling)模型,利用随机梯度上升算法来不断迭代更新模型的参数,最终获得每个词语的词向量。

word2vec训练出的词向量在一定程度上捕获了自然语言中词语在上下文语境中的语义特征,但是由于每个词语只用一个向量来表达,对于一词多义形式的词语,词向量表达的信息并不准确。这是因为每个多义词在不同词义下上下文表达的信息也非常不同,最终得到的词向量实际上是不同词义下的一种折中。例如,“苹果”既表示一种水果,又表示电脑或智能手机的品牌。当“苹果”表示水果时,其上下文是和水果相关的词语,此时cbow模型根据这些上下文信息训练的“苹果”词向量和“芒果”、“香蕉”等词语相关度很高。当“苹果”表示电脑或智能手机的品牌时,其上下文是和科技相关的词语,此时cbow模型训练的“苹果”词向量和“手机”、“电脑”等词语相关度很高。这时,“苹果”在向量空间的位置就由水果区域向科技区域转移,最终停留在向量空间中水果区域和科技区域之间的某个位置。虽然看似“苹果”既表达了水果的词义,又表达了科技类的词义,但其实在每个词义下都产生了一定程度上的弱化,词向量表达的信息并不准确。因此,在基于现有word2veccbow模型进行词语相关度计算时,不能准确确定词语之间的相关度。



技术实现要素:

本发明实施例的目的在于提供一种词语相关度的计算方法及终端,以解决在基于现有word2veccbow模型进行词语相关度计算时,不能准确确定词语之间的相关度的问题。

第一方面,本发明实施例提供了一种词语相关度的计算方法,包括:

获取第一词语的第一同义词林编码集合和第二词语的第二同义词林编码集合;

根据预先训练的单义词向量模型,分别确定所述第一词语在所述第一同义词林编码集合中每个同义词林编码下的第一词向量,以及所述第二词语在所述第二同义词林编码集合中每个同义词林编码下的第二词向量;其中,所述单义词向量模型中的每个多义词利用同义词林编码被区分为多个单义词,每个单义词对应一个的词向量;

根据确定的所述第一词向量和第二词向量,获取所述第一词语和所述第二词语的相关度最大的词义对;

根据所述相关度最大的词义对,计算所述第一词语和所述第二词语之间的相关度。

优选的,所述根据所述相关度最大的词义对,计算所述第一词语和所述第二词语之间的相关度,包括:

确定第一单义词的词向量和所述第一单义词的词义向量,以及第二单义词的词向量和所述第二单义词的词义向量;其中,所述第一单义词为所述相关度最大的词义对中的与所述第一词语对应的编码单义词,所述第二单义词为所述相关度最大的词义对中的与所述第二词语对应的编码单义词;

利用所述第一单义词的词向量和所述第二单义词的词义向量进行相关度计算,得到第一相关度,并利用所述第一单义词的词义向量和所述第二单义词的词向量进行相关度计算,得到第二相关度;

选取所述第一相关度和所述第二相关度中的最大值,作为所述第一词语和所述第二词语之间的相关度。

优选的,所述获取第一词语的第一同义词林编码集合和第二词语的第二同义词林编码集合之前,所述方法还包括:

利用预处理后的语料库进行词向量训练,得到初始词向量模型;

根据所述初始词向量模型和同义词词林,确定所述预处理后的语料库中的多义词在不同上下文的同义词林编码;

利用确定的同义词林编码作为所述多义词的词前缀,将所述多义词替换为多个具有不同同义词林编码的单义词,得到替换后的语料库;

利用所述替换后的语料库进行词向量训练,得到所述单义词向量模型。

优选的,所述根据所述初始词向量模型和同义词词林,确定所述预处理后的语料库中的多义词在不同上下文的同义词林编码,包括:

获取所述多义词的上下文邻域词集合;

获取所述上下文邻域词集合中每个邻域词的权重组成的权重集合;

根据所述初始词向量模型,确定所述上下文邻域词集合中每个邻域词的词向量组成的词向量集合;

利用所述权重集合和所述词向量集合进行加权求和,得到所述多义词的邻域向量;

根据同义词词林,确定所述多义词的每个同义词林编码对应的词义向量组成的词义向量集合;

根据所述邻域向量和所述词义向量集合,确定所述多义词在不同上下文的同义词林编码。

优选的,所述单义词向量模型为基于word2vec的cbow模型。

第二方面,本发明实施例还提供了一种终端,包括:

第一获取模块,用于获取第一词语的第一同义词林编码集合和第二词语的第二同义词林编码集合;

第一确定模块,用于根据预先训练的单义词向量模型,分别确定所述第一词语在所述第一同义词林编码集合中每个同义词林编码下的第一词向量,以及所述第二词语在所述第二同义词林编码集合中每个同义词林编码下的第二词向量;其中,所述单义词向量模型中的每个多义词利用同义词林编码被区分为多个单义词,每个单义词对应一个的词向量;

第二获取模块,用于根据确定的所述第一词向量和第二词向量,获取所述第一词语和所述第二词语的相关度最大的词义对;

计算模块,用于根据所述相关度最大的词义对,计算所述第一词语和所述第二词语之间的相关度。

优选的,所述计算模块包括:

第一确定单元,用于确定第一单义词的词向量和所述第一单义词的词义向量,以及第二单义词的词向量和所述第二单义词的词义向量;其中,所述第一单义词为所述相关度最大的词义对中的与所述第一词语对应的编码单义词,所述第二单义词为所述相关度最大的词义对中的与所述第二词语对应的编码单义词;

第一计算单元,用于利用所述第一单义词的词向量和所述第二单义词的词义向量进行相关度计算,得到第一相关度,并利用所述第一单义词的词义向量和所述第二单义词的词向量进行相关度计算,得到第二相关度;

选取单元,用于选取所述第一相关度和所述第二相关度中的最大值,作为所述第一词语和所述第二词语之间的相关度。

优选的,所述终端还包括:

第一训练模块,用于利用预处理后的语料库进行词向量训练,得到初始词向量模型;

第二确定模块,用于根据所述初始词向量模型和同义词词林,确定所述预处理后的语料库中的多义词在不同上下文的同义词林编码;

替换模块,用于利用确定的同义词林编码作为所述多义词的词前缀,将所述多义词替换为多个具有不同同义词林编码的单义词,得到替换后的语料库;

第二训练模块,用于利用所述替换后的语料库进行词向量训练,得到所述单义词向量模型。

第三方面,本发明实施例还提供了一种终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;其中,所述处理器执行所述程序时可实现上述的词语相关度的计算方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现上述的词语相关度的计算方法中的步骤。

本发明实施例的词语相关度的计算方法及终端,通过单义词向量模型来计算词语之间的相关度,单义词向量模型中的每个多义词利用同义词林编码被区分为多个单义词,每个单义词对应一个的词向量,从而能够对多义词的不同词义进行区分,准确确定词语之间的相关度。

附图说明

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

图1表示本发明实施例的词语相关度的计算方法的流程图。

图2表示本发明实施例的确定多义词在不同上下文的同义词林编码的流程图;

图3表示本发明具体实例二的训练单义词向量模型的流程图;

图4表示本发明实施例的终端的结构示意图之一;

图5表示本发明实施例的终端的结构示意图之二;

图6表示本发明实施例的终端的结构示意图之三。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了便于理解,首先对本发明实施例涉及的以下内容进行说明:

同义词林编码:《同义词词林》原版提供了三层编码,即大类用大写英文字母表示,中类用小写字母表示,小类用二位十进制整数表示。同义词词林扩展版相比于原版,新增了第四级编码和第五级编码,与原有的三级编码合并构成一个完整的编码,每个编码唯一代表一组词语。本发明实施例涉及的同义词林编码具体为同义词词林扩展版中的词语编码形式。

词语的同义词林编码集合s:可表示为函数findcode(c),指词语c在同义词词林中的同义词林编码集合,具体定义如下:

s=findcode(c)={d1,d2,……,di……,dk}

其中,di为词语c在同义词词林中的第i个同义词林编码,k为词语c在同义词词林中的义项个数,即k=|findcode(c)|,同义词林编码集合s中的元素可表示为:

……

……

其中表示同义词词林中同义词林编码为dk下的第nk个词语。

单义词判别函数sign(c):

其中,c表示一个词语,若c不在同义词词林中,则|findcode(c)|=0。sign(c)=0表示词语c是多义词,即词语c在同义词词林中具有多个同义词林编码。sign(c)=1表示词语c是单义词,即词语c在同义词词林中只有一个同义词林编码或者词语c不在同义词词林中。

字词判别函数word(c):

其中,函数word(c)用于判断c是否为一个字,因为词语表达的信息相对一个字来说更为明确,因此本发明实施例在选择上下文时,优先选择词语。

参见图1所示,本发明实施例提供了一种词语相关度的计算方法,应用于终端,包括如下步骤:

步骤101:获取第一词语的第一同义词林编码集合和第二词语的第二同义词林编码集合;

步骤102:根据预先训练的单义词向量模型,分别确定所述第一词语在所述第一同义词林编码集合中每个同义词林编码下的第一词向量,以及所述第二词语在所述第二同义词林编码集合中每个同义词林编码下的第二词向量;

步骤103:根据确定的所述第一词向量和第二词向量,获取所述第一词语和所述第二词语的相关度最大的词义对;

步骤104:根据所述相关度最大的词义对,计算所述第一词语和所述第二词语的相关度。

其中,单义词向量模型为基于word2vec的cbow模型。单义词向量模型中的每个多义词利用同义词林编码被区分为多个单义词,每个单义词对应一个的词向量,该词向量只表达多义词的某一个词义。

这样,本发明实施例的词语相关度的计算方法,通过单义词向量模型来计算词语之间的相关度,单义词向量模型中的每个多义词利用同义词林编码被区分为多个单义词,每个单义词对应一个的词向量,从而能够对多义词的不同词义进行区分,准确确定词语之间的相关度。

本发明实施例中,词语的词向量是多维实数向量,向量中包含了自然语言中的语义和语法关系,通常词向量之间余弦距离的大小可代表词语之间的相关度,因此在计算词语之间的相关度时,可计算相应词向量之间的余弦距离,余弦距离越大,词语之间的相关度越大。

终端在根据确定的第一词向量和第二词向量,获取第一词语和第二词语的相关度最大的词义对时,可首先利用第一词语在每个同义词林编码下的第一词向量和第二词语在每个同义词林编码下的第二词向量进行相关度计算,然后根据计算结果,选取使得第一词语和第二词语的相关度最大的词义对。

由于语料库内不同词语的词频差别较大,表达相同词义的词语和另外一个词语计算的相关度往往差别较大,因此直接利用词语的词向量计算的相关度并不能完全表示词义之间的相关程度。针对此问题,本发明实施例中,终端在计算词语之间的相关度时,可采用均值滤波方式进行计算,以使计算到的词语之间的相关度更接近词语蕴含的语义的相关程度,避免同一词义下的词语因在语料库中出现的频率不同而产生词义相关度的巨大差别。

具体的,终端根据相关度最大的词义对,计算第一词语和第二词语之间的相关度的过程可为:

确定第一单义词的词向量和所述第一单义词的词义向量,以及第二单义词的词向量和所述第二单义词的词义向量;其中,所述第一单义词为所述相关度最大的词义对中的与所述第一词语对应的编码单义词,所述第二单义词为所述相关度最大的词义对中的与所述第二词语对应的编码单义词;

利用所述第一单义词的词向量和所述第二单义词的词义向量进行相关度计算,得到第一相关度,并利用所述第一单义词的词义向量和所述第二单义词的词向量进行相关度计算,得到第二相关度;

选取所述第一相关度和所述第二相关度中的最大值,作为所述第一词语和所述第二词语之间的相关度。

其中,第一单义词的词义向量为第一单义词的同义词林编码下的所有同义词的词向量的平均值,第二单义词的词义向量为第二单义词的同义词林编码下的所有同义词的词向量的平均值。

下面,通过具体实例一对本发明的计算词语相关度的过程进行说明。

本发明具体实例一中,假设计算词语a和词语b之间的相关度,具体计算过程为:

s1,获取词语a的同义词林编码集合a,na=|a|,na为集合a的元素个数,并获取词语b的同义词林编码集合b,nb=|b|,nb为集合b的元素个数;

s2,根据预先训练的单义词向量模型,分别确定词语a在集合a中每个同义词林编码下的词向量,词向量利用词语a和对应同义词林编码表示,组成词向量集合groupa,以及词语b在集合b中每个同义词林编码下的词向量,词向量利用词语b和对应同义词林编码表示,组成词向量集合groupb,

s3,利用groupa中的每个词向量元素和groupb中的每个词向量元素进行交叉计算,选取使得词语a和词语b的相关度最大的词义对,公式如下:

其中,函数simvec为基于单义词向量模型计算的两个词之间的相关度,相关度最大的词义对所对应的词语和同义词林编码的组合为a+am和b+bn;

s4,计算词语a和词语b之间的相关度,具体过程为:首先,确定词语a在同义词林编码am下的词义向量词义向量为同义词林编码am下的所有同义词的词向量的平均值,利用词义向量和词向量group(b,bn)进行相关度计算,得到第一相关度;然后,确定词语b在同义词林编码an下的词义向量词义向量为同义词林编码an下的所有同义词的词向量的平均值,利用词义向量和词向量group(a,am)进行相关度计算,得到第二相关度;最后,选取第一相关度和第二相关度中的最大值,作为词语a和词语b之间的相关度,具体公式如下:

本发明实施例中,终端在根据单义词向量模型计算词语相关度之前,可首先获取单义词向量模型。因此,步骤101之前,本发明实施例的词语相关度的计算方法还可包括:

利用预处理后的语料库进行词向量训练,得到初始词向量模型;

根据所述初始词向量模型和同义词词林,确定所述预处理后的语料库中的多义词在不同上下文的同义词林编码;

利用确定的同义词林编码作为所述多义词的词前缀,将所述多义词替换为多个具有不同同义词林编码的单义词,得到替换后的语料库;

利用所述替换后的语料库进行词向量训练,得到所述单义词向量模型。

其中,对语料库进行预处理主要是对语料库进行分词、去停用词等操作。预处理后的语料库中的词语集合可记为c={c1,c2,c3,……,cx,……,cm},m为词语的个数,cx为集合c中第x个词语,1≤x≤m。初始词向量模型为当前常用的基于word2vec的cbow模型。

这样,单义词向量模型的训练过程,会根据多义词的上下文为多义词训练多个词向量,从而改进多义词的相关度计算质量。

本发明实施例中,终端可利用邻域窗口词语和同义词词林,确定不同上下文中多义词表达的词义,确定多义词在不同上下文的同义词林编码。具体的,请参见图2,终端确定多义词在不同上下文的同义词林编码的过程可为:

步骤201:获取多义词的上下文邻域词集合;

步骤202:获取所述上下文邻域词集合中每个邻域词的权重组成的权重集合;

步骤203:根据初始词向量模型,确定所述上下文邻域词集合中每个邻域词的词向量组成的词向量集合;

步骤204:利用所述权重集合和所述词向量集合进行加权求和,得到所述多义词的邻域向量;

步骤205:根据同义词词林,确定所述多义词的每个同义词林编码对应的词义向量组成的词义向量集合;

步骤206:根据所述邻域向量和所述词义向量集合,确定所述多义词在不同上下文的同义词林编码。

下面,通过具体实例二对本发明的训练单义词向量模型的过程进行说明。

本发明具体实例二中,在训练单义词向量模型时,要将语料库中的每个多义词替换为不同同义词林编码的单义词。请参见图3,实例二的训练单义词向量模型的过程为:

步骤301:利用预处理后的语料库进行词向量训练,得到初始词向量模型。

其中,预处理后的语料库中的词语集合为c={c1,c2,c3,……,cx,……,cm},m为词语的个数,cx为集合c中第x个词语,1≤x≤m。初始词向量模型为当前常用的基于word2vec的cbow模型。

步骤302:获取词语cx的上下文邻域词集合context。

其中,基于单义词判别函数sign(c),词语cx选为多义词。在选择词语cx的上下文时,基于字词判别函数word(c)优先选择词语。通过滑动窗口的方式获取预处理后的语料库中词语cx的上下文邻域词集合context,w为邻域窗口大小,为词语cx的上文的邻域词集合,为词语cx的下文的邻域词集合。

步骤303:获取邻域词集合context中每个邻域词的权重组成的权重集合v。

其中,首先获取邻域词集合context中每个邻域词和词语cx的距离组成的集合l,l={l1,l2,……,lw},邻域词与词语cx的距离是指在语料库中,以词语cx为中心,若邻域词和词语cx之间相隔li-1个词语,则邻域词和词语cx的距离记为li;然后获取邻域词集合context中每个邻域词的权重组成的权重集合v,v={v1,v2,……,vw},其中vi为邻域词和词语cx之间的权重,记为vi=1/li。

步骤304:根据初始词向量模型,确定邻域词集合context中每个邻域词的词向量组成的词向量集合u。

其中,u为邻域词集合context中的邻域词对应的词向量集合,ui∈rm,m为词向量的维度。

步骤305:计算词语cx的邻域向量

其中,邻域向量为词向量集合u和权重集合v的加权之和,记为:

步骤306:根据同义词词林,计算词语cx的不同词义的词义向量集合e。

其中,首先确定词语cx的同义词林编码集合s=findcode(cx)={d1,d2,……,di……,dk},di为词语cx在同义词词林中的第i个编码即同义词林编码,k为词语cx在同义词词林中的义项个数;然后对集合s中每个编码di下的所有同义词的词向量求和取平均值作为该编码di的词义向量ei,最后利用每个词义向量ei组合成词义向量集合e,e={e1,e2,……,ek},ei代表词语cx的编码di下的词义向量。

步骤307:确定词语cx在语料库出现位置的同义词林编码。

其中,根据词语cx的邻域向量和词义向量集合e,确定词语cx在语料库文本出现位置的同义词林编码(也可称为词义编码)可以表示为softmax回归分类问题,词语cx的编码集合s为候选分类标签,后验概率模型表示为:

其中表示上下文邻域向量和词义向量之间的距离,在本发明具体实例中,选择余弦距离,表示为:

由于在后验概率模型中,分母为常数,后验概率只与分子相关,进一步分析,在判别过程中,对于相同上下文也是常数,因此后验概率只与成正比,其中为ei的归一化向量。

因此,词语cx在语料库文本出现位置的同义词林编码可以通过求解使得最大的词义向量对应的编码得到,如下所示:

步骤308:将编码与词语cx进行组合,记为

其中,实现词语字符串的组合,将编码作为词语cx的前缀。

步骤309:利用组合后的替换语料库中出现在上下文context的词语cx。

步骤310:利用替换后的语料库进行词向量训练,得到基于word2vec的单义词向量模型。

上述实施例对本发明的词语相关度的计算方法进行了说明,下面将结合实施例和附图对与本发明的词语相关度的计算方法对应的终端进行说明。

参见图4所示,本发明实施例还提供了一种终端,包括:

第一获取模块41,用于获取第一词语的第一同义词林编码集合和第二词语的第二同义词林编码集合;

第一确定模块42,用于根据预先训练的单义词向量模型,分别确定所述第一词语在所述第一同义词林编码集合中每个同义词林编码下的第一词向量,以及所述第二词语在所述第二同义词林编码集合中每个同义词林编码下的第二词向量;其中,所述单义词向量模型中的每个多义词利用同义词林编码被区分为多个单义词,每个单义词对应一个的词向量;

第二获取模块43,用于根据确定的所述第一词向量和第二词向量,获取所述第一词语和所述第二词语的相关度最大的词义对;

计算模块44,用于根据所述相关度最大的词义对,计算所述第一词语和所述第二词语之间的相关度。

本发明实施例的终端,通过单义词向量模型来计算词语之间的相关度,单义词向量模型中的每个多义词利用同义词林编码被区分为多个单义词,每个单义词对应一个的词向量,从而能够对多义词的不同词义进行区分,准确确定词语之间的相关度。

本发明实施例中,参见图5所示,所述计算模块44包括:

第一确定单元441,用于确定第一单义词的词向量和所述第一单义词的词义向量,以及第二单义词的词向量和所述第二单义词的词义向量;其中,所述第一单义词为所述相关度最大的词义对中的与所述第一词语对应的编码单义词,所述第二单义词为所述相关度最大的词义对中的与所述第二词语对应的编码单义词;

第一计算单元442,用于利用所述第一单义词的词向量和所述第二单义词的词义向量进行相关度计算,得到第一相关度,并利用所述第一单义词的词义向量和所述第二单义词的词向量进行相关度计算,得到第二相关度;

选取单元443,用于选取所述第一相关度和所述第二相关度中的最大值,作为所述第一词语和所述第二词语之间的相关度。

进一步的,参见图5所示,所述终端还包括:

第一训练模块45,用于利用预处理后的语料库进行词向量训练,得到初始词向量模型;

第二确定模块46,用于根据所述初始词向量模型和同义词词林,确定所述预处理后的语料库中的多义词在不同上下文的同义词林编码;

替换模块47,用于利用确定的同义词林编码作为所述多义词的词前缀,将所述多义词替换为多个具有不同同义词林编码的单义词,得到替换后的语料库;

第二训练模块48,用于利用所述替换后的语料库进行词向量训练,得到所述单义词向量模型。

具体的,所述第二确定模块46包括:

第一获取单元,用于获取所述多义词的上下文邻域词集合;

第二获取单元,用于获取所述上下文邻域词集合中每个邻域词的权重组成的权重集合;

第二确定单元,用于根据所述初始词向量模型,确定所述上下文邻域词集合中每个邻域词的词向量组成的词向量集合;

第二计算单元,用于利用所述权重集合和所述词向量集合进行加权求和,得到所述多义词的邻域向量;

第三确定单元,用于根据同义词词林,确定所述多义词的每个同义词林编码对应的词义向量组成的词义向量集合;

第四确定单元,用于根据所述邻域向量和所述词义向量集合,确定所述多义词在不同上下文的同义词林编码。

具体的,所述单义词向量模型为基于word2vec的cbow模型。

本发明实施例还提供了一种终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;其中,所述处理器执行所述程序时可实现上述词语相关度的计算方法,且达到相同的效果,在此不再赘述。

具体的,参见图6所示,本发明实施例还提供了一种终端,所述终端包括总线61、处理器62、收发机63、总线接口64、存储器65和用户接口66。

其中,处理器62,用于读取存储器65中的程序,执行下列过程:

获取第一词语的第一同义词林编码集合和第二词语的第二同义词林编码集合;

根据预先训练的单义词向量模型,分别确定所述第一词语在所述第一同义词林编码集合中每个同义词林编码下的第一词向量,以及所述第二词语在所述第二同义词林编码集合中每个同义词林编码下的第二词向量;其中,所述单义词向量模型中的每个多义词利用同义词林编码被区分为多个单义词,每个单义词对应一个的词向量;

根据确定的所述第一词向量和第二词向量,获取所述第一词语和所述第二词语的相关度最大的词义对;

根据所述相关度最大的词义对,计算所述第一词语和所述第二词语之间的相关度。

收发机63,用于在处理器62的控制下接收和发送数据。

具体的,处理器62还用于:确定第一单义词的词向量和所述第一单义词的词义向量,以及第二单义词的词向量和所述第二单义词的词义向量;其中,所述第一单义词为所述相关度最大的词义对中的与所述第一词语对应的编码单义词,所述第二单义词为所述相关度最大的词义对中的与所述第二词语对应的编码单义词,利用所述第一单义词的词向量和所述第二单义词的词义向量进行相关度计算,得到第一相关度,并利用所述第一单义词的词义向量和所述第二单义词的词向量进行相关度计算,得到第二相关度,选取所述第一相关度和所述第二相关度中的最大值,作为所述第一词语和所述第二词语之间的相关度。

具体的,处理器62还用于:利用预处理后的语料库进行词向量训练,得到初始词向量模型,根据所述初始词向量模型和同义词词林,确定所述预处理后的语料库中的多义词在不同上下文的同义词林编码,利用确定的同义词林编码作为所述多义词的词前缀,将所述多义词替换为多个具有不同同义词林编码的单义词,得到替换后的语料库,利用所述替换后的语料库进行词向量训练,得到所述单义词向量模型。

具体的,处理器62还用于:获取所述多义词的上下文邻域词集合,获取所述上下文邻域词集合中每个邻域词的权重组成的权重集合,根据所述初始词向量模型,确定所述上下文邻域词集合中每个邻域词的词向量组成的词向量集合,利用所述权重集合和所述词向量集合进行加权求和,得到所述多义词的邻域向量,根据同义词词林,确定所述多义词的每个同义词林编码对应的词义向量组成的词义向量集合,根据所述邻域向量和所述词义向量集合,确定所述多义词在不同上下文的同义词林编码。

具体的,所述单义词向量模型为基于word2vec的cbow模型。

在图6中,总线架构(用总线61来代表),总线61可以包括任意数量的互联的总线和桥,总线61将包括由通用处理器62代表的一个或多个处理器和存储器65代表的存储器的各种电路链接在一起。总线61还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口64在总线61和收发机63之间提供接口。收发机63可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。例如:收发机63从其他设备接收外部数据。收发机63用于将处理器62处理后的数据发送给其他设备。取决于计算系统的性质,还可以提供用户接口66,例如小键盘、显示器、扬声器、麦克风、操纵杆。

处理器62负责管理总线61和通常的处理,如前述所述运行通用操作系统。而存储器65可以被用于存储处理器62在执行操作时所使用的数据。

可选的,处理器62可以是cpu、asic、fpga或cpld。

可以理解,本发明实施例中的存储器65可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。本文描述的系统和方法的存储器65旨在包括但不限于这些和任意其它适合类型的存储器。

在一些实施方式中,存储器65存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统651和应用程序652。

其中,操作系统651,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序652,包含各种应用程序,例如媒体播放器(mediaplayer)、浏览器(browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序652中。

这样,本发明实施例的终端,通过单义词向量模型来计算词语之间的相关度,单义词向量模型中的每个多义词利用同义词林编码被区分为多个单义词,每个单义词对应一个的词向量,从而能够对多义词的不同词义进行区分,准确确定词语之间的相关度。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现上述词语相关度的计算方法中的步骤。

具体的,所述程序被处理器执行时实现以下步骤:

获取第一词语的第一同义词林编码集合和第二词语的第二同义词林编码集合;

根据预先训练的单义词向量模型,分别确定所述第一词语在所述第一同义词林编码集合中每个同义词林编码下的第一词向量,以及所述第二词语在所述第二同义词林编码集合中每个同义词林编码下的第二词向量;其中,所述单义词向量模型中的每个多义词利用同义词林编码被区分为多个单义词,每个单义词对应一个的词向量;

根据确定的所述第一词向量和第二词向量,获取所述第一词语和所述第二词语的相关度最大的词义对;

根据所述相关度最大的词义对,计算所述第一词语和所述第二词语之间的相关度。

可选地,所述程序被处理器执行时还可以实现以下步骤:确定第一单义词的词向量和所述第一单义词的词义向量,以及第二单义词的词向量和所述第二单义词的词义向量;其中,所述第一单义词为所述相关度最大的词义对中的与所述第一词语对应的编码单义词,所述第二单义词为所述相关度最大的词义对中的与所述第二词语对应的编码单义词,利用所述第一单义词的词向量和所述第二单义词的词义向量进行相关度计算,得到第一相关度,并利用所述第一单义词的词义向量和所述第二单义词的词向量进行相关度计算,得到第二相关度,选取所述第一相关度和所述第二相关度中的最大值,作为所述第一词语和所述第二词语之间的相关度。

可选地,所述程序被处理器执行时还可以实现以下步骤:利用预处理后的语料库进行词向量训练,得到初始词向量模型,根据所述初始词向量模型和同义词词林,确定所述预处理后的语料库中的多义词在不同上下文的同义词林编码,利用确定的同义词林编码作为所述多义词的词前缀,将所述多义词替换为多个具有不同同义词林编码的单义词,得到替换后的语料库,利用所述替换后的语料库进行词向量训练,得到所述单义词向量模型。

可选地,所述程序被处理器执行时还可以实现以下步骤:获取所述多义词的上下文邻域词集合,获取所述上下文邻域词集合中每个邻域词的权重组成的权重集合,根据所述初始词向量模型,确定所述上下文邻域词集合中每个邻域词的词向量组成的词向量集合,利用所述权重集合和所述词向量集合进行加权求和,得到所述多义词的邻域向量,根据同义词词林,确定所述多义词的每个同义词林编码对应的词义向量组成的词义向量集合,根据所述邻域向量和所述词义向量集合,确定所述多义词在不同上下文的同义词林编码。

可选地,所述单义词向量模型为基于word2vec的cbow模型。

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

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

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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