Я пытаюсь загрузить сохраненный молоток gensim lda:
ldamallet = gensim.models.wrappers.LdaMallet(mallet_path, corpus=corpus, num_topics=n_topics,id2word=id2word)
ldamallet.save('ldamallet')
При тестировании этого для нового запроса (с исходным корпусом и словарем) все выглядит нормально для первой загрузки.
ques_vec = [dictionary.doc2bow(words) for words in data_words_list]
for i, row in enumerate(lda[ques_vec]):
row = sorted(row, key=lambda x: (x[1]), reverse=True)
При последующем выполнении того же кода выскакивает именно эта ошибка:
java.io.FileNotFoundException: /tmp/9f371_corpus.mallet (нет такого файла или каталога) в java.io.FileInputStream.open0 (собственный метод) в java.io.FileInputStream.open (FileInputStream.java:195) в java.io .FileInputStream. (FileInputStream.java:138) в cc.mallet.types.InstanceList.load (InstanceList.java:787) в cc.mallet.classify.tui.Csv2Vectors.main (Csv2Vectors.java:131) Исключение в потоке " main "java.lang.IllegalArgumentException: не удалось прочитать список экземпляров из файла /tmp/9f371_corpus.mallet в cc.mallet.types.InstanceList.load (InstanceList.java:794) в cc.mallet.classify.tui.Csv2Vectors.main (Csv2Vectors.java:131) Traceback (последний вызов последним): файл topic_modeling1.py, строка 406, в topic = get_label (text, id2word, first, ldamallet) Файл «topic_modeling1.py», строка 237, в get_label для i строка в перечислении (lda [ques_vec]): File "/home/user/sjha/anaconda3/envs/conda_env/lib/python3.6/site- packages / gensim / models / wrappers / ldamallet.py ", строка 308, в файле getitem self.convert_input (bow, infer = True)" / home / user / sjha / anaconda3 / envs / conda_env / lib / python3.6 / site-packages / gensim / models / wrappers / ldamallet.py ", строка 256, в файле convert_input check_output (args = cmd, shell = True)" / home / user / sjha / anaconda3 / envs / conda_env /lib/python3.6/site-packages/gensim/utils.py ", строка 1806, в подпроцессе check_output вызвать ошибку .CalledProcessError: Command '/home/user/sjha/projects/topic_modeling/mallet-2.0.8/bin/ файл импорта молотка --preserve-case --keep-sequence --remove-Stopwords --token-regex "\ S +" --input /tmp/9f371_corpus.txt --output /tmp/9f371_corpus.mallet.infer - use-pipe-from /tmp/9f371_corpus.mallet 'вернул ненулевой статус выхода 1.
Содержимое моего /tmp/
каталога:
/tmp/9f371_corpus.txt /tmp/9f371_doctopics.txt /tmp/9f371_doctopics.txt.infer /tmp/9f371_inferencer.mallet /tmp/9f371_state.mallet.gz /tmp/9f371_topickeys.txt
Кроме того, похоже, что файлы /tmp/9f371_doctopics.txt.infer
и /tmp/9f371_corpus.txt
изменяются каждый раз, когда я загружаю модель. Что могло быть возможным источником ошибки? Или это какая-то ошибка в обертке молоточка gensim?