一種基于馬爾可夫聚類的實(shí)體間關(guān)系消解方法
【專利摘要】本發(fā)明提供一種基于馬爾可夫聚類的實(shí)體間關(guān)系消解方法,包括:計(jì)算K個(gè)實(shí)體中任意兩個(gè)實(shí)體之間的語義相似度;根據(jù)實(shí)體間的語義相似度構(gòu)造賦權(quán)圖G;構(gòu)造狀態(tài)轉(zhuǎn)移矩陣M;在狀態(tài)轉(zhuǎn)移矩陣M上執(zhí)行馬爾科夫聚類算法,得到多個(gè)關(guān)系簇;其中,每個(gè)簇代表一系列語義相近似的實(shí)體。本發(fā)明提供的基于馬爾可夫聚類的實(shí)體間關(guān)系消解方法具有以下優(yōu)點(diǎn):提出了融合詞法和語義的相似度計(jì)算方法,然后給出了基于馬爾科夫圖聚類的關(guān)系聚類方法。該方法與層次聚類方法相比,聚類純度指標(biāo)有了一定提高,還具有計(jì)算過程簡單快速的優(yōu)點(diǎn)。
【專利說明】
一種基于馬爾可夫聚類的實(shí)體間關(guān)系消解方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于實(shí)體間關(guān)系消解技術(shù)領(lǐng)域,具體涉及一種基于馬爾可夫聚類的實(shí)體間 關(guān)系消解方法。
【背景技術(shù)】
[0002] 近年來,隨著互聯(lián)網(wǎng)、云計(jì)算等IT技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)數(shù)據(jù)快速增長,網(wǎng)絡(luò)大數(shù) 據(jù)給傳統(tǒng)的信息處理方式帶來了挑戰(zhàn)。故需要構(gòu)建一個(gè)知識(shí)庫存放靜態(tài)知識(shí),其中,靜態(tài)知 識(shí)包括命名實(shí)體以及實(shí)體間關(guān)系,命名實(shí)體包括人、地點(diǎn)、機(jī)構(gòu)等,實(shí)體間關(guān)系則多種多樣, 例如父母、同學(xué)、同事等等。關(guān)系消解就是對(duì)不同的實(shí)體關(guān)系的同義性進(jìn)行判定,將同義不 同名的實(shí)體關(guān)系對(duì)齊,并映射到相同的標(biāo)簽,關(guān)系消解可以提升知識(shí)庫整體數(shù)據(jù)質(zhì)量,方便 后續(xù)計(jì)算,如利用實(shí)體間關(guān)系進(jìn)行推理、發(fā)掘?qū)嶓w間隱含關(guān)系等。
[0003] 關(guān)系消解實(shí)際是短文本的合并,現(xiàn)有的短文本合并方法主要有兩類:一類是基于 聚類的關(guān)系消解方法,即:通過聚類算法將語義相似的短語聚合到同一簇中,達(dá)到關(guān)系消解 的目的。另一類方法是基于分類的關(guān)系消解方法,分類算法需要事先確定短語的種類,然后 對(duì)每一類短語準(zhǔn)備訓(xùn)練數(shù)據(jù),通常需要大量人工標(biāo)注,提取每類關(guān)系的特征,包括詞語本身 特征、上下文特征等,然后訓(xùn)練分類器再利用分類器將關(guān)系打上標(biāo)簽,最后達(dá)到合并的目 的。
[0004] 由于分類算法具有以下缺陷:分類算法必須預(yù)先確定或估計(jì)出最終關(guān)系的種類, 然后才能進(jìn)行特征提取模型訓(xùn)練,而當(dāng)有新型關(guān)系出現(xiàn)時(shí)則無法處理了;另外,分類方法容 易出現(xiàn)過擬合現(xiàn)象,對(duì)不同數(shù)據(jù)集有不同的分類效果。而聚類算法具有不需要大量人工標(biāo) 注、易于實(shí)施的優(yōu)點(diǎn),因此,聚類算法為一種更具發(fā)展前景的關(guān)系消解方法。
[0005] 然而,現(xiàn)有技術(shù)中出現(xiàn)的各類基于聚類的關(guān)系消解方法,普遍具有聚類純度較低、 聚類過程較復(fù)雜等不足。
【發(fā)明內(nèi)容】
[0006] 針對(duì)現(xiàn)有技術(shù)存在的缺陷,本發(fā)明提供一種基于馬爾可夫聚類的實(shí)體間關(guān)系消解 方法,可有效解決上述問題。
[0007] 本發(fā)明采用的技術(shù)方案如下:
[0008] 本發(fā)明提供一種基于馬爾可夫聚類的實(shí)體間關(guān)系消解方法,包括以下步驟:
[0009] 步驟1,當(dāng)需要對(duì)K個(gè)實(shí)體進(jìn)行關(guān)系消解時(shí),將K個(gè)實(shí)體分別記SP^P^Pk;計(jì)算K個(gè) 實(shí)體中任意兩個(gè)實(shí)體之間的語義相似度;
[0010] 步驟2,根據(jù)實(shí)體間的語義相似度構(gòu)造賦權(quán)圖G;賦權(quán)圖G的構(gòu)造方法為:
[0011]步驟201,預(yù)設(shè)置相似度過濾系數(shù)0 ;
[0012]步驟202,實(shí)體PhPr.PK作為聚類元素,形成節(jié)點(diǎn);
[0013]步驟203,將任意兩個(gè)節(jié)點(diǎn)用邊相連,形成初始賦權(quán)圖G;
[0014]步驟204,對(duì)于任意的一條邊,記為La,假設(shè)其為實(shí)體P:和實(shí)體匕之間的邊,均進(jìn)行 以下處理:
[0015] 邊La的權(quán)重即為步驟1計(jì)算得到的實(shí)體?:和實(shí)體匕之間的語義相似度,記為P1J;
[0016] 判斷語義相似度的值是否小于相似度過濾系數(shù)0,如果不小于,則保留邊La;如 果小于,則去除邊La;
[0017]步驟205,由此形成最終的賦權(quán)圖G;
[0018]步驟3,根據(jù)步驟205形成的賦權(quán)圖G,構(gòu)造狀態(tài)轉(zhuǎn)移矩陣M;其中,狀態(tài)轉(zhuǎn)移矩陣M的 維數(shù)為賦權(quán)圖G的節(jié)點(diǎn)數(shù),即:狀態(tài)轉(zhuǎn)移矩陣M為K行K列的矩陣;狀態(tài)轉(zhuǎn)移矩陣中任意一個(gè)元 素Qu,i為行數(shù),j為列數(shù),元素Qu的值采用以下規(guī)則:
[0019]如果i等于j時(shí),元素%的值統(tǒng)一等于1;
[0020]如果i不等于j時(shí),判斷賦權(quán)圖G中實(shí)體Pi和實(shí)體Pj之間是否存在邊,如果存在,則令 元素Qu的值等于實(shí)體Pi和實(shí)體匕之間邊的權(quán)重;如果不存在,則令元素Qu的值等于〇;
[0021 ]步驟4,在狀態(tài)轉(zhuǎn)移矩陣M上執(zhí)行馬爾科夫聚類算法,得到多個(gè)關(guān)系簇;其中,每個(gè) 簇代表一系列語義相近似的實(shí)體。
[0022]優(yōu)選的,步驟1具體包括以下步驟:
[0023] 步驟101,對(duì)于需要計(jì)算語義相似度的任意兩個(gè)實(shí)體,分別記為實(shí)體?:和實(shí)體匕;首 先判斷實(shí)體Pl和實(shí)體是否均屬于《同義詞詞林》中的基本詞語,如果是,則執(zhí)行步驟 1〇2;否 貝1J,執(zhí)行步驟103;
[0024] 步驟102,實(shí)體Pi和實(shí)體Pj在《同義詞詞林》中均存在對(duì)應(yīng)的編碼,采用義項(xiàng)相似度 計(jì)算方式計(jì)算實(shí)體Pi和實(shí)體匕之間的語義相似度,即:
[0025] 步驟1021,《同義詞詞林》中收錄的每個(gè)詞語對(duì)應(yīng)一個(gè)5級(jí)編碼,共8位,其中,第1級(jí) 用大寫英文字母表示;第2級(jí)用小寫英文字母表示;第3級(jí)用二位十進(jìn)制整數(shù)表示;第4級(jí)用 大寫英文字母表示;第5級(jí)用二位十進(jìn)制整數(shù)表示;第8位為標(biāo)記位,標(biāo)記位采用三種標(biāo)記 符,分別是,其中"="代表相等、同義;代表不等、同類,屬于相關(guān)詞語; 則表示獨(dú)立,在詞典中既沒有相關(guān)詞,也沒有同義詞;
[0026] 步驟1022,讀取到實(shí)體Pi的編碼和實(shí)體匕的編碼,判斷是否屬于第一種情況,其中, 第一種情況為:如果實(shí)體Pi的編碼和實(shí)體Pj的編碼的第1位到第7位完全相同,第8位均為 時(shí),代表實(shí)體Pi和實(shí)體h是同類詞語,但意思不相同,此時(shí),令實(shí)體?:的編碼和實(shí)體h的語義 相似度為0.5;如果不屬于第一種情況,繼續(xù)判斷是否屬于第二種情況,其中,第二種情況 為:如果實(shí)體Pi的編碼的第8位為,和/或如果實(shí)體匕的編碼的第8位為,此時(shí),令實(shí)體 Pi的編碼和實(shí)體h的語義相似度為〇;如果也不屬于第二種情況,則繼續(xù)判斷是否屬于第三 種情況;其中,第三種情況為:實(shí)體?:的編碼和實(shí)體h的編碼的第1位到第7位不完全一致,只 有部分相同,則通過以下公式計(jì)算實(shí)體Pi和實(shí)體h的語義相似度:
[0027] sim(Pi,Pj)=0.2X(i-l);&S(l)
[0028]其中,sim(Pi,Pj)代表實(shí)體Pi和實(shí)體Pj的語義相似度;i的取值為[1,5],代表實(shí)體Pi 的編碼和實(shí)體匕的編碼在第i層開始不同;
[0029]步驟103,利用分詞工具分別對(duì)實(shí)體Pi和實(shí)體匕進(jìn)行分詞并去除虛詞,得到實(shí)體Pi 分詞后的詞序列為Seql = aia2a3......ax,得到實(shí)體Pj分詞后的詞序列為Seq2 = bib2b3......by;其中,實(shí)體Pi和實(shí)體匕分詞后所得到的詞序列中的各個(gè)詞屬于《同義詞詞 林》中的基本詞語;
[0030]判斷X是否等于y,如果等于,則執(zhí)行步驟104;否則,執(zhí)行步驟105;
[0031 ]步驟104,按公式2計(jì)算實(shí)體Pi和實(shí)體Pj的語義相似度:
公式2
[0033]其中,sim(ai,bj)按公式1計(jì)算;
[0034]步驟105,設(shè)x小于y,則從Seq2的y個(gè)分詞中選擇出x個(gè)分詞,假設(shè)共有h種選擇方 式,由此得到h個(gè)序列2子序列,對(duì)于每1個(gè)序列2子序列,均采用公式2計(jì)算Seql與序列2子序 列之間的語義相似度,由此共得到h個(gè)語義相似度;h個(gè)語義相似度中的最大值即為最終計(jì) 算得到的實(shí)體Pi和實(shí)體匕的語義相似度。
[0035]優(yōu)選的,步驟4具體包括以下步驟:
[0036]步驟401,對(duì)狀態(tài)轉(zhuǎn)移矩陣M進(jìn)行一次隨機(jī)游走,得到新的狀態(tài)轉(zhuǎn)移矩陣;然后,使 用松弛系數(shù)T對(duì)新的狀態(tài)轉(zhuǎn)移矩陣進(jìn)行規(guī)格化,使每列的和為1,由此得到新的狀態(tài)轉(zhuǎn)移矩 陣M,;
[0037]步驟402,判斷狀態(tài)轉(zhuǎn)移矩陣M和新的狀態(tài)轉(zhuǎn)移矩陣M'的差別是否小于一定閾值, 如果小于,則執(zhí)行步驟403;否則,令M=M',繼續(xù)執(zhí)行步驟401;
[0038]步驟403,使用新的狀態(tài)轉(zhuǎn)移矩陣M'更新步驟2構(gòu)造的賦權(quán)圖G,其更新方法為:采 用新的狀態(tài)轉(zhuǎn)移矩陣M'的相近度值更新賦權(quán)圖G對(duì)應(yīng)邊的權(quán)重,并且,當(dāng)更新后的邊權(quán)重值 低于相似度過濾系數(shù)9時(shí),刪除對(duì)應(yīng)邊,由此得到新賦權(quán)圖G;
[0039]步驟404,使用廣度優(yōu)先遍歷方法計(jì)算新賦權(quán)圖G的每個(gè)連通分支,每個(gè)連通分支 即是一個(gè)關(guān)系簇。
[0040] 本發(fā)明提供的基于馬爾可夫聚類的實(shí)體間關(guān)系消解方法具有以下優(yōu)點(diǎn):
[0041] 本發(fā)明可以快速,簡單的計(jì)算短語相似度,最終可得到高質(zhì)量聚類結(jié)果。
【附圖說明】
[0042] 圖1為本發(fā)明提供的基于馬爾可夫聚類的實(shí)體間關(guān)系消解方法的整體流程圖; [0043]圖2為本發(fā)明提供的兩個(gè)實(shí)體間語義相似度的計(jì)算流程圖;
[0044] 圖3為本發(fā)明提供的馬爾科夫聚類算法流程圖。
【具體實(shí)施方式】
[0045] 為了使本發(fā)明所解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合 附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以 解釋本發(fā)明,并不用于限定本發(fā)明。
[0046] 本發(fā)明提出一種基于馬爾可夫聚類的實(shí)體間關(guān)系消解方法,通過在不同規(guī)模數(shù)據(jù) 集上實(shí)驗(yàn),證明此方法與傳統(tǒng)層次聚類方法相比,在聚類結(jié)果簇?cái)?shù)相同時(shí),純度有明顯提 升。
[0047] 本發(fā)明采用的技術(shù)方案是:首先計(jì)算實(shí)體集合中任意兩個(gè)實(shí)體之間的語義相似 度,然后將實(shí)體(聚類元素)作為點(diǎn),實(shí)體間的相似度作為兩節(jié)點(diǎn)之間的邊構(gòu)造賦權(quán)圖,基于 馬爾科夫聚類算法生成多個(gè)含相似關(guān)系的簇,解決關(guān)系融合的問題。如圖1所示,具體步驟 包括:
[0048]步驟1,當(dāng)需要對(duì)K個(gè)實(shí)體進(jìn)行關(guān)系消解時(shí),將K個(gè)實(shí)體分別記SP^P^Pk;計(jì)算K個(gè) 實(shí)體中任意兩個(gè)實(shí)體之間的語義相似度;
[0049] 如圖2所示,步驟1具體包括以下步驟:
[0050] 步驟101,對(duì)于需要計(jì)算語義相似度的任意兩個(gè)實(shí)體,分別記為實(shí)體?:和實(shí)體匕;首 先判斷實(shí)體Pl和實(shí)體是否均屬于《同義詞詞林》中的基本詞語,如果是,則執(zhí)行步驟 1〇2;否 貝1J,執(zhí)行步驟103;
[0051] 本步驟中,任意兩個(gè)實(shí)體之間的語義相似度的計(jì)算需要參考《同義詞詞林》?!锻x 詞詞林》是梅家駒等人于1983年編纂而成,這本詞典不僅包含了一個(gè)詞語的同義詞,也包含 了一定數(shù)量的同類詞,即廣義的相關(guān)詞。哈爾濱工業(yè)大學(xué)利用眾多詞語相關(guān)資源,完成了一 部具有漢語大詞表的同義詞詞林?jǐn)U展版。同義詞詞林?jǐn)U展版收錄詞語近7萬條,全部按意義 進(jìn)行編排。本發(fā)明的實(shí)體之間的語義相似度計(jì)算使用的是同義詞詞林?jǐn)U展版本。
[0052]《同義詞詞林》按照樹狀層次結(jié)構(gòu)把所有收錄的詞條組織到一起,把詞匯分成大、 中、小三類,小類下有很多詞群,詞群又進(jìn)一步分成若干行。《同義詞詞林》共提供了 5級(jí)編 碼,第1級(jí)用大寫英文字母表示;第2級(jí)用小寫英文字母表示;第3級(jí)用二位十進(jìn)制整數(shù)表示; 第4級(jí)用大寫英文字母表示;第5級(jí)用二位十進(jìn)制整數(shù)表示。如"Aa01C01=眾人人人人 們",稱AaOlCOl是"眾人"的一個(gè)義項(xiàng),具體編碼如下表所示。
[0054]上表中的編碼位是從左到右排列,第8位的標(biāo)記有三種,分別是,其 中代表"相等"、"同義";代表"不等"、"同類",屬于相關(guān)詞語;則表示"獨(dú)立",表 示它在詞典中既沒有相關(guān)詞,也沒有同義詞。
[0055] 由于漢語詞語在不同語境下有不同語義,所以在《同義詞詞林》中一個(gè)漢語詞語可 能對(duì)應(yīng)多種不同編碼,稱詞語的每種編碼方式為詞語的一個(gè)義項(xiàng)。
[0056] 實(shí)體之間語義相似度的計(jì)算分為義項(xiàng)相似度的計(jì)算和短語相似度的計(jì)算。當(dāng)實(shí)體 Pl和實(shí)體匕均屬于《同義詞詞林》中的基本詞語時(shí),執(zhí)行步驟 1〇2,步驟102即為義項(xiàng)相似度的 計(jì)算,義項(xiàng)相似度計(jì)算,主要是對(duì)兩個(gè)實(shí)體的編碼進(jìn)行比較;否則,執(zhí)行步驟103,步驟103即 為短語相似度的計(jì)算,也就是說,《同義詞詞林》只是包含了基本詞語的義項(xiàng),而很多常見名 詞性短語在《同義詞詞林》中沒有,此時(shí)采用步驟103的方法計(jì)算兩個(gè)實(shí)體間語義相似度。 [0057]步驟102,實(shí)體Pi和實(shí)體Pj在《同義詞詞林》中均存在對(duì)應(yīng)的編碼,采用義項(xiàng)相似度 計(jì)算方式計(jì)算實(shí)體Pi和實(shí)體匕之間的語義相似度,即:
[0058] 步驟1021,《同義詞詞林》中收錄的每個(gè)詞語對(duì)應(yīng)一個(gè)5級(jí)編碼,共8位,其中,第1級(jí) 用大寫英文字母表示;第2級(jí)用小寫英文字母表示;第3級(jí)用二位十進(jìn)制整數(shù)表示;第4級(jí)用 大寫英文字母表示;第5級(jí)用二位十進(jìn)制整數(shù)表示;第8位為標(biāo)記位,標(biāo)記位采用三種標(biāo)記 符,分別是,其中"="代表相等、同義;代表不等、同類,屬于相關(guān)詞語; 則表示獨(dú)立,在詞典中既沒有相關(guān)詞,也沒有同義詞;
[0059] 步驟1022,讀取到實(shí)體Pi的編碼和實(shí)體匕的編碼,判斷是否屬于第一種情況,其中, 第一種情況為:如果實(shí)體Pi的編碼和實(shí)體Pj的編碼的第1位到第7位完全相同,第8位均為 時(shí),代表實(shí)體Pi和實(shí)體匕是同類詞語,但意思不相同,此時(shí),令實(shí)體?:的編碼和實(shí)體匕的語義 相似度為0.5;如,義項(xiàng)"Ab04A03#"有兩個(gè)詞語"女嬰"、"男嬰",二者是同類詞語,但是意思 不完全一致,這種情況下,,將二者相似度記為0.5。
[0060] 如果不屬于第一種情況,繼續(xù)判斷是否屬于第二種情況,其中,第二種情況為:如 果實(shí)體Pi的編碼的第8位為,和/或如果實(shí)體Pj的編碼的第8位為,此時(shí),令實(shí)體Pi的編 碼和實(shí)體Pj的語義相似度為〇;
[0061] 也就是說,當(dāng)實(shí)體編碼第8位為表明此義項(xiàng)是獨(dú)一無二的,沒有同義詞,將這 個(gè)義項(xiàng)和其他任何義項(xiàng)的相似度記為〇;
[0062] 如果也不屬于第二種情況,則繼續(xù)判斷是否屬于第三種情況;其中,第三種情況 為:實(shí)體?:的編碼和實(shí)體匕的編碼的第1位到第7位不完全一致,只有部分相同,則通過以下 公式計(jì)算實(shí)體Pi和實(shí)體Pj的語義相似度:
[0063] sim(Pi,Pj)=0.2X(i-l);&S(l)
[0064] 其中,sim(Pi,Pj)代表實(shí)體Pi和實(shí)體Pj的語義相似度;i的取值為[1,5],代表實(shí)體 Pi的編碼和實(shí)體Pj的編碼在第i層開始不同;
[0065] 例如:
[0066] Ad03A01=本地人當(dāng)?shù)厝送林寥送林?br>[0067] Ad03A02 =村里人全村人
[0068] Ad03A03@ 家里人
[0069]以計(jì)算"本地人"的義項(xiàng)"Ad03A01"和"村里人"的義項(xiàng)"Ad03A02"的相似度為例,因 為兩個(gè)義項(xiàng)在第5級(jí)出現(xiàn)不同,所以sim(Ad03A01,Ad03A02) =0.2 X (5-1) =0.8。
[0070] 在一詞多義的情況下,以兩個(gè)詞最相近的義項(xiàng)的相似度作為兩個(gè)詞的相似度;,例 如,詞語"認(rèn)真"有兩種意思,即可以形容人做事情認(rèn)真仔細(xì),也可以形容某人對(duì)于某事當(dāng) 真、信以為真,"認(rèn)真"在《同義詞詞林》中有兩個(gè)義項(xiàng),分別是:Ee27A01和Gbl4A04,所以在計(jì) 算時(shí)使用最相似的義項(xiàng)之間的相似度作為兩個(gè)詞的相似度;如果某個(gè)詞語沒有在《同義詞 詞林》中出現(xiàn),則它與任何其他詞語的相似度都記為0。
[0071] 步驟103,利用分詞工具,例如,可以為ICTCLAS分詞工具,分別對(duì)實(shí)體Pi和實(shí)體Pj進(jìn) 行分詞并去除"的" "地" "得"等虛詞,得到實(shí)體Pi分詞后的詞序列為Seql=am2a3......a x, 得到實(shí)體Pj分詞后的詞序列為Seq2 = bib2b3......by;其中,實(shí)體Pi和實(shí)體Pj分詞后所得到 的詞序列中的各個(gè)詞屬于《同義詞詞林》中的基本詞語;
[0072]判斷x是否等于y,如果等于,則執(zhí)行步驟104;否則,執(zhí)行步驟105;
[0073]步驟104,按公式2計(jì)算實(shí)體Pi和實(shí)體Pj的語義相似度:
公式2
[0075]其中,sim(ai,bj)按公式1計(jì)算;
[0076] 公式(2)的兩個(gè)詞序列Seql,Seq2必須是等長的,ai,bi是兩個(gè)分詞。
[0077]步驟105,設(shè)x小于y,則從Seq2的y個(gè)分詞中選擇出x個(gè)分詞,假設(shè)共有h種選擇方 式,由此得到h個(gè)序列2子序列,對(duì)于每1個(gè)序列2子序列,均采用公式2計(jì)算Seql與序列2子序 列之間的語義相似度,由此共得到h個(gè)語義相似度;h個(gè)語義相似度中的最大值即為最終計(jì) 算得到的實(shí)體Pi和實(shí)體匕的語義相似度。
[0078]本步驟可描述為:對(duì)實(shí)體Pi和實(shí)體匕進(jìn)行分詞分別得到兩個(gè)長度不同的詞序列時(shí), 取序列元素個(gè)數(shù)較小值進(jìn)行排列的枚舉,并利用公式2計(jì)算兩個(gè)序列的相似度(序列元素個(gè) 數(shù)相等),這些相似度的最大值即為實(shí)體Pi和實(shí)體Pj的語義相似度。
[0079] 例如,對(duì)實(shí)體A和實(shí)體B使用ICTCLAS分詞工具進(jìn)行分詞,得到實(shí)體A的詞序列SeqA ={sai,sa2, ...,sam}和實(shí)體B的詞序列SeqB= {sbi,sb2, ...,sbn},取length=min(length (SeqA),length(SeqB)),分別從SeqA和SeqB中取出length個(gè)詞,枚舉這些排列,根據(jù)
計(jì)算兩個(gè)排列的相似度,這些相似度的最大值即為實(shí)體A和 實(shí)體B的相似度。
[0080]步驟2,根據(jù)實(shí)體間的語義相似度構(gòu)造賦權(quán)圖G;賦權(quán)圖G的構(gòu)造方法為:
[0081]步驟201,預(yù)設(shè)置相似度過濾系數(shù)0 ;
[0082] 步驟202,實(shí)體P^P^Pk作為聚類元素,形成節(jié)點(diǎn);
[0083]步驟203,將任意兩個(gè)節(jié)點(diǎn)用邊相連,形成初始賦權(quán)圖G;
[0084]步驟204,對(duì)于任意的一條邊,記為La,假設(shè)其為實(shí)體Pi和實(shí)體Pj之間的邊,均進(jìn)行 以下處理:
[0085] 邊La的權(quán)重即為步驟1計(jì)算得到的實(shí)體?:和實(shí)體匕之間的語義相似度,記為P1J;
[0086] 判斷語義相似度的值是否小于相似度過濾系數(shù)0,如果不小于,則保留邊La;如 果小于,則去除邊La;
[0087]步驟205,由此形成最終的賦權(quán)圖G;
[0088] 也就是說,當(dāng)兩個(gè)元素間的相似度為0或者小于相似度過濾系數(shù)0時(shí),其在圖中對(duì) 應(yīng)的節(jié)點(diǎn)之間沒有邊相連。否則,這兩個(gè)元素對(duì)應(yīng)的點(diǎn)之間存在一條邊,其權(quán)重等于二者的 相似度。
[0089] 通過設(shè)定相似度過濾系數(shù)0對(duì)相似度矩陣M的數(shù)據(jù)做過濾,可以有效降低噪聲,因 為有些關(guān)系如"兒子"和"兄弟"肯定是不同的關(guān)系,但是通過步驟1相似度的計(jì)算方法,兩者 相似度并不會(huì)等于〇,即在圖上"兒子"和"兄弟"兩個(gè)節(jié)點(diǎn)之間會(huì)產(chǎn)生一條邊,雖然這條邊權(quán) 重不高,但是還是會(huì)給步驟4)中馬爾科夫聚類算法帶來干擾,所以通過設(shè)定過濾系數(shù)直接 把一些較低的相似度去掉,可以有效提升結(jié)果質(zhì)量。
[0090] 步驟3,根據(jù)步驟205形成的賦權(quán)圖G,構(gòu)造狀態(tài)轉(zhuǎn)移矩陣M;其中,狀態(tài)轉(zhuǎn)移矩陣M的 維數(shù)為賦權(quán)圖G的節(jié)點(diǎn)數(shù),即:狀態(tài)轉(zhuǎn)移矩陣M為K行K列的矩陣;狀態(tài)轉(zhuǎn)移矩陣中任意一個(gè)元 素Qu,i為行數(shù),j為列數(shù),元素Qu的值采用以下規(guī)則:
[0091]如果i等于j時(shí),元素Qu的值統(tǒng)一等于1;
[0092] 如果i不等于j時(shí),判斷賦權(quán)圖G中實(shí)體Pi和實(shí)體Pj之間是否存在邊,如果存在,則令 元素Qu的值等于實(shí)體Pi和實(shí)體匕之間邊的權(quán)重;如果不存在,則令元素Qu的值等于〇;
[0093] 步驟4,在狀態(tài)轉(zhuǎn)移矩陣M上執(zhí)行馬爾科夫聚類算法,得到多個(gè)關(guān)系簇;其中,每個(gè) 簇代表一系列語義相近似的實(shí)體。
[0094]步驟4具體包括以下步驟:
[0095]步驟401,對(duì)狀態(tài)轉(zhuǎn)移矩陣M進(jìn)行一次隨機(jī)游走,得到新的狀態(tài)轉(zhuǎn)移矩陣;然后,使 用松弛系數(shù)T對(duì)新的狀態(tài)轉(zhuǎn)移矩陣進(jìn)行規(guī)格化,使每列的和為1,由此得到新的狀態(tài)轉(zhuǎn)移矩 陣M,;
[0096]步驟402,判斷狀態(tài)轉(zhuǎn)移矩陣M和新的狀態(tài)轉(zhuǎn)移矩陣M'的差別是否小于一定閾值, 如果小于,則執(zhí)行步驟403;否則,令M=M',繼續(xù)執(zhí)行步驟401;其中,可以假設(shè)閾值條件為| M-M,| |2<0.05〇
[0097]步驟403,使用新的狀態(tài)轉(zhuǎn)移矩陣M'更新步驟2構(gòu)造的賦權(quán)圖G,其更新方法為:采 用新的狀態(tài)轉(zhuǎn)移矩陣M'的相近度值更新賦權(quán)圖G對(duì)應(yīng)邊的權(quán)重,并且,當(dāng)更新后的邊權(quán)重值 低于相似度過濾系數(shù)9時(shí),刪除對(duì)應(yīng)邊,由此得到新賦權(quán)圖G;
[0098]步驟404,使用廣度優(yōu)先遍歷方法計(jì)算新賦權(quán)圖G的每個(gè)連通分支,每個(gè)連通分支 即是一個(gè)關(guān)系簇。
[0099] 對(duì)于步驟4,解釋如下:
[0100] 馬爾科夫聚類算法是一種基于圖的聚類算法,它將聚類對(duì)象看成是一個(gè)有向圖或 無向圖,目標(biāo)是將圖內(nèi)點(diǎn)聚成若干簇,使得一個(gè)漫游者從簇內(nèi)的某個(gè)點(diǎn)"出發(fā)",那么到達(dá)同 一簇內(nèi)點(diǎn)的概率大于到達(dá)簇外點(diǎn)的概率。通過在圖上進(jìn)行隨機(jī)游走過程,就可以發(fā)現(xiàn)在圖 的某些區(qū)域邊是比較密集的,可以聚成一簇。馬爾科夫聚類算法通過計(jì)算馬爾科夫鏈達(dá)到 在圖上進(jìn)行隨機(jī)游走的過程。
[0101] 馬爾科夫算法主要有兩個(gè)過程,分別是擴(kuò)展和膨脹,這兩個(gè)過程都是對(duì)狀態(tài)轉(zhuǎn)移 矩陣進(jìn)行操作,記一個(gè)狀態(tài)轉(zhuǎn)移矩陣為M,M的維數(shù)就是圖中點(diǎn)的個(gè)數(shù),M不一定是對(duì)稱矩陣, M中的每一列表不某一時(shí)刻從某一個(gè)點(diǎn)出發(fā),下一時(shí)刻到達(dá)其余點(diǎn)各自的概率。
[0102] 擴(kuò)展過程是模擬隨機(jī)游走過程,即取正整數(shù)e,對(duì)當(dāng)前狀態(tài)轉(zhuǎn)移矩陣自乘e次,得到 新的狀態(tài)轉(zhuǎn)移矩陣,這一過程相當(dāng)于在原狀態(tài)轉(zhuǎn)移矩陣上進(jìn)行了一次e步的隨機(jī)游走。例如 <0 60 2、' 一個(gè)只有兩個(gè)定點(diǎn)的圖,狀態(tài)轉(zhuǎn)移矩陣,狀態(tài)轉(zhuǎn)移矩陣中第i列、第j行的元素 ^0.40.8 ) 表示如果漫游者當(dāng)前從頂點(diǎn)i出發(fā),則下一時(shí)刻出現(xiàn)在頂點(diǎn)j的概率,狀態(tài)轉(zhuǎn)移矩陣的每列 的和為1,假設(shè)旅行者在第〇時(shí)刻從頂點(diǎn)1出發(fā),則第2時(shí)刻,它仍然出現(xiàn)在頂點(diǎn)1的概率是 0.6*0.6+0.4*0.2 = 0.44,同理可以得到它出現(xiàn)在其他頂點(diǎn)的概率,此時(shí)狀態(tài)轉(zhuǎn)移矩陣 <0.440.28\ M'=.. ^0.560.72 J
[0103]膨脹過程是一個(gè)矩陣規(guī)則化過程,是對(duì)狀態(tài)轉(zhuǎn)移矩陣的各列進(jìn)行規(guī)則化,其處理 公式如公式(3)所示:
[0104] ⑶
[0105] 其中,M是狀態(tài)轉(zhuǎn)移矩陣,IVf是規(guī)格化得到的矩陣。t是松弛系數(shù),1<:是]\1的行數(shù),p是 行下標(biāo),q是列下標(biāo),公式(3)的作用是把轉(zhuǎn)移矩陣的列進(jìn)行規(guī)格化得到規(guī)格化矩陣M'例如 當(dāng)t = 2時(shí),向量
|經(jīng)過公式(3)規(guī)格化的結(jié)果是
[0106] 本發(fā)明提供的基于馬爾可夫聚類的實(shí)體間關(guān)系消解方法具有以下優(yōu)點(diǎn):提出了融 合詞法和語義的相似度計(jì)算方法,然后給出了基于馬爾科夫圖聚類的關(guān)系聚類方法。該方 法與層次聚類方法相比,聚類純度指標(biāo)有了一定提高,還具有計(jì)算過程簡單快速的優(yōu)點(diǎn)。 [0107]以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人 員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng) 視本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1. 一種基于馬爾可夫聚類的實(shí)體間關(guān)系消解方法,其特征在于,包括以下步驟: 步驟1,當(dāng)需要對(duì)K個(gè)實(shí)體進(jìn)行關(guān)系消解時(shí),將K個(gè)實(shí)體分別記為Ρ^Ρ^Ρκ;計(jì)算K個(gè)實(shí)體 中任意兩個(gè)實(shí)體之間的語義相似度; 步驟2,根據(jù)實(shí)體間的語義相似度構(gòu)造賦權(quán)圖G;賦權(quán)圖G的構(gòu)造方法為: 步驟201,預(yù)設(shè)置相似度過濾系數(shù)Θ; 步驟202,實(shí)體P1、Ρ2···Ρκ作為聚類元素,形成節(jié)點(diǎn); 步驟203,將任意兩個(gè)節(jié)點(diǎn)用邊相連,形成初始賦權(quán)圖G; 步驟204,對(duì)于任意的一條邊,記為La,假設(shè)其為實(shí)體P1和實(shí)體匕之間的邊,均進(jìn)行以下 處理: 邊La的權(quán)重即為步驟1計(jì)算得到的實(shí)體^和實(shí)體匕之間的語義相似度,記為Plj; 判斷語義相似度Plj的值是否小于相似度過濾系數(shù)Θ,如果不小于,則保留邊La;如果小 于,則去除邊La; 步驟205,由此形成最終的賦權(quán)圖G; 步驟3,根據(jù)步驟205形成的賦權(quán)圖G,構(gòu)造狀態(tài)轉(zhuǎn)移矩陣M;其中,狀態(tài)轉(zhuǎn)移矩陣M的維數(shù) 為賦權(quán)圖G的節(jié)點(diǎn)數(shù),即:狀態(tài)轉(zhuǎn)移矩陣M為K行K列的矩陣;狀態(tài)轉(zhuǎn)移矩陣中任意一個(gè)元素 Qlj,i為行數(shù),j為列數(shù),元素 Qu的值采用以下規(guī)則: 如果i等于j時(shí),元素 Qlj的值統(tǒng)一等于1; 如果i不等于j時(shí),判斷賦權(quán)圖G中實(shí)體Pi和實(shí)體Pj之間是否存在邊,如果存在,則令元素 Qlj的值等于實(shí)體P1和實(shí)體匕之間邊的權(quán)重;如果不存在,則令元素 Qu的值等于〇; 步驟4,在狀態(tài)轉(zhuǎn)移矩陣M上執(zhí)行馬爾科夫聚類算法,得到多個(gè)關(guān)系簇;其中,每個(gè)簇代 表一系列語義相近似的實(shí)體。2. 根據(jù)權(quán)利要求1所述的基于馬爾可夫聚類的實(shí)體間關(guān)系消解方法,其特征在于,步驟 1具體包括以下步驟: 步驟101,對(duì)于需要計(jì)算語義相似度的任意兩個(gè)實(shí)體,分別記為實(shí)體卩:和實(shí)體首先判 斷實(shí)體P1和實(shí)體匕是否均屬于《同義詞詞林》中的基本詞語,如果是,則執(zhí)行步驟102;否則, 執(zhí)行步驟103; 步驟102,實(shí)體P1和實(shí)體Pj在《同義詞詞林》中均存在對(duì)應(yīng)的編碼,采用義項(xiàng)相似度計(jì)算 方式計(jì)算實(shí)體P1和實(shí)體匕之間的語義相似度,即: 步驟1021,《同義詞詞林》中收錄的每個(gè)詞語對(duì)應(yīng)一個(gè)5級(jí)編碼,共8位,其中,第1級(jí)用大 寫英文字母表示;第2級(jí)用小寫英文字母表示;第3級(jí)用二位十進(jìn)制整數(shù)表示;第4級(jí)用大寫 英文字母表示;第5級(jí)用二位十進(jìn)制整數(shù)表示;第8位為標(biāo)記位,標(biāo)記位采用三種標(biāo)記符,分 別是,其中"="代表相等、同義;代表不等、同類,屬于相關(guān)詞語;則表 示獨(dú)立,在詞典中既沒有相關(guān)詞,也沒有同義詞; 步驟1022,讀取到實(shí)體P1的編碼和實(shí)體Pj的編碼,判斷是否屬于第一種情況,其中,第一 種情況為:如果實(shí)體Pi的編碼和實(shí)體Pj的編碼的第1位到第7位完全相同,第8位均為時(shí), 代表實(shí)體?:和實(shí)體Pj是同類詞語,但意思不相同,此時(shí),令實(shí)體?:的編碼和實(shí)體P j的語義相 似度為0.5;如果不屬于第一種情況,繼續(xù)判斷是否屬于第二種情況,其中,第二種情況為: 如果實(shí)體Pi的編碼的第8位為,和/或如果實(shí)體P j的編碼的第8位為,此時(shí),令實(shí)體Pi的 編碼和實(shí)體匕的語義相似度為〇;如果也不屬于第二種情況,則繼續(xù)判斷是否屬于第三種情 況;其中,第三種情況為:實(shí)體?:的編碼和實(shí)體Pj的編碼的第1位到第7位不完全一致,只有部 分相同,則通過以下公式計(jì)算實(shí)體P1和實(shí)體Pj的語義相似度: sim(Pi,Pj) = 0.2X(i-l); 公式(1) 其中,Sim(PiJj)代表實(shí)體Pi和實(shí)體Pj的語義相似度;i的取值為[1,5],代表實(shí)體P i的編 碼和實(shí)體匕的編碼在第i層開始不同; 步驟103,利用分詞工具分別對(duì)實(shí)體P1和實(shí)體匕進(jìn)行分詞并去除虛詞,得到實(shí)體P1分詞 后的詞序列為Seql =aia2a3......ax,得到實(shí)體Pj分詞后的詞序列為Seq2 = bib2b3......by; 其中,實(shí)體P1和實(shí)體Pj分詞后所得到的詞序列中的各個(gè)詞屬于《同義詞詞林》中的基本詞語; 判斷X是否等于y,如果等于,則執(zhí)行步驟104;否則,執(zhí)行步驟105;來聰1 fl/L·掠/A才9彳+曾走彳知走彳^Pj的語義相似度: 公式2 其中,sim(ai,bj)按公式1計(jì)算; 步驟105,設(shè)X小于y,則從Seq2的y個(gè)分詞中選擇出X個(gè)分詞,假設(shè)共有h種選擇方式,由 此得到h個(gè)序列2子序列,對(duì)于每1個(gè)序列2子序列,均采用公式2計(jì)算Seql與序列2子序列之 間的語義相似度,由此共得到h個(gè)語義相似度;h個(gè)語義相似度中的最大值即為最終計(jì)算得 到的實(shí)體Pi和實(shí)體Pj的語義相似度。3.根據(jù)權(quán)利要求1所述的基于馬爾可夫聚類的實(shí)體間關(guān)系消解方法,其特征在于,步驟 4具體包括以下步驟: 步驟401,對(duì)狀態(tài)轉(zhuǎn)移矩陣M進(jìn)行一次隨機(jī)游走,得到新的狀態(tài)轉(zhuǎn)移矩陣;然后,使用松 弛系數(shù)τ對(duì)新的狀態(tài)轉(zhuǎn)移矩陣進(jìn)行規(guī)格化,使每列的和為1,由此得到新的狀態(tài)轉(zhuǎn)移矩陣M' ; 步驟402,判斷狀態(tài)轉(zhuǎn)移矩陣M和新的狀態(tài)轉(zhuǎn)移矩陣Μ'的差別是否小于一定閾值,如果 小于,則執(zhí)行步驟403;否則,令Μ=Μ',繼續(xù)執(zhí)行步驟401; 步驟403,使用新的狀態(tài)轉(zhuǎn)移矩陣Μ'更新步驟2構(gòu)造的賦權(quán)圖G,其更新方法為:采用新 的狀態(tài)轉(zhuǎn)移矩陣Μ'的相近度值更新賦權(quán)圖G對(duì)應(yīng)邊的權(quán)重,并且,當(dāng)更新后的邊權(quán)重值低于 相似度過濾系數(shù)Θ時(shí),刪除對(duì)應(yīng)邊,由此得到新賦權(quán)圖G; 步驟404,使用廣度優(yōu)先遍歷方法計(jì)算新賦權(quán)圖G的每個(gè)連通分支,每個(gè)連通分支即是 一個(gè)關(guān)系簇。
【文檔編號(hào)】G06F17/30GK105893481SQ201610187149
【公開日】2016年8月24日
【申請(qǐng)日】2016年3月29日
【發(fā)明人】趙志云, 劉春陽, 龐琳, 李雄, 張旭, 王萌, 陳新蕾
【申請(qǐng)人】國家計(jì)算機(jī)網(wǎng)絡(luò)與信息安全管理中心