Greedy Matching 贪婪匹配方法是基于词级别的一种矩阵匹配方法,在给出的两个句子r和r^,每一个词w∈r都会经过词向量转换后变为词向量ew,同时与r^中的每一个词序列w^∈r^的词向量ew^最大程度进行余弦相似度匹配,最后得出的结果是所有词匹配之后的均值:
首先要去glove官网https://nlp.stanford.edu/projects/glove/下载训练好的英文词向量压缩包,我选择的是glove.840B.300d.zip,解压得到文件glove.840B.300d.txt,你可以下载比较小的包,解压并保存到你创建的项目下,中文的话要自己去腾讯的AILab下载中文词向量,以下是实现计算两个句子基于词级别的贪婪匹配代码:
import numpy as np
import re
def cosine_similarity(x, y, norm=False):
""" 计算两个向量x和y的余弦相似度 """
assert len(x) == len(y), "len(x) != len(y)"
zero_list = [0] * len(x)
if x == zero_list or y == zero_list:
return float(1) if x =