Estoy convirtiendo un corpus de documentos de texto en vectores de palabras para cada documento. He intentado esto usando un TfidfVectorizer y un HashingVectorizer
Entiendo que a HashingVectorizerno toma en cuenta los IDFpuntajes como lo TfidfVectorizerhace. La razón por la que todavía estoy trabajando con a HashingVectorizeres la flexibilidad que brinda al tratar con grandes conjuntos de datos, como se explica aquí y aquí . (Mi conjunto de datos original tiene 30 millones de documentos)
Actualmente, estoy trabajando con una muestra de 45339 documentos, por lo tanto, tengo la capacidad de trabajar TfidfVectorizertambién. Cuando uso estos dos vectorizadores en los mismos documentos 45339, las matrices que obtengo son diferentes.
hashing = HashingVectorizer() with LSM('corpus.db')) as corpus: hashing_matrix = hashing.fit_transform(corpus) print(hashing_matrix.shape)forma de matriz de hashing (45339, 1048576)
tfidf = TfidfVectorizer() with LSM('corpus.db')) as corpus: tfidf_matrix = tfidf.fit_transform(corpus) print(tfidf_matrix.shape)Forma de matriz tfidf (45339, 663307)
Quiero comprender mejor las diferencias entre ay HashingVectorizera TfidfVectorizer, y la razón por la cual estas matrices están en diferentes tamaños, particularmente en el número de palabras / términos.