一种基于Wikipedia的词汇语义关联度计算方法

2016-09-26 07:19汪志伟朱福喜刘世超
计算机应用与软件 2016年3期
关键词:维基关联度语义

汪志伟 朱福喜 刘世超

(武汉大学计算机学院 湖北 武汉 430072)



一种基于Wikipedia的词汇语义关联度计算方法

汪志伟朱福喜刘世超

(武汉大学计算机学院湖北 武汉 430072)

词汇语义关联度计算是信息检索和自然语言处理的关键问题之一。针对该问题提出一种改进的基于Wikipedia语义关联度计算方法WGR。该方法使用Wikipedia数据集作为背景知识库,在传统方法的基础上融合维基文章中的布局信息,并对维基概念的入链和出链使用不同的方法进行处理;引入Google搜索资源,经分类筛选后使用LDA建模计算关联度;最后综合两个数据集的结果得到WGR语义关联度。通过实验分析,WGR在与现有算法比较时,取得了更好的准确率。

语义关联度文章网络布局信息维基百科隐含狄利克雷分布谷歌

0 引 言

语义关联度研究是信息检索、人工智能等领域的基础性研究课题之一,有着重要的研究价值。

传统的语义关联度计算方法包括单纯的对大型语料库进行统计分析,不涉及到相关的背景知识[1,2],或者使用人工构建的带有少量外部知识的词典资源[3,4]。近年来出现了很多利用Wikipedia计算语义关联度的方法。维基文章间丰富的链接关系构成的文章网络及文本内容能提供大量明确定义的语义知识。虽然Wikipedia是数以百万计的用户协作编写的百科全书,内容覆盖广泛,有研究表明,其内容的准确性与由专家写成的大英百科全书相差无几[5]。与传统背景知识库相比,Wikipedia内容的结构化和准确性使其成为更好的语义关联度计算背景知识库。但现有的基于Wikipedia计算语义关联度的方法还存在着一些不足:1) 着重于链接网络和维基分类树而忽视文本内容;2) 没有考虑Wikipedia存在的缺陷,如更新滞后、覆盖度有限等,没有引入相应的内容进行补充。

针对这些缺陷,本文提出了一种改进的基于Wikipedia词汇语义关联度计算方法WGR,主要贡献如下:

(1) 引入了维基文章页面布局信息,在使用Wikipedia计算关联度时可以更准确地描述词语-文章的关联性。

(2) 对维基概念的输入链接(Backward Links)和输出链接(Forward Links)分别应用不同的处理方法,从而在Wikipedia内容处理中既应用了维基文章的文本内容,又考虑了多层输出链接。

(3) 引入Google搜索资源,经过分类器筛选后进行LDA建模从而计算关联度,最后综合Wikipedia和Google资源的结果得到WGR语义关联度。

1 相关研究

现有的语义关联度计算方法主要区别在于利用了不同的背景知识。较早的基于人工语义词典如WordNet和Roget的方法[6],其准确性受限于人工词典的容量和更新情况。其后出现的基于语料库的方法,通过对大量文本集合进行统计分析得到比较全面的背景知识库,其中LSA算法[7]是准确率较高的算法之一,但其需要对语料库进行大量预处理。

Strube和Ponzetto[8]首先开始利用Wikipedia计算语义关联度,所提出的WikiRelate算法将基于Wordnet的方法进行修改后应用到Wikipedia上,取得了和基于Wordnet相近的准确度。Gabrilovich和Markovitch[9]提出的ESA算法是目前准确率最高的语义关联度计算方法之一,该方法采用向量空间模型对维基文章进行建模,不仅可以比较词汇的语义关联度,还可以比较文本内容之间的语义关联度。Milne和Witten[10]提出的WLM算法,采用向量空间模型处理Wikipedia文章网络链接,结合NGD距离(Normalized Google Distance)[11],算法开销低于ESA,且取得了较高的准确率。孙琛琛等[12]提出的WSR算法,引入带权重的链接,并借鉴TF-IDF定义链接权重,从而分析文章网络的多层次结构,最后结合维基分类树计算关联度,算法开销远小于ESA,也取得了较高的准确度。李赟等[13]利用中文维基百科进行语义相关词的获取及其相关度分析。

Radinsky等[14]提出的TSA算法将Wikipedia资源和纽约时报的文章结合使用。使用了纽约时报从1863年至2004年的文章存档,先将每个词转换为一系列包含这个词的维基文章的集合,通过维基概念在纽约时报文章中分布的相似性计算原始词的语义关联性。

文献[15]使用LDA对Wikipedia数据集进行建模,将词语描述成高维向量,向量由两部分组成:词语与上下文临近词的关联度组成的向量,LDA模型输出的对词语的主题表达向量,通过计算高维向量的余弦距离得出语义关联度,也取得了较好的准确度。

2 基于Wikipedia语义关联算法WGR

本文提出的WGR语义关联度计算方法整体流程如图1所示。该算法主要包括两个部分:首先是利用Wikipedia数据集的语义关联度计算WikiRel,将待计算语义关联度的词语映射成维基概念后,对每个维基概念所处文章网络中的输入链接和输出链接采用不同的方法计算,计算过程中结合维基文章的页面布局信息,更精确地描述词语-文章关联性。其次是利用Google搜索结果的语义关联度计算GooRel,取得每个待计算关联度的词语在Google搜索中的结果集,使用分类器筛选后进行LDA建模,计算词语各自主题向量的余弦距离。最后综合两个部分得到WGR算法。

图1 算法整体流程

2.1基于Wikipedia数据集关联度计算WikiRel

已有的基于Wikipedia的关联度算法[8-13]大多只考虑文本内容或文章网络。为了综合考虑文章网络和文本内容,本文采用不同的方法对入链和出链进行处理,其中入链(Backward Links)即目标概念出现在某个维基概念的描述文章中;出链(Forward Links)即目标概念的描述文章中出现了某个维基概念。最终取二者的加权和得到WikiRel关联度。

2.1.1维基页面布局信息

图2为维基文章页面示例,维基文章中的首段通常是对该文章所描述维基概念的概要说明;在维基页面中显示为蓝色字体的即锚文本;文章中被加粗为黑体或斜体表示强调说明,如图中的”Apple Computer, Inc”和”Fortune”;此外,Wikipedia编辑过程中,会附加相关的图片资源进行辅助说明,如图2中图片下方文字说明。

图2 维基文章页面示例

2.1.2维基页面间的链接信息

Wikipedia中存在着多种链接,不同的链接所能体现的概念间语义关联是不一样的。本文对不同链接使用经验初始权值如表1所示。

表1 不同类型链接的初始权值

2.1.3使用目标概念入链改进的ESA算法BLRel

ESA算法[9]包括三个步骤:把词语转换为概念向量;计算向量中每个元素的相关性权重;计算两个概念向量的余弦距离。考虑到在维基文章中很多词语只起到辅助描述、组成句子的作用,并不能反映其与对应的维基概念有语义关系,本文只对出现了目标概念作为锚文本的维基文章计算相关性向量。在取得所有包含以目标概念为锚文本的维基文章后,去掉分类、消歧等不需要的功能页面,以及正文内容过短的文章,然后进行文本预处理。

本文在ESA算法的第二步进行改进,将TF-IDF与维基页面的布局信息相结合,词语-维基概念相关性计算如下:

Relevance=β0+β1×isBold+β2×isItalic+β2×isAnchor+

β3×isImage+β4×isFirstPara+β5×TFIDF

(1)

其中isBold、isItalic、isAnchor、isImage、isFirstPara分别代表词语是否在页面中为黑体、斜体、锚文本、位于图片描述中、处于第一段,若是则取值为1,否则取为0。

对于式(1)中的参数设定本文通过回归分析进行拟合。将式(1)作为拟合方程,本文使用了最小二乘法(OLS)、次序对数回归(OLR)和支持向量回归(SVR)三种分析方法,以对比拟合结果对语义关联度计算结果的影响。具体训练集通过人工标注获得,从Wikipedia数据库中随机抽取100篇文章,这些文章至少都包含一个黑体词语、三个以上可以正确链接到其他维基页面的锚文本、至少三个字的图片描述文字、一个以上的文章段落。然后再从每篇文章中选出30个词语进行人工相关性标注,选择的过程要覆盖到所有的布局信息,人工标注由三个人分别独立完成,取三个人的标注结果平均值作为最终结果。对于标注结果存在歧义或无法给出标注结果的词语全部剔除,最终得到了1 750个词语。

2.1.4使用目标概念出链的关联度计算FLRel

本文借鉴pfibf[16],结合布局信息定义了维基概念间链接权值。对于目标概念的输出链接,计算三层输出链接向量的余弦距离得到FLRel关联度。

(1) 链接权值设置

设a、b为源概念和目标概念,a→b的权值:

(2)

(2) 语义关联度计算

结合式(1),链接的初始权值定义如下:

w(a→b)0=Relevance×表1中的经验权值

(3)

图3 三层输出链接示例

将式(3)代入式(2),再对源概念的所有输出链接计算权重,概念输出链接如图3所示,a、b为源概念结点,输出至c、d的为第一层,输出至e为第二层,至f为第三层。根据源概念结点构建出每层输出链接向量,最后计算每层向量余弦距离。

在计算第二层链接矩阵时,a→e的权重为w(a→c)×w(c→e)×0.9,0.9为关联性传递衰减系数,第三级链接以此类推。对其中某层链接而言,源概念的语义关联度描述为:

(4)

其中,M(a)、M(b)分别为源概念a,b的输出链接权重向量。最终FLRel关联度计算为:

FLRel(a,b)=α×Similarity1+β×Similarity2+

γ×Similarity3

(5)

其中,Similarity1、Similarity2、Similarity3分别为1、2、3层链接的余弦距离,α、β、γ为对应的权重系数,且α+β+γ=1,其具体值通过实验多组不同的权值,在α=0.67,β=0.21,γ=0.12时,FLRel取得了最高的准确率。

2.1.5WikiRel关联度计算

综合BLRel和FLRel,使用Wikipedia数据集计算得到WikiRel关联度为:

WikiRel=δ×BLRel+ε×FLRel

(6)

其中δ+ε=1,本文δ=0.55,ε=0.45。

2.2基于Google资源的关联度计算GooRel

本文将Google搜索资源作为Wikipedia之外的扩充背景知识库。对于一组待计算语义关联度的词,首先取得各自在扩充知识库中的网页结果集,再使用分类器过滤主题不相关的结果,接着对网页内容使用LDA进行建模,最后通过计算两个词语-主题分布向量的余弦距离得到GooRel关联度。

2.2.1Google外部资源

虽然Wikipedia是目前规模最大的在线百科全书,但也存在缺陷:首先,其还在不断完善各种新词条,已有内容也保持着更新维护,内容覆盖度有限;其次,由于其需要保证内容的公正客观准确性,维基文章中不能涉及过多的时事信息,且其内容的更新存在滞后性。针对这些缺陷,本文利用Google搜索对背景知识库进行扩充,Google资源的优势包括能在技术上尽可能快的找到新出现的网页,由PageRank计算出网页排名,根据与搜索请求关联性的高低给出搜索结果。

2.2.2扩充背景知识库构建

由于对每个词都单独取实时搜索结果会导致关联度计算的时间开销太大,本文通过结合Wikipedia分类结构和Google搜索构建离线扩充背景知识库。Wikipedia中主要的主题分类包括Agriculture、Arts、Culture、Environment、Geography、Health、History、Humanities、Humans、Language、Law、Mathematics、Medicine、Nature、People、Politics、Professional studies、Science、Sports、Technology,使用Google搜索获得与这些主题相关的排名最靠前的50个网站(不包括仅为单个网页的搜索结果),继而去抓取这些网站中最新的文章,最后按照其所属的分类进行存储,即构成GooRel计算的背景知识库。

2.2.3LDA主题模型

图4 LDA模型图示

LDA[17]是一种主题概率模型,可以得到文档集中每篇文档的隐含主题概率分布。LDA概率图模型如图4所示,其中α和β表示语料级别的超参数,θ表示文档主题的概率分布,φ表示特定主题下词的概率分布,M表示文档集的文本数,K表示文档集的主题数,N表示每篇文档包含的特征词数。

(7)

其中,k为隐含主题的数目。

本文采用Gibbs采样估计当前采样词wi的主题tj的后验分布,迭代完成输出主题-词参数矩阵φ和文档-主题矩阵θ。

2.2.4GooRel关联度计算

对于一组待计算语义关联度的词,首先将其分别映射到扩充知识库的分类上,取出各自对应的结果集;其次,因为对应的分类结果集中可能包含主题不相关的网页,采用朴素贝叶斯分类器进行筛选,其中训练集通过Wikipedia获取,使用主题词对应维基文章以及文章中所链接的相关维基概念,以及See Also链接文章,构建出每个词的分类训练文本集,去掉主题不符的网页。如果某个词对应的结果集在筛选后网页数量少于3000个,通过取对应词在Google中的实时搜索结果进行扩充,同时将这些搜索结果也添加到扩充知识库对应的类别中。

最后,对上述消歧完毕的网页文本内容使用LDA进行主题建模,建模过程中的参数估计采用Gibbs采样,迭代次数为1000次,其中主题数量K从10,20,…,一直迭代到200,取得到最优结果的情况;其中α=50/K,β=0.01。最后,对待计算语义关联度的词语ωi和ωj的所有网页数据通过LDA计算出分布tr(ωi)和tr(ωj)(参见式7),计算余弦相似度得到这对词语的语义关联度:

(8)

2.3WGR语义关联度计算

WGR关联度计算综合WikiRel和GooRel两种方法,对于给定词对ωi和ωj,二者的语义关联度计算如下,其中λ=0.66,μ=0.34。

WGR(wi,wj)=λ×WikiRel+μ×GooRel

(9)

3 实验及分析

3.1实验环境与数据集

本文实验环境如下:Windows Server 2003系统,配置双核3.5 GHz CPU和32 GB内存。

实验所用的Wikipedia数据来自其官方网站下载的数据集,数据集是2013年5月3日进行的备份。实验所使用的Google扩充背景知识库通过Java编写的爬虫软件抓取搜索结果及网页,平均每个类别收集了接近10 000个网页,对每个网页的预处理包括取出网页body主体文本内容,剔除特殊符号、HTML标签、停用词以及出现频率极低的词后进行存储。

本文选择最常用的WordSimilarity-353测试集[18]作为语义关联准确率评测数据集。

3.2实验结果及分析

在测试集上对本文提出的算法(WikiRel、GooRel、WGR)进行实验,采用Spearman等级相关系数评估语义关联度计算准确度,实验结果及分析如下。

3.2.1WikiRel参数分析

WikiRel关联度计算中,计算词语-维基概念相关性时实验了三种方法OLS、OLR和SVR对式(1)中的参数进行拟合,三种拟合方法对应得到的WikiRel计算结果如表2所示。

表2 WikiRel实验结果

从表2可以看到,使用最小二乘法(OLS)取得了最好的计算结果。支持向量回归(SVR)结果稍差,而使用次序对数回归(OLR)结果最差,因为其对式(1)中参数的返回值导致很多词语-维基概念相关性结果为0。最小二乘法(OLS)对式(1)的参数分析结果如表3所示。

表3 OLS分析结果

从表3可以看到,TFIDF、isBold、isItalic 、isAnchor、isImage是显著属性,TFIDF值的权重最高,isBold黑体、isItalic斜体表示强调,体现着一定的关联性。isImage(图片描述)和isAnchor(锚文本)所能体现的关联性较弱,部分维基文章中的图片和概念主题并不相关,锚文本也是如此,部分链接的添加只是起到引导作用,并没有实际的语义关联。而段落结构(isFirstPara)的权重最低,其对词语-维基概念相关性的影响要弱于文字样式。

3.2.2WGR算法评测

WGR算法关联度评测结果如表4所示。

表4 WGR评测结果

(1) WGR与传统方法对比

如图5所示与传统使用人工语义词典的方法相比,WGR采用Wikipedia作为背景知识库,同时借助Google结果资源,准确性取得了较大提高。

图5 与传统方法结果对比

(2) WGR与现有使用Wikipedia的方法对比

图6为WGR与WikiRelate、ESA、WLM的对比,也取得了更好的准确率。WikiRelate把在传统词典知识集上使用的方法应用到Wikipedia的层次分类树上;WLM利用Wikipedia文章网络,但其没有区别对待各种链接,并且只考虑与源概念结点直接相连的链接,虽然WLM算法也应用了Google资源,但仅仅是考虑词语的共现频率。ESA算法利用了所有维基文章的文本内容,但仅以TF-IDF值作为词语-概念相关性权值,而且要对几乎所有的维基文章进行预处理来计算词语-概念相关性的倒排索引,计算量非常大。

图6 与现有基于Wikipedia方法结果对比

图7中LDA所指代的方法为文献[13]提出的使用LDA对Wikipedia文章集进行建模,结合输出的矩阵计算语义关联度,取得了较好的准确度,验证了使用LDA模型处理文档集合计算语义关联度的可行性。本文中提出的GooRel方法,对每个词所使用的文本资源集合覆盖度和时效性更好,取得了和文献[13]方法相近的结果。虽然TSA算法的准确度比WGR稍高一点,但其采用1863年至2004年,超过130年的纽约时报文章存档作为外部资源,这些资源根本无法通过常规途径获取到。

图7 与现有其他方法结果对比

(3) GooRel结果分析

图8中横坐标为每个待计算关联度的词对应的搜索结果中参与LDA建模的网页数量。为了验证外部资源对GooRel语义关联度计算的影响,实验中,在清除掉歧义结果页面后,对每个词分别取前500,1000,…,直到5000个结果网页进行建模。每个词所采用的网页数量对结果的影响如图8所示,随着参与主题建模的网页数量的增加,准确度不断提升,但在网页数量到达3500时,提升效果渐趋稳定。

图8 参与建模网页数量对GooRel影响

4 结 语

本文在使用Wikipedia数据集作为背景知识库的基础上,结合Google搜索资源计算语义关联度,并通过实验验证了方法的有效性。Wikipedia是目前规模最大的知识库,其中还有大量的指向维基以外的链接引用,利用好这些外部资源,也可能会提高计算结果的准确度。而且Wikipedia提供的多语言版本也可能对提高结果的可靠性有辅助作用,这都将是在以后的工作中需要考虑研究的。

[1] Baezayates R,Ribeironeto B.Modern information retrieval[M].New York:ACM press,1999.

[2] Deerwester S C,Dumais S T,Landauer T K,et al.Indexing by latent semantic analysis[J].JASIS,1990,41(6):391-407.

[3] Budanitsky A,Hirst G.Evaluating wordnet-based measures of lexical semantic relatedness[J].Computational Linguistics,2006,32(1):13-47.

[4] Jarmasz M.Roget′s thesaurus as a lexical resource for natural language processing[D].University of Ottawa,2003.

[5] Giles J.Internet encyclopaedias go head to head[J].Nature,2005,438(7070):900-901.

[6] McHale M.A comparison of WordNet and Roget’s taxonomy for measuring semantic similarity[C]//Proceedings of COLING/ACL Workshop on Usage of WordNet in Natural Language Processing Systems,1998:115-120.

[7] Landauer T K,Foltz P W,Laham D.An introduction to latent semantic analysis[J].Discourse processes,1998,25(2-3):259-284.

[8] Strube M,Ponzetto S P.WikiRelate! Computing semantic relatedness using Wikipedia[C]//AAAI.2006:1419-1424.

[9] Gabrilovich E,Markovitch S.Computing Semantic Relatedness Using Wikipedia-based Explicit Semantic Analysis[C]//IJCAI.2007:1606-1611.

[10] Witten I,Milne D.An effective,low-cost measure of semantic relatedness obtained from Wikipedia links[C]//Proceedings of AAAI Workshop on Wikipedia and Artificial Intelligence:an Evolving Synergy,AAAI Press,Chicago,USA.2008:25-30.

[11] Cilibrasi R L,Vitanyi P M B.The google similarity distance[J].Knowledge and Data Engineering,IEEE Transactions on,2007,19(3):370-383.

[12] 孙琛琛,申德荣,单菁,等.WSR:一种基于维基百科结构信息的语义关联度计算算法[J].计算机学报,2012,35(11):2361-2370.

[13] 李赟,黄开妍,任福继,等.维基百科的中文语义相关词获取及相关度分析计算[J].北京邮电大学学报,2009,32(3):109-112.

[14] Radinsky K,Agichtein E,Gabrilovich E,et al.A word at a time:computing word relatedness using temporal semantic analysis[C]//Proceedings of the 20th international conference on World wide web.ACM,2011:337-346.

[15] Huynh D,Tran D,Ma W.Combination Features for Semantic Similarity Measure[C]//Proceedings of the International MultiConference of Engineers and Computer Scientists,2014:324-327.

[16] Nakayama K,Hara T,Nishio S.Wikipedia mining for an association web thesaurus construction[M].Web Information Systems Engineering-WISE 2007.Springer Berlin Heidelberg,2007:322-334.

[17] Blei D M,Ng A Y,Jordan M I.Latent dirichlet allocation[J].the Journal of machine Learning research,2003:993-1022.

[18] Finkelstein L,Gabrilovich E,Matias Y,et al.Placing search in context:The concept revisited[C]//Proceedings of the 10th international conference on World Wide Web.ACM,2001:406-414.

A WIKIPEDIA-BASED LEXICAL SEMANTIC RELATEDNESS CALCULATION METHOD

Wang ZhiweiZhu FuxiLiu Shichao

(SchoolofComputer,WuhanUniversity,Wuhan430072,Hubei,China)

Calculating the semantic relatedness between words is one of the key issues of information retrieval and natural language processing, for this issue, we presented WGR, an improved semantic relatedness calculation method based on Wikipedia. The method uses Wikipedia dataset as the background knowledge base, integrates on the basis of traditional method the layout information in Wikipedia articles, and processes the backward link and forward link of Wiki concepts with different methods. Besides, it introduces the resources of Google search, after classification and sieving, it uses LDA modelling to calculate the semantic relatedness, and finally integrates the results from two datasets to get WGR semantic relatedness. Through experimental analysis, WGR achieves better accuracy in comparison with existing algorithms.

Semantic relatednessArticle referenced networkLayout informationWikipediaLatent Dirichlet allocation (LDA)Google

2014-07-07。国家自然科学基金项目(61272277)。汪志伟,硕士,主研领域:Web数据挖掘。朱福喜,教授。刘世超,博士。

TP391

A

10.3969/j.issn.1000-386x.2016.03.009

页面布局信息可以使用正则表达式从维基中提取。例如,在维基

中,被两个单引号、三个单引号包起来的分别渲染成黑体、斜体;附图描述为‘[[Image:|Ac|< caption>]]’,参数即为图片描述;超链接在编码中有两种形式:’[[

| ]]’和’[[
]]’,取前者的anchor text和后者的article name为锚文本。

猜你喜欢
维基关联度语义
语言与语义
中国制造业产业关联度分析
中国制造业产业关联度分析
爱的最后一课
基于变长隐马尔科夫模型的维基词条编辑微过程挖掘
沉香挥发性成分与其抗肿瘤活性的灰色关联度分析
“上”与“下”语义的不对称性及其认知阐释
基于灰关联度的锂电池组SOH评价方法研究
维基解密大争论:争论固有焦点和在互联网时代呈现的争论新特征
爱的最后一课