Python 3.x “如何集群”;“文本文件”;加上;球形k-均值;使用Python?

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

我已经完成了传统的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-均值聚类”对文本文档进行聚类。

    首先,当两个相似文本之间的余弦距离很小时,您需要检查文本是否相似。在这之后,您可以规范化向量并使用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)