如何解决将字符串聚类为相似组
我正在尝试对字符串进行聚类,以便具有相似字符串的聚类,例如,"clavier"
和 "clvier"
应该出现在同一个聚类中。
我正在尝试this code:
final_list2 = np.asarray(final_list2)
lev_similarity =-1* np.array([[distance.levenshtein(w1,w2) for w1 in final_list2] for w2 in final_list2])
affprop = AffinityPropagation(affinity="precomputed",damping=0.5,convergence_iter=15,max_iter=200)
affprop=affprop.fit(lev_similarity)
for cluster_id in np.unique(affprop.labels_):
exemplar = final_list2[affprop.cluster_centers_indices_[cluster_id]]
cluster = np.unique(final_list2[np.nonzero(affprop.labels_==cluster_id)])
cluster_str = ",".join(cluster)
print (exemplar,cluster_str)
但我没有得到任何聚类中心。
print(affprop.cluster_centers_indices_)
显示[]
。
谁能告诉我我做错了什么?或者,有什么建议可以给我带来更好的结果?
解决方法
final_list2 = "clavier clvier clavier clvier apple appl apple appl".split(" ")
final_list2 = np.asarray(final_list2) #So that indexing with a list will work
lev_similarity = -1*np.array([[distance.levenshtein(w1,w2) for w1 in final_list2] for w2 in final_list2])
affprop = AffinityPropagation(affinity="precomputed",damping=0.5)
affprop=affprop.fit(lev_similarity)
输出
[1 7]
对我来说。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。