Tokenizerで語彙を制御する
Tokenizer の動作をもう少し掘り下げてみましょう。この演習では、学習済みの Tokenizer を使って任意の文をシーケンスに変換する方法を学びます。さらに、Tokenizer の語彙サイズを制御する方法も確認します。加えて、Tokenizer の語彙サイズを制限したときに、語彙外(OOV)の単語がどう扱われるかを調べます。
この演習では、以前に実装した en_tok という Tokenizer が用意されています。Tokenizer はすでにインポート済みです。
この演習はコースの一部です
Kerasで学ぶMachine Translation
演習の手順
- 以前の
en_tokTokenizer を使って、次の文をシーケンスに変換してください:she likes grapefruit , peaches , and lemons . - 語彙サイズを 50、語彙外(OOV)トークンを
UNKとする新しいTokenizer、en_tok_newを作成してください。 - 新しい Tokenizer を
en_textデータで学習(fit)させてください。 en_tok_newを使って、文she likes grapefruit , peaches , and lemons .をシーケンスに変換してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Convert the sentence to a word ID sequence
seq = ____.____(['she likes grapefruit , peaches , and lemons .'])
print('Word ID sequence: ', seq)
# Define a tokenizer with vocabulary size 50 and oov_token 'UNK'
en_tok_new = ____(num_words=____, ____=____)
# Fit the tokenizer on en_text
en_tok_new.____(____)
# Convert the sentence to a word ID sequence
seq_new = en_tok_new.____(['she likes grapefruit , peaches , and lemons .'])
print('Word ID sequence (with UNK): ', seq_new)
print('The ID 1 represents the word: ', en_tok_new.index_word[1])