專利名稱:中文分詞方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及自然語言處理(NLP)技術(shù)領(lǐng)域,特別涉及一種中文分詞方法及系統(tǒng)。
背景技術(shù):
近年來,隨著網(wǎng)絡(luò)日益普及,互聯(lián)網(wǎng)上的文本規(guī)模逐步擴(kuò)大,信息資源不斷增加。 為了從大量的資源中檢索和挖掘出有價值的信息,互聯(lián)網(wǎng)公司大力發(fā)展自然語言處理領(lǐng)域 的技術(shù)。漢語分詞是自然語言處理技術(shù)的基礎(chǔ)和前提。在當(dāng)前自然語言處理領(lǐng)域中,漢語分詞技術(shù)主要分為兩種基于規(guī)則的分詞方法 和基于統(tǒng)計的分詞方法?;谝?guī)則的分詞方法中,詞典匹配分詞的優(yōu)點(diǎn)在于切分速度快,效率高。系統(tǒng)詞典 結(jié)構(gòu)采用雙數(shù)組Trie數(shù)據(jù)結(jié)構(gòu),匹配速度快,在切分過程中,文本指針的回溯距離是常量。 匹配方法的缺點(diǎn)在于無法有效地解決歧義切分和未登錄詞識別的問題。統(tǒng)計方法中,基于字本位的方法對于歧義切分和未登錄詞識別的效果較好,可以 使用統(tǒng)計的方法來識別歧義和未登錄詞(如人名,地名及組織機(jī)構(gòu)名稱等)。但統(tǒng)計方法的 缺點(diǎn)在于計算復(fù)雜性太高,導(dǎo)致切分效率降低,再加上受制于有限的訓(xùn)練語料庫,分詞精度 提升比較困難。
發(fā)明內(nèi)容
(一)要解決的技術(shù)問題本發(fā)明要解決的技術(shù)問題是如何提高分詞速度,并能正確切分歧義字段和識別 未登錄詞。( 二 )技術(shù)方案為解決上述技術(shù)問題,本發(fā)明提供了一種中文分詞方法,其特征在于,包括以下步 驟Sl 對中文文本按詞語語義進(jìn)行分詞,并切分歧義字段,輸出以詞為單元的第一文 本串;S2:識別并合并所述第一文本串中的中文人名,生成以詞為單元的第二文本串。其中,所述步驟Sl中切分歧義字段的步驟具體包括Sll 采用正向最大匹配和回退一字的策略匹配中文文本中的待匹配的詞語;S12:在匹配過程中判斷是否有歧義字段,若有,則執(zhí)行步驟S13,否則執(zhí)行步驟 S14 ;S13:判斷詞典規(guī)則中是否有所述歧義字段的分詞規(guī)則,若有,則按所述分詞規(guī)則 對所述歧義字段進(jìn)行切分,否則采用統(tǒng)計方法切分所述歧義字段;S14:判斷對所述中文文本的匹配是否完成,若未完成則執(zhí)行步驟S11,若完成,則 輸出以詞為單元的第一文本串。其中,所述采用統(tǒng)計方法切分所述歧義字段具體方式為
若當(dāng)前切分得到的詞w :Wl,……,Wn與下文q構(gòu)成交集型歧義字段,則利用最大 熵模型估計的字位,如果的字位為E,則表示W(wǎng)l,……,Wn為一個詞,如果Wn的字位是 B,則表示W(wǎng)1,……,Wlri為一個詞,Wn與下文q組成另一個詞,所述字位表示該字位于所在 詞中的位置,B為詞首位置標(biāo)記,E為詞尾位置標(biāo)記。其中,所述步驟S2具體包括S21 識別第一文本串中的單字或雙字是否為單姓或復(fù)姓,以及識別單姓或復(fù)姓后 面兩個字或一個字是否為人名,若是,則將單姓或復(fù)姓后面兩個字或一個字連同所述單姓 或復(fù)姓作為待定人名,并執(zhí)行步驟S22,否則,執(zhí)行步驟S23 ;S22:采集所述待定人名的前后各兩個字,通過統(tǒng)計方法判斷是否能從所述單字或 雙字的位置開始加上后兩個字或一個字,合并成中文人名,若能,則將所述單字或雙字以及 后面兩個或一個字合并成中文人名,否則跳過所述單字或雙字的識別;S23 判斷是否識別完所有第一文本串中的單字或雙字,若未識別完,則執(zhí)行步驟 S21,若識別完,則輸出以詞為單元的第二文本串。其中,所述步驟S22中將所述單字或雙字以及后面兩個或一個字合并成中文人名 的方式為對第一文本串中的詞串S = S1,……,Sn,若Si為中文單姓,則需要確定Si的兩個 左鄰邊界字、待定人名和兩個右鄰邊界字,Si的兩個左鄰邊界字為Sp1和Si_2 ;如果i = 0,則Sg和Si_2不存在;如果si+1的漢字?jǐn)?shù)目大于等于3,則SiSi+1不為 人名;如果si+1的漢字?jǐn)?shù)目等于2 標(biāo)記為^1A1,且乂+1未在名字首字中出現(xiàn),則SiSi+1不 為人名,如果不在名字末字中,則采用最大熵模型估計& 是否組成人名,右邊界的兩個 儀字為sL ^l2 ;如果在名字末字中,則采用最大熵模型估計SiSi+1是否組成人名,右邊界 為si+1的兩個右鄰接字;如果si+1的漢字?jǐn)?shù)目為1,且si+1未在名字首字中出現(xiàn),則SiSw不為人名,如果si+1 在名字首字中出現(xiàn),且si+2的漢字?jǐn)?shù)目大于等于2,則采用最大熵模型估計SiSi+1是否為人 名;如果si+2的漢字?jǐn)?shù)目為1且為人名末字,則采用最大熵模型估計SiSi+lSi+2是否為 人名;若Si為中文復(fù)姓,如果si+1的漢字?jǐn)?shù)目大于等于3,則SiSi+1不為人名;如果Si+1的漢字?jǐn)?shù)目等于2,且分別為人名首字或末字,則SiSi+1為人名;如果si+1的漢字?jǐn)?shù)目等于1,且si+1為人名首字,則SiSi+1為人名。其中,所述最大熵模型估計人名的步驟為利用字位標(biāo)記判斷姓氏Si的上下文;基于以下最大熵模型估計人名,Y= {B,M,S,E},X= {上下文集合},通過上下文 來判斷Si后落單的字的字位,如果落單的幾個字的字位標(biāo)記為B、E或B、Μ、Ε,則這幾個字 為人名,B為詞首位置標(biāo)記,E為詞尾位置標(biāo)記,M表示除詞首和詞尾外的其它位置標(biāo)記,S
6為單字詞標(biāo)記,最大熵模型為
權(quán)利要求
一種中文分詞方法,其特征在于,包括以下步驟S1對中文文本按詞語語義進(jìn)行分詞,并切分歧義字段,輸出以詞為單元的第一文本串;S2識別并合并所述第一文本串中的中文人名,生成以詞為單元的第二文本串。
2.如權(quán)利要求1所述的中文分詞方法,其特征在于,所述步驟Sl中切分歧義字段的步 驟具體包括511采用正向最大匹配和回退一字的策略匹配中文文本中的待匹配的詞語;512在匹配過程中判斷是否有歧義字段,若有,則執(zhí)行步驟S13,否則執(zhí)行步驟S14 ; S13:判斷詞典規(guī)則中是否有所述歧義字段的分詞規(guī)則,若有,則按所述分詞規(guī)則對所述歧義字段進(jìn)行切分,否則采用統(tǒng)計方法切分所述歧義字段;S14:判斷對所述中文文本的匹配是否完成,若未完成則執(zhí)行步驟S11,若完成,則輸出 以詞為單元的第一文本串。
3.如權(quán)利要求2所述的中文分詞方法,其特征在于,所述采用統(tǒng)計方法切分所述歧義 字段具體方式為若當(dāng)前切分得到的詞w %,……,Wn與下文q構(gòu)成交集型歧義字段,則利用最大熵模 型估計Wn的字位,如果Wn的字位為E,則表示W(wǎng)1,……,Wn為一個詞,如果Wn的字位是B,則 表示巧,……,Wlri為一個詞,Wn與下文q組成另一個詞,所述字位表示該字位于所在詞中 的位置,B為詞首位置標(biāo)記,E為詞尾位置標(biāo)記。
4.如權(quán)利要求1所述的中文分詞方法,其特征在于,所述步驟S2具體包括521識別第一文本串中的單字或雙字是否為單姓或復(fù)姓,以及識別單姓或復(fù)姓后面兩 個字或一個字是否為人名,若是,則將單姓或復(fù)姓后面兩個字或一個字連同所述單姓或復(fù) 姓作為待定人名,并執(zhí)行步驟S22,否則,執(zhí)行步驟S23 ;522采集所述待定人名的前后各兩個字,通過統(tǒng)計方法判斷是否能從所述單字或雙字 的位置開始加上后兩個字或一個字,合并成中文人名,若能,則將所述單字或雙字以及后面 兩個或一個字合并成中文人名,否則跳過所述單字或雙字的識別;523判斷是否識別完所有第一文本串中的單字或雙字,若未識別完,則執(zhí)行步驟S21, 若識別完,則輸出以詞為單元的第二文本串。
5.如權(quán)利要求4所述的中文分詞方法,其特征在于,所述步驟S22中將所述單字或雙字 以及后面兩個或一個字合并成中文人名的方式為對第一文本串中的詞串S = S1,……,sn,若Si為中文單姓,則需要確定Si的兩個左鄰 邊界字、待定人名和兩個右鄰邊界字, Si的兩個左鄰邊界字為Sp1和Si_2 ;如果i = 0,則Sg和Si_2不存在;如果si+1的漢字?jǐn)?shù)目大于等于3,則SiSi+1不為人名; 如果si+1的漢字?jǐn)?shù)目等于2 標(biāo)記為乂+jL ,且未在名字首字中出現(xiàn),則SiSi+1不為人 名,如果不在名字末字中,則采用最大熵模型估計^是否組成人名,右邊界的兩個漢字 為心sL ;如果在名字末字中,則采用最大熵模型估計SiSi+1是否組成人名,右邊界為si+1 的兩個右鄰接字;如果si+1的漢字?jǐn)?shù)目為1,且si+1未在名字首字中出現(xiàn),則SiSi+1不為人名,如果si+1在名字首字中出現(xiàn),且si+2的漢字?jǐn)?shù)目大于等于2,則采用最大熵模型估計SiSi+1是否為人名; 如果si+2的漢字?jǐn)?shù)目為1且為人名末字,則采用最大熵模型估計SiSi+lSi+2是否為人名; 若Si為中文復(fù)姓,如果si+1的漢字?jǐn)?shù)目大于等于3,則SiSi+1不為人名;如果si+1的漢字?jǐn)?shù)目等于2,且分別為人名首字或末字,則SiSi+1為人名;如果si+1的漢字?jǐn)?shù)目等于1,且si+1為人名首字,則SiSi+1為人名。
6.如權(quán)利要求5所述的中文分詞方法,其特征在于,所述最大熵模型估計人名的步驟為利用字位標(biāo)記判斷姓氏Si的上下文;基于以下最大熵模型估計人名,Y= {B,M,S,E},X= {上下文集合},通過上下文來判 斷Si后落單的字的字位,如果落單的幾個字的字位標(biāo)記為B、E或B、Μ、Ε,則這幾個字為人 名,B為詞首位置標(biāo)記,E為詞尾位置標(biāo)記,M表示除詞首和詞尾外的其它位置標(biāo)記,S為單 字詞標(biāo)記,最大熵模型為nc)
7.一種中文分詞系統(tǒng),其特征在于,包括分詞模塊,用于對中文文本按詞語語義進(jìn)行分詞,并切分歧義字段,輸出以詞為單元的 第一文本串;人名識別模塊,用于識別并合并所述第一文本串中的中文人名,生成以詞為單元的第二文本串。
8.如權(quán)利要求7所述的中文分詞系統(tǒng),其特征在于,所述分詞模塊包括匹配模塊,用于采用正向最大匹配和回退一字的策略匹配中文文本中的待匹配的詞語;歧義判斷模塊,用于在匹配過程中判斷是否有歧義字段,若有,則執(zhí)行歧義切分模塊, 否則執(zhí)行第一文本串輸出模塊;歧義切分模塊,用于判斷詞典規(guī)則系統(tǒng)中是否有所述歧義字段的分詞規(guī)則,則按所述 分詞規(guī)則對所述歧義字段進(jìn)行切分,否則采用統(tǒng)計方法切分所述歧義字段;第一文本串輸出模塊,用于判斷對所述中文文本的匹配是否完成,若未完成則執(zhí)行匹 配模塊,若完成,則輸出以詞為單元的第一文本串。
9.如權(quán)利要求7所述的中文分詞系統(tǒng),其特征在于,所述人名識別模塊包括姓氏識別模塊,用于識別第一文本串中的單字或雙字是否為單姓或復(fù)姓,以及識別單 姓或復(fù)姓后面兩個字或一個字是否為人名,若是,則將單姓或復(fù)姓后面兩個字或一個字連 同所述單姓或復(fù)姓作為待定人名,并執(zhí)行人名合并模塊,否則,執(zhí)行第二文本輸出模塊;人名合并模塊,用于采集所述待定人名的前后各兩個字,通過統(tǒng)計方法判斷是否能從 所述單字或雙字的位置開始加上后兩個字或一個字,合并成中文人名,若能,則將所述單字或雙字以及后面兩個或一個字合并成中文人名,否則跳過所述單字或雙字的識別;第二文本輸出模塊,用于判斷是否識別完所有第一文本串中的單字或雙字,若未識別 完,則執(zhí)行姓氏識別模塊,若識別完,則輸出以詞為單元的第二文本串。
全文摘要
本發(fā)明公開了一種中文分詞方法,包括對中文文本按詞語語義進(jìn)行分詞,并切分歧義字段,輸出以詞為單元的第一文本串;識別并合并所述第一文本串中的中文人名,生成以詞為單元的第二文本串,在切分歧義時,采用詞典規(guī)則方法和統(tǒng)計結(jié)合方法實現(xiàn),統(tǒng)計方法中采用字本位和最大熵模型進(jìn)行歧義字段切分及人名識別。還公開了一種中文分詞系統(tǒng),包括分詞模塊和人名識別模塊等。本發(fā)明提高了分詞效率和分詞的準(zhǔn)確率。
文檔編號G06F17/27GK101950284SQ20101029342
公開日2011年1月19日 申請日期2010年9月27日 優(yōu)先權(quán)日2010年9月27日
發(fā)明者楊正, 牟小峰 申請人:北京新媒傳信科技有限公司