如何将 doc2vec 与短语一起使用?
How to use doc2vec with phrases?
我想在 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)
Phrases()
的调用训练了一个短语创建模型。稍后您可以在文本上使用该模型来取回短语组合文本。
不要像代码的第一行那样用经过训练的模型替换原来的 text
。另外,不要像当前循环中那样尝试分配到 Phrases 模型,也不要通过整数访问 Phrases 模型。
gensim docs for the Phrases class有正确使用Phrases
的例子class;如果你遵循这种模式,你会做得很好。
此外,请注意 LabeledSentence
已被 TaggedDocument
取代,其 tags
参数应为标签列表。如果您提供一个字符串,它会将其视为一个单字符标签列表(而不是您想要的一个标签)。
我想在 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)
Phrases()
的调用训练了一个短语创建模型。稍后您可以在文本上使用该模型来取回短语组合文本。
不要像代码的第一行那样用经过训练的模型替换原来的 text
。另外,不要像当前循环中那样尝试分配到 Phrases 模型,也不要通过整数访问 Phrases 模型。
gensim docs for the Phrases class有正确使用Phrases
的例子class;如果你遵循这种模式,你会做得很好。
此外,请注意 LabeledSentence
已被 TaggedDocument
取代,其 tags
参数应为标签列表。如果您提供一个字符串,它会将其视为一个单字符标签列表(而不是您想要的一个标签)。