テキストドキュメントのコーパスを各ドキュメントの単語ベクトルに変換しています。私が使用してこれを試してみたTfidfVectorizerとHashingVectorizerを
a HashingVectorizer
はIDF
aのようにスコアを考慮しないことを理解してTfidfVectorizer
います。こことここでHashingVectorizer
説明されているように、私がまだaを使用している理由は、巨大なデータセットを処理する際の柔軟性です。(私の元のデータセットには3000万のドキュメントがあります)
現在、私は45339のドキュメントのサンプルを使用しているので、aを使用することTfidfVectorizer
もできます。同じ45339ドキュメントでこれら2つのベクトライザーを使用すると、取得する行列が異なります。
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)
a HashingVectorizer
とaの違いTfidfVectorizer
、およびこれらの行列のサイズが異なる理由、特に語句/用語の数がよくわかります。