单词聚类

时间:2017-06-27 08:19:47

标签: python machine-learning scikit-learn cluster-computing

我正试图集中一些话(让我们来看汽车品牌)。为了做到这一点,我不能使用k-means或k-medoids,所以我尝试使用Sklearn的Affinity Propagation。我将它与距离lib的levenshteindamerau_levenshtein_distance lib的pyxdameraulevenshtein一起使用。

此处示例:https://stats.stackexchange.com/questions/123060/clustering-a-long-list-of-strings-words-into-similarity-groups

但是,这些指标并不完全是我需要的指标。例如,MERCEDES-BENZ和MERCEDES有5个距离,与VOLVO和FIAT相同。你们是否知道一些指标可以使MERCEDES-BENZ和MERCEDES之间的相似度得分高于VOLVO和FIAT。

谢谢, Djokx

1 个答案:

答案 0 :(得分:1)

你可以使用组成这些单词的三元组的Jaccard相似性。也就是说,你分解它们的三个字符组件中的每个单词(对于volvo:vol,olv,lvo)并获得彼此相似的Jaccard相似性。 N-gram

Jaccard相似度定义为常见n-gram数总n-gram数之间的比率:Jaccard index