2017-11-07 6 views
0

初めてDoc2Vecを使用しています 著者の作品を分類しようとしています。私はLabeled Sentences(段落、または指定された長さの文字列)を持つモデルを訓練しました。words =段落の単語のリスト、およびtags = authorの名前です。私の場合、私は2人の著者しか持たない。 訓練されたモデルからdocvecs属性にアクセスしようとしましたが、モデルを訓練したときの2つのタグに対応する2つの要素しか含まれていません。私は訓練にフィードした各段落のdoc2vec numpy表現を取得しようとしていますので、後でそれを訓練データとして使用できます。これどうやってするの?おかげさまで 各文書の訓練されたDoc2Vecモデルからnumpyベクトルを取得する

答えて

0

バルクトレーニングは、指定したタグのベクトルのみを作成します。 (model.docvecs['paragraph000']のように)段落ごとに大量に訓練されたベクトルを読みたい場合は、訓練中に各段落に固有のタグを付ける必要があります('paragraph000'など)。ドキュメントに他のタグを付けることもできますが、一括トレーニングのみが、提供されたタグのドキュメントベクトルを記憶しています。

トレーニング終了後、infer_vector()に提供する他のテキストのベクトルを推論することができます。もちろん、トレーニング中に使用されたのと同じ段落を入力することもできます。

+0

私は実際にそれを理解し、あなたが言ったように段落番号をタグとして使用しています。 (1著者あたり10000ベクトル)私は両方の著者のためにこれを行い、それとsvmモデル(sklearn)を訓練する。しかし、それらの数字のdocvec配列をベクトルとして使うと、恐ろしい精度を得ます。〜50%。私は73%のnltk pos_tagを持っていますので、何か間違ったことをする必要があります。 –

+0

ありがとうございました。私は私の段落にinfer_vectorを使って、バイナリ分類タスクで93.28%の精度を得ています!! ;) –

関連する問題