Word2Vec
この演習では、Keras を使って Word2Vec モデルを作成します。
モデルの事前学習に使うコーパスは、TV 番組 The Big Bang Theory の全エピソードの台本を文ごとに分割したものです。変数 bigbang に用意されています。
コーパス内のテキストはすべて小文字化され、単語はトークン化されています。結果は変数 tokenized_corpus に保存されています。
Word2Vec モデルは、コンテキストのウィンドウサイズを 10 語(中心語の前後に 5 語ずつ)とし、出現回数が 3 未満の単語を除去し、skip-gram 手法を用いて 50 次元で事前学習されています。モデルはファイル bigbang_word2vec.model に保存されています。
Word2Vec クラスは、gensim.models.word2vec から環境に読み込まれています。
この演習はコースの一部です
Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)
演習の手順
- 事前学習済みの Word2Vec モデルを読み込みます。
- 単語
"bazinga", "penny", "universe", "spock", "brain"をこの順序のままlistにして、変数words_of_interestに保存します。 - 各注目単語について反復処理を行い、属性
wvにある.most_similar()メソッドを使って、上位5件の類似単語を辞書としてtop5_similar_wordsに追加します。 - 各注目単語ごとに見つかった上位5件の単語を出力してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Word2Vec model
w2v_model = Word2Vec.load(____)
# Selected words to check similarities
words_of_interest = ____
# Compute top 5 similar words for each of the words of interest
top5_similar_words = []
for word in words_of_interest:
top5_similar_words.append(
{word: [item[0] for item in w2v_model.wv.____([word], topn=5)]}
)
# Print the similar words
____