2016-11-03 6 views
0

Я использую TfIdfVectorizer для кластеризации документов. У меня 20 миллионов текстов, для которых я хочу вычислить кластеры. Но вычисление матрицы TfIdf занимает слишком много времени, и система застревает.python: проблема с памятью в кластеризации документов с использованием sklearn

Есть ли какая-либо техника для решения этой проблемы? есть ли альтернативный метод для этого в любом модуле python?

ответ

1

Ну, корпус текстов очень большой и без тщательной и всесторонней предварительной обработки, ни хороших вычислительных экземпляров (то есть много памяти и хороших ЦП), расчет TF-IDF может принять много времени.

Что вы можете сделать:

  • Ограничьте текст корпус некоторых сто тысяч образцов (скажем 200.000 текстов). Слишком много текстов не может вводить больше различий, чем гораздо меньшие (но разумные) наборы данных.

  • Попробуйте preprocess ваши тексты как можно больше. Основным подходом будет: токенизация ваших текстов, использование стоп-слов, словосочетание, использование тщательно n_grams. После того как вы сделали все эти шаги, посмотрите, насколько вы уменьшили размер своего словаря. Он должен быть намного меньше оригинального.

Если вы не слишком большой (говоря о вашем наборе данных), эти шаги могут помочь вам вычислить TF-IDF намного быстрее.

0

Старт маленький.

Первый кластер только 100,00 документов. Только когда он работает (потому что он, вероятно, не будет), тогда подумайте о расширении. Если вам не удалось кластеризовать подмножество (и текстовые кластеры, как правило, довольно плохие), то вы не будете хорошо себя чувствовать на большом множестве.