Word2vec学习

翻译文档,以便之后查看

1、word2vec模型

classgensim.models.word2vec.Word2Vec(sentences=None, corpus_file=None, vector_size=100, alpha=0.025, window=5, min_count=5, max_vocab_size=None, sample=0.001, seed=1, workers=3, min_alpha=0.0001, sg=0, hs=0, negative=5, ns_exponent=0.75, cbow_mean=1, hashfxn=<built-in function hash>, epochs=5, null_word=0, trim_rule=None, sorted_vocab=1, batch_words=10000, compute_loss=False, callbacks=(), comment=None, max_final_vocab=None)

参数解释:

  • sentences(iterable of iterables, optional) 句子可以是简单的词汇列表集合

  • corpus_file (str, optional) 语料文件的路径。可以使用此参数而不是句子来提高性能,sentences和corpus_file选择其中一个写入即可

  • vector_size (int, optional)词向量的维数

  • window (int, optional) 句子中当前单词和预测单词之间的最大距离

  • min_count (int, optional) 词汇频数低于最小值上,忽略该词汇

  • workers (int, optional) 使用这些多个辅助线程来训练模型(=使用多核机器进行更快的训练)

  • sg ({0, 1}, optional) 训练算法:1 是 skip-gram,0 是 CBOW

  • hs ({0, 1}, optional) 如果是 1,使用 hierarchical softmax,如果为0,且负值为非零,则将使用负值采样

  • negative (int, optional)如果>0,将使用负采样,负的整型指定应绘制多少“噪声字”(通常在5-20之间)。如果设置为0,则不使用负采样

  • ns_exponent (float, optional)用于塑造负采样分布的指数。值为1.0时,采样频率正好成比例;值为0.0时,所有单词的采样频率相等;值为负值时,低频单词的采样频率大于高频单词的采样频率。常用的默认值0.75是由最初的Word2Vec论文选择的

  • cbow_mean ({0, 1}, optional) 如果为0,则使用上下文单词向量之和。如果1,则使用平均值,仅在使用cbow时适用

  • alpha (float, optional) 初始学习率

  • seed (int, optional) 随机数生成器的种子。每个单词的初始向量都使用word+str(seed)串联的散列作为种子

  • max_vocab_size (int, optional)在词汇构建过程中限制RAM;如果有比这更独特的词,那么删掉不常见的词。每1000万字类型需要大约1GB的RAM。设置为“无”表示无限制

  • epochs (int, optional) 语料迭代次数

  • sorted_vocab ({0, 1}, optional)如果为1,请在指定单词索引之前按降序对词汇表进行排序

2、构建词典

build_vocab(corpus_iterable=None, corpus_file=None, update=False, progress_per=10000, keep_raw_vocab=False, trim_rule=None, **kwargs)

从一系列句子中构建词汇表(可以是一个只生成一次的生成器流)

  • corpus_iterable (iterable of list of str)可以是简单的列表集合
  • corpus_file (str, optional) 语料文件的路径
  • update (bool) 如果为真,每出现新的词汇就添加到模型的字典中
    -progress_per (int, optional) 指示在显示/更新进度之前要处理的字数
  • keep_raw_vocab (bool, optional) 如果为False,则在完成缩放以释放RAM后,将删除原始词汇表
  • trim_rule (function, optional) 词汇表修剪规则,指定某些单词是否应保留在词汇表中、是否应修剪掉或使用默认值处理(如果单词计数<最小计数,则放弃)
  • **kwargs (object) 关键词参数已经传到了self.prepare_vocab

3、从词频表中构建词典

build_vocab_from_freq(word_freq, keep_raw_vocab=False, corpus_count=None, trim_rule=None, update=False)
  • word_freq (dict of (str, int))词汇和频数的映射
  • keep_raw_vocab (bool, optional)如果为False,则在完成缩放后删除原始词汇表以释放RAM
  • corpus_count (int, optional)即使没有提供语料库,此参数也可以显式设置语料库计数
  • trim_rule (function, optional) 词汇表修剪规则,指定某些单词是否应保留在词汇表中、是否应修剪掉或使用默认值处理(如果单词计数<最小计数,则放弃)
  • update (bool, optional) 如果为true,word_freq dict 中新增加的词将会被添加到模型的词典中

4、model.train

train(corpus_iterable=None, corpus_file=None, total_examples=None, total_words=None, epochs=None, start_alpha=None, end_alpha=None, word_count=0, queue_factor=2, report_delay=1.0, compute_loss=False, callbacks=(), **kwargs)

根据一系列句子更新模型的神经权重
为了支持从(初始)alpha到min_alpha的线性学习速率衰减,以及准确的进度百分比记录,必须提供total_示例(句子数)或total_单词(句子中原始单词数)。如果句子与前面为build_vocab()提供的语料库相同,那么只需使用total_examples=self.corpus_count即可。

  • corpus_iterable (iterable of list of str) 可以是简单的列表集合
  • corpus_file (str, optional) 语料文件的路径
  • total_examples (int) 句子的数目
  • total_words (int) 句子中原始(未加工)词汇的个数
  • epochs (int) 语料迭代的次数
  • start_alpha (float, optional) 初始学习率
  • end_alpha (float, optional) 最终的学习率
  • word_count (int, optional) 已经训练的词汇数目
  • queue_factor (int, optional) 队列大小的乘数(工作数量*队列系数)
  • callbacks (iterable of CallbackAny2Vec, optional) 在培训期间特定阶段执行的回调序列

5、词向量的用途

点击查看详情
下列语句可以计算两个文本的相似度

similarity = word_vectors.n_similarity(['sushi', 'shop'], ['japanese', 'restaurant'])
print(f"{similarity:.4f}")#保留四位有效数字??
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值