当前位置:   article > 正文

word2vec实现训练自己的词向量及其参数详解_word2vec参数设置

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])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

参数详解

  • sentences:训练数据,一个包含多个句子的列表,每个句子是一个包含多个单词的列表。

  • vector_size:词向量的维度,即每个单词表示为一个多少维的向量。较大的值通常会导致更丰富的语义表示,但也需要更多的计算资源。一般来说,可以尝试使用100到300之间的值。

  • window:窗口大小,用于指定当前单词与预测单词之间的最大距离。窗口大小决定了模型将考虑多少上下文信息。较大的窗口大小可以捕捉更远的上下文关系,但可能导致模型更加稀疏。通常,窗口大小的选择取决于训练数据的特性。

  • min_count:最小词频,用于指定在训练过程中忽略频率低于此值的单词。较小的值可以过滤掉噪声单词,但也可能会过滤掉一些有用的信息。通常建议将其设置为一个合理的值,比如1或5。

  • workers:用于训练的线程数。可以利用多线程来加速训练过程。一般来说,设置为CPU核心数的值是一个合理的选择。

  • sg:模型的训练算法选择。默认值为0,表示使用CBOW(Continuous Bag of Words)算法;设为1表示使用Skip-gram算法。Skip-gram算法通常对罕见单词效果更好,而CBOW算法对常见单词和整体训练速度更快。

  • hs:层次softmax(Hierarchical Softmax)设置。默认值为0,表示使用负采样(negative sampling)。当设置为1时,模型将使用层次softmax来加速训练过程,特别适用于大型语料库。

  • negative:负采样(Negative Sampling)的数量。默认值为5-20。负采样用于近似训练中的Softmax损失函数,减少计算复杂度。较大的值可以提高训练速度,但也可能会导致模型性能下降。

  • alpha:学习率的初始值。默认值为0.025。学习率控制模型在每个训练样本上进行权重更新的速度。较大的学习率可以加快模型收敛速度,但如果设置得太大,模型可能会发散。在训练过程中,学习率会逐渐减小。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/357362
推荐阅读
相关标签
  

闽ICP备14008679号