我正试图集中一些话(让我们来看汽车品牌)。为了做到这一点,我不能使用k-means或k-medoids,所以我尝试使用Sklearn的Affinity Propagation。我将它与距离lib的levenshtein
或damerau_levenshtein_distance
lib的pyxdameraulevenshtein
一起使用。
但是,这些指标并不完全是我需要的指标。例如,MERCEDES-BENZ和MERCEDES有5个距离,与VOLVO和FIAT相同。你们是否知道一些指标可以使MERCEDES-BENZ和MERCEDES之间的相似度得分高于VOLVO和FIAT。
谢谢, Djokx
答案 0 :(得分:1)
你可以使用组成这些单词的三元组的Jaccard相似性。也就是说,你分解它们的三个字符组件中的每个单词(对于volvo:vol,olv,lvo)并获得彼此相似的Jaccard相似性。 N-gram
Jaccard相似度定义为常见n-gram数与总n-gram数之间的比率:Jaccard index。