MCPcopy Index your code
hub / github.com/lazyprogrammer/machine_learning_examples / find_analogies

Function find_analogies

rnn_class/wiki.py:155–181  ·  view source on GitHub ↗
(w1, w2, w3, we_file='word_embeddings.npy', w2i_file='wikipedia_word2idx.json')

Source from the content-addressed store, hash-verified

153 json.dump(word2idx, f)
154
155def find_analogies(w1, w2, w3, we_file='word_embeddings.npy', w2i_file='wikipedia_word2idx.json'):
156 We = np.load(we_file)
157 with open(w2i_file) as f:
158 word2idx = json.load(f)
159
160 king = We[word2idx[w1]]
161 man = We[word2idx[w2]]
162 woman = We[word2idx[w3]]
163 v0 = king - man + woman
164
165 def dist1(a, b):
166 return np.linalg.norm(a - b)
167 def dist2(a, b):
168 return 1 - a.dot(b) / (np.linalg.norm(a) * np.linalg.norm(b))
169
170 for dist, name in [(dist1, 'Euclidean'), (dist2, 'cosine')]:
171 min_dist = float('inf')
172 best_word = ''
173 for word, idx in iteritems(word2idx):
174 if word not in (w1, w2, w3):
175 v1 = We[idx]
176 d = dist(v0, v1)
177 if d < min_dist:
178 min_dist = d
179 best_word = word
180 print("closest match by", name, "distance:", best_word)
181 print(w1, "-", w2, "=", best_word, "-", w3)
182
183if __name__ == '__main__':
184 we = 'lstm_word_embeddings2.npy'

Callers 1

wiki.pyFile · 0.70

Calls 2

distFunction · 0.85
loadMethod · 0.45

Tested by

no test coverage detected