0
我不太了解亲和力传播作为一个概念,但在我的项目中,我发现将我正在使用的文本聚类很有用。目前我已经广泛地遵循我可以在网上找到的任何代码片段。Levenshtein距离亲和力传播预测查询
所以:
lev_similarity = -1*np.array([[Levenshtein.distance(w1,w2) for w1 in new_data] for w2 in new_data])
ap = sklearn.cluster.AffinityPropagation(affinity="euclidean", damping=0.5)
ap.fit(lev_similarity)
,你可以看到,我使用Levenshtein算法定义两个点之间的距离。
现在我的问题:
http://scikit-learn.org/stable/modules/generated/sklearn.cluster.AffinityPropagation.html
- 在这一点上,我想用这个模型来给我一个新的起点的最近的聚类,但我不知道该如何向量化我的生串。为了使用 ap.predict方法,我怎么把字符串转换成适当的形式在这种情况下?
- 或者,它会更有意义输入我所有的数据到拟合模型,然后与完成的模型查询?在这种情况下,我将如何精确查询字符串中给定关键字的最近聚类?
编辑:
显然我与预先计算的距离测量工作,所以有亲和力= “预计算”似乎是正确的选择。在这种情况下,
lev_similarity = -1*np.array([[Levenshtein.distance(w1,w2) for w1 in new_data] for w2 in new_data])
ap = sklearn.cluster.AffinityPropagation(affinity="precomputed", damping=0.5)
ap.fit(lev_similarity)
其中new_data还封装了测试数据。
那么问题就变成了:我怎么用这个模型查询?