Vector Extrema 另一种在句子级向量上计算相似度的方法是向量极值法。通过筛选词向量的每一维来选择整句话中极值最大的一维作为这个句子的向量表示:
公式中d代表词向量中的维度; 是w的词向量中第d维。当然想要更准确的表达两个回复的相似度,仅计算向量极值是不够的,还需要计算回复之间的余弦距离才能更好的表示它们之间的相似程度。
同样,首先要去glove官网https://nlp.stanford.edu/projects/glove/下载训练好的英文词向量压缩包,我选择的是glove.840B.300d.zip,解压得到文件glove.840B.300d.txt,你可以下载比较小的包,解压并保存到你创建的项目下,中文的话要自己去腾讯的AILab下载中文词向量,以下是实现计算两个句子基于句子级别的向量极值法代码:
import numpy as np
import re
def conver_float(x):
'''将词向量数据类型转换成可以计算的浮点类型'''
float_str = x
return [float(f) for f in flo