我已经完成了传统的 k-means 文本聚类。但是,现在,我需要将我的程序修改为“球形 k 均值文本聚类”,但还没有成功。
我在网站上搜索了解决方案,但仍然无法成功修改我的程序。以下是对我的项目有帮助的资源,但我仍然无法找到方法。
这是我传统的 K-means 程序:
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 均值聚类”对文本文档进行聚类。