日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

如何訓練和測試AI語言翻譯系統(tǒng)

 碼農(nóng)9527 2021-04-25

 在本系列文章中,我們將向您展示如何使用深度學習來創(chuàng)建自動翻譯系統(tǒng)。本系列可以視為分步教程,可以幫助您了解和構(gòu)建神經(jīng)元機器翻譯。

    本系列假定您熟悉機器學習的概念:模型訓練,監(jiān)督學習,神經(jīng)網(wǎng)絡以及人工神經(jīng)元,層和反向傳播。

    在上一篇文章中,我們建立了一個基于深度學習的模型,用于自動將英語翻譯成俄語。在本文中,我們將訓練和測試該模型。

web

    使用LSTM電池進行培訓和測試

    我們將開始訓練和測試模型的核心:沒有自我注意和單詞嵌入的LSTM單元。標準Keras嵌入組件將提供從一組單詞到矢量的編碼。

    模型訓練包括以下幾個具體任務:

    標記輸入數(shù)據(jù)(預處理)

    確定培訓/自測數(shù)據(jù)比率

    模型訓練

    我們將從準備輸入(源)數(shù)據(jù)和輸出(目標)數(shù)據(jù)以具有數(shù)值,固定大小的輸入和輸出模型開始。在此之前,我們無法將句子或單詞提供給我們的Keras神經(jīng)網(wǎng)絡(NN)模型。

    我們將從創(chuàng)建Keras標記器開始,該標記器將從并行語料庫中找到的單詞構(gòu)建內(nèi)部詞匯表。讓我們將其包裝在一個函數(shù)中:

### tokenizer ###
def tokenization(lines):
  #print(lines)
  tokenizer = Tokenizer()

  tokenizer.fit_on_texts(lines)
  return tokenizer1234567復制代碼類型:[html]

    首先,我們必須使用該fit_on_texts功能。

    此函數(shù)接受句子列表作為其參數(shù),并建立從最常見的單詞到索引的映射。它不對句子進行編碼,而是準備一個標記器來這樣做。

    然后,我們必須提供一種對輸入句子進行編碼的方法。讓我們創(chuàng)建另一個函數(shù)來做到這一點:

### encode ###
def encode_sequences(tokenizer, length, lines):
   # integer encode sequences
   seq = tokenizer.texts_to_sequences(lines)
   # pad sequences with 0 values
   seq = pad_sequences(seq, maxlen=length, padding='post')
   return seq1234567復制代碼類型:[html]

    初始化令牌生成器后,我們將調(diào)用該texts_to_sequences函數(shù)進行編碼。以下代碼從數(shù)值向量中檢索單詞:

temp = []
   for j in range(len(i)):
  t = get_word(i[j], ru_tokenizer)
  if j > 0:
   if (t == get_word(i[j-1], ru_tokenizer)) or (t == None):
  temp.append('')
   else:
  temp.append(t)
  else:
   if(t == None):
    temp.append('')
   else:
    temp.append(t)
   return ' '.join(temp)1234567891011121314復制代碼類型:[html]

    讓我們使用Jupyter筆記本來訓練和測試我們的模型。如果您在沒有GPU的計算機上運行,則可能要在Colab上運行筆記本,因為它提供了免費的啟用GPU的筆記本實例。

    處理數(shù)據(jù)集的第一個條目將為我們提供訓練數(shù)據(jù)中的條目的準確結(jié)果,并為其他數(shù)據(jù)提供近似的交易。這使我們可以檢查翻譯器是否正常工作。

    下表顯示了英文輸入數(shù)據(jù),然后是理想的俄文翻譯,最后是模型翻譯:

web

    俄語翻譯非常好,這可能是因為我們已經(jīng)訓練了40萬多個輸入的模型。

    當然,它仍然不如專業(yè)的自動翻譯系統(tǒng)好,這證明了挑戰(zhàn)是多么艱巨。一些缺陷立即顯現(xiàn)出來。例如,句子“您對我很好”被翻譯為“тыбылдлямнеоченьмне”(“您對我非常我”)。

    我們還可以通過簡單地交換輸出和輸入數(shù)據(jù)來創(chuàng)建反向翻譯(俄語到英語)?;蛘?,要嘗試使用其他語言,我們可以從Tatoeba項目中加載其他任何訓練集。

    現(xiàn)在有了自我關(guān)注

    接下來,讓我們嘗試在啟用自我關(guān)注的情況下運行我們的模型。我們看到了喜憂參半的結(jié)果。在某些情況下,翻譯接近完美(黃色),但在某些情況下,翻譯不會提高甚至質(zhì)量低于沒有自我關(guān)注的翻譯(灰色)。

    憑直覺,這是有道理的。注意機制可以幫助模型關(guān)注句子中單詞的重要性-句子越長,確定哪個單詞重要和不重要就越容易。使用自我注意力的翻譯模型通常會提供更好的結(jié)果,但并非總是如此,特別是在輸入較短的情況下。

web

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多