0

Итак, я пытаюсь использовать gensim для создания модели LSI вместе с corpus_lsi после урока this.gensim Создание модели LSI приводит к тому, что «Python перестала работать»

Начинаю с корпуса и словаря, который я создал сам. Перечня документов слишком мал (9 строк = 9 документов), что образцовый список приводится в gensim учебниках

Однако Pythos просто падает, когда она достигает линии для генерации LSI_model. Вы можете увидеть ниже моего кода вместе с сгенерированным

Код

#!/usr/bin/env python 
import os 
from gensim import corpora, models, similarities 
import logging 

#logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO) 

if __name__ == '__main__': 
    if (os.path.exists("tmp\dictionary.dict")): 
     dictionary = corpora.Dictionary.load('tmp\dictionary.dict') 
     corpus = corpora.MmCorpus('tmp\corpus.mm') 
     print("Used files generated Dataset Generator") 
    else: 
     print("Please run dataset generator") 

print ("generating tf-idf model ...") 
tfidf = models.TfidfModel(corpus) # Generate tfidf matrix (tf-idf model) 
print ("generating corpus_tf-idf model ...") 
corpus_tfidf = tfidf[corpus] #use the model to transform vectors 

print ("generating LSI model ...") 
lsi = models.LsiModel(corpus_tfidf, id2word=dictionary, num_topics=2) # initialize an LSI transformation 
print ("generating corpus_lsi model ...") 
corpus_lsi = lsi[corpus_tfidf] # create a double wrapper over the original corpus: bow->tfidf->fold-in-lsi 

lsi.print_topics(2) 

Выход

Used files generated Dataset Generator 
generating tf-idf model ... 
generating corpus_tf-idf model ... 
generating LSI model ... 

После печати "создания БИС модели" он выходит из строя

Любой предложения?

Другие вещи, которые я пытался

  • Изменение питона версию Python 2.6
  • Удаление gensim и установить его снова из GitHub (вместо Конда)

ответ

2

кажется, что этот вопрос функция, используемая в учебнике (возможно, пониженная или что-то еще)

поэтому я изменил строку

lsi = models.LsiModel(corpus_tfidf, id2word=dictionary, num_topics=2) # initialize an LSI transformation 

Для

lsi = LsiModel(corpus_tfidf,num_topics=2) 

И он действительно работал прекрасный

+0

Спасибо - это удаление 'id2word = словарь' ничего не влияет на то? – user1761806