¿Cómo puedo reducir el uso de memoria de los vectorizadores Scikit-Learn?

TFIDFVectorizer toma tanta memoria, vectorizar 470 MB de documentos de 100k toma más de 6 GB, si vamos a 21 millones de documentos, no cabrán 60 GB de RAM que tenemos.

Así que optamos por HashingVectorizer, pero aún necesitamos saber cómo distribuir el vectorizador de hash. ¿El ajuste y ajuste parcial no hacen nada, entonces, cómo trabajar con Huge Corpus?

Le recomendaría encarecidamente que use el HashingVectorizer cuando ajuste modelos en un conjunto de datos grande.

El HashingVectorizer es independiente de los datos, solo los parámetros de vectorizer.get_params() son importantes. Por lo tanto (un) pickling `HashingVectorizer instancia debe ser muy rápido.

Los vectorizadores basados ​​en vocabulario son más adecuados para el análisis exploratorio en pequeños conjuntos de datos.

Una forma de superar la incapacidad de HashingVectorizer para tener en cuenta las IDF es indexar sus datos en elasticsearch o lucene y recuperar los vectores desde allí con los que puede calcular Tf-IDF.