使用潜在语义分析的Kmean文本聚类

时间:2018-06-23 09:43:33

标签: k-means svd dimensionality-reduction term-vectors

在进行文本聚类时,我了解高维向量确实会影响性能,并且正常趋势是在聚类之前应用降维技术。之后,我选择了LSA,并使用以下代码实现了它。在下面的代码中,我使用Components = 2来获取前两个组件,然后将X_train_lsa馈给k-mean算法,最后检查指定集群(此集群2)中的文档。但是,我对此感到困惑,仍然可以使用km.labels_在集群中查找文档。原因是本例中的k均值聚类是在缩小维上执行的,因此km.labels_返回索引将(在我看来)是指缩小维(在这种情况下,前两个分量是从svd获得的),因此我想知道如何实际获取文档索引,即从kmean获得的群集中的文档。换句话说,执行以下行将返回集群中的文档,或者我需要执行一些反函数:documentincluster = X_train_lsa [np.where(km.labels_ == Clusternumber)[0]]

svd = TruncatedSVD(Components)
lsa = make_pipeline(svd, Normalizer(copy=False))

# Run SVD on the training data, then project the training data.
X_train_lsa = lsa.fit_transform(X_train_tfidf)
# use X_train_lsa in kmean clustering
km = KMeans(init='k-means++', max_iter=10000, n_init=1,
            verbose=0,random_state=3425,n_clusters=num_clusters)#giving 

km.fit(X_train_lsa) 
clusters = km.labels_.tolist()
#extracting document in the cluster
documentincluster=X_train_lsa[np.where(km.labels_ == Clusternumber) [0]]

0 个答案:

没有答案