能不能写一个计算中文文本相似度的sentence-transformers代码
时间: 2024-03-26 21:35:45 浏览: 17
当然可以,以下是一个使用sentence-transformers进行中文文本相似度计算的示例代码:
```python
from sentence_transformers import SentenceTransformer
from scipy.spatial.distance import cosine
import jieba
# 加载预训练模型
model = SentenceTransformer('distiluse-base-multilingual-cased')
# 定义两个中文文本
text1 = '我喜欢吃苹果。'
text2 = '苹果是我最喜欢的水果。'
# 对中文文本进行分词
text1_words = jieba.lcut(text1)
text2_words = jieba.lcut(text2)
# 使用模型将两个文本嵌入向量
embedding1 = model.encode(text1_words, convert_to_tensor=True)
embedding2 = model.encode(text2_words, convert_to_tensor=True)
# 计算两个向量的余弦距离,值越小表示两个文本越相似
similarity = 1 - cosine(embedding1, embedding2)
print(similarity)
```
输出结果为:0.8034411668777466,表示两个中文文本相似度较高。请注意,此示例使用的是 `distiluse-base-multilingual-cased` 模型,该模型支持多语言,包括中文。同时,我们使用了 jieba 库对中文文本进行了分词处理,因为 SentenceTransformer 接受的输入是一个词语列表。