【问题标题】:How to make word cloud for each cluster in kmeans如何在kmeans中为每个集群制作词云
【发布时间】:2019-10-31 04:34:37
【问题描述】:

“我尝试使用词云打印每个集群中的数据点,我的数据点是矢量化数据(BOW),如何使用词云打印每个集群中的单词..?”

我已经为 k-means 完成了最优 k,之后我不知道如何在每个集群中打印单词

kmeanModel_bow = KMeans(n_clusters=2)

谁能帮助我了解如何使用词云为每个集群打印单词

【问题讨论】:

    标签: python machine-learning data-science k-means word-cloud


    【解决方案1】:

    打印 y_kmeans 和 X 将告诉您哪一行属于哪个集群。

    kmeanModel_bow = KMeans(n_clusters=2)
    y_kmeans = kmeanModel_bow.fit_predict(X)
    

    【讨论】:

    • ask 是打印 kmeans 集群的 wordcloud。提供的解决方案不能解决问题。
    【解决方案2】:
    from wordcloud import WordCloud, STOPWORDS 
    import matplotlib.pyplot as plt 
    import pandas as pd 
    
    for tag  in  y_kmeans.labels_ :
    if tag==1:
      tags1=element+" "+element[tag]
    if tag==2:
      tags2=element+" "+element[tag]
    if tag==3:
      tags3=element+" "+element[tag]
    
      wordcloud = WordCloud(width = 1000, height = 1000, 
                background_color ='white', 
                min_font_size = 14).generate(tag1) 
    
            plt.figure(figsize = (10, 10), facecolor = None) 
            plt.imshow(wordcloud) 
    

    【讨论】:

      【解决方案3】:

      为集群中的每个数据点绘制每个单词是不可行的。 BOW 将为每个句子创建数千个特征。即使您只有 1000 个数据点(1 个数据点是一个句子),它也会导致为单个集群绘制大约 10 万个单词。我建议为每个集群绘制集群中心。

      获取聚类中心的特征:

      使用返回 NumPy 数组的 KMeans 函数的 cluster_centers_ 属性。 每行将具有对应于每个聚类中心的特征。 使用以下代码获取特征词:

      Words = np.array_str((np.take(vectorizer.get_feature_names(), featurearray)))
      

      然后您可以使用 wordcloud 绘制获得的单词。

      【讨论】:

        【解决方案4】:

        找到了解决问题的更好方法。质心方法可能不起作用,因为质心 BOW 很可能不存在。因为特征值将通过取其他数据点的平均值来计算。您可以使用以下逻辑来获取不同集群中的单词。

        for i in tqdm(range(0,len(K_Means.labels_))):
        
        
           lisst = BOWVectorDataPoint[i].nonzero()
        
           if   K_Means.labels_[i] == 0:
            cluster0words = cluster0words + np.array_str((np.take(Vectorizer.get_feature_names(), lisst[1])))
        
           elif K_Means.labels_[i] == 1:
            cluster1words = cluster1words + np.array_str((np.take(Vectorizer.get_feature_names(), lisst[1])))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-01-20
          • 2021-07-24
          • 2019-01-04
          • 2017-06-01
          • 2019-04-04
          • 2023-03-03
          • 2019-11-24
          • 2017-05-25
          相关资源
          最近更新 更多