2014-10-09 63 views
-1

我正在使用gensim包進行python中的主題建模。Python :: IOError:[Errno 2]沒有這樣的文件或目錄:'models/dictionary.dict'

我正在嘗試使用gensim來訓練主題模型。下面是train.py模塊:

class Corpus(object): 
    def __init__(self, cursor, reviews_dictionary, corpus_path): 
     self.cursor = cursor 
     self.reviews_dictionary = reviews_dictionary 
     self.corpus_path = corpus_path 

    def __iter__(self): 
     self.cursor.rewind() 
     for review in self.cursor: 
      yield self.reviews_dictionary.doc2bow(review["words"]) 

    def serialize(self): 
     BleiCorpus.serialize(self.corpus_path, self, id2word=self.reviews_dictionary) 

     return self 


class Dictionary(object): 
    def __init__(self, cursor, dictionary_path): 
     self.cursor = cursor 
     self.dictionary_path = dictionary_path 

    def build(self): 
     self.cursor.rewind() 
     dictionary = corpora.Dictionary(review["words"] for review in self.cursor) 
     dictionary.filter_extremes(keep_n=10000) 
     dictionary.compactify() 
     corpora.Dictionary.save(dictionary, self.dictionary_path) 

     return dictionary 


class Train: 
    def __init__(self): 
     pass 

    @staticmethod 
    def run(lda_model_path, corpus_path, num_topics, id2word): 
     corpus = corpora.BleiCorpus(corpus_path) 
     lda = gensim.models.LdaModel(corpus, num_topics=num_topics, id2word=id2word) 
     lda.save(lda_model_path) 

     return lda 

我收到以下錯誤,當我運行此模塊:

> Traceback (most recent call last): 


    File "train.py", line 74, in <module> 
    main() 

    File "train.py", line 68, in main 
    dictionary = Dictionary(reviews_cursor, dictionary_path).build() 
    File "train.py", line 38, in build 
    corpora.Dictionary.save(dictionary, self.dictionary_path) 
    File "/usr/local/lib/python2.7/dist-packages/gensim/utils.py", line 288, in save 
    pickle(self, fname) 
    File "/usr/local/lib/python2.7/dist-packages/gensim/utils.py", line 666, in pickle 
    with smart_open(fname, 'wb') as fout: # 'b' for binary, needed on Windows 
    File "/usr/local/lib/python2.7/dist-packages/gensim/utils.py", line 661, in smart_open 
    return open(fname, mode) 
    IOError: [Errno 2] No such file or directory: 'models/dictionary.dict' 

任何人都可以請幫我找出這個問題?

回答

2

在保存操作過程中出現「沒有這樣的文件或目錄」時,通常意味着您指定的目錄路徑作爲輸出文件的容器不存在。在這種情況下,你已經明確地給出了它是相對路徑self.dictionary_path = "models/dictionary.dict"。保存到此路徑的錯誤大概意味着文件無法保存在「模型」中,因爲目錄「models」相對於當前工作目錄不存在。

要找出當前的工作目錄,您可以使用os.getcwd。要測試目錄是否存在,您可以使用os.path.isdir。要創建一個目錄,您可以使用os.mkdir

+0

謝謝!我只需要在當前的工作目錄中創建模型目錄,它工作:) – user3006723 2014-10-10 02:36:10

相關問題