python - 将字符串聚类到相似组中
问题描述
例如,我正在尝试对字符串进行聚类,以便拥有相似字符串的集群,"clavier"
并且"clvier"
应该出现在同一个集群中。
我正在尝试这样的代码:
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]
为了我。
推荐阅读
- javascript - 无法在 setInterval 函数中使用 css add/remove 重新启动动画
- python - 近似相等对象的交集
- reactjs - 如何在 react-bootstrap 组件中使用“as”道具(elementType)?
- cakephp - 如何在具有ID的表和使用相同ID但两次的另一个表之间进行关联
- python - 使用 Matplotlib 进行实时绘图。X 轴被覆盖
- flutter - “int”类型不是“函数结果”的“double”类型的子类型
- laravel - 用户进度分析 laravel
- php - PHP如何将数字数组转换为...数字字符串?
- autodesk-forge - 如何在查看器中使用 Autodesk.Viewing.MarkupsCore 扩展以便我可以在其上绘图?
- drake - 从刚体工厂切换到多体工厂