Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Doc2Vec模型中的KeyError,即使在训练期间最小计数设置为1_Python_Gensim_Word2vec - Fatal编程技术网

Python Doc2Vec模型中的KeyError,即使在训练期间最小计数设置为1

Python Doc2Vec模型中的KeyError,即使在训练期间最小计数设置为1,python,gensim,word2vec,Python,Gensim,Word2vec,我正在使用doc2vec,它拥有大约100万个标题的语料库。为了训练语料库,我使用以下代码: model = gensim.models.Doc2Vec(min_count=1, window=10, size=300, workers=4) model.build_vocab(corpus) for epoch in range(10): model.train(corpus) 一切似乎都训练得很好,我能用标题推断出一个向量。最相似 然而,当我尝试使用向量时,我遇到了一个问题。似乎最

我正在使用doc2vec,它拥有大约100万个标题的语料库。为了训练语料库,我使用以下代码:

model = gensim.models.Doc2Vec(min_count=1, window=10, size=300, workers=4)
model.build_vocab(corpus)
for epoch in range(10):
    model.train(corpus)
一切似乎都训练得很好,我能用标题推断出一个向量。最相似

然而,当我尝试使用向量时,我遇到了一个问题。似乎最终模型中缺少了一些文档!即:

model.docvecs['SENT_157000']
KeyError:“已发送\u 157000”


我查看了gensim论坛和stackoverflow,我能找到的唯一建议是确保最小计数=1。我这样做了,但我仍然有这个问题。

gensim
Doc2Vec
输入到
Doc2Vec
应该是
LabeledSentence
对象的迭代器

您的
语料库
变量需要按如下方式构造:

class LabeledLineSentence(object):
    def __init__(self, filename):
        self.filename = filename

    def __iter__(self):
        for uid, line in enumerate(open(self.filename)):
            yield LabeledSentence(words=line.split(), labels=['SENT_%s' % uid])


corpus = LabeledLineSentence(filename)

model.train(corpus)