【发布时间】:2017-01-05 16:41:30
【问题描述】:
我发现this post 中的代码非常有用。 (我会对该帖子添加评论,但我需要 50 点声望。)
我在上面的帖子中使用了相同的代码,但添加了一个我一直用来调试我自己的集群代码的测试文档。由于某种原因,一个文档中的一个词出现在两个集群中。
代码是:
更新:我在下面的文档中添加了“独特的句子”。
documents = ["I ran yesterday.",
"The sun was hot.",
"I ran yesterday in the hot and humid sun.",
"Yesterday the sun was hot.",
"Yesterday I ran in the hot sun.",
"Unique sentence." ]
vectorizer = TfidfVectorizer(stop_words='english')
X = vectorizer.fit_transform(documents)
#cluster documents
true_k = 2
model = KMeans(n_clusters=true_k, init='k-means++', max_iter=100, n_init=1)
model.fit(X)
#print top terms per cluster clusters
print("Top terms per cluster:")
order_centroids = model.cluster_centers_.argsort()[:, ::-1]
terms = vectorizer.get_feature_names()
for i in range(true_k):
print ("Cluster %d:" % i,)
for ind in order_centroids[i, :10]:
print(' %s' % terms[ind])
print
我收到的输出是:
更新:我更新了下面的输出以反映上面的“独特句子”。
集群 0: 太阳 热的 昨天 跑了 湿 独特 句子 集群 1: 独特 句子 昨天 太阳 跑了 湿 热的
您会注意到,“潮湿”在两个集群中都作为最重要的术语出现,即使它仅出现在上述文档的 1 行中。我希望一个独特的词,例如在这种情况下的“潮湿”,将成为其中一个集群中的最高词。
谢谢!
【问题讨论】:
标签: python scikit-learn cluster-analysis k-means