Я довольно новичок в Python и вообще пишу код, поэтому, похоже, я столкнулся с проблемой.
Я пытаюсь запустить этот код (благодарность Мэтью Мейо, все может можно найти здесь ):
# import warnings
# warnings.filterwarnings(action = 'ignore', category = UserWarning, module = 'gensim')
import sys
from gensim.corpora import WikiCorpus
def make_corpus (in_f, out_f):
print(0)
output = open(out_f, 'w', encoding = 'utf-8')
print(1)
wiki = WikiCorpus(in_f)
print(2)
i = 0
for text in wiki.get_texts():
output.write(bytes(' '.join(text), 'utf-8').decode('utf-8') + '/n')
i += 1
if i % 10000 == 0:
print('Processed {} articles!'.format(i))
print(3)
output.close()
print('Process complete!')
print('start')
if __name__ == '__main__':
if len(sys.argv) != 3:
print('Usage: python make_wiki_corpus.py <wikipedia_dump_file> <processed_text_file>')
sys.exit(1)
in_f = sys.argv[1]
out_f = sys.argv[2]
make_corpus(in_f, out_f)
else:
print(__name__)
Однако ветвь функции, кажется, работает частично, останавливаясь на wiki = WikiCorpus(in_f)
- она никогда не достигает print(2)
- и затем выходит и повторение начала кода, безрезультатно. На самом деле никаких ошибок не возникает, только предупреждение (UserWarning: detected Windows; aliasing chunkize to chunkize_serial warnings.warn("detected Windows; aliasing chunkize to chunkize_serial")
).
Вывод такой:
start
0
1
C:\Users\name\Anaconda3\lib\site-packages\gensim\utils.py:1254: UserWarning: detected Windows; aliasing chunkize to chunkize_serial warnings.warn("detected Windows; aliasing chunkize to chunkize_serial")
start
__mp_main__
start
__mp_main__
start
__mp_main__
Я попытался удалить все необходимые пакеты (numpy, smart_open) , а также сам Gensim (в активной среде Conda), но ничего не изменилось. Кроме того, в чем разница между main и многопроцессорным?
- Технические характеристики: win64, py 3.7.3
Редактировать: после запуска регистрации на DEBUG уровень, файл журнала
2020-02-16 22:49:00,061:start: :13396
2020-02-16 22:49:00,061:0 :13396
2020-02-16 22:49:00,061:1 :13396
2020-02-16 22:49:01,493:start: :22356
2020-02-16 22:49:01,493:3 :22356
2020-02-16 22:49:01,496:start: :25332
2020-02-16 22:49:01,497:3 :25332
2020-02-16 22:49:01,530:start: :7120
2020-02-16 22:49:01,530:3 :7120
2020-02-16 22:49:01,541:adding document #0 to Dictionary(0 unique tokens: []):13396
(также «3» был добавлен в ветку else
:)
else:
logging.debug('3 ')