1.基于词向量
余弦相似度:分词、列出两个句子的并集、计算词频向量、计算余弦值,适合基于语义的相似度分析
曼哈顿距离
欧几里得距离
明式距离(是前两种距离测度的推广),在极限情况下的距离是切比雪夫距离
2.基于字符的
编辑距离
simhash,对于短小的文本,计算相似度并不十分准确,更适用于较长的文本。
共有字符数(有点类似 onehot 编码 ,直接统计两个文本的共有字符数,最 naive 的相似度算法了)
3.基于概率统计的
杰卡德相似系数
4.基于词嵌入模型的
word2vec/doc2vec
各种算法的代码:https://github.com/luozhouyang/python-string-similarity.git