用Bert获取句子向量,并计算句子相似度

一、句子向量

我用的是sentence-bert,它封装在sentence-transformer中:

from sentence_transformers import SentenceTransformer
model=SentenceTransformer('distiluse-base-multilingual-cased')
t="哈嗨害"
vec=model.encode(t)

二、相似度

向量相似度有两个度量标准:余弦相似度、余弦距离,其中余弦相似度就是cos,两个向量越像,余弦相似度越大;余弦距离=1-余弦相似度,两个向量越像,余弦距离越小。下面这段代码就是计算余弦距离的

from scipy.spatial.distance import cosine
vec1=[1,0,0]
vec2=[2,0,0]
vec3=[0,1,0]
s12=cosine(vec1,vec2)
s13=cosine(vec1,vec3)
print(s12,s13)

结果:
用Bert获取句子向量,并计算句子相似度_第1张图片

参考文章:
1.https://blog.csdn.net/u011412768/article/details/86714540

你可能感兴趣的:(bert,transformer,自然语言处理)