Example #1
0
from bert_serving.client import BertClient
import numpy as np

bc = BertClient(ip='202.201.242.38')


def cos_similar(sen_a_vec, sen_b_vec):
    '''
    计算两个句子的余弦相似度
    :param sen_a_vec:
    :param sen_b_vec:
    :return:
    '''
    vector_a = np.mat(sen_a_vec)
    vector_b = np.mat(sen_b_vec)
    num = float(vector_a * vector_b.T)
    denom = np.linalg.norm(vector_a) * np.linalg.norm(vector_b)
    cos = num / denom
    return cos


if __name__ == '__main__':
    # 从候选集condinates 中选出与sentence_a 最相近的句子
    sentence_a = ['妈妈']
    sentence_b = ['他妈']
    sentence_a_vec = bc.encode(sentence_a)[0]
    sentence_b_vec = bc.encode(sentence_b)[0]
    cos_similar = cos_similar(sentence_a_vec[2], sentence_b_vec[2])

    bc.close_bert()