專利名稱:正文的自動分割的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種可將連貫的正文分割成單詞的方法,該方法包括如下步驟讀入一個代表連貫正文的輸入字符串;通過將輸入字符串與一詞典中的單詞進(jìn)行比較,識別所述輸入字符串中孤立單詞的至少一個序列;并輸出至少一個所述已識別的單詞序列。
本發(fā)明還涉及一種可將連貫的正文分割成單詞的系統(tǒng),該系統(tǒng)包括讀入一個代表連貫正文的輸入字符串的裝置;通過將輸入字符串與一詞典中的單詞進(jìn)行比較,識別所述輸入字符串中孤立單詞的至少一個序列的裝置;輸出至少一個所述已識別的單詞序列的裝置。
日益高級的自然語言處理技術(shù)被用于數(shù)據(jù)處理系統(tǒng)中,例如語音處理系統(tǒng)、手寫/光學(xué)字符識別系統(tǒng)、自動翻譯系統(tǒng)或在單詞處理系統(tǒng)中用于拼寫/語法校驗。這樣的系統(tǒng)經(jīng)常使用涉及單個單詞或單詞序列的統(tǒng)計信息。統(tǒng)計信息是通過分析大型正文全集來獲得的。為了分析,單個單詞需要在正文中被識別。在許多語言中,包括西方語言,單詞是通過使用分界標(biāo)志來分割的,例如一個空格或其他標(biāo)點符號,使得識別工作變得容易。可是,許多其他的語言在單詞與單詞之間沒有分界標(biāo)志。此類語言的例子是許多亞洲語言,例如中文、日文、以及韓國語(Hangul)。這些語言有時稱為膠合性語言。代表性地,這些語言是使用特殊的字符(象形文字)書寫的,每一個這種字符都代表了單個或多個音節(jié)并且通常還代表一個概念或有意義的單元。一個詞由一個或多個這種字符組成。讀者在閱讀此類語言的正文時必須識別這些單詞的分界以了解正文的意義。在許多應(yīng)用中只需用識別一個序列的單詞。
從US5,448,474中我們了解了一種從連貫正文中隔離出中文單詞的方法和系統(tǒng)。在此系統(tǒng)中,執(zhí)行一個查找詞典處理,將正文中所有子字符串單元進(jìn)行識別。對于正文中的每一個字符,都對詞典中的每一個單詞進(jìn)行查看,是否該單詞與從那個位置的正文開始相匹配。例如,對于正文“software”,在位置0(正文中的第一個字符)找到單詞“so”,“soft”以及“software”的一個匹配;在位置1找到單詞“of”和“oft”的匹配;在位置4找到“war”和“ware”的匹配;在位置5找到“a”和“are”的匹配;還有在位置6找到“re”的匹配。對于每一個匹配都在一張表中建立一個入口。所述入口包括匹配單詞、該匹配在正文中起始的位置以及該單詞的長度。如果在某一位置沒有找到可匹配的單詞,就在表中構(gòu)造一個只包含此單個字符的入口。用這種方法所有可能的單詞和無匹配的字符就都被添加到表中了。然后,根據(jù)規(guī)則,例如一個單詞的開始必須鄰接前面一個單詞末尾且該單詞的末尾必須鄰接于下一個單詞的開始,減少表中入口的數(shù)量。由于在這一過程中重疊詞(不相鄰單詞)將被除去,所以正文的各部分就不能被已識別的單詞覆蓋。根據(jù)保持最長匹配重疊詞的規(guī)則,執(zhí)行一個獨立的恢復(fù)處理用來糾正那些對于重疊詞的不正確刪除。最后,再把那些不與正文的頭尾相鄰接或不與另一個必留單詞相鄰的單詞都除去。最終的結(jié)果將包含幾個可能的單詞序列。根據(jù)單詞在常規(guī)正文中的出現(xiàn)頻率的信息來選擇其中的一個序列。例如,一個具有兩個字符的中文單詞的序列可在擁有由兩個單字符單詞所表示的兩個字符序列之上被選擇,因為雙字符單詞比單字符單詞更普遍。
已知的分離程序是復(fù)雜的并且還需要一個恢復(fù)處理來糾正刪除錯誤。
本發(fā)明的目的是要提供更有效的方法和系統(tǒng)。
為了滿足本發(fā)明的這個目的,該方法的特征在于,識別至少一個單詞序列的步驟包括采取迭代方式在輸入字符串中建立一個表示單詞序列的樹形結(jié)構(gòu),迭代方式的實現(xiàn)是通過取輸入字符串當(dāng)作工作串;對于詞典中的每一個單詞比較單詞與工作串的開頭;并且如果單詞與工作串的開頭相匹配則在樹中建立一個表示該單詞的節(jié)點;將該節(jié)點與在該單詞結(jié)束位置直接鄰接的位置開始的那部分輸入串連接;并且構(gòu)造一棵子樹,連接于該節(jié)點,表示在這部分輸入串中的單詞序列,而該部分輸入串通過將上述連接部分作為工作串來與所述節(jié)點連接。
通過建立樹形結(jié)構(gòu),自動地分析輸入串將導(dǎo)致只有那些與前面的單詞相鄰的單詞才可被識別。所有被識別的單詞序列中,最后一個單詞在輸入串末尾處結(jié)束的情況在原則上是可能的。這樣,那些不可能的單詞(從前面的單詞來看)就不被當(dāng)作候選者了。這減少了要被處理的數(shù)據(jù)的數(shù)量。而且,也不需要復(fù)雜的刪除單詞和再引入重疊的程序。根據(jù)本發(fā)明對取樣串“software”的分割產(chǎn)生一個有兩個主分支的邏輯樹形結(jié)構(gòu),一個分支由單個節(jié)點表示單詞“software”,另一個分支由兩個鏈接的節(jié)點分別表示單詞“soft”和“ware”。從而只需要三個入口而不是先有技術(shù)系統(tǒng)中的10個。
根據(jù)本發(fā)明的從屬權(quán)利要求2所描述的實施例,如果滿足預(yù)定規(guī)則,多個具有不同長度的新單詞將被添加。通過把不同于單字符單詞的未知單詞序列添加到數(shù)據(jù)結(jié)構(gòu)中,用一種簡單的方法識別多字符新單詞就變得可能了。這使得程序適合如日語等的語言,因為此類語言中許多單個字符并不代表一個單詞。此外,它允許將多字符單詞作為首選新單詞進(jìn)行識別,在這種情況下,單字符單詞不必被添加到詞典中。這樣詞典被單字符單詞“污染”的情況就被避免了。詞典中有許多單字符入口會降低正文正確地分割為單詞的可能性。例如,如果詞典中有單字符“t”,則正文“thisbook”可能被分割為單詞序列“t”、“his”和“book”。
根據(jù)本發(fā)明的從屬權(quán)利要求3所描述的實施例,其規(guī)則是一個全局決策,基于是否可使用現(xiàn)存詞典對一個單詞序列進(jìn)行識別。如果沒有序列可被識別,則添加新單詞。執(zhí)行這個測試可先建立一個只使用現(xiàn)存詞典中的已知單詞的樹形結(jié)構(gòu),然后該樹被建立來檢測是否至少有一個路徑代表匹配整個輸入串的單詞序列。只要遍厲樹的第一條路徑達(dá)到輸入串的末尾,在建立樹形結(jié)構(gòu)過程中設(shè)置參數(shù)(可達(dá)串尾),可使確認(rèn)變得十分簡單。
根據(jù)本發(fā)明的從屬權(quán)利要求4所描述的實施例,當(dāng)路徑相應(yīng)的單詞序列與整個輸入串不匹配時,新單詞被添加到路徑的一個或多個端末節(jié)點。此類節(jié)點的定位可簡單地通過跟隨遍厲樹的路徑和檢驗路徑的端末節(jié)點是否與輸入串的結(jié)尾相符合來完成。(即,單詞匹配及在字符串中的位置。這個過程能以一種簡單的方法核對,通過檢驗是否與端末節(jié)點相接的輸入串部分是空的,表明匹配單詞已沿整個字符串被找到了)。在優(yōu)選的實施例中,是否添加新單詞(如上描述)作為一個全球決策被接受。如果要添加新單詞,則樹形結(jié)構(gòu)要被重建。在重建樹的過程中,被加新詞的節(jié)點處于樹的這些位置,即在詞典中沒有詞與輸入串的剩余部分相匹配(整個串還沒有被處理過)。
根據(jù)本發(fā)明的從屬權(quán)利要求5所描述的實施例,與工作串開始處相匹配的單詞的數(shù)量可被計算出來。如果這個數(shù)字少于一個閾值,則要添加新單詞。添加單詞的數(shù)量取決于查找到的匹配單詞的數(shù)量,如果查找到的匹配極少,那么更適宜添加較多新單詞。這樣,所希望的單詞序列中替換數(shù)目可被建立起來。在從屬權(quán)利要求6中限定的實施例中,作為一個極端,這個閾值可以是一,如果現(xiàn)存詞典中沒有一個單詞與工作串的開始處相匹配,則要添加新單詞。在這種對于樹中的每一個分支決定是否添加(更多)新單詞的意義上來說,權(quán)利要求5和6的實施例更適宜用來取樹中的局部決策。
在取局部決策的另一實施例中,如從屬權(quán)利要求7所限定的那樣,已在路徑中的新單詞的數(shù)量被視為決定新單詞是否需要被添加的量度。在一個“理想的”方案中,如果第一次在一個路徑中需要一個新單詞,而只有一個或少數(shù)新單詞被添加,此時確實所有情況都是可能的(從讀者的觀點來看)。實際上許多候選詞每個都有不同的長度,是需要被測試的。一些錯誤的候選單詞可導(dǎo)致識別剩余的字符串中的單詞時的未對準(zhǔn)現(xiàn)象。如果沒有特定的辦法,這種未對準(zhǔn)將導(dǎo)致添加更多的新單詞(可能被其它新單詞跟隨等等)。例如,通過在路徑中允許兩個或三個新單詞,避免了樹的迅速擴(kuò)展,而這種擴(kuò)展是由錯誤的新單詞所導(dǎo)致了許多序列造成的。
根據(jù)本發(fā)明的從屬權(quán)利要求8所描述的取局部決策的另一實施例中,計算出單詞序列(和遍厲樹的相應(yīng)路徑)的似然性。如果似然性降到太低,則該路徑不再延伸。這樣,可能包含新單詞的那些不切實際的分割將不再進(jìn)一步考慮。較好地,閾值應(yīng)動態(tài)的建立,以保證相關(guān)秩序。如果一個或多個序列已經(jīng)(用計算的似然性)被識別,則只處理那些具有較高似然性的其它序列。優(yōu)選地,一個新單詞具有較低的似然性,這里,似然性可依賴于該新詞的長度。這樣,詞序列的似然性隨該序列中新單詞的數(shù)量而降低,如從屬權(quán)利要求9所限定的。這種方式就可以避免由于錯誤的選擇新單詞(這導(dǎo)致該串的剩余部分也失對準(zhǔn)且要求進(jìn)一步的新單詞)導(dǎo)致因很多新單詞使樹繼續(xù)膨脹。
根據(jù)本發(fā)明的從屬權(quán)利要求10所描述的實施例,新單詞長度被限制到K個字符,K>1。 K最好等于5,保證大多數(shù)單詞,特別是對于主要是短單詞的亞洲語言,不必建立一棵非常大的樹就可被識別。
根據(jù)本發(fā)明的從屬權(quán)利要求11所描述的實施例,如果樹中路徑尾端的最后一個單詞與輸入串的尾端對準(zhǔn),則該樹中的路徑只被認(rèn)為是代表一個有效的分割。它允許通過只從樹中的相關(guān)單詞與輸入串末端對準(zhǔn)的那些端末節(jié)點(葉子)開始回溯而識別有效序列。
根據(jù)本發(fā)明的從屬權(quán)利要求12所描述的實施例,一個統(tǒng)計學(xué)的N形(N-gram)語言模式用來確定通過遍厲樹的最可能的路徑。這樣一個基礎(chǔ)的決策將被接受來從幾個可能的序列中選擇最可能的序列。這個序列的單詞作為分割正文被輸出。特別地,如果該方法用來建立語音識別系統(tǒng)的詞典(詞匯和/或語言模式),最好使用現(xiàn)存默認(rèn)的具有N形語言模式的詞典。如果詞匯量很大(如大于10,000個入口)最好是使用2形或3形語言。
為了滿足本發(fā)明的目的,本系統(tǒng)特征在于,識別至少一個單詞序列的識別裝置被操作用以迭代方法建立樹形結(jié)構(gòu)表示在輸入串中的單詞序列,方法的實現(xiàn)是通過取輸入字符串當(dāng)作工作串;對于詞典中的每一個單詞比較單詞與工作串的開頭;并且如果單詞與工作串的開頭相匹配則在樹中建立一個表示該單詞的節(jié)點;將該節(jié)點與在該單詞結(jié)束位置直接鄰接的位置開始的那部分輸入串連接;并且構(gòu)造一棵子樹,連接于該節(jié)點,表示在這部分輸入串中的單詞序列,而該部分輸入串通過將上述關(guān)聯(lián)部分作為工作串來與所述節(jié)點相關(guān)聯(lián)。
參閱附圖實施例,本發(fā)明的如上和其它方面是顯而易見的。
圖1示出本發(fā)明系統(tǒng)的方框圖。
圖2示出一語音識別系統(tǒng)的方框圖。
圖3示出用于?;~或子詞的Hidden Markov Model.
圖4示出只采用已知單詞和新詞進(jìn)行分割的二步方式流程圖。
圖5示出對已知單詞基于樹的分割的流程圖。以及圖6示出對新單詞的基于樹的分割的流程圖。
為了便于說明,對用拉丁字符表示的正文給出了許多將正文分割成單詞的例子。實際上語言包括使用不同的字符標(biāo),如Katakana(日假名)或Hiragana(平假名)。
圖1展示了本發(fā)明系統(tǒng)100的方塊圖。系統(tǒng)100包含一個輸入裝置110用來接收一代表連貫正文的輸入串。該串可表示一個詞組、一個句子或由若干句子組成的大型正文。在亞洲語言中,如日語或中文,句子由分界符來分割。對于此類語言,大型正文更適宜在句子的基礎(chǔ)上進(jìn)行分割。為此,通過使用句分隔符識別句子,將大型正文首先分割成句子,然后根據(jù)發(fā)明方法對每個句子進(jìn)行分割。代表性地,輸入串將從正文文件中讀入。如果需要,使用內(nèi)置或外置轉(zhuǎn)換器可將文件轉(zhuǎn)換為普通格式,正文也可從一個硬拷貝文檔中被檢索,例如通過掃描文檔并且使用OCR(光學(xué)字符識別)技術(shù)來識別字符串。
該系統(tǒng)還包含識別裝置120用于將輸入串分割為一個或多個單詞序列。代表性地,識別裝置120是以軟件方式在適宜的處理器上如PC或工作站處理器上被執(zhí)行,識別裝置120使用詞典(詞典)122,并可選擇性地使用語言分割模塊124。我們假定詞典122與語言模塊124中的詞匯是基于一種具體語言中的孤立的單詞。此系統(tǒng)可支持不同語言的不同詞匯。詞匯的規(guī)模是隨系統(tǒng)的規(guī)模和復(fù)雜度而變化的。輸出裝置130用來輸出至少一個序列的已識別單詞序列。在許多情況下,它更適于僅僅輸出一個(或少量)單詞序列。我們十分欣賞的是本發(fā)明的方法和系統(tǒng)也可用于應(yīng)用,在其中,期望分析幾個或所有可能的單詞后選,例如用來產(chǎn)生一自動指標(biāo)。
該方法和系統(tǒng)最好被用于圖形識別,如大型詞匯的連續(xù)語音識別或手寫識別系統(tǒng),這里,使用一詞表來識別單詞并且使用一語言模式來改進(jìn)基本識別結(jié)果。因為用于圖形識別的技術(shù)也可被方便地用于本發(fā)明的分割,首先,描述圖形識別系統(tǒng)。圖2示出一個連續(xù)語音識別系統(tǒng)200,其包含一頻普分析子系統(tǒng)210與和一單元匹配子系統(tǒng)220[見L.Rabiner和B-H.Juang,“語音識別基礎(chǔ)”,Prentice Hall1993,第434至454頁]。在頻普分析子系統(tǒng)210中,語音輸入信號(SIS)被頻普地和/或暫時地分解以便計算出有代表性的特征矢量(觀測矢量,OV)。典型地,語音信號被數(shù)字化(例如以6.67kHz的速率取樣)并且被預(yù)處理,例如通過應(yīng)用預(yù)加重(applying pre-emphasis)。連續(xù)的取樣被分組(分塊)為幀,相應(yīng)于如32msec.語音信號。相繼的幀是部分重疊的,如16msec.。經(jīng)常采用LinearPredictive Coding(LPC)頻普分析方法來計算每一幀的代表性特征矢量(觀測矢量)。特征矢量可能,舉例來說,有24、32或63個分量。在單元匹配子系統(tǒng)220中,觀測矢量相對于語音識別單元列表被匹配。一個語音識別單元代表一個聲音參考序列。可采用各種形式的語音識別單元。舉例來說,一個完整的單詞或甚至是一組單詞都可以一個語音識別單元表示。一個單詞模式(WM)對特定詞表中的每個單詞提供在聲音參考序列中的錄音。對于某些系統(tǒng),其中一個完整的單詞由一個語音識別單元所表示,則在單詞模式與語音識別單元之間存在著直接關(guān)聯(lián)。其他系統(tǒng),特別是大型詞匯系統(tǒng),可對語音識別單元采用語言上基于子單詞的單元,如單音、雙音或音節(jié),以及派生出的單元,如fenenes和fenones。對于這些系統(tǒng),由詞典234給出了一描述涉及詞表中的單詞的子單詞單元序列的單詞模式,以及一描述包括語音識別單元的聲音參考序列的子單詞模式232,一個單詞模式合成器236根據(jù)子單詞模式232和詞典234合成單詞模式。圖3A示出一系統(tǒng)的單詞模式300,該系統(tǒng)是基于整個單詞的語音識別單元的,這里所示單詞的語音識別單元采用十個聲音參考序列(301到310)被模仿,圖3B示出基于子單詞單元系統(tǒng)的單詞模式320,這里示出的單詞被三個子單詞模式(350,360和370)的序列模仿,每個單詞都有一個四聲音參考序列(351,352,353,354;361到364;371到374)。圖3中示出的單詞序列是基于Hidden Markov模式的,其被廣泛應(yīng)用于隨機(jī)模仿語音信號和手寫信號。使用這種模式,每個識別單元(單詞模式或子單詞模式)都被HMM典型地表征,它的參數(shù)從訓(xùn)練用數(shù)據(jù)組進(jìn)行評估。對于大型詞匯語音識別系統(tǒng)包含,如10,000到60,000個單詞,通常僅使用有限的一組子系統(tǒng)單元,如40個,因為它需要大量訓(xùn)練用數(shù)據(jù)來充分地為更大單元訓(xùn)練HMM。HMM狀態(tài)對應(yīng)于聲音參考(用于語音識別)或代寫參考(用于手寫識別)。各種技術(shù)都可用于模仿參考,包括不連續(xù)的或連續(xù)的幾率密度。
圖2所示的單詞水平匹配系統(tǒng)230相對于所有語音識別單元序列與觀測矢量匹配并且提供矢量與序列之間的匹配似然性。如果子單詞單元被使用,通過使用詞典234在匹配上放置限制條件來限制可能的子單詞單元序列到詞典234中的序列。這把輸出減小到可能的單詞序列。句子水平匹配系統(tǒng)240的采用一語言模式(LM)把更多的限制條件加到匹配,這樣被查實的路徑是相應(yīng)于語言模式中規(guī)定的那些合適的單詞序列的路徑。這樣,單元匹配子系統(tǒng)220的結(jié)果就是一個已識別的句子(RS)。在圖形識別中的語言模式可包括語言的依照句法的和/或語義的限制條件242以及識別任務(wù)?;诰浞ㄏ拗茥l件的語言模式通常是指語法244。
相似的系統(tǒng)還用于識別手寫。用于手寫識別系統(tǒng)的語言模式除確定單詞序列外或做為替代方案還可確定字符序列。
語言模式所用的語法244提供了單詞序列W=w1w2w3…wq的概率,其在原則上由P(W)=P(w1)P(w2|w1).P(w3|w1w2)…P(wq|w1w2w3…wq-1)給出。由于實際上在給定語言中可靠地對所有單詞和所有序列長度估算條件單詞概率是不實際的,所以廣泛地采用了N形單詞模式。在N形模式中,項P(wj|w1w2w3…wj-1)被P(wj|wj-N+1…wj-1)逼近。實際上,使用二形語言(bigrams)或三形語言(trigrams)。在trigrams中,項P(wj|w1w2w3…wj-1)被P(wj|wj-2wj-1)逼近。自動建立N型語言模式的方法就是通過一個簡單的相對頻率F(wj-N+1…wj-1wj)/F(wj-N+1…wj-1)來評估條件概率P(wj|wj-N+1…wj-1),在其中,F(xiàn)是在給定正文訓(xùn)練全集中以自身為變量時串出現(xiàn)的次數(shù)。為使評估更可靠,F(xiàn)(wj-N+1…wj-1wj)在已知全集中必須是具體的。
對于圖形識別,我們希望詞典和辭典都以代表要被識別的正文的單詞為基礎(chǔ)。這可通過分析典型正文,從正文中抽取單詞以及建立基于單詞或單詞序列頻率的語言模式來實現(xiàn)。本發(fā)明的分割方法可方便地用于從連貫正文中抽取單詞。為了訓(xùn)練圖形識別系統(tǒng)的辭典或詞典,進(jìn)行分割導(dǎo)致只有一個輸出單詞序列中就足夠了。如果分割系統(tǒng)100在一圖形識別系統(tǒng)中使用,最好還包含用于將輸出單詞序列中的新單詞(也就是還不在詞典122中的單詞)合并到詞典122中的更新裝置140。語言模式最好也被更新,例如,以反映新單詞或單詞序列似然性,包括新單詞與已知單詞或單詞序列的似然性。
根據(jù)本發(fā)明,完成分割要通過建立代表輸入串中的獨立單詞序列的樹形結(jié)構(gòu)。如果詞典已經(jīng)包含正文中所有要被分割的單詞,在原則上就不必添加新單詞了。因而,一個單詞序列可能包括也可能不包含一個或多個新單詞。由于添加新單詞會使分割變得更困難和精細(xì),所以最好先決定該正文是否可以只使用已知單詞進(jìn)行分割。整個過程由圖4示出。在步驟410,輸入串在正文全集420中被檢索。如前描述,字符串可表示一個詞組、一個句子或多個句子正文。在步驟430,核實整個全集是否已被分割。如果是(字符串空),過程在步驟440退出。否則,在步驟450中使用已知詞典(只有已知單詞)對正文進(jìn)行分割。這最好通過建立樹形結(jié)構(gòu)來實現(xiàn),該樹的每個節(jié)點代表一個已知單詞。不可完成的(沒有已知單詞與串的剩余部分匹配)遍歷樹的路徑(表示單詞序列)將被終止。步驟450的更多的細(xì)節(jié)將參閱圖5在下面進(jìn)一步闡明。在步驟460中檢查正文是否可以只被已知單詞分割。這可通過檢驗是否至少有一個路徑遍歷該建立的樹是完整的(也就是符合路徑的端末節(jié)點的單詞匹配于字符串的端尾字符并且被放置于字符串的末尾)來測試。為此目的,遍歷樹的路徑可被跟隨直至符合整個字符串的路徑被找到。更適宜地,在建樹過程中,當(dāng)達(dá)到字符串的末尾時,此事實將被存儲如作為一個“已達(dá)串端末的”參數(shù)。這樣,檢驗路徑是否完整就僅僅涉及檢查存儲的信息了。如果步驟460的檢測表明正文可被分割,則已識別的單詞序列在步驟470中被輸出并且該過程在步驟410繼續(xù)。如果不可分割,則過程在步驟480繼續(xù)且重新分割字符串,但此次允許添加新單詞。步驟480的更多的細(xì)節(jié)將參考圖6在下面闡明。我們將知道,在步驟460中識別的字符串與用已知單詞可分割一樣實際上也可用新單詞分割。正文的讀者也許更優(yōu)先采用包括新單詞的分割,即具有新單詞的單詞序列出現(xiàn)的可能性比具有已知單詞的已識別序列更大。這種情況將極少發(fā)生。然而,為了處理這種情況而不經(jīng)常采用可能的新單詞分割字符串,最好是作為步驟460的部分(選擇性地)一個已知單詞序列的似然性被確定下來(舉例來說使用N型語言模式),如果似然性大于給定閾值,則正文按已知單詞分割來識別,否則,啟動采用新單詞的分割。
圖5示出了只采用已知單詞分割字符串的流程圖。根據(jù)本發(fā)明,建立一個樹形結(jié)構(gòu)。原則上,任何建立和表示樹形結(jié)構(gòu)的合適的技術(shù)都可被應(yīng)用。在圖5的例子中,用元素列表(表示樹節(jié)點)以及元素之間的連接(指針)(表示節(jié)點間的路徑)來表示樹。在本例中,使用了兩個列表。一個端末列表包含相應(yīng)于匹配于并且對準(zhǔn)輸入串的結(jié)尾的單詞的那些元素。一個等候列表包含相應(yīng)于與字符串匹配但不與輸入串的端末對準(zhǔn)的單詞的那些元素。每個元素與詞典中的一個現(xiàn)存單詞相關(guān)。這種相關(guān)可以任何合適的方式完成(例如,復(fù)制單詞并且儲存于元素的數(shù)據(jù)結(jié)構(gòu)中或把參考(指針或數(shù)字)儲入詞典入口)。此外,每個元素是與某種輸入串部分相關(guān)的,該種輸入串跟隨著與該元素相關(guān)聯(lián)的單詞。根元素是特殊的元素,其與整個輸入串相關(guān)聯(lián),但不與任何單詞相關(guān)聯(lián)。根元素的作用是聯(lián)合所有可能的單詞序列。實際上,沒有必要設(shè)置一個分離的根元素。替之,對于詞典中的每一個匹配于輸入串開頭的單詞可建立一個新元素。如此建立的元素是作為單詞序列的首元素。步驟510與511包含過程環(huán)的初始化。在步驟510,建立根元素,并且輸入串與根元素相關(guān)聯(lián)。在步驟511,根元素被放入等候列表。在步驟512,等候列表中的一個元素被選中作為激活元素(從而,該根元素就選作初始激活元素)。在步驟512,工作串被裝入。與等候列表中的當(dāng)前激活元素相關(guān)聯(lián)的串用作工作串。所以,由于最初輸入串與根元素相關(guān)聯(lián),該根元素最初是等候列表的激活元素,則最初整個輸入串作為工作串使用。在循環(huán)中,在步驟514和516,詞典中的所有單詞都成功地從詞典中被檢索出。正文單詞的檢索是發(fā)生于步驟514。在步驟516,將檢測是否仍有單詞被檢索(并非所有單詞都已檢測)。如果是,在步驟518,檢驗單詞是否匹配于輸入串的開頭。如果不是,在步驟514中檢索正文單詞。如果發(fā)現(xiàn)了一個匹配,在步驟520創(chuàng)建一個新元素。該元素耦合于單詞(舉例來說,單詞與元素一起相關(guān)存儲),耦合于剩余的工作串(將匹配單詞從工作串的開頭移去之后)并與父元素連接(也就是該元素與輸入串中前面的單詞關(guān)聯(lián))。對于匹配于輸入串開頭的單詞,因為元素與開始單詞關(guān)聯(lián),根元素就作為父元素了。在步驟522,檢查輸入串的端末尾是否已到達(dá)(也就是,剩余工作串是否為空)。如果是,遍歷樹的路徑就結(jié)束了,則一個單詞序列被建立起來。為保證此序列可很容易地被檢索,在步驟524中該元素被存儲于端末列表中。對于只識別一個單詞序列就足夠充分(不需要最大的可能性)的系統(tǒng),一旦達(dá)到串的結(jié)尾,該程序就退出。如果串的結(jié)尾還未被檢索,則元素就被存儲于等候列表中(步驟526)。剩余串稍后將被分割。這兩種情形單詞都被處理了(與工作串的開始相比較),并且在步驟514中下一個單詞也被檢索了。如果對于一個工作串,詞典中的所有單詞都已經(jīng)與串的開頭相比較了,循環(huán)在步驟516退出。在步驟528,等候列表中的當(dāng)前選定元素從等候列表中被除去,因為該元素被完全地處置了。在一個封閉循環(huán)中,還未完全被處理的所有的工作串都被處置了。每個此類串都由等候列表中的一個元素表示。因此,在步驟530中檢查等候列表是否為空。如果不空,在步驟512,等候列表的下一個單詞作為當(dāng)前激活元素被選定。如果等候列表為空,原始輸入串就被完全地分割(盡可能只采用已知單詞)。在步驟534,檢查端末列表是否包含任何入口。如果不,在步驟536中將返回只用已知單詞分割不成功的消息。如果端末列表不空,其上的每一個元素代表一個單詞序列。實際上,這些元素是與單詞序列的最后一個單詞相關(guān)聯(lián)的并且與該序列中前面的單詞連接。這使得在步驟540回溯從端末列表上的一個元素開始的連接的元素的方法來檢索單詞序列。若不返回所有已識別單詞序列,選擇性地,在步驟538選擇一個或多個單詞序列并在步驟542返回。選擇最好是基于路徑的似然性。為了這個目的,使用一個統(tǒng)計N型語言模式來確定最相似的單詞序列是有利的。特別是如果分割改善了詞典和/或圖形識別系統(tǒng)的語言模式,就可使用現(xiàn)存語言模式。Bigram或trigram語言模式最好用于大型詞匯圖形識別系統(tǒng)(舉例來說超過10,000個入口)。
根據(jù)本發(fā)明,如果滿足一預(yù)定規(guī)則,長度不同的多個新單詞會被添加到樹形結(jié)構(gòu)中。在一個實施例中,新單詞被添加到一個或多個路徑的端末節(jié)點,這些路徑的相應(yīng)單詞序列不匹配于整個輸入串。在圖5中闡明的方法可用于建立一基本樹形結(jié)構(gòu)。舉例來說,如果后來表現(xiàn)出使用已知單詞不可建立合適的分割,則需要添加新單詞的節(jié)點可簡單地通過跟隨遍歷樹的路徑和檢驗路徑端末節(jié)點是否相應(yīng)于輸入串尾部(即單詞匹配并且分割已達(dá)輸入串尾部)而找到。采用圖5的技術(shù),元素之間可保持雙鏈接,一個鏈路將子節(jié)點鏈接到父節(jié)點(如前),另一鏈路將父節(jié)點鏈接到子節(jié)點。這樣路徑從根開始可遍厲棵樹而被跟隨。對于路徑的端末節(jié)點,則檢查路徑的端末節(jié)點是否在端末列表上。如果不在,新單詞將被添加到端末節(jié)點。做為替代,不循跡路徑遍歷樹,這里可引入第三個列表,當(dāng)相應(yīng)于端末節(jié)點的串是非空時其表示路徑的端末節(jié)點(即沒有已知單詞匹配于輸入串剩余部分的開頭)。這一點可通過在步驟528中檢驗是否至少可找到一個匹配來實現(xiàn)。如果沒有,元素將從等候列表中放置到第三個列表上表示不完全分割。一旦節(jié)點被定位,新單詞可被創(chuàng)建并作為樹中元素被表示,正如將在更多的細(xì)節(jié)與圖6的參考被描述那樣。通過將元素放置于等候列表上,可用圖5中描述的用于已知單詞分割的同樣的方法建立樹的剩余部分。
圖6示出了一分割輸入串的優(yōu)選方法。在此實施例中,已知單詞的識別和新單詞的添加都發(fā)生在一個完整的方法中。相應(yīng)于圖5的相同項目用圖5中相同的數(shù)字表示。這些項目不再詳細(xì)描述。如果在步驟516后所有單詞相對于工作串的開頭已匹配,在步驟610就使用一個預(yù)定規(guī)則來決定是否需要添加新單詞。如果需要新單詞新單詞,在步驟612,就初始化此新單詞的長度(在本例中到1)。在步驟614,通過從串開頭復(fù)制字符數(shù),建立該長度的單詞。以在步驟520、522、524和526中描述的同樣的方式,在步驟616建立相應(yīng)的元素并與單詞、父節(jié)點和該串的剩余部分相關(guān)。元素被置于等候列表(步驟622)還是端末列表(步驟620)依賴于串的結(jié)尾是否已到達(dá)。在步驟624,檢查是否直到最大長度K的全部所須單詞都被建立了,K至少是2。如果沒有,在步驟626,增加長度并在步驟614建立新單詞。如果所有的新單詞都已被建立,如圖5描述該程序從步驟528繼續(xù)。對于亞洲語言,K最好選3至6之間。如果這不能導(dǎo)致成功的分割,K可增加。
根據(jù)本發(fā)明的一個實施例中,步驟610的檢測規(guī)則是有多少匹配于工作串開頭的單詞。這一點的實現(xiàn)可通過在步驟520增加一計數(shù)器,它的復(fù)位作為步驟512或513的一部分。如果匹配單詞數(shù)少于一個閾值,則添加新單詞。添加多少新單詞取決于找到的匹配單詞數(shù),如果只找到很少的匹配則最好添加更多的新單詞。我們十分欣賞的是作為一個極端閾值這個極限可以是1,導(dǎo)致如果現(xiàn)存詞典中沒有一個單詞匹配于與那個節(jié)點的工作串的開頭,則新單詞附屬于該樹的節(jié)點。
在另一實施例中,規(guī)則是基于已在一路徑中的新單詞的數(shù)量。這一點可通過每次在一路徑中插入一新單詞就步進(jìn)一個計數(shù),且將該計數(shù)與路徑中端末元素相關(guān)來實現(xiàn)。如果一路徑已包括兩個或三個新單詞了,最好是不再添加更多的新單詞到該路徑中。然而,如果這樣也不能實現(xiàn)成功的分割,則可增加路徑中允許的新單詞數(shù)。
在另一實施例中,規(guī)則是基于單詞序列的似然性(以及遍歷樹的相應(yīng)路徑)。更適宜地,在建立相應(yīng)路徑時計算每個單詞序列的似然性。累積分?jǐn)?shù)可與路徑的端末元素相關(guān)存儲。作為步驟610的部分測試,如果似然性低于一個閾值,路徑將不再延伸也不再有新單詞添加到該路徑。方便地,似然性閾值動態(tài)地建立來確保一個相對的隊列。如果已經(jīng)有一個或多個序列被識別(用已算出的可能性),則其他序列只在序列有更高或相似的似然性時才被處理。更適宜地,新單詞的似然性相對較低,在此,似然性取決于新單詞的長度。這樣,單詞序列的似然性將隨著序列中的新單詞數(shù)而減少??梢圆捎萌魏芜m當(dāng)?shù)乃迫恍杂嬎?。最好采用下面的新單詞似然性記分Unknown_word_score=penalty+weight*[min_unigram*char_no*unigram_weight+Length_prob*length_weight],這里-penalty是對每個單詞的固定的補償值,-weight是每個新單詞分?jǐn)?shù)的全局加權(quán)因子,-min_unigram是所有已知單詞的最小發(fā)生頻率(unigram模式),-char_no是新單詞的字符數(shù),-unigram_weight是unigram得分的局部加權(quán)因子,-length_prob是有這個長度的單詞的概率(長度分布概率),-length_weight是該長度概率的局部加權(quán)因子。
補償和加權(quán)參數(shù)確保新單詞比已知單詞得到更低的分?jǐn)?shù)。
在根據(jù)本發(fā)明的另一實施例,如果在步驟610確定了沒有單詞匹配于工作串的開頭,則這就被看作某種指示,即在較早的位置可能已引發(fā)錯誤的分割。例如,存在一個已知單詞匹配,然而實際上字符是新單詞的一部分。為了這個目的,樹被回溯,最好是只一步,并且將一個或多個新單詞添加到在回溯中被定位的節(jié)點。顯然如果這些單詞已被添加了,則沒有新單詞被添加。如果在那個位置已找到幾個已知單詞的匹配那么也沒有必要添加新單詞。在后一種情形中,假定這些單詞中至少有一個單詞將引導(dǎo)致成功的序列。
權(quán)利要求
1.一種將連貫正文分割成單詞的方法,包括如下步驟-讀入代表連貫正文的輸入串;-通過將輸入字符串與一詞典中的單詞進(jìn)行比較,識別所述輸入字符串中至少一個序列的獨立的單詞;-并輸出至少一個所述已識別的單詞序列;其特征在于,所述識別至少一個單詞序列的步驟包括用迭代方法建立一代表所述輸入串中的單詞序列的樹形結(jié)構(gòu),其過程是將輸入字符串當(dāng)作工作串;對于詞典中的每一個單詞比較所述單詞與所述工作串的開頭;并且如果所述單詞與所述工作串的開頭相匹配則在樹中建立一個表示該單詞的節(jié)點;將所述節(jié)點與開始于與該單詞結(jié)束位置緊緊相連的那部分輸入串相關(guān)聯(lián);并且構(gòu)造一棵子樹,鏈接于該節(jié)點,將所述相關(guān)部分作為工作串,以該子樹表示與所述節(jié)點相關(guān)聯(lián)那部分輸入串中的單詞序列。
2.根據(jù)權(quán)利要求1的方法,其特征在于,所述方法包括如下步驟根據(jù)一預(yù)定規(guī)則決定是否要把新單詞加到所述樹結(jié)構(gòu)中去;如果需要加新單詞則選擇所述樹中至少一個節(jié)點,其相關(guān)單詞要被新單詞跟隨;建立多個新單詞;這些新單詞中的每一個匹配于與所述選擇的節(jié)點相關(guān)聯(lián)的所述輸入串部分的開頭,并由不同數(shù)量的字符組成。為每個建立的新單詞形成各自的子樹,鏈接到所述選擇的節(jié)點;每一個子樹表示與所選節(jié)點相關(guān)聯(lián)的輸入串部分中從所述各新單詞開始的單詞序列。
3.根據(jù)權(quán)利要求2的方法,其特征在于,所述方法包括檢查遍厲樹結(jié)構(gòu)的至少一條路徑是否表示一匹配整個輸入串的單詞序列,這里,所述單詞序列只包括詞典中的單詞;且如果結(jié)果不好則決定添加新單詞。
4.根據(jù)權(quán)利要求3的方法,其中,所述選擇所述樹中至少一個節(jié)點且其相關(guān)單詞要被新單詞跟隨的步驟包括識別至少一條遍歷樹的路徑,其表示不匹配于整個輸入串的單詞序列并且將已識別路徑的端末節(jié)點作為所述所選節(jié)點。
5.根據(jù)權(quán)利要求2的方法,其中,所述方法包括,對于每個工作串確定詞典中有多少單詞匹配于工作串的開頭;如果詞典中匹配于工作串開頭的單詞數(shù)比預(yù)定閾值低,決定添加新單詞;并且選擇與工作串關(guān)聯(lián)的節(jié)點作為樹中的節(jié)點,該節(jié)點的相關(guān)聯(lián)單詞將被新單詞跟隨。
6.根據(jù)權(quán)利要求5的方法,其中,所述閾值是1。
7.根據(jù)權(quán)利要求2的方法,其中,所述方法包括,當(dāng)建立樹形結(jié)構(gòu)時對于每個單詞序列計算該序列中新單詞數(shù),如果所計新單詞數(shù)超過一預(yù)定閾值則終止樹形結(jié)構(gòu)沿表示該單詞序列的路徑延伸。
8.根據(jù)權(quán)利要求2的方法,其中,所述方法包括,當(dāng)建立樹形結(jié)構(gòu)時計算每個單詞序列的似然性,并且如果相應(yīng)單詞序列的似然性低于預(yù)定閾值則終止樹形結(jié)構(gòu)沿表示該單詞序列的路徑延伸。
9.根據(jù)權(quán)利要求8的方法,其中,單詞序列的所述似然性作為單詞序列中新單詞數(shù)的函數(shù)而減小。
10.根據(jù)權(quán)利要求2的方法,其特征在于,所述建立新單詞的步驟包括形成最大到K個單詞的步驟,K>1,每個單詞都從工作串的起始字符開始,并且各自包含工作串的1到K個起始字符。
11.根據(jù)權(quán)利要求1的方法,其特征在于,輸出至少一個由樹表示的單詞序列的步驟包括選擇遍歷樹的路徑之一,在此只有由路徑的末節(jié)點表示的單詞的路徑被認(rèn)為是匹配輸入串結(jié)尾的。
12.根據(jù)權(quán)利要求5的方法,其特征在于,選擇一條遍歷樹的路徑的步驟包括,根據(jù)統(tǒng)計N型語言模式計算每個候選路徑的似然性并且選擇一個最可能的路徑,其中N>=2。
13.一種將連貫正文分割成單詞的系統(tǒng),該系統(tǒng)包括-讀入一個表示連貫正文的輸入串的裝置;-通過比較輸入串與詞典中的單詞來識別輸入串中獨立單詞的至少一個序列的裝置;-輸出至少一個已識別的單詞序列的方法;其特征在于,所述識別至少一個單詞序列的裝置被運作以便用迭代方法建立一代表所述輸入串中的單詞序列的樹形結(jié)構(gòu),其過程是取輸入字符串當(dāng)作工作串;對于詞典中的每一個單詞比較所述單詞與所述工作串的開頭;并且如果所述單詞與所述工作串的開頭相匹配則在樹中建立一個表示該單詞的節(jié)點;將在該單詞結(jié)尾直接相連位置開始的那部分輸入串與所述節(jié)點相關(guān)聯(lián);并且構(gòu)造一棵子樹,鏈接于該節(jié)點,將所述相關(guān)部分作為工作串,以該子樹表示與所述節(jié)點相關(guān)聯(lián)那部分輸入串中的單詞序列。
全文摘要
一種系統(tǒng)(100)能夠把中文、日文等連貫正文分割為單詞。該系統(tǒng)包括:讀取代表連貫正文的輸入串的裝置(110),以迭代方式建立一代表輸入串中單詞序列的樹形結(jié)構(gòu)用于識別所述正文中至少一個單詞序列的分割裝置(120)。開始輸入串作為工作串。詞典中的每個單詞與所述工作串的首部進(jìn)行比較。以樹的節(jié)點表示匹配,繼續(xù)處理輸入串的剩余部分。該系統(tǒng)還包括裝置(130)用于輸出至少一個已識別的單詞序列。優(yōu)選地本系統(tǒng)用于語音識別系統(tǒng)以根據(jù)提供的文本更新辭典。
文檔編號G06F17/28GK1328672SQ99804423
公開日2001年12月26日 申請日期1999年11月18日 優(yōu)先權(quán)日1998年11月30日
發(fā)明者朱亞成 申請人:皇家菲利浦電子有限公司