本申請涉及機器翻譯領域,具體涉及一種用于統(tǒng)計機器翻譯的解碼方法。本申請同時涉及一種用于統(tǒng)計機器翻譯的解碼裝置、一種統(tǒng)計機器翻譯方法、以及一種統(tǒng)計機器翻譯裝置。
背景技術:
統(tǒng)計機器翻譯是當今機器翻譯界的主流技術,其中基于形式化句法的統(tǒng)計機器翻譯得到了比較廣泛的應用。統(tǒng)計機器翻譯系統(tǒng)通常包含線上解碼以及線下訓練模塊兩大部分,請參考圖1示出的統(tǒng)計機器翻譯的架構圖。
其中,線下訓練部分,包括調序模型、翻譯模型、語言模型,這些模塊構成了機器翻譯系統(tǒng)的基礎。線上解碼部分,包括前處理、解碼器、后處理,其中解碼器構成了機器翻譯系統(tǒng)最為核心的模塊。解碼器接收待翻譯的句子,經過整合翻譯模型、調序模型、語言模型,得到對應的翻譯結果。解碼的過程,其實就是在一個句子長度的指數(shù)級空間中進行搜索最優(yōu)的翻譯候選的過程。為了能夠滿足線上服務的實時性要求,解碼器通常會采用各種剪枝方法,將指數(shù)級的空間縮減到可以接受的范圍,以求最快得到翻譯結果。剪枝方法的好壞直接影響了解碼器的速度以及翻譯質量。
下面以基于括號轉錄語法(BTG)的機器翻譯系統(tǒng)為例,對目前統(tǒng)計機器翻譯的解碼及剪枝過程作簡要說明。其中,解碼算法多采用CYK算法,請參考圖2給出的基于CYK算法的解碼空間的示意圖,解碼的策略采用自底向上逐漸拓展的方式,首先生成第1行,然后利用已經生成的內容拓展生成第2行,直到(1,5)節(jié)點拓展完畢。而解碼過程中的剪枝則多采用針對每種組合方式進行局部剪枝再進行全局篩選的方式,仍以圖2為例,對于(1,3)這個節(jié)點,可以由兩種組合方式(1,1)(2,2)和(1,2)(3,1)生成,首先,針對第一種組合方式(1,1)(2,2),選擇其中得分最高的K個候選,然后針對第二種組合方式(1,2)(3,1),選擇其中得分最高的K個候選。最后,(1,3)這個節(jié)點對這2K個候選進行全局排序,選擇其中得分最高的K個作為自己的翻譯候選結果。
在實際應用中,基于上述剪枝方式的解碼方法,在句子長度比較小的時候,通??梢员憩F(xiàn)出令人滿意的速度和性能。然而,隨著句子長度不斷增大,由于解碼過程生成的翻譯候選數(shù)目呈現(xiàn)暴增式增長,而生成每一個翻譯候選都需要耗費時間以及占用內存,因此整個翻譯過程耗費的時間和占用的內存也相應呈現(xiàn)暴增式增長,特別是句長超過40以后,翻譯時間出現(xiàn)指數(shù)級增長,效率低下,難以滿足線上服務的實時性要求。
技術實現(xiàn)要素:
本申請實施例提供一種用于統(tǒng)計機器翻譯的解碼方法和裝置,以解決現(xiàn)有基于局部剪枝的解碼方法隨著句子增長性能大幅降低、并且耗用大量內存的問題。本申請實施例還提供一種統(tǒng)計機器翻譯方法和裝置。
本申請?zhí)峁┮环N用于統(tǒng)計機器翻譯的解碼方法,包括:
根據(jù)源語言句子包含的詞序列,初始化由對應各跨度詞序列的節(jié)點組成的解碼空間;
拓展所述解碼空間中的每個節(jié)點,以生成每個節(jié)點的翻譯結果集合;
從覆蓋整個源語言句子的節(jié)點的翻譯結果集合中選擇翻譯分數(shù)處于前N位的翻譯候選,并構建所述源語言句子的翻譯結果;
其中,所述拓展所述解碼空間中的每個節(jié)點包括:從生成當前節(jié)點的各種組合方式中選取翻譯分數(shù)處于高序位的翻譯候選,添加到當前節(jié)點的翻譯結果集合中,直至所選翻譯候選的數(shù)目不小于預設閾值K;所述翻譯候選的翻譯分數(shù)是根據(jù)預先生成的用于統(tǒng)計機器翻譯的模型計算得到的。
可選的,所述從生成當前節(jié)點的各種組合方式中選取翻譯分數(shù)處于高序位的翻譯候選,添加到當前節(jié)點的翻譯結果集合中,直至所選翻譯候選的數(shù)目不小于預設閾值K,包括:
構建根據(jù)其他節(jié)點生成當前節(jié)點的各種組合方式;
將每一種組合方式下的優(yōu)選子翻譯組合對應的翻譯候選添加到優(yōu)先級隊列中,所述優(yōu)選子翻譯組合是指生成所述組合方式的各節(jié)點在其翻譯結果集合中處于高序位的子翻譯候選的組合;
從所述優(yōu)先級隊列中選取翻譯分數(shù)處于高序位的翻譯候選,添加到當前節(jié) 點按照翻譯分數(shù)排序的翻譯結果集合中;
選擇所選翻譯候選對應的子翻譯組合的鄰居,并將所述鄰居對應的翻譯候選添加到優(yōu)先級隊列中;
判斷當前節(jié)點從優(yōu)先級隊列中選取的翻譯候選的數(shù)目是否小于K,若是,轉到所述從所述優(yōu)先級隊列中選取翻譯分數(shù)處于高序位的翻譯候選的步驟執(zhí)行。
可選的,所述子翻譯組合的鄰居是以下成員的組合:子翻譯組合中的一個子翻譯候選,在另一子翻譯候選所在翻譯結果集合中與所述另一子翻譯候選相鄰且處于低序位的子翻譯候選。
可選的,所述初始化由對應各跨度詞序列的節(jié)點組成的解碼空間,包括:
構建由對應各跨度詞序列的節(jié)點組成的解碼空間;
根據(jù)翻譯模型生成所述源語言句子所包含各短語的翻譯候選,并將所述各短語的翻譯候選添加到所述解碼空間中相應節(jié)點的翻譯結果集合中。
可選的,處理所述解碼空間中的每個節(jié)點時,在判斷出針對當前節(jié)點所選翻譯候選的數(shù)目不小于預設閾值K之后,在處理下一個節(jié)點之前,執(zhí)行下述操作:
將處于當前節(jié)點翻譯結果集合中的翻譯候選按照翻譯分數(shù)從高到低排序;
選擇序位處于高位的K個翻譯候選作為當前節(jié)點的翻譯結果集合。
可選的,在所述從生成當前節(jié)點的各種組合方式中選取翻譯分數(shù)處于高序位的翻譯候選之后,執(zhí)行下述操作:
記錄所述翻譯候選與生成所述翻譯候選的各節(jié)點中的相應子翻譯候選的對應關系;
所述構建所述源語言句子的翻譯結果包括:根據(jù)已記錄的所述對應關系逐層查找生成所述翻譯候選的各層子翻譯候選,并依據(jù)找到的子翻譯候選生成所述源語言句子的翻譯結果。
可選的,所述預先生成的用于統(tǒng)計機器翻譯的模型包括翻譯模型、調序模型、和語言模型。
可選的,所述調序模型包括:最大熵調序模型。
相應的,本申請還提供一種用于統(tǒng)計機器翻譯的解碼裝置,包括:
初始化單元,用于根據(jù)源語言句子包含的詞序列,初始化由對應各跨度詞 序列的節(jié)點組成的解碼空間;
拓展解碼單元,用于拓展所述解碼空間中的每個節(jié)點,以生成每個節(jié)點的翻譯結果集合;
翻譯結果構建單元,用于從覆蓋整個源語言句子的節(jié)點的翻譯結果集合中選擇翻譯分數(shù)處于前N位的翻譯候選,并反向構建所述源語言句子的翻譯結果;
其中,所述拓展解碼單元包括:
解碼控制子單元,用于選擇所述解碼空間中的每個節(jié)點,并針對每個節(jié)點觸發(fā)節(jié)點拓展子單元工作;
節(jié)點拓展子單元,用于從生成當前節(jié)點的各種組合方式中選取翻譯分數(shù)處于高序位的翻譯候選,添加到當前節(jié)點的翻譯結果集合中,直至所選翻譯候選的數(shù)目不小于預設閾值K。
可選的,所述節(jié)點拓展子單元,包括:
組合方式構建子單元,用于構建根據(jù)其他節(jié)點生成當前節(jié)點的各種組合方式;
優(yōu)先級隊列初始化子單元,用于將每一種組合方式下的優(yōu)選子翻譯組合對應的翻譯候選添加到優(yōu)先級隊列中,所述優(yōu)選子翻譯組合是指生成所述組合方式的各節(jié)點在其翻譯結果集合中處于高序位的子翻譯候選的組合;
翻譯候選選取子單元,用于從所述優(yōu)先級隊列中選取翻譯分數(shù)處于高序位的翻譯候選,添加到當前節(jié)點按照翻譯分數(shù)排序的翻譯結果集合中;
鄰居添加子單元,用于選擇所選翻譯候選對應的子翻譯組合的鄰居,并將所述鄰居對應的翻譯候選添加到優(yōu)先級隊列中;
拓展判斷子單元,用于判斷當前節(jié)點從優(yōu)先級隊列中選取的翻譯候選的數(shù)目是否小于K,若是,觸發(fā)所述翻譯候選選取子單元工作。
可選的,所述初始化單元包括:
解碼空間構建子單元,用于構建由對應各跨度詞序列的節(jié)點組成的解碼空間;
短語翻譯候選初始化子單元,用于根據(jù)翻譯模型生成所述源語言句子所包含各短語的翻譯候選,并將所述各短語的翻譯候選添加到所述解碼空間中相應節(jié)點的翻譯結果集合中。
可選的,所述節(jié)點拓展子單元包括:
選擇子單元,用于從生成當前節(jié)點的各種組合方式中選取翻譯分數(shù)處于高序位的翻譯候選,添加到當前節(jié)點的翻譯結果集合中;
數(shù)目判斷子單元,用于判斷所述翻譯候選的數(shù)目是否不小于預設閾值K,并在小于時觸發(fā)選擇子單元工作;
所述節(jié)點拓展子單元還包括:
翻譯候選排序子單元,用于在所述數(shù)目判斷子單元的輸出為是時,將處于當前節(jié)點翻譯結果集合中的翻譯候選按照翻譯分數(shù)從高到低排序;
翻譯候選篩選子單元,用于從所述翻譯候選排序子單元排好序的翻譯候選中,選擇序位處于高位的K個翻譯候選作為當前節(jié)點的翻譯結果集合。
可選的,所述節(jié)點拓展子單元包括:
選擇子單元,用于從生成當前節(jié)點的各種組合方式中選取翻譯分數(shù)處于高序位的翻譯候選,添加到當前節(jié)點的翻譯結果集合中;
數(shù)目判斷子單元,用于判斷所述翻譯候選的數(shù)目是否不小于預設閾值K,并在小于時觸發(fā)選擇子單元工作;
所述節(jié)點拓展子單元還包括:
對應關系記錄子單元,用于在所述選擇子單元選取翻譯分數(shù)處于高序位的翻譯候選后,記錄所述翻譯候選與生成所述翻譯候選的各節(jié)點中的相應子翻譯候選的對應關系;
所述翻譯結果構建單元具體用于,從覆蓋整個源語言句子的節(jié)點的翻譯結果集合中選擇翻譯分數(shù)處于前N位的翻譯候選,根據(jù)已記錄的所述對應關系逐層查找生成所述翻譯候選的各層子翻譯候選,并依據(jù)找到的子翻譯候選生成所述源語言句子的翻譯結果。
此外,本申請還提供一種統(tǒng)計機器翻譯方法,包括:
訓練用于統(tǒng)計機器翻譯的翻譯模型、調序模型和語言模型;
對待翻譯原文進行預處理,獲取由詞序列組成的源語言句子;
利用所述翻譯模型、調序模型和語言模型,采用如權利要求1所述的解碼方法,對所述源語言句子進行解碼,獲得對應于源語言句子的目標語言句子;
對所述目標語言句子進行后處理,獲取對應于待翻譯原文的目標譯文。
可選的,所述訓練用于統(tǒng)計機器翻譯的翻譯模型、調序模型和語言模型,采用如下方式實現(xiàn):
利用針對源語言和目標語言的雙語語料庫訓練翻譯模型和調序模型,利用針對目標語言的單語語料庫訓練語言模型。
可選的,所述對待翻譯原文進行預處理,獲取由詞序列組成的源語言句子包括:
通過分句操作,將待翻譯原文切割為獨立的源語言句子;
通過分詞操作,將所述源語言句子轉換為由詞組成的序列。
可選的,所述對所述目標語言句子進行后處理,獲取對應于待翻譯原文的目標譯文,包括:
將所述目標語言句子組合為對應于待翻譯原文的目標譯文。
相應的,本申請還提供一種統(tǒng)計機器翻譯裝置,包括:
模型訓練單元,用于訓練用于統(tǒng)計機器翻譯的翻譯模型、調序模型和語言模型;
預處理單元,用于對待翻譯原文進行預處理,獲取由詞序列組成的源語言句子;
解碼單元,用于利用所述翻譯模型、調序模型和語言模型,采用如權利要求10所述的用于統(tǒng)計機器翻譯的解碼裝置,對所述源語言句子進行解碼,獲得對應于源語言句子的目標語言句子;
后處理單元,用于對所述目標語言句子進行后處理,獲取對應于待翻譯原文的目標譯文。
可選的,所述模型訓練單元具體用于,利用針對源語言和目標語言的雙語語料庫訓練翻譯模型和調序模型,利用針對目標語言的單語語料庫訓練語言模型。
可選的,所述預處理單元包括:
分句子單元,用于通過分句操作將待翻譯原文切割為獨立的源語言句子;
分詞子單元,用于通過分詞操作將所述源語言句子轉換為由詞組成的序列。
可選的,所述后處理單元具體用于,將所述目標語言句子組合為對應于待翻譯原文的目標譯文。
與現(xiàn)有技術相比,本申請具有以下優(yōu)點:
本申請?zhí)峁┑挠糜诮y(tǒng)計機器翻譯的解碼方法,首先根據(jù)源語言句子包含的詞序列,初始化由對應各跨度詞序列的節(jié)點組成的解碼空間;然后拓展所述解碼空間中的每個節(jié)點:從生成當前節(jié)點的各種組合方式中選取翻譯分數(shù)處于高序位的翻譯候選,添加到當前節(jié)點的翻譯結果集合中,直至所選翻譯候選的數(shù)目不小于預設閾值K;最后從覆蓋整個源語言句子的節(jié)點的翻譯結果集合中選擇翻譯分數(shù)處于前N位的翻譯候選,并構建所述源語言句子的翻譯結果。采用上述解碼方法,由于在拓展每個節(jié)點的時候,沒有采用分別在每一組合方式內部進行剪枝的方式,而是同時考量各種可能的組合方式,并從所有組合方式中選擇翻譯分數(shù)處于高序位的翻譯候選,即采用的是全局的剪枝方式,從而可以減少解碼過程中生成的翻譯候選的數(shù)目,最大限度加快解碼過程、并縮減對內存的占用,實現(xiàn)了輕量解碼過程,特別是在句子長度增長到較大規(guī)模時,效果尤為明顯,能夠實現(xiàn)翻譯速度的大規(guī)模提升。
附圖說明
圖1是統(tǒng)計機器翻譯的架構圖;
圖2是基于CYK算法的解碼空間的示意圖;
圖3是本申請?zhí)峁┑囊环N用于統(tǒng)計機器翻譯的解碼方法的實施例的流程圖;
圖4是本申請實施例提供的拓展每個節(jié)點的處理流程圖;
圖5是本申請實施例提供的翻譯候選對應的子翻譯組合的鄰居示意圖;
圖6是本申請?zhí)峁┑囊环N用于統(tǒng)計機器翻譯的解碼裝置的實施例的示意圖;
圖7是本申請?zhí)峁┑囊环N統(tǒng)計機器翻譯方法的實施例的流程圖;
圖8是本申請?zhí)峁┑囊环N統(tǒng)計機器翻譯裝置的實施例的示意圖。
具體實施方式
在下面的描述中闡述了很多具體細節(jié)以便于充分理解本申請。但是,本申請能夠以很多不同于在此描述的其它方式來實施,本領域技術人員可以在不違背本申請內涵的情況下做類似推廣,因此,本申請不受下面公開的具體實施的 限制。
在本申請中,分別提供了一種用于統(tǒng)計機器翻譯的解碼方法、一種用于統(tǒng)計機器翻譯的解碼裝置、一種統(tǒng)計機器翻譯方法,以及一種統(tǒng)計機器翻譯裝置,在下面的實施例中逐一進行詳細說明。為了便于理解本申請?zhí)峁┑募夹g方案,在對實施例進行詳細描述之前,先對本申請的技術方案作簡要說明。
本申請所述的解碼空間,通常由對應于各跨度詞序列的節(jié)點組成,而跨度大于1的詞序列通常可以由更小跨度的詞序列組合而成,因此也稱為某個節(jié)點可以由其他節(jié)點組合生成。在解碼時通常對解碼空間中各節(jié)點進行如下處理:根據(jù)能夠組合生成本節(jié)點的其他節(jié)點的翻譯結果集合、生成本節(jié)點的翻譯結果集合,并最終從覆蓋整個源語言句子的節(jié)點的翻譯結果集合中選擇最優(yōu)翻譯。
上述對節(jié)點的處理過程也稱為對節(jié)點的拓展過程,拓展生成的翻譯結果集合中通常包含多個翻譯候選,每個翻譯候選都有與之對應的翻譯分數(shù),而解碼的過程就是搜索覆蓋整個源語言句子的、翻譯分數(shù)最高的翻譯候選的過程。在拓展某個節(jié)點時,由于根據(jù)其他節(jié)點翻譯結果集合中的翻譯候選生成本節(jié)點翻譯候選的可能性通常很多,因此需要采用適當?shù)募糁Ψ绞剑蕴岣呓獯a效率。
傳統(tǒng)的解碼方法,在拓展每個節(jié)點時采用的是局部剪枝方法,即,針對生成當前節(jié)點的每種組合方式先分別選擇翻譯分數(shù)處于高序位的K個翻譯候選,然后再對各種組合方式的全部翻譯候選進行全局排序,并從中選擇處于高序位的K個翻譯候選。
而本申請的技術方案,提出了一種融合全局剪枝方法的解碼方法,即在拓展每個節(jié)點時,讓生成該節(jié)點的各種組合方式的翻譯候選一起參與競爭,并從中選擇翻譯分數(shù)處于高序位的K個翻譯候選,從而減少解碼過程中生成的翻譯候選的數(shù)目,實現(xiàn)輕量解碼。
本申請?zhí)峁┑纳鲜鼋獯a方法可以應用于統(tǒng)計機器翻譯領域,特別適用于基于形式化句法的統(tǒng)計機器翻譯過程,例如:基于括號轉錄語法的統(tǒng)計機器翻譯、或者基于層次化短語的統(tǒng)計機器翻譯。在下面的實施例中以基于括號轉錄語法的統(tǒng)計機器翻譯為例進行說明。
在實際應用中,只要是采用上述節(jié)點(代表不同跨度詞序列)拓展方式的統(tǒng)計機器翻譯過程都可以采用本申請?zhí)峁┑募夹g方案,為了便于理解,本實施例基于CYK算法描述本申請?zhí)峁┑慕獯a方法,并采用自底向上的方式拓展該空 間的各個節(jié)點。下面對本申請的技術方案進行詳細說明。
請參考圖3,其為本申請的一種用于統(tǒng)計機器翻譯的解碼方法的實施例的流程圖。所述方法包括如下步驟:
步驟301、根據(jù)源語言句子包含的詞序列,初始化由對應各跨度詞序列的節(jié)點組成的解碼空間。
待翻譯的源語言句子通常會被分成由若干詞組成的詞序列,本步驟根據(jù)輸入的源語言句子包含的詞序列,初始化解碼空間,所述解碼空間包含多個節(jié)點,每個節(jié)點對應不同跨度的詞序列。
本實施例初始化基于CYK算法的二維解碼空間。在具體實施時,可以包含以下兩個子步驟:
步驟301-1:構建基于CYK算法的二維解碼空間。
所述CYK算法是一個用來判定任意給定的字符串是否屬于一個上下文無關文法的算法,在統(tǒng)計機器翻譯領域中通常使用該算法進行自底向上的解碼過程。請參考圖2,其為包含5個詞的源語言句子的CYK解碼空間的示意圖。所述解碼空間中的每個節(jié)點對應于源語言句子中某一跨度(span)上的詞序列,橫坐標代表該跨度左側第一個詞的位置,縱坐標代表該跨度包含的詞個數(shù),例如:(1,3)節(jié)點表示從第一個詞開始,跨度為3的詞序列,而(1,5)節(jié)點則表示從第一個詞開始,跨度為5的詞序列,即:(1,5)節(jié)點是覆蓋整個源語言句子的頂部節(jié)點。
在具體實施時,該解碼空間可以用二維數(shù)組實現(xiàn),即:解碼空間中的每個節(jié)點與二維數(shù)組中的一個成員相對應,與該節(jié)點對應的信息,例如對應于該節(jié)點的翻譯結果集合等信息都存儲在二維數(shù)組中的對應成員中,從而可以高效、有序地執(zhí)行自底向上的解碼過程。
步驟301-2:根據(jù)翻譯模型生成所述源語言句子所包含各短語的翻譯候選,并將所述各短語的翻譯候選添加到所述二維解碼空間中相應節(jié)點的翻譯結果集合中。
源語言句子通常是由詞序列組成的,而覆蓋不同跨度的詞序列可以組成短語,所述短語可以是語言學意義上的短語,也可以是不包含任何語言學知識的形式化短語。本步驟對于所述源語言句子中的每個可能的短語,查找根據(jù)翻譯模型得到的雙語短語表,對于找到的短語,將與其對應的翻譯候選添加到所述 二維解碼空間中相應節(jié)點的翻譯結果集合中。
同時,還可以根據(jù)預先訓練的翻譯模型和語言模型計算每個翻譯候選的翻譯分數(shù),具體可以依據(jù)翻譯模型獲取兩個方向的短語翻譯概率、兩個方向的詞匯化概率等,依據(jù)語言模型獲取翻譯候選的語言模型概率,然后根據(jù)上述概率計算翻譯候選的翻譯分數(shù)。此外,還可以同時兼顧短語懲罰、單詞懲罰等其他因素,共同計算所述翻譯候選的翻譯分數(shù)。
在具體實施時,上述根據(jù)多個模型計算翻譯分數(shù)的過程,可以采用對數(shù)線性模型(log-linear model)實現(xiàn)。采用對數(shù)線性模型,可以將上述多個用于計算翻譯分數(shù)的模型看成一系列特征函數(shù),這樣不僅可以方便地為各個特征函數(shù)設定相應的權重系數(shù)(不同的權重系數(shù)可以反映不同特征函數(shù)在翻譯分數(shù)計算過程中的重要程度),有助于提高翻譯質量,而且可以以特征函數(shù)的形式添加其他影響翻譯質量的模型,即可以方便靈活地添加其他可供考量的因素,為進一步提高翻譯質量提供便捷途徑。在后續(xù)步驟302中針對每個節(jié)點計算翻譯候選的翻譯分數(shù)時,也可以采用對數(shù)線性模型實現(xiàn),在此一并說明,后續(xù)不再贅述。
對于二維解碼空間中的每個節(jié)點來說,可能存在與之對應的短語,也可能不存在對應的短語。對于存在對應短語的情況,其翻譯候選的數(shù)目通常也是不確定的,例如:5個、10個或者30個,在具體實施時,可以設定與短語對應的翻譯候選的最大數(shù)目,例如10個,當某短語的翻譯候選數(shù)目大于所述最大數(shù)目時,可以從中選擇翻譯分數(shù)處于高序位的所述最大數(shù)目的翻譯候選。
步驟302、拓展所述解碼空間中的每個節(jié)點,以生成每個節(jié)點的翻譯結果集合。
本步驟拓展所述解碼空間中的每個節(jié)點,即針對每個節(jié)點執(zhí)行下述處理:根據(jù)能夠組合生成本節(jié)點的其他節(jié)點的翻譯結果集合、生成本節(jié)點翻譯結果集合,最終得到覆蓋整個源語言句子的節(jié)點的翻譯結果集合,則整個拓展過程完畢。
如果采用基于CYK算法的解碼方式,由于CYK算法是一個自底向上的廣度優(yōu)先的遍歷過程,通常首先拓展解碼空間中第一行的各個節(jié)點;然后拓展解碼空間中第二行的各個節(jié)點,......,以此類推,直至拓展到解碼空間的頂部節(jié)點,自底向上的拓展過程完畢。由于采用自底向上的拓展方式,每當拓展上層節(jié)點時,下層節(jié)點的翻譯結果集合已經生成,因此上層節(jié)點可以直接利用生成該節(jié) 點的各組合方式對應的下層節(jié)點(也稱為子節(jié)點)的翻譯結果集合,生成自己的翻譯結果集合,從而實現(xiàn)自底向上的解碼過程。
CYK解碼空間中的節(jié)點通??梢杂勺庸?jié)點的多種組合方式生成,而本申請?zhí)峁┑募夹g方案在拓展每個節(jié)點的時候,沒有采用分別在每一種組合方式內部進行局部剪枝、再進行全局重排篩選的方式,而是采用了基于全局的剪枝方式(也稱為基于全局的立方圖剪枝方式):綜合考量各種可能的組合方式,并從所有組合方式中選取翻譯分數(shù)處于高序位的翻譯候選,添加到當前節(jié)點的翻譯結果集合中,直至所選翻譯候選的數(shù)目不小于預設閾值K。
為了實現(xiàn)融合上述剪枝方式的高效解碼過程,在具體實施時,可以采用優(yōu)先級隊列實現(xiàn)每個節(jié)點的拓展過程,具體包括步驟302-1至步驟302-5,下面結合圖4對每個節(jié)點的拓展過程作進一步說明。
步驟302-1、構建根據(jù)其他節(jié)點生成當前節(jié)點的各種組合方式。
由于某一跨度的詞序列通??梢圆捎枚喾N方式分割為子詞序列,而將各子詞序列的翻譯候選通過特定方式(例如保序或者逆序)組合起來,就可以得到原詞序列的翻譯候選。基于上述原理,所述CYK解碼空間中某節(jié)點的翻譯候選通??梢杂刹煌庸?jié)點的翻譯候選通過不同的組合方式生成,在本實施例中簡稱為某節(jié)點由不同組合方式生成。
仍以圖2所示的包含5個詞序列的解碼空間為例,其中(1,3)節(jié)點可以通過以下兩種方式組合生成:(1,1)(2,2),(1,2)(3,1);(1,5)節(jié)點可以通過以下四種方式組合生成:(1,1)(2,4),(1,2)(3,3),(1,3)(4,2),(1,4)(5,1)。本步驟采用上述方式構建可以生成當前節(jié)點的各種可能的組合方式。
步驟302-2、將每一種組合方式下的優(yōu)選子翻譯組合對應的翻譯候選添加到優(yōu)先級隊列中。
拓展當前節(jié)點時,每種組合方式對應的其他節(jié)點的翻譯結果集合通常都已經生成(如果尚未生成則可以先生成所述其他節(jié)點的翻譯結果集合),每個翻譯結果集合中都包含了按照翻譯分數(shù)從高到低排序的子翻譯候選,此處之所以稱為子翻譯候選,是相對于當前節(jié)點的翻譯候選而言的。
所述優(yōu)選子翻譯組合是指生成所述組合方式的各節(jié)點在其翻譯結果集合中處于高序位的子翻譯候選的組合,例如處于第一位的子翻譯候選的組合。本步驟將優(yōu)選子翻譯組合對應的翻譯候選添加到優(yōu)先級隊列中。
為了便于理解,此處用基于CYK解碼的具體例子進行說明,以圖2中的(1,3)節(jié)點為例,生成該節(jié)點的兩種組合方式分別為(1,1)(2,2)和(1,2)(3,1),其中子節(jié)點(1,1)的翻譯結果集合中包含按照翻譯分數(shù)從高到低排序的K個子翻譯候選,分別是A1、A2、A3、A4......Ak,同理,子節(jié)點(2,2)、(1,2)、(3,1)的翻譯結果集合中也各自包含K個排好序的子翻譯候選,如表一所示:
表一、子節(jié)點的翻譯結果集合中包含的子翻譯候選示例
對于第一種組合方式來說,在子節(jié)點(1,1)的翻譯結果集合中處于第一位的子翻譯候選為A1,在子節(jié)點(2,2)的翻譯結果集合中處于第一位的子翻譯候選為B1,那么第一種組合方式的優(yōu)選子翻譯組合可以為A1和B1的組合。
考慮到源語言和目標語言的語序可能存在差異,因此在翻譯為目標語言時,優(yōu)選子翻譯組合中的兩個子翻譯候選存在調整先后順序的可能性,因此優(yōu)選子翻譯組合對應的翻譯候選通常包括兩個:A1B1和B1A1,可以將A1B1和B1A1添加到優(yōu)先級隊列中。
同樣的道理,對于第二種組合方式來說,優(yōu)選子翻譯組合可以為C1和D1的組合,該組合對應的翻譯候選也包括兩個:C1D1和D1C1,同樣也可以將C1D1和D1C1添加到優(yōu)先級隊列中。
由于A1和B1以及C1和D1都是在各自翻譯結果集合中處于高序位的子翻譯候選,因此它們彼此之間的組合將成為當前節(jié)點的翻譯候選的有力競爭者,所以將對應的翻譯候選添加到優(yōu)先級隊列中,也就是說將兩種組合方式中的有力競爭者都添加到優(yōu)先級隊列中進行競爭。
步驟302-3、從所述優(yōu)先級隊列中選取翻譯分數(shù)處于高序位的翻譯候選,添加到當前節(jié)點按照翻譯分數(shù)排序的翻譯結果集合中。
在向優(yōu)先級隊列中添加翻譯候選時,可以計算被添加的翻譯候選的翻譯分數(shù),所述翻譯分數(shù)可以代表當前節(jié)點對應的詞序列被翻譯為所述翻譯候選對應 的目標詞序列的概率大小,通常翻譯分數(shù)越高,代表所述概率越大,而解碼的過程就是尋找得分處于高序位的翻譯候選的過程。在具體實施時,該分數(shù)通常利用指數(shù)對數(shù)形式進行計算,添加到優(yōu)先級隊列中的翻譯候選的翻譯分數(shù)可以采用以下三個分數(shù)求和得到:
1)組成翻譯候選的兩個子翻譯候選的翻譯分數(shù)之和;
2)重排序分數(shù);
3)由于子翻譯候選組合(也稱為合并)產生的語言模型的增量。
其中,第一項中涉及的子翻譯候選的翻譯分數(shù),通常在拓展所述子翻譯候選對應的節(jié)點時已經得到,只需要將兩個子翻譯候選的翻譯分數(shù)相加即可;第二項分數(shù)則可以利用預先訓練好的重排序模型計算得到,優(yōu)選的,可以采用基于最大熵的重排序模型,通過引入不同的特征以及訓練相應的權重參數(shù),可以使得重排序模型計算得到的分數(shù)更為準確;第三項分數(shù)可以利用預先訓練好的語言模型進行計算,例如,可以采用N-gram語言模型,N的值可以設置為3。
通過上述方式,每次向優(yōu)先級隊列中添加翻譯候選時,都可以為所述翻譯候選計算相應的翻譯分數(shù)。本步驟則從所述優(yōu)先級隊列中選擇翻譯分數(shù)處于高序位的翻譯候選,例如:處于第一位的翻譯候選,添加到當前節(jié)點的翻譯結果集合中,所述翻譯結果集合是按照其中翻譯候選的翻譯分數(shù)從高到低排序的。具體實施時,可以在每次向翻譯結果集合中添加翻譯候選時,就按照翻譯分數(shù)的高低進行排序,也可以在從優(yōu)先級隊列中選出K個翻譯候選后,統(tǒng)一對翻譯結果集合中的翻譯候選進行排序。
需要說明的是,從優(yōu)先級隊列中選取分數(shù)位于高序位的翻譯候選添加到翻譯結果集合時,可以攜帶所述翻譯候選對應的翻譯分數(shù)(后續(xù)拓展其他節(jié)點時可能會利用該信息),而且由于所述翻譯候選已經競爭勝出,因此可以從所述優(yōu)先級隊列中將其刪除,在具體實施時可以通過將所述翻譯候選出隊列的處理過程來實現(xiàn)。
步驟302-4、選擇所選翻譯候選對應的子翻譯組合的鄰居,并將所述鄰居對應的翻譯候選添加到優(yōu)先級隊列中。
在上述步驟302-3中,從優(yōu)先級隊列中選取翻譯分數(shù)處于高序位的翻譯候選,添加到當前節(jié)點的翻譯結果集合中??紤]到所選翻譯候選的翻譯分數(shù)是比較高的,那么與其對應的子翻譯組合的鄰居對應的翻譯候選的翻譯分數(shù)通常也 會比較高,也是進入本節(jié)點的翻譯結果集合的有力競爭者,因此本步驟將所述鄰居對應的翻譯候選添加到優(yōu)先級隊列中。
所述翻譯候選對應的子翻譯組合的鄰居,是以下兩個成員的組合:
1)子翻譯組合中的一個子翻譯候選;
2)在另一子翻譯候選所在翻譯結果集合中與所述另一子翻譯候選相鄰且處于低序位的子翻譯候選。
此處仍沿用上述拓展(1,3)節(jié)點的具體例子進行說明,如果步驟302-3從優(yōu)先級隊列中選擇翻譯分數(shù)處于高序位(例如第一位)的翻譯候選為A1B1,該翻譯候選對應的子翻譯組合為A1和B1的組合,該組合有兩個鄰居,其中一個鄰居為子翻譯候選A1與B2的組合,其中B2是B1所在翻譯結果集合中與B1相鄰且處于低序位的子翻譯候選;另一個鄰居為子翻譯候選A2與B1的組合,其中A2是A1所在翻譯結果集合中與A1相鄰且處于低序位的子翻譯候選。
為了更形象地描述鄰居的選取方式,請參見圖5,圖中的黑色方框表示步驟302-3所選的翻譯候選對應的子翻譯組合A1和B1,灰色方框代表該子翻譯組合的兩個鄰居:A1與B2的組合、以及A2與B1的組合。同樣的道理,如果后續(xù)從優(yōu)先級隊列中選出的翻譯候選對應的子翻譯組合為A1和B2,那么圖中用斜線填充的兩個方框則代表該子翻譯組合的兩個鄰居,即:A1和B3,以及A2和B2。
本步驟將所選鄰居對應的翻譯候選添加到優(yōu)先級隊列中。仍沿用上述具體例子,如果步驟302-3從優(yōu)先級隊列中選擇的翻譯候選為A1B1,對于由A1與B2組合而成的鄰居,可以將保序的A1B2、以及逆序的B2A1這兩個翻譯候選添加到優(yōu)先級隊列中;對于由A2與B1組合而成的鄰居,可以將保序的A2B1、以及逆序的B1A2這兩個翻譯候選添加到優(yōu)先級隊列中。同樣的道理,如果步驟302-3從優(yōu)先級隊列中選取的翻譯候選為C1D1,那么本步驟可以將翻譯候選C1D2、D2C1、C2D1和D1C2添加到優(yōu)先級隊列中。
由此可見,步驟302-3從優(yōu)先級隊列中選擇一個翻譯候選添加到翻譯結果集合中,而本步驟則根據(jù)該翻譯候選向優(yōu)先級隊列中加入4個新的翻譯候選進行競爭。
通過上述從優(yōu)先級隊列中選取翻譯候選出隊列、以及向優(yōu)先級隊列中加入新翻譯候選的隊列操作過程可以看出,本實施例在拓展節(jié)點的時候,并不是局限于在每種組合方式內部選擇翻譯分數(shù)處于高序位的翻譯候選,而是同時觀察 所有組合方式下具有競爭力的翻譯候選(即:翻譯分數(shù)處于高序位的翻譯候選),并通過優(yōu)先級隊列維持有競爭力的翻譯候選的集合。也就是說,對于一個節(jié)點來說,各組合方式之間并不是完全隔離的,每一種組合方式的翻譯候選都要和其他所有組合方式的翻譯候選進行競爭,從而減少了為每個節(jié)點生成翻譯候選的數(shù)目,實現(xiàn)輕量解碼過程。
步驟302-5、判斷當前節(jié)點從優(yōu)先級隊列中選取的翻譯候選的數(shù)目是否小于K,若是,執(zhí)行步驟302-3,若否,本節(jié)點拓展完畢。
解碼過程中的剪枝操作會將部分翻譯候選剪除,由于語言的復雜性以及各模型自身的局限性,不排除可能存在將正確翻譯候選剪除的可能性,為了盡量降低這種可能性,解碼過程通常會為每個節(jié)點都生成K個最優(yōu)的翻譯候選,從而盡量保證正確的翻譯候選能夠得以保留。考慮到采用過大的K值往往會影響解碼性能,因此在實際應用中,可以兼顧生成翻譯結果的正確性和效率兩個方面,設置適當?shù)腒值,例如可以設置為20、50甚至100都是可以的。
本步驟判斷從優(yōu)先級隊列中生成的翻譯候選的數(shù)目是否達到K值,若未達到,則執(zhí)行步驟302-3繼續(xù)從優(yōu)先級隊列中選取翻譯分數(shù)處于高序位的翻譯候選,否則本節(jié)點拓展完畢。
為了保證本技術方案的高效執(zhí)行,為每個節(jié)點生成的翻譯結果集合通常是按照翻譯候選的翻譯分數(shù)從高到低排序的,如果在拓展節(jié)點的過程中、向翻譯結果集合中加入翻譯候選時沒有按照上述要求進行排序,那么可以在本步驟判斷出本節(jié)點拓展完畢時,對翻譯結果集合中的翻譯候選進行排序。
如果在步驟301進行解碼空間的初始化時,在短語表中找到了與當前節(jié)點對應的短語及其翻譯候選,并將翻譯候選添加到該節(jié)點的翻譯結果集合中,那么當該節(jié)點拓展完畢時,可以對翻譯結果集合中的翻譯候選,包括:初始化時添加的翻譯候選、以及從優(yōu)先級隊列中競爭勝出的K個翻譯候選按照翻譯分數(shù)從高到低進行全局排序,并從中選擇處于高序位的K個翻譯候選作為當前節(jié)點的翻譯結果集合。
需要說明的是,本實施例描述的節(jié)點拓展過程,采用了基于優(yōu)先級隊列的實施方式,在其他實施方式中,也可以采用其他數(shù)據(jù)結構組織參與競爭的翻譯候選,只要在拓展每個節(jié)點時采用全局的剪枝方式,綜合考量各種組合方式并選取翻譯分數(shù)處于高序位的翻譯候選,就同樣可以實現(xiàn)本申請的技術方案,同 樣在本申請的保護范圍之內。
步驟303、從覆蓋整個源語言句子的節(jié)點的翻譯結果集合中選擇翻譯分數(shù)處于前N位的翻譯候選,并構建所述源語言句子的翻譯結果。
步驟302完成對解碼空間中每個節(jié)點的拓展后,本步驟構建所述源語言句子的翻譯結果。
在具體實施時,在步驟302拓展每個節(jié)點時,在從根據(jù)其他節(jié)點生成當前節(jié)點的各種組合方式中選取翻譯分數(shù)處于高序位的翻譯候選(例如,從優(yōu)先級隊列中選取了所述翻譯候選)之后,可以記錄所述翻譯候選與生成所述翻譯候選的各節(jié)點中的相應子翻譯候選的對應關系,例如,可以為所述翻譯候選定義指針,每個指針分別指向生成所述翻譯候選的不同子翻譯候選,那么本步驟就可以根據(jù)已記錄的對應關系,從覆蓋整個源語言句子的節(jié)點出發(fā),構建最終的翻譯結果。
對于基于CYK算法的解碼過程來說,本步驟可以從解碼空間的頂部節(jié)點出發(fā),先從翻譯結果集合中選擇翻譯分數(shù)處于前N位的翻譯候選,然后針對每個翻譯候選采用如下方式反向構建對應的翻譯結果:根據(jù)已記錄的所述對應關系自頂向下查找生成當前翻譯候選的兩個子翻譯候選,然后再分別繼續(xù)查找生成每個子翻譯候選的子翻譯候選,......,依次類推,直至找到的子翻譯候選是具體的目標語言短語,然后用找到的所述子翻譯候選構建生成所述源語言句子的翻譯結果,即:目標語言句子。
具體實施時,從線上應用的角度出發(fā),可以從覆蓋整個源語言句子的節(jié)點的翻譯結果集合中選擇翻譯分數(shù)處于第一位(即,N=1)的翻譯候選,即翻譯分數(shù)最高的翻譯候選,然后通過上述方式構建所述源語言句子的翻譯結果,得到最優(yōu)的目標譯文;從進一步優(yōu)化統(tǒng)計機器翻譯過程的角度出發(fā),也可以從所述頂部節(jié)點的翻譯結果集合中選擇N個(N大于或者等于2)翻譯分數(shù)靠前的翻譯候選,然后通過上述方式構建所述源語言句子的N個翻譯結果,即通常所述的N-best譯文列表,所述N-best譯文列表可以用于進行統(tǒng)計機器翻譯系統(tǒng)的最小錯誤率訓練。
至此,對本申請?zhí)峁┑挠糜诮y(tǒng)計機器翻譯的解碼方法的實施例進行了詳細描述。下面對本申請?zhí)峁┑慕獯a方法與傳統(tǒng)采用局部剪枝的解碼方法的性能進行分析。為了便于比較,參與分析的兩種解碼方法都是基于CYK算法的。
傳統(tǒng)的采用局部剪枝的CYK解碼方法,其局部性體現(xiàn)在,每一種可能的組合方式在搜索最優(yōu)翻譯候選時,只能看到當前自己局部的搜索空間,而看不到其他可能組合方式的搜索空間。以句長為N的源語言句子為例,在拓展CYK算法最頂端的節(jié)點時,總共有N-1種組合方式,每一種組合方式都會生成K個翻譯候選,因此為了拓展生成該節(jié)點,須要生成(N-1)*K個翻譯候選,同理對于CYK解碼空間中的每一個節(jié)點都要生成相應數(shù)目的翻譯候選。將CYK解碼空間中所有節(jié)點的翻譯候選數(shù)目進行累加,得到解碼過程中生成的翻譯候選總數(shù)目Number1,如公式1所示:
------公式1
而本申請?zhí)峁┑挠糜诮y(tǒng)計機器翻譯的解碼方法,在拓展CYK解碼空間中的每個節(jié)點時,為了盡快得到最優(yōu)的K個翻譯候選,采用了全局的立方圖剪枝方法,其全局性體現(xiàn)在拓展每個節(jié)點時,同時觀察所有組合方式下的最優(yōu)翻譯候選,每一種組合方式的翻譯候選都要和其他所有組合方式的候選進行競爭,組合方式之間能互相看到并且互相競爭?;谏鲜鰴C制,在解碼過程中生成的翻譯候選總數(shù)目Number2如公式2所示:
------公式2
在上述公式1以及公式2中,M是常量,N代表句長,K代表為每一個節(jié)點生成的翻譯候選的數(shù)目。相對于公式1而言,公式2生成的翻譯候選數(shù)目大大降低了。以N=15,K=20,M=10為例,Number1=22970,Number2=4770。由此可見,本申請?zhí)峁┑娜诤狭嘶谌旨糁Ψ绞降慕獯a方法,比基于局部剪枝方式的傳統(tǒng)解碼方法高效得多。
綜上所述,本申請?zhí)峁┑挠糜诮y(tǒng)計機器翻譯的解碼方法,由于在拓展每個節(jié)點的時候,沒有采用分別在每一組合方式內部進行剪枝的方式,而是同時考量各種可能的組合方式,并從所有組合方式中選擇翻譯分數(shù)處于高序位的翻譯候選,即采用的是全局的剪枝方式,從而可以減少解碼過程中生成的翻譯候選的數(shù)目,最大限度加快解碼過程、并縮減對內存的占用,實現(xiàn)了輕量解碼過程,特別是在句子長度增長到較大規(guī)模時,效果尤為明顯,能夠實現(xiàn)翻譯速度的大規(guī)模提升。
在上述的實施例中,提供了一種用于統(tǒng)計機器翻譯的解碼方法,與之相對應的,本申請還提供一種用于統(tǒng)計機器翻譯的解碼裝置。請參看圖6,其為本申請的一種用于統(tǒng)計機器翻譯的解碼裝置的實施例示意圖。由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。下述描述的裝置實施例僅僅是示意性的。
本實施例的一種用于統(tǒng)計機器翻譯的解碼裝置,包括:初始化單元601,用于根據(jù)源語言句子包含的詞序列,初始化由對應各跨度詞序列的節(jié)點組成的解碼空間;拓展解碼單元602,用于拓展所述解碼空間中的每個節(jié)點,以生成每個節(jié)點的翻譯結果集合;翻譯結果構建單元603,用于從覆蓋整個源語言句子的節(jié)點的翻譯結果集合中選擇翻譯分數(shù)處于前N位的翻譯候選,并反向構建所述源語言句子的翻譯結果;
其中,所述拓展解碼單元包括:
解碼控制子單元,用于選擇所述解碼空間中的每個節(jié)點,并針對每個節(jié)點觸發(fā)節(jié)點拓展子單元工作;
節(jié)點拓展子單元,用于從生成當前節(jié)點的各種組合方式中選取翻譯分數(shù)處于高序位的翻譯候選,添加到當前節(jié)點的翻譯結果集合中,直至所選翻譯候選的數(shù)目不小于預設閾值K。
可選的,所述節(jié)點拓展子單元,包括:
組合方式構建子單元,用于構建根據(jù)其他節(jié)點生成當前節(jié)點的各種組合方式;
優(yōu)先級隊列初始化子單元,用于將每一種組合方式下的優(yōu)選子翻譯組合對應的翻譯候選添加到優(yōu)先級隊列中,所述優(yōu)選子翻譯組合是指生成所述組合方式的各節(jié)點在其翻譯結果集合中處于高序位的子翻譯候選的組合;
翻譯候選選取子單元,用于從所述優(yōu)先級隊列中選取翻譯分數(shù)處于高序位的翻譯候選,添加到當前節(jié)點按照翻譯分數(shù)排序的翻譯結果集合中;
鄰居添加子單元,用于選擇所選翻譯候選對應的子翻譯組合的鄰居,并將所述鄰居對應的翻譯候選添加到優(yōu)先級隊列中;
拓展判斷子單元,用于判斷當前節(jié)點從優(yōu)先級隊列中選取的翻譯候選的數(shù)目是否小于K,若是,觸發(fā)所述翻譯候選選取子單元工作。
可選的,所述初始化單元包括:
解碼空間構建子單元,用于構建由對應各跨度詞序列的節(jié)點組成的解碼空間;
短語翻譯候選初始化子單元,用于根據(jù)翻譯模型生成所述源語言句子所包含各短語的翻譯候選,并將所述各短語的翻譯候選添加到所述解碼空間中相應節(jié)點的翻譯結果集合中。
可選的,所述節(jié)點拓展子單元包括:
選擇子單元,用于從生成當前節(jié)點的各種組合方式中選取翻譯分數(shù)處于高序位的翻譯候選,添加到當前節(jié)點的翻譯結果集合中;
數(shù)目判斷子單元,用于判斷所述翻譯候選的數(shù)目是否不小于預設閾值K,并在小于時觸發(fā)選擇子單元工作;
所述節(jié)點拓展子單元還包括:
翻譯候選排序子單元,用于在所述數(shù)目判斷子單元的輸出為是時,將處于當前節(jié)點翻譯結果集合中的翻譯候選按照翻譯分數(shù)從高到低排序;
翻譯候選篩選子單元,用于從所述翻譯候選排序子單元排好序的翻譯候選中,選擇序位處于高位的K個翻譯候選作為當前節(jié)點的翻譯結果集合。
可選的,所述節(jié)點拓展子單元包括:
選擇子單元,用于從生成當前節(jié)點的各種組合方式中選取翻譯分數(shù)處于高序位的翻譯候選,添加到當前節(jié)點的翻譯結果集合中;
數(shù)目判斷子單元,用于判斷所述翻譯候選的數(shù)目是否不小于預設閾值K,并在小于時觸發(fā)選擇子單元工作;
所述節(jié)點拓展子單元還包括:
對應關系記錄子單元,用于在所述選擇子單元選取翻譯分數(shù)處于高序位的翻譯候選后,記錄所述翻譯候選與生成所述翻譯候選的各節(jié)點中的相應子翻譯候選的對應關系;
所述翻譯結果構建單元具體用于,從覆蓋整個源語言句子的節(jié)點的翻譯結果集合中選擇翻譯分數(shù)處于前N位的翻譯候選,根據(jù)已記錄的所述對應關系逐層查找生成所述翻譯候選的各層子翻譯候選,并依據(jù)找到的子翻譯候選生成所述源語言句子的翻譯結果。
在上述的實施例中,提供了一種用于統(tǒng)計機器翻譯的解碼方法以及一種用于統(tǒng)計機器翻譯的解碼裝置,此外,本申請還提供一種統(tǒng)計機器翻譯方法。請參考圖7,其為本申請?zhí)峁┑囊环N統(tǒng)計機器翻譯方法的實施例的流程圖,本實施例與上述用于統(tǒng)計機器翻譯的解碼方法實施例步驟相同的部分不再贅述,下面重點描述不同之處。本申請?zhí)峁┑囊环N統(tǒng)計機器翻譯方法包括:
步驟701、訓練用于統(tǒng)計機器翻譯的翻譯模型、調序模型和語言模型。
統(tǒng)計機器翻譯的核心是解碼過程,而解碼的過程通常是整合翻譯模型、調序模型和語言模型,在句子長度的指數(shù)級空間中進行搜索最優(yōu)的翻譯候選的過程。本步驟的任務即為訓練所述翻譯模型、調序模型和語言模型,具體實施時,可以利用針對源語言和目標語言的雙語語料庫訓練翻譯模型和調序模型,利用針對目標語言的單語語料庫訓練語言模型。
所述雙語語料(也稱平行語料)是指一種語言的文本及其對應于另一種語言譯文的集合,通常也稱為雙語語料庫,雙語語料庫的規(guī)模從幾千萬到數(shù)億個詞不等,具體實施時可以自行收集雙語語料庫,也可以從網(wǎng)上獲取已公開的雙語語料庫。
利用所述雙語語料庫,通過句子對齊獲取雙語語料庫中的每個雙語句對,然后在句對中建立詞對齊關系,并抽取與詞對齊一致的短語對,最后利用統(tǒng)計的方法將這些短語對轉換成概率化的短語翻譯表,所述概率可以包括:兩個方向的短語翻譯概率、兩個方向的詞匯化翻譯概率等,從而完成對所述翻譯模型的訓練。
調序模型的訓練過程主要是獲取對短語進行位置調整的概率,所述訓練過程也可以利用所述雙語語料庫實現(xiàn)。所述調序模型可以是基于距離的調序模型,也可以是詞匯化的調序模型,本實施例則選用最大熵重排序模型,該模型將重排序看作是一個分類問題,利用從實際雙語語料中訓練的最大熵分類器預測不同情況下進行順序調整的可能性。具體實施時,可以采用如下三個步驟訓練最大熵調序模型:1)重排序實例的抽?。?)重排序特征的提取,即:從重排序實例中提取最大熵分類器所要用到的特征,所述重排序特征包括:詞匯特征和/或組合特征;3)構建最大熵分類器,即估計特征的權重。
通過使用語言模型,可以使翻譯系統(tǒng)在生成與源語言句子意思相同的目標詞序列的基礎上,能夠將這些目標詞組合成流利的目標語言句子。語言模型的 訓練過程主要包括統(tǒng)計每個目標語言句子在文本中出現(xiàn)的概率大小,所述訓練過程可以利用針對目標語言的單語語料庫實現(xiàn)。語言模型可以包括多種,本實施例采用n元(n-gram)文法語言模型,具體可以通過統(tǒng)計單詞之間相互跟隨出現(xiàn)的可能性來建模。
需要說明的是,針對特定的源語言和目標語言,一旦翻譯模型、調序模型和語言模型訓練完畢,每一次接收到待翻譯原文,直接利用所述模型執(zhí)行后續(xù)步驟702至步驟704即可,不用每次都對上述模型進行訓練。
步驟702、對待翻譯原文進行預處理,獲取由詞序列組成的源語言句子。
待翻譯原文通常包括若干個段落,每個段落通常包括若干個句子,本步驟對所述對待翻譯原文進行預處理,從而獲取一系列由詞序列組成的源語言句子。
所述預處理操作包括:通過分句切句操作,將所述待翻譯原文切割為一系列獨立的源語言句子;通過分詞操作,將每個獨立的源語言句子轉換為由若干詞組成的序列。在具體實施時,還可以在進行分句操作之前,進行大小寫轉換、垃圾字符清理等處理。
步驟703、利用所述翻譯模型、調序模型和語言模型,采用融合全局剪枝方式的解碼方法,對所述源語言句子進行解碼,獲得對應于源語言句子的目標語言句子。
本步驟利用預先訓練好的翻譯模型、調序模型和語言模型,采用融合了全局剪枝方式的解碼方法,即在本申請第一個實施例中提供的用于統(tǒng)計機器翻譯的解碼方法,對步驟702中獲取的每個由詞序列組成的源語言句子進行解碼,獲取對應于每個源語言句子的翻譯結果。如果對應于每個源語言句子的翻譯結果有多個,則可以從中選擇翻譯分數(shù)最高的翻譯結果,作為對應于所述源語言句子的目標語言句子。
步驟704、對所述目標語言句子進行后處理,獲取對應于待翻譯原文的目標譯文。
本步驟對已獲取的目標語言句子進行后處理,所述后處理包括:將已獲取的目標語言句子組合為對應于待翻譯原文的目標譯文。在執(zhí)行上述組合操作之前,還可以對目標語言句子中的詞進行大小寫轉換等處理,以使得目標語言句子符合目標語言的語法習慣。
本申請?zhí)峁┑慕y(tǒng)計機器翻譯方法,由于采用了融合全局剪枝方法的解碼方 法,減少了為每個節(jié)點生成翻譯候選的數(shù)目,不僅減少了對內存空間的占用,而且極大地縮減了解碼過程中的搜索空間,能夠縮短每個源語言句子的翻譯時間,從而使得翻譯速度整體得到顯著提升,與現(xiàn)有的基于形式化句法的統(tǒng)計機器翻譯方法相比較,整體翻譯速度提升5倍。
需要說明的是,本申請?zhí)峁┑纳鲜龇椒m然是針對統(tǒng)計機器翻譯提出的,但是其應用領域并非局限于單純的統(tǒng)計機器翻譯系統(tǒng),在組合了其他機器翻譯方法的機器翻譯系統(tǒng)中也可以采用本方法。例如,在結合了統(tǒng)計機器翻譯與基于規(guī)則或者模板的機器翻譯方法的系統(tǒng)中,通??梢栽陬A處理階段根據(jù)規(guī)則或模板替換源語言句子中的部分詞,然后采用本申請?zhí)峁┑姆椒ɑ诮y(tǒng)計規(guī)律獲取最終的翻譯結果。
在上述的實施例中,提供了一種統(tǒng)計機器翻譯方法,與之相對應的,本申請還提供一種統(tǒng)計機器翻譯裝置。請參看圖8,其為本申請的一種統(tǒng)計機器翻譯裝置的實施例的示意圖。由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。下述描述的裝置實施例僅僅是示意性的。
本實施例的一種統(tǒng)計機器翻譯裝置,包括:模型訓練單元801,用于訓練用于統(tǒng)計機器翻譯的翻譯模型、調序模型和語言模型;預處理單元802,用于對待翻譯原文進行預處理,獲取由詞序列組成的源語言句子;解碼單元803,用于利用所述翻譯模型、調序模型和語言模型,采用如權利要求10所述的用于統(tǒng)計機器翻譯的解碼裝置,對所述源語言句子進行解碼,獲得對應于源語言句子的目標語言句子;后處理單元804,用于對所述目標語言句子進行后處理,獲取對應于待翻譯原文的目標譯文。
可選的,所述模型訓練單元具體用于,利用針對源語言和目標語言的雙語語料庫訓練翻譯模型和調序模型,利用針對目標語言的單語語料庫訓練語言模型。
可選的,所述預處理單元包括:
分句子單元,用于通過分句操作將待翻譯原文切割為獨立的源語言句子;
分詞子單元,用于通過分詞操作將所述源語言句子轉換為由詞組成的序列。
可選的,所述后處理單元具體用于,將所述目標語言句子組合為對應于待翻譯原文的目標譯文。
本申請雖然以較佳實施例公開如上,但其并不是用來限定本申請,任何本領域技術人員在不脫離本申請的精神和范圍內,都可以做出可能的變動和修改,因此本申請的保護范圍應當以本申請權利要求所界定的范圍為準。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡接口和內存。
內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內存是計算機可讀介質的示例。
1、計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結構、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質的例子包括,但不限于相變內存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括非暫存電腦可讀媒體(transitory media),如調制的數(shù)據(jù)信號和載波。
2、本領域技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。