Saya mengubah kumpulan dokumen teks menjadi vektor kata untuk setiap dokumen. Saya sudah mencoba ini menggunakan TfidfVectorizer dan HashingVectorizer
Saya mengerti bahwa a HashingVectorizer
tidak mempertimbangkan IDF
skor seperti halnya a TfidfVectorizer
. Alasan saya masih bekerja dengan a HashingVectorizer
adalah fleksibilitas yang diberikannya ketika berhadapan dengan dataset besar, seperti yang dijelaskan di sini dan di sini . (Kumpulan data asli saya memiliki 30 juta dokumen)
Saat ini, saya bekerja dengan sampel 45339 dokumen, jadi, saya memiliki kemampuan untuk bekerja dengan TfidfVectorizer
juga. Ketika saya menggunakan kedua vektorizers ini pada dokumen 45339 yang sama, matriks yang saya dapatkan berbeda.
hashing = HashingVectorizer() with LSM('corpus.db')) as corpus: hashing_matrix = hashing.fit_transform(corpus) print(hashing_matrix.shape)
bentuk matriks hashing (45339, 1048576)
tfidf = TfidfVectorizer() with LSM('corpus.db')) as corpus: tfidf_matrix = tfidf.fit_transform(corpus) print(tfidf_matrix.shape)
bentuk matriks tfidf (45339, 663307)
Saya ingin lebih memahami perbedaan antara a HashingVectorizer
dan a TfidfVectorizer
, dan alasan mengapa matriks ini berbeda ukuran - terutama dalam jumlah kata / istilah.