【发布时间】:2017-04-13 18:25:26
【问题描述】:
我对相似性传播这个概念了解不多,但在我的项目中,我发现对我正在使用的文本进行聚类很有用。目前,我已经广泛遵循我在网上可以找到的任何代码 sn-ps。
所以:
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 方法,在这种情况下如何将字符串转换为适当的形式?
- 或者将我的所有数据输入到拟合模型中,然后使用完成的模型进行查询是否更有意义?在这种情况下,我将如何准确查询字符串中给定关键字的最近簇?
编辑:
显然我正在使用预先计算的距离测量,因此使用 affinity="precomputed" 似乎是正确的选择。在这种情况下,
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 也封装了测试数据。
那么问题就变成了:如何用这个模型进行查询?
【问题讨论】:
标签: python scikit-learn