当前位置: 首页 > news >正文

gensim.models.word2vec() 参数详解

1. Word2vec简介

  Word2vec是一个用来产生词向量的模型。是一个将单词转换成向量形式的工具。 通过转换,可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表示文本语义上的相似度。

2.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, shrink_windows=True)
参数说明
sentences可以是一个list,对于大语料集,建议使用BrownCorpus,Text8Corpus或lineSentence构建。
vector_sizeword向量的维度,默认为100。大的size需要更多的训练数据,但是效果会更好。推荐值为几十到几百。
alpha学习率
window表示当前词与预测词在一个句子中的最大距离是多少。
min_count可以对字典做截断。词频少于min_count次数的单词会被丢弃掉,默认值为5。
max_vocab_size设置词向量构建期间的RAM限制。如果所有独立单词个数超过这个,则就消除掉其中最不频繁的一个。每一千万个单词需要大约1GB的RAM。设置成None则没有限制。
sample高频词汇的随机降采样的配置阈值,默认为1e-3,范围是(0,1e-5)
seed用于随机数发生器。与初始化词向量有关。
workers参数控制训练的并行数。
sg用于设置训练算法,默认为0,对应CBOW算法;sg=1则采用skip-gram算法。
hs如果为1则会采用hierarchica·softmax技巧。如果设置为0(default),则negative sampling会被使用。
negative如果>0,则会采用negative samping,用于设置多少个noise words。
cbow_mean如果为0,则采用上下文词向量的和,如果为1(default)则采用均值。只有使用CBOW的时候才起作用。
hashfxnhash函数来初始化权重。默认使用python的hash函数。
epochs迭代次数,默认为5。
trim_rule用于设置词汇表的整理规则,指定那些单词要留下,哪些要被删除。可以设置为None(min_count会被使用)或者一个接受()并返回RULE_DISCARD,utils。RULE_KEEP或者utils。RULE_DEFAULT的函数。
sorted_vocab如果为1(default),则在分配word index 的时候会先对单词基于频率降序排序。
batch_words每一批的传递给线程的单词的数量,默认为10000
min_alpha随着训练的进行,学习率线性下降到min_alpha

3.案例实现

gensim库提供了一个word2vec的实现,我们使用几个API就可以方便地完成word2vec

from gensim.models import Word2Vec
import redocuments = ["The cat sat on the mat.", "I love green eggs and ham."]
sentences = []
# 去标点符号
stop = '[’!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~]+'
for doc in documents:doc = re.sub(stop, '', doc)sentences.append(doc.split())  model = Word2Vec(sentences, vector_size=5, window=1, min_count=1, workers=4, sg=1)
# vector_size:词向量的维度 window:窗口的大小,sg=1使用Skip-Gram,否则使用CBOW
print(model.wv['cat'])
# [-0.16315837  0.08991595 -0.08274154  0.0164907   0.16997238]
http://www.lryc.cn/news/59875.html

相关文章:

  • 光栅和矢量图像处理SDK:Graphics Mill 11.7Crack
  • 阿里云的客服 锻炼你心性的 一种方式 !!!
  • Linux常用的网络命令有哪些?快速入门!
  • PMP认证价值在哪?这个证书有什么用?
  • 一条更新语句的执行流程又是怎样的呢?
  • promise异步编程指南
  • 20230411----重返学习-网易云音乐首页案例-git远程仓库
  • Ansys Zemax | 模拟 AR 系统中的全息光波导:第二部分
  • 常用Git命令
  • 新手程序员被职场PUA的时候正确的化解姿势
  • LINUX_kali学习笔记
  • 第十天面试实战篇
  • YML是一种数据存储格式
  • 笔记:Java关于轻量级锁与重量级锁之间的问答
  • 有哪些通过PMP认证考试的心得值得分享?
  • 【unity learn】【Ruby 2D】角色发射飞弹
  • C++模板基础(九)
  • 【剑指 Offer】(1)
  • 每日一题 leetcode1026 2023-4-18
  • 【Python_Scrapy学习笔记(十二)】基于Scrapy框架实现POST请求爬虫
  • 《花雕学AI》02:人工智能挺麻利,十分钟就为我写了一篇长长的故事
  • 做程序员累了想要转行?我想给大家分享一下看法
  • 如果你想从事人工智能职业,学习Python吧
  • 百模大战,谁是下一个ChatGPT?
  • Revit中怎么绘制多面坡度的屋顶及生成墙
  • 【jvm系列-07】深入理解执行引擎,解释器、JIT即时编译器
  • 【GCU体验】基于PaddlePaddle + GCU跑通模型并测试GCU性能
  • 解析hash(散列)数据结构
  • 《2023金融科技·校园招聘白皮书》新鲜出炉|牛客独家
  • 文明的标志:书写系统、修建城市、使用金属器