TF-IDFによるWord2Vec埋め込み


11

(たとえば、gensimを使用して)word2vecモデルをトレーニングするときは、単語/文のリストを指定します。しかし、たとえばTF-IDFを使用して計算された単語の重みを指定する方法はないようです。

ワードベクトルの埋め込みに関連するTF-IDFウェイトを乗算する通常の方法はありますか?あるいは、word2vecはこれらを何らかの形で有機的に利用できますか?

回答:


9

Word2Vecアルゴリズム(Skip GramおよびCBOW)は、単語の埋め込みを計算するという目標があるため、各単語を同等に扱います。文またはドキュメントの埋め込みを処理する必要がある場合、区別は重要になります。すべての単語が特定の文の意味を等しく表すわけではありません。そして、ここではさまざまな重み付け戦略が適用されています。TF-IDFはその1つであり、一部の論文によるとかなり成功しています。StackOverflowからのこの質問から

この作業では、ツイートは3種類のテキスト表現を使用してモデル化されました。1つ目は、tf-idf(用語の頻度-文書の頻度の逆数)で重み付けされたバッグオブワードモデルです(セクション2.1.1)。2番目は、すべての単語の埋め込み(文中)の単語を平均して文を表し、3番目は、すべての単語の重み付けされた単語埋め込みを平均して文を表し、単語の重みはtf-idfで与えられます(セクション2.1.2 )。


2

コーパスを使用してtfidfvectorizerをトレーニングし、次のコードを使用します。

tfidf = Tfidfvectorizer () dict(zip(tfidf.get_feature_names(), tfidf.idf_)))

これで、キーが単語で、対応する値が重みの辞書ができました。

うまくいったかどうか教えてください。


はい、そうです。ご協力いただきありがとうございます。
タンビア
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.