基于Word2Vec的WordNet词语相似度计算研究

2022-02-24 12:36陈丹华王艳娜周子力赵晓函李天宇王凯莉
计算机工程与应用 2022年3期
关键词:标号语料库语义

陈丹华,王艳娜,周子力,赵晓函,李天宇,王凯莉

1.曲阜师范大学 网络空间安全学院,山东 曲阜 273100

2.曲阜师范大学 物理工程学院,山东 曲阜 273100

词语相似度作为自然语言处理的主要研究课题之一,在许多方面都有所涉及,例如文本分类、机器翻译等[1]。目前词语相似度计算主要有基于语料库统计与基于知识两类方法[2]。基于语料库统计的方法根据词汇上下文信息的共现概率计算词语相似度。基于知识的方法根据知识库内部的结构层次进行计算,常用的英文知识库是WordNet,它是一个组织概念及其关系的语义网络,当前WordNet词语相似度计算方法主要有3种[3]:基于路径的方法、基于信息内容(IC)的方法和基于特征的方法。

基于路径的方法根据WordNet内部结构中两个概念对应节点之间的最短路径长度度量相似度,Rada等人[4]、Hirst等人[5]、Wu等人[6]和Liu等人[7]认为节点路径越短,相似度越大;基于信息内容(IC)的方法依靠节点共同的概念信息内容大小度量语义相似性,内容越多概念越相似,Resnik[8]和Lin等人[9]利用IC提出了一系列词语相似度算法。虽然以上方法易于理解并且实验效果较好,但只考虑边的统计信息或IC值,未考虑词语的语义信息,当两个概念的最短路径或IC相同时,相似度通常被认为是相同的[2],会出现明显的错误;基于特征的方法主要将每个概念表示为特征集或特征向量,其中特征来自WordNet的不同属性,如Gloss和相关术语,根据集合理论或向量空间,概念的相似性可以转换为集合重叠或向量相似性。Tversky[10],Petrakis等人[11]和Rodriguez等人[12]认为当两个概念具有较多的共同特征时,将更加相似;Banerjee等人[13]、Aouicha等人[14]和Patwardhan等人[15]专注于WordNet的Gloss特征,即定义概念含义的简短术语,用Gloss量化两个概念的重叠程度进而计算相似度。尽管考虑了词语概念,但基于特征的方法依靠特征集,并没有考虑WordNet内部的词语位置关系,使计算效果较差。

因此本文提出了一种新的WordNet词语相似度计算方法:利用Word2Vec模型计算WordNet中的词语相似度。本文首先对WordNet原始数据进行预处理,改进其表示形式,构建WordNet语料库:在WordNet名词数据集中提取具有特定语义关系的同义词集的标号集,再使用信息排列方法处理标号集;然后使用Word2Vec对WordNet标号集进行向量化处理,利用标号向量的余弦值计算词语相似度。实验结果表明本文方法进一步提高了与人工判定值计算取得的Pearson相关系数指标。

1 背景知识

Word2Vec[16]本质是一种简单的神经网络模型,通过训练将文本内容处理简化为K维向量空间的向量。向量的相似性可用于表示文本的语义相似性,它在情感分析[17]和文本分类[18]中具有良好的性能。词向量表示有两种方法:One-Hot表示和分布式表示。当数据量很大时,One-Hot表示容易造成维数灾难,并且任何两个单词都没有语义联系。分布式表示将特征从高维空间减少到相对低维的空间,不仅解决了维度灾难问题,而且挖掘了词之间的语义联系。Word2Vec模型的输入是One-Hot向量,然后进入多层神经网络,在神经网络的训练过程中,不断修改参数并更新权重矩阵,最后获得了分布式向量,从而使词之间具有语义关系。

Word2Vec主要使用CBOW和Skip-gram模型[19]进行训练,包含输入层、投影层和输出层,并使用Hierarchical Softmax和负采样技术来加快训练过程。如图1所示,可以看出Skip-gram模型使用中心词作为输入来预测周围的上下文。相比之下,CBOW模型是给定上下文预测中心词。Hierarchical Softmax[20]在输出层中使用Huffman树来加速训练,输出层Softmax计算的概率值被替换为Huffman树来计算单词出现的概率,降低了时间复杂度。负采样[21]用于提高训练速度和改善单词向量质量,每次选择一部分样本进行训练,然后更新参数,而不是训练所有数据,可以大大加快训练速度。

图1 Word2Vec模型Fig.1 Word2Vec model

2 相关工作

2.1 WordNet结构分析

WordNet[22]是一个英语词汇数据库,它由同义词集构成,每个同义词集代表一个不同的概念,并且包含一组相同意义的单词,若一个单词有多重语义,那么也会在多个同义词集中出现[23]。

WordNet还包含同义词集之间的关系,如上位、下位和整体-部分等,通常由不同的关系指针符号表示。以WordNet 3.0名词数据集为例,表1显示了同义词集的关系指针符号表示,例如上位关系用符号“@”表示,下位关系用符号“~”表示等。表2说明了数据集每行数据即每个同义词集从左至右排列的编码格式[24],行首是本概念同义词集标号,根据标号即可获取对应的一组具有相同意义的单词,随后是各种标记。值得注意的是,若某行有多个关系指针列表ptr,则本概念同义词集有多个与之有语义关系的同义词集,即每行数据中包含多个同义词集标号。数据集行数就是同义词集个数,也是概念个数。

表1 WordNet名词同义词集的关系指针符号Table 1 Relational pointer symbols of WordNet noun synsets

表2 WordNet名词数据集编码格式Table 2 Coding format in WordNet noun dataset

图2给出了WordNet名词数据集片段,例如标号00006269的同义词集中有一个同义词life,有两个与之有语义关系的同义词集,分别是标号为00004258的上位同义词集与标号为08010218的下位同义词集,依据它们的标号就可以查询到各自对应的同义词集。

图2 WordNet名词数据集片段Fig.2 WordNet noun dataset fragment

2.2 WordNet词语相似度计算方法

目前,WordNet词语相似度计算方法可分为基于路径的方法、基于信息内容的方法和基于特征的方法三类,本节将具体介绍这些方法。

2.2.1 基于路径的方法

基于路径的方法通过测量两个词语即概念在Word-Net is_a关系分类树中对应节点的最短路径长度来计算词语相似度,节点路径越长,相似度越小。

Rada等人[4]提出了单一路径算法,利用WordNet中连接两个概念(c1,c2)的边所形成的最短通路长度path(c1,c2)计算词语相似度,公式如下:

其中i代表概念对之间的第i条通路。

Hirst等人[5]的方法中加入了路径方向,包括上位关系和下位关系等,路径越长,方向变换次数越多,相似度越低。

Wu等人[6]考虑了概念对(c1,c2)到最近公共父节点的最短路径N1与N2,还考虑了最近公共父节点在层次结构中的深度H:

Liu等人[7]使用平滑参数(0<α,β≤1)为概念对(c1,c2)的最短路径长度L和最近公共父节点深度H分配各占的比重:

2.2.2 基于信息内容的方法

该类方法是将WordNet中每个概念的信息内容(IC值)作为参数,利用某个概念的下位子图确定IC值,两个概念的共享IC值就代表词语相似度。

Resnik等人[8]首次将IC值用在WordNet词语相似度计算中,用概念对(c1,c2)的最近公共父节点LCS(c1,c2)的IC值来展现概念对的相似度:

Lin等人[9]将概念对的共享IC值即IC(LCS(c1,c2))占概念对IC值总和的比例作为词语相似度:

2.2.3 基于特征的方法

基于特征的方法假设WordNet中的每个概念都有一组指示其特征的属性,如Gloss(表示概念含义的简短注释)。当两个概念有较多的共有特征而较少的非共有特征时将更相似。

Tversky[10]根据WordNet的语义关系提取描述概念对的语义特征,特征共性越多,相似度越高。

Petrakis等人[11]认为若两个概念的同义词集、Gloss和相邻概念在词法上越相似,则概念越相似。

Rodriguez等人[12]将同义词集、特征和相邻概念之间的重叠度进行加权求和来衡量词语相似度:

其中,α、β和γ是权重系数,S是相似度计算方法。

Banerjee等人[13]利用概念对的Gloss中重叠词的数量和相邻概念的Gloss来计算相似度。

Aouicha等人[14]基于is_a分类树用Gloss集合来表示每个概念,为概念对的Gloss集合中的重叠名词分配名词因子(某名词的同义词集词语的IC值之和):

其中,factorc(c1),factor c(c2)是概念c1与c2的Gloss集合中的名词因子之和,Commonality(c1,c2)是重叠名词的因子之和。

Patwardhan等人[15]分别为概念对的Gloss和它们的相邻概念的Gloss创建向量,将相互对应的Gloss向量的余弦值之和作为相似度。

尽管上述方法结果较好,但基于路径与基于信息内容的方法只考虑路径或信息内容,忽略了语义信息,不能完全反映词语相似度;基于特征的方法利用特征集,考虑了语义信息,但缺少了词语在WordNet结构中的位置关系,因此准确性也会降低。为了改善这些不足,本文综合考虑词语的语义信息和位置关系,提出了新的WordNet词语相似度算法。

3 提出的WordNet词语相似度算法

针对上文提到的WordNet词语相似度计算方法存在的问题,本文提出了一种新的词语相似度算法:使用Word2Vec词向量模型计算WordNet词语相似度。计算过程如下:(1)构建基于WordNet的新的语料库,即提取WordNet名词数据集中具有上位、下位、组成和成员关系的同义词集标号,用信息排列方法处理后生成的标号集;(2)使用Word2Vec训练WordNet语料库生成标号向量;(3)计算向量余弦距离得到词语相似度。

3.1 构建WordNet语料库

本文先后构建了两个用于训练的WordNet语料库,分别定义为Set a与Set b,以图2中标号为00006269和03896233的同义词集为例,构建过程如下:

步骤1获取原始数据

原始数据Setorg为WordNet 3.0中的名词数据集,包含所有名词同义词集,表示如下:

示例如下:

其中,N为数据集中的名词同义词集synset的总个数,也是数据集行数。例如synset1为数据集中的第一个同义词集,synset N为数据集中的最后一个同义词集。

步骤2提取标号集

从原始数据中提取两种有特定语义关系的标号集,分别为Set IDa与Set IDb,提取方法如下:

第一种标号集:

其中,上标代表行数1至N,ID synset是本概念同义词集标号,ID@-synset是与同一行中本概念同义词集有上位关系的同义词集标号,ID~-synset是与同一行中本概念同义词集有下位关系的同义词集标号。所以find a()方法提取原始数据每行中的ID synset、ID@-synset和ID~-synset标号,按顺序排列后形成N行新数据,即Set IDa。

第二种标号集:

示例如下:

其中,上标代表行数1至N,ID synset、ID@-synset和ID~-synset与第一种标号集Set IDa中的标号具有相同意义,ID%p-synset是与同一行中本概念同义词集有整体-组成关系的同义词集标号,ID%m-synset是与同一行中本概念同义词集有整体-成员关系的同义词集标号。所以findb()函数提取原始数据1至N行中每行的ID synset、ID@-synset、ID~-synset、ID%p-synset以及ID%m-synset标号,按顺序排列后形成N行新数据,即Set IDb。

步骤3标号集处理

使用信息排列方法Ma与Mb分别处理步骤2得到的标号集Set IDa与Set IDb,获得用于Word2vec训练的WordNet语料库Set a与Set b。

M a→Set a:

与原始数据相比,标号集没有了关系指针等标记,只保留了八位十进制数形式的标号,并且本概念同义词集标号在每行中的第一个位置。若该行中的关系同义词集很多,则有一些标号就与第一个标号距离较远,不能体现两者的语义关系。因此,M a在每行每个上位词集标号ID@-synset与下位词集标号ID~-synset后增加了一个本概念同义词集标号ID synset,组合成标号集Set a,解决了标号因距离远不能充分利用语义关系的问题,Set a表示方式如下:

示例如下:

第一种信息排列方法Ma虽然可以解决因标号距离远而产生的问题,但忽略了WordNet结构是一个大范围的语义网络,同义词集作为基本单位在语义网中有时会相隔较多层[25],为符合语义网中的同义词集分布形式,Mb在Ma的基础上改进了标号排列方式,进一步加强了标号对应词语的位置联系,分别对Set IDb中的四种关系同义词集标号做了以下处理:

对于上位词集标号ID@-synset,在每个ID@-synset后增加一个本概念同义词集标号ID synset。表示方式如下:

对于下位同义词集标号ID~-synset,组成同义词集标号ID%p-synset以及成员同义词集标号ID%m-synset,分别在三种标号的左侧依次增加ID synset与ID@-synset,在右侧依次增加ID@-synset与ID synset。表示方式如下:

示例如下:

使用Mb得到的语料库让每一个关系同义词集(上位词集除外)的左右两边都包含ID synset和ID@-synset,即使WordNet为树状结构,它们都能跨越层次限制接收到来自上层的信息。

经过上述三个步骤,获得了两种基于WordNet的语料库Set a和Set b。

3.2 Word2Vec训练语料库

本文采用基于Hierarchical Softmax优化技术的Skipgram模型(HSS模型)分别训练语料库Set a和Set b,将语料库中的标号转化为向量,以便计算相似度。HSS模型结构如图3所示,训练过程如下:

图3 HSS模型Fig.3 HSS model

步骤1选择语料库,对语料库进行预处理。

步骤2建立标号字典C ID,计算标号出现频率。

步骤3根据标号出现的频率,在HSS模型输出层建立一棵Huffman树[26]。

步骤4输入层输入根据字典C ID生成的中心标号w ID的one-hot向量v ID。

步骤5投影层利用权重矩阵将v ID映射为特定维度的向量。

步骤6输出层Huffman树的根节点对应v ID,叶子节点对应字典中的任意标号e,且从根节点到叶子节点的路径有且仅有一条,路径上的每个分支都是一次二分类,左边是负类,右边是正类。每次分类产生一个概率p(u ID|w ID),即某个标号u ID成为中心标号w ID上下文的概率,将这些概率累乘,得到中心标号w ID的上下文Context(w ID)出现的概率:

步骤7对每一个样本(w ID,Context(w ID)),使用随机梯度上升法最大化目标函数:

不断更新Huffman树中的节点参数和向量,训练完毕后得到整个语料库所有标号的分布式向量。

经过以上步骤,Word2Vec对两个语料库Set a与Set b的训练全部完成,得到了两种标号向量,用于计算词语相似度。

3.3 计算词语相似度

得到标号向量后,对于任意两个词语t1、t2,计算语义相似度的过程如下:

步骤1在原始数据中查询t1、t2所在同义词集的标号。由于有些词语在WordNet中有多种语义,所以会对应多个同义词集标号。假设t1对应m个标号,t2对应n个标号,则得到m×n个标号对。例如在图2中,单词rooster标号为01792158,单词voyage标号为00312553与00312784,得到2个标号对:(01792158,00312553)、(01792158,00312784)。

步骤2计算每对标号向量的相似度即夹角余弦值cosθ,标号向量分别为v t1与v t2:

其中,1≤i≤m,1≤j≤n,是标号向量的索引值。得到每个标号对的相似度后,选取最大值作为t1与t2的词语相似度:

经计算,图2中单词rooster与voyage的标号对相似度分别为0.14与0.19,取最大值0.19作为最终词语相似度。

4 实验与分析

4.1 实验数据

为了充分评估本文提出方法计算词语相似度的效果,实验选取了三个公开的词语相似度评测集,分别是1965年Rubenstein和Goodenough[27]提供的65对名词的人工判定相似值(R&G-65),1991年Miller和Charles[28]发布的30对名词的人工判定相似值(M&C-30),和2014年Taieb等人[29]从两个不同的生物医学数据集中提取的38个医学名词对的人工判定相似值(MED38)。上述三种评测集中的词语都可以在WordNet中找到,并且与WordNet中词语的词性相同,均为名词,评测集统计信息如表3所示,具体介绍了评测集的提出年份、包含的单词对数、单词词性以及人工评测值的分值范围。

表3 词语相似度评测集Table 3 Evaluation datasets for word similarity

4.2 实验评价指标

实验评价指标为常用的Pearson相关系数[30],衡量两个变量之间的相关性,其计算公式为:

其中,cov(X,Y)为X和Y的协方差,D(X)与D(Y)分别为X与Y的方差,ρX,Y越大相关性越高。

4.3 实验设置

本文实验基于Python实现,定义计算两种WordNet语料库Set a与Set b中词语相似度的方法分别为method-1与method-2,对应的Word2Vec训练模型分别为model-1与model-2。

训练语料库时,经过多次实验得出各个语料库上的模型最优参数配置,如表4所示,初始学习率为alpha,词向量维度为size,窗口值为window,批处理数为batch,最低词频为min-count,其他参数均为默认,训练完成后保存两个训练模型以计算词语相似度。

表4 Word2Vec训练参数设置Table 4 Word2Vec training parameters setting

4.4 实验结果及分析

为了全面评估本文提出方法的效果,首先使用method-1与method-2计算出在三个测评集上的词语相似度,得到Pearson相关系数,然后将Pearson相关系数对比实验分为三部分,分别为不同算法、不同词向量模型和不同语料库之间的对比。

4.4.1 不同算法之间的Pearson相关系数对比

为了确保本文方法的有效性,本小节实验列出了上文提到的多种词语相似度算法在测评集上的Pearson相关系数[29],与本文方法进行了对比,测评集是R&G-65、M&C-30和MED38,对比结果如表5所示。

根据表5数据分析,由于Word2Vec(HSS)模型训练WordNet语料库后生成的标号向量不仅具有丰富的词语语义信息,而且包含了词语在WordNet结构中的位置关系信息,使得本文提出的方法在整体上优于前人提出的方法,并且易于计算。其中,在R&G-65和MED38上都达到了最优效果,分别为0.85与0.71。但在M&C-30上略低于Aouicha等人[14]的方法,可能是由于Aouicha等人将每个单词的IC值作为权重分配给了对应的特征值,概念特征较丰富。

表5 与不同算法的Pearson相关系数对比Table 5 Comparison of Pearson correlation coefficients with different algorithms

4.4.2 不同词向量模型之间的Pearson相关系数对比

为了验证本文使用Word2Vec词向量模型的可行性,本节实验选择了两种常见的词向量模型作为基线模型,分别为FastText[31]模型与Glove[32]模型,两种模型使用与model-1相同的实验设置训练了Set a,与model-2相同的实验设置训练了Set b,然后使用与本文相同的方法计算词语相似度,最后得出与人工判定值计算的Pearson相关系数与本文方法对比,测评集仍然为R&G-65、M&C-30和MED38,对比结果如表6所示。

从表6看出,本文使用Word2Vec词向量模型训练语料库的方法在三个测评集上的效果均优于另外两种词向量模型,说明Word2Vec词向量模型融合WordNet语料库进行训练的方法具有科学性和可行性。

表6 与不同词向量模型的Pearson相关系数对比Table 6 Comparison of Pearson correlation coefficients with different word vector models

4.4.3 不同语料库之间的Pearson相关系数对比

为了进一步验证本文构建的WordNet语料库即标号集的合理性,本小节实验采用Mikolov等人[16]使用Word2Vec模型在google-news英文语料上训练好的词向量,通过计算词向量的余弦距离得到测评集单词对的相似度,进而得到Pearson相关系数,与本文在语料库Set a、Set b上的计算结果进行了对比。由于google-news侧重于新闻数据,缺少一些医学术语,所以使用了R&G-65与M&C-30测评集,对比结果如表7所示。

表7 与不同语料库的Pearson相关系数对比Table 7 Comparison of Pearson correlation coefficients with different corpora

由表7数据看出,在使用相同词向量模型Word2Vec的条件下,使用本文构建的语料库计算出的词语相似度比google-news英文语料库更接近人类的判定标准,由此证明本文构建的两个WordNet语料库有一定的合理性,语料库Set a与Set b将文本形式的词语替换为对应的标号,使词语语义更加充实,又使用信息位置排列方法增强了标号的位置关系,使最终结果更加合理。

5 结束语

为了解决现有的WordNet词语相似度计算方法未充分考虑词语语义信息和位置关系的问题,本文提出了一种使用Word2Vec词向量模型计算WordNet中词语相似度的算法。构建WordNet标号集之后,利用Word2Vec模型训练标号集,然后找到词语对应的标号后就可通过计算标号向量之间的余弦距离获得词语相似度。其中,WordNet标号集语料包含了丰富的词语信息,信息位置排列方法进一步增强了词语位置关系,使计算出的词语相似度更加接近人工评判值,符合实际结果。

在下一步工作中,将继续丰富基于WordNet的标号集,考虑其他词性的同义词集,优化词向量模型的性能,进一步提高与人工判断的相关性。此外,尝试将Word-Net标号向量用于其他自然语言处理技术中。

猜你喜欢
标号语料库语义
真实场景水下语义分割方法及数据集
平行语料库在翻译教学中的应用研究
三条路的笛卡尔乘积图的L(1,2)-标号数
语言与语义
《语料库翻译文体学》评介
几种叉积图的平衡指标集
批评话语分析中态度意向的邻近化语义构建
“吃+NP”的语义生成机制研究
基于路P8m+4t+2的交错标号的图S(4m+1,4(t+1),4m-1)的优美标号*
语篇元功能的语料库支撑范式介入