2014-10-09 4 views
-1

파이썬에서 주제 모델링을 위해 gensim 패키지를 사용하고 있습니다.Python :: IOError : [Errno 2] 해당 파일이나 디렉토리가 없습니다. 'models/dictionary.dict'

gensim을 사용하여 주제 모델을 학습하려고합니다.

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' 

사람이 나에게 문제를 알아내는 데 도움이 시겠어요을 아래 train.py 모듈은 무엇입니까?

답변

2

저장 작업 중에 "No such file or directory"가 발생하면 일반적으로 출력 파일의 컨테이너로 지정한 디렉토리 경로가 존재하지 않습니다. 이 경우 상대 경로 인 명확하게 self.dictionary_path = "models/dictionary.dict"을 부여했습니다. 이 경로에 저장하는 오류는 "models"디렉토리가 현재 작업 디렉토리와 관련하여 존재하지 않기 때문에 "models"내에 파일을 저장할 수 없다는 것을 의미합니다.

현재 작업 디렉토리를 찾으려면 os.getcwd을 사용할 수 있습니다. 디렉터리가 존재하는지 테스트하려면 os.path.isdir을 사용할 수 있습니다. 디렉토리를 만들려면 os.mkdir을 사용할 수 있습니다.

+0

감사합니다! 난 그냥 현재 작업 디렉토리에 모델 디렉터리를 만들어야했고 그것은 작동 :) – user3006723