Edit Distance
计算两个字符串之间,由一个转成另一个所需要的最少编辑次数,次数越多,距离越大,也就越不相关。比如,“xiaoming”和“xiamin”,两者的转换需要两步:
去除‘o’
去除‘g’
所以,次数/距离=2。
!pip install distance
import distance
def edit_distance(s1, s2):
return distance.levenshtein(s1, s2)
s1 = 'xiaoming'
s2 = 'xiamin'
print('距离:'+str(edit_distance(s1, s2)))
杰卡德系数
用于比较有限样本集之间的相似性与差异性。Jaccard 系数值越大,样本相似度越高,计算方式是:两个样本的交集除以并集。
from sklearn.feature_extraction.text import CountVectorizer
import numpy as np
def jaccard_similarity(s1, s2):
def add_space(s):
return ' '.join(list(s))
# 将字中间加入空格
s1, s2 = add_space(s1), add_space(s2)
# 转化为TF矩阵
cv = CountVectorizer(tokenizer=lambda s: s.split())