gensim Word2Vec的参数说明

本文详细介绍了gensim库中Word2Vec模型的各项训练参数及其含义,包括算法选择、特征向量维度、窗口大小等,并提供了一个具体的训练示例。

用gensim函数库训练Word2Vec模型有很多配置参数。这里对gensim文档的Word2Vec函数的参数说明进行翻译,以便不时之需。

class gensim.models.word2vec.Word2Vec(sentences=None,size=100,alpha=0.025,window=5,min_count=5

max_vocab_size=Nonesample=0.001,seed=1workers=3,min_alpha=0.0001sg=0hs=0negative=5

cbow_mean=1,hashfxn=<built-in function hash>,iter=5,null_word=0,

trim_rule=Nonesorted_vocab=1batch_words=10000)

参数:

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

·  batch_words:每一批的传递给线程的单词的数量,默认为10000

例如

#combined jibe分词后 eg: [['xx','yy'],[],[],...]
def word2vec_train(combined):

    model = Word2Vec(size=vocab_dim,
                     min_count=n_exposures,
                     window=window_size,
                     workers=cpu_count,
                     iter=n_iterations)
    model.build_vocab(combined)
    model.train(combined,total_examples=model.corpus_count,epochs=model.iter)
    model.save('Word2vec_model.pkl')




### GensimWord2Vec 的使用教程 #### 安装 Gensim 库 为了使用 `gensim` 和其内置的 `Word2Vec` 模型,需先安装该库。可以通过 pip 工具轻松完成这一操作。 ```bash pip install gensim ``` #### 导入必要的模块并准备数据集 在开始之前,确保导入了所需的 Python 模块,并准备好要训练的数据集。通常情况下,输入应为分词后的句子列表形式。 ```python from gensim.models import Word2Vec import logging logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO) # 假设 processed_sentences 是已经预处理过的句子集合 processed_sentences = [["cat", "say", "meow"], ["dog", "bark"]] ``` #### 创建和训练模型 创建一个新的 `Word2Vec` 实例时,可以指定多个超参数以调整模型的行为。下面是一些常用的参数及其意义: - **sentences**: 输入语料,即由词语组成的句子序列。 - **vector_size**: 特征向量维度大小,默认值为100维[^1]。 - **window**: 上下文窗口宽度,在此范围内查找目标词周围的上下文词汇。 - **min_count**: 忽略总频率低于这个阈值的所有单词;默认忽略只出现一次的单词。 - **workers**: 并行化训练使用的线程数;如果机器有多核CPU,则可设置较大数值加快速度[^3]。 ```python model = Word2Vec( sentences=processed_sentences, vector_size=100, window=5, min_count=1, workers=4 ) ``` #### 查看与保存模型结果 一旦完成了模型训练过程,就可以利用 `.wv` 属性获取特定单词对应的嵌入表示。此外,还可以调用其他实用的方法如计算两个词之间的相似度等。 ```python print(model.wv['cat']) # 打印 'cat' 这个词的向量表示 similarity_score = model.wv.similarity('cat', 'dog') # 计算两者的余弦相似度得分 print(f"Cosine similarity between cat and dog is {similarity_score:.4f}") ``` 对于后续的应用场景来说,可能还需要将训练得到的结果持久化存储起来以便重复利用。这可通过简单地调用 save 方法实现。 ```python model.save("word2vec.model") # 将整个模型保存至文件 loaded_model = Word2Vec.load("word2vec.model") # 加载已有的模型实例 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_yuki_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值