Word_Embedding.py 717 B

1234567891011121314151617181920212223
  1. import numpy as np
  2. # 假设我们已经学习到了简化的二维词向量
  3. embeddings = {
  4. "king": np.array([0.9, 0.8]),
  5. "queen": np.array([0.9, 0.2]),
  6. "man": np.array([0.7, 0.9]),
  7. "woman": np.array([0.7, 0.3])
  8. }
  9. def cosine_similarity(vec1, vec2):
  10. dot_product = np.dot(vec1, vec2)
  11. norm_product = np.linalg.norm(vec1) * np.linalg.norm(vec2)
  12. return dot_product / norm_product
  13. # king - man + woman
  14. result_vec = embeddings["king"] - embeddings["man"] + embeddings["woman"]
  15. # 计算结果向量与 "queen" 的相似度
  16. sim = cosine_similarity(result_vec, embeddings["queen"])
  17. print(f"king - man + woman 的结果向量: {result_vec}")
  18. print(f"该结果与 'queen' 的相似度: {sim:.4f}")