В соответствии с действующей (gensim 3.8.1, октябрь 2019 г.) Doc2Vec.train()
документацией , вам не нужно указывать total_examples
и total_words
, только одно или другое:
Для поддержки линейного спада скорости обучения от (начального) альфа до min_alpha и точной регистрации процента прогресса, ДОЛЖНЫ быть предоставлены либо total_examples (количество документов), либо total_words (количество необработанных слов в документах),Если документы - это тот же корпус, который был предоставлен для build_vocab () ранее, вы можете просто использовать total_examples = self.corpus_count.
Но, оказывается, для новой опции corpus_file
требуются оба, иКомментарий к документу неверен. Я подал ошибку , чтобы исправить недосмотр документации.
Да, модель кэширует количество слов, обнаруженных во время самого последнего build_vocab()
внутри model.corpus_total_words
, поэтому total_words=model.corpus_total_words
должен сделать для вас правильную вещь.
При использовании параметра ввода текста corpus_file
, разделенного пробелами, числа, заданные corpus_count
и corpus_total_words
, должны соответствовать счетчикам строк и слов, которые вы также увидите, выполнив wc your_file_path
в командной строке.
(Если бы вы использовали классический, простой итеративный вариант корпуса Python (который не может использовать потоки так эффективно), то было бы бесполезно указывать total_examples
и total_words
для train()
- он будет использовать только один или другой для оценки прогресса.)