我'm trying to cluster some words (let'采取汽车品牌) . 为了做到这一点,我可以尝试使用Sklearn的Affinity Propagation . 我正在使用距离lib的 levenshtein
或 pyxdameraulevenshtein
lib的 damerau_levenshtein_distance
.
但是,这些指标并不完全是我需要的指标 . 例如,MERCEDES-BENZ和MERCEDES有5个距离,与VOLVO和FIAT相同 . 你们是否知道一些指标可以使MERCEDES-BENZ和MERCEDES之间的相似度得分高于VOLVO和FIAT .
谢谢,Djokx
1 回答
您可以使用组成这些单词的三元组中的Jaccard相似性 . 也就是说,你分解它们的三个字符组件中的每个单词(对于volvo:vol,olv,lvo)并获得彼此相似的Jaccard相似性 . N-gram .
Jaccard相似度定义为 number of common n-grams 和 number of total n-grams :Jaccard index之间的比率 .