图 3-3 一个语料片段示意图
为了获取更好的关于特定领域词汇、短语的语料资源,在此又选取维基百科作为语料资源的补充。
上述的语料资源是多个语料片段的综合体,不具备完整文本的特性,不能使用一些文本相似度方法来计算。本文中我们使用HsinHsi Chen[34]提出的网络搜索双检验计算模型分析计算语料片段。在此模型中,对象X和Y,当能在Y的语料片段中找到X并在X的语料片段中发现Y,则即假定X和Y存在着某种关联关系。
在模型中,对象X和Y的相似度值定义为下面几个公式:
0iff(Y@X)?0orf(X@Y)?0??VariantDice(X,Y)??f(Y@X)?f(X@Y) (3-2)
otherwise?f(X)?f(Y)?VariantCosine(X,Y)?min(f(Y@X),f(X@Y)) (3-3)
f(X)?f(Y)VariantJaccard(X,Y)?min(f(Y@X),f(X@Y)) (3-4)
f(X)?f(Y)?max(f(Y@X),f(X@Y))min?f(Y@X),f(X@Y)? (3-5)
min?f(X),f(Y)?VariantOverlap(X,Y)?0???CODC(X,Y)???f(Y@X)f(X@Y)?log???f(X)f(Y)????eiff(Y@X)?0orf(X@Y)?0 (3-6)
Otherwisef(Y@X)表示对象Y出现在对象X语料中的频率;f(X@Y)表示对象X出现在对象Y语
料中的频率;f(X)表示对象x在其自身语料中出现的频率;f(Y)表示对象y在其自身语料中出现的频率。在公式3-6中,如表明X和Y没有任何关系;如
f(Y@X)=0、f(X@Y)=0,CODC(X,Y)=0,此情况下
f(X@Y)=f(Y)、f(Y@X)=f(X), CODC(X,Y)=1,此情况下
表明X和Y有着强烈的关联关系。
3.2.3 基于页空间数和语料片段的语义相似度计算
1)
页空间数与语义相似性度量
利用已有的商业搜索引擎如:Google、Baidu、Yahoo等,输入待检索的词语或短
语,其能返回命中页数(Hits)。对以“P AND Q”条件输入搜索的页空间数可以认为是P和Q在网络上共现的近似值,输入单个的P和Q同时返回其网络命中页数。利用这些页空间数能反映两个词语或短语在网络上统计信息的相似值[35]。
在此实现了四种有效的页空间共现计算方法,为后续的算法提供参数:
0ifH(P?Q)?C??WebJaccard(P,Q)?? (3-7) H(P?Q)Otherwise?H(P)?H(Q)?H(P?Q)?0??WebDice(P,Q)??2H(P?Q)?H(P)?H(Q)?fH(P?Q)?COtherwise (3-8)
0ifH(P?Q)?C??WebOverlap(P,Q)??2H(P?Q) (3-9)
Otherwise?min(H(P),H(Q))?0ifH(P?Q)?C??H(P?Q)? (3-10) WebPMI(P,Q)??NOtherwise?log2(H(P)H(Q))?NN?上述公式中,H(P?Q)表示P和Q在搜索引擎中命中的页数,H(P)表示P命中的页数,
H(Q)表示Q命中的页数,C=5,N=1011。
2)
基于页空间数和语料片段的相似度计算
仅仅利用页空间数来计算两个词语在网络的共现相似度,存在着一些缺点:页空
间数忽略了该词语在页面内的位置信息,即使两个词语共现在一个页面内,它们也不一定存在着关联;多含义词语的页空间数包括了该词语的所有意思的页数,就会出现很多的噪音数据。而简单的分析语料片段中词语出现的频率,不能充分利用语料片段内的语用、语境信息。整合后的多个语料片段又不具备一个完整文本的特征,没办法利用已有的文本相似度算法。在本文中,我们从语料片段抽取固有的词语模式,再和页空间数结合,形成一个特征向量,在二者加权综合计算,来度量词语间的相似度。计算公式如3-11所示:
Simcopus(X,Y)??1?WebPMI(X,Y)??2?CODC(X,Y) (3-11)
算法的描述如下: GetFeatureVector(A;B)
comment: Given a word-pair A;B get its feature vector F.
D ← GetSnippets(“A B\N ← null
for each snippetd 2 D
do N ←N + GetNgrams(d; A;B) SelPats ← SelectPatterns(N; GoodPats) PF ← Normalize(SelPats)
F ← [PF;WebJaccard;WebOverlap;WebDice;WebPMI] return (F)
3.3 一种利用本体和语料库的综合词语相似度算法—HCSC算法
语义词典蕴含着词语丰富的语义信息,但其完备性不足。语料库含有词语间大量的上下文信息,但存在着一定噪音数据,计算量大。本文提出一种参数自适应调节的基于本体(知网)和语料库的综合词语相似度计算算法(HCSC—Similarity Calculation based on HOWNET and Corpus),充分利用了已有本体库(知网)中词语义原间的语义信息和语料库中词语间的语用、语境信息,解决了《知网》中的未登录词问题,提高了相似度计算结果的精度和准确性,同时辅以规则和同义词词林计算,准确度和精确度更好。
3.3.1 基于规则和同义词词林的语义相似度计算
1)
基于规则的词语语义相似度计算
在本课题中,需要处理的是计算机领域的教育资源,计算机学科的术语有着其特
殊的性质--很多的计算机教材来自于国外,很多的标准是使用英语制定的。在扩展主题图的概念元素中会出现很多专业术语的英文简写,和一些概念的英文表述,如“计算机网络”和“Networks”、“局域网”和“LAN”等。为了度量这种类型的概念对(词语对),本文提出一种基于简易规则的词语语义相似性计算方法。
简易规则库是由一条条规则组成的,本文使用的规则形式化描述为:
True?p?(q?...?s)。此规则库是开放的,即可扩充性的添加规则的条目。建立的简易
规则库涵盖了计算机领域五大学科的常见的中英文对照术语,简写短语等,示例如图3-4所示:
图 3-4简易规则示意图
基于规则的词语相似度计算原理如图3-5所示,规则匹配器将数据集合按照规则匹配算法和规则进行匹配,执行引擎是规则匹配算法的具体实现。
True匹配成功?False词语1规则匹配器规则库词语2执行引擎1执行引擎n?
图 3-5规则使用原理图
基于规则的词汇相似度计算公式定义如下(公式3-11):
?0ifequal(A,B)?0andequal(B,A)?0 (3-12) SimRule(A,B)??1.0ifequal(A,B)?1orequal(B,A)?1?式中equal(A,B)?0表示在规则库中找不到A=B,equal(A,B)?1表示规则库中存在着A=B。 2)
同义词词林与词语语义相似度计算
《同义词词林》是梅家驹先生等人于1983年编纂而成,初衷是希望提供较多的同 义词语,对创作和翻译工作有所帮助。这本词典中不仅包括了一个词语的同义词,也包含了一定数量的同类词,即广义的相关词,收录词条近7万。同义词词林扩展版[36]是哈工大信息检索研究室在《同义词词林》的基础上,参照多部电子词典资源,按照人民日报语料库中词语的出现频度,只保留频度不低于3(小规模语料的统计结果)部分词语。词林按照树状层次结构(如图3-6词条示意图)把所有收录的词条组织到一起,把词汇分成大、中、小3类,大类有12个,中类有97个,小类有1 428个,小类下再划分词群。每个词群中的词语又进一步分成了若干个行,同一行的词语要么词义相同(有的词义十分接近),要么词义有很强的相关性。
图 3-6 同义词词条编录示意图
基于《同义词词林》的词汇语义相似度计算过程为:(1)输入词语A,B;(2)查询词林中A的条目中是否含有B的编号,如有,则为同义词;(3)否则查询词林中B的条目中是否有A的编号,如有则为同义词;(4)如A,B为同义词,则输出其相似度值?(??0.95),否则输出0。
基于《同义词词林》的词汇相似度计算公式定义如下(公式3-12):
?0iffind(A,B)?0andfind(B,A)?0 (3-13) SimThesaurus(A,B)??0.95iffind(A,B)?1orfind(B,A)?1?式中
find(A,B)?0表示在词林A的条目中找不到B的编号,find(A,B)?1表示词林A
的条目中含有B的编号。
3.3.2 一种改进的基于HowNet(知网)的语义相似度计算
1)
传统的基于《知网》的词语语义相似度计算
《知网》是一个以汉语和英语的词语所代表的概念为描述对象,以揭示概念与概
念之间以及概念所具有的属性之间的关系基本content的常识知识库。知网中一个词语可以表达为几个概念,而概念则用义原来描述,一个概念可以对应多个义原(图3-7)。刘群[8]等提出的《基于<知网>词汇语义相似度计算》最具代表性:假设W……,1有n个义原C11,C12,
C1n,W2有m个义原C21,C22,……,C2m,刘群定义两个词语W1和W2的语义相似
度是所有义原间相似度值的最大值,如公式3-12所示:
Sim(W1,W2)?i?1...n,j?1...mmaxSim(C1i,C2j) (3-14)
如图3-7所示,义原都处在一个树形结构中,因此将义原在树中的语义距离转化为它们的语义相似度。假设义原P2在树中的距离为dist。则根据公式(3-13)可以得到两个义原的相1和P似度。