Python::IOError:[Errno 2]没有这样的文件或目录:';模型/词典.dict';

Python::IOError:[Errno 2]没有这样的文件或目录:';模型/词典.dict';,python,gensim,Python,Gensim,我使用gensim包在python中进行主题建模 我正在尝试使用gensim来训练主题模型。下面是train.py模块: class Corpus(object): def __init__(self, cursor, reviews_dictionary, corpus_path): self.cursor = cursor self.reviews_dictionary = reviews_dictionary self.corpus_

我使用gensim包在python中进行主题建模

我正在尝试使用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'
>回溯(最近一次呼叫最后一次):
文件“train.py”,第74行,在
main()
文件“train.py”,第68行,在main中
dictionary=dictionary(查看\u光标,dictionary\u路径).build()
文件“train.py”,第38行,内部版本
corpora.Dictionary.save(Dictionary,self.Dictionary\u路径)
文件“/usr/local/lib/python2.7/dist-packages/gensim/utils.py”,第288行,保存
pickle(self,fname)
pickle中的文件“/usr/local/lib/python2.7/dist packages/gensim/utils.py”,第666行
使用smart_open(fname,'wb')作为fout:#'b'表示二进制文件,Windows上需要
文件“/usr/local/lib/python2.7/dist-packages/gensim/utils.py”,第661行,智能打开
返回打开(fname,模式)
IOError:[Errno 2]没有这样的文件或目录:“models/dictionary.dict”
有人能帮我解决这个问题吗?

如果在保存操作中出现“没有这样的文件或目录”,通常意味着您指定为输出文件容器的目录路径不存在。在本例中,您已经清楚地给出了它
self.dictionary\u path=“models/dictionary.dict”
,这是一个相对路径。保存到此路径时出错可能意味着文件无法保存在“models”中,因为相对于当前工作目录,“models”目录不存在


要查找当前工作目录,可以使用
os.getcwd
。要测试目录是否存在,可以使用
os.path.isdir
。要创建目录,您可以使用
os.mkdir

谢谢!我只需要在当前工作目录中创建models目录,它就工作了:)