專利名稱:一種中文分詞方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及中文信息處理領(lǐng)域,更具體地說,涉及一種中文分詞方法及系統(tǒng)。
背景技術(shù):
中文信息處理技術(shù)現(xiàn)已在計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)庫技術(shù)、軟件工程等計(jì)算機(jī)領(lǐng)域得到了廣泛應(yīng)用,而中文自動(dòng)分詞是中文信息處理的一項(xiàng)重要的基礎(chǔ)性工作,許多中文信息處理項(xiàng)目中都涉及到分詞問題,如機(jī)器翻譯、自動(dòng)文摘、自動(dòng)分類、中文文獻(xiàn)庫全文檢索、搜索引擎等。由于中文文本是連寫的,詞之間沒有空格,因而在中文文本處理中,首先遇到的問題是分詞的問題,詞的正確切分是進(jìn)行中文文本處理的必要條件。
中文分詞算法可分為三大類,即基于字符串匹配的分詞方法、基于理解的分詞方法和基于統(tǒng)計(jì)的分詞方法(1)基于字符串匹配的分詞方法又稱為機(jī)械分詞方法,它是按照一定的策略將待分析的漢字串與一個(gè)充分大的機(jī)器詞典中的詞條進(jìn)行匹配,若在詞典中找到某個(gè)字符串,則匹配成功,從而識(shí)別出一個(gè)詞。(2)基于理解的分詞方法是指,在分詞的同時(shí)進(jìn)行句法、語義分析,利用句法信息和語義信息來處理歧義現(xiàn)象,它模擬了人對句子的理解過程,需要使用大量的語言知識(shí)和信息。由于漢語語言知識(shí)的籠統(tǒng)、復(fù)雜性,難以將各種語言信息組織成機(jī)器可直接讀取的形式,因此目前基于理解的分詞方法還不夠成熟。(3)基于統(tǒng)計(jì)的分詞方法的理論基礎(chǔ)是,從形式上看詞是穩(wěn)定的字的組合,因此在上下文中相鄰的字同時(shí)出現(xiàn)的次數(shù)越多,就越有可能構(gòu)成一個(gè)詞。因此可以對文本中相鄰共現(xiàn)的各個(gè)字的組合的頻度進(jìn)行統(tǒng)計(jì),即計(jì)算一個(gè)字組中字與字間的相鄰共現(xiàn)概率,當(dāng)該概率高于某一個(gè)閾值時(shí),便可認(rèn)為此字組可能構(gòu)成了一個(gè)詞。統(tǒng)計(jì)分詞方法切分出來的詞都是帶有概率信息的,最后通過在所有可能的切分結(jié)果中選出一種概率最大的分詞結(jié)果,這種方法具有自動(dòng)消除歧義的優(yōu)點(diǎn),目前這種方法是分詞的主流方法。
在一種現(xiàn)有的分詞方法中,具體步驟如下A.將輸入文本切分為單個(gè)原子;B.從切分得到的原子序列中識(shí)別出詞典已收錄詞匯,簡稱為詞典詞;C.利用系統(tǒng)中保存的常見歧義詞切分表,對識(shí)別出的詞典詞進(jìn)行切分排歧;D.然后在切分排歧的基礎(chǔ)上,進(jìn)一步識(shí)別具有規(guī)律性的特定詞(如時(shí)間詞、數(shù)詞、人名、地名等),最后輸出分詞結(jié)果。
上述現(xiàn)有技術(shù)的方法存在以下弊端詞典詞切分、歧義詞的切分排歧以及特定詞識(shí)別是幾個(gè)相互獨(dú)立的階段,這樣會(huì)導(dǎo)致前一階段出現(xiàn)的錯(cuò)誤將傳導(dǎo)至后一階段,無法及時(shí)修正,使得最終輸出的分詞結(jié)果錯(cuò)誤。例如,若最初輸入的句子是“王芳是研究生物的?!?,經(jīng)過詞典詞切分(可采用正向最大匹配算法)后的結(jié)果是“王/芳/是/研究生/物/的/?!?,可知出現(xiàn)了“研究生/物”的切分錯(cuò)誤;歧義詞的切分排歧階段主要是利用系統(tǒng)保存的常見歧義詞切分表,而常見歧義詞切分表存在一個(gè)致命缺陷,其永遠(yuǎn)也涵蓋不了所有的語言歧義現(xiàn)象,不具有很好的擴(kuò)展性,若在該例中沒有包含“研究生物”這個(gè)項(xiàng)的話,那么“研究生/物”的切分錯(cuò)誤就不會(huì)被糾正過來;在下一階段,利用時(shí)間數(shù)詞表、人名姓氏表和地名后綴表進(jìn)行特定詞識(shí)別,最終輸出的分詞結(jié)果則為“王芳/是/研究生/物/的/?!保@個(gè)結(jié)果仍然延續(xù)了詞典詞切分階段出現(xiàn)的錯(cuò)誤。
因此需要一種新的中文分詞方法,提高中文分詞的準(zhǔn)確性。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種中文分詞系統(tǒng),旨在解決現(xiàn)有的中文分詞方法準(zhǔn)確性較低的問題。
本發(fā)明的目的還在于提供一種中文分詞方法,以更好地解決現(xiàn)有技術(shù)中存在的上述問題。
為了實(shí)現(xiàn)發(fā)明目的,所述中文分詞系統(tǒng),包括輸入輸出單元、原子切分單元、詞典詞切分單元和特定詞識(shí)別單元,所述系統(tǒng)還包括一個(gè)切分詞圖單元和一個(gè)分詞路徑生成單元;所述切分詞圖單元與原子切分單元、詞典詞切分單元及特定詞識(shí)別單元相連,用于將原子切分單元、詞典詞切分單元及特定詞識(shí)別單元的獨(dú)立分詞結(jié)果分別保存在切分詞圖中;所述分詞路徑生成單元與切分詞圖單元相連,用于根據(jù)切分詞圖中的各獨(dú)立分詞結(jié)果生成一條最優(yōu)分詞路徑,并按照所述最優(yōu)分詞路徑輸出綜合分詞結(jié)果。
優(yōu)選地,所述特定詞識(shí)別單元包括時(shí)間數(shù)詞識(shí)別模塊、人名識(shí)別模塊、地名識(shí)別模塊;所述時(shí)間數(shù)詞識(shí)別模塊存有一個(gè)時(shí)間數(shù)詞表,用于識(shí)別時(shí)間詞和數(shù)詞,并將所述時(shí)間詞和數(shù)詞保存到切分詞圖中;所述人名識(shí)別模塊存有一個(gè)人名姓氏表,用于識(shí)別人名,并將所述人名保存到切分詞圖中;所述地名識(shí)別模塊存有一個(gè)地名后綴表,用于識(shí)別地名,并將所述地名保存到切分詞圖中。
優(yōu)選地,所述特定詞識(shí)別單元進(jìn)一步包括一個(gè)與所述時(shí)間數(shù)詞識(shí)別模塊、人名識(shí)別模塊、地名識(shí)別模塊分別相連的啟動(dòng)配置模塊;所述啟動(dòng)配置模塊用于對所述時(shí)間數(shù)詞識(shí)別模塊、人名識(shí)別模塊、地名識(shí)別模塊進(jìn)行有選擇的啟動(dòng)。
優(yōu)選地,所述分詞路徑生成單元進(jìn)一步用于根據(jù)所述各獨(dú)立分詞結(jié)果的概率信息,計(jì)算所述切分詞圖中每個(gè)結(jié)點(diǎn)的詞弧概率,并將詞弧概率乘積最大的分詞路徑作為最優(yōu)分詞路徑。
為了更好地實(shí)現(xiàn)發(fā)明目的,所述中文分詞方法基于前述的中文分詞系統(tǒng),包括以下步驟A.對輸入的中文文本進(jìn)行原子切分,并根據(jù)所得的原子序列建立初始的切分詞圖;B.基于原子序列分別進(jìn)行詞典詞切分和特定詞識(shí)別,并將各自的獨(dú)立分詞結(jié)果添加到所述切分詞圖中;C.根據(jù)所述切分詞圖中的各獨(dú)立分詞結(jié)果生成一條最優(yōu)分詞路徑,并按照所述最優(yōu)分詞路徑輸出綜合分詞結(jié)果。
優(yōu)選地,所述步驟A之前還包括在所述中文分詞系統(tǒng)中存入詞典及特定詞表;所述詞典收錄常用詞匯;所述特定詞表包括時(shí)間數(shù)詞表、人名姓氏表、地名后綴表。
優(yōu)選地,所述步驟B中進(jìn)行詞典詞切分的步驟包括,采取正向最大匹配算法將所述原子序列與詞典中收錄的詞匯進(jìn)行對比,將所匹配的詞匯確定為詞典詞。
優(yōu)選地,所述步驟B中的特定詞識(shí)別包括執(zhí)行以下三類操作中的至少一者利用所述時(shí)間數(shù)詞表識(shí)別時(shí)間詞和數(shù)詞;
利用所述人名姓氏表識(shí)別人名;利用所述地名后綴表識(shí)別地名。
優(yōu)選地,所述步驟C進(jìn)一步包括根據(jù)所述各獨(dú)立分詞結(jié)果的概率信息,計(jì)算所述切分詞圖中每個(gè)結(jié)點(diǎn)的詞弧概率,并將詞弧概率乘積最大的分詞路徑作為最優(yōu)分詞路徑。
優(yōu)選地,所述獨(dú)立分詞結(jié)果的概率信息包括詞典詞的概率信息及特定詞的概率信息;所述詞典詞的概率信息是指詞典所收錄詞匯具有的成詞概率;所述特定詞的概率信息是指隱馬爾可夫模型中的初始概率、發(fā)射概率和轉(zhuǎn)移概率。
本發(fā)明基于中文文本的原子序列分別進(jìn)行詞典詞切分和特定詞識(shí)別,根據(jù)各自的獨(dú)立分詞結(jié)果生成一條最優(yōu)分詞路徑,最終按照該最優(yōu)分詞路徑輸出綜合分詞結(jié)果,從而提高了中文分詞的準(zhǔn)確性。另外,在特定詞識(shí)別中,根據(jù)具體情況有選擇地啟動(dòng)對各類特定詞的識(shí)別,提高了中文分詞的效率。
圖1是本發(fā)明的中文分詞系統(tǒng)結(jié)構(gòu)圖;圖2是圖1所示系統(tǒng)在一個(gè)實(shí)施例中特定詞識(shí)別單元的內(nèi)部結(jié)構(gòu)圖;圖3是圖1所示系統(tǒng)在另一實(shí)施例中特定詞識(shí)別單元的內(nèi)部結(jié)構(gòu)圖;圖4是本發(fā)明的中文分詞方法流程圖;圖5是本發(fā)明一個(gè)實(shí)施例中的中文分詞方法流程圖;圖6是本發(fā)明的一個(gè)實(shí)施例中進(jìn)行原子切分后的切分詞圖的示意圖;圖7是本發(fā)明的一個(gè)實(shí)施例中進(jìn)行特定詞識(shí)別后的切分詞圖的示意圖。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明通過將輸入的中文文本進(jìn)行原子切分,并基于原子序列分別進(jìn)行詞典詞切分和特定詞識(shí)別,將各自的獨(dú)立分詞結(jié)果添加到切分詞圖中,再根據(jù)切分詞圖中的各獨(dú)立分詞結(jié)果生成一條最優(yōu)分詞路徑,最終按照該最優(yōu)分詞路徑輸出綜合分詞結(jié)果。由于本發(fā)明的技術(shù)方案對各個(gè)階段的處理進(jìn)行了綜合考慮,避免了順序執(zhí)行時(shí)的錯(cuò)誤傳導(dǎo),從而提高了中文分詞的準(zhǔn)確性。
圖1示出了本發(fā)明的中文分詞系統(tǒng)的結(jié)構(gòu),該系統(tǒng)可應(yīng)用于多種終端設(shè)備中,例如個(gè)人計(jì)算機(jī)(Personal Computer,PC)、個(gè)人數(shù)字助理(Personal DigitalAssistant,PDA)、移動(dòng)電話(Mobile Phone,MP)等,因此本發(fā)明的中文分詞系統(tǒng)不應(yīng)限定應(yīng)用于某種特定類型的終端設(shè)備。
該中文分詞系統(tǒng)包括輸入輸出單元100、原子切分單元200、詞典詞切分單元300、特定詞識(shí)別單元400、切分詞圖單元500和分詞路徑生成單元600,各個(gè)功能單元之間進(jìn)行信息交互。應(yīng)當(dāng)說明的是,本發(fā)明所有圖示中各設(shè)備之間的連接關(guān)系是為了清楚闡釋其信息交互及控制過程的需要,因此應(yīng)當(dāng)視為邏輯上的連接關(guān)系,而不應(yīng)僅限于物理連接。其中(1)輸入輸出單元100主要執(zhí)行以下功能輸入原始的中文文本,并輸出最終的分詞結(jié)果。
(2)原子切分單元200與輸入輸出單元100相連,且與詞典詞切分單元300、特定詞識(shí)別單元400及切分詞圖單元500分別相連,用于對輸入輸出單元100所輸入的原始的中文文本進(jìn)行原子切分,得到原子序列,并根據(jù)原子序列建立初始的切分詞圖,保存到切分詞圖單元500中。關(guān)于本發(fā)明中所稱的原子,作出如下說明每個(gè)中文句子(包括詞語、短語、完整的語句等)均包含多個(gè)結(jié)點(diǎn),每兩個(gè)結(jié)點(diǎn)之間的字符串即為一個(gè)原子。例如,若輸入的原始的中文文本為“他是一名教師?!?,那么該文本包含8個(gè)結(jié)點(diǎn)(用符號(hào)“●”表示)、7個(gè)原子,那么原子切分后的結(jié)果即為“●他●是●一●名●教●師●。●”,也就是切分詞圖單元500中建立的初始切分詞圖。
該切分詞圖中,每兩個(gè)結(jié)點(diǎn)之間存在一條詞弧(如圖6所示),每條詞弧均帶有概率信息。對于詞典詞,其概率信息是指詞典所收錄詞匯具有的成詞概率;對于特定詞,其概率信息指的是隱馬爾可夫模型(Hidden Markov Model,HMM)中的初始概率、發(fā)射概率和轉(zhuǎn)移概率信息。
(3)詞典詞切分單元300與原子切分單元200及切分詞圖單元500相連,其存儲(chǔ)有詞典(收錄有大量常用詞匯),從而基于原子切分單元200進(jìn)行原子切分后所得的原子序列進(jìn)行詞典詞切分,識(shí)別出所有在詞典中收錄的詞,并添加到切分詞圖中。
在一個(gè)示例方案中,詞典詞切分單元300采取正向最大匹配算法進(jìn)行詞典詞切分。具體過程包括首先設(shè)定一個(gè)查找詞的最大長度N(如10個(gè)漢字),然后從句首開始向后掃描,與詞典中收錄的詞匯進(jìn)行對比,從而查找到一個(gè)長度最長的詞;然后從該詞之后一個(gè)字繼續(xù)查找,重復(fù)以上過程直到句尾。例如,句子“王芳是研究生物的?!钡恼蜃畲笃ヅ浞衷~結(jié)果為“王/芳/是/研究生/物/的/?!?4)特定詞識(shí)別單元400與原子切分單元200及切分詞圖單元500相連,用于識(shí)別出各種特定詞,包括時(shí)間詞、數(shù)詞、人名、地名等。其內(nèi)部相應(yīng)的存有多個(gè)特定詞表,從而與原子序列進(jìn)行對比,識(shí)別出上述的各類特定詞。
在一個(gè)示例方案中,如圖2所示,該特定詞識(shí)別單元400進(jìn)一步包括時(shí)間數(shù)詞識(shí)別模塊401、人名識(shí)別模塊402、地名識(shí)別模塊403。其中(1)時(shí)間數(shù)詞識(shí)別模塊401內(nèi)部存有一個(gè)時(shí)間數(shù)詞表,與原子序列中的時(shí)間詞及數(shù)詞進(jìn)行對比;(2)人名識(shí)別模塊402存有一個(gè)人名姓氏表,和一個(gè)漢字角色概率表(代表漢字作為詞典中未登錄詞的每個(gè)部分的概率),以“王芳是研究生物的”這個(gè)中文文本為例從句首開始向后掃描,當(dāng)遇到“王”字,通過查看人名姓氏表,發(fā)現(xiàn)這是一個(gè)姓氏,則查看“王”字后面兩個(gè)字,若每個(gè)字作為人名的概率都大于一個(gè)閾值,則認(rèn)為這是一個(gè)人名,該例中“芳”字作為人名的概率大于閾值,而“是”作為人名的概率低于閾值,則識(shí)別出“王芳”為一個(gè)人名(3)地名識(shí)別模塊403與人名識(shí)別模塊402類似,其存有一個(gè)地名后綴表和一個(gè)漢字角色概率表,以同樣的方式識(shí)別出地名。當(dāng)然,本發(fā)明還可對其他種類的特定詞進(jìn)行識(shí)別,因此特定詞識(shí)別單元400并不限于包括以上的幾個(gè)模塊。
在另一示例方案中,如圖3所示,該特定詞識(shí)別單元400除包括時(shí)間數(shù)詞識(shí)別模塊401、人名識(shí)別模塊402、地名識(shí)別模塊403,還包括一個(gè)啟動(dòng)配置模塊404,與前述的三個(gè)模塊分別相連,用于根據(jù)具體情況,對時(shí)間數(shù)詞識(shí)別模塊401、人名識(shí)別模塊402、地名識(shí)別模塊403進(jìn)行有選擇的啟動(dòng)。因?yàn)樵趯?shí)際情況中,不一定要進(jìn)行所有種類的特定詞識(shí)別,若進(jìn)行有選擇的識(shí)別則可提高中文分詞效率。在該示例方案的一個(gè)實(shí)施例中,其具體實(shí)現(xiàn)過程是首先設(shè)置一個(gè)用于初始化階段運(yùn)行的的配置文件<?xml version=″1.0″e(cuò)ncoding=″GB2312″?>
<TseSegment>
<!--是否進(jìn)行時(shí)間數(shù)詞識(shí)別,1為是,0為否-->
<NumTime>1</NumTime>
<!--是否進(jìn)行人名識(shí)別,1為是,0為否-->
<Person>1</Person>
<!--是否進(jìn)行地名識(shí)別,1為是,0為否-->
<Location>1</Location>
</TseSegment>
該段配置文件中具有三個(gè)配置項(xiàng)NumTime、Person、Location,分別代表時(shí)間數(shù)詞、人名和地名,可各自增加一個(gè)全局變量來指示是否需要某個(gè)模塊,如下//配置開關(guān)boolg_bIsNumTime;boolg_bIsPerson;boolg_bIsLocation。
從而在程序初始化時(shí)對這幾個(gè)變量進(jìn)行賦值,然后在分詞過程中分別對這幾個(gè)變量的值進(jìn)行判斷如果值為1,則進(jìn)行相應(yīng)模塊的操作,否則就忽略此模塊。
本發(fā)明中,詞典詞切分單元300和特定詞識(shí)別單元400所執(zhí)行的操作是相互獨(dú)立的,沒有先后順序,可以并行處理,得到各自的獨(dú)立分詞結(jié)果,并送入切分詞圖單元500中。
(5)切分詞圖單元500與原子切分單元200、詞典詞切分單元300及特定詞識(shí)別單元400分別相連,用于將原子切分單元200、詞典詞切分單元300及特定詞識(shí)別單元400的獨(dú)立分詞結(jié)果分別保存在切分詞圖中。
(6)分詞路徑生成單元600與切分詞圖單元500相連,用于根據(jù)切分詞圖中的各獨(dú)立分詞結(jié)果生成一條最優(yōu)分詞路徑,并按照最優(yōu)分詞路徑輸出綜合分詞結(jié)果。
在一個(gè)示例方案中,最優(yōu)分詞路徑是指詞弧概率乘積最大的分詞路徑。如圖7所示,生成最優(yōu)分詞路徑的過程詳述如下圖7的切分詞圖中共有7個(gè)結(jié)點(diǎn),序號(hào)設(shè)為0到6。從左到右掃描所有結(jié)點(diǎn),設(shè)當(dāng)前結(jié)點(diǎn)的概率值為m,前向結(jié)點(diǎn)的最大概率值為a,前向結(jié)點(diǎn)和當(dāng)前結(jié)點(diǎn)組成的弧的概率值為b,那么當(dāng)前結(jié)點(diǎn)的概率值m=a*b;比較這些計(jì)算出來的概率,保留一個(gè)最大的概率和對應(yīng)的前向結(jié)點(diǎn)。循環(huán)上述過程,一直到處理完最后一個(gè)結(jié)點(diǎn)時(shí),每一個(gè)結(jié)點(diǎn)都保存了其前向結(jié)點(diǎn)的信息,這樣從最后一個(gè)結(jié)點(diǎn)往前回溯,就可以生成一個(gè)最優(yōu)的分詞路徑。例如,若當(dāng)前處理到了結(jié)點(diǎn)5,其前向結(jié)點(diǎn)有結(jié)點(diǎn)2和結(jié)點(diǎn)4,因此從結(jié)點(diǎn)0到結(jié)點(diǎn)5有兩條分詞路徑(1)“結(jié)點(diǎn)0-結(jié)點(diǎn)2-結(jié)點(diǎn)5”,其中結(jié)點(diǎn)2到結(jié)點(diǎn)5的弧代表詞“張會(huì)鵬”;(2)“結(jié)點(diǎn)0-結(jié)點(diǎn)4-結(jié)點(diǎn)5”,結(jié)點(diǎn)4到結(jié)點(diǎn)5的弧是“鵬”。根據(jù)各個(gè)詞的概率以及詞弧概率,可計(jì)算得知,結(jié)點(diǎn)0到結(jié)點(diǎn)2的最大概率乘以“張會(huì)鵬”的概率要大于結(jié)點(diǎn)0到結(jié)點(diǎn)4的概率乘以“鵬”的概率。于是結(jié)點(diǎn)0到結(jié)點(diǎn)5的最大概率分詞路徑中,結(jié)點(diǎn)5的前向結(jié)點(diǎn)應(yīng)該為2。
圖4示出了本發(fā)明的中文分詞方法流程,該方法流程基于圖1、圖2、圖3所示的系統(tǒng)結(jié)構(gòu),具體過程如下在執(zhí)行本發(fā)明的所有步驟之前,詞典詞切分單元300中存有詞典,收錄有大量常用詞匯。特定詞識(shí)別單元400中存有多個(gè)特定詞表,包括時(shí)間數(shù)詞表、人名姓氏表、地名后綴表和漢字角色概率表等。
在步驟S401中,原子切分單元200對輸入的中文文本進(jìn)行原子切分,得到原子序列,并根據(jù)原子序列建立初始的切分詞圖,保存到切分詞圖單元500中。關(guān)于本發(fā)明中所稱的原子,作出如下說明每個(gè)中文句子(包括詞語、短語、完整的語句等)均包含多個(gè)結(jié)點(diǎn),每兩個(gè)結(jié)點(diǎn)之間的字符串即為一個(gè)原子。例如,若輸入的原始的中文文本為“他是一名教師。”,那么該文本包含8個(gè)結(jié)點(diǎn)(用符號(hào)“●”表示)、7個(gè)原子,那么原子切分后的結(jié)果即為“●他●是●一●名●教●師●?!瘛?,也就是切分詞圖單元500中建立的初始切分詞圖。
該切分詞圖中,每兩個(gè)結(jié)點(diǎn)之間存在一條詞弧(如圖6所示),每條詞弧均帶有概率信息。對于詞典詞,其概率信息即詞典中帶有的詞的概率信息;對于特定詞,其概率信息指的是隱馬爾可夫模型(Hidden Markov Model,HMM)中的初始概率、發(fā)射概率和轉(zhuǎn)移概率信息。
在步驟S402中,詞典詞切分單元300和特定詞識(shí)別單元400基于原子序列分別進(jìn)行詞典詞切分和特定詞識(shí)別,并將各自的獨(dú)立分詞結(jié)果添加到所述切分詞圖中。應(yīng)當(dāng)說明的是,在本發(fā)明中,詞典詞切分單元300和特定詞識(shí)別單元400所執(zhí)行的操作是相互獨(dú)立的,沒有先后順序,可以并行處理,得到各自的獨(dú)立分詞結(jié)果,并送入切分詞圖單元500中。
詞典詞切分單元300存儲(chǔ)有收錄了大量常用詞匯的詞典,從而可基于原子序列進(jìn)行詞典詞切分,識(shí)別出所有在詞典中收錄的詞,并添加到切分詞圖中。
特定詞識(shí)別單元400內(nèi)部存有多個(gè)特定詞表,從而與原子序列進(jìn)行對比,識(shí)別出時(shí)間詞、數(shù)詞、人名、地名等各類特定詞。
在步驟S403中,根據(jù)所述切分詞圖中的各獨(dú)立分詞結(jié)果生成一條最優(yōu)分詞路徑,并按照所述最優(yōu)分詞路徑輸出綜合分詞結(jié)果。
在上述步驟的一個(gè)示例方案中,分詞路徑生成單元600用于根據(jù)各獨(dú)立分詞結(jié)果的概率信息,計(jì)算切分詞圖中每個(gè)結(jié)點(diǎn)的詞弧概率,并將詞弧概率乘積最大的分詞路徑作為最優(yōu)分詞路徑。本發(fā)明中所稱的獨(dú)立分詞結(jié)果的概率信息,包括詞典詞的概率信息及特定詞的概率信息,其中,詞典詞的概率信息是指詞典所收錄詞匯具有的成詞概率,特定詞的概率信息是指隱馬爾可夫模型中的初始概率、發(fā)射概率和轉(zhuǎn)移概率。在上述示例方案的一個(gè)實(shí)施例中,如圖7所示,切分詞圖中共有7個(gè)結(jié)點(diǎn),序號(hào)設(shè)為0到6。從左到右掃描所有結(jié)點(diǎn),設(shè)當(dāng)前結(jié)點(diǎn)的概率值為m,前向結(jié)點(diǎn)的最大概率值為a,前向結(jié)點(diǎn)和當(dāng)前結(jié)點(diǎn)組成的弧的概率值為b,那么當(dāng)前結(jié)點(diǎn)的概率值m=a*b;比較這些計(jì)算出來的概率,保留一個(gè)最大的概率和對應(yīng)的前向結(jié)點(diǎn)。循環(huán)上述過程,一直到處理完最后一個(gè)結(jié)點(diǎn)時(shí),每一個(gè)結(jié)點(diǎn)都保存了其前向結(jié)點(diǎn)的信息,這樣從最后一個(gè)結(jié)點(diǎn)往前回溯,就可以生成一個(gè)最優(yōu)的分詞路徑。
圖5示出了本發(fā)明的一個(gè)實(shí)施例的中文分詞方法流程,該方法流程基于1、圖2、圖3所示的系統(tǒng)結(jié)構(gòu),具體過程如下在執(zhí)行本發(fā)明的所有步驟之前,詞典詞切分單元300中存有詞典,收錄有大量常用詞匯。特定詞識(shí)別單元400中存有多個(gè)特定詞表,包括時(shí)間數(shù)詞表、人名姓氏表、地名后綴表和漢字角色概率表等。
在步驟S501中,利用輸入輸出單元100輸入原始的中文文本。
在步驟S502中,利用原子切分單元200對輸入的中文文本進(jìn)行原子切分,得到原子序列,并根據(jù)原子序列建立初始的切分詞圖,保存到切分詞圖單元500中。關(guān)于本發(fā)明中所稱的原子,作出如下說明每個(gè)中文句子(包括詞語、短語、完整的語句等)均包含多個(gè)結(jié)點(diǎn),每兩個(gè)結(jié)點(diǎn)之間的字符串即為一個(gè)原子。例如,若輸入的原始的中文文本為“他是一名教師。”,那么該文本包含8個(gè)結(jié)點(diǎn)(用符號(hào)“●”表示)、7個(gè)原子,那么原子切分后的結(jié)果即為“●他●是●一●名●教●師●?!瘛?,也就是切分詞圖單元500中建立的初始切分詞圖。
該切分詞圖中,每兩個(gè)結(jié)點(diǎn)之間存在一條詞弧(如圖6所示),每條詞弧均帶有概率信息。對于詞典詞,其概率信息即詞典中帶有的詞的概率信息;對于特定詞,其概率信息指的是隱馬爾可夫模型(Hidden Markov Model,HMM)中的初始概率、發(fā)射概率和轉(zhuǎn)移概率信息。
在步驟S503中,詞典詞切分單元300基于原子序列識(shí)別出文本中的詞典詞,并添加到切分詞圖中。由于詞典詞切分單元300存儲(chǔ)有收錄了大量常用詞匯的詞典,從而可基于原子序列進(jìn)行詞典詞切分,識(shí)別出所有在詞典中收錄的詞,并添加到切分詞圖中。其具體實(shí)現(xiàn)過程與現(xiàn)有技術(shù)相似。
在一個(gè)示例方案中,詞典詞切分單元300采取正向最大匹配算法進(jìn)行詞典詞切分。本發(fā)明所稱的正向最大匹配算法的具體過程包括首先設(shè)定一個(gè)查找詞的最大長度N(如10個(gè)漢字),然后從句首開始向后掃描,與詞典中收錄的詞匯進(jìn)行對比,從而查找到一個(gè)長度最長的詞;然后從該詞之后一個(gè)字繼續(xù)查找,重復(fù)以上過程直到句尾。例如,句子“王芳是研究生物的?!钡恼蜃畲笃ヅ浞衷~結(jié)果為“王/芳/是/研究生/物/的/?!痹诓襟ES504中,特定詞識(shí)別單元400基于原子序列識(shí)別出文本中的特定詞,并添加到切分詞圖中。由于特定詞識(shí)別單元400內(nèi)部存有多個(gè)特定詞表,從而與原子序列進(jìn)行對比,識(shí)別出時(shí)間詞、數(shù)詞、人名、地名等各類特定詞。
在一個(gè)示例方案中,上述步驟基于圖2所示的特定詞識(shí)別單元400,該特定詞識(shí)別單元400包括時(shí)間數(shù)詞識(shí)別模塊401、人名識(shí)別模塊402、地名識(shí)別模塊403。其中(1)時(shí)間數(shù)詞識(shí)別模塊401內(nèi)部存有一個(gè)時(shí)間數(shù)詞表,與原子序列中的時(shí)間詞及數(shù)詞進(jìn)行對比;(2)人名識(shí)別模塊402存有一個(gè)人名姓氏表,和一個(gè)漢字角色概率表(代表漢字作為詞典中未登錄詞的每個(gè)部分的概率),以“王芳是研究生物的”這個(gè)中文文本為例從句首開始向后掃描,當(dāng)遇到“王”字,通過查看人名姓氏表,發(fā)現(xiàn)這是一個(gè)姓氏,則查看“王”字后面兩個(gè)字,若每個(gè)字作為人名的概率都大于一個(gè)閾值,則認(rèn)為這是一個(gè)人名,該例中“芳”字作為人名的概率大于閾值,而“是”作為人名的概率低于閾值,則識(shí)別出“王芳”為一個(gè)人名(3)地名識(shí)別模塊403與人名識(shí)別模塊402類似,其存有一個(gè)地名后綴表和一個(gè)漢字角色概率表,以同樣的方式識(shí)別出地名。當(dāng)然,本發(fā)明還可對其他種類的特定詞進(jìn)行識(shí)別,因此特定詞識(shí)別單元400并不限于包括以上的幾個(gè)模塊。
在另一示例方案中,上述步驟基于圖3所示的特定詞識(shí)別單元400,該特定詞識(shí)別單元400除包括時(shí)間數(shù)詞識(shí)別模塊401、人名識(shí)別模塊402、地名識(shí)別模塊403,還包括一個(gè)啟動(dòng)配置模塊404,與前述的三個(gè)模塊分別相連,用于根據(jù)具體情況,對時(shí)間數(shù)詞識(shí)別模塊401、人名識(shí)別模塊402、地名識(shí)別模塊403進(jìn)行有選擇的啟動(dòng)。因?yàn)樵趯?shí)際情況中,不一定要進(jìn)行所有種類的特定詞識(shí)別,若進(jìn)行有選擇的識(shí)別則可提高中文分詞效率。在該示例方案的一個(gè)實(shí)施例中,其具體實(shí)現(xiàn)過程是首先設(shè)置一個(gè)用于初始化階段運(yùn)行的的配置文件<?xml version=″1.0″e(cuò)ncoding=″GB2312″?>
<TseSegment>
<!--是否進(jìn)行時(shí)間數(shù)詞識(shí)別,1為是,0為否-->
<NumTime>1</NumTime>
<!--是否進(jìn)行人名識(shí)別,1為是,0為否-->
<Person>1</Person>
<!--是否進(jìn)行地名識(shí)別,1為是,0為否-->
<Location>1</Location>
</TseSegment>
該段配置文件中具有三個(gè)配置項(xiàng)NumTime、Person、Location,分別代表時(shí)間數(shù)詞、人名和地名,可各自增加一個(gè)全局變量來指示是否需要某個(gè)模塊,如下//配置開關(guān)boolg_bIsNumTime;boolg_bIsPerson;boolg_bIsLocation。
從而在程序初始化時(shí)對這幾個(gè)變量進(jìn)行賦值,然后在分詞過程中分別對這幾個(gè)變量的值進(jìn)行判斷如果值為1,則進(jìn)行相應(yīng)模塊的操作,否則就忽略此模塊。
在步驟S505中,分詞路徑生成單元600根據(jù)切分詞圖生成一條最優(yōu)的分詞路徑。
在上述步驟的一個(gè)示例方案中,分詞路徑生成單元600用于根據(jù)各獨(dú)立分詞結(jié)果的概率信息,計(jì)算切分詞圖中每個(gè)結(jié)點(diǎn)的詞弧概率,并將詞弧概率乘積最大的分詞路徑作為最優(yōu)分詞路徑。本發(fā)明中所稱的獨(dú)立分詞結(jié)果的概率信息,包括詞典詞的概率信息及特定詞的概率信息,其中,詞典詞的概率信息是指詞典所收錄詞匯具有的成詞概率,特定詞的概率信息是指隱馬爾可夫模型中的初始概率、發(fā)射概率和轉(zhuǎn)移概率。在上述示例方案的一個(gè)實(shí)施例中,如圖7所示,切分詞圖中共有7個(gè)結(jié)點(diǎn),序號(hào)設(shè)為0到6。從左到右掃描所有結(jié)點(diǎn),設(shè)當(dāng)前結(jié)點(diǎn)的概率值為m,前向結(jié)點(diǎn)的最大概率值為a,前向結(jié)點(diǎn)和當(dāng)前結(jié)點(diǎn)組成的弧的概率值為b,那么當(dāng)前結(jié)點(diǎn)的概率值m=a*b;比較這些計(jì)算出來的概率,保留一個(gè)最大的概率和對應(yīng)的前向結(jié)點(diǎn)。循環(huán)上述過程,一直到處理完最后一個(gè)結(jié)點(diǎn)時(shí),每一個(gè)結(jié)點(diǎn)都保存了其前向結(jié)點(diǎn)的信息,這樣從最后一個(gè)結(jié)點(diǎn)往前回溯,就可以生成一個(gè)最優(yōu)的分詞路徑。
在步驟S506中,輸入輸出單元100按照最優(yōu)的分詞路徑輸出分詞結(jié)果,在前述的實(shí)施例中,若最初輸入的原始中文文本為“我是張會(huì)鵬?!?,那么按照圖7中最優(yōu)的分詞路徑輸出的分詞結(jié)果為“我/是/張會(huì)鵬。”。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種中文分詞系統(tǒng),包括輸入輸出單元、原子切分單元、詞典詞切分單元和特定詞識(shí)別單元,其特征在于,所述系統(tǒng)還包括一個(gè)切分詞圖單元和一個(gè)分詞路徑生成單元;所述切分詞圖單元與原子切分單元、詞典詞切分單元及特定詞識(shí)別單元相連,用于將原子切分單元、詞典詞切分單元及特定詞識(shí)別單元的獨(dú)立分詞結(jié)果分別保存在切分詞圖中;所述分詞路徑生成單元與切分詞圖單元相連,用于根據(jù)切分詞圖中的各獨(dú)立分詞結(jié)果生成一條最優(yōu)分詞路徑,并按照所述最優(yōu)分詞路徑輸出綜合分詞結(jié)果。
2.根據(jù)權(quán)利要求1所述的中文分詞系統(tǒng),其特征在于,所述特定詞識(shí)別單元包括時(shí)間數(shù)詞識(shí)別模塊、人名識(shí)別模塊、地名識(shí)別模塊;所述時(shí)間數(shù)詞識(shí)別模塊存有一個(gè)時(shí)間數(shù)詞表,用于識(shí)別時(shí)間詞和數(shù)詞,并將所述時(shí)間詞和數(shù)詞保存到切分詞圖中;所述人名識(shí)別模塊存有一個(gè)人名姓氏表,用于識(shí)別人名,并將所述人名保存到切分詞圖中;所述地名識(shí)別模塊存有一個(gè)地名后綴表,用于識(shí)別地名,并將所述地名保存到切分詞圖中。
3.根據(jù)權(quán)利要求2所述的中文分詞系統(tǒng),其特征在于,所述特定詞識(shí)別單元進(jìn)一步包括一個(gè)與所述時(shí)間數(shù)詞識(shí)別模塊、人名識(shí)別模塊、地名識(shí)別模塊分別相連的啟動(dòng)配置模塊;所述啟動(dòng)配置模塊用于對所述時(shí)間數(shù)詞識(shí)別模塊、人名識(shí)別模塊、地名識(shí)別模塊進(jìn)行有選擇的啟動(dòng)。
4.根據(jù)權(quán)利要求1所述的中文分詞系統(tǒng),其特征在于,所述分詞路徑生成單元進(jìn)一步用于根據(jù)所述各獨(dú)立分詞結(jié)果的概率信息,計(jì)算所述切分詞圖中每個(gè)結(jié)點(diǎn)的詞弧概率,并將詞弧概率乘積最大的分詞路徑作為最優(yōu)分詞路徑。
5.一種基于如權(quán)利要求1所述中文分詞系統(tǒng)的中文分詞方法,其特征在于,所述方法包括以下步驟A.對輸入的中文文本進(jìn)行原子切分,并根據(jù)所得的原子序列建立初始的切分詞圖;B.基于原子序列分別進(jìn)行詞典詞切分和特定詞識(shí)別,并將各自的獨(dú)立分詞結(jié)果添加到所述切分詞圖中;C.根據(jù)所述切分詞圖中的各獨(dú)立分詞結(jié)果生成一條最優(yōu)分詞路徑,并按照所述最優(yōu)分詞路徑輸出綜合分詞結(jié)果。
6.根據(jù)權(quán)利要求5所述的中文分詞方法,其特征在于,所述步驟A之前還包括在所述中文分詞系統(tǒng)中存入詞典及特定詞表;所述詞典收錄常用詞匯;所述特定詞表包括時(shí)間數(shù)詞表、人名姓氏表、地名后綴表。
7.根據(jù)權(quán)利要求6所述的中文分詞方法,其特征在于,所述步驟B中進(jìn)行詞典詞切分的步驟包括,采取正向最大匹配算法將所述原子序列與詞典中收錄的詞匯進(jìn)行對比,將所匹配的詞匯確定為詞典詞。
8.根據(jù)權(quán)利要求6所述的中文分詞方法,其特征在于,所述步驟B中的特定詞識(shí)別包括執(zhí)行以下三類操作中的至少一者利用所述時(shí)間數(shù)詞表識(shí)別時(shí)間詞和數(shù)詞;利用所述人名姓氏表識(shí)別人名;利用所述地名后綴表識(shí)別地名。
9.根據(jù)權(quán)利要求5至8中任一權(quán)利要求所述的中文分詞方法,其特征在于,所述步驟C進(jìn)一步包括根據(jù)所述各獨(dú)立分詞結(jié)果的概率信息,計(jì)算所述切分詞圖中每個(gè)結(jié)點(diǎn)的詞弧概率,并將詞弧概率乘積最大的分詞路徑作為最優(yōu)分詞路徑。
10.根據(jù)權(quán)利要求9所述的中文分詞方法,其特征在于,所述獨(dú)立分詞結(jié)果的概率信息包括詞典詞的概率信息及特定詞的概率信息;所述詞典詞的概率信息是指詞典所收錄詞匯具有的成詞概率;所述特定詞的概率信息是指隱馬爾可夫模型中的初始概率、發(fā)射概率和轉(zhuǎn)移概率。
全文摘要
本發(fā)明涉及中文信息處理領(lǐng)域,提供了一種中文分詞方法及系統(tǒng)。所述方法包括以下步驟A.對輸入的中文文本進(jìn)行原子切分,并根據(jù)所得的原子序列建立初始的切分詞圖;B.基于原子序列分別進(jìn)行詞典詞切分和特定詞識(shí)別,并將各自的獨(dú)立分詞結(jié)果添加到所述切分詞圖中;C.根據(jù)所述切分詞圖中的各獨(dú)立分詞結(jié)果生成一條最優(yōu)分詞路徑,并按照所述最優(yōu)分詞路徑輸出綜合分詞結(jié)果。本發(fā)明基于中文文本的原子序列分別進(jìn)行詞典詞切分和特定詞識(shí)別,根據(jù)各自的獨(dú)立分詞結(jié)果生成一條最優(yōu)分詞路徑,最終按照該最優(yōu)分詞路徑輸出綜合分詞結(jié)果,從而提高了中文分詞的準(zhǔn)確性。另外,在特定詞識(shí)別中,根據(jù)具體情況有選擇地啟動(dòng)對各類特定詞的識(shí)別,提高了中文分詞的效率。
文檔編號(hào)G06F17/27GK101082908SQ20071007613
公開日2007年12月5日 申請日期2007年6月26日 優(yōu)先權(quán)日2007年6月26日
發(fā)明者張會(huì)鵬 申請人:騰訊科技(深圳)有限公司