У меня есть 50 000 тыс. Файлов - всего 162 млн. Слов. Я хотел сделать тематическое моделирование, используя Gensim, похожий на этот урок здесь
Итак, LDA требует разбить документы на слова, а затем создать словарь частоты слов.
Итак, у меня есть эти файлы, прочитанные в фрейм данных pandas (столбец 'content' содержит текст), и я делаю следующее, чтобы создать список текстов. изображение фрейма данных, прикрепленное здесь
texts = [[word for word in row[1]['content'].lower().split() if word not in stopwords]
for row in df.iterrows()]
Однако я столкнулся с ошибкой памяти из-за большого количества слов.
Я также попробовал TokenVectorizer в Python. Я получил ошибку памяти для этого тоже.
def simple_tokenizer(str_input):
words = re.sub(r"[^A-Za-z0-9\-]", " ", str_input).lower().split()
return words
vectorizer = TfidfVectorizer(
use_idf=True, tokenizer=simple_tokenizer, stop_words='english')
X = vectorizer.fit_transform(df['content'])
Как мне обработать токенизацию этих действительно длинных документов так, чтобы их можно было обрабатывать для анализа LDA?
У меня есть рабочий стол i7, 16 ГБ, если это имеет значение.
EDIT
Поскольку Python не мог хранить действительно большие списки. Я фактически переписал код, чтобы прочитать каждый файл (изначально сохраненный в формате HTML), преобразовать его в текст, создать текстовый вектор, добавить его в список, а затем отправить его в код LDA. Это сработало!