Python Mallet LDA Errno 2 Нет такого файла или каталога

Я сохранил модель LDAWallet:

Сначала я сделал поезд:

 mallet_path = 'mallet-2.0.8/bin/mallet'
 ldamallet = gensim.models.wrappers.LdaMallet(mallet_path, corpus=corpus, id2word=id2word, 
 num_topics=14)

А затем я сохранил модель, используя метод сохранения:

ldamallet.save('lda_v0.model')

Я забыл установить префикс для определенного файла при обучении режима, в результате чего я потерял все временные файлы, созданные gensim при обучении (докторские темы и т. д.). И я думаю, что из-за этого, когда я загружаю модель и хочу предсказать темы:

model_lda = gensim.models.ldamodel.LdaModel.load('lda_v0.model')
###stuff
###stuff
###stuff
model_lda[input]

Я получаю сообщение об ошибке:

[Errno 2] Нет такого файла или каталога: '/var/folders/_f/ttl3hvqn75g4rb5cdg02qg1c0000gn/T/2e13a7_doctopics.txt.infer'

Я безуспешно пытался воспроизвести ту же модель с данными (и установкой префикса, чтобы не потерять временные файлы). Мне интересно, можно ли использовать метод print_topics (забыл сказать, что загрузка модели работает, и я могу получить все темы и их слова) и для каждой темы получить вес слов, связанных с темами и вычислить вероятность, но я не знаю, как модель lda предсказывает тему для каждого документа, поэтому я не уверен, что моя идея сработает.

У вас есть идеи, как решить эту проблему? Я только хочу предсказать для документа вероятность каждой темы.

Спасибо


person Omar Souaidi    schedule 09.03.2020    source источник
comment
Это полный вывод ошибок? Какая именно строка кода вызывает ошибку?   -  person gojomo    schedule 11.03.2020
comment
Привет @gojomo, точная строка кода, которая вызывает ошибку, — это model_lda[input], это когда я пытаюсь сделать прогнозы.   -  person Omar Souaidi    schedule 11.03.2020
comment
Это полный вывод ошибок?   -  person gojomo    schedule 11.03.2020


Ответы (1)


Проблема исправлена. Я конвертирую модель молотка в модель lda; и благодаря этому я смог делать прогнозы.

model_lda = gensim.models.ldamodel.LdaModel.load(path_of the model)
ldamodel = gensim.models.wrappers.ldamallet.malletmodel2ldamodel(model_lda)

благодарю вас.

person Omar Souaidi    schedule 01.04.2020