Trực quan hóa và so sánh word embedding
Word embedding có số chiều lớn, nên khó diễn giải trực tiếp. Trong bài tập này, bạn sẽ chiếu một vài vector từ xuống 2D bằng Principal Component Analysis (PCA) và trực quan hóa chúng. Cách này giúp lộ ra các nhóm nghĩa hoặc mức độ tương đồng giữa các từ trong không gian embedding. Sau đó, bạn sẽ so sánh biểu diễn embedding của hai mô hình: glove-wiki-gigaword-50 có sẵn qua biến model_glove_wiki, và glove-twitter-25 có sẵn qua model_glove_twitter.
Bài tập này là một phần của khóa học
Natural Language Processing (NLP) bằng Python
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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()