word2vec は、独自の単語ベクトルのトレーニングとそのパラメーターの詳細な説明を実装します。

コード

from gensim.models import Word2Vec

# 准备训练数据
sentences = [['I', 'love', 'coding'],
             ['Python', 'is', 'great'],
             ['Machine', 'learning', 'is', 'fascinating']]

# 将数据传入Word2Vec中,训练Word2Vec模型
model = Word2Vec(sentences, vector_size=10, window=5, min_count=1, workers=4)

# 获取词向量
word_vectors = model.wv

# 获取单个单词的词向量,比如'Python'
python_vector = word_vectors['Python']
print("词向量维度:", len(python_vector))
print("词向量Python表示:", python_vector)

#获取训练后的词表
print("模型训练后的词表:",word_vectors.index_to_key)

#获取模型训练后的每个词对应的下标
print("词表中每个词及其位置:",word_vectors.key_to_index)

# 获取每个词和其对应的词向量
print("每个词和其对应的词向量:")
for word, index in word_vectors.key_to_index.items():
    print(word,":" ,word_vectors.vectors[index])

パラメータの詳しい説明

  • 文: トレーニング データ、複数の文を含むリスト。各文は複数の単語を含むリストです。

  • Vector_size: 単語ベクトルの次元、つまり各単語がベクトルとして表現される次元数。一般に、値が大きいほど意味表現が豊富になりますが、より多くの計算リソースも必要になります。一般に、100 ~ 300 の値を使用してみてください。

  • window: ウィンドウ サイズ。現在の単語と予測された単語の間の最大距離を指定するために使用されます。ウィンドウ サイズによって、モデルが考慮するコンテキスト情報の量が決まります。ウィンドウ サイズを大きくすると、より多くのコンテキストをキャプチャできますが、モデルが希薄になる可能性があります。通常、ウィンドウ サイズの選択はトレーニング データの特性によって異なります。

  • min_count: 単語の最小頻度。この値よりも頻度が低い単語がトレーニング プロセス中に無視されることを指定するために使用されます。値を小さくすると、ノイズの多い単語が除外されますが、一部の有用な情報も除外される可能性があります。通常、これを 1 や 5 などの適切な値に設定することをお勧めします。

  • ワーカー: トレーニングに使用されるスレッドの数。マルチスレッドを利用すると、トレーニング プロセスを高速化できます。一般に、値を CPU コアの数に設定するのは合理的な選択です。

  • sg: モデルトレーニングアルゴリズムの選択。デフォルト値は 0 で、これは CBOW (Continuous Bag of Words) アルゴリズムを使用することを意味し、1 に設定するとスキップグラム アルゴリズムを使用することを意味します。一般に、Skip-gram アルゴリズムは珍しい単語に対してより効果的に機能しますが、CBOW アルゴリズムは一般的な単語や全体に対してより高速にトレーニングされます。

  • hs: 階層的な Softmax 設定。デフォルト値は 0 で、負のサンプリングが使用されることを意味します。1 に設定すると、モデルは階層ソフトマックスを使用してトレーニング プロセスを高速化し、特に大規模なコーパスに適しています。

  • negative: ネガティブ サンプリングの数 (Negative Sampling)。デフォルト値は 5 ~ 20 です。ネガティブ サンプリングは、トレーニングで Softmax 損失関数を近似し、計算の複雑さを軽減するために使用されます。値を大きくするとトレーニング速度が向上しますが、モデルのパフォーマンスが低下する可能性もあります。

  • alpha: 学習率の初期値。デフォルト値は 0.025 です。学習率は、モデルが各トレーニング サンプルの重みを更新する速度を制御します。学習率を大きくするとモデルの収束を早めることができますが、設定が大きすぎるとモデルが発散する可能性があります。トレーニングプロセス中、学習率は徐々に低下します。

おすすめ

転載: blog.csdn.net/David_house/article/details/131008716