0

我想在 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)
4

1 回答 1

0

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

不要text像代码的第一行那样用经过训练的模型替换您的原始模型。此外,不要尝试分配到 Phrases 模型中,就像在当前循环中发生的那样,也不要通过整数访问 Phrases 模型。

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

此外,请注意LabeledSentence已替换为TaggedDocument,其tags参数应该是标签列表。如果您提供一个字符串,它会将其视为一个字符标签列表(而不是您想要的一个标签)。

于 2016-08-16T23:24:42.233 回答