如何使用 TF-IDF Vector Select 前 1000 个单词?

How to Select Top 1000 words using TF-IDF Vector?

我的文档有 5000 条评论。我在该文档上应用了 tf-idf。这里 sample_data 包含 5000 条评论。我在 sample_data 上应用 tf-idf 矢量化器 一克范围 。现在我想获得前1000个单词 来自具有 最高 tf-idf 值 的 sample_data。谁能告诉我如何获得热门词?

from sklearn.feature_extraction.text import TfidfVectorizer
tf_idf_vect = TfidfVectorizer(ngram_range=(1,1))
tf_idf_vect.fit(sample_data)
final_tf_idf = tf_idf_vect.transform(sample_data)

TF-IDF 值取决于各个文档。您可以使用 max_features parameter of TfidfVectorizer:

根据词数 (Tf) 获取前 1000 个词

max_features : int or None, default=None

If not None, build a vocabulary that only consider the top
max_features ordered by term frequency across the corpus.

就这样:

tf_idf_vect = TfidfVectorizer(ngram_range=(1,1), max_features=1000)

你甚至可以通过使用 idf_ 属性从 tf_idf_vect 中获得 'idf' (全局词权重)在拟合(学习)文档之后:

idf_ : array, shape = [n_features], or None

  The learned idf vector (global term weights) when use_idf is set to True,  

调用 tf_idf_vect.fit(sample_data) 后执行此操作:

idf = tf_idf_vect.idf_

然后 select 从中选出前 1000 个并根据这些 selected 特征重新拟合数据。

但是你无法通过“tf-idf”获得前 1000 名,因为 tf-idf 是单个文档中术语 tf 的乘积idf (global) 的词汇表。因此,对于在单个文档中出现 2 次的同一个词,tf-idf 是在另一个文档中仅出现一次的同一个词的两倍。您如何比较同一术语的不同值。希望这能说明问题。