專利名稱:裁剪語言模型的方法及裝置的制作方法
技術領域:
本發明涉及自然語言的處理技術,具體地,涉及語言模型裁剪技術。
技術背景語言模型在自然語言處理中得到了廣泛的應用,例如亞洲語言分詞、語音識別、亞洲語言的計算機輸入(IMF)等。然而,在許多實際應用中, 由于計算資源的限制,未經過裁剪的語言模型往往由于尺寸太大而無法直 接應用。因此,語言模型裁剪技術被用來將一個尺寸較大的模型裁剪成較 小的模型。裁剪的方法一般是根據一定的裁剪準則,刪除語言模型中存儲 的一些參數,從而達到減小模型尺寸的目的。以往的語言模型裁剪技術依據各種不同的裁剪準則決定語言模型中每 一個參數是否被裁。已提出的裁剪準則主要包括出現頻次(Count Cut-off) 和K-L距離(Kullback-Leibler Distance )。頻次準則參見Fredrick Jelinek于1990年發表的文章"Self-organized language modeling for speech recognition" , In Alexander Waibel and Kai-Fu Lee ( Eds. ), Readings in Speech Recognition, pages 450-506,在 此通過參考51入其整個內容。K-L距離準則參見Andreas Stolcke于1998年發表的文章 "Entropy-based Pruning of Backoff Language Models", In Proc. of DARPA News Transcription and Understanding Workshop , pages 270-274,在此通過參考引入其整個內容。然而,這些裁剪準則都是一般性的準則,沒有針對語言模型在實際應 用中的性能進行優化,因而模型裁剪不可避免地帶來了性能損失。另外,在Reinhard Kneser和Hermann Hey于1995年發表的文章 "Improved Backing-Off for M國Gram Language Modeling" (IEEE, p. 181-184,在此通過參考引入其整個內容)中公開了一種語言模型建模的方 法。在隨機語言模型的建模中,回退(backing-off)被廣泛地使用以處理 稀疏數據的問題。在該文獻中描述了回退的處理過程。發明內容為了改善上述現有技術中存在的問題,本發明提供了裁剪語言模型的 方法,以及裁剪語言模型的裝置。根據本發明的一個方面,提供了一種裁剪語言模型的方法,其中,該 語言模型包括多個n元組及其概率,以及多個低階的元組及其概率;上述 方法包括根據上述語言模型生成初始的基礎模型,該基礎模型不包括上 述多個n元組及其概率,只包含上述低階的元組及其概率;利用訓練語料 庫計算上述多個n元組中的每一個對于實際應用的重要性,該訓練語料庫 包括訓練數據和參考答案;以及將上述多個n元組中重要性高的至少一個 n元組及其概率加入上述基礎模型,作為裁剪后的語言模型。根據本發明的另一個方面,提供了一種裁剪語言模型的裝置,其中, 該語言模型包括多個n元組(n-gram )及其概率,以及多個低階的元組及 其概率;上述裝置包括基礎模型生成單元,根據上述語言模型生成初始 的基礎模型,該基礎模型不包括上述多個n元組及其概率,只包含上述低 階的元組及其概率;重要性計算單元,利用訓練語料庫計算上述多個n元 組中的每一個對于實際應用的重要性,該訓練語料庫包括訓練數據和參考 答案;以及添加單元,將上述多個n元組中重要性高的至少一個n元組及 其概率加入上述J^出模型,作為裁剪后的語言模型。
相信通過以下結合附圖對本發明具體實施方式
的說明,能夠使人們更 好地了解本發明上述的特點、優點和目的。圖1是根據本發明的一個實施例的裁剪語言模型的方法的流程圖; 圖2是根據本發明的實施例的計算二元組重要性的一個實例的流程圖;圖3是根據本發明的一個可選實施例的裁剪語言模型的方法的流程圖;以及圖4是根據本發明的另 一個實施例的裁剪語言模型的裝置的方框圖。
具體實施方式
下面就結合附圖對本發明的各個優選實施例進行詳細的說明。 裁剪語言模型的方法圖l是根據本發明的一個實施例的裁剪語言模型的方法的流程圖。如 圖1所示,首先,在步驟101,根據語言模型生成初始的基礎模型。在本實施例中,上述語言模型是本領域的技術人員公知用于實際應用, 例如亞洲語言分詞、語音識別、亞洲語言的計算機輸入等的任何n元語言 模型,本發明對此沒有任何限制。例如,參見Yoshihiko Gotoh和Steve Renals于2003年發表的文章"Statistical Language Modeling", Text and Speech Triggered Information Access, S. Renals and G. Grefenstette (eds.), pages 78-105, Springer, 2003,以及Jianfeng Gao, Mu Li和Chang-Ning Huang于2003年發表的文章 "Improved Source-channel Models for Chinese Word Segmentation", In Proc. of the 41st Annual Meeting of Association for Computational Linguis-tics (ACL-2003), pages 272-279,在 此通過參考引入其全部內容。更具體地說,語言模型是一種可以為任意詞串給出概率的模型。例如<formula>formula see original document page 11</formula>通常,頻率高的詞串具有高的概率而生僻詞串具有低的概率。現有技術已有多種語言模型,其中最成功的語言模型是n-grarn語言 才莫型。n-gram i吾言模型利用了 HMM (Hidden Markov Model)理論, 一個 給定詞串的概率被分解為依賴于前n - 1個詞的每個詞的概率的積。例如, 當n=2 (2元組)時,有Pr( "I like playing football") = Pr(I) X Pr(like I I) X Pr(playing | like) X Pr(football I playing)當n=3 (3元組)時,每個詞的概率取絕于之前的2個詞,此時,應 使用Pr(playing | like, I)代替Pr(playing | like)。為了生成任意輸入詞串的概率,需要在2元語言模型中保存所有2元 組概率,在3元語言模型中保存所有3元組概率。然而,由于詞匯量的龐 大,這是不現實的。對于IOOK.詞的詞匯量來說,需要保存10G個概率值。 假設使用C++的浮點數(占4字節)來表示一個概率值,那么需要40G 字節的存儲空間。為了解決這個問題,模型中通常只保存頻率高的(常出現的)元組。 頻率低的(不常出現的)元組則通過回退方法在線計算得出。例如,如果 3元組(I, like, playing)沒有被包含在3元語言模型中,則可以利用以下方式 回退獲得Pr (playing | like, I) + Pr(playing | like)X alpha(like, I) 其中,alpha(like, I)是回退系數。進而,如果(like,playing)的概率沒有出現在模型中,也可以回退獲得Pr(playing | like) ■> Pr(playing) X alpha(like)所有1元組(n=l)必須保存在n元語言模型中。回退系數alpha可以以下列方式獲得1 - y ,Pr(w,. I /汰e)關于更多的現有技術的細節,請參考Slava M. Katz著的"Estimation of Probabilities from Sparse Data for the Language Model Component of aSpeech Recognizer"(發表于IEEE TRANSACTIONS ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING, VOL. ASP畫35, NO. 3, MARCH 1987 ) 因此,對于3元語言模型來說,其中包含一些3元組概率、 一些2元 組概率(以及回退系數)以及全部1元組概率(以及回退系數)。3元組概 率通常占用其中大部分存儲空間。裁剪一個3元語言模型即從該模型中去 除掉一些3元組概率。類似地,2元語言模型包含2元組概率、單元組概 率以及回退系數,其中2元組概率占用大部分存儲空間。裁剪一個2元語 言模型意味著從該模型中去除掉一些3元組概率。在本實施例中,通過去掉多個頂階n元組來對一個n元語言模型進行 裁剪,其中,n可依是l、 2、 3…等。因此,裁剪可以針對任何n元語言 模型進行,例如對二元語言模型(n=2)進行裁剪,本發明對此沒有任何 限制。在步驟101,初始的基礎模型可以通過將上述n元語言模型中的全部 n元組及其概率去掉獲得,也就是說,該初始的基礎模型只包括上述語言 模型中的低階(小于n)的元組及其概率,而不包括上述多個n元組及其 概率。然而,可選地,也可以根據實際需要去掉上述語言模型中的部分n 元組來形成初始的基礎模型,本發明對此沒有任何限制。在本實施例中,基礎模型通過從未裁剪的語言模型中去除全部頂階元 組來獲得。例如當n-2時,未裁剪的2元語言模型包括2元組概率和1元 組概率(以及回退系數),基礎模型排除了 2元組概率。這樣,裁剪2元語 言模型就成為向基礎模型中添加一些最重要的2元組概率,并將添加后的 基礎模型作為裁剪后的語言模型。接著,在步驟105,利用訓練語料庫計算n元組對于實際應用的重要 性。該訓練語料庫包括訓練數據和參考答案,其中參考答案是實際應用針 對訓練數據的參考結果。在本實施例中,該訓練語料庫中的參考答案可以 是利用上述未裁剪的語言模型或本領域的技術人員公知的其它方法獲得的 參考答案或通過手工獲得的正確答案,本發明對此沒有任何限制。訓練數據和參考答案的具體細節將在下面針對每個具體的實際應用進行詳細說 明。在本實施例中,實際應用包括本領域的技術人員公知利用語言模型的 任何應用,包括但不限于亞洲語言分詞、語音識別、亞洲語言的計算才幾輸 入等,以及其它公知的和將來發展的任何其它應用,本發明對此沒有任何 限制。下面參考圖2對步驟105中利用訓練語料庫計算上述n元組對于實際 應用的重要性的過程進行詳細描述。圖2是根據本發明的實施例的計算二 元組重要性的一個實例的流程圖。其中,以亞洲語言分詞為例對本實施例 進行描述,亞洲語言分詞包括漢語分詞、日語分詞、韓語分詞等等,下面 以漢語分詞為例對本實施例進行描述。此外,本實施例以二元語言模型為 例進行描述。但是,應該理解,本發明并不限于漢語分詞和二元語言模型, 而是同樣適用于其它實際應用和任意n元語言模型。具體地,對于漢語分詞,上述訓練語料庫(在此標記為Ml)中的訓 練數據是一個或多個未切分字串,其中,每個字串構成一個句子。訓練語 料庫Ml中的參考答案可以是利用未裁剪的二元語言模型對每個未切分字 串進行切分獲得的參考詞串,或者是人工進行了切分的正確詞串。此外, 訓練語料庫Ml中的參考答案也可以是從下面的候選詞串中選擇的參考詞 串,例如,可以對下面的候選詞串進行本領域的技術人員公知的編輯距離 計算,然后選擇距離最近的候選詞串作為上述參考詞串。本發明對訓練語 料庫M1中的參考答案沒有任何限制,只要能夠利用其根據實際應用對語 言模型進行裁剪即可。例如未切分字串包括已有的疑問 參考詞串包括/已有/的/疑問如圖2所示,首先,在步驟201,將需要計算重要性的多個二元組的 重要性初始化為0。接著,在步驟203,對訓練語料庫Ml中的每一個句子,即每一個未切分字串,利用上述在步驟101中生成的初始的基礎模型(在此標記為 M2),生成N個候選詞串。在本實施例中,生成N個候選詞串的方法可以 是本領域的技術人員公知的任何利用語言^^莫型分詞的方法,本發明對此沒 有任何限制,只要能夠生成候選詞串即可。具體地,例如,可以首先獲得所有的候選詞,對于上面的未切分字串, 候選詞包括包括已有的疑問包括已有有的疑問然后,獲得所有可能的切分組合,并計算每種組合的概率,將概率較 大的前N個組合作為上述N個候選詞串。在這里,計算每種組合的概率的 方法可以是本領域的技術人員公知的任何方法,本發明對此沒有任何限制。 例如,獲得的N個候選詞串包括包括/已有/的/疑問包括/已/有的/疑問接著,在步驟204,計算基礎模型M2在進行漢語分詞時出錯的可能 性。例如,在本實施例中,可以利用誤分類函數來表示基礎模型M2在進 行漢語分詞時出錯的可能性。在本實施例中,誤分類函數可以利用如下公 式(1)計算:其中,"表示誤分類函數(即上述出錯的可能性),^表示基礎模型 M2對上述參考詞串進行評價的得分,^表示基礎模型M2對上述N個候 選詞串中第r個候選詞串進行評價的得分,1/是常數。在這里,!^出模型M2對參考詞串和候選詞串進行評價的方法可以是 本領域的技術人員公知的任何方法,本發明對此沒有任何限制,只要能夠 對參考詞串和候選詞串的分詞結果的好壞作出評價并給出得分即可。例如,在中文分詞的應用中,假i殳輸入的未分詞的字符串為"包括已有 的疑問",對于這個字符串可能有兩個候選的分詞方式"包括/已有/的/疑問,, 和"包括/已/有的/疑問"。它們都可以;敗標記為詞的序列。哪一個^皮選中作為輸出取決于它們的得分,最簡單的評價得分的方式是采用n元語言模型 的概率的對數。雖然還有一些考慮其它因素的復雜的評價得分的方法,但 是,對于語言模型裁減的任務來說,那些因素都是不變量,因此不會產生 影響。定義g, = 1ogPr(v^,W2,…,w")如果11 = 2,則有Pr("包括/已/有的/疑問")=Pr(包括)xPr(已|包括)xPr(有的|已)x Pr(疑問|有的).這時,得分以下列方式被評價gf 二 logPrO,)十logPr(w2 I wJ +…+ logPr(w" | w")當應用未裁剪的2元語言模型并假設概率(m^, w,)在模型中存在(表 示為/M^lvO)時,該概率被直接使用logPr(w少I wx) = 1og/V(vt^ I當應用基礎語言模型時,由于沒有2元組概率,因此所有2元組概率 需要通過回退方法計算獲得,即這里,下標"B"表示來自基礎模型的參數。對于一個具體的2元組(h^,h^),概率化g&…,》-^""wj差是用來計算該2元組重要性的基礎要素,并可以應用到下面所述的公式(4 ) 中。基于基礎語言模型計算參考詞串的得分是g0 := log尸s (W)+ log 8 (Wl ) + l0g尸S (W2 ) + '。g "fi (W2 ) +…+ l0g尸S (W")=Z('。g尸sO,) + log"fi(w,))+ log尸s(vO其中, 是參考詞串。多個候選詞串的平均評價得分作為公式(1)的一部分被計算,即其中,g,以與&可用類似的方式計算獲得。利用所述基礎模型計算該n元組的概率的方法是(對于2元語言模型 的裁剪)其中,<formula>formula see original document page 17</formula>此外,應該理解,雖然在這里利用誤分類函數來表示基礎模型M2在 進行漢語分詞時出錯的可能性,但是本發明并不限于此,可以利用本領域 的技術人員公知的任何方法來表示_^5出模型M2在進行漢語分詞時出錯的 可能性。優選地,可以在步驟205,利用如下公式(2)將誤分類函數轉換為損 失函數<formula>formula see original document page 17</formula>其中,丄(力表示上述損失函數,)z是常數,在這里表示斜率系數。在這里,損失函數將誤分類函數映射在o-i之間,實際上,就是對誤分類函數J的曲線進行了平滑。應該理解,步驟205是可選的步驟。接著,在步驟207,對每一個二元組,計算該二元組在參考詞串中出現的次數,在本實施例中用"。表示。接著,在步驟208,對每一個二元組,計算該二元組在N個候選詞串中出現的平均次數,在本實施例中用w'表示。具體地,可以利用如下公式(3)計算平均次數<formula>formula see original document page 17</formula>(3)其中,",表示該二元組在N個候選詞串中第/*個候選詞串中出現的次 數,//是常數,在這里表示偏向系數,V越大,"'的計算越偏向第一個候選 詞串。接著,在步驟209,利用如下公式(4)計算該二元組對于當前句子的重要性/<formula>formula see original document page 18</formula>其中,—p(WW&)表示上述二元組的重要性,M^表示上述二元組中的 第一個詞,H^表示上述二元組中的第二個詞,&表示訓練語料庫中的第i個句子(即當前句子),尸M^lw,》是該二元組在上述語言模型中的二元組 概率,1og/M^)+logctB(W;c)表示該二元組的根據基礎模型M2計算的概率, 其中尸M^)是1^出模型M2中的一元組概率,w是基礎模型M2中的回退 系數。在這里,利用回退方法根據基礎模型M2計算該二元組的概率,回退 方法可以是本領域的技術人員公知的任何方法,例如,參見Reinhard Kneser和Hermann Hey于1995年發表的文章"Improved Backing畫Off for M-Gram Language Modeling" (IEEE, p. 181-184 ),前面已經進行的詳細 說明,在此不再重復。接著,在步驟210,利用如下公式(5)更新該二元組對于訓練語料庫 Ml的重要性= Z'm/7(M^W"&) ( 5 )在該步驟,將該二元組對于訓練語料庫M1中的每一個句子的重要性 累加,獲得該二元組對于訓練語料庫M1的重要性。接著,在步驟211,判斷是否計算完所有需要計算重要性的二元組的 重要性。如果在步驟211判斷還有二元組的重要性沒有計算,則返回步驟 206進行計算。反之,方法進行到步驟212。在步驟212,判斷是否針對訓練語料庫Ml中的每一個句子對二元組 的重要性進行了計算。如果在步驟212判斷還有訓練語料沒有處理完,則 返回202,在步驟203繼續進行計算。反之,方法結束。應該理解,以上雖然描述了如何計算二元組的重要性,但是,對于其它任何n元組,同樣可以利用上述參考圖2的方法計算它們的重要性,在 此不再贅述。此外,應該理解,以上雖然計算了 n元組對于漢語分詞的重要性,但 是,對于其它亞洲語言分詞,例如日語分詞、韓語分詞等等,同樣可以利 用上述參考圖2的方法計算n元組對于其它亞洲語言分詞的重要性,在此 不再贅述。此外,對于其它實際應用,例如語音識別、亞洲語言的計算機輸入等 等,上述參考圖2的方法同樣適用。不同的是,對于語言識別,上述訓練 語料庫中的訓練數據為一個或多個輸入語音,上述訓練語料庫中的參考答案是利用未裁剪的二元語言模型對每個輸入語音進行識別獲得的參考文 本,或者是人工進行了識別獲得的正確文本,或者是從候選文本中選擇的 參考文本(例如,可以對候選文本進行本領域的技術人員公知的編輯距離 計算,然后選擇距離最近的候選文本作為上述參考文本)。因此通過上述圖 2的方法流程同樣可以計算出n元組對于語音識別的重要性,在此不再贅 述。同樣,對于亞洲語言的計算機輸入,上述訓練語料庫中的訓練數據為 一個或多個記音符號串,例如對于漢語的計算機輸入,記音符號串為拼音 串,對于日語的計算機輸入,記音符號串為平假名和片假名串。上述訓練 語料庫中的參考答案是利用未裁剪的二元語言模型對每個記音符號串進行 轉換獲得的參考詞串,或者是人工進行了轉換獲得的正確詞串,或者是從 候選詞串中選擇的參考詞串(例如,可以對候選詞串進行本領域的技術人 員公知的編輯距離計算,然后選擇距離最近的候選詞串作為上述參考詞 串),例如,對于拼音串,經過轉換獲得漢語詞串,對于平假名和片假名串, 經過轉換獲得日語詞串。因此通過上述圖2的方法流程同樣可以計算出n 元組對于亞洲語言的計算機輸入的重要性,在此不再贅述。最后,在步驟110,將上述多個n元組中重要性高的一個或多個n元 組及其概率加入上述初始的基礎模型,獲得裁剪后的語言模型。此外,在本發明的一個可選實施例中,可以把步驟110中獲得的裁剪后的語言模型看作另一個基礎模型,并進一步對其添加!l元組,以獲得希 望尺寸的語言模型。圖3是根據本發明的一個可選實施例的裁剪語言模型的方法的流程圖。在圖3中,首先,在步驟301,根據上述未裁減語言模型和上述裁剪 后的語言模型獲得待添加的多個n元組及其概率。在本實施例中,獲得的 待添加的多個n元組為在上述未裁減語言模型中包括而在上述裁剪后的語 言模型中不包括的所有n元組。接著,在步驟305,利用訓練語料庫計算上述待添加的多個n元組對 于實際應用的重要性。在本實施例中,計算待添加的多個n元組對于實際 應用的重要性的方法,與上述參考圖1的實施例中的步驟105利用訓練語 料庫計算n元組對于實際應用的重要性的方法相同,在此不再贅述。接著,在步驟310,將上述待添加的多個n元組中重要性高的一個或 多個n元組及其概率加入上述裁剪后的語言模型。接著,在步驟315,判斷裁剪后的語言模型是否達到預定尺寸。預定 尺寸是根據實際需要定義的任意尺寸,本發明對此沒有任何限制。如果在 步驟315確定裁剪后的語言模型小于預定尺寸,則返回301繼續進行添加, 如果裁剪后的語言模型大于預定尺寸,則減少在上一步驟中添加的個數, 從而達到預定尺寸。最后,在裁剪后的語言模型達到預定尺寸后,在步驟 320,方法結束。通過本實施例的裁剪語言模型的方法,由于裁剪準則基于語言模型在 實際應用中的性能進行優化,在裁剪到同樣大小的模型時,語言模型的性 能損失更小。另一方面,在保持同樣的性能的條件下,相比其它已有的裁 剪方法,該方法可以^型裁剪得更小。裁剪語言模型的裝置在同一發明構思下,圖4是根據本發明的另一個實施例的裁剪n元語 言模型的裝置的方框圖。下面就結合該圖,對本實施例進行描述。對于那 些與前面實施例相同的部分,適當省略其說明。如圖4所示,本實施例提供了一種裁剪語言模型的裝置400,其中, 該語言模型包括多個n元組及其概率,以及多個低階(小于n)的元組及 其概率;該裝置400包括基礎模型生成單元401,根據上述語言模型生 成初始的基礎模型,該基礎模型不包括上述多個n元組及其概率,只包含 低階的元組及其概率;重要性計算單元405,利用訓練語料庫計算上述多 個n元組中的每一個對于實際應用的重要性,該訓練語料庫包括訓練數據 和參考答案;以及添加單元410,將上述多個n元組中重要性高的至少一 個n元組及其概率加入上述1^出模型,作為裁剪后的語言模型在本實施例中,上述語言模型是本領域的技術人員7>知用于實際應用, 例如亞洲語言分詞、語音識別、亞洲語言的計算機輸入等的任何n元語言 模型,本發明對此沒有任何限制。例如,參見Yoshihiko Gotoh和Steve Renals于2003年發表的文章"Statistical Language Modeling", Text and Speech Triggered Information Access, S. Renals and G. Grefenstette (eds.), pages 78-105, Springer, 2003,以及Jianfeng Gao, Mu Li和Chang-Ning Huang于2003年發表的文章 "Improved Source-channel Models for Chinese Word Segmentation", In Proc. of the 41st Annual Meeting of Association for Computational Linguis畫tics (ACL-2003), pages 272-279,在 此通過參考引入其全部內容。在本實施例中,通過去掉多個頂階n元來對一個n元語言模型進行裁 剪,其中,n可依是l、 2、 3…等。因此,裁剪可以針對任何n元語言模 型進行,例如對二元語言模型(11=2)進行裁剪,本發明對此沒有任何限 制。在本實施例中,基礎模型生成單元401可以通過將上述n元語言模型 中的全部n元組及其概率去掉獲得初始的基礎模型,也就是說,該初始的 基礎模型只包括低階元組及其概率,而不包括上述多個n元組及其概率。 然而,可選地,也可以根據實際需要去掉上述語言模型中的部分n元組來 形成初始的基礎模型,本發明對此沒有任何限制。在本實施例中,重要性計算單元405利用訓練語料庫計算n元組對于實際應用的重要性。該訓練語料庫包括訓練數據和參考答案,其中參考答 案是實際應用針對訓練數據的參考結果。在本實施例中,該訓練語料庫中 的參考答案可以是利用上述未裁剪的語言模型或本領域的技術人員公知的 其它方法獲得的參考答案或通過手工獲得的正確答案,本發明對此沒有任 何限制。訓練數據和參考答案的具體細節將在下面針對每個具體的實際應 用進行詳細說明。在本實施例中,實際應用包括本領域的技術人員公知利用語言模型的 任何應用,包括但不限于亞洲語言分詞、語音識別、亞洲語言的計算機輸 入等,以及其它公知的和將來發展的任何其它應用,本發明對此沒有任何 限制。下面參考圖2對重要性計算單元405利用訓練語料庫計算上述多個n 元組對于實際應用的重要性的過程進行詳細描述。圖2是根據本發明的實 施例的計算二元組重要性的一個實例的流程圖。其中,以亞洲語言分詞為 例對本實施例進行描述,亞洲語言分詞包括漢語分詞、日語分詞、韓語分 詞等等,下面以漢語分詞為例對本實施例進行描述。此外,本實施例以二 元語言模型為例進行描述。但是,應該理解,本發明并不限于漢語分詞和 二元語言模型,而是同樣適用于其它實際應用和任意n元語言模型。具體地,對于漢語分詞,上述訓練語料庫(在此標記為Ml)中的訓練數據是一個或多個未切分字串,其中,每個字串構成一個句子。訓練語料庫Ml中的參考答案可以是利用未裁剪的二元語言模型對每個未切分字串進行切分獲得的參考詞串,或者是人工進行了切分的正確詞串。此外,訓練語料庫Ml中的參考答案也可以是從下面的候選詞串中選擇的參考詞串,例如,可以對下面的候選詞串進行本領域的技術人員公知的編輯距離計算,然后選擇距離最近的候選詞串作為上述參考詞串。本發明對訓練語料庫M1中的參考答案沒有任何限制,只要能夠利用其根據實際應用對語言模型進行裁剪即可。 例如未切分字串包括已有的疑問參考詞串包括/已有/的/疑問如圖2所示,首先,在步驟201,將需要計算重要性的多個二元組的 重要性初始化為0。接著,在步驟203,對訓練語料庫M1中的每一個句子,即每一個未 切分字串,利用上述在步驟101中生成的初始的基礎模型(在此標記為 M2),生成N個候選詞串。在本實施例中,生成N個候選詞串的方法可以 是本領域的技術人員公知的任何利用語言模型分詞的方法,本發明對此沒 有任何限制,只要能夠生成候選詞串即可。具體地,例如,可以首先獲得所有的候選詞,對于上面的未切分字串, 候選詞包括包括已有的疑問包括已有有的疑問然后,獲得所有可能的切分組合,并計算每種組合的概率,將概率較 大的前N個組合作為上述N個候選詞串。在這里,計算每種組合的概率的 方法可以是本領域的技術人員公知的任何方法,本發明對此沒有任何限制。 例如,獲得的N個候選詞串包括包括/已有/的/疑問包4舌/已/有的/疑問接著,在步驟204,計算基礎模型M2在進行漢語分詞時出錯的可能 性。例如,在本實施例中,可以利用誤分類函數來表示基礎模型M2在進 行漢語分詞時出錯的可能性。在本實施例中,誤分類函數可以利用如下公 式(1)刊<formula>formula see original document page 23</formula>其中,d表示誤分類函數(即上述出錯的可能性),^表示^ 出模型M2對上述參考詞串進行評價的得分,g,表示基礎模型M2對上述N個候 選詞串中第,個候選詞串進行評價的得分,iy是常數。在這里,^ 出才莫型M2對參考詞串和候選詞串進行評價的方法可以是 本領域的技術人員公知的任何方法,本發明對此沒有任何限制,只要能夠對參考詞串和候選詞串的分詞結果的好壞作出評價并給出得分即可。此外,應該理解,雖然在這里利用誤分類函數來表示基礎模型M2在 進行漢語分詞時出錯的可能性,但是本發明并不限于此,可以利用本領域 的技術人員公知的任何方法來表示1^出模型M2在進行漢語分詞時出錯的 可能性。優選地,可以在步驟205,利用如下公式(2)將誤分類函數轉換為損 失函數1 + exp卜y x d)其中,丄(句表示上述損失函數,)/是常數,在這里表示斜率系數。在 這里,損失函數將誤分類函數映射在0-1之間,實際上,就是對誤分類函 數d的曲線進行了平滑。應該理解,步驟205是可選的步驟。接著,在步驟207,對每一個二元組,計算該二元組在參考詞串中出 現的次數,在本實施例中用 表示。接著,在步驟208,對每一個二元組,計算該二元組在N個候選詞串 中出現的平均次數,在本實施例中用w'表示。具體地,可以利用如下公式 (3)計算平均次數,"] (3)其中,w,表示該二元組在N個候選詞串中第r個候選詞串中出現的次 數,i/是常數,在這里表示偏向系數,w越大,w'的計算越偏向第一個候選 詞串。接著,在步驟209,利用如下公式(4)計算該二元組對于當前句子的 重要性<formula>formula see original document page 24</formula>(4)其中,/柳p(H^HV&)表示上述二元組的重要性,W;c表示上述二元組中的第一個詞,^表示上述二元組中的第二個詞,&表示訓練語料庫中的第i個句子(即當前句子),/M^i^)是該二元組在上述語言模型中的二元組概率,1og/VH^)+logc^(w,;c)表示該二元組的根據基礎模型M2計算的概率, 其中iV^)是^5出模型M2中的一元組概率,《5 AJ^出模型M2中的回退 系數。在這里,利用回退方法根據基礎模型M2計算該二元組的概率,回退 方法可以是本領域的技術人員公知的任何方法,例如,參見Reinhard Kneser和Hermann Hey于1995年發表的文章"Improved Backing-Off for M-Gram Language Modeling", IEEE, p. 181-184,在此通過參考引入其 整個內容。接著,在步驟210,利用如下公式(5)更新該二元組對于訓練語料庫 Ml的重要小生二 fmp("v^M^;iS,) ( 5 )在該步驟,將該二元組對于訓練語料庫M1中的每一個句子的重要性 累加,獲得該二元組對于訓練語料庫Ml的重要性。接著,在步驟211,判斷是否計算完所有需要計算重要性的二元組的 重要性。如果在步驟211判斷還有二元組的重要性沒有計算,則返回步驟 206進行計算。反之,方法進行到步驟212。在步驟212,判斷是否針對訓練語料庫Ml中的每一個句子對二元組 的重要性進行了計算。如果在步驟212判斷還有訓練語料沒有處理完,則 返回202,在步驟203繼續進行計算。反之,方法結束。應該理解,以上雖然描述了重要性計算單元405如何計算二元組的重 要性,但是,對于其它任何n元組,同樣可以利用上述參考圖2的方法計 算它們的重要性,在此不再贅述。此外,應該理解,以上重要性計算單元405雖然計算了 n元組對于漢 語分詞的重要性,但是,對于其它亞洲語言分詞,例如日語分詞、韓語分 詞等等,同樣可以利用上述參考圖2的方法計算n元組對于其它亞洲語言分詞的重要性,在此不再贅述。此外,對于其它實際應用,例如語音識別、亞洲語言的計算機輸入等等,上述參考圖2的方法同樣適用。不同的是,對于語言識別,上述訓練 語料庫中的訓練數據為 一個或多個輸入語音,上述訓練語料庫中的參考答案是利用未裁剪的二元語言模型對每個輸入語音進行識別獲得的參考文 本,或者是人工進行了識別獲得的正確文本,或者是從候選文本中選擇的 參考文本(例如,可以對候選文本進行本領域的技術人員公知的編輯距離 計算,然后選擇距離最近的候選文本作為上述參考文本)。因此通過上述圖 2的方法流程同樣可以計算出n元組對于語音識別的重要性,在此不再贅 述。同樣,對于亞洲語言的計算機輸入,上述訓練語料庫中的訓練數據為 一個或多個記音符號串,例如對于漢語的計算機輸入,記音符號串為拼音 串,對于日語的計算機輸入,記音符號串為平假名和片假名串。上述訓練 語料庫中的參考答案是利用未裁剪的二元語言模型對每個記音符號串進行 轉換獲得的參考詞串,或者是人工進行了轉換獲得的正確詞串,或者是從 候選詞串中選擇的參考詞串(例如,可以對候選詞串進行本領域的技術人 員公知的編輯距離計算,然后選擇距離最近的候選詞串作為上述參考詞 串),例如,對于拼音串,經過轉換獲得漢語詞串,對于平假名和片假名串, 經過轉換獲得日語詞串。因此通過上述圖2的方法流程同樣可以計算出n 元組對于亞洲語言的計算機輸入的重要性,在此不再贅述。在本實施例中,添加單元410將上述多個n元組中重要性高的一個或 多個n元組及其概率加入上述初始的基礎模型,獲得裁剪后的語言模型。此外,在本發明的一個可選實施例中,可以對添加單元410獲得的裁 剪后的語言模型進行進一步添加,以獲得希望尺寸的語言模型。在該可選實施例中,裁剪語言模型的裝置400還包括待添加n元組獲 得單元,根據上述語言模型和上迷裁剪后的語言模型獲得待添加的多個n 元組及其概率。在本實施例中,獲得的待添加的多個n元組為在上述語言 模型中包括而在上述裁剪后的語言模型中不包括的所有或部分n元組,本發明對此沒有任何限制。在該可選實施例中,重要性計算單元405利用訓練語料庫計算上述待 添加的多個n元組對于實際應用的重要性。在本實施例中,計算待添加的 多個n元組對于實際應用的重要性的方法,與上述參考圖l的實施例中的 步驟105利用訓練語料庫計算n元組對于實際應用的重要性的方法相同, 在此不再贅述。在該可選實施例中,添加單元410將上述待添加的多個n元組中重要 性高的一個或多個n元組及其概率加入上述基礎模型,從而作為裁剪后的 i吾言模型。此外,在該可選實施例中,裁剪語言模型的裝置400可以利用上述待 添加n元組獲得單元、上述重要性計算單元405和上述添加單元410多次 重復對上述裁剪后的語言模型進行添加,直到上述裁剪后的語言模型達到 預定尺寸。預定尺寸是根據實際需要定義的任意尺寸,本發明對此沒有任 何限制。本實施例的裁剪語言模型的裝置400及其各個組成部分,可以用專用 的電路或芯片構成,也可以通過計算機(處理器)執行相應的程序來實現。通過本實施例的裁剪語言模型的裝置400,由于裁剪準則基于語言模 型在實際應用中的性能進行優化,在裁剪到同樣大小的模型時,語言模型 的性能損失更小。另一方面,在保持同樣的性能的條件下,相比其它已有 的裁剪方法,該方法可以M型裁剪得更小。以上雖然通過一些示例性的實施例詳細地描述了本發明的裁剪語言模 型的方法,以及裁剪語言模型的裝置,但是以上這些實施例并不是窮舉的, 本領域技術人員可以在本發明的精神和范圍內實現各種變化和修改。因此, 本發明并不限于這些實施例,本發明的范圍僅由所附權利要求為準。
權利要求
1.一種裁剪語言模型的方法,其中,該語言模型包括多個n元組及其概率,以及多個低階的元組及其概率;上述方法包括根據上述語言模型生成初始的基礎模型,該基礎模型不包括上述多個n元組及其概率;利用訓練語料庫計算上述多個n元組中的每一個對于實際應用的重要性,該訓練語料庫包括訓練數據和參考答案;以及將上述多個n元組中重要性高的至少一個n元組及其概率加入上述基礎模型,作為裁剪后的語言模型。
2. 根據權利要求l所述的裁剪語言模型的方法,其中,上述利用訓 練語料庫計算上述多個n元組中的每一個對于實際應用的重要性的步驟包 括計算上述基礎模型對上述訓練數據進行上述實際應用時出錯的可能性;計算上述n元組在上述訓練語料庫中出現的次數;以及 計算上述n元組在上述實際應用中出現的次數; 其中根據上述出錯的可能性、上述n元組在上述訓練語料庫中出現的 次數、和上述n元組在上述實際應用中出現的次數,計算上述重要性。
3. 根據權利要求2所述的裁剪語言模型的方法,其中,上述利用訓 練語料庫計算上述多個n元組中的每一個對于實際應用的重要性的步驟還 包括利用上述^f出模型計算上述n元組的概率;其中根據上述出錯的可能性、上述n元組在上述訓練語料庫中出現的 次數、上述n元組在上述實際應用中出現的次數、上述n元組在上述語言 模型中的概率、和上述n元組的利用上述基礎模型計算出的概率,計算上 述重要性。
4. 根據權利要求3所述的裁剪語言模型的方法,其中,上述實際應用是亞洲語言分詞,上述訓練數據包括未切分字串,上述參考答案包括對 上述未切分字串進行切分的參考詞串,以及上述計算上述基礎模型對上述訓練數據進行上述實際應用時出錯的可能性的步驟包括計算上述基礎模型對上述參考詞串進行評價的得分;以及 計算上述基礎模型對利用上述基礎模型對上述未切分字串進行切分的多個候選詞串進行評價的平均得分。
5. 根據權利要求4所述的裁剪語言模型的方法,其中,上述計算上 述n元組在上述訓練語料庫中出現的次數的步驟包括計算上述n元組在上述參考詞串中出現的次數。
6. 根據權利要求4所述的裁剪語言模型的方法,其中,上述計算上 述n元組在上述實際應用中出現的次數的步驟包括計算上述n元組在利用上述J^i^莫型對上述未切分字串進行切分的多 個候選詞串中出現的平均次數。
7. 根據權利要求3所述的裁剪語言模型的方法,其中,上述實際應 用是語音識別,上述訓練數據包括輸入語音,上述參考答案包括對上述輸 入語音進行識別的參考文本,以及上述計算上迷基礎模型對上述訓練數據 進行上述實際應用時出錯的可能性的步驟包括計算上述基礎模型對上述參考文本進行評價的得分;以及 計算上述基礎模型對利用上述基礎模型對上述輸入語音進行識別的多 個候選文本進行評價的平均得分。
8. 根據權利要求7所述的裁剪語言模型的方法,其中,上述計算上 述n元組在上述訓練語料庫中出現的次數的步驟包括計算上述n元組在上述參考文本中出現的次數。
9. 根據權利要求7所述的裁剪語言模型的方法,其中,上述計算上 述n元組在上述實際應用中出現的次數的步驟包括計算上述n元組在利用上述^^5出模型對上述輸入語音進行識別的多個 候選文本中出現的平均次數。
10. 根據權利要求3所述的裁剪語言模型的方法,其中,上述實際應用是亞洲語言的計算機輸入,上述訓練數據包括記音符號串,上述參考答 案包括對上述記音符號串進行轉換的參考詞串,以及上述計算上述基礎模型對上述訓練數據進行上述實際應用時出錯的可能性的步驟包括 計算上述基礎模型對上述參考詞串進行評價的得分;以及 計算上述^f出模型對利用上述基礎模型對上述記音符號串進行轉換的多個候選詞串進行評價的平均得分。
11. 根據權利要求10所述的裁剪語言模型的方法,其中,上述計算 上述n元組在上述訓練語料庫中出現的次數的步驟包括計算上述n元組在上述參考詞串中出現的次數。
12. 根據權利要求10所述的裁剪語言模型的方法,其中,上述計算 上述n元組在上述實際應用中出現的次數的步驟包括計算上述n元組在利用上述基礎模型對上述記音符號串進行轉換的多 個候選詞串中出現的平均次數。
13. 根據權利要求l所述的裁剪語言模型的方法,其中,上述初始的 基礎模型通過將上述語言模型中的上述多個n元組及其概率去掉獲得。
14. 根據權利要求l所述的裁剪語言模型的方法,其中,上述訓練語 料庫中的上述參考答案包括利用上述語言模型獲得的參考答案或通過手工 獲得的正確答案。
15. 根據權利要求l所述的裁剪語言模型的方法,還包括 根據上述語言模型和上述裁剪后的語言模型獲得待添加的多個n元組及其概率;利用訓練語料庫計算上述待添加的多個n元組中的每一個對于實際應 用的重要性;以及將上述待添加的多個n元組中重要性高的至少一個n元組及其概率加 入上述裁剪后的語言模型。
16. 根據權利要求15所述的裁剪語言模型的方法,其中,上述待添 加的多個n元組為在上述語言模型中包括而在上述裁剪后的語言模型中不 包括的多個n元組。
17. 根據權利要求15所述的裁剪語言模型的方法,還包括 重復上述根據上述語言模型和上述裁剪后的語言模型獲得待添加的多個n元組及其概率的步驟至上述將上述待添加的多個n元組中重要性高的 至少一個n元組及其概率加入上述裁剪后的語言模型的步驟。
18. 根據權利要求17所述的裁剪語言模型的方法,還包括 多次進行上述重復步驟,直到上述裁剪后的語言模型達到預定尺寸。
19. 一種裁剪語言模型的裝置,其中,該語言模型包括多個n元組及 其概率,以及多個低階的元組及其概率;上述裝置包括基礎模型生成單元,根據上述語言模型生成初始的基礎模型,該基礎 模型不包括上述多個n元組及其概率;重要性計算單元,利用訓練語料庫計算上述多個n元組中的每一個對于實際應用的重要性,該訓練語料庫包括訓練數據和參考答案;以及添加單元,將上述多個n元組中重要性高的至少一個n元組及其概率 加入上述基礎模型,作為裁剪后的語言模型。
20. 根據權利要求19所述的裁剪語言模型的裝置,其中,上述重要 性計算單元用于計算上述基礎模型對上述訓練數據進行上述實際應用時出錯的可能性;計算上述ii元組在上述訓練語料庫中出現的次數;以及 計算上述n元組在上述實際應用中出現的次數;其中上述重要性計算單元根據上述出錯的可能性、上述n元組在上述 訓練語料庫中出現的次數、和上述n元組在上述實際應用中出現的次數, 計算上述重要性。
21. 根據權利要求20所述的裁剪語言模型的裝置,其中,上述重要 性計算單元還用于利用上述基礎模型計算上述n元組的概率;其中上述重要性計算單元根據上述出錯的可能性、上述n元組在上述 訓練語料庫中出現的次數、上述n元組在上述實際應用中出現的次數、上述n元組在上述語言模型中的概率、和上述n元組的利用上述基礎模型計 算出的概率,計算上述重要性。
22. 根據權利要求21所述的裁剪語言模型的裝置,其中,上述實際 應用是亞洲語言分詞,上述訓練數據包括未切分字串,上述參考答案包括 對上述未切分字串進行切分的參考詞串,以及上述重要性計算單元用于計算上述基礎模型對上述參考詞串進行評價的得分;以及 計算上述基礎模型對利用上述基礎模型對上述未切分字串進行切分的 多個候選詞串進行評價的平均得分。
23. 根據權利要求22所述的裁剪語言模型的裝置,其中,上述重要 性計算單元用于計算上述n元組在上述參考詞串中出現的次數。
24. 根據權利要求22所述的裁剪語言模型的裝置,其中,上述重要 性計算單元用于計算上述n元組在利用上述基礎模型對上述未切分字串進行切分的多 個候選詞串中出現的平均次數。
25. 根據權利要求21所述的裁剪語言模型的裝置,其中,上述實際 應用是語音識別,上述訓練數據包括輸入語音,上述參考答案包括對上述 輸入語音進行識別的參考文本,以及上述重要性計算單元用于計算上述_^5出模型對上述參考文本進行評價的得分;以及 計算上述^f出模型對利用上述基礎模型對上述輸入語音進行識別的多 個候選文本進行評價的平均得分。
26. 根據權利要求25所述的裁剪語言模型的裝置,其中,上述重要 性計算單元用于計算上述n元組在上述參考文本中出現的次數。
27. 根據權利要求25所述的裁剪語言模型的裝置,其中,上述重要 性計算單元用于計算上述n元組在利用上述基礎模型對上述輸入語音進行識別的多個 候選文本中出現的平均次數。
28. 根據權利要求21所述的裁剪語言模型的裝置,其中,上述實際 應用是亞洲語言的計算機輸入,上述訓練數據包括記音符號串,上述參考 答案包括對上述記音符號串進行轉換的參考詞串,以及上述重要性計算單 元用于計算上述基礎模型對上述參考詞串進行評價的得分;以及計算上述^i^出模型對利用上述基礎模型對上述記音符號串進行轉換的多個候選詞串進行評價的平均得分。
29. 根據權利要求28所述的裁剪語言模型的裝置,其中,上述重要 性計算單元用于計算上述n元組在上述參考詞串中出現的次數。
30. 根據權利要求28所述的裁剪語言模型的裝置,其中,上述重要 性計算單元用于計算上述n元組在利用上述基礎模型對上述記音符號串進行轉換的多 個候選詞串中出現的平均次數。
31. 根據權利要求19所述的裁剪語言模型的裝置,其中,上述初始 的基礎模型通過將上述語言模型中的上述多個n元組及其概率去掉獲得。
32. 根據權利要求19所述的裁剪語言模型的裝置,其中,上述訓練 語料庫中的上述參考答案包括利用上述語言模型獲得的參考答案或通過手 工獲得的正確答案。
33. 根據權利要求19所述的裁剪語言模型的裝置,還包括 待添加n元組獲得單元,根據上述語言模型和上述裁剪后的語言模型獲得待添加的多個n元組及其概率;其中,上述重要性計算單元用于利用訓練語料庫計算上述待添加的多 個n元組中的每一個對于實際應用的重要性;以及上述添加單元用于將上述待添加的多個n元組中重要性高的至少一個 n元組及其概率加入上述裁剪后的語言模型。
34. 根據權利要求33所述的裁剪語言模型的裝置,其中,上述待添 加的多個n元組為在上述語言模型中包括而在上述裁剪后的語言模型中不包括的多個n元組。
35. 根據權利要求33所述的裁剪語言模型的裝置,其中,利用上述 待添加n元組獲得單元、上述重要性計算單元和上述添加單元重復對上述 裁剪后的語言模型進行添加。
36. 根據權利要求35所述的裁剪語言模型的裝置,其中,利用上述 待添加n元組獲得單元、上述重要性計算單元和上述添加單元多次重復對 上述裁剪后的語言模型進行添加,直到上述裁剪后的語言模型達到預定尺 寸。
全文摘要
本發明提供了裁剪語言模型的方法及裝置。根據本發明的一個方面,提供了一種裁剪語言模型的方法,其中,該語言模型包括多個n元組及其概率,以及多個低階(<n)的元組及其概率;上述方法包括根據上述語言模型生成初始的基礎模型,該基礎模型不包括上述多個n元組及其概率,只包含低于n階的元組及其概率;利用訓練語料庫計算上述多個n元組中的每一個對于實際應用的重要性,該訓練語料庫包括訓練數據和參考答案;以及將上述多個n元組中重要性高的至少一個n元組及其概率加入上述基礎模型,作為裁剪后的語言模型。
文檔編號G06F17/27GK101271450SQ20081008461
公開日2008年9月24日 申請日期2008年3月13日 優先權日2007年3月19日
發明者任登君, 李劍峰, 李國華, 王海峰 申請人:株式會社東芝