1. jarcard距离
公式:有字符串A和字符串B,A和B所含字符的交集/A和B所含字符的并集,就是两句话的相识度。
2. 编辑距离
公式:有字符串A和B, 字符串A需要变成字符串B需要使用的编辑的步数N,编辑的方式可以是增加,删除, 字符串A和B中的最大的字符长度为L, 那么两句话的相识度为:1 - N/L
3. 将语句装换成句向量,通过计算向量间的距离来计算相识度。
步骤:1.分词处理
2.去停词处理
3.使用gensim,将词转成词向量
4.将词向量转成句向量
5.对向量X进行hash值处理,(X*W+B)/S,将其存在数组中,若存在相同位置的字符串通过链表存储,以上是待匹配的字符串的存储
6.将待匹配的字符串也经过上面的步骤得到hash值,索引数组中的位置,若该位置有多个字符串,可在再通过欧式距离求相似度。若不存在,可找相邻位置上的字符串。
将词向量转句向量的方法:
1. 分词累加厚求平均值的方式
2. 使用tf-idf做加权平均
3. 使用词移距离,计算一个字符串中一个词到另一个字符串中所有词的距离之和,可以使用if-idf作为权重
4. 使用seq2seq模型来生成句向量
使用中间上下文C,作为句向量