使用 scikit-learn 从文档集中查找仅选定单词的 Tf-Idf 分数
Finding Tf-Idf Scores of only selected words from set of documents using scikit-learn
我有一组文档(存储为 .txt
个文件)。我还有一个 python 字典,其中包含一些选定的单词。我只想将 tf-idf 分数分配给文档集中的这些词,而不是所有词。如何使用 scikit-learn
或任何其他库完成此操作?
我已经提到这个 blog post 但它给出了完整词汇的分数。
您可以使用 CountVectorizer
来做到这一点,它将文档扫描为文本并转换为术语文档矩阵,然后在矩阵上使用 TfidfTrasnformer
。
这两个步骤也可以结合TfidfVectorizer
一起完成。
这些在 sklearn.feature_extraction.text
模块 [link] 中。
这两个过程将 return 相同的稀疏矩阵表示,我认为您可能会通过 TruncatedSVD
对其进行 SVD 变换以获得更小的密集矩阵。
你当然也可以自己做,这需要保留两张地图,一张用于每个文档,一张整体,用于计算术语。这就是他们在幕后运作的方式。
This page 有一些很好的例子。
我有一组文档(存储为 .txt
个文件)。我还有一个 python 字典,其中包含一些选定的单词。我只想将 tf-idf 分数分配给文档集中的这些词,而不是所有词。如何使用 scikit-learn
或任何其他库完成此操作?
我已经提到这个 blog post 但它给出了完整词汇的分数。
您可以使用 CountVectorizer
来做到这一点,它将文档扫描为文本并转换为术语文档矩阵,然后在矩阵上使用 TfidfTrasnformer
。
这两个步骤也可以结合TfidfVectorizer
一起完成。
这些在 sklearn.feature_extraction.text
模块 [link] 中。
这两个过程将 return 相同的稀疏矩阵表示,我认为您可能会通过 TruncatedSVD
对其进行 SVD 变换以获得更小的密集矩阵。
你当然也可以自己做,这需要保留两张地图,一张用于每个文档,一张整体,用于计算术语。这就是他们在幕后运作的方式。
This page 有一些很好的例子。