word2vec を使用して、大きなドキュメントからトークンのリストのベクトルを生成しました。文が与えられた場合、文のトークンのベクトルから文のベクトルを取得することは可能ですか?
9 に答える
文ベクトルを取得するには、さまざまな方法があります。
- Doc2Vec : Doc2Vec を使用してデータセットをトレーニングし、文ベクトルを使用できます。
- Word2Vec ベクトルの平均: 文内のすべての単語ベクトルの平均を取ることができます。この平均ベクトルは文ベクトルを表します。
- TF-IDF を使用した Word2Vec ベクトルの平均: これは、私が推奨する最良のアプローチの 1 つです。単語ベクトルを取得し、それに TF-IDF スコアを掛けるだけです。平均を取るだけで、文のベクトルを表すことができます。
文のベクトルを取得するには、いくつかの方法があります。それぞれのアプローチには利点と欠点があります。どちらを選択するかは、ベクターで実行するタスクによって異なります。
まず、word2vec からのベクトルを単純に平均化できます。Le と Mikolovによると、このアプローチは、「標準のバッグオブワード モデルと同じように単語の順序が失われ」、「多くの洗練された言語現象を認識できないため、感情分析タスクのパフォーマンスが低下します。たとえば皮肉」。一方、ケンターらによると。2016、「テキスト内のすべての単語の単語埋め込みを単純に平均化することは、短いテキストの類似性タスクなど、多数のタスクにわたって強力なベースラインまたは機能であることが証明されています」. バリアントは、単語ベクトルを TF-IDF で重み付けして、最も一般的な単語の影響を減らすことです。
A more sophisticated approach developed by Socher et al. is to combine word vectors in an order given by a parse tree of a sentence, using matrix-vector operations. This method works for sentences sentiment analysis, because it depends on parsing.
可能ですが、word2vec からではありません。文 (さらには段落や文書) のより高レベルの表現を取得するための単語ベクトルの構成は、非常に活発な研究トピックです。これを行う最善の解決策は 1 つではありません。これらのベクトルを適用するタスクによって異なります。連結、単純な合計、ポイントごとの乗算、畳み込みなどを試すことができます。これについては、学ぶことができるいくつかの出版物がありますが、最終的には、実験して自分に最適なものを見つける必要があります.
私は次のことから良い結果を得ました:
- 単語ベクトルを合計します (tf-idf 重み付き)。これは語順を無視しますが、多くのアプリケーションでは十分です (特に短いドキュメントの場合)。
- ファストセンド
Google の Universal Sentence Encoder 埋め込みは、この問題に対する最新のソリューションです。Word2vec は使用しませんが、競合するソリューションになります。
TFHubと Keras のウォークスルーを次に示します。