欧式距离 空间绝对距离,数值差异影响较大,反应数值差异
余弦相似度 只考虑空间向量夹角,忽略向量数值长度,反应变动趋势
修正余弦相似度 在余弦相似度基础上 增加数值的影响
皮尔逊相关系数 和修正余弦相似度 不同在于减去的均值不同
莱温斯坦距离(编辑距离)
Jaro–Winkler相似度 jaro-winkler相似度对于前缀匹配更友好,并且越往前面匹配成功带来的权重更大。适用于短语,不适合句子
杰卡德相似度 两个集合之间的相似性,它被定义为两个集合交集的元素个数除以并集的元素个数 。只考虑了词的比例忽略了词频以及结构(顺序性)
汉明距离 用于相同长度,结合simhash 做长文本去重或者图像像素的匹配(同图搜索)
已有的轮子
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.10.0</version>
</dependency>
接口 EditDistance 的实现类
HammingDistance 汉明距离
CosineDistance 余弦距离(只对全是英文字母的字符串生效,分词器导致的)
LevenshteinDistance 莱温斯坦距离(编辑距离)
JaccardDistance 杰卡德距离
JaroWinklerDistance jaro-winkler距离