• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      計(jì)算機(jī)算法類資料的中英文智能翻譯

      2021-08-02 03:49:14陳家樂張艷玲
      關(guān)鍵詞:分詞例句向量

      陳家樂,張艷玲

      (廣州大學(xué) 計(jì)算機(jī)科學(xué)與網(wǎng)絡(luò)工程學(xué)院,廣東 廣州 510006)

      0 引 言

      自2014年以后,端到端的神經(jīng)機(jī)器翻譯(end to end neural machine translation)質(zhì)量較統(tǒng)計(jì)機(jī)器翻譯有了顯著提升[1],端到端的訓(xùn)練使得深度學(xué)習(xí)方法區(qū)別于傳統(tǒng)機(jī)器學(xué)習(xí)方法,成為了自然語言處理的強(qiáng)大工具[2]。Google、有道、百度等商用在線機(jī)器翻譯系統(tǒng)核心技術(shù)均由統(tǒng)計(jì)機(jī)器翻譯轉(zhuǎn)型為神經(jīng)機(jī)器翻譯。端到端的編碼器-解碼器(Encoder-Decoder)[3]模型結(jié)構(gòu)成為神經(jīng)機(jī)器翻譯的主流模型[4]。Google首次提出基于Encoder-Decoder結(jié)構(gòu)的seq2seq[5](sequence to sequence)模型。其基本工作原理就是編碼器將輸入序列轉(zhuǎn)換為中間向量C,解碼器將中間向量C轉(zhuǎn)換為輸出序列。seq2seq在編碼器和解碼器中均使用循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,RNN),理論上RNN可以解決長句遠(yuǎn)距離信息依賴的問題[6],但在實(shí)際應(yīng)用時(shí)反向傳播過程中存在梯度爆炸和梯度消失的問題。梯度爆炸會導(dǎo)致模型無法收斂;梯度消失會導(dǎo)致模型捕捉不到長距離項(xiàng)的依賴信息。梯度爆炸一般可以使用梯度裁剪或權(quán)重正則化處理。梯度消失目前最好的處理方法是使用門控單元來構(gòu)建RNN。其中,應(yīng)用最廣的門控單元是長短時(shí)記憶(long short-term memory,LSTM)和門控循環(huán)單元(gated recurrent unit,GRU)[4]。雖然應(yīng)用門控單元使得RNN能有效捕捉到長距離項(xiàng)的依賴信息,但是由于句子中任意單詞對生成某個(gè)目標(biāo)單詞的影響占比是相同的,所以即使采用了門控單元,seq2seq模型依然在長句的翻譯質(zhì)量上顯著下降。為了優(yōu)化長句的翻譯質(zhì)量,Bahdanau等人[7]于2014年首次將注意力機(jī)制應(yīng)用于NLP領(lǐng)域,翻譯效果有了進(jìn)一步提升。谷歌團(tuán)隊(duì)[8]拋棄RNN和CNN等網(wǎng)絡(luò)結(jié)構(gòu),僅僅采用注意力機(jī)制進(jìn)行機(jī)器翻譯,在翻譯質(zhì)量上取得了顯著的效果,因此注意力機(jī)制成為了神經(jīng)機(jī)器翻譯中的研究熱點(diǎn)。但是,由于通用翻譯接口對垂直領(lǐng)域缺乏針對性,同一個(gè)詞匯在不同的語義環(huán)境下有不同的翻譯結(jié)果,而通用翻譯則無法識別該詞匯所在的語義環(huán)境,從而使得翻譯效果不佳。并且垂直領(lǐng)域下的專業(yè)詞匯繁多且復(fù)雜,若沒有對應(yīng)的詞匯的語料訓(xùn)練,會讓最終的訓(xùn)練模型對含有該詞匯的句子沒有好的翻譯效果。這就是現(xiàn)階段對垂直領(lǐng)域的語句翻譯效果不好的原因。所以針對某一領(lǐng)域?qū)崿F(xiàn)翻譯成為了當(dāng)下重要的研究方向。

      該文將收集與計(jì)算機(jī)算法類相關(guān)的中英雙語例句文本,利用Word2Vec算法生成詞向量,將詞向量嵌入GNMT[9]訓(xùn)練帶有注意力機(jī)制的LSTM seq2seq的中英翻譯模型。以此來優(yōu)化計(jì)算機(jī)算法類語料的翻譯效果,為此后垂直領(lǐng)域的神經(jīng)機(jī)器翻譯提供一個(gè)可行的優(yōu)化思路。

      1 數(shù)據(jù)獲取

      數(shù)據(jù)樣本的好壞很大程度上決定了模型的訓(xùn)練效果,要實(shí)現(xiàn)計(jì)算機(jī)算法類資料的中英翻譯,就需要獲取與計(jì)算機(jī)算法類相關(guān)的中英雙語例句?,F(xiàn)在各大在線翻譯網(wǎng)站能夠檢索特定關(guān)鍵詞的中英雙語例句,但是大多數(shù)的雙語例句沒有分門別類。為了得到最符合計(jì)算機(jī)算法類的中英雙語例句,需要收集計(jì)算機(jī)算法類相關(guān)度高的關(guān)鍵詞。

      該文通過中文書籍《算法導(dǎo)論第三版》(Introduction to Algorithms Third Edition)和計(jì)算機(jī)算法題網(wǎng)站力扣(LeetCode)收集關(guān)鍵詞。收集了1 618個(gè)關(guān)鍵詞在百度翻譯、有道翻譯、知網(wǎng)例句進(jìn)行檢索并爬取,最終獲取98 120條中英雙語例句作為模型訓(xùn)練的數(shù)據(jù)基礎(chǔ)。

      2 數(shù)據(jù)預(yù)處理

      獲取的數(shù)據(jù)還不能直接用于數(shù)據(jù)訓(xùn)練,中文例句詞匯與詞匯之間并沒有明確的分隔;英文例句雖然詞匯間有天然的空格分割,但是標(biāo)點(diǎn)符號與詞匯間仍然有連接,因此也需要進(jìn)行分詞處理。分詞處理完成后還需要獲取訓(xùn)練所需的數(shù)據(jù)集和詞匯表。

      2.1 英文文本處理

      英文存在大小寫的區(qū)別,而大寫的寫法和小寫的寫法指的是同一個(gè)單詞,例如“The”與“the”。經(jīng)過小寫化處理后,獲取詞集時(shí)能夠減少大量的重復(fù)單詞,從而降低訓(xùn)練的成本,一定程度上優(yōu)化訓(xùn)練效果。還需要對英文文本分詞,將標(biāo)點(diǎn)符號與詞匯間進(jìn)行分隔。

      2.2 中文文本分詞

      中文分詞正確率會大大影響模型訓(xùn)練的效果,因?yàn)榉衷~階段的錯(cuò)誤在翻譯過程中將會被“放大”,放大的倍數(shù)約等于句子的平均長度[10]。jieba庫是一個(gè)簡單易用的漢語自然語言處理分詞庫,通過在全切分所得的所有結(jié)果中求某個(gè)切分方案S,使得P(S)最大的概率進(jìn)行分詞。jieba分詞的算法流程為:(1)基于特定詞匯表構(gòu)建字典樹,實(shí)現(xiàn)高效的詞圖掃描;(2)基于字典樹生成句子中漢字所有可能成詞情況所構(gòu)成的有向無環(huán)圖(DAG);(3)采用了動態(tài)規(guī)劃尋找最大概率路徑,找出基于詞頻的最大切分組合;(4)對于未登錄詞,使用了Viterbi算法并采用了基于漢字成詞能力的HMM模型[11]。jieba分詞有三個(gè)分詞模式,分別是精確模式、全模式、搜索引擎模式。其中精確模式適合用于自然語言處理。

      中文一詞多意的情況非常多,同一個(gè)句子在不同的語義環(huán)境下有不同的分詞方案,因此如果不制作對應(yīng)的分詞詞典,會大大增加分詞出錯(cuò)的概率。制作分詞詞典步驟如下:(1)對中文文本進(jìn)行默認(rèn)分詞;(2)人工將分詞出錯(cuò)的詞匯添加到詞典中。

      2.3 數(shù)據(jù)集分割

      在模型訓(xùn)練之前,首先要?jiǎng)澐钟?xùn)練集、驗(yàn)證集、測試集。其中訓(xùn)練集用于模型訓(xùn)練,驗(yàn)證集和測試集用于衡量模型訓(xùn)練的效果。該文采用的分割方式是生成長度為0~N-1(N為句子總數(shù))的亂序序列,將亂序序列按14∶3∶3的比例進(jìn)行分割,分別對應(yīng)訓(xùn)練集、驗(yàn)證集、測試集。再根據(jù)分割后的亂序序列取出對應(yīng)下標(biāo)值的句子存入到對應(yīng)的文件當(dāng)中。

      2.4 基于訓(xùn)練集的中英文詞集提取

      首先,定義三個(gè)標(biāo)簽:,;其中表示未定義詞匯,表示語句的開頭,表示語句的結(jié)束。由于文本已經(jīng)經(jīng)過分詞處理,故只需按行讀取句子,根據(jù)空格進(jìn)行分割就能夠獲取到詞匯,并且按照詞匯的頻率由高到底排序。

      3 詞向量訓(xùn)練

      3.1 文本表示方法

      文本表示方法一直是自然語言處理研究范疇中的一個(gè)熱點(diǎn)問題,總體來講主要分為兩大類:獨(dú)熱編碼和分布式表示。

      獨(dú)熱編碼(one-hot representation)又稱為一位有效編碼,這種編碼格式是建立一個(gè)全局完備的字典,但在計(jì)算上面臨著兩個(gè)問題,一個(gè)是這種表示方法的向量維度是字典的大小,而字典中的詞匯數(shù)目往往很大,從而在計(jì)算時(shí)避免不了維數(shù)災(zāi)難的問題,給計(jì)算機(jī)帶來極大的負(fù)擔(dān);另一個(gè)是這種表示只包含詞匯在字典中的索引和詞頻信息,未考慮詞的上下文信息,無法從向量上判斷兩個(gè)詞匯是否相似,不能為后續(xù)的模型訓(xùn)練提供更多有用的信息。

      分布式表示(distributed representation)是一種稠密、低維的實(shí)值向量表示,由Hinton[12]在1986年提出,能夠有效克服獨(dú)熱編碼的缺點(diǎn)。每個(gè)維度表示單詞的不同句法和語義特征。詞向量是一種詞匯的分布式表示形式,通過對文本語料庫進(jìn)行訓(xùn)練,將每個(gè)詞用N維的實(shí)值向量表示,向量可以看作空間上的一條線,通過計(jì)算向量之間形成的角度,就可以判斷兩個(gè)單詞之間的相似度。其中Word2Vec是一個(gè)可以快速訓(xùn)練詞向量的算法。

      3.2 Word2Vec算法

      Word2Vec算法是Tomas Mikolov帶領(lǐng)的研究團(tuán)隊(duì)發(fā)明的[13]。其基本思想是利用上下文信息,即使用與當(dāng)前詞相鄰的若干個(gè)詞,來生成當(dāng)前詞的特征向量。其中包含了跳字模型(Skip-gram)和連續(xù)詞袋模型(CBOW)兩種訓(xùn)練模型,CBOW是通過上下文來預(yù)測當(dāng)前詞,而Skip-gram則相反,它是通過當(dāng)前詞來預(yù)測上下文。同時(shí),Word2Vec提供了兩套優(yōu)化方法來提高詞向量的訓(xùn)練效率,分別是Hierachy Softmax和Negative Sampling[14]。通過將訓(xùn)練模型與優(yōu)化方法進(jìn)行組合可以得到4種訓(xùn)練詞向量的架構(gòu)。

      3.3 基于Word2Vec算法訓(xùn)練詞向量

      通過Python中g(shù)ensim庫里封裝的Word2Vec進(jìn)行詞向量的訓(xùn)練。主要的訓(xùn)練參數(shù)說明如表1所示。

      表1 Word2Vec訓(xùn)練參數(shù)說明

      使用訓(xùn)練集作為訓(xùn)練語料,主要的調(diào)試參數(shù)為詞向量的維度,固定參數(shù):sg=1,min_count=1,work-ers=4,hs=1。其中參數(shù)window若設(shè)置得過小,將無法捕捉句子中較長距離的依賴信息,若設(shè)置得過大,將捕捉到過多的無效依賴,從而降低了有效依賴的權(quán)重,因此將固定window參數(shù)為8。通過將詞向量的維度設(shè)置為1,2,4,8,16,32,64,128,256,512進(jìn)行訓(xùn)練,從而探究詞向量維度對計(jì)算詞匯間文本相似度的影響。對于中文文本,將使用“算法”,“復(fù)雜度”,“排序”對模型進(jìn)行測試。對于英文文本,將使用“algorithm”,“complexity”,“sort”對模型進(jìn)行測試。

      3.4 訓(xùn)練結(jié)果

      對不同詞向量維度模型進(jìn)行相似度測試后,通過對前十的相似度詞匯的相似度取平均數(shù)畫出相似度變化折線,如圖1所示。

      圖1 平均相似度變化折線

      由圖1可以得出:同一個(gè)單詞,詞向量維度越高,計(jì)算所得的單詞相似度越低。通過對測試結(jié)果中的實(shí)際相似單詞進(jìn)行分析,可以看出:當(dāng)詞向量維度為1時(shí),無論使用哪個(gè)詞匯進(jìn)行測試的結(jié)果都是一樣的;當(dāng)詞向量維度過低時(shí),測試結(jié)果含有實(shí)際意義的詞匯較少;隨著詞向量維度的增加,相似度測試結(jié)果具有實(shí)際意義的詞匯漸漸變多。因此,剔除維度為1,2,4,8,16的詞向量,保留維度為32,64,128,256,512的詞向量進(jìn)行下一步的翻譯模型訓(xùn)練。

      4 基于GNMT訓(xùn)練翻譯模型

      神經(jīng)機(jī)器翻譯(neural machine translation,NMT)存在致命的缺點(diǎn),即計(jì)算成本非常昂貴,并且大多數(shù)NMT系統(tǒng)對罕見詞的處理效果不好且在處理長句有翻漏的現(xiàn)象。谷歌發(fā)布的GNMT(Google’s neural machine translation)解決了上述問題,翻譯誤差平均降低了60%。在推理過程中采用低精度算法以及TPU進(jìn)行計(jì)算還可以解決翻譯速度問題。為了更好地處理罕見詞,將罕見詞拆分為常見子詞單元分別進(jìn)行處理。為了減少長句翻漏的現(xiàn)象,在波束搜索中使用長度規(guī)范化過程和覆蓋度懲罰機(jī)制[3]。使用Google在GitHub上開源的代碼訓(xùn)練帶有注意力機(jī)制的兩層LSTM seq2seq模型,首先探究詞向量對模型訓(xùn)練的影響,再探究隱藏單元數(shù)num_unit以及批尺寸batch_size對模型訓(xùn)練的影響。最終選取最佳的參數(shù)進(jìn)行訓(xùn)練。具體實(shí)驗(yàn)步驟為:

      (1)使用詞向量維度為32,64,128,256,512進(jìn)行訓(xùn)練,選取效果最佳的詞向量維度進(jìn)入下一個(gè)實(shí)驗(yàn);

      (2)使用num_unit為32,64,128,256,512進(jìn)行訓(xùn)練,選取效果最佳的num_unit進(jìn)入下一個(gè)實(shí)驗(yàn);

      (3)使用batch_size為4,32,64,128,192,256進(jìn)行訓(xùn)練,選取效果最佳的batch_size;

      (4)綜合實(shí)驗(yàn)結(jié)果,選取最優(yōu)參數(shù)進(jìn)行訓(xùn)練,直到模型不再優(yōu)化為止。

      5 實(shí)驗(yàn)結(jié)果

      模型訓(xùn)練的環(huán)境如表2所示。

      表2 模型訓(xùn)練環(huán)境

      5.1 翻譯指標(biāo)ppl和bleu

      ppl指的是困惑度(perplexity),是統(tǒng)計(jì)機(jī)器翻譯中的評價(jià)指標(biāo),用于評判機(jī)器翻譯的譯文是不是一個(gè)合理的語句。它是通過對概率平均數(shù)取倒數(shù)計(jì)算獲得,所以當(dāng)模型的翻譯結(jié)果越合理,困惑度越低。

      bleu(bilingual evaluation understudy)[15]是由IBM于2001年提出的一種文本評估算法,用來評估機(jī)器翻譯與專業(yè)人工翻譯之間的接近程度,核心思想就是當(dāng)機(jī)器翻譯越接近人工翻譯,bleu分?jǐn)?shù)越高,說明機(jī)器翻譯與人工翻譯之間越接近。

      5.2 詞向量維度對模型訓(xùn)練的影響

      將使用詞向量維度為32,64,128,256,512進(jìn)行模型訓(xùn)練。基于ppl及bleu進(jìn)行對照的折線變化如圖2所示。

      圖2 不同詞向量維度模型的ppl及bleu對照折線變化

      由圖2可見,隨著訓(xùn)練步數(shù)的增大,ppl的變化越來越小,慢慢趨近于沒有變化。隨著詞向量維度的增大,最終的ppl變小。隨著訓(xùn)練步數(shù)的增大,每個(gè)模型的bleu值都呈上升趨勢。在模型訓(xùn)練中期,詞向量維度低的模型的bleu值超越了詞向量維度高的模型的bleu值,但只是暫時(shí)的,隨著訓(xùn)練步數(shù)的增加,最終詞向量維度高的模型bleu值變大。

      綜上所述,在詞向量維度取值為32,64,128,256,512時(shí),詞向量維度為512時(shí)的模型訓(xùn)練效果最優(yōu)。并根據(jù)圖像顯示,繼續(xù)增大詞向量維度,模型有進(jìn)一步優(yōu)化的可能。

      5.3 超參數(shù)num_unit對模型訓(xùn)練的影響

      超參數(shù)num_unit指的是隱藏層單元數(shù),過小的num_unit會使神經(jīng)網(wǎng)絡(luò)的表達(dá)能力差,從而導(dǎo)致模型訓(xùn)練效果不佳;而過大的num_unit會帶來過擬合并且訓(xùn)練時(shí)間過長的缺點(diǎn)。由圖2可知,當(dāng)詞向量維度為512時(shí)模型效果最優(yōu),因此對固定詞向量維度取為512,其他參數(shù)為默認(rèn)參數(shù),取num_unit為32,64,128,256,512進(jìn)行模型訓(xùn)練嘗試找到最佳的取值?;趐pl及bleu進(jìn)行對照的折線變化如圖3所示。

      由圖3可見,在訓(xùn)練初期,num_unit高的模型與num_unit低的模型的ppl變化折線圖像會有一個(gè)交點(diǎn)。在交點(diǎn)以前,num_unit越小,ppl越小。在交點(diǎn)以后,num_unit越小,ppl越大。當(dāng)訓(xùn)練步數(shù)足夠大時(shí),隨著num_unit的增大,最終的ppl變小。num_unit越大,bleu變化折線圖整體在num_unit小的bleu變化折線圖上方。

      圖3 不同num_unit模型的ppl及blue對照折線變化

      綜上所述,在num_unit取值為32,64,128,256,512時(shí),num_unit為512時(shí)的模型訓(xùn)練效果最優(yōu)。并根據(jù)圖像顯示,繼續(xù)增大num_unit的取值,模型有進(jìn)一步優(yōu)化的可能。

      5.4 超參數(shù)batch_size對模型訓(xùn)練的影響

      超參數(shù)batch_size代表了一次輸入給神經(jīng)網(wǎng)絡(luò)的樣本數(shù),在合理范圍內(nèi),越大的batch_size使得參數(shù)修正的方向越準(zhǔn)確,震蕩越??;而過大的batch_size會使得一次epoch內(nèi)所需的迭代次數(shù)變少,從而對參數(shù)的修正變得更加緩慢;而過小的batch_size會使得隨機(jī)性較大,震蕩較大,難以達(dá)到收斂。將固定詞向量維度設(shè)為512,num_unit為512,其他為默認(rèn)參數(shù),由于機(jī)器性能的限制,無法選用更大的batch_size進(jìn)行實(shí)驗(yàn),因此分別選取batch_size為4,32,64,128,192,256進(jìn)行訓(xùn)練嘗試找到batch_size的合理范圍和最佳的選值。

      基于ppl及bleu進(jìn)行對照的折線變化如圖4所示。

      圖4 不同batch_size模型的ppl及bleu對照折線

      由圖4可見,當(dāng)batch_size過小時(shí),曲線震蕩較大,模型的訓(xùn)練效果較差。當(dāng)batch_size在范圍[32,256]內(nèi)時(shí),曲線震蕩較小,模型訓(xùn)練效果相近,因此范圍為[32,256]是batch_size的合適選值范圍。當(dāng)batch_size過小時(shí),模型訓(xùn)練效果非常差。隨著batch_size的增大,最終的bleu值變大。

      綜上所述,batch_size在取值為4,32,64,128,192,256時(shí),batch_size為256時(shí)的模型訓(xùn)練效果最優(yōu)。并根據(jù)圖像顯示,繼續(xù)增大詞向量維度,模型有進(jìn)一步優(yōu)化的可能。

      5.5 最終的模型訓(xùn)練

      根據(jù)以上的實(shí)驗(yàn)結(jié)果,最終選取詞向量維度為512,num_unit為512,batch_size為256進(jìn)行最終的模型訓(xùn)練。

      模型的bleu值詳細(xì)變化如圖5所示。

      圖5 模型的bleu詳細(xì)變化折線

      由圖5所示,當(dāng)模型訓(xùn)練步數(shù)到達(dá)120 000步左右時(shí),bleu漸漸達(dá)到峰值。

      6 翻譯結(jié)果

      將該文的英譯漢模型與百度翻譯進(jìn)行翻譯效果對比,如表3所示。

      由表3可以看到,使用訓(xùn)練模型翻譯的語句均能將專業(yè)詞匯翻譯正確,而百度翻譯會將專業(yè)詞匯翻譯錯(cuò)。如測試語句1中的“binary search”翻譯成了二進(jìn)制搜索,測試語句2中的“greedy”翻譯成了貪婪,測試語句3中的“memoization”更是直接沒有翻譯。由此可見使用文中訓(xùn)練的翻譯模型在計(jì)算機(jī)算法類領(lǐng)域比百度翻譯的效果更好。

      表3 翻譯對比結(jié)果

      7 結(jié)束語

      該文主要進(jìn)行了計(jì)算機(jī)算法類垂直領(lǐng)域的中英翻譯優(yōu)化。以關(guān)鍵詞進(jìn)行檢索并爬取中英雙語例句,通過收集與計(jì)算機(jī)算法類相關(guān)度高的文本優(yōu)化翻譯效果。對英文文本進(jìn)行小寫化處理,避免詞匯表出現(xiàn)重復(fù)單詞,降低訓(xùn)練成本以及優(yōu)化訓(xùn)練效果。通過jieba庫對中文文本分詞和nltk庫對英文文本分詞。通過制作計(jì)算機(jī)算法類分詞字典,增加計(jì)算機(jī)算法類文本的分詞正確率。通過Word2Vec算法訓(xùn)練不同維度的詞向量,進(jìn)行詞匯間文本相似度測試得出,詞向量維度越大,詞匯間相似度越低,但所得出的測試結(jié)果越具有實(shí)際意義。通過實(shí)驗(yàn)分析發(fā)現(xiàn),詞向量維度為512,num_unit為512,batch_size為256時(shí)模型效果最佳。

      猜你喜歡
      分詞例句向量
      向量的分解
      聚焦“向量與三角”創(chuàng)新題
      結(jié)巴分詞在詞云中的應(yīng)用
      英聲細(xì)語
      值得重視的分詞的特殊用法
      好詞好句
      好詞好句
      向量垂直在解析幾何中的應(yīng)用
      向量五種“變身” 玩轉(zhuǎn)圓錐曲線
      好詞好句
      铅山县| 成安县| 江都市| 高阳县| 绥江县| 灵寿县| 六安市| 拉萨市| 聂荣县| 威远县| 南溪县| 呼伦贝尔市| 万盛区| 通州区| 太湖县| 平南县| 阳东县| 理塘县| 靖边县| 景德镇市| 通化市| 县级市| 玉林市| 濉溪县| 铜鼓县| 仙游县| 嵊州市| 上栗县| 全椒县| 郎溪县| 苍南县| 望奎县| 乌拉特前旗| 固安县| 博客| 昂仁县| 潮州市| 灵璧县| 资阳市| 涟水县| 巴青县|