example_text_embedding_simple.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #!/usr/bin/env python3
  2. """
  3. text_embedding 简单使用示例(基于 similarities 库)
  4. """
  5. from lib.text_embedding import compare_phrases, similarity, encode, SentenceModel
  6. def main():
  7. print("=" * 60)
  8. print("text_embedding 使用示例(基于 similarities 向量模型)")
  9. print("=" * 60)
  10. print()
  11. # ========== 示例 1: compare_phrases(推荐,兼容 semantic_similarity)==========
  12. print("示例 1: compare_phrases() - 兼容 semantic_similarity.py")
  13. print("-" * 60)
  14. result = compare_phrases("如何更换花呗绑定银行卡", "花呗更改绑定银行卡")
  15. print(f"短语A: 如何更换花呗绑定银行卡")
  16. print(f"短语B: 花呗更改绑定银行卡")
  17. print(f"\n返回结果:")
  18. print(f" 相似度: {result['相似度']:.3f}")
  19. print(f" 说明: {result['说明']}")
  20. print()
  21. # ========== 示例 2: 直接获取相似度分数 ==========
  22. print("示例 2: similarity() - 直接获取相似度分数")
  23. print("-" * 60)
  24. score = similarity("深度学习", "神经网络")
  25. print(f"深度学习 vs 神经网络")
  26. print(f"相似度: {score:.3f}")
  27. print()
  28. # ========== 示例 3: 文本向量化 ==========
  29. print("示例 3: encode() - 文本向量化")
  30. print("-" * 60)
  31. embedding = encode("人工智能很有趣")
  32. print(f"文本: 人工智能很有趣")
  33. print(f"向量维度: {embedding.shape}")
  34. print(f"向量前5个值: {embedding[:5]}")
  35. print()
  36. # ========== 示例 4: 批量处理 ==========
  37. print("示例 4: 批量文本处理")
  38. print("-" * 60)
  39. texts = ["深度学习", "机器学习", "人工智能"]
  40. embeddings = encode(texts)
  41. print(f"批量转换 {len(texts)} 个文本:")
  42. for i, (text, emb) in enumerate(zip(texts, embeddings), 1):
  43. print(f" {i}. {text} -> {emb.shape}")
  44. print()
  45. # ========== 示例 5: 使用 SentenceModel 类 ==========
  46. print("示例 5: SentenceModel 类")
  47. print("-" * 60)
  48. model = SentenceModel()
  49. # 相似度
  50. score = model.similarity("Python编程", "程序设计")
  51. print(f"相似度: {score:.3f}")
  52. # 完整结果
  53. result = model.compare_phrases("机器学习", "人工智能")
  54. print(f"完整结果: {result}")
  55. print()
  56. print("=" * 60)
  57. print("示例完成!")
  58. print("=" * 60)
  59. print()
  60. print("核心要点:")
  61. print(" ✅ 使用真正的向量模型(不是 LLM)")
  62. print(" ✅ 返回格式与 semantic_similarity.py 兼容")
  63. print(" ✅ 默认算分: 基于向量的余弦相似度")
  64. print(" ✅ 速度快,成本低")
  65. print()
  66. if __name__ == "__main__":
  67. main()