K-means文本数据聚类:获取文本属于

时间:2015-07-03 15:04:14

标签: python scikit-learn cluster-analysis nltk k-means

我正在使用Python中的K-Means(scikit-learn)聚类文本数据。 如何获取该行所属的群集?

示例: data = [“红色,黄色和蓝色是颜色”,“冰淇淋是我最喜欢的食物”,“你现在也可以获得草莓味的冰淇淋”,​​“天空是蓝色的”]

在使用n_clusters = 2执行K-Means之后,我预计会形成两个簇。

“红色,黄色和蓝色是颜色”,“天空是蓝色”躺在一个簇中,“冰淇淋是我最喜欢的食物”,“你现在可以获得草莓味的冰淇淋”在另一个中。

我如何得到这个,即哪一行在哪个群集中?

K-means代码:

vectorizer = TfidfVectorizer(stop_words='english')
X = vectorizer.fit_transform(data)
model = KMeans(n_clusters=true_k, init='k-means++', max_iter=500,  n_init=20)
model.fit(X)

1 个答案:

答案 0 :(得分:2)

尝试使用{"installed": { "client_id": "yourid", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_email": "", "client_x509_cert_url": "", "client_secret": "yoursecret", "redirect_uris": ["urn:ietf:wg:oauth:2.0:oob", "http://tooltank.de"] }} 功能。

示例 -

predict

来自documentation -

  

预测(X)

     

预测X中每个样本所属的最近集群。

     

在矢量量化文献中,cluster_centers_被称为代码簿,而predict返回的每个值都是代码簿中最接近的代码的索引。

     

参数:
  X:{array-like,sparse matrix},shape = [n_samples,n_features]   要预测的新数据。

     

返回:
  标签:数组,形状[n_samples,]   每个样本所属的集群索引。

这似乎返回了每个样本所属的集群索引数组。

也许您也可以使用 - fit_predict()功能。

您可以使用属性 - model.predict(X) (在您的情况下为cluster_centers_)和每个样本的标签model.cluster_centers_来获取群集中心。