專利名稱:含有漢語的字符串的分詞方法及在字符串中檢索詞的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種自然語言數(shù)據(jù)處理的技術(shù)領(lǐng)域,特別是指包含有 漢語字符串的分詞方法及在字符串中檢索詞的方法。
背景技術(shù):
漢語沒有單詞的概念,而是按照字來直接構(gòu)成語句。在英語中, 詞和詞之間是以空格為自然分隔符的。但在漢語中,詞和詞之間沒 有明顯的分隔,所以在作漢語的信息處理的時(shí)候,就需要對漢語句 子進(jìn)行分詞,即將漢字字符串中的各個(gè)漢字轉(zhuǎn)化成為漢語詞。目前 對漢語句子的分詞方法,都照搬了英文或者其他印歐語言的特點(diǎn), 力圖把漢語句子切分為 一個(gè)連續(xù)的、無交疊的詞匯的序列。
這種分詞方法是建立在中文字符的語義作用范圍是緊鄰左右這 一狹窄范圍的基礎(chǔ)上的,因此切分出來的詞匯在原句子中是連續(xù)的 中文字符構(gòu)成。而這并不完全符合漢語構(gòu)成句子時(shí)的構(gòu)詞習(xí)慣,因 為漢語在構(gòu)成句子時(shí),并不確保每個(gè)詞匯中的每個(gè)字在句子中都是 連續(xù)出現(xiàn)的。從而影響了后續(xù)的應(yīng)用,例如對檢索、搜索、翻譯、 摘要等應(yīng)用。為了用符合漢語構(gòu)成句子時(shí)的構(gòu)詞習(xí)慣對含有漢語的 字符串進(jìn)行分詞。就需要更準(zhǔn)確的翻譯漢語字符中的語義劃分關(guān)系。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供 一 種含有漢語的字符串的 分詞方法及在字符串中檢索詞的方法,用于限定語義作用范圍以更 準(zhǔn)確反應(yīng)漢語字符中的語義劃分關(guān)系。
本發(fā)明提供了一種含有漢語字符串的分詞方法,包括A、 接收包含有漢語字符的字符串;
B、 對于每個(gè)字符,確定所述字符串中該字符的語義作用范圍;
C、 對于每個(gè)字符,在其語義作用范圍內(nèi),確定與該字符可匹配 成詞的其他字符并構(gòu)成詞。
由上可以看出,經(jīng)過步驟B完成了對每個(gè)字符的語義作用范圍 的界定,由此體現(xiàn)出了漢語作為非線性語言和其它線性語言之間區(qū) 別。如此就可以在步驟C中完成語義作用范圍內(nèi)的構(gòu)詞匹配。從而 實(shí)現(xiàn)了所切分出的結(jié)果詞匯可以更準(zhǔn)確反應(yīng)漢語字符中的語義劃分 關(guān)系。
優(yōu)選的是,所述步驟B包括Bll、對于每個(gè)字符,設(shè)置所述字 符串中可距離該字符的最遠(yuǎn)距離為最大跳躍長度;B21、確定所述字 符的最大跳躍長度范圍內(nèi)最近的界限分隔符標(biāo)點(diǎn);B31、確定所述最 近的界限分隔符標(biāo)點(diǎn)到所述字符的距離值和最大跳躍長度值中的最 小值,所述字符到該最小值距離所形成的距離區(qū)間作為所述字符的 語義作用范圍。
由上可以看出,因?yàn)橐粋€(gè)字符的語義作用范圍是不可能越過界限 分隔符標(biāo)點(diǎn)的,所以通過步驟Bll、步驟B21和步驟B31就將每個(gè) 字符的語義作用范圍界定在既不超過最大跳躍長度范圍又不越過界 限分隔符標(biāo)點(diǎn)的范圍內(nèi)。
優(yōu)選的是,所述步驟B包括B12、對于每個(gè)字符,設(shè)置所述字 符串中距離該字符最遠(yuǎn)距離為最大跳躍長度;B22、計(jì)算所述字符串 的每個(gè)字符到所述字符串一個(gè)端點(diǎn)的距離作為真實(shí)偏移量;B32,計(jì) 算每個(gè)字符的虛擬偏移量,虛擬偏移量=真實(shí)偏移量+所述端點(diǎn)與該 字符之間的界限分隔符標(biāo)點(diǎn)的數(shù)量x不小于最大跳躍長度的數(shù)值; B42,對于每個(gè)字符,與該字符虛擬偏移量值之差小于最大跳躍長度 值的其他字符組成該字符的語義作用范圍。
由上可以看出,虛擬偏移量體系是在真實(shí)偏移量即機(jī)械字符的基 礎(chǔ)上,考慮了界限分隔符標(biāo)點(diǎn)的劃界作用而產(chǎn)生的對字符的語義位 置進(jìn)行描述的體系。在步驟B32中將界限分隔符標(biāo)點(diǎn)的權(quán)重設(shè)為不小于最大跳躍長度的數(shù)值。這樣就保證了在進(jìn)行語義作用范圍界定 的時(shí)候絕對不會越過界限分隔符標(biāo)點(diǎn)。并且因?yàn)橛辛硕康奈恢皿w 系,所以在虛擬偏移量的基礎(chǔ)上可以非常方便的進(jìn)行進(jìn)一步的處理。
優(yōu)選的是,步驟C中構(gòu)成詞為采用非線性切分法構(gòu)成詞,包括 在該字符的語義作用范圍內(nèi),依次判斷與該字符非連續(xù)的匹配的跳 詞構(gòu)成詞。
由上可以看出,經(jīng)過本步驟可以在有效的界定了字符的語義作用 范圍之后,在所述語義作用范圍之內(nèi)進(jìn)行有效的非線性詞匯的切分。
優(yōu)選的是,所述界限分隔符標(biāo)點(diǎn)包括句號、逗號、分號、問號和 感嘆號以及所包含字符的長度之和超過最大跳躍長度的引號或括號。
由上可以看出,標(biāo)點(diǎn)符號被分為了界限分隔符標(biāo)點(diǎn)和非界限分隔 符標(biāo)點(diǎn)。界限分隔符標(biāo)點(diǎn)是刻畫了語義作用范圍的標(biāo)點(diǎn),通常可以 理解為被用來斷句的標(biāo)點(diǎn)。例如句號、逗號、分號、問號和感嘆號 等。對于所包含字符的長度之和超過最大跳躍長度的引號或括號也 被視為界限分隔符。其他的對語義作用范圍沒有影響的標(biāo)點(diǎn)則被視 為非界限分隔符標(biāo)點(diǎn)。例如所包含字符的長度之和沒有超過最大跳
躍長度的引號。非界限分隔符標(biāo)點(diǎn)被視為普通的字符。
優(yōu)選的是,步驟C中構(gòu)成詞的步驟還包括采用線性切分法構(gòu) 成詞。
由上可以看出,經(jīng)過本步驟還可以在所述語義作用范圍之內(nèi)進(jìn)行 有效的線性詞匯的切分。
優(yōu)選的是,所述線性切分法包括至少以下之一正向最大匹配法、 逆向最大匹配法、雙向最大匹配法、逐詞遍歷匹配法、最大似然概 率法、或切割標(biāo)志法。
優(yōu)選的是,所述步驟C后還包括,D、記錄所構(gòu)成的詞以及各個(gè) 詞之間的語義關(guān)系。
由上可以看出,經(jīng)過本步驟可以在切分出結(jié)果詞匯不僅記錄詞匯 還記錄各個(gè)詞匯之間的語義關(guān)系。優(yōu)選的是,步驟D所述記錄各個(gè)詞之間的語義關(guān)系包括Dl, 將所有構(gòu)成的詞按照在字符串中的位置進(jìn)行排序,包括根據(jù)各個(gè) 詞的第一個(gè)字符在字符串中的先后位置對各個(gè)詞進(jìn)行先后排序;且, 當(dāng)不同詞的第 一個(gè)字符在字符串中的位置相同時(shí),根據(jù)詞的最后一 個(gè)字符在字符串中的先后位置對不同詞進(jìn)行先后排序;且,當(dāng)不同 詞的第一個(gè)字符和最后一個(gè)字符在字符串中的位置一樣時(shí),根據(jù)詞 所包含字符數(shù)量值對不同詞進(jìn)行先后排序;D2,為每個(gè)字符記錄其 所屬詞的詞匯序列號。
由上可以看出,所述詞匯序列號包含了詞匯之間的語義關(guān)系。記 錄記錄各個(gè)詞的詞匯序列號就記錄了各個(gè)詞之間的語義關(guān)系。
本發(fā)明還提供了一種在字符串中檢索詞的方法,其特征在于,包
括
M、確定該字符串中包含待檢索詞的字符;
N、確定該字符的語義作用范圍內(nèi)所記錄的構(gòu)成的詞;
0、確定與該祠4全詞匹配的所記錄的詞。
圖1為對字符串進(jìn)行分詞的預(yù)處理流程圖; 圖2為一個(gè)實(shí)施例中一個(gè)示例字符串及其對應(yīng)的真實(shí)偏移量記 錄結(jié)果示意圖3為計(jì)算字符的虛擬偏移量的流程圖4為一個(gè)實(shí)施例中一個(gè)示例字符串及其對應(yīng)的虛擬偏移量記 錄結(jié)果示意圖5為同時(shí)記錄了虛擬偏移量和真實(shí)偏移量的記錄結(jié)果示意圖; 圖6為一個(gè)同時(shí)記錄了虛擬偏移量和真實(shí)偏移量的句子的記錄 結(jié)果示意圖7為一個(gè)示例語句的字符串的示意圖8為采用了正向最大匹配法以及逆向最大匹配法的分詞方案 對圖7中的示例字符串切分得到的結(jié)果示意7圖9為非線性切分的流程圖10為含有跳詞情況的示例語句的字符串的示意圖; 圖11為本實(shí)施例中將切分出來的分詞結(jié)果進(jìn)行立體關(guān)聯(lián)得到立 體分詞結(jié)果的流程圖12為記錄的具有歧義的示例語句的第一種切分結(jié)果的示意
圖13為記錄的具有歧義的示例語句的第二種切分結(jié)果的示意
圖14為記錄了具有歧義的示例所有可能的切分結(jié)果的示意圖15為錯(cuò)誤跳詞的示例語句字符串的示意圖16為帶真實(shí)偏移量的字符串的示意圖17為帶了虛擬偏移量的字符串的示意圖18為切分出的結(jié)果示意圖19為帶真實(shí)偏移量的切分結(jié)果示意圖20為帶虛擬偏移量的切分結(jié)果示意圖21為使用真實(shí)偏移量而產(chǎn)生跳詞錯(cuò)誤的切分結(jié)果的示意圖22為使用虛擬偏移量而避免了跳詞錯(cuò)誤的切分結(jié)果的示意
圖23為使用真實(shí)偏移量而記錄了錯(cuò)誤跳詞的記錄結(jié)果的示意
圖24為使用虛擬偏移量而避免了跳詞錯(cuò)誤的記錄結(jié)果的示意
圖25為帶虛擬偏移量的多種跳詞示例語句字符串的示意圖; 圖26為多種跳詞示例語句字符串的切分結(jié)果示意圖; 圖27為多種跳詞示例語句字符串的使用虛擬偏移量的記錄結(jié)果 示意圖28為圖10中例句的傳統(tǒng)的線性分詞的結(jié)果的示意圖29為賦予詞匯序號后的結(jié)果詞匯示意圖30為圖IO中例句的切分結(jié)果進(jìn)行立體關(guān)聯(lián)得到的立體分詞結(jié)果的示意圖31為從圖30的立體分詞結(jié)果得到兩條不同主路徑的結(jié)果示意圖。
具體實(shí)施例方式
由于本發(fā)明涉及對漢語句子分詞的方法,因此在介紹本發(fā)明之 前,首先對目前常用的漢語句子分詞方法進(jìn)行介紹
目前常用的漢語句子分詞方法包括正向最大匹配法、逆向最大 匹配法、雙向最大匹配法、逐詞遍歷匹配法、最大似然一既率法、以 及切割標(biāo)志法等。這些分詞方法均為線性切分,即切分出的詞在原 句子字符串中均為連續(xù)字符構(gòu)成。其中,正向最大匹配法是從字符 串的字首開始匹配,每次切分出可匹配的最長詞,再對剩余字符串 重復(fù)這一步驟,直至全部字符串都經(jīng)過切分止。逆向最大匹配法是 從字符串字尾開始匹配,每次切分出可匹配的最長詞,再對剩余字 符串重復(fù)這一步驟,直至全部字符串都經(jīng)過切分止.雙向最大匹配 法為正向最大匹配法和逆向最大匹配法的綜合運(yùn)用,分別執(zhí)行正向 最大匹配法和逆向最大匹配法,若二者所切分的結(jié)果不同,則需采 用別的方法處理。最大似然概率法在出現(xiàn)歧義切分的時(shí)候,根據(jù)不 同切分方案的出現(xiàn)概率大小進(jìn)行判斷,最后選取出現(xiàn)概率最大的方 案。而逐詞遍歷匹配法是對整個(gè)字符串搜尋出最長詞,切分出可匹 配的最長詞后,再對剩余字符串重復(fù)這一步驟,直至全部字符串都 經(jīng)過切分止。切割標(biāo)志法則先分析字符串中僅能作為詞首或詞尾的 字符,將其作為分詞標(biāo)志,據(jù)此將字符串分割成較短的字符串,然 后配合其他方法進(jìn)行切分。
但是如前所述,用這些方法切分出來的詞匯在原句子中是連續(xù)的 中文字符構(gòu)成。而這并不完全符合漢語構(gòu)成句子時(shí)的構(gòu)詞習(xí)慣。
下面結(jié)合附圖,對本發(fā)明提供的漢語字符分詞方法的實(shí)施方式進(jìn) 行詳細(xì)說明。在本實(shí)施方式中,非漢語字符算為1個(gè)單位長度,例 如英文字母、數(shù)字或空格。漢語字符算為2個(gè)單位長度。當(dāng)然,漢語字符和非漢語字符所占的單位長度也可以采用其它的規(guī)定。 作用范圍。如圖1所示為對包含有漢語字符的字符串進(jìn)行分詞的預(yù)
處理流程圖,包括以下步驟
步驟102,接收包含有漢語字符的字符串。本實(shí)施例中,所接收 的字符串可以是包含有若干個(gè)漢語句子或者分句的字符串。
步驟104,確定所采用的最大跳躍長度。對于每個(gè)字符來說,最 大跳躍長度指考慮字符的語義范圍時(shí)可以距離該字符最遠(yuǎn)的距離, 最大跳躍長度用來劃分字符的語義作用范圍,即該字符到最大跳躍 長度值的區(qū)間為該字符的語義作用范圍。本例中被定義為IO個(gè)單位 長度。通常,切分時(shí)的運(yùn)算量和最大跳躍長度呈線性相關(guān),可以根 據(jù)硬件配置、精確度要求和使用環(huán)境等因素確定所采用的最大跳躍 長度。對于每個(gè)字符,僅考慮其和在最大跳躍長度范圍內(nèi)的其他字 符之間的語義相關(guān)性。最大跳躍長度不能定義過短,否則導(dǎo)致很多 有效的跳詞(跳詞指非連續(xù)漢字所形成的詞)不能被有效發(fā)現(xiàn);同 時(shí),最大跳躍長度不能過長,否則會導(dǎo)致很多無效的跳詞出現(xiàn),并 且在人工判讀或者在談話交流的使用環(huán)境下,會給理解者帶來困難, 尤其是在應(yīng)用于談話交流中時(shí)。最大跳躍長度可以定義為10到14 個(gè)單位長度。
步驟106,確定所定義的界限分隔符。界限分隔符是對語義作用 范圍有劃界作用的標(biāo)點(diǎn)符號。標(biāo)點(diǎn)符號被分為了界限分隔符標(biāo)點(diǎn)和 非界限分隔符標(biāo)點(diǎn)。界限分隔符標(biāo)點(diǎn)是刻畫了語義作用范圍的標(biāo)點(diǎn), 通常可以理解為被用來斷句的標(biāo)點(diǎn)。例如句號、逗號、分號、問號 和感嘆號等。對于所包含字符的長度之和超過最大跳躍長度的引號 或括號也被視為界限分隔符。其他的對語義作用范圍沒有影響的標(biāo) 點(diǎn)則被視為非界限分隔符標(biāo)點(diǎn)。例如所包含字符的長度之和沒有超 過最大跳躍長度的引號。非界限分隔符標(biāo)點(diǎn)被視為普通的字符,占 一個(gè)或兩個(gè)單位長度。
可見,通過步驟104和106,便可以對每個(gè)字符的語義作用范圍進(jìn)行初步劃界,通過這兩個(gè)步驟,該字符的語義作用范圍為最近 的界限分隔符標(biāo)點(diǎn)到所述字符的距離值和最大跳躍長度值中的最小值。
步驟108,計(jì)算并記錄字符串所有字符的真實(shí)偏移量。真實(shí)偏移 量是指字符距離字符串一個(gè)端點(diǎn)的偏移量。在本實(shí)施例中,采用的 是到最左端起點(diǎn)的偏移量。當(dāng)然,真實(shí)偏移量的起點(diǎn)可以是字符串 的任意一個(gè)端點(diǎn)。如圖2所示,為本實(shí)施例中一個(gè)示例字符串及其 對應(yīng)的真實(shí)偏移量的記錄結(jié)果示意圖。其中標(biāo)點(diǎn)符號被按照漢語字 符算為2個(gè)單位長度。當(dāng)然也可以采用其他記錄方式,只要能夠有 效記錄下字符和它的真實(shí)偏移量即可。
步驟IIO,計(jì)算并記錄字符串所有字符的虛擬偏移量。虛擬偏移 量是相對于真實(shí)偏移量,針對界限分隔符做出 一定調(diào)整得到的字符 偏移量。因?yàn)樵谡鎸?shí)偏移量體系中,對語義作用范圍有劃界作用的 界限分隔符,例如標(biāo)點(diǎn)符號,被視為普通的字符,并不能體現(xiàn)出其 在語句中對語義的影響。所以為了更準(zhǔn)確反應(yīng)漢語字符中的語義劃 分關(guān)系而引入了虛擬偏移量。
在本實(shí)施例中,字符的虛擬偏移量為該字符左側(cè)所有字符長度之 和加上該字符左側(cè)所有界限分隔符的數(shù)量與一不小于最大跳躍長度 的數(shù)之積相加所得到的和。以最大跳躍長度為IO個(gè)單元長度,所述 不小于最大跳躍長度的數(shù)為12個(gè)單元長度為例。如圖3所示為,計(jì) 算字符的虛擬偏移量的流程圖,包括
步驟302,計(jì)算每個(gè)字符的真實(shí)偏移量。在本實(shí)施例中為每個(gè)字 符距離字符串最左邊端點(diǎn)的距離。
步驟304,計(jì)算每個(gè)字符左邊的界限分隔符的數(shù)量。
步驟306,計(jì)算每個(gè)字符的虛擬偏移量。虛擬偏移量=真實(shí)偏移 量+界限分隔符的數(shù)量x (最長跳躍長度+2)。
由上得到虛擬偏移量的值。當(dāng)然,計(jì)算虛擬偏移量的方法可以有 很多種,例如,得到真實(shí)偏移量后,從左向右每遇到一個(gè)界限分隔 符,則把所述界限分隔符右邊的所有字符的虛擬偏移量都加上一個(gè)
ii不小于最長跳躍長度的值(例如最長跳躍長度+2),這樣到字符串 最后得到的虛擬偏移量即為所求的虛擬偏移量。
如圖4所示為一個(gè)示例字符串及其對應(yīng)的虛擬偏移量的記錄結(jié)
果示意圖。當(dāng)然也可以采用其他記錄方式,只要能夠有效記錄下字
符和它的虛擬偏移量即可。如圖5所示,為另一個(gè)實(shí)施方式中同時(shí) 記錄了虛擬偏移量和真實(shí)偏移量的記錄結(jié)果示意圖。
由上可以看出,因?yàn)橐肓私缦薹指舴沟迷谔摂M偏移量的體 系中,每個(gè)字符的語義作用范圍都有了明確的界限劃分,對于每個(gè) 字符來說,與該字符虛擬偏移量值之差小于最大跳躍長度值的其他 字符組成該字符的語義作用范圍。更準(zhǔn)確反應(yīng)漢語字符中的語義劃 分關(guān)系。為后續(xù)的進(jìn)一步處理提供了良好的基礎(chǔ)。
虛擬偏移量體系還為相似度比較提供了 一個(gè)更準(zhǔn)確的字符坐標(biāo) 體系。如圖6所示為, 一個(gè)同時(shí)記錄了虛擬偏移量和真實(shí)偏移量的 句子的記錄結(jié)果示意圖。下面結(jié)合圖5和圖6詳細(xì)說明虛擬偏移量 體系對提高檢索匹配度的作用。
以檢索查詢的關(guān)鍵字為中華+電話,檢索的目標(biāo)字符串分別是 圖5和圖6的句子為例。所選擇的匹配方法7>式為了說明方便,現(xiàn) 筒單的設(shè)定為
絕對匹配度-sigema(每個(gè)詞匯在目標(biāo)字符串中的匹配度);
如果直接匹配上,則每個(gè)詞匯在目標(biāo)字符串中的匹配度為1.0;如 果沒有直接匹配上而是在目標(biāo)串出現(xiàn)了詞匯中的單字,則按照單字 之間的真實(shí)偏移量距離計(jì)算所述匹配度,匹配度=1.0/(0.5*每個(gè)單字 之間字符間隔距離總和+2),如果每個(gè)單字之間單個(gè)漢字計(jì)算的距離 總和大于等于10,則認(rèn)為所述匹配度為0。
按照真實(shí)偏移量,計(jì)算出來的匹配度是
圖5中的句子匹配兩個(gè)詞匯"電話"完全匹配,力口 1.0;而"中 華,,匹配的是"中,華",匹配度是1.0 /( 0.5 * 2.0 + 2.0 ) = 0.333; 總匹配度是1.333。
圖6中的句子匹配兩個(gè)詞匯"電話"完全匹配,力。1.0;而"中華,,匹配的是"中加華",匹配度是1.0 /( 0.5 * 2.0 + 2.0 ) = 0.333; 總匹配度是1.333。
這樣一個(gè)匹配度結(jié)果,可見與自然人對于上述兩句話的理解是矛 盾的,圖6中的句子的匹配度顯然應(yīng)該高于圖5中的句子。
如果按照虛擬偏移量,計(jì)算出來的匹配度是
圖5中的句子匹配兩個(gè)詞匯"電話"完全匹配,力口 1.0;而"中 華"匹配的是"中,華",但由于"華"與"中"之間間隔的距離 是14,大于10,匹配度是0.0;總匹配度是l.O。
圖6中的句子匹配兩個(gè)詞匯"電話"完全匹配,力口 1.0;而"中 華,,匹配的是"中加華,,,匹配度是1.0 /( 0.5 * 2.0 + 2.0 ) = 0.333; 總匹配度是1.333、
這樣 一 個(gè)匹配度結(jié)果,可見更接近于自然人對于上述兩句話的理 解。圖6中的句子的匹配度確實(shí)已經(jīng)高于圖5中的句子。
由上可以看出,即使不改進(jìn)原有的任何匹配公式,只是用虛擬偏 移量去替換真實(shí)偏移量,就能顯著改善匹配度的質(zhì)量,這是因?yàn)橥?過虛擬偏移量劃分了語義作用范圍。虛擬偏移量體系的運(yùn)用能顯著 提高檢索匹配的匹配準(zhǔn)確性。這對于檢索、搜索等應(yīng)用來講,是有 真正幫助的。
在經(jīng)過預(yù)處理之后,需要對字符串進(jìn)行切分。首先進(jìn)行線性切分。 在本實(shí)施例中,釆用正向最大匹配法、逆向最大匹配法或者是最大 似然概率法同時(shí)進(jìn)行分詞。當(dāng)然,也可以采用任何線性切分方法進(jìn) 行切分。而且采用越多的線性切分的方法得到的切分結(jié)果就越多, 最終的準(zhǔn)確性也將越高。如圖7所示為一個(gè)示例語句的字符串的示 意圖。如圖8所示為采用了正向最大匹配法以及逆向最大匹配法的 分詞方案對圖7中的示例字符串切分得到的結(jié)果示意圖。
在本實(shí)施例中,經(jīng)過預(yù)處理之后,還對字符串進(jìn)行非線性切分。 漢語和印歐語言的一個(gè)很大的不同是,漢語存在非線性的情況,例 如上面所提到的跳詞,即非連續(xù)漢字所形成的詞。例如在句子"他 在湖上劃一只小船。"句子中"劃船"就是跳詞。"劃船"由兩個(gè)在句子中并不連續(xù)的部分構(gòu)成,如圖10示出了該例子的示意圖。按 照常用的線性切分方法進(jìn)行切分時(shí),是不可能得到"劃船"這樣的 結(jié)果。因?yàn)闈h語的字符可以和句子中并不直接連接的其他部分構(gòu)成 詞語,所以為了提高切分的準(zhǔn)確性,需要考慮漢語的非線性情況。 但是由于在漢語中的每個(gè)字符都是有其語義作用范圍,故不需要每 個(gè)字符和所有的其他字符都進(jìn)行匹配。通過虛擬偏移量體系,就可 以有效的確定出每個(gè)字符的語義作用范圍。其中的最長跳躍長度和
界限分隔符有效地限定了字符的語義作用范圍。如圖9示出了非線 性切分的流程圖,包括
步驟902,讀入第一個(gè)字符。
步驟904,判斷是否為漢語字符,'是,則進(jìn)入步驟906,'否, 則進(jìn)入步驟910。
步驟906,判斷在語義作用范圍內(nèi)是否有匹配的漢字,'有,則 進(jìn)入步驟908,'否,則進(jìn)入步驟910。對于判斷是否匹配,可以采 用現(xiàn)有的技術(shù)實(shí)現(xiàn),例如根據(jù)已有的詞語庫或即時(shí)更新的詞語庫進(jìn) 行判斷。
步驟卯8,切分并記錄所有和該漢語字符匹配的跳詞。
步驟910,判斷是否是最后一個(gè)字符,'是,則結(jié)束,'否,則 進(jìn)入步驟912。
步驟912,讀入下一個(gè)字符后進(jìn)入步驟904。
由上可以看出,和線性切分不同的是,在進(jìn)行非線性切分的時(shí)候 需要考慮字符的語義作用范圍。而語義作用范圍在傳統(tǒng)的處理過程 中很難進(jìn)行有效劃界。而隨著虛擬偏移量體系的引入,每個(gè)字符的 語義作用范圍可以很快得到劃界。不難理解,當(dāng)在線性切分考慮字 符的語義作用范圍時(shí),可以將線性切分視為非線性切分的 一 個(gè)特例。
在字符串經(jīng)過切分之后,需要將切分結(jié)果進(jìn)行有效的記錄。在本 實(shí)施例中,將切分出來的結(jié)果詞匯進(jìn)行立體關(guān)聯(lián)得到立體分詞結(jié)果。 如圖ll所示,為本實(shí)施例中將切分出來的分詞結(jié)果進(jìn)行立體關(guān)聯(lián)得 到立體分詞結(jié)果的流程圖,該流程包括步驟1102,將所有切分出的結(jié)果詞匯,即所構(gòu)成的詞,按照在
字符串中的位置進(jìn)行排序,并賦予詞匯序號。所述按照在字符串中 的位置進(jìn)行排序包括,結(jié)果詞匯的第一個(gè)字符在字符串中的位置靠
前的在先;且,結(jié)果詞匯的第一個(gè)字符在字符串中的位置相同的, 結(jié)果詞匯的最后一個(gè)字符在字符串中的位置靠前的在先;且,結(jié)果 詞匯的第一個(gè)字符和最后一個(gè)字符在字符串中的位置一樣的,包含 字符少的在前。
步驟1104,記錄每個(gè)字符所屬所有的結(jié)果詞匯的詞匯序列號。
以圖IO的句子為例,圖29為賦予詞匯序號后的結(jié)果詞匯示意圖。 最終得到如圖30所示的立體關(guān)聯(lián)得到的立體分詞結(jié)果。
當(dāng)然,還可以采用其他記錄方法。例如同時(shí)記錄切分出的結(jié)果詞 匯的屬性,即,屬于線性切分結(jié)果還是非線性切分結(jié)果,以及是否 屬于歧義切分結(jié)果等。只要能夠有效記錄下切分的結(jié)果并足夠表達(dá) 出各切分結(jié)果之間的語義關(guān)系即可。
在本實(shí)施例中,如圖30所示的立體分詞結(jié)果可以得到如圖31 所示的,分別由詞匯序號依次為1、 2、 3、 5、 6、 7主i 各徑和詞匯序 號依次為1、 2、 3、 4、 6、 7主路徑串聯(lián)起來的句子。句子的語義路 徑是按照詞匯序號鏈接的。其中在擁有詞匯序號為4和5的兩個(gè)結(jié) 果詞匯的字符"劃"處出現(xiàn)了分支而形成了兩條主路徑。當(dāng)然,只 要有效記錄了帶有足夠語義關(guān)系的切分結(jié)果,就可以達(dá)到更好應(yīng)用 效果。如下文中對于圖30所示的切分結(jié)果在自動(dòng)翻譯中的應(yīng)用。在 另一個(gè)實(shí)施例中,把凡是前后相接的詞匯進(jìn)行線性串聯(lián),同時(shí)根據(jù) 界限分隔符標(biāo)點(diǎn)把文字段分成句子或者分句。凡是一個(gè)字(要求不 是跳詞的組成部分)纟皮前后分詞到兩個(gè)詞匯中的情況,在這個(gè)地方 紀(jì)錄一個(gè)特殊節(jié)點(diǎn)標(biāo)記,仍然順序連接分好的詞匯。對于跳詞、包 含詞,按照非線性、非連續(xù)、立體網(wǎng)絡(luò)狀關(guān)聯(lián)原則,進(jìn)行關(guān)聯(lián)標(biāo)記 (跳詞采用跳躍關(guān)聯(lián)標(biāo)記、類似"中國人民"這種情況,采用并行 分詞關(guān)聯(lián)標(biāo)志)。則立體聯(lián)系過程結(jié)束。
下面結(jié)合附圖對歧義情況進(jìn)行詳細(xì)說明。如圖12所示,為記錄的具有歧義的示例語句的第一種切分結(jié)果
的示意圖。圖中上排為字符串,下排為切分出的詞語的對應(yīng)的虛擬
偏移量。如圖13所示,為記錄的具有歧義的示例語句的第二種切分 結(jié)果的示意圖。如圖14所示,為記錄了具有歧義的示例所有可能的 切分結(jié)果的示意圖。圖中上排開頭的Z表示為字符串,中排開頭的 Jl表示為第一種切分結(jié)果。下排開頭的J2表示為第二種切分結(jié)果。 下面結(jié)合附圖對跳詞情況進(jìn)行詳細(xì)說明。
以圖15的示例語句為例子,下面結(jié)合附圖詳細(xì)說明分別在真實(shí) 偏移量體系中和在虛擬偏移量體系中進(jìn)行非線性切分的情況。 如圖16所示,為帶真實(shí)偏移量的字符串的示意圖。 如圖17所示,為帶了虛擬偏移量的字符串的示意圖。 如圖18所示,為切分出的結(jié)果示意圖。 如圖19所示,為帶真實(shí)偏移量的切分結(jié)果示意圖。 如圖20所示,為帶虛擬偏移量的切分結(jié)果示意圖。 如圖21所示,為使用真實(shí)偏移量而產(chǎn)生跳詞錯(cuò)誤的切分結(jié)果的 示意圖。
如圖22所示,為使用虛擬偏移量而避免了跳詞錯(cuò)誤的切分結(jié)果 的示意圖。
如圖23所示,為使用真實(shí)偏移量而記錄了錯(cuò)誤跳詞的記錄結(jié)果 的示意圖。圖中下排開頭的T表示的是一組跳詞。跳詞是由至少2 個(gè)不相連的部分組成。圖中下排第一個(gè)真實(shí)偏移量是跳詞第一部分 的開始的真實(shí)偏移量,第二個(gè)真實(shí)偏移量是跳詞第 一部分的結(jié)尾的 真實(shí)偏移量,第三個(gè)真實(shí)偏移量是跳詞第二部分的開始的真實(shí)偏移 量,第四個(gè)真實(shí)偏移量是跳詞第二部分的結(jié)尾的真實(shí)偏移量。
如圖24所示,為使用虛擬偏移量而避免了跳詞錯(cuò)誤的記錄結(jié)果 的示意圖。
在漢語中還存在多種跳詞的情況,下面結(jié)合附圖進(jìn)行詳細(xì)說明。 如圖25所示,為帶虛擬偏移量的多種跳詞示例語句字符串的示 意圖。如圖26所示,為多種跳詞示例語句字符串的切分結(jié)果示意圖。 如圖27所示,為多種跳詞示例語句字符串的使用虛擬偏移量的 記錄結(jié)果示意圖。其中第一個(gè)虛擬偏移量是跳詞第一部分的開始的 虛擬偏移量,第二個(gè)虛擬偏移量是跳詞第一部分的結(jié)尾的虛擬偏移 量,第三個(gè)虛擬偏移量是跳詞第二部分的開始的虛擬偏移量,第四 個(gè)虛擬偏移量是跳詞第二部分的結(jié)尾的虛擬偏移量。中排開頭的Tl 表示為第一個(gè)跳詞。下排開頭的T2表示為第二個(gè)跳詞。在本實(shí)施例 中,為了簡化起見,跳詞的原則是跳近不跳遠(yuǎn),如果近處的跳詞已 經(jīng)成立,則》文棄一個(gè)與遠(yuǎn)端完全一樣的跳詞(不一樣的還是可以跳)。 所以放棄了有虛擬偏移量為6的"開"和虛擬偏移量為12的"心" 組成的if兆詞。
與此類似的還有包含詞情況。即 一 個(gè)詞匯中包含了另 一 個(gè)詞匯。 如"南征北戰(zhàn)"中就包含了 "征戰(zhàn)"。這種情況的處理可以參見對 跳詞的處理。在此就不予以贅述。
由上可以看出,虛擬偏移量有效避免了跳詞錯(cuò)誤的出現(xiàn)。而且可 以根據(jù)需要通過調(diào)整最長跳躍距離來調(diào)整虛擬偏移量,進(jìn)而可以有 效控制運(yùn)行速度和結(jié)果準(zhǔn)確性。而將切分出來的分詞結(jié)果進(jìn)行立體 關(guān)聯(lián)得到的立體分詞結(jié)果為字符串再進(jìn)一步的處理提供了良好的基 礎(chǔ)。面向不同的應(yīng)用目的,可以使用立體分詞結(jié)果中的部分或全部內(nèi)容。
下面以應(yīng)用于檢索和自動(dòng)翻譯為例進(jìn)行說明。
對于檢索來說,可以運(yùn)用本專利請求中的虛擬偏移量和跳詞結(jié) 果,來顯著提升搜索結(jié)果。例如參見上文中圖5和圖6中兩個(gè)句子 的匹配度的比4交。
再以圖IO的句子為例。如果使用者使用"他在湖上劃船"作為 檢索語句,在包含"他在湖上劃一條小船"這個(gè)句子的一長串字符 串中作檢索。采用傳統(tǒng)的分詞結(jié)果,是無法找到與"他在湖上劃船" 這個(gè)檢索語句完全一模一樣的結(jié)果來的,只有近似匹配結(jié)果,而沒 有完全匹配結(jié)果。而實(shí)際上從自然人的語義理解來看,應(yīng)該是完全匹配的結(jié)果。而根據(jù)立體分詞結(jié)果,在分詞立體網(wǎng)絡(luò)結(jié)果中,存在 一條主路徑組成了 "他在湖上劃船"。進(jìn)行檢索匹配時(shí),這是一個(gè) 完全匹配而不是 一 個(gè)近似匹配。這樣的結(jié)果更符合人們對于漢語的 語義理解的要求。
對于漢英自動(dòng)翻譯來說,還是以圖IO的句子為例。傳統(tǒng)的線性
分詞的結(jié)果如圖28所示。其翻譯結(jié)果應(yīng)該是"He is driving a little boat on lake"。
而根據(jù)如圖30所示立體分詞結(jié)果。"劃船"這個(gè)詞匯會被直接 找到,如圖31的所示,按照詞匯序號依次為1、 2、 3、 5、 6、 7的 用實(shí)線箭頭連^妄的主^各徑,其翻i奪結(jié)果應(yīng)該是"He is rowing a little boat on lake"。
很顯然根據(jù)立體分詞結(jié)果得到的翻譯結(jié)果更準(zhǔn)確,因?yàn)榱Ⅲw分詞 找到了準(zhǔn)確的詞匯來傳達(dá)語義,而傳統(tǒng)線性分詞方法則丟失了原有
句子中重要的語義信息。
以上僅為本發(fā)明的較佳實(shí)施方式,并不以限制本發(fā)明,凡在本發(fā) 明的精神和原則之內(nèi),所作的任何修改等,例如采用指針的方式替 代上述序列號的方式記載語義關(guān)系,均應(yīng)包含在本發(fā)明的保護(hù)范圍 之內(nèi)。
18
權(quán)利要求
1. 一種含有漢語的字符串的分詞方法,其特征在于,包括A、接收包含有漢語字符的字符串;B、對于每個(gè)字符,確定所述字符串中該字符的語義作用范圍;C、對于每個(gè)字符,在其語義作用范圍內(nèi),確定與該字符可匹配成詞的其他字符并構(gòu)成詞。
2. 如權(quán)利要求l所述方法,其特征在于,所述步驟B包括 Bll、對于每個(gè)字符,設(shè)置所述字符串中可距離該字符的最遠(yuǎn)距離為最大跳躍長度;B21、確定所述字符的最大跳躍長度范圍內(nèi)最近的界限分隔符標(biāo)點(diǎn);B31、確定所述最近的界限分隔符標(biāo)點(diǎn)到所述字符的距離值和最 大跳躍長度值中的最小值,所述字符到該最小值距離所形成的距離 區(qū)間作為所述字符的語義作用范圍。
3. 如權(quán)利要求l所述方法,其特征在于,所述步驟B包括 B12、對于每個(gè)字符,設(shè)置所述字符串中距離該字符最遠(yuǎn)距離為最大跳躍長度;B22、計(jì)算所述字符串的每個(gè)字符到所述字符串一個(gè)端點(diǎn)的距離作為真實(shí)偏移量;B32、計(jì)算每個(gè)字符的虛擬偏移量,虛擬偏移量=真實(shí)偏移量+所 述端點(diǎn)與該字符之間的界限分隔符標(biāo)點(diǎn)的數(shù)量x不小于最大跳躍長度的數(shù)值;B42、對于每個(gè)字符,與該字符虛擬偏移量值之差小于最大跳躍 長度值的其他字符組成該字符的語義作用范圍。
4. 如權(quán)利要求2或3所述方法,其特征在于,所述界限分隔符 標(biāo)點(diǎn)包括句號、逗號、分號、問號、感嘆號,以及所包含字符的長 度之和超過最大跳躍長度的引號或括號。
5. 如權(quán)利要求1、 2或3所述方法,其特征在于,步驟C中所述構(gòu)成詞為采用非線性切分法構(gòu)成詞,包括在該字符的語義作用范圍內(nèi),依次判斷與該字符匹配的跳詞構(gòu)成詞。
6. 如權(quán)利要求5所述方法,其特征在于,步驟C中構(gòu)成詞的步 驟還包括采用線性切分法構(gòu)成詞。
7. 如權(quán)利要求6所述方法,其特征在于,所述線性切分法包括 至少以下之一正向最大匹配法、逆向最大匹配法、雙向最大匹配法、逐詞遍歷 匹配法、最大似然積X率法、或切割標(biāo)志法。
8. 如權(quán)利要求6或7所述方法,其特征在于,所述步驟C后還 包括,D 、記錄所構(gòu)成的詞以及各個(gè)詞之間的語義關(guān)系。
9. 如權(quán)利要求8所述方法,其特征在于,步驟D所述記錄各個(gè) 詞之間的語義關(guān)系包括Dl、將所有構(gòu)成的詞按照在字符串中的位置進(jìn)行排序,包括 根據(jù)各個(gè)詞的第一個(gè)字符在字符串中的先后位置對各個(gè)詞進(jìn)行 先后排序;且,當(dāng)不同詞的第 一個(gè)字符在字符串中的位置相同時(shí),根據(jù)詞的最后 一個(gè)字符在字符串中的先后位置對不同詞進(jìn)行先后排序;且,當(dāng)不同詞的第一個(gè)字符和最后一個(gè)字符在字符串中的位置一樣 時(shí),根據(jù)詞所包含字符數(shù)量值對不同詞進(jìn)行先后排序;D2、為每個(gè)字符記錄其所屬詞的詞匯序列號。
10. 如權(quán)利要求1的在字符串中檢索詞的方法,其特征在于,包括M、確定該字符串中包含待檢索詞的字符;N、確定記錄的該字符的語義作用范圍內(nèi)所構(gòu)成的詞;O、在所構(gòu)成的詞中檢索待檢索詞。
全文摘要
本發(fā)明提供了一種含有漢語字符串的分詞方法,包括接收包含有漢語字符的字符串;對于每個(gè)字符,確定所述字符串中該字符的語義作用范圍;對于每個(gè)字符,在其語義作用范圍內(nèi),確定與該字符可匹配成詞的其他字符并構(gòu)成詞。經(jīng)過對每個(gè)字符的語義作用范圍的界定,體現(xiàn)漢語作為非線性語言和其它線性語言之間區(qū)別。從而切分出的結(jié)果詞匯可以更準(zhǔn)確反應(yīng)漢語字符中的語義劃分關(guān)系。本發(fā)明還提供了一種在字符串中檢索詞的方法,包括確定該字符串中包含待檢索詞的字符;確定該字符的語義作用范圍內(nèi)所記錄的構(gòu)成的詞;確定與該待檢詞匹配的所記錄的詞。
文檔編號G06F17/27GK101464855SQ200910000440
公開日2009年6月24日 申請日期2009年1月13日 優(yōu)先權(quán)日2009年1月13日
發(fā)明者吳長林, 飔 陳 申請人:吳長林