Как определить, работает ли WikiCorpus из gensim?

#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 ГБ оперативной памяти, вы знаете, как бы я преодолел эту проблему?