如何使用doc2vec短语?

时间:2016-08-16 06:53:20

标签: python nlp gensim phrases doc2vec

我想在doc2vec中使用短语,我使用gensim.phrases。在doc2vec中,我们需要标记文档来训练模型,我无法标记短语。我怎么能这样做?

这是我的代码

text = phrases.Phrases(text)
for i in range(len(text)):
    string1 = "SENT_" + str(i)

    sentence = doc2vec.LabeledSentence(tags=string1, words=text[i])
    text[i]=sentence

print "Training model..."
model = Doc2Vec(text, workers=num_workers, \
            size=num_features, min_count = min_word_count, \
            window = context, sample = downsampling)

1 个答案:

答案 0 :(得分:0)

调用Phrases()训练短语创建模型。您稍后在文本上使用该模型来获取短语组合文本。

请勿使用经过培训的模型替换原始text,如代码的第一行所示。另外,不要尝试分配到Phrases模型中,就像在当前循环中一样,也不要用整数访问Phrases模型。

gensim docs for the Phrases class有正确使用Phrases类的示例;如果你遵循这种模式,你会做得很好。

此外,请注意LabeledSentence已被TaggedDocument取代,其tags参数应为标记列表。如果你提供一个字符串,它会看到它作为一个字符列表的标签(而不是你想要的一个标签)。