#python #gensim
#python #gensim
Вопрос:
Я загрузил полный архив википедии объемом 14,9 ГБ и запускаю эту строку кода:
wiki = WikiCorpus("enwiki-latest-pages-articles.xml.bz2")
Мой код, похоже, не проходит здесь, и он работает уже час, я понимаю, что целевой файл большой, но мне было интересно, как я могу определить, что он работает, или каково ожидаемое время его завершения?
Ответ №1:
Часто вы можете использовать инструмент мониторинга для конкретной ОС, например top
в системах Linux / Unix / macOS, чтобы получить представление о том, интенсивно ли выполняется ваш процесс Python, использует память или продолжает ввод-вывод.
Даже простое сканирование словарного запаса, выполняемое при первом создании экземпляра WikiCorpus
, может занять много времени, как для распаковки, так и для токенизации / подсчета, поэтому я не был бы удивлен временем выполнения, превышающим час. (И если он полагается на какую-либо виртуальную память / замену во время этой простой операции, как может быть ясно из результатов top
или аналогичного мониторинга, это еще больше замедлит работу.)
В качестве сравнительной основы вы могли бы определить, сколько времени занимает декомпрессия только с помощью команды оболочки, такой как:
% time bzcat enwiki-latest-pages-articles.xml.bz2 | wc
(Быстрый тест на моем MacBook Pro показывает, что 15 ГБ данных BZ2 могут занять 30 минут плюс только для распаковки.)
В некоторых случаях включение ведения журнала Python на INFO
уровне будет отображать информацию о ходе работы с gensim
модулями, хотя я не уверен, что WikiCorpus
что-либо показывает, пока оно не завершится. Включение ведения журнала на INFO
уровне может быть таким простым, как:
import logging
logging.getLogger().setLevel(logging.INFO)
Комментарии:
1. после работы в течение 8 часов я получил ошибку памяти на моем ПК с Windows. У меня 16 ГБ оперативной памяти, вы знаете, как бы я преодолел эту проблему?