曹靜雯,王鐵鑫,2,楊志斌,2,李文心
1(南京航空航天大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,南京 211106)
2(高安全系統(tǒng)的軟件開發(fā)與驗(yàn)證技術(shù)-工信部重點(diǎn)實(shí)驗(yàn)室,南京 211106)E-mail:tiexin.wang@nuaa.edu.cn
在大數(shù)據(jù)時(shí)代,數(shù)據(jù)和信息處理成為眾多領(lǐng)域的共同關(guān)注點(diǎn).大量的文本信息,如新聞,需求文檔等,由相關(guān)人員使用自然語言撰寫;由于自然語言的二義性,文本信息在傳遞過程中存在由于理解上的差異導(dǎo)致被錯(cuò)誤理解、傳達(dá)的可能性.對(duì)文本信息進(jìn)行語義分析,語義消歧等處理是有必要的.
自然語言使用詞語作為基本單位;詞語形成句子,句子組成文本.文本的語義由所包含的所有句子的語義構(gòu)成,而句子的語義由詞語的語義及語法規(guī)則共同決定.作為自然語言最基本的語義單元,詞語(詞匯)具有特定的語義和內(nèi)涵.對(duì)于自然人,在特定的場(chǎng)景使用語言一般不會(huì)引起歧義[1].計(jì)算機(jī)處理的語言具有多源性、語境異構(gòu)等特點(diǎn),計(jì)算機(jī)沒有自主辨別語言歧義的能力.因而需要人工輔助消除文本信息的歧義,其中涉及到的語義知識(shí)及推理,需要應(yīng)用自然語言處理NLP(Natural Language Processing)技術(shù)[2]完成.
NLP有眾多研究方向,其中語義分析是將文本轉(zhuǎn)換成可計(jì)算知識(shí)的過程.語義分析在NLP、信息檢索、信息過濾、信息分類和語義挖掘中具有廣泛的應(yīng)用.
為了提高語義分析的準(zhǔn)確性,需要搜集、創(chuàng)建大規(guī)模的語義知識(shí)資源,包括機(jī)器可處理的語義字典等.語義知識(shí)庫(kù)是語義字典的一種具體實(shí)現(xiàn)形式[3].
目前已有的語義知識(shí)庫(kù)包括:WordNet、ConceptNet[4]、HowNet[5]、DBpedia、FrameNet等;大部分語義知識(shí)庫(kù)以英文詞匯為構(gòu)建基礎(chǔ),而HowNet是針對(duì)中文詞匯建立的,ConceptNet也提供對(duì)中文詞匯語義計(jì)算的支持.
語義具有領(lǐng)域性,即同一詞匯在不同語境下的解釋存在差異.不同的語義知識(shí)庫(kù),對(duì)詞匯有不同的解釋并在詞匯間定義了特定的語義關(guān)系;基于不同的語義知識(shí)庫(kù)(或語料庫(kù)),科研人員提出了不同的語義相關(guān)性計(jì)算方法.
面向中文詞匯語義相關(guān)性計(jì)算問題,本文以兩種支持中文語義的知識(shí)庫(kù)“HowNet”及“ConceptNet”為基礎(chǔ),提出中文詞匯語義相關(guān)性的具體計(jì)算理論與方法.
本文主要貢獻(xiàn)如下:
1)分析、比較HowNet與ConceptNet語義知識(shí)庫(kù)的結(jié)構(gòu)、特征及應(yīng)用案例;
2)面向兩種知識(shí)庫(kù)各提出一種檢測(cè)中文詞匯語義關(guān)系的方法,并通過實(shí)驗(yàn)案例比較,得出HowNet適用于語義相似度檢測(cè)而ConceptNet適用于語義相關(guān)度檢測(cè)的結(jié)論;
3)探索性地提出結(jié)合兩種知識(shí)庫(kù)的語義檢測(cè)算法,以期提高檢測(cè)結(jié)果的準(zhǔn)確性,擴(kuò)展語義檢測(cè)的適用范圍.
本文結(jié)構(gòu)如下:第二節(jié)主要分析HowNet和ConceptNet的結(jié)構(gòu)及特點(diǎn);第三節(jié)介紹關(guān)于兩種知識(shí)庫(kù)已有的研究工作;第四節(jié)面向兩種知識(shí)庫(kù)分別提出語義相關(guān)性計(jì)算方法;第五節(jié)通過案例對(duì)第四節(jié)提出的計(jì)算方法進(jìn)行綜合比較;最后一節(jié)為總結(jié)和展望.
HowNet是動(dòng)態(tài)維護(hù)、持續(xù)更新的語義知識(shí)庫(kù);本文中使用的HowNet是官網(wǎng)于 2000年發(fā)布的(免費(fèi))版本,其中語義詞典中的總記錄數(shù)超過120,000條(仍在持續(xù)擴(kuò)充).
HowNet中定義了兩個(gè)基本概念“義原”和“義項(xiàng)”[5].
定義1.義原
義原是無法分割的最小意義單位.判斷增加新義原的首要原則是現(xiàn)有的義原集合是否能夠描述所有的概念.
定義2.義項(xiàng)
義項(xiàng)是一組義原的集合,描述了某個(gè)詞語的一項(xiàng)意思.義項(xiàng)中的第一個(gè)義原為主義原,是義項(xiàng)最基本的意義.
定義3.概念
概念是詞語的義項(xiàng)集合,一個(gè)詞語在不同的語境有不同的意思,每個(gè)意思對(duì)應(yīng)一個(gè)義項(xiàng).
HowNet中定義了1618個(gè)義原,分為以下9類:
1)Event|事件
2)entity|實(shí)體
3)attribute|屬性
4)aValue|屬性值
5)AttributeValue|屬性和屬性值
6)syntax|語法
7)qValue|數(shù)量值
8)SecondaryFeature|二特(二級(jí)特征)
9)EventRoleAndFeatures|動(dòng)態(tài)角色與特征
每個(gè)類型的義原構(gòu)成一棵義原分類樹;對(duì)于同一棵分類樹,可以計(jì)算其上任意兩個(gè)義原之間的義原距離.
定義4.義原和祖先的距離
義原所在層數(shù)和祖先所在層數(shù)的數(shù)值之差.
定義5.義原距離
即兩個(gè)義原距離他們最近公共祖先的距離之和.
義原分類樹是HowNet定義、維護(hù)語義關(guān)系的一個(gè)基礎(chǔ)文件.圖1是義原分類樹的示意.
圖1 義原分類樹示意
在一棵義原分類樹上,兩個(gè)義原的義原距離越小,則它們之間的相似性越高.義原位于的子樹(以最近公共祖先為根節(jié)點(diǎn)的樹)越低,則義原的分類越細(xì)致.在同一棵樹、同等義原距離下,接近葉子節(jié)點(diǎn)的義原之間的相似度要高于接近樹根的義原之間的相似度.
語義詞典是HowNet定義語義關(guān)系的另一個(gè)基礎(chǔ)文件,由多行記錄組成,每條記錄包括:一個(gè)中文詞語、對(duì)應(yīng)的英文單詞,兩個(gè)詞的詞性和詞的義項(xiàng)(在同一條記錄中,中英文詞語擁有相同的義項(xiàng))等.語義詞典的記錄結(jié)構(gòu)如圖2所示.
圖2 HowNet語義詞典中的記錄結(jié)構(gòu)
以詞“偶然性”為例,圖3是其在HowNet語義詞典中的存儲(chǔ)示例.
圖3 HowNet語義詞典中關(guān)于“偶然性”詞的定義
“偶然性”代表一個(gè)中文詞匯.左邊是由四個(gè)義原組成的該詞的義項(xiàng).“G_C =”和“G_E =”指明中文詞語的詞性和英語單詞的詞性.“NO.=”指明詞在字典中的序號(hào).一個(gè)中文詞匯往往可被翻譯成多個(gè)英語單詞,例如“偶然性”到三個(gè)英語單詞“chance”、“contingency”、“occasionality”.
本文中基于HowNet的中文詞匯語義相關(guān)性計(jì)算所用到的相關(guān)知識(shí)及推理基礎(chǔ)來自于“義原分類樹”和“語義詞典”兩個(gè)基本文件.
ConceptNet是基于OMCS(Open Mind Common Sense)數(shù)據(jù)庫(kù)構(gòu)建的語義網(wǎng)絡(luò)[4].它以有向網(wǎng)的形式存儲(chǔ)信息,包括以下幾個(gè)結(jié)構(gòu):
定義6.節(jié)點(diǎn)
節(jié)點(diǎn)存儲(chǔ)概念,概念代表一組密切相關(guān)的自然語言短語,可以是名詞短語、動(dòng)詞短語、形容詞短語或從句.節(jié)點(diǎn)擁有自然語言標(biāo)簽,例如“en”表示英語;“zh”表示中文.
節(jié)點(diǎn)分為頭節(jié)點(diǎn)和尾節(jié)點(diǎn):頭節(jié)點(diǎn)是關(guān)系的發(fā)出方,例如“車”和“工具”具有“IsA”關(guān)系,其中“車”為關(guān)系發(fā)出方:“車是工具”.尾節(jié)點(diǎn)是關(guān)系的接收方,如“工具”.
定義7.邊(斷言)
邊代表一般知識(shí)的事實(shí),是具有主謂賓的RDF(Resource Description Framework:資源描述框架)語句,如“車是工具”.
邊用于指明關(guān)系,ConceptNet使用固定的關(guān)系集合,如“RelatedTo”等.邊上有權(quán)重,表示斷言可信度的強(qiáng)弱.
定義8.關(guān)系
關(guān)系分為單向關(guān)系和雙向關(guān)系:
單向(有向)關(guān)系,如“PartOf”,一個(gè)節(jié)點(diǎn)是另一個(gè)節(jié)點(diǎn)的一部分等:“輪胎”和“車”,“輪胎是車的一部分”.
雙向關(guān)系,例如“Synonym”,兩個(gè)節(jié)點(diǎn)上的概念互為同義詞:“human”和“人”,human是人的英文單詞.
圖4是ConceptNet中詞匯“車”節(jié)點(diǎn)及連接到該節(jié)點(diǎn)的邊,此處僅顯示其中10條邊.邊(斷言)上標(biāo)明關(guān)系名和權(quán)重;權(quán)重(weight)表示斷言的可信度,由斷言的來源決定.最新版本的ConceptNet定義了34種語義關(guān)系.兩個(gè)概念間可同時(shí)具有多個(gè)語義關(guān)系(一種語義關(guān)系也可能有多條邊).在計(jì)算語義關(guān)系時(shí),通常選擇權(quán)重≥1的邊作為參考.
圖4 關(guān)于概念節(jié)點(diǎn)“車”的語義結(jié)構(gòu)圖
HowNet自2000年發(fā)布以來,受到許多學(xué)者的關(guān)注;基于HowNet提出的中文詞匯語義相關(guān)性檢測(cè)方法相繼發(fā)表.
張滬寅等人提出了一種基于HowNet改進(jìn)的語義相似度計(jì)算方法,使用主義原替換概念義項(xiàng)表達(dá)式中出現(xiàn)的具體詞,并且限制義原層次深度對(duì)相似度的影響[6].
朱新華等人提出了一種綜合HowNet與同義詞詞林的詞語語義相似度計(jì)算方法[7],根據(jù)義原層次結(jié)構(gòu)的特征,改進(jìn)了現(xiàn)有的義原相似度算法并且根據(jù)詞林的特征改進(jìn)了它的詞語相似度算法.最后,綜合考慮HowNet與同義詞林的動(dòng)態(tài)加權(quán)策略計(jì)算出最終的詞語語義相似度.
馬永起等人提出的改進(jìn)方法建立在義原軸上,考慮義原節(jié)點(diǎn)所處的深度、義原節(jié)點(diǎn)間的距離以及義原節(jié)點(diǎn)兄弟數(shù)目,在義原相似度基礎(chǔ)上,給出詞語語義相似度算法[8].
表1列出了上述相關(guān)工作的簡(jiǎn)要特點(diǎn).
表1 HowNet的已有工作
以上工作是通過HowNet基本文件內(nèi)單詞定義中的義原和義項(xiàng)實(shí)現(xiàn)詞對(duì)之間的語義相關(guān)性檢測(cè)的,檢測(cè)出的主要是詞對(duì)間的語義相似度.
ConceptNet知識(shí)庫(kù)中的語義關(guān)系來源于斷言,斷言由一句話構(gòu)成;在ConceptNet中,沒有單詞的明確定義,而是通過與單詞所在節(jié)點(diǎn)連接的邊以及邊上另一個(gè)節(jié)點(diǎn)來理解單詞的概念.
Ming-Hung Hsu等人提出了一種在拓展查詢(QE,Query Expansion)中基于ConceptNet的擴(kuò)展項(xiàng)權(quán)重自動(dòng)分配的方法[9].其基本思想為:將候選擴(kuò)展項(xiàng)分類為不同的離散權(quán)重類,例如:非常重要(heavy weight)、次重要(light weight)和不重要(no weight)等.該方法中使用了分類學(xué)習(xí)算法,支持向量機(jī)(SVM),從而自動(dòng)組合從多個(gè)來源(WordNet和ConceptNet)中提取各種類型的特征.此外,他們還在文獻(xiàn)[10]中比較了ConceptNet和WordNet在拓展查詢中的應(yīng)用,實(shí)驗(yàn)表明,兩個(gè)數(shù)據(jù)庫(kù)是互補(bǔ)的,其中前者具有更高的識(shí)別能力,而后者具有更高的概念多樣性.
Alexander Kotov等人展示了利用ConceptNet進(jìn)行拓展查詢的方法的系統(tǒng)研究結(jié)果[11].首先通過仿真實(shí)驗(yàn)證明,使用ConceptNet中的相關(guān)概念拓展查詢具有改進(jìn)難以查詢的搜索結(jié)果的巨大潛力.其次,提出并研究了幾種有監(jiān)督和無監(jiān)督的方法,用于從ConceptNet中選擇概念以進(jìn)行自動(dòng)查詢擴(kuò)展.
Robyn Speer等人介紹了“多語言和跨語言語義相似性”,以及基于ConceptNet的支持系統(tǒng)[12].該系統(tǒng)的最新版本(動(dòng)態(tài)維護(hù)、持續(xù)更新),添加了多種回退方法,用于將向量分配給詞匯表外單詞.
Mehdi Keshavarz等人基于ConceptNet開發(fā)了新的詞匯和語義相似性度量方法用于處理本體匹配[13].所提出的策略使用新的詞匯和語義匹配來尋找對(duì)應(yīng)實(shí)體.在語義方法中,作者使用ConceptNet來識(shí)別相似實(shí)體并根據(jù)它創(chuàng)建相似性矩陣,并使用標(biāo)準(zhǔn)精確度和召回方法評(píng)估所提出的測(cè)量方法,實(shí)驗(yàn)表明了所提出算法的有效性.
表2是對(duì)上述相關(guān)工作的簡(jiǎn)要總結(jié).
表2 關(guān)于ConceptNet的已有工作分析表
HowNet中包含中文和英文詞匯,維護(hù)16種語義關(guān)系,以概念的定義為主;由單獨(dú)的專業(yè)團(tuán)隊(duì)創(chuàng)建并維護(hù),如表3所示.
表3 兩種知識(shí)庫(kù)的比較
ConceptNet主要依靠互聯(lián)網(wǎng)眾包、專家創(chuàng)建和游戲內(nèi)容提取,3種方式來構(gòu)建;數(shù)據(jù)來源多而廣,包含304種語言、維護(hù)34種語義關(guān)系.ConceptNet以節(jié)點(diǎn)間邊上的關(guān)系為語義檢測(cè)、判斷的基礎(chǔ).
HowNet定義并維護(hù)義原分類樹,義原的相似性可以通過義原分類樹上的義原距離來計(jì)算[14].
首先,定位兩個(gè)比較義原的最近共同祖先,然后應(yīng)用向上遞歸算法找到兩個(gè)義原到共同祖先之間的距離,求和獲得兩個(gè)義原之間的相對(duì)距離.如果兩個(gè)義原不在同一棵分類樹上,則默認(rèn)它們之間的義原距離為100.
公式(1)用于計(jì)算義原距離.在公式(1)中:
com(a,b)表示atom(義原)a和atom b最近的共同祖先,通過向上遞歸查找到.
Distance(a,com(a,b))表示atom a到義原ab最近共同祖先之間的距離.
AtomDistance(a,b)表示atom a和atom b之間的義原距離.如果兩個(gè)義原不在同一棵樹上,則該值取100.
公式(1)是一個(gè)普遍定義的計(jì)算公式.
公式(2)用于計(jì)算兩個(gè)義原的相似度.在公式(2)中:
TreeHighi表示分類樹的高度,其中i是分類樹的序號(hào);由于義原分類樹共9棵,所以i的范圍為1-9,僅考慮atom a和atom b同時(shí)位于i樹的情況.
根據(jù)文獻(xiàn)[8]等,在計(jì)算義原的相似度時(shí),在義原距離相同情況下,需要考慮義原所在深度和義原分支的疏密程度對(duì)結(jié)果值的影響.一般情況下,隨著深度的增加,義原越密,所以公式中需引入Deep.
Deep表示atom a和atom b的最近共同祖先距離根節(jié)點(diǎn)的層數(shù),因?yàn)樯疃仍酱?,劃分得越?xì);隨著Deep的增大,整個(gè)公式的值增大.假設(shè)兩個(gè)義原的義原距離為4,義原在樹上的最大距離為12,則兩個(gè)義原的義原相似性隨兩個(gè)義原的最近共同祖先深度的增加而增加,如圖5所示.
圖5 義原相似度隨因子“Deep”增加而變化的曲線圖
2×TreeHighi是兩個(gè)義原在該樹上可能有的最大距離.
AtomSim(a,b)表示atom a和atom b之間的相似性.
對(duì)于分支節(jié)點(diǎn),其第一個(gè)子節(jié)點(diǎn)與來自同一層的其他子節(jié)點(diǎn)的所有節(jié)點(diǎn)等距,因此,兩個(gè)節(jié)點(diǎn)的最遠(yuǎn)距離可粗略估計(jì)為樹高的兩倍.不同的義原分類樹具有不同的TreeHigh,應(yīng)用公式計(jì)算的前提是確定義原所在的具體分類樹.
在計(jì)算義原相似度的基礎(chǔ)上,計(jì)算具體詞語的相似度:
1)應(yīng)用公式(3)、公式(4)比較詞匯Word1和詞匯Word2的義項(xiàng)集合相似度,在公式(3)、公式(4)中:
comdef表示DEF1(Word1的義項(xiàng)集合)和DEF2(Word2的義項(xiàng)集合)中相同def(義項(xiàng))組成的集合.
|comdef|表示集合的勢(shì),即集合中元素個(gè)數(shù).
defRatio表示DEF1和DEF2中相同def的占比率,即DEF1和DEF2的相似度.
AtomDistance(a,b)=Distance(a,com(a,b))+Distance(b,com(a,b))
(1)
(2)
comdef={def|def∈DEF1∧def∈DEF2}
(3)
(4)
(5)
diffatomsim(def1,def2)=(1-sameatomRatio(def1,def2))
(6)
WordSim(Word1,Word2)=defRatio+(1-defRatio)×
(7)
如果defRatio為1,則表示DEF1和DEF2的相似度為1,則Word1和Word2的語義相似度為1,計(jì)算結(jié)束;否則,繼續(xù)計(jì)算兩個(gè)詞語之間的相似度,并分別刪除兩個(gè)DEF集合中相同的def,只在兩個(gè)詞語的不同def之間進(jìn)行相似度計(jì)算.
2)對(duì)兩個(gè)詞語的每對(duì)def中的atom進(jìn)行分析.
去除相同def后,從DEF1和DEF2中各選出一個(gè)def(定義為def1和def2)進(jìn)行比較,對(duì)于每一對(duì)def,首先需要比較兩個(gè)def的主屬性mainatom,相同為1,不同則求義原相似度.
公式(5)比較剩余的atom,如果存在相同的atom,則將其放入集合commonatom(def1,def2)中,并計(jì)算相同義原占所有義原的比率.在公式(5)中:
def1來自集合DEF1,def2來自集合DEF2.|def1|-1表示去除mainatom之外集合def包含atom的個(gè)數(shù).
sameatomRatio(def1,def2)表示def1和def2中相同atom占所有atom比率.
然后再去除相同的atom,公式(6)對(duì)剩余的atom進(jìn)行義原相似度計(jì)算,并求出所有atom之間的總相似度.在公式(6)中:
參數(shù)1-sameatomRatio(def1,def2)是不同atom之間相似度之和的權(quán)重,如果相同atom比率越高,則剩余atom的相似度計(jì)算權(quán)重下降;反之如果atom相似度過低,則剩余atom之間的相似度計(jì)算權(quán)重上升,這樣保證def之間的相似度結(jié)果差距不會(huì)太大.
∑AtomSim(a,b)表示計(jì)算所有對(duì)atom a和atom b的相似度之和,atom a屬于集合def1,atom b屬于集合def2.
|def|-1-|comatom|表示去除第一個(gè)atom和共同atom之后的集合def的勢(shì),即def中剩余atom的個(gè)數(shù).
diffatomsim(def1,def2)表示def1和def2中不同atom之間的總相似度.
3)公式(7)將所有def配對(duì),迭代計(jì)算出相似度,通過求和計(jì)算出Word1和Word2的相似度,在公式(7)中:
參數(shù)1-defRatio是不同def的相似度之和的權(quán)重,保證總相似度不超過1,并且權(quán)衡詞語相似度的結(jié)果.
參數(shù)α是主屬性的權(quán)重,默認(rèn)為0.6,參數(shù)β是其余atom的相似度的權(quán)重,默認(rèn)為0.4,這一設(shè)置保證每一對(duì)def的相似度不會(huì)超過1,參數(shù)的設(shè)置由用戶決定,用戶根據(jù)使用場(chǎng)景自主決定主屬性的比重.
|DEF|-|comdef|表示DEF集合中不同def的個(gè)數(shù).
WordSim(Word1,Word2)表示W(wǎng)ord1和Word2的相似度,即DEF1和DEF2的相似度,其取值范圍在 0-1之間.
已有工作通常選取兩個(gè)詞的義項(xiàng)之間的最大相似度為詞語的語義相似度.但是在詞匯沒有上下文背景的情況下,不能確定兩個(gè)詞匯展現(xiàn)的是特定的某意義,而應(yīng)該綜合考慮該詞匯所有的意義.本文提出的計(jì)算方法相較之前的已有工作,在考慮了義原分類樹深度對(duì)義原相似度影響的基礎(chǔ)上,結(jié)合考慮詞語的所有義項(xiàng),綜合比較兩個(gè)詞語的語義相似度,并且僅設(shè)置了一對(duì)可變參數(shù),降低人為參與,使實(shí)驗(yàn)結(jié)果更為客觀.
計(jì)算流程的整體說明如圖6所示,自頂向下的分析方法:首先分析義項(xiàng),對(duì)不同的義項(xiàng)進(jìn)行義原分析;在分析所有義原之間相似度的基礎(chǔ)上,把結(jié)果值向上傳遞,加權(quán)計(jì)算出兩個(gè)詞匯的相似度.對(duì)于一對(duì)詞匯的所有義項(xiàng)以及來自兩個(gè)詞匯的一對(duì)義項(xiàng)的所有義原,均以二分圖的形式進(jìn)行所有點(diǎn)之間的交叉匹配計(jì)算.
圖6 計(jì)算詞語相似度的流程圖
考慮語義相似性,在ConceptNet中選擇如表4中16個(gè)語義關(guān)系(16/34)進(jìn)行檢測(cè),并賦相對(duì)(相似)值.本文所使用的是官網(wǎng)目前可下載的最新版ConceptNet5.7.0知識(shí)庫(kù).
表4 ConceptNet中語義關(guān)系及賦值
典型的語義相關(guān)性計(jì)算技術(shù)評(píng)價(jià)方法可分為兩種:
1)對(duì)比使用特定技術(shù)計(jì)算的詞匯語義關(guān)系值與人為對(duì)詞匯相關(guān)性的賦值(黃金標(biāo)準(zhǔn)數(shù)據(jù)集),通常采用Pearson相關(guān)系數(shù)和Spearman相關(guān)系數(shù)公式計(jì)算;
2)對(duì)于一個(gè)應(yīng)用的特定任務(wù),測(cè)量所提出的方法對(duì)改進(jìn)特定任務(wù)的性能的影響程度[15].
由于在已有工作中較少提及基于中文的黃金標(biāo)準(zhǔn)數(shù)據(jù)集,所以本文對(duì)語義關(guān)系的賦值主要參考了被廣泛作為參考標(biāo)準(zhǔn)的RG-65數(shù)據(jù)集[16],以英文單詞之間的語義關(guān)系值結(jié)果進(jìn)行調(diào)整的,最終使計(jì)算結(jié)果與RG-65 的Pearson相關(guān)系數(shù)結(jié)果值為0.9.
詞對(duì)間的語義相似度由它們?cè)谡Z義網(wǎng)中的關(guān)聯(lián)路徑?jīng)Q定;路徑上所有邊(關(guān)系)相似值的乘積(取所有路徑中的最大值),作為詞對(duì)間的最終相似值.本文所提方法僅考慮二重迭代的語義關(guān)系,詞對(duì)間超過3條邊的路徑不予考慮.
ConceptNet中部分語義關(guān)系,如“Synonym”“SimilarTo”“IsA”“InstanceOf”和“Antonym”,體現(xiàn)語義相似度關(guān)系;而如“DefinedAs”“HasContext”“HasProperty”等體現(xiàn)語義相關(guān)度.HowNet的設(shè)計(jì)人和開發(fā)者董振東曾說過:詞語的語義相關(guān)性是兩個(gè)詞語的相互關(guān)聯(lián)的程度,可以用詞語在同一個(gè)語境出現(xiàn)的可能性來衡量;而詞語的語義相似性反映的是詞語之間的聚合特點(diǎn).
設(shè)定關(guān)系值的閾值為0.81(0.9*0.9),即二重迭代的SimilarTo關(guān)系值.高于此閾值時(shí),判定為語義相似度,低于此閾值時(shí),判定為語義相關(guān)度.
ConceptNet中存儲(chǔ)的中文詞語包括簡(jiǎn)體和繁體,它們以“Synonym”的方式建立關(guān)聯(lián),但由于簡(jiǎn)體和繁體的一一對(duì)應(yīng)特性,相似值附為“1”.在語義檢測(cè)時(shí),同時(shí)檢測(cè)中文簡(jiǎn)體和中文繁體,結(jié)果取其最大值.
案例實(shí)驗(yàn)環(huán)境如表5所示.
表5 實(shí)驗(yàn)環(huán)境
MongoDB是面向文檔的非關(guān)系型數(shù)據(jù)庫(kù),基于分布式文件存儲(chǔ),與傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)相比,更適用于大規(guī)模數(shù)據(jù)的存儲(chǔ).本文通過MongoDB建立本地化的數(shù)據(jù)集,以調(diào)用查詢.
表6展示了作為實(shí)驗(yàn)案例的20組詞對(duì),以及基于HowNet知識(shí)庫(kù)的實(shí)驗(yàn)測(cè)試結(jié)果.
表6 語義相似度計(jì)算結(jié)果比較
與文獻(xiàn)[8]中的計(jì)算方法相比,本文中提出的計(jì)算方法得出的值具有更好的區(qū)分性,分析如下:
1)觀察“男人”和“父親”,在文獻(xiàn)[8]中比較的3個(gè)方法結(jié)果值均為1,然而“父親”一定是“男人”,“男人”卻不一定是“父親”,所以判斷結(jié)果為1,即語義相同是不夠合理的,與常理存在偏差.
2)觀察“日本”和“美國(guó)”、“日本人”和“美國(guó)人”、“劍橋大學(xué)”和“哈佛大學(xué)”這幾對(duì)的實(shí)驗(yàn)結(jié)果,主屬性是相同義原,但語義并不完全相同,結(jié)果值為1不貼近事實(shí).
綜合表中所有數(shù)據(jù),可以看出本實(shí)驗(yàn)的結(jié)果變化趨勢(shì)更加緩和,但也存在結(jié)果值數(shù)據(jù)集中的現(xiàn)象.
本實(shí)驗(yàn)案例應(yīng)用基于ConceptNet的相關(guān)語義檢測(cè)方法得到的測(cè)試結(jié)果如表7所示.
如表7所示,計(jì)算結(jié)果小于閾值(0.81),即檢測(cè)出來的關(guān)系是語義相關(guān)度.以“男人”和“責(zé)任”為例,其相關(guān)度為0.36,且是迭代語義關(guān)系.
著眼于語義相關(guān)性檢測(cè)方法,基于HowNet的算法通過義原、義項(xiàng)等,實(shí)現(xiàn)了基于詞對(duì)信息量(information content)的計(jì)算規(guī)則;基于ConceptNet的算法是在圖(graph based)及邊權(quán)重[15]等相關(guān)算法的基礎(chǔ)上,擴(kuò)展得到的.
綜合對(duì)比表6、表7的測(cè)試結(jié)果,可以得出如下結(jié)論:
1)HowNet可以檢測(cè)出其語義詞典中所有詞匯之間的語義關(guān)系,結(jié)果取值為:0-1.義項(xiàng)完全不同的兩個(gè)詞對(duì)的語義關(guān)系值為0;義項(xiàng)完全相同的詞對(duì)間的語義關(guān)系值為1.
2)ConceptNet只能檢測(cè)出其語義網(wǎng)絡(luò)中存在一條以上有向路徑的詞對(duì)間的語義關(guān)系,結(jié)果取值為:0-1.沒有路徑連接詞對(duì)間語義關(guān)系默認(rèn)值為0;語義關(guān)系為“synonym”(僅中文簡(jiǎn)體和繁體)的語義關(guān)系結(jié)果為1.
3)以詞對(duì)“男人”、“女人”為例,兩個(gè)詞匯都是以“人”為第一義原,而義原“男”和“女”又是義原“性別”下的兩個(gè)直接分類,義原距離為2,在基于HowNet的計(jì)算方法中,得出語義相似性的值為0.79.基于ConceptNet的語義計(jì)算方法中,兩個(gè)詞匯在ConceptNet上存在迭代語義關(guān)系,故得到結(jié)果0.81.
4)在HowNet中“男人”和“責(zé)任”的語義相似性為0;在ConceptNet中可以存在迭代的語義關(guān)系.
5)從表中結(jié)果可以得出ConceptNet檢測(cè)出來的語義關(guān)系更豐富,更適用于補(bǔ)充兩個(gè)詞在語義相關(guān)度上的語義關(guān)系,且ConceptNet所包含的數(shù)據(jù)量更龐大,可擴(kuò)充語義檢測(cè)的單詞檢索范圍.
對(duì)于結(jié)合兩個(gè)數(shù)據(jù)庫(kù)的語義檢測(cè)方法,算法如下:
Knowledgebase HowNet;
Knowledgebase ConceptNet;
SR( Word A,Word B )
{
IF( Find( A,HowNet )&& Find( B,HowNet ))
RETURNCountSR( A,B,HowNet );
ELSEIF( Find( A,HowNet )&&( ! Find( B,HowNet ))){
FOR( Word C=FindNeighbor( A,ConceptNet))
IF( Find( C,HowNet ))
CountSR( C,B,HowNet );
RETURNMAX( CountSR( A,C,ConceptNet)*CountSR( C,B,HowNet )) }
ELSEIF( Find( B,HowNet )&&( ! Find( A,HowNet ))){
FOR( Word C=FindNeighbor( B,ConceptNet))
IF( Find( C,HowNet ))
CountSR( A,C,HowNet );
RETURNMAX( CountSR( C,B,ConceptNet)*CountSR( A,C,HowNet )) }
ELSE
RETURNCountSR( A,B,ConceptNet);
}
對(duì)于兩個(gè)詞A和B,計(jì)算語義關(guān)系方法可分為以下幾種情況:
1)若在HowNet語義詞典中能夠定位兩個(gè)比較詞,直接以HowNet為知識(shí)庫(kù)計(jì)算相似度;
2)如果詞A不能在HowNet語義詞典中找到,則在ConceptNet中依次遍歷詞A的所有語義鄰居-詞C,并在HowNet中計(jì)算詞C和詞B的語義相似度,并將結(jié)果值乘以詞C和詞A在ConceptNet中的語義關(guān)系值,最終取乘積最大的作為詞A和詞B的語義相似度.詞B不在HowNet語義詞典中時(shí)同理.
3)如果詞A和詞B都不在HowNet語義詞典中,則檢測(cè)詞A和詞B在ConceptNet上的語義關(guān)系值,并作為結(jié)果返回.
本文對(duì)中文詞匯語義相關(guān)知識(shí)庫(kù)HowNet和ConceptNet進(jìn)行了系統(tǒng)的分析和比較.
HowNet通過定義義原、義項(xiàng)等,提供基于信息含量的詞對(duì)間語義相似度(similarity)的計(jì)算基礎(chǔ);ConceptNet是以詞為節(jié)點(diǎn)、關(guān)系為邊的有向網(wǎng),支持詞對(duì)間的基于圖與加權(quán)邊的語義相關(guān)度(relatedness)計(jì)算.
在以上分析對(duì)比結(jié)果的基礎(chǔ)上,結(jié)合現(xiàn)有基于二者的科研工作,本文提出如下以HowNet為主,ConceptNet為輔,結(jié)合兩個(gè)語義知識(shí)庫(kù)實(shí)現(xiàn)語義檢測(cè)的理論.
該理論的核心思想是:結(jié)合使用基于“信息含量”與“圖所搜”的語義相關(guān)性計(jì)算方法.通過使用ConceptNet中定義的語義網(wǎng)絡(luò),擴(kuò)充比較詞對(duì)的范圍(找出與原比較詞具有“Synonym”“SimilarTo”等強(qiáng)相似性的詞,組成相似詞向量組);再利用HowNet提供的義原、義項(xiàng)定義,將詞對(duì)間語義計(jì)算擴(kuò)展成詞向量組間的語義計(jì)算.最終的語義計(jì)算值取匹配對(duì)中的最大值.
該理論的優(yōu)點(diǎn)是擴(kuò)充搜索范圍,最大限度的發(fā)現(xiàn)潛在語義關(guān)聯(lián);但由此會(huì)造成更多資源的消耗,并引入低效計(jì)算結(jié)果.在未來的工作中,要借助更多標(biāo)準(zhǔn)匹配數(shù)據(jù)集,如MC-30等,通過有針對(duì)性的實(shí)驗(yàn),逐步完善構(gòu)建詞向量組的規(guī)則并優(yōu)化匹配過程,最終實(shí)現(xiàn)匹配效率與資源消耗的最佳平衡.