專利名稱:詞典、分段和語言模型聯合優化的系統和迭代方法
技術領域:
本發明涉及語言建模,更具體地說涉及詞典、文字分段和語言模式聯合優化的系統和迭代方法。
背景技術:
近來計算能力和相關技術的發展促進了新一代強大的應用軟件的發展,包括web瀏覽器、字處理和語音識別應用程序。例如,在輸入域名的兩三個最初字符之后,最新一代的web瀏覽器預料統一資源定位符(URL)地址輸入。字處理器提供改進的拼寫和語法檢查能力、字預測和語言轉換。較新的語音識別應用程序類似地提供具有令人佩服的識別和預測精度的各種特征。為了對終端用戶有用,必須基本實時地實現這些特征。為了提供這種性能,許多應用程序依賴樹狀數據結構來建立簡單的語言模型。
簡單地說,語言模式測量任意指定句子的似然性。即,語言模型可獲取任意條目的序列(文字、字符、字母等)并估計該序列的可能性。建立現有的語言模式的一種常見途徑是根據已知的文本語料庫(textual corpus)的訓練集合,利用前綴樹狀數據結構建立N-gram(N字母組)語言模型。
前綴樹狀數據結構(也叫作后綴樹或者PAT樹)的使用使高級應用程序能夠快速遍歷語言模型,提供上面描述的基本實時的性能特征。簡單地說,N-gram語言模型計數整個文本中在一個串(大小為N的)內特定項目(文字、字符等)的出現次數。計數值被用于計算該項目串的使用概率。通常,tri-gram(N-gram,這里N=3)方法包括下述步驟(a)把文本語料庫分成若干項目(字符、字母、數字等);(b)根據較小的預定詞典和簡單的預定分段算法,對所述若干項目(例如字符(C))分段(例如分成詞(W)),這里在樹狀數據結構中各個W被映射成一個或多個C;(c)通過計數字符串的出現次數,根據分離的語料庫(corpus)訓練語言模型,籍此由前兩個詞預測一系列詞(W1,W2,…WM)的概率P(W1,W2,W3,...WM)≈∏P(Wi|Wi-1,Wi-2)(1)N-gram語言模型在若干方面存在局限。首先,構造前綴樹中使用的計數程序非常耗時。從而實際上只能實現較小的N-gram模型(一般為2-gram或者3-gram)。其次,隨著N-gram語言模型的串長度(N)的增大,存儲前綴樹所需的存儲器按2N增加。從而,對于大于3(即3-gram)的N-gram來說,存儲N-gram語言模型所需的存儲器,以及利用較大的N-gram語言模型所需的訪問時間非常大。
現有技術的N-gram語言模型傾向于使用固定(較小)的詞典,過分簡單的分段算法,一般只依賴于前兩個單詞來預測當前的單詞(就3-gram模型而論)。
固定的詞典限制了模型選擇通用或者專用于任務的最佳單詞的能力。如果某一單詞不存在于詞典中,則就所涉及的模型來說,該單詞不存在。從而,較小的詞典不可能覆蓋預期的語言內容。
分段算法通常較為特別,并且不是以任何統計或語義原理為基礎。過于簡單的分段算法一般錯誤地放棄較小的單詞而采用較大的單詞。從而該模型不能準確地預測包含在語義上可接受的較大字符串內的較小單詞。
由于上述限制的結果,使用現有技術詞典和分段算法的語言模型往往易于出錯。即,在詞典或分段階段中產生的任意錯誤被傳播到整個語言模型內,從而限制了語言模型的準確性和預測屬性。
最后,把模型局限于上下文的最多兩個在先單詞(就3-gram語言模型而論)同樣是有限制性的,因為要準確地預測單詞的可能性或許需要更多的上下文。語言模型這三方面的局限性通常導致該語言模型的預測質量較差。
從而,需要一種不受通常與現有技術的語言建模技術相關的缺陷和局限性的妨礙,用于詞典、分段算法和語言模型聯合優化的系統和方法。下面提供恰好如此的一種解決方案。
發明內容
本發明涉及詞典、分段和語言模型聯合優化的系統和迭代方法。為了克服與現有技術相關的局限性,本發明不依賴于預定的詞典或分段算法,相反在優化語言模型的迭代過程中,動態生成詞典和分段算法。根據一種實現,提供一種改善語言模型性能的方法,包括根據利用最大匹配技術接收的文本語料庫獲得的詞典和分段形成初始的語言模型,通過按照統計原理動態更新詞典并且對文本語料庫重新分段,反復精煉初始的語言模型,直到達到預測能力閾值為止。
附圖中相同的索引數字被用于代表相同的組件和特征。
圖1是體現本發明教導的計算機系統的方框圖;圖2是根據本發明的一種實現的迭代形成詞典、分段和語言模型的例證建模代理的方框圖;圖3是根據本發明一個方面的DOMM樹的圖形表示;圖4是建立DOMM樹的例證方法的流程圖;圖5是根據本發明教導的用于詞典、分段和語言模型聯合優化的例證方法的流程圖;圖6是詳細說明根據本發明的一種實現的產生初始詞典,并且反復改變動態產生的詞典、分段和語言模型,直到會聚為止的方法步驟的流程圖;圖7是根據本發明備選實施例的具有若干可執行指令的存儲介質,所述若干可執行指令當被執行時,實現本發明的創新建模代理。
具體實施例方式
本發明涉及詞典、分段和語言模型聯合優化的系統和迭代方法。在說明本發明的過程中,引用了創新的語言模型,動態排序Markov模型(DOMM)。在同時待審的Lee等的美國專利申請No.09/XXXXXX,“A Method and Apparatus for Generating andManaging a Language Model Data Structure”中給出DOMM的詳細說明,該專利申請的公開內容作為參考包含于此。
在這里的討論中,在諸如程序模塊之類計算機可執行的指令被一個或多個常規計算機執行的一般情況下說明本發明。一般來說,程序模塊包括執行特殊任務或實現特定抽象數據類型的例行程序、程序、對象、組件、數據結構等。此外,本領域的技術人員要認識到可利用其它計算機系統結構,包括手持式裝置、個人數字助理、多處理器系統、基于微處理器的或可編程的消費電子產品、網絡PC、微型計算機、大型計算機等實踐本發明。在分布式計算機環境中,程序模塊既可位于本地存儲裝置中又可位于遠程存儲裝置中。但是要指出的是在不脫離本發明的精神和范圍的情況下,也可對這里說明的體系結構和方法進行修改。
例證的計算機系統圖1圖解說明包括根據本發明的教導聯合優化詞典、分段和語言模型的創新語言建模代理104的例證計算機系統102。要認識到雖然在圖1中被描述為單獨的應用程序,不過語言建模代理104也可被實現為應用程序,例如字處理器、web瀏覽器、語音識別系統等的一種功能。此外,雖然被描述為軟件應用程序,不過本領域中的技術人員將認識到也可在硬件中實現該創新建模代理,例如可編程的邏輯陣列(PLA)、專用處理器、專用集成電路(ASIC)、微控制器等。
根據下面的說明,顯然計算機102是用來代表任意類別的通用或者專用計算平臺,所述計算平臺當被賦予創新的語言建模代理(LMA)104時,實現根據上面介紹的第一例證實現的本發明的教導。要認識到雖然這里把語言建模代理描述為應用軟件,不過計算機系統102可選擇地支持LMA 104的硬件實現。在這方面,對于LMA 104的說明,下述計算機系統102的描述僅僅是例證性的,因為在不脫離本發明的精神和范圍的情況下,可用性能更好或較弱的計算機系統替換。
如圖所示,計算機102包括一個或多個處理器132、系統存儲器134和使包括系統存儲器134在內的各種系統組件和處理器132耦接的總線136。
總線136代表幾種總線結構中的任意一種或者多種總線結構,包括存儲器總線或存儲器控制器,外圍總線,加速圖形端口和使用各種總線結構中的任意一種總線結構的處理器或本地總線。系統存儲器包括只讀存儲器(ROM)138和隨機存取存儲器(RAM)140。包含例如在起動過程中,有助于在計算機102內的元件之間傳送信息的基本例程的基本輸入/輸出系統(BIOS)142保存在ROM 138中。計算機102還包括對硬盤(圖中未表示)進行讀寫的硬盤驅動器144,對可移除的磁盤148讀寫的磁盤驅動器146,和對諸如CD ROM、DVD ROM或者其它光學介質之類可移除光盤152進行讀寫的光盤驅動器150。硬盤驅動器144、磁盤驅動器146和光盤驅動器150通過SCSI接口154或者其它一些適當的總線接口與總線136相連。這些驅動器及它們相關的計算機可讀介質為計算機102提供計算機可讀指令、數據結構、程序模塊及其它數據的非易失性存儲。
雖然這里描述的例證環境采用硬盤144、可移動的磁盤148和可移動的光盤152,但是本領域的技術人員應認識到在例證的操作環境中也可使用能夠保存計算機可存取的數據的其它類型的計算機可讀介質,例如盒式磁帶、快速存儲卡、數字視頻盤、隨機存取存儲器(RAM)只讀存儲器(ROM)等等。
若干程序模塊可保存在硬盤144、磁盤148、光盤152、ROM 138或RAM 140上,包括操作系統158、包括體現本發明教導的創新LMA104在內的一個或多個應用程序160、其它程序模塊162和程序數據164(例如最后得到的語言模型數據結構等)。用戶可通過諸如鍵盤166和定點設備168之類的輸入裝置把命令和信息輸入計算機102。其它輸入裝置(圖中未示出)可包括麥克風、操縱桿、游戲墊、碟形衛星天線、掃描儀等等。這些及其它輸入裝置通過與總線136耦接的接口170與處理器132連接。監視器172或者其它類型的顯示裝置也通過諸如視頻適配器174之類的接口與總線136相連。除了監視器172之外,個人計算機通常包括諸如揚聲器和打印機之類的其它外圍輸出裝置(圖中未示出)。
如圖所示,計算機102在利用與一個或多個遠程計算機,例如遠程計算機176的邏輯連接的網絡化環境中工作。遠程計算機176可以是另一個人計算機、個人數字助理、服務器、路由器或者其它網絡設備、網絡“瘦客戶機(thin-client)”PC、對等設備或者其它常見網絡節點,并且一般包括上面相對于計算機102說明的一些或者所有元件,不過在圖1中只圖解表示了存儲器178。
如圖所示,圖1中描述的邏輯連接包括局域網(LAN)180和廣域網(WAN)182。在辦公室、企業范圍計算機網絡、企業內部互聯網和因特網中這種網絡化環境很平常。在一個實施例中,遠程計算機176執行諸如由Washington,Redmond的Microsoft Corporation生產并供銷的“Internet Explorer”之類的因特網Web瀏覽器程序,以便訪問并利用在線服務。
當用在LAN網絡環境中時,計算機102通過網絡接口或適配器184與局域網180相連。當用在WAN網絡環境中時,計算機102一般包括與諸如因特網之類的廣域網182建立通信的調制解調器186或者其它裝置。調制解調器186(可以是內置的也可以是外置的)通過輸入/輸出(I/O)接口156與總線136相連。除了網絡連通性之外,I/O接口156還支持一個或多個打印機188。在網絡化環境中,相對于個人計算機102或其各個部分說明的程序模塊可保存在遠程存儲器中。要認識到所表示的網絡連接是例證性的,可使用在計算機之間建立通信連接的其它手段。
一般來說,借助在不同時間保存到計算機的各種計算機可讀存儲介質中的指令對計算機102的數據處理器編程。程序和操作系統一般分布在例如軟盤或CD-ROM上。程序和操作系統從軟盤或CD-ROM上被安裝或者加載到計算機的輔助存儲器中。執行時,它們至少被部分加載到計算機的主電子存儲器中。當這些及其它各種類型的計算機可讀存儲介質和微處理器或者其它數據處理器一起包含實現下面說明的創新步驟的指令或程序時,這里描述的發明包括這樣的計算機可讀存儲介質。當計算機本身按照下面說明的方法和技術編程時,本發明還包括該計算機。此外,可對計算機的某些子部件編程,以便執行下面描述的功能和步驟。當按照所述對這些子部件編程時,本發明還包括這樣的子部件。另外,這里描述的發明包括下面說明的包含在各種存儲介質上的數據結構。
為了便于說明,這里把程序和其它可執行的程序組件,例如操作系統表示為分離的程序塊,不過要認識到這樣的程序和組件在不同時候駐留在計算機的不同存儲部件上,并且由計算機的數據處理器執行。
例證的語言建模代理圖2圖解說明體現本發明教導的例證語言建模代理(LMA)(104)的方框圖。如圖所示,語言建模代理104由一個或多個控制器202、創新的分析引擎204、存儲器206和可選的一個或多個輔助應用程序(例如圖形用戶界面、預測應用程序、驗證應用程序、估計應用程序等)208組成。它們如圖所示通過通信相連。要認識到雖然在圖2中被描述成若干不同的部分,不過LMA 104的一個或多個功能元件也可結合在一起。在這方面,在不脫離本發明的精神和范圍的情況下,可采用更復雜或者較簡單的迭代聯合優化動態詞典、分段和語言模型的建模代理。
如上間接所示,雖然被描述成單獨的功能元件,LMA 104也可被實現成更高級應用程序,例如字處理器、web瀏覽器、語音識別系統或者語言轉換系統的一種功能。在這方面,LMA 104的控制器202對來自父應用程序的一個或多個指示命令作出反應,有選擇地調用LMA104的特征。另一方面,LMA 104也可被實現為單獨的語言建模工具,向用戶提供有選擇地實現下面所述的LMA 104的特征的用戶界面(208)。
在任一種情況下,LMA 104的控制器202有選擇地調用分析引擎204的一個或多個功能,從而根據動態產生的詞典和分段算法優化語言模型。從而除了被配置成實現本發明的教導之外,控制器202用來代表本領域中已知的若干備選控制系統中的任意一種控制系統,包括(但不局限于)微處理器、可編程的邏輯陣列(PLA)、微型機、專用集成電路(ASIC)等等。在備選實現中,控制器202用來代表實現上述控制邏輯的一系列可執行的指令。
如圖所示,創新的分析引擎204由Markov概率計算器212、包括頻率計算子例程213、動態詞典生成子例程214和動態分段子例程216的數據結構生成器210及數據結構存儲管理器218構成。當接收外部指示時,控制器202有選擇地調用分析引擎204的某一實例形成、修改并優化統計語言模型(SLM)。更具體地說,和現有的語言建模技術相反,分析引擎204基本根據文本語料庫(例如一組或多組文本)的單個項目(例如字符、字母、數字等)之間的Markov轉移概率產生統計語言模型數據結構。此外,如同將說明的一樣,分析引擎204利用盡可能多的數據(稱為“語境(context)”或“排序(order)”)來計算項目串的概率。在這方面,本發明的語言模型被恰如其分地稱為動態排序Markov模型(DOMM)。
當被控制器202調用以建立DOMM數據結構時,分析引擎204有選擇地調用數據結構生成器210。作為響應,數據結構生成器210建立由若干節點(與若干項目中的各個項目相關)組成,并且表示節點間的從屬性的樹狀數據結構。如上所述,這里把樹狀數據結構稱為DOMM數據結構或者DOMM樹。控制器202接收文本語料庫,并且至少把文本語料庫的一個子集作為動態訓練集合222保存到存儲器206中,將根據動態訓練集合222產生語言模型。要認識到在備選實施例中,也可使用預定的訓練集合。
一旦收到動態訓練集合,頻率計算子例程213至少取回訓練集合222的一個子集以供分析。頻率計算子例程213確定訓練集合子集中各個項目(字符、字母、數字、單詞等)的出現頻率。根據節點間的從屬性,數據結構生成器210把各個項目分配給DOMM樹的適當節點,并有頻率值(Ci)的指示和比較位(bi)。
Markov概率計算器212根據相關項目的語境(j)計算項目(字符、字母、數字等)的概率。更具體地說,根據本發明的教導,特定項目的Markov概率(Ci)依賴于數據“允許”的盡可能多的在先字符,換句話說P(C1,C2,C3,...,CN)≈∏P(CI|CI-1,CI-2,CI-3,...,CJ) (2)Markov概率計算器212用作語境(j)的字符數不同于字符Ci,Ci-1,Ci-2,Ci-3等的各個序列的“動態”數量。根據一種實現,Markov概率計算器212計算的依賴于語境(j)的字符數至少部分取決于各個字符的頻率值,即它們在整個文本語料庫內出現的比率。更具體地說,如果在確定文本語料庫的項目的情況下,Markov概率計算器212至少不確定特定項目的最小出現頻率,則由于與統計不相關,可能從樹狀數據結構中將其剪除(即排除)。根據一個實施例,最低頻率閾值為三(3)。
如上間接所示,分析引擎204不依賴固定詞典或者簡單的分段算法(它們均易于出錯)。相反,分析引擎204有選擇地調用動態分段子例程216把項目(例如字符或字母)分成串(例如單詞)。更準確地說,分段子例程216把訓練集合222分成子集(大塊),并且計算內聚度(即子集內項目間的相似性的一種量度)。分段子例程216反復進行分段及內聚性計算,直到各個子集的內聚度達到預定閾值為止。
詞典生成子例程214被調用,從而動態生成詞典220并將其保存到存儲器206中。根據一種實現,詞典生成子例程214分析分段結果,并根據Markov轉移概率超過閾值的項目串產生詞典。在這方面,詞典生成子例程214根據超過從由分析引擎204產生的一個或多個語言模型獲得的預定Markov轉移概率的項目串產生動態詞典220。因此,不同于依賴于易于出錯的已知固定詞典的現有語言模型,分析引擎204根據在一段時間內形成的一個或多個語言模型,產生統計意義更重要、統計準確的項目串的詞典。根據一個實施例,詞典220包括在形成后續語言模型中,Markov概率計算器212所依賴的“虛擬語料庫”(除動態訓練集合之外)。
當被調用從而修改或利用DOMM語言模型數據結構時,分析引擎204有選擇地調用數據結構存儲管理器218的一個實例。根據本發明的一個方面,數據結構存儲管理器218利用系統存儲器及擴展存儲器保存DOMM數據結構。更具體地說,如下下面將參考圖6和7更詳細說明的那樣,數據結構存儲管理器218采用WriteNode子例程和ReadNote子例程(圖中未示出)把最近使用的DOMM數據結構的節點子集保存到系統存儲器206的一級高速緩沖存儲器224中,同時把最近很少使用的節點轉移到擴展存儲器(例如硬盤驅動器144或者某些遠程驅動器中的磁盤文件)中,從而提供改進的性能特征。另外,系統存儲器206的二級高速緩沖存儲器被用于集合寫入命令,直到達到預定的閾值為止,在該閾值點,數據結構存儲管理器向存儲器中的適當位置發出一個集合WriteNode命令。雖然被描述成獨立的功能元件,不過本領域的技術人員將認識到在不脫離本發明的精神和范圍的情況下,數據結構存儲管理器218也可被組合成控制器202的功能元件。
例證的數據結構-動態排序Markov模型(DOMM)樹圖3表示根據本發明教導的例證動態排序Markov模型樹狀數據結構300的原理圖。為了從原理上說明DOMM樹狀數據結構300是如何構成的,圖3給出了由英文字母表,即A、B、C、…Z形成的語言模型的例證DOMM數據結構300。如圖所示,DOMM樹300包括一個或多個根節點302和一個或多個從屬節點304,這些節點與文本語料庫的一個項目(字符、字母、數字、單詞等)相關,并被邏輯連接以表示節點之間的從屬性。根據本發明的一個實現,根節點302由一個項目和一個頻率值(例如該項目在文本語料庫中出現多少次的計數值)組成。在根節點層302下的某一層,從屬節點被布置成二叉子樹,其中每個節點包括一個比較位(bi),該節點與之相關的項目(A、B、…)和該項目的頻率值(CN)。
從而,從與項目B 306相關的根節點開始,二叉子樹由表示節點之間的關系的從屬節點308-318及它們的出現頻率組成。給定該原理性例子,應認識到從根節點,例如節點306開始,DOMM樹的搜索復雜性接近log(N),N是要搜索的節點的總數。
如上間接所示,DOMM樹300的大小可超過LMA 104的存儲器206和/或計算機系統102的主存儲器中的可用空間。因此,數據結構存儲管理器218便于跨越主存儲器(例如140和/或260)把DOMM樹數據結構300保存到擴展的存儲空間,例如諸如計算機系統102的硬盤驅動器144之類主存儲裝置上的磁盤文件中。
例證的操作和實現已參考圖1-3介紹了本發明的功能和概念元件,下面將參考圖5-10說明創新的語言建模代理104的操作。
建立DOMM樹數據結構圖4是根據本發明的一方面,建立動態排序Markov模型(DOMM)的例證方法的流程圖。如上間接所示,語言建模代理104可直接被用戶或高級應用程序調用。作為響應,LMA 104的控制器202有選擇地調用分析引擎204的一個實例,文本語料庫(例如一個或多個文檔)作為動態訓練集合222被加載到存儲器206中,并被分成子集(例如句子,詩句等),方框402。作為響應,數據結構生成器210把該子集的各個項目分配給數據結構中的節點,并計算該項目的頻率值,方框404。根據一種實現,一旦數據結構生成器已利用該子集填充該數據結構,則調用頻率計算子例程213確定訓練集合子集內各個項目的出現頻率。
在方框406中,數據結構生成器確定是否存在訓練集合的其它子集,如果是,則在方框408讀取下一子集,并在方框404繼續該過程。在備選實現中,在調用頻率計算子例程213之前,數據結構生成器210每次一個子集地填充該數據結構。在備選實施例中,頻率計算子例程只計數當其被放入數據結構的相關節點時的各個項目。
如果在方框406中,數據結構生成器210已完全給數據結構300加上訓練集合222的各個項目,則數據結構生成器210可隨意地刪除數據結構,方框410。可采用若干種機制刪除作為結果得到的數據結構300。
詞典、分段和語言模型聯合優化的例證方法圖5是根據本發明教導的詞典、分段和語言模型聯合優化的例證方法的流程圖。如圖所示,該方法開始于方框400,在方框400中,調用LM 104,并且建立至少接收的文本語料庫的一個子集的前綴樹。更具體地說,如圖4中所示,建模代理104的數據結構生成器210分析接收的文本語料庫,并且至少選擇一個子集作為訓練集合,根據該訓練集合建立DOMM樹。
在方框502中,根據前綴樹建立一個很大的詞典,對該詞典進行預處理,從而除去某些明顯不合邏輯的單詞。更具體地說,調用詞典生成子例程214,根據前綴樹建立初始詞典。根據一種實現,利用其長度小于某一預定值,比方說十(10)個項目的所有子串(即從根節點到最大的從屬節點,該子串為10個節點或小于10個節點),根據前綴樹建立初始詞典。一旦匯編完成初始詞典,詞典生成子例程214通過刪除某些明顯不合邏輯的單詞精減該詞典(例如參見下面的方框604)。根據一種實現,詞典生成子例程214把至少根據接收的文本語料庫的訓練集合產生的新的初始詞典附加到預定的詞典上。
在方框504中,利用初始詞典至少對接收的文本語料庫的訓練集合分段。更具體地說,調用動態分段子例程216至少對接收的文本語料庫的訓練集合分段,產生初始的分段文本語料庫。本領域的技術人員將認識到存在各種對訓練文本語料庫分段的方法,例如固定長度分段,最大匹配等等。為此在還沒有根據接收的文本語料庫產生統計語言模型(SLM)的情況下,動態分段子例程216利用最大匹配技術提供初始的分段文本語料庫。因此,分段子例程216開始于項目串(或者DOMM樹的分支)的起點,并且搜索詞典,查看初始的項目(I1)是否是一個(one-item)“單詞”。分段子例程隨后把該項目與串中的下一項目進行組合,以了解在該詞典中是否以“單詞”的形式找到組合結果(例如I1I2),依次類推。根據一種實現,在詞典中找到的項目的最長串(I1,I2,…IN)被認為是該串的正確分段。要認識到在不脫離本發明的精神和范圍的情況下,分段子例程216可利用更復雜的最大匹配算法。
在根據訓練文本語料庫形成初始詞典和分段之后,進入迭代過程,其中詞典、分段和語言模型被聯合優化,方框506。更具體地說,如同下面將更詳細說明的那樣,創新的迭代優化采用統計語言建模方法動態調整分段和詞典,從而提供優化的語言模型。即,不同于現有的語言建模技術,建模代理104不依賴于預定的靜態詞典,或者過分簡單的分段算法來產生語言模型。相反,建模代理104利用接收的文本語料庫,或者至少利用接收的文本語料庫的一個子集(訓練集合)動態產生詞典和分段,從而產生優化的語言模型。在這方面,建模代理104產生的語言模型不存在通常和現有的建模系統相關的缺陷和局限性。
在已介紹圖5中的創新過程之后,圖6根據本發明的一種實現,給出產生初始詞典的更詳細的流程圖,以及提煉詞典和分段從而優化語言模型的迭代過程。如前面一樣,該方法開始于根據接收的文本語料庫建立前綴樹的步驟400(圖4)。如上所述,可利用整個文本語料庫,或者利用整體文本語料庫的一個子集(稱為訓練語料庫)建立前綴樹。
在方框502中,產生初始詞典的過程開始于方框602,其中詞典生成子例程214通過識別具有小于預定數目的項目的子串(或者前綴樹的分支),根據前綴樹產生初始詞典。根據一種實現,詞典生成子例程214確定十(10)個項目或者少于10個項目的子串,從而構成初始詞典。在方框604中,詞典生成子例程214針對顯然不合邏輯的子串分析在步驟602中產生的初始詞典,從初始詞典中除去這些子串。即,詞典生成子例程214分析初始詞典子串中不合邏輯的或者不可能的單詞,并從詞典中除去這些單詞。對于初始刪減來說,調用動態分段子例程216至少對接收的文本語料庫的訓練集合分段,產生分段的語料庫。根據一種實現,最大匹配算法被用于根據初始詞典進行分段。隨后調用頻率分析子例程213,計算詞典中各個單詞在接收的文本語料庫中的出現頻率,并且按照出現頻率對詞典分類。確定頻率最低的單詞并從詞典中刪除該單詞。可根據語料庫的大小確定刪除和重新分段的閾值。根據一種實現,600M項目的語料庫可利用500的頻率閾值被包含在該詞典內。這樣,可從初始詞典中刪除絕大多數明顯不合邏輯的單詞。
一旦在步驟502產生并刪減初始詞典,則至少部分根據初始詞典對接收的文本語料庫分段,方框504。如上所述,根據一種實現,利用最大匹配方法完成文本語料庫的初始分段。
一旦完成初始詞典和文本語料庫分段過程,則動態改變詞典和分段的迭代過程開始根據接收的文本語料庫(或者訓練集合)優化統計語言模型(SLM),方框506。如圖所示,該程序開始于方框606,其中Markov概率計算器212利用初始詞典和分段開始使用分段文本語料庫進行語言模型訓練。即,給定初始詞典和初始分段,可由其產生統計語言模型。應注意雖然語言模型沒有得益于精煉的詞典和基于統計的分段(這將演變成下面的步驟),但是語言模型基本上是以接收的文本語料庫自身為基礎的。從而,雖然初始的語言模型。
在方框608中,在已進行初始語言模型訓練之后,利用基于SLM的分段對分段的文本語料庫(或者訓練集合)重新分段。已知句子w1,w2,…wn的情況下,存在M種對其分段的可能途徑(M≥1)。動態分段子例程216根據N-gram統計語言模型,計算各個分段(Si)的概率(pi)。根據一種實現,分段子例程216利用tri-gram(即N=3)統計語言模型確定任意給定分段的概率。采用Viterbi搜索算法找出最可能的分段Sk,這里Sk=arg max(pi) (3)在方框610中,利用由上述基于SLM的分段得到的重新分段的文本語料庫更新詞典。根據一種實現,建模代理104調用頻率分配子例程213計算詞典中各個單詞在接收的文本語料庫中的出現頻率,按照出現頻率對詞典分類。確定頻率最低的單詞,并將其從詞典中刪除。隨后當重新計算所有這些單詞的單一計數時,必須把該單詞的所有出現重新分成較小的單詞。可根據語料庫的大小確定這種刪除和重新分段的閾值。根據一種實現,600M項目的語料庫可利用為500的頻率閾值被包含在該詞典內。
在方框612中,更新語言模型,以反映動態產生的詞典和基于SLM的分段,Markov概率計算器212計算語言模型混亂性的量度(即相反的概率量度)。如果混亂性繼續會聚(趨近0),即得到改善,則在方框608繼續該程序,在方框608中,在有意進一步改善語言模型性能(以混亂性量度)的情況下,再一次修改詞典和分段。如果在方框614中確定對詞典和分段的新近修改沒有改善語言模型,則在方框616進一步確定混亂性是否已達到可接受的閾值。如果是,則該程序終止。
但是如果語言模型還未達到可接受的混亂性閾值,則在方框608,詞典生成子例程214從詞典中刪除在語料庫中出現頻率最低的單詞,在方框618把該單詞重新分成更小的單詞,程序繼續進行到方框610。
根據上述說明,要認識到以在統計上至少基于接收語料庫的子集的動態生成的詞典和分段規則作為前提,創新的語言建模代理104產生優化的語言模型。在這方面,和現有的語言模型相比,最后得到的語言模型具有改進的計算和預測能力。
備選實施例圖7是根據本發明另一實施例的其上存儲有若干指令,包括實現本發明的創新建模代理的指令的存儲介質的方框圖。一般來說,圖7圖解說明了具有存儲于其上的若干可執行的指令702的存儲介質/裝置700,所述可執行的指令702至少包括當被執行時,實現本發明的創新建模代理104的指令的一個子集。當被主系統的處理器執行時,可執行的指令702實現建模代理,產生供在主系統上執行或者以其它方式適用于主系統的其它應用程序的任意主機使用的文本語料庫的統計語言模型表示。
這里使用的存儲介質700是用來代表本領域的技術人員已知的若干存儲裝置和/或存儲介質中的任意一種,例如易失性存儲裝置、非易失性存儲裝置、磁性存儲介質、光學存儲介質等等。類似地,可執行的指令是用來反映本領域中已知的若干軟件語言中的任意一種,例如C++、Visual Basic、超文本鏈接標示語言(HTML)、Java、擴展標示語言(XML)等等。此外,要認識到存儲介質/裝置700不必和任意主系統協同定位。即,存儲介質/裝置700可駐留在與執行系統通信耦接,并且可被執行系統訪問的遠程服務器內。因此,圖7的軟件實現應被看作是例證性的,因為可以預料備選的存儲介質和軟件實現在本發明的精神和范圍內。
雖然已在特定于結構特征和/或方法步驟的語言方面說明了本發明,但是要明白在附加的權利要求中限定的本發明不必局限于所說明的具體特征或步驟。相反,只是作為實現要求權利的發明的例證形式公開了這些具體的特征和步驟。
權利要求
1.一種方法,包括根據由接收的語料庫獲得的詞典和分段形成初始的語言模型;和通過根據統計原理,動態地更新詞典和對語料庫重新分段,反復精煉初始語言模型,直到達到預測能力閾值為止。
2.按照權利要求1所述的方法,其中建立初始的語言模型的步驟包括根據從接收的語料庫分解的項目生成前綴樹數據結構;根據前綴樹數據結構確定N個項目或小于N個項目的子串;利用確定的子串填充所述詞典。
3.按照權利要求2所述的方法,其中N等于3。
4.按照權利要求1所述的方法,其中迭代改進初始語言模型的步驟包括通過確定各個分段的出現概率,對所述語料庫重新分段。
5.按照權利要求4所述的方法,其中利用N-gram語言模型計算確定分段的出現概率。
6.按照權利要求5所述的方法,其中N-grim語言模型是3-gram語言模型。
7.按照權利要求4所述的方法,其中利用兩個在先分段計算確定分段的出現概率。
8.按照權利要求4所述的方法,其中迭代改進語言模型的步驟包括根據重新分段的語料庫更新詞典。
9.按照權利要求8所述的方法,其中更新詞典包括確定詞典的各個單詞在接收的語料庫中的出現頻率;和從詞典中刪除所確定的頻率最低的單詞。
10.按照權利要求9所述的方法,還包括把刪除的單詞重新分成兩個或更多的較小單詞,并且利用重新分段的單詞更新詞典。
11.按照權利要求8所述的方法,還包括利用更新的詞典和重新分段的語料庫,計算語言模型的預測量度。
12.按照權利要求11所述的方法,其中預測量度是語言模型混亂性。
13.按照權利要求11所述的方法,還包括確定由于更新和重新分段的結果,語言模型的預測能力是否被改善;和如果預測能力被改善,則進行另外的更新和重新分段,直到確定沒有進一步的改進為止。
14.按照權利要求1所述的方法,其中利用最大匹配技術得到初始語言模型。
15.按照權利要求1所述的方法,其中預測能力被量化表述為混亂性量度。
16.按照權利要求15所述的方法,其中改進語言模型,直到混亂性量度被降低到低于可接受的預測閾值為止。
17.按照權利要求1所述的方法,還包括在應用程序中利用反復改進的語言模型預測另一語料庫的可能性。
18.按照權利要求17所述的方法,其中所述應用程序是拼寫和/或語法檢查器、字處理應用程序、語言翻譯應用程序、語音識別應用程序等的一種或多種。
19.一種包括若干可執行指令的存儲介質,所述可執行指令至少包括當被執行時,實現按照權利要求1所述的方法的指令子集。
20.一種計算機系統,包括其中保存若干可執行指令的存儲裝置;與所述存儲裝置耦接,至少執行所述若干可執行指令的指令子集,從而實現按照權利要求1所述的方法的執行單元。
21.一種包括若干可執行指令的存儲介質,所述可執行指令至少包括當被執行時,實現語言建模代理的指令子集,所述語言建模代理包括根據由接收的語料庫得到的詞典和分段建立初始語言模型的子例程,以及通過根據統計原理動態更新詞典并且對語料庫重新分段,反復改進初始語言模型,直到達到預測能力的閾值為止的子例程。
22.按照權利要求21所述的存儲介質,其中語言建模代理利用混亂性量度量化確定預測能力。
23.按照權利要求21所述的存儲介質,其中語言建模代理利用最大匹配技術,由接收的語料庫獲得詞典和分段。
24.按照權利要求21所述的存儲介質,其中建立初始語言模型的子例程根據從接收的語料庫分解的項目生成前綴樹數據結構,根據前綴樹確定N個項目或少于N個項目的子串,并且利用確定的子串填充詞典。
25.按照權利要求21所述的存儲介質,其中子例程通過確定各個分段的出現頻率,反復改進初始語言模型,并對語料庫進行重新分段,以反映改進的分段概率。
26.按照權利要求25所述的存儲介質,其中語言建模代理利用隱藏的Markov概率量度確定各個分段的出現概率。
27.按照權利要求19所述的存儲介質,還包括至少當被執行時,通過利用由語言建模代理建立的語言模型實現應用程序的指令子集。
28.一種系統,包括可拆卸地安放按照權利要求19所述的存儲介質的存儲介質驅動器;和與所述存儲介質驅動器耦接,至少訪問并執行駐留在可拆卸地安放的存儲介質上的若干可執行指令的指令子集,從而實現語言建模代理的執行單元。
29.一種建模代理,包括確定語料庫分段的似然性的統計計算器;和一個數據結構生成器,根據由接收的語料庫動態獲得的詞典和分段建立初始語言模型,并且反復改進語言模型,直到語料庫分段的似然性達到可接受的閾值為止。
30.按照權利要求29所述的建模代理,其中統計計算器利用Markov建模技術確定語料庫分段的似然性。
31.按照權利要求29所述的建模代理,其中數據結構生成器根據從接收的語料庫分解的項目生成前綴樹數據結構,根據前綴樹確定N個項目或小于N個項目的子串,并且利用確定的子串填充詞典。
32.按照權利要求31所述的建模代理,其中統計計算器確定被確定的子串的似然性,其中建模代理對語料庫重新分段,試圖提高子串似然性。
全文摘要
提供一種優化語言模型的方法,包括利用最大匹配技術,根據由接收的語料庫獲得的詞典和分段建立初始語言模型,并且通過根據統計原理,動態更新詞典和對語料庫進行重新分段,反復改進初始語言模型,直到達到預測能力的閾值為止。
文檔編號G10L15/06GK1387651SQ00815294
公開日2002年12月25日 申請日期2000年11月3日 優先權日1999年11月5日
發明者王海峰, 黃常寧, 李凱夫, 狄碩, 蔡東峰, 秦立峰, 郭建峰 申請人:微軟公司