質問

私は感情分析をしようとしています。単語を単語ベクトルに変換するために、word2vecモデルを使用しています。 「文」という名前のリストにすべての文があり、次のようにこれらの文章をword2vecに渡しているとします。

model = word2vec.Word2Vec(sentences, workers=4 , min_count=40, size=300,   window=5, sample=1e-3)

私は単語ベクトルのnoobなので、私には2つの疑問があります。
1-機能の数を300に設定すると、単語ベクトルの機能が定義されます。しかし、これらの機能は何を意味しますか?このモデルの各単語が1x300のnumpyアレイで表されている場合、これらの300の機能はその単語を意味しますか?

2-上記のモデルの「サンプル」パラメーターで表されるダウンサンプリングは、実際に何をしますか?

前もって感謝します。

役に立ちましたか?

解決

1-特徴の数:ニューラルネットワークモデルに関しては、投影(非表示)層のニューロンの数を表します。投影層は分布仮説に基づいて構築されるため、各単語の数値ベクトルは、その文脈単語との関係を示します。

これらの機能は、監視されていない方法であるため、ニューラルネットワークによって学習されます。各ベクトルには、いくつかのセマンティック特性セットがあります。たとえば、古典的な例を見てみましょう。 V(King) -V(man) + V(Women) ~ V(Queen) 300-Dベクトルで表される各単語。 V(King) 特定の順序で、ベクターの王国、王国、男らしさ、人間の意味的特性があります。 V(man) 男らしさ、人間、特定の順序で働きます。したがって、いつ V(King)-V(Man) 行われている、男らしさ、人間の特性は無効になり、 V(Women) 女性らしさを持つ人間の特性が追加されるため、と非常に似たベクトルが生まれます V(Queen). 。興味深いのは、これらの特性が特定の順序でベクトルでエンコードされるため、追加などの数値計算が完全に機能するようにすることです。これは、ニューラルネットワークにおける監視されていない学習方法の性質によるものです。

2- 2つの近似アルゴリズムがあります。 Hierarchical softmaxnegative sampling. 。サンプルパラメーターが指定されると、負のサンプリングが必要です。階層的なソフトマックスの場合、各単語ベクトルのコンテキスト単語には正の出力が与えられ、語彙の他のすべての単語に負の出力が与えられます。時間の複雑さの問題は、負のサンプリングによって解決されます。ネガティブサンプリングと同様に、語彙全体ではなく、語彙のサンプルされた部分のみに負の出力が与えられ、ベクトルは前の方法よりもはるかに高速な訓練されています。

他のヒント

  1. 分布仮説によれば、単語のベクトルの個々の次元は、現実世界の単語についてあまり意味しません。個々の寸法について心配する必要があります。あなたの質問がそうである場合、私はどのように私がダイムの数を選択する必要があるか、それはあなたのデータの実験に純粋に基づいており、それは100から1000に進むことができます。Wikiテキストでトレーニングが行われる多くの実験では、300次元はほとんど最高のものを与えます結果。
  2. サンプルPARAMは、高周波を持つ単語を剪定するために使用されるパラメーターです。たとえば、「 "" is ""は "でしたが、これらのストップワードは内側の単語を予測しながらウィンドウでは考慮されず、デフォルト値は周波数が高いこれらの停止単語を識別するためにうまく機能します。
ライセンス: CC-BY-SA帰属
所属していません datascience.stackexchange
scroll top