使用 scikit-learn 从一组文档中仅找到所选单词的 Tf-Idf 分数

Posted

技术标签:

【中文标题】使用 scikit-learn 从一组文档中仅找到所选单词的 Tf-Idf 分数【英文标题】:Finding Tf-Idf Scores of only selected words from set of documents using scikit-learn 【发布时间】:2016-07-02 16:34:32 【问题描述】:

我有一组文档(存储为.txt 文件)。我也有一些选定单词的python字典。我想仅将 tf-idf 分数分配给文档集中的这些单词,而不是所有单词。如何使用scikit-learn 或任何其他库来做到这一点?

我提到过这个blog post,但它给出了完整的词汇量。

【问题讨论】:

【参考方案1】:

您可以使用CountVectorizer 来完成此操作,它将文档扫描为文本并转换为术语文档矩阵,并在矩阵上使用TfidfTrasnformer

这两个步骤也可以结合TfidfVectorizer一起完成。

这些在 sklearn.feature_extraction.text 模块 [link] 中。

两个过程都将返回相同的稀疏矩阵表示,我认为您可能会在此基础上通过TruncatedSVD 进行 SVD 变换以获得更小的密集矩阵。

您当然也可以自己做,这需要保留两张地图,一张用于每个文档,一张整体用于计算术语。这就是他们在幕后运作的方式。

This page 有一些很好的例子。

【讨论】:

以上是关于使用 scikit-learn 从一组文档中仅找到所选单词的 Tf-Idf 分数的主要内容,如果未能解决你的问题,请参考以下文章

如何用c语言从一组给定数中找到一个数或者几个数的和使其值最接近指定的数

如何用c语言从一组给定数中找到一个数或者几个数的和使其值最接近指定的数

通过从每个集合中仅选择一个值来选择 k 个大小的子集

如何在 scikit-learn 中的 tfidf 之后查看术语文档矩阵的前 n 个条目

scikit-learn,将特征添加到矢量化文档集

从一组(相似的)字符串中确定前缀