gensim 0.11.1バージョンのDoc2Vecから、表示されていないドキュメントと表示されているドキュメントのドキュメントベクトルを取得する方法はありますか?
たとえば、モデルを10万でトレーニングしたとします。これらの1000のドキュメントのドキュメントベクトルを取得できますか?
同じ語彙から構成された目に見えないドキュメントのドキュメントベクトルを取得する方法はありますか?
最初の箇条書きについては、gensim0.11.1で実行できます。
from gensim.models import Doc2Vec
from gensim.models.doc2vec import LabeledSentence
documents = []
documents.append( LabeledSentence(words=[u'some', u'words', u'here'], labels=[u'SENT_1']) )
documents.append( LabeledSentence(words=[u'some', u'people', u'words', u'like'], labels=[u'SENT_2']) )
documents.append( LabeledSentence(words=[u'people', u'like', u'words'], labels=[u'SENT_3']) )
model = Doc2Vec(size=10, window=8, min_count=0, workers=4)
model.build_vocab(documents)
model.train(documents)
print(model[u'SENT_3'])
ここで、SENT_3は既知の文です。
2番目の箇条書きについては、gensim0.11.1では実行できません。0.12.4に更新する必要があります。この最新バージョンには、見えないドキュメントのベクトルを生成できるinfer_vector関数があります。
documents = []
documents.append( LabeledSentence([u'some', u'words', u'here'], [u'SENT_1']) )
documents.append( LabeledSentence([u'some', u'people', u'words', u'like'], [u'SENT_2']) )
documents.append( LabeledSentence([u'people', u'like', u'words'], [u'SENT_3']) )
model = Doc2Vec(size=10, window=8, min_count=0, workers=4)
model.build_vocab(documents)
model.train(documents)
print(model.docvecs[u'SENT_3']) # generate a vector for a known sentence
print(model.infer_vector([u'people', u'like', u'words'])) # generate a vector for an unseen sentence
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加