gensim版本很重要,和其他安装依赖包有关系,而且进行了修改和改进。
通过一下命令查看版本

pip list | grep gensim

在这里插入图片描述

#导入模块
from gensim.models import Word2Vec
#模型生成
model = Word2Vec(sentence,vector_size=100, min_count=1,sg=1)
#模型保存
model.wv.save_word2vec_format('word2vec.txt',binary=False) 
#循环遍历生成序列

参数说明:

  1. sentence:语料库,也即将用到的数据集的内容。
  2. sg:训练算法:1表示skip-gram,否则CBOW,默认sg=0为CBOW算法。

skip-gram (训练速度慢,对罕见字有效),CBOW(训练速度快)。一般选择Skip-gram模型

  1. vector_size:词向量的维度,默认为100.

这个维度的取值与我们的语料的大小相关,比如小于100M的文本语料,则使用默认值一般就可以了。如果是超大的语料,建议增大维度。值太小会导致词映射因为冲突而影响结果,值太大则会耗内存并使算法计算变慢,一般值取为100到200之间,不过见的比较多的也有300维的。

  1. min_count:忽略所有频率低于此值的单词。默认值为5。

在不同大小的语料集中,对于基准词频的需求也是不一样的。譬如在较大的语料集中,希望忽略那些只出现过一两次的单词,这里就可以通过设置min_count参数进行控制。一般而言,合理的参数值会设置在0~100之间。

  1. workers: 线程数

表示训练词向量时使用的线程数,默认是当前运行机器的处理器核数

  1. iter—epochs 迭代次数

影响训练次数,语料不够的情况下,可以调大迭代次数。spark 版本有bug,迭代次数超过1,训练得到的词向量维度值超大

  1. windows: 窗口大小

当前词与预测词的最大距离。

word2vec.txt文件里面会生成特征所对应的数字序列,遍历语料库,替换为数字序列即可。

注意,所有序列要进行长度的归一化,否则会报错,报错如下:

Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray).
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐