gensim Генерация модели LSI приводит к тому, что Python перестал работать

Поэтому я пытаюсь использовать gensim для создания модели LSI вместе с corpus_lsi, следуя этому руководству.

Я начинаю с корпуса и словаря, которые я создал сам. Список документов слишком мал (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 ...

После печати «генерация модели LSI» происходит сбой

Какие-либо предложения ?

Что еще я пробовал

  • Изменение версии Python на Python 2.6
  • Удаление gensim и повторная установка с github (вместо conda)

person Abdelrahman Shoman    schedule 23.10.2016    source источник


Ответы (1)


Похоже, проблема заключалась в функции, используемой в учебнике (возможно, пониженная версия или что-то в этом роде).

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

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

To

lsi = LsiModel(corpus_tfidf,num_topics=2)

И правда работало нормально

person Abdelrahman Shoman    schedule 04.11.2016
comment
Спасибо. Значит, удаление id2word=dictionary ни на что не влияет? - person user1761806; 16.09.2017