2015-10-06 31 views
1

我想使用谱聚类来对文本文档中存在的术语进行聚类。在进行聚类之后,我想获得每个群集中存在的术语。Scikit学习谱聚类获得每个簇的项目

我想是如下的代码,

true_k = 4 
    vectorizer = TfidfVectorizer(stop_words='english',decode_error='ignore') 
    X = vectorizer.fit_transform(documents) 
    terms = vectorizer.get_feature_names() 
    model = SpectralClustering(n_clusters=true_k ,eigen_solver='arpack',affinity='nearest_neighbors') 
    model.fit(X) 

从这里我坚持让每个集群的条款,使用“labels_”没有帮助,因为它只有返回类群标签

编辑:解决,下面的代码的伎俩,

print("Terms per cluster:") 
    for i in range(true_k): 
     print "Cluster %d:" % i, 
     T=X[model.labels_==i].indices 
     for ind in T: 
      print terms[ind] 
     print 

回答

1

如果我理解正确的话,你必须先拟合模型,即model.fit(X)。根据拟合模型访问属于集群kX的元素,请执行X[model.labels_==k]