Python Scikit学习K-均值聚类&;TfidfVectorizer:如何将tf idf得分最高的前n个术语传递给k-means

Python Scikit学习K-均值聚类&;TfidfVectorizer:如何将tf idf得分最高的前n个术语传递给k-means,python,scikit-learn,k-means,text-mining,tfidfvectorizer,Python,Scikit Learn,K Means,Text Mining,Tfidfvectorizer,我正在基于TFIDF矢量器对文本数据进行聚类。代码运行良好。它将整个TFIDF矢量器输出作为K均值聚类的输入,并生成散点图。相反,我只想发送基于TF-IDF分数的前n项作为k-means聚类的输入。有没有办法做到这一点 vect = TfidfVectorizer(ngram_range=(1,3),stop_words='english') tfidf_matrix = vect.fit_transform(df_doc_wholetext['csv_text']) '''create

我正在基于TFIDF矢量器对文本数据进行聚类。代码运行良好。它将整个TFIDF矢量器输出作为K均值聚类的输入,并生成散点图。相反,我只想发送基于TF-IDF分数的前n项作为k-means聚类的输入。有没有办法做到这一点

vect = TfidfVectorizer(ngram_range=(1,3),stop_words='english')

tfidf_matrix = vect.fit_transform(df_doc_wholetext['csv_text'])


'''create k-means model with custom config '''
clustering_model = KMeans(
    n_clusters=num_clusters,
    max_iter=max_iterations,
    precompute_distances="auto",
    n_jobs=-1
)

labels = clustering_model.fit_predict(tfidf_matrix)

x = tfidf_matrix.todense()

reduced_data = PCA(n_components=pca_num_components).fit_transform(x)


fig, ax = plt.subplots()
for index, instance in enumerate(reduced_data):        
    pca_comp_1, pca_comp_2 = reduced_data[index]
    color = labels_color_map[labels[index]]
    ax.scatter(pca_comp_1,pca_comp_2, c = color)
plt.show()

在TFIDFVE中使用Max特征来考虑顶N特征

vect = TfidfVectorizer(ngram_range=(1,3),stop_words='english', max_features=n)
根据scikit learn的文档,max_特性的值为int或None(默认值=None)。如果不是没有,TfidfVectorizer构建一个词汇表,它只考虑通过语料库在词频上排序的最高Max特征。 这是你的电话号码