14.2.word2vec参数

  • sentences (iterable of iterables, optional):可迭代的sentences可以只是token的列表,但是对于较大的语料库,考虑一个可以直接从磁盘/网络生成sentence的迭代器。 参考在 word2vec 模块中的 BrownCorpusText8CorpusLineSentence类中的例子。参考 tutorial on data streaming in Python。 如果你不提供sentences参数,模型就不会被初始化。如果你打算使用其他方式初始化模型,可以不提供参数。
  • corpus_file (str, optional): LineSentence 格式的 corpus文件路径。可以使用这个参数代替sentences 参数来加速训练。
  • size (int, optional):词向量的维度数。维度太小会无法有效表达词与词的关系,维度太大会使关系太稀疏而难以找出规则。
  • window (int, optional):句子中当前单词和预测单词之间的最大距离。CBOW下决定Word2Vec一次取多少词来预测中间词(Skip-gram的状况是反过来的)
  • min_count (int, optional):忽略所有低于这个频率的单词。
  • workers (int, optional):训练使用的线程数。
  • sg ({0, 1}, optional):选择训练算法:1代表skip-gram,否则为 CBOW。
  • hs ({0, 1}, optional):hs = 0时采用Negative Sampling,hs = 1时采用 Hierarchical Softmax。
  • negative (int, optional):如果大于0,将使用Negative Sampling,整数值指定应该绘制多少“噪音字”(通常在5-20之间)。 如果为0,则不使用Negative Sampling。5~20适合小数据,2~5适合大数据。
  • ns_exponent (float, optional):exponent用来形成negative sampling的分布.A value of 1.0 samples exactly in proportion to the frequencies, 0.0 samples all words equally, while a negative value samples low-frequency words more than high-frequency words. 默认值0.75是由原始Word2Vec论文选择的。而最近的论文 指出在推荐系统的应用中,设置其他值也许会得到更好的性能。
  • cbow_mean ({0, 1}, optional):cbow_mean=0:使用上下文单词向量之和。cbow_mean=1:使用平均值。只有当使用 cbow 时才适用。
  • alpha (float, optional):初始学习率。
  • min_alpha (float, optional) –随着训练的进行,学习率将线性下降到 min alpha。
  • seed (int, optional):Seed for the random number generator. Initial vectors for each word are seeded with a hash of the concatenation of word + str(seed). Note that for a fully deterministically-reproducible run, you must also limit the model to a single worker thread (workers=1), to eliminate ordering jitter from OS thread scheduling. (In Python 3, reproducibility between interpreter launches also requires use of the PYTHONHASHSEED environment variable to control hash randomization).
  • max_vocab_size (int, optional):在词汇表构建过程中限制内存的使用,Word2Vec的词典容纳上限。如果词库的单词数比max_vocab_size大,那么出现次数最低的词会优先被剔除。每1000万个单词需要大约1gb 的内存。设置为None,则没有限制。
  • max_final_vocab (int, optional):通过自动选择一个匹配的min_count来限制vocab的大小。如果指定的min_count大于计算的min_count,则使用指定的min_count。如果不需要则设置为None。
  • sample (float, optional):The threshold for configuring which higher-frequency words are randomly downsampled, useful range is (0, 1e-5).
  • hashfxn (function, optional):用Hash function来随机初始化权重,以增加训练的重复性。
  • iter (int, optional):语料库上的迭代次数(epochs)。
  • trim_rule (function, optional):词汇修剪规则,指定哪些单词应保留在词汇中、被修剪掉还是使用默认值处理(如果词频计数<min_count则丢弃)。如果为None,min_count参数将被使用。如果给出规则,则该规则仅用于在build_vocab()期间修剪词汇,而不会存储为模型的一部分。
  • sorted_vocab ({0, 1}, optional):sorted_vocab=1,在给词库的单词编号(给word指定index)之前先按词频降序排列单词。请参阅sort_vocab()
  • batch_words (int, optional):Target size (in words) for batches of examples passed to worker threads (and thus cython routines).(Larger batches will be passed if individual texts are longer than 10000 words, but the standard cython code truncates to that maximum.)
  • compute_loss (bool, optional):If True, computes and stores loss value which can be retrieved using get_latest_training_loss().
  • callbacks (iterable of CallbackAny2Vec, optional):Sequence of callbacks to be executed at specific stages during training.