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 HashingVectorizer
no toma en cuenta los IDF
puntajes como lo TfidfVectorizer
hace. La razón por la que todavía estoy trabajando con a HashingVectorizer
es 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 TfidfVectorizer
tambié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 HashingVectorizer
a 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.