Python 3.x “如何集群”;“文本文件”;加上;球形k-均值;使用Python?
我已经完成了传统的k-means文本聚类的实现。然而,现在,我需要将我的程序修改为“球形k-均值文本聚类”,但尚未成功 我已经在网站上搜索了解决方案,但仍然无法成功修改我的程序。 以下是应该对我的项目有帮助的资源,但我仍然无法找到一种方法 这是我的传统K-means计划:Python 3.x “如何集群”;“文本文件”;加上;球形k-均值;使用Python?,python-3.x,k-means,spherical-kmeans,Python 3.x,K Means,Spherical Kmeans,我已经完成了传统的k-means文本聚类的实现。然而,现在,我需要将我的程序修改为“球形k-均值文本聚类”,但尚未成功 我已经在网站上搜索了解决方案,但仍然无法成功修改我的程序。 以下是应该对我的项目有帮助的资源,但我仍然无法找到一种方法 这是我的传统K-means计划: from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.cluster import KMeans from sklearn.me
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import KMeans
from sklearn.metrics import adjusted_rand_score
from sklearn.externals import joblib #store model
vectorizer = TfidfVectorizer(stop_words='english')
X = vectorizer.fit_transform(tag_document) //tag_document is a list that contains many strings
true_k = 3 //assume that i want to have 3 clusters
model = KMeans(n_clusters=true_k, init='k-means++', max_iter=100, n_init=1)
model.fit(X)
#store
joblib.dump(model,'save/cluster.pkl')
#restore
clu2 = joblib.load('save/cluster.pkl')
order_centroids = model.cluster_centers_.argsort()[:, ::-1]
terms = vectorizer.get_feature_names()
我希望使用“球形k-均值聚类”对文本文档进行聚类。首先,当两个相似文本之间的余弦距离很小时,您需要检查文本是否相似。在这之后,您可以规范化向量并使用kmeans进行聚类 我是这样做的:
k=20
kmeans=kmeans(n_clusters=k,init='random',random_state=0)
normalizer=normalizer(copy=False)
sphere\u kmeans=make\u管道(规范化器,kmeans)
sphere\u kmeans=sphere\u kmeans.fit\u变换(word2vec-tfidf-vectors)
首先,当两个相似文本之间的余弦距离很小时,您需要检查文本是否相似。在这之后,您可以规范化向量并使用kmeans进行聚类
我是这样做的:
k=20
kmeans=kmeans(n_clusters=k,init='random',random_state=0)
normalizer=normalizer(copy=False)
sphere\u kmeans=make\u管道(规范化器,kmeans)
sphere\u kmeans=sphere\u kmeans.fit\u变换(word2vec-tfidf-vectors)