在进行文本聚类时,我了解高维向量确实会影响性能,并且正常趋势是在聚类之前应用降维技术。之后,我选择了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]]