我正在将文本文档的语料库转换为每个文档的词向量。我已经尝试过使用TfidfVectorizer和HashingVectorizer
我知道 a不像 a 那样HashingVectorizer
考虑IDF
分数TfidfVectorizer
。我仍在使用 a 的原因HashingVectorizer
是它在处理大型数据集时提供的灵活性,如此处和此处所述。(我的原始数据集有 3000 万个文档)
目前,我正在处理 45339 个文档的样本,因此,我也有能力使用TfidfVectorizer
。当我在同一个 45339 文档上使用这两个矢量化器时,我得到的矩阵是不同的。
hashing = HashingVectorizer() with LSM('corpus.db')) as corpus: hashing_matrix = hashing.fit_transform(corpus) print(hashing_matrix.shape)
散列矩阵形状(45339、1048576)
tfidf = TfidfVectorizer() with LSM('corpus.db')) as corpus: tfidf_matrix = tfidf.fit_transform(corpus) print(tfidf_matrix.shape)
tfidf 矩阵形状(45339、663307)
HashingVectorizer
我想更好地理解 a和 a之间的区别TfidfVectorizer
,以及这些矩阵大小不同的原因——尤其是单词/术语的数量。