Bagian 1: Prapemrosesan Data

Penerjemahan Mesin dengan Keras

Thushan Ganegedara

Data Scientist and Author

Pendahuluan data

  • Data

    • en_text : Daftar (list) kalimat Python; tiap kalimat berupa string kata-kata dipisah spasi.
    • fr_text: Daftar (list) kalimat Python; tiap kalimat berupa string kata-kata dipisah spasi.
  • Mencetak beberapa data dalam dataset

for en_sent, fr_sent in zip(en_text[:3], fr_text[:3]):
  print("English: ", en_sent)
  print("\tFrench: ", fr_sent)
English:  new jersey is sometimes quiet during autumn , and it is snowy in april .
    French:  new jersey est parfois calme pendant l' automne , et il est neigeux en avril .
English:  the united states is usually chilly during july , and it is usually freezing in november .
    French:  les états-unis est généralement froid en juillet , et il gèle habituellement en novembre .
...
Penerjemahan Mesin dengan Keras

Tokenisasi kata

  • Tokenisasi

    • Proses memecah kalimat/frasa menjadi kata/karakter terpisah
    • Mis. "I watched a movie last night, it was okay." menjadi,
    • [I, watched, a, movie, last, night, it, was, okay]
  • Tokenisasi dengan Keras

    • Mempelajari pemetaan kata ke ID kata dari suatu korpus.
    • Dapat mengonversi string menjadi urutan ID
from tensorflow.keras.preprocessing.text import Tokenizer
en_tok = Tokenizer()
Penerjemahan Mesin dengan Keras

Melatih Tokenizer

  • Melatih Tokenizer pada data
    • Tokenizer perlu dilatih pada data (mis. kalimat) untuk memetakan kata ke ID.
en_tok = Tokenizer()
en_tok.fit_on_texts(en_text)
  • Mendapatkan pemetaan kata ke ID
    • Gunakan atribut word_index milik Tokenizer.
id = en_tok.word_index["january"] # => returns 51
  • Mendapatkan pemetaan ID ke kata
w = en_tok.index_word[51] # => returns 'january'
Penerjemahan Mesin dengan Keras

Mengubah kalimat menjadi urutan

seq = en_tok.texts_to_sequences(['she likes grapefruit , peaches , and lemons .'])
[[26, 70, 27, 73, 7, 74]]
Penerjemahan Mesin dengan Keras

Membatasi ukuran kosakata

  • Anda dapat membatasi ukuran kosakata pada Tokenizer Keras.
tok = Tokenizer(num_words=50)
  • Kata di luar kosakata (OOV)

    • Kata langka dalam korpus pelatihan (kumpulan teks).
    • Kata yang tidak ada di data latih.
  • Mis.

    • tok.fit_on_texts(["I drank milk"])
    • tok.texts_to_sequences(["I drank water"])
    • Kata water adalah OOV dan akan diabaikan.
Penerjemahan Mesin dengan Keras

Menangani kata di luar kosakata (OOV)

  • Mendefinisikan token OOV
tok = Tokenizer(num_words=50, oov_token='UNK')
  • Mis.
    • tok.fit_on_texts(["I drank milk"])
    • tok.texts_to_sequences(["I drank water"])
    • Kata water adalah kata OOV dan akan diganti dengan UNK.
      • yaitu, Keras akan melihat "I drank UNK"
Penerjemahan Mesin dengan Keras

Ayo berlatih!

Penerjemahan Mesin dengan Keras

Preparing Video For Download...