Я прошел через другие потоки, где указано, что в LDA память пропорциональна numberOfTerms * numberOfTopics . В моем случае у меня есть два набора данных.
В наборе данных A у меня 250 тыс. Документов и около 500 тыс. Терминов, и я легко могу использовать около 500 тем. Но в наборе данных B у меня есть около 2 миллионов документов и 500 тыс. Терминов (мы попали сюда после некоторой фильтрации), но здесь я могу запустить только до 50 тем, которые выдают исключение памяти.
Так что я просто хотел понять, если только количество терминов и тем имеет значение для памяти, почему количество документов вызывает эту проблему, и есть ли быстрый обходной путь, который может этого избежать.
Примечание: Я знаю, что корпус можно обернуть как итерацию, как указано в memory -ffective-lda-training-using-gensim-library , но давайте предположим, что я уже загрузил Корпуса в памяти из-за некоторых других ограничений, которые я имею для хранения входных данных в другом формате, чтобы они могли работать на разных платформах для разных алгоритмов. Дело в том, что я могу запустить его для небольшого числа тем после загрузки целых корпусов в память. Так что есть ли обходной путь, который может помочь ему работать на большее количество тем. Например, я думал, что настройка размера фрагмента может помочь, но это не сработало.