尹寶生 張斌斌 李紹鳴
(沈陽航空航天大學 遼寧 沈陽 110136)
(遼寧省知識工程與人機智能研究中心 遼寧 沈陽 110136)
雙語詞匯的提取和對齊在跨語言檢索和雙語詞典的建立中起著重要的作用。雙語詞對齊也是統(tǒng)計機器翻譯系統(tǒng)中關鍵的一步,詞對齊的準確率將直接影響翻譯系統(tǒng)的性能。此外,經(jīng)過標注詞對齊信息的語料具有很大的應用價值。它能為詞典編撰、跨語言信息檢索和語義消歧等自然語言處理任務提供重要的支撐。因此,研究和實現(xiàn)高質量的雙語詞對齊方法和工具,具有很大的研究價值。
本文的主要貢獻可以概括為以下兩點:
(1) 分析英語與漢語的語言特征,以英語為基準,制定標注規(guī)范,在英中句對齊的數(shù)據(jù)集上使用GIZA++工具實現(xiàn)了英語單詞與中文漢字間的對應關系并依此構建了英中雙語詞對齊語料。
(2) 在建立語料庫基礎上,本文提出在神經(jīng)網(wǎng)絡的編碼層融合線性句法樹結構信息,在神經(jīng)網(wǎng)絡部分使用BiLSTM結合TextCNN的方法來實現(xiàn)關于詞對齊任務的神經(jīng)網(wǎng)絡模型的構建。
在詞對齊的研究中,經(jīng)典的非監(jiān)督詞對齊方法主要是基于IBM1-IBM5模型詞對齊方法和基于HMM[1]模型的詞對齊方法。GIZA++工具將這兩種模型都進行了實現(xiàn),因此很多的研究者都使用GIZA++來進行詞對齊,本文也將使用此工具進行英漢詞對齊的實驗。謝庚全[2]利用GIZA++工具在英漢平行語料上手動對齊,對齊速度比單純的無監(jiān)督對齊的方法有了大幅度提升,準確率比其他純自動詞對齊法也有所提升。有很多學者使用機器學習來進行詞對齊任務,趙東玥[3]利用雙語詞典對語料標注了少量信息,選取了候選術語翻譯對的多種統(tǒng)計學特征,使用半監(jiān)督學習在雙語語料間進行雙語術語對齊。近年來隨著深度學習模型的快速發(fā)展,很多學者使用深度學習方法對詞對齊進行建模,莫媛媛等[4]提出了一種基于深層神經(jīng)網(wǎng)絡(Deep Neural Network,DNN)擴展HMM 的漢—越雙語詞語對齊方法,在大規(guī)模的漢—越雙語詞語對齊任務上該方法的準確率、召回率有明顯的提高,并且詞語對齊錯誤率大大降低。周嘉劍[5]在雙語詞對齊任務上使用(Recurrent Neural Network, RNN)網(wǎng)絡,詞對齊效果比DNN網(wǎng)絡有明顯提升。為了讓神經(jīng)網(wǎng)絡學到更多的語義知識,有很多學者在神經(jīng)網(wǎng)絡中融入統(tǒng)計特征或者其他外部信息,賈善崇等[6]針對老撾語與中文的句子上下文信息,從句子所含動詞、名詞和形容詞等詞序進行句子對齊,該方法在對齊的篇章級語料中的提取對齊句子有較好的表現(xiàn)。在當前解決雙語詞對齊任務的方法中,存在以下兩個主要問題:
(1) 在訓練過程中通常需要大量的標注好的詞對齊數(shù)據(jù),而人工標注的對齊數(shù)據(jù)又太少,不能滿足訓練需求。
(2) 現(xiàn)有的詞對齊方法往往通過統(tǒng)計信息進行對齊,沒有充分考慮不同語言之間的特征表達上的差異?,F(xiàn)有的方法使用神經(jīng)網(wǎng)絡來完成詞對齊任務時仍不能提取到更全面的跨語言的語義信息。
針對這兩個問題,本文提出一種在英中句對齊的數(shù)據(jù)集上使用GIZA++工具實現(xiàn)了在雙語句對齊語料上無監(jiān)督的構建雙語詞對齊數(shù)據(jù)集,并在該數(shù)據(jù)集基礎上,在BiLSTM網(wǎng)絡的編碼層融合源語言與目標語言的線性句法樹結構,并后續(xù)接入TextCNN網(wǎng)絡再對句子級別的特征進行提取,對詞對齊任務進行神經(jīng)網(wǎng)絡模型的構建。
該模型主要由三部分組成,分別是GIZA++自動詞對齊生成數(shù)據(jù)集部分、對數(shù)據(jù)集進行線性句法結構分析部分、神經(jīng)網(wǎng)絡部分,本文的完整模型訓練流程如圖1所示。
詞對齊的主要任務是確定兩種語言句子中單詞的映射關系。本文中將詞對齊定義為給定一個互譯的雙語句對,本文中源語言句子表示為英文,目標語言為 中文,例如,圖2中展示了本文中具體一個詞對齊關系的展示。
圖2 詞對齊具體展示
基于統(tǒng)計特征的雙語詞對齊方法在源語言與目標語言的多種對應關系中,往往很多模型都假設在其中的一種,GIZA++是常用的詞對齊抽取工具,GIZA++在計算源語言英文與目標語言中文之間翻譯概率的同時,也產(chǎn)生了詞對齊文件。本文使用UTF-8作為統(tǒng)一的字符集。所以,在預處理時,將所有的中文都轉換成簡體。還需要將無效的字符除去,無效的字符有中文標點、希臘字母、特殊符號、無意義字母組合,在去除上述字符的同時,將英文大寫轉成小寫。為降低翻譯過程中運算復雜度以及避免句子被分詞工具過度切分,英文句子中的token是每個單詞,中文中的token是每個漢字。
本文是將詞對齊任務建模成序列標注任務,為了實現(xiàn)這一目標,需要處理GIZA++生成的雙語詞對齊文件,交換源語言與目標語言運行兩次GIZA++,取IBM3生成的文件進行處理,示例如圖3所示。輸入到后續(xù)神經(jīng)網(wǎng)絡中的是兩部分,一部分是英文句子與對應中文句子的拼接句子,另一部分是句子的標簽,句子的標簽以字母“B”與數(shù)字組合,數(shù)字表示對齊詞的順序,標注“O”代表無意義詞或找不到與該詞對應的詞。
圖3 生成詞對齊數(shù)據(jù)集,制定標注規(guī)范
短語結構語法分析(Phrase Structure Grammer,PSG)作用是識別出句子中的短語結構以及短語之間的層次句法關系。在本文中,短語句法分析選擇與經(jīng)過GIZA++進行詞對齊分析相同的數(shù)據(jù),這樣做是為了保證訓練數(shù)據(jù)使用的短語句法知識數(shù)據(jù)的一致性。短語句法線性化方法遵循Li等[7]的方法。為了獲得一個單詞在其短語句法樹中的結構上下文,理想的情況下,模型不僅應該捕獲和記住整個句法樹結構,而且應該區(qū)分任意兩個不同詞的上下文。然而,考慮到缺乏直接對結構信息建模的有效方法,另一種方法是將短語句法樹線性化為一個結構標簽序列,并通過該序列學習結構上下文。將短語句法分析樹按照深度優(yōu)先遍歷順序抽取。Choe等[8]按照深度優(yōu)先遍歷順序將短語句法樹線性化為結構標記序列也被廣泛地采用在神經(jīng)句法分析的最新進展中,這表明線性化序列可以被視為其樹結構的替代。例如,圖4顯示按照深度優(yōu)先遍歷順序顯示了中文句子與英文句子的結構標簽序列的生成。
圖4 線性句法結構分析
本文使用句法分析工具Stanford CoreNLP對源語言和目標語言進行句法分析,分別得到英文的句法分析樹和中文的句法分析樹,將兩種語言的句法結構進行線性分析后得到的序列進行embedding,并將embedding后的結果進行按位加和。
LSTM[9]網(wǎng)絡引入了記憶單元和門控機制,這一機制的引用實現(xiàn)了對上文長距離信息的有效利用從而解決了之前RNN 模型中存在的梯度消失或者爆炸問題。但是LSTM只考慮文本的上文信息,并不能有效解決雙語對齊問題中的新詞發(fā)現(xiàn)問題,BiLSTM在解決序列標注類的問題有更好的表現(xiàn)[10]。所以本文選擇了BiLSTM網(wǎng)絡,既可以考慮上文信息,又可以考慮下文信息,對以往出現(xiàn)的詞和新詞能更有效地提取信息。李志杰等[11]提出了一種LSTM與TextCNN聯(lián)合的模型實現(xiàn)了對文本的分類,經(jīng)過測試比較之后發(fā)現(xiàn)優(yōu)于單模型LSTM和TextCNN。TextCNN模型的主要思想是將不同長度的短文作為矩陣輸入,使用多個不同大小的過濾器去提取句子中的關鍵信息并用于最終的分類。于是本文為了能更好地提取拼接句子的整句特征,在BiLSTM后接入TextCNN模型。TextCNN層的輸入即前面BiLSTM網(wǎng)絡輸出的向量矩陣,在該輸入的基礎上,使用卷積窗口進行卷積并通過函數(shù)激活得到特征圖。實驗中將每個特征圖向量中最大的一個值抽取出來,組成一個一維向量,可捕獲其最重要的特征。該層的輸入為池化操作后全連接成的n維向量,經(jīng)過激活函數(shù)輸出最后的分類。本部分所述實驗模型如圖5所示。
圖5 BiLSTM+TextCNN網(wǎng)絡
但由于BiLSTM結構從源語言和目標語言中無法顯式地學習句子結構及句子成分。因此本文提出在神經(jīng)網(wǎng)絡的編碼層融入雙語的線性句法結構,本文所述實驗融入句法信息的整體結構如圖6所示,圖6虛線框部分是將雙語線性句法結構信息融入進神經(jīng)網(wǎng)絡,圖6左側BiLSTM的輸入是英文線性句法結構樹的編碼e與中文線性句法結構的編碼z的和,右側BiLSTM的輸入是源語言與目標語言拼接后使用Word2vec訓練的詞向量編碼k,后續(xù)TextCNN網(wǎng)絡的輸入為前面兩部分BiLSTM輸出的向量矩陣的和。
圖6 融合PSG的BiLSTM+TextCNN
本文將詞對齊轉為序列標注問題,在上述模型輸出結果之后,傳入softmax分類器,利用softmax層對結果的標簽選擇做多分類,softmax分類器的計算方式如式(1)所示。K表示類別數(shù)目, 本文中的類別是B0至B8、“O”和padding“0”,表示每個句子中第1個至第9個對齊的詞、無意義詞的詞,以及padding“0”共11類,那么對于類別k的概率計算公式如式(2)所示,將具有最高概率的標注作為最終的結果。
y′=wy+b
(1)
式中,y′為實際類別;y為神經(jīng)網(wǎng)絡的輸出;w是權重矩陣;b是偏置矩陣。
(2)
本節(jié)為使用本文采用的損失函數(shù)為多分類交叉熵來訓練模型,將輸入數(shù)據(jù)x傳入模型,得到真實標簽為y,模型的輸出代表了類別的概率,訓練目標是最小化損失函數(shù),損失函數(shù)如式(3)所示。
本文采用的評價標準為詞對齊的準確率,準確率是指分類器分類正確的樣本在數(shù)據(jù)集中占的比例。
(3)
式中:K為標簽的數(shù)量;yi為真實的預測標簽,也就是i的類別;pi是神經(jīng)網(wǎng)絡的輸出,也就是指類別是i的概率。采用隨機梯度下降算法優(yōu)化網(wǎng)絡參數(shù),優(yōu)化器為adam。
本節(jié)將設置GIZA++進行詞對齊實驗,并在GIZA++對齊的數(shù)據(jù)集上設計標注方式,實現(xiàn)英文單詞與中文漢字間一個單詞對應連續(xù)的多個漢字與一個單詞對應多個間斷的漢字間的關系,建立英中詞對齊數(shù)據(jù)集,并在該數(shù)據(jù)集上搭建多種網(wǎng)絡模型。最后將會給出多種模型對該數(shù)據(jù)集的對齊結果的準確率,并針對實驗結果予以分析。
為了保證句平行語料的權威性與準確性,本文的語料來源是英中句對齊的公開專利與標準標題,在使用GIZA++生成神經(jīng)網(wǎng)絡訓練數(shù)據(jù)集的部分中,本文的數(shù)據(jù)集分為兩部分,一部分是5萬余組CNKI電子與計算機領域文獻的英中平行的標題,另一部分是從1990年至2005年中國專利中抽取的45萬余組英中平行的專利標題,在標準與專利標題中,所有的名詞都是專業(yè)術語,人為主觀的分詞標注差異與情感分析錯誤的問題。
在上文生成的神經(jīng)網(wǎng)絡訓練數(shù)據(jù)集中,因為英文與對應的中文拼接后的句長范圍在5~230個字符之間,句長差距明顯會影響模型訓練結果,本文以10個字符為句長梯度,對神經(jīng)網(wǎng)絡進行初步建模后,發(fā)現(xiàn)英文與中文拼接后長度范圍在10到20個字符之間的數(shù)據(jù)集上訓練結果最佳,所以只選擇英文中文拼接后長度在10到20之間的數(shù)據(jù)共約26.5萬組句對作為神經(jīng)網(wǎng)絡模型的數(shù)據(jù)集,在訓練集、驗證集與測試集的樣本選取中考慮了標簽的類別數(shù)量分配均勻的問題,各標簽數(shù)量分布如表1所示。最后按照訓練集、驗證集與測試集的分布為8∶1∶1進行分配。
表1 數(shù)據(jù)集中的標簽分布
并且本語料的特點是低頻詞占的比例很大,本文將出現(xiàn)次數(shù)少于20次的詞定義為低頻詞,對于數(shù)據(jù)集中低頻詞的統(tǒng)計如表2所示,所以本文的實驗設計中考慮到了低頻詞在神經(jīng)網(wǎng)絡中更新不及時的問題,沒有選擇隨機初始化詞向量,為了不影響翻譯的準確性,并沒有去掉低頻詞。
表2 數(shù)據(jù)集中的低頻詞分布
在使用GIZA++進行詞對齊建立了句對齊語料的基礎上,為了保證詞向量中的詞與神經(jīng)網(wǎng)絡中的數(shù)據(jù)集的一致性,本文在英中拼接后長度范圍在10到20之間的句子共26萬組句對在Word2vec上進行詞向量訓練,并基于當前詞向量提出了以下幾種方法:
1) baseline方法。
(1) Word2vec訓練詞向量結合DNN網(wǎng)絡[4]。
(2) Word2vec訓練詞向量結合單層RNN網(wǎng)絡[5]。
2) Word2vec訓練詞向量合BiLSTM與TextCNN網(wǎng)絡(BiLSTM+TextCNN)。
3) Word2vec訓練詞向量,隨機初始化線性句法結構,將雙語線性句法結構信息融入BiLSTM后結合TextCNN網(wǎng)絡(融合PSG的BiLSTM+TextCNN)。
本文中的GIZA++使用默認參數(shù)設置,神經(jīng)網(wǎng)絡模型部分的參數(shù)設置如下:
(1) Word2vec:選擇了Gensim工具包,使用skip-gram方式,特征向量維度為128,因為本文數(shù)據(jù)集的特點是低頻詞占比很高,未丟棄低頻詞,高頻詞匯負采樣置閾值為0.001,窗口為10,其他參數(shù)選擇工具包的默認設置。
(2) 句法樹的embedding層:輸入維度10 000維,輸出128維。
(3) DNN網(wǎng)絡:100個激活單元,激活函數(shù)是“tanh”。
(4) RNN網(wǎng)絡:256個simpleRNN單元,輸入維度是20×128維,激活函數(shù)是“tanh”,使用dropout防止過擬合,dropout是0.1。
(5) BiLSTM網(wǎng)絡:256個LSTM單元,輸入維度是20×768維,選用ReLU激活函數(shù),使用dropout防止過擬合,dropout是0.2。
(6) TextCNN網(wǎng)絡:采用3層CNN,卷積核大小分別是2×20、3×20和4×20,每個卷積核2個filter,選用ReLU激活函數(shù),每個卷積核大小128×20,池化方式是最大化。
本文的實驗結果主要分成以下三部分,分別是GIZA++進行詞對齊并建立數(shù)據(jù)集實驗、用神經(jīng)網(wǎng)絡進行詞對齊實驗、融合線性句法樹結構的實驗結果。
(1) GIZA++進行詞對齊。根據(jù)GIZA++生成的對齊矩陣標注出英文與中文對齊的雙語詞對齊結果,隨機抽取出結果中的1 198組詞語對,引用網(wǎng)絡翻譯詞典加以判斷,人工判斷的準確率為91.4%,說明可以為訓練神經(jīng)網(wǎng)絡模型提供語料基礎。
(2) 神經(jīng)網(wǎng)絡進行詞對齊。本文設計的實驗的結果如表3所示,可以看出本文設計的方法能夠有效地提高雙語平行句對語料中詞對齊的效果。從神經(jīng)網(wǎng)絡模型在數(shù)據(jù)集上進行詞對齊的準確率上可以看出,本文提出的BiLSTM的方法相比于文獻[5]使用的DNN網(wǎng)絡和RNN網(wǎng)絡進行詞對齊的方法在準確率上分別提升了32.87百分點和15.26百分點。在本文提出的其他方法中,BiLSTM結合TextCNN網(wǎng)絡的方法比BiLSTM單模型在準確率提升了0.76百分點,其主要原因是結合了BiLSTM模型與TextCNN的方法與BiLSTM單模型相比可以更好整合輸入的句子中的中英文在句子級別的語義信息。
表3 多個模型的實驗結果
從各個模型收斂的epoch上可以看出各個模型均能達到收斂,說明模型的結果準確有效。
(3) 融合線性句法樹結構。為了讓雙語詞對齊達到更好的效果,本文融入了英文和中文的線性句法樹結構的方法,句子間的短語結構以及短語間的層次句法結構可以在訓練神經(jīng)網(wǎng)絡時更好地對特征進行指導,所以融入句法樹結構的神經(jīng)網(wǎng)絡有了更好的表現(xiàn),比未融合句法樹的模型在準確率上提升了2.43百分點。
本文為了比較使用神經(jīng)網(wǎng)絡進行詞對齊的準確率與GIZA++方法進行詞對齊的準確率,另外設計一組實驗,在50萬句的所有語料上訓練詞向量,并在26萬
句10到20個字符長度的數(shù)據(jù)集上使用TextCNN結合BiLSTM方法,詞對齊的準確率達到91.19%,與使用GIZA++詞對齊的準確率91.4%相當。而神經(jīng)網(wǎng)絡的準確率仍有提高空間,說明未來神經(jīng)網(wǎng)絡進詞對齊的比GIZA++進行詞對齊有更好的表現(xiàn),并且神經(jīng)網(wǎng)絡模型的使用具有即時性,使用起來更加快速靈活。綜上所述,本文設計的基于GIZA++對雙語句對齊語料進行標注生成詞對齊數(shù)據(jù)集,并在此基礎上訓練雙語詞對齊神經(jīng)網(wǎng)絡模型的方案切實可行。
雙語詞對齊在跨語言的自然語言任務中起著重要作用,因此本文提出一種基于GIZA++與神經(jīng)網(wǎng)絡相結合的無監(jiān)督的詞對齊神經(jīng)網(wǎng)絡模型訓練方法,本文方法通過GIZA++對初始的英中平行的句語料進行詞對齊抽取。通過人工判別,使用GIZA++進行詞對齊的準確率達到91.4%,說明該詞對齊語料可以作為神經(jīng)網(wǎng)絡訓練的數(shù)據(jù)集,在此數(shù)據(jù)集的基礎上,設計了雙語詞語對齊標注規(guī)范,用“B”與數(shù)字的結合來表示雙語詞的對應關系。最后將標注好的數(shù)據(jù)集經(jīng)過Word2vec訓練成詞向量,神經(jīng)網(wǎng)絡模型為BiLSTM與TextCNN的結合,并在神經(jīng)網(wǎng)絡的編碼層融入兩種語言的線性句法結構,雙語線性句法信息能更好地對神經(jīng)網(wǎng)絡進行指導,實驗結果的準確率達到了89.05%,說明設計方案可行。
本文中所使用的語料涉及的領域為標準與標題,其中的術語含量占比很大,本文未來的工作方向為篩選出術語,將雙語詞對齊任務擴展為雙語術語對齊任務,為建立雙語術語詞典奠定基礎。