単語埋め込みの可視化と比較
単語埋め込みは高次元のため、そのままでは理解しづらいことがあります。この演習では、主成分分析(PCA)を使っていくつかの単語ベクトルを2次元に射影し、可視化します。これにより、埋め込み空間での語義的なまとまりや単語同士の類似性が見えてきます。続いて、2つのモデルの埋め込み表現を比較します。model_glove_wiki で利用できる glove-wiki-gigaword-50 と、model_glove_twitter で利用できる glove-twitter-25 です。
この演習はコースの一部です
Pythonで学ぶ自然言語処理(NLP)
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
words = ["lion", "tiger", "leopard", "banana", "strawberry", "truck", "car", "bus"]
# Extract word embeddings
word_vectors = [____[____] for word in words]
# Reduce dimensions with PCA
pca = PCA(n_components=2)
word_vectors_2d = pca.____(____)
plt.scatter(word_vectors_2d[:, 0], word_vectors_2d[:, 1])
for word, (x, y) in zip(words, word_vectors_2d):
plt.annotate(word, (x, y))
plt.title("GloVe Wikipedia Word Embeddings (2D PCA)")
plt.show()