專利名稱:一種消歧的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種消歧技術(shù),尤其涉及一種消歧的方法和裝置。
背景技術(shù):
歧義是指同一個字符串存在不止一種切分形式,S卩,一個字符串可以有多種切分 形式。隨著詞條量的增大,歧義也越來越大,如“南方城市南京”,由于“南方城”是一個小區(qū) 名稱,詞典中收集了該詞條,正向最大匹配導(dǎo)致切分錯誤“南方城/市/南京”,而正確的切 分為“南方/城市/南京”,為了得到正確的切分為“南方/城市/南京”,需要對“南方城市 南京”進(jìn)行消歧。一般來說,歧義按照結(jié)構(gòu)可以分為兩種歧義類型交集型歧義(交叉歧義)和組合 型歧義(覆蓋歧義)。有研究者通過統(tǒng)計發(fā)現(xiàn),在這兩種歧義結(jié)構(gòu)中,交叉歧義占到了總歧 義字段的86%,而在交叉歧義中大約有94%是偽歧義,只有6%的交叉歧義是真歧義。因 此,目前中文分詞中歧義消除工作的重點(diǎn)通常集中于如何消除交叉歧義。在現(xiàn)有技術(shù)中,消歧策略主要有基于規(guī)則的方法和基于統(tǒng)計的方法。使用基于規(guī)則的方法可排除切分標(biāo)注中的歧義,這是一種很常用的方法。通過規(guī) 則可以在整個句子的范圍內(nèi)查找對于排歧有用的信息,非常靈活。但規(guī)則的方法主要依賴 于規(guī)則的獲取,在獲取規(guī)則時需要兼顧完備性與合理性,當(dāng)規(guī)則的數(shù)量達(dá)到一定規(guī)模時,規(guī) 則之間還會發(fā)生沖突,所以基于規(guī)則的方法在獲取規(guī)則和解決規(guī)則之間沖突上都面臨很大 的困難.基于統(tǒng)計的方法是從大規(guī)模的標(biāo)注語料中統(tǒng)計η元語法模型,利用概率計算,達(dá) 到消歧的目的。缺點(diǎn)是需要大規(guī)模的標(biāo)注語料;以整個句子為單位計算概率,降低了處理速度。
發(fā)明內(nèi)容
本發(fā)明的實施例提供了一種消歧的方法和裝置,可解決現(xiàn)有技術(shù)中消歧速度慢的 問題。本發(fā)明的實施例提供了一種消歧的方法,包括從當(dāng)前字開始從待切分串中獲取 最大鏈長的歧義鏈;利用動態(tài)規(guī)劃算法對所述歧義鏈進(jìn)行消歧。本發(fā)明的實施例還提供了一種消歧的裝置,包括獲取單元,用于從當(dāng)前字開始從 待切分串中獲取最大鏈長的歧義鏈;消歧單元,用于利用動態(tài)規(guī)劃算法對所述歧義鏈進(jìn)行 消歧。由于本發(fā)明無需標(biāo)注語料,只需從一般語料中統(tǒng)計出詞頻,利用詞典獲取到歧義 鏈,在歧義鏈中使用動態(tài)規(guī)劃方法進(jìn)行歧義消解。由于是在歧義鏈中消歧,而并非整個句 子,所以極大的降低了處理復(fù)雜度,提高了處理效率。
圖1示出了本發(fā)明實施例的消歧流程;圖2示出了本發(fā)明實施例的獲得最大歧義鏈的流程;圖3示出了本發(fā)明實施例的根據(jù)動態(tài)規(guī)劃算法的切分結(jié)果;圖4示出了本發(fā)明實施例的消歧裝置。
具體實施例方式為了便于本領(lǐng)域一般技術(shù)人員理解和實現(xiàn)本發(fā)明,現(xiàn)結(jié)合附圖描繪本發(fā)明的實施例。實施例一如圖1所示,本實施例提供了一種消歧方法,包括如下步驟步驟11、獲取最大鏈長的歧義鏈。從當(dāng)前字開始,以最大匹配方式將當(dāng)前字為首的 待切分串中的詞與詞典中的詞條進(jìn)行匹配,以獲取當(dāng)前字開頭的詞典詞;將獲取的詞典詞 最后一個字作為當(dāng)前字,以最大匹配方式將以當(dāng)前字為首的待切分串中的詞與詞典中的詞 條進(jìn)行匹配,直至獲取的詞典詞為單字且歧義鏈長大于0為止。所述詞典包括詞和所有的 單字。所述的字既可以是漢字,也可以是英文字母。如圖2所示,獲取最大鏈長的歧義鏈的步驟如下步驟201、將待切分串首個字作為當(dāng)前字。步驟202、將歧義鏈的鏈長設(shè)置為-1。步驟203、從當(dāng)前字開始,以最大匹配方式將待切分串與詞典中的詞條進(jìn)行匹配, 以獲取該字開頭的詞典詞。步驟204、判斷步驟203獲取的詞典詞是否為單字,如果是,則執(zhí)行步驟207 ;否則, 執(zhí)行步驟205。步驟205、將鏈長加1。步驟206、將當(dāng)前詞典詞最后一個字作為當(dāng)前字,并返回步驟203。步驟207、判斷鏈長是否大于0,若是,則執(zhí)行步驟12 對當(dāng)前歧義鏈進(jìn)行消歧,接 著,執(zhí)行步驟208,否則,執(zhí)行步驟208。步驟208、將當(dāng)前字的下一個字作為當(dāng)前字。步驟209、判斷當(dāng)前字是否為空,若是,則執(zhí)行步驟210 結(jié)束,否則,返回步驟202。步驟12、利用動態(tài)規(guī)劃算法對步驟11獲得的歧義鏈進(jìn)行消歧。在詞典規(guī)模較大時,通過步驟11可以獲得具有最大鏈長的歧義鏈,對歧義鏈?zhǔn)褂?動態(tài)規(guī)劃算法進(jìn)行消歧,動態(tài)規(guī)劃的過程可以通過一個有向圖來表示,圖中的節(jié)點(diǎn)表示歧 義鏈可能的切分單元,即一個詞,每個節(jié)點(diǎn)都帶有前驅(qū)信息,詞的位置和詞長,及切分代價 和累計頻度。具體而言,根據(jù)字典中的詞對歧義鏈進(jìn)行所有可能的切分以獲得切分的詞典 詞,并記錄各個詞典詞在歧義鏈中的位置和詞長,將每一種切分結(jié)果(即獲得的詞典詞)作 為一節(jié)點(diǎn),并對每一節(jié)點(diǎn)賦上前驅(qū)信息、切分代價和累計頻度,所述前驅(qū)信息、切分代價和 累計頻度的計算方法如下設(shè)Wi為一個詞,則Wi的切分代價函數(shù)用/w,表示,計算公式如下
權(quán)利要求
1.一種消歧的方法,其特征在于,包括從當(dāng)前字開始從待切分串中獲取最大鏈長的歧義鏈; 利用動態(tài)規(guī)劃算法對所述歧義鏈進(jìn)行消歧。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述從當(dāng)前字開始從待切分串中獲取最 大鏈長的歧義鏈具體包括將歧義鏈長設(shè)為-ι ;步驟A、判斷當(dāng)前字是否為空,如是,則結(jié)束本過程,否則,從當(dāng)前字開始,以最大匹配方 式將當(dāng)前字為首的待切分串中的詞與詞典中的詞條進(jìn)行匹配,以獲取所述當(dāng)前字開頭的詞 典詞;判斷獲取的詞典詞是否為單字,若是,轉(zhuǎn)步驟B,否則,將獲取的詞典詞最后一個字作為 當(dāng)前字,歧義鏈鏈長加1,返回步驟A ;步驟B、判斷歧義鏈鏈長是否大于0,若歧義鏈鏈長大于0,則返回利用動態(tài)規(guī)劃算法 對所述歧義鏈進(jìn)行消歧,否則,將當(dāng)前詞的下一個字作為當(dāng)前字,返回步驟A。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述利用動態(tài)規(guī)劃算法對所述歧義鏈進(jìn) 行消歧具體包括對所述歧義鏈進(jìn)行分詞以獲得切分的詞典詞,并記錄各個詞典詞在歧義鏈中位置和詞 長,為每一個詞典詞賦上前驅(qū)信息、切分代價和累計頻度,歧義鏈中的每一單字也作為一個 詞;根據(jù)詞的位置和詞長、切分代價和累計頻度確定歧義鏈的回溯起始節(jié)點(diǎn); 從回溯起始節(jié)點(diǎn)根據(jù)前驅(qū)信息開始回溯,一直回溯到歧義鏈的首字,得到回溯路徑上 的詞的組合。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)前驅(qū)信息、詞的位置和詞長、切 分代價和累計頻度確定歧義鏈的終結(jié)節(jié)點(diǎn)具體包括對所有節(jié)點(diǎn),詞的位置與詞長之和等于歧義鏈的長度時,該節(jié)點(diǎn)為終結(jié)節(jié)點(diǎn),所述詞的 位置是指該詞的首字在歧義鏈中的位置;當(dāng)終結(jié)節(jié)點(diǎn)存在多個時,在終結(jié)節(jié)點(diǎn)中選擇累積切分代價最小的節(jié)點(diǎn)作為回溯的起始 節(jié)點(diǎn),當(dāng)累積切分代價相等時,選擇累積頻度最大的節(jié)點(diǎn)作為回溯起始節(jié)點(diǎn)。
5.一種消歧的裝置,其特征在于,包括獲取單元,用于從當(dāng)前字開始從待切分串中獲取最大鏈長的歧義鏈; 消歧單元,用于利用動態(tài)規(guī)劃算法對所述歧義鏈進(jìn)行消歧。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述獲取單元具體包括 第一設(shè)置單元,用于將歧義鏈長設(shè)為-ι ;匹配單元,判斷當(dāng)前字是否為空,如是,則結(jié)束本過程,否則,用于從當(dāng)前字開始,以最 大匹配方式將當(dāng)前字為首的待切分串中的詞與詞典中的詞條進(jìn)行匹配,以獲取所述當(dāng)前字 開頭的詞典詞;第一判斷單元,用于判斷獲取的詞典詞是否為單字,若是,則啟動第二判斷單元,否則, 歧義鏈鏈長加1,啟動設(shè)置單元;第二判斷單元,用于判斷歧義鏈鏈長是否大于0,若是,則返回利用動態(tài)規(guī)劃算法對 所述歧義鏈進(jìn)行消歧,否則,將當(dāng)前詞的下一個字作為當(dāng)前字,啟動匹配單元;設(shè)置單元,用于將所述匹配單元獲取的詞典詞最后一個字作為當(dāng)前字,啟動匹配單元。
7.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述消歧單元具體包括 分詞單元,用于對歧義鏈進(jìn)行分詞,并記錄詞的位置和詞長,為每一個詞賦上前驅(qū)信 息、切分代價和累計頻度,歧義鏈中的每一單字也作為一個詞;確定單元,用于根據(jù)詞的位置和詞長,切分代價和累計頻度確定歧義鏈的回溯起始節(jié)點(diǎn);結(jié)果獲得單元,用于從回溯起始節(jié)點(diǎn)根據(jù)前驅(qū)信息開始回溯,一直回溯到歧義鏈的首 字,得到回溯路徑上的詞的組合。
全文摘要
本發(fā)明的實施例提供了一種消歧的方法和裝置,可解決現(xiàn)有技術(shù)中消歧速度慢的問題。所述方法包括從當(dāng)前字開始從待切分串中獲取最大鏈長的歧義鏈;利用動態(tài)規(guī)劃算法進(jìn)行消歧。由于本發(fā)明無需標(biāo)注語料,只需從一般語料中統(tǒng)計出詞頻,利用詞典獲取到歧義鏈,在歧義鏈中使用動態(tài)規(guī)劃方法進(jìn)行歧義消解。由于是在歧義鏈中消歧,而并非整個句子,所以極大的降低了處理復(fù)雜度,提高了處理效率。
文檔編號G06F17/27GK102063423SQ200910238150
公開日2011年5月18日 申請日期2009年11月16日 優(yōu)先權(quán)日2009年11月16日
發(fā)明者姜吉發(fā), 朱海軍 申請人:高德軟件有限公司