计算余弦相似度

from sentence_transformers import SentenceTransformer
import torch # 导入torch库

model = SentenceTransformer(r'C:\Users\Administrator\.cache\huggingface\hub\models--sentence-transformers--all-MiniLM-L6-v2\snapshots\c9745ed1d9f207416be6d2e6f8de32d1f16199bf')
sentence_a = "如何申请退款?"
sentence_b = "退款流程是什么?"

# 编码成向量(维度通常为768或384)
emb_a = model.encode(sentence_a) # 形状: (384,)
emb_b = model.encode(sentence_b) # 形状: (384,)

# 转换为PyTorch张量并增加批次维度
emb_a_tensor = torch.from_numpy(emb_a).unsqueeze(0) # 形状: (1, 384)
emb_b_tensor = torch.from_numpy(emb_b).unsqueeze(0) # 形状: (1, 384)

# 计算余弦相似度
similarity = torch.cosine_similarity(emb_a_tensor, emb_b_tensor)
print(f"两句话的相似度: {similarity.item():.4f}") # 使用.item()获取标量值
posted @ 2025-07-10 16:41  m516606428  阅读(17)  评论(0)    收藏  举报