NLP - Word Embeddings
The following code tries to find the word most similar to
What is the main flaw?
king - man + woman but has a flaw:import numpy as np
words = {'king': np.array([0.5, 0.8, 0.3]), 'queen': np.array([0.45, 0.75, 0.35]), 'man': np.array([0.6, 0.7, 0.2]), 'woman': np.array([0.55, 0.65, 0.25])}
result = words['king'] - words['man'] + words['woman']
max_word = None
max_sim = -1
for word, vec in words.items():
sim = np.dot(result, vec) / (np.linalg.norm(result) * np.linalg.norm(vec))
if sim > max_sim:
max_word = word
print(max_word)What is the main flaw?
