2017-04-21 4 views
1

私はDoc2Vecタグを自分の文書のユニークな識別子として使用しています。各文書は異なるタグを持ち、意味の意味はありません。タグを使用して特定のドキュメントを探しているので、それらの間の類似性を計算できます。Doc2Vecはタグの表現を学習しますか?

タグは私のモデルの結果に影響しますか?

このtutorialでは、パラメータtrain_lbls=falseについて言及していますが、これをfalseに設定すると、ラベル(タグ)について表現された表現がありません。

このチュートリアルは幾分書かれており、パラメータはもはや存在しないと思いますが、Doc2Vecはどのようにタグを処理しますか?

答えて

4

gensimのDoc2Vecの場合、テキストの例は、TaggedDocumentクラスのようなオブジェクトでなければなりません(wordsおよびtagsのプロパティを使用)。 tagsプロパティは、対応するテキストから学習されるdoc-vectorsのキーとして機能する 'tags'のリストでなければなりません。

古典/元のケースでは、各ドキュメントには1つのタグがあります。基本的にその1つのドキュメントの固有のIDです。 (タグは文字列にすることができますが、非常に大きなコーパスに対しては、スキップされた値を持たずにゼロから始まるプレーンなPython intであるタグを使用する場合、Doc2Vecのメモリ使用量はやや少なくなります)。

タグは、学習後の学習ベクトルを上げる。あなたは、単一のタグ'mars'で訓練中に文書を持っていた場合は、ルックアップしたい学んだベクトルをと:

model.docvecs['mars'] 

あなたがmodel.docvecs.most_similar['mars']呼び出しを行うならば、結果として、そのタグキーによって報告されますよく

タグは、doc-ベクトルコレクションにだけ鍵である - 彼らは何の意味論的な意味を持たず、文字列がテキスト中の単語のトークンから繰り返されても、このタグのキーとの間には必要に応じて関係ありませんワード。

つまり、1つのIDタグが「mars」であるドキュメントがある場合、そのキー(model.docvecs['mars'])を介してアクセスされた学習済みdoc-vectorと、同じ文字列でアクセスされた学習済みワードベクトルキー(model.wv['mars']) - 別々のコレクションから来ています。

関連する問題