Я работаю над извлечением текстовых объектов из большого набора данных документов (около 15 миллионов документов) с использованием CountVectorizer
.Я также рассмотрел HashingVectorizer
как альтернативу, но я думаю, что CountVectorizer
- это то, что мне нужно, так как оно предоставляет больше информации о текстовых функциях и других вещах.
Проблема здесь довольно распространенная: я неПри установке модели CountVectorizer
памяти недостаточно.
def getTexts():
# an iterator that will yield each document from the database
vectorizer = CountVectorizer(max_features=500, ngram_range=(1,3))
X = vectorizer.fit_transform(getTexts())
Здесь, скажем, у меня есть итератор, который будет выдавать один документ за раз из базы данных.Если я передам этот итератор в качестве параметра функции CountVectorizer
fit()
, как будет построен словарь?Ожидает ли он завершения загрузки всех документов, а затем выполняет fit()
один раз или загружает по одному документу за раз, выполняет подгонку, а затем загружает следующий?Как можно решить проблему нехватки памяти здесь?