在通过 countvectorizer 生成的 n-gram 上使用 tfidf 有哪些优点/缺点?

数据挖掘 nlp
2022-03-15 01:01:23

当您的最终目标是查看语料库中频繁出现的术语和出现百分比时,在通过 countvectorizer 生成的 n-gram 上使用 tfidf 有哪些优点/缺点?

1个回答

首先,CountVectorizer生成一个令牌计数矩阵,而不是 TF-IDF 权重。为了获得 TF-IDF 权重,您必须使用TfidfVectorizer

如果目标是研究词频,则使用 TF-IDF 毫无意义,因为 TF-IDF 权重与频率不同。TF-IDF 用于减少与很少出现的 token 相比频繁出现的 token 的权重。此外,TF-IDF 权重处于文档级别,因此不能用作跨所有文档的全局比较的度量。跨文档您只能使用 IDF(逆文档频率)部分,但为什么不简单地使用文档频率。

请注意,这同样适用于令牌计数矩阵:值位于文档级别。为了找到全局频率,必须对每个标记的文档求和。

最后,如果您试图找到任何长度的最常见术语/n-gram,则很难比较不同长度的 n-gram 之间的频率。此外,您会发现真正的“术语”与频繁的语法结构混合在一起,例如“它是”不是一个术语,而是一个频繁的 n-gram。