Python之word2vec用法说明
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_f
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)
#循环遍历生成序列
参数说明:
- sentence:语料库,也即将用到的数据集的内容。
- sg:训练算法:1表示skip-gram,否则CBOW,默认sg=0为CBOW算法。
skip-gram (训练速度慢,对罕见字有效),CBOW(训练速度快)。一般选择Skip-gram模型
- vector_size:词向量的维度,默认为100.
这个维度的取值与我们的语料的大小相关,比如小于100M的文本语料,则使用默认值一般就可以了。如果是超大的语料,建议增大维度。值太小会导致词映射因为冲突而影响结果,值太大则会耗内存并使算法计算变慢,一般值取为100到200之间,不过见的比较多的也有300维的。
- min_count:忽略所有频率低于此值的单词。默认值为5。
在不同大小的语料集中,对于基准词频的需求也是不一样的。譬如在较大的语料集中,希望忽略那些只出现过一两次的单词,这里就可以通过设置min_count参数进行控制。一般而言,合理的参数值会设置在0~100之间。
- workers: 线程数
表示训练词向量时使用的线程数,默认是当前运行机器的处理器核数
- iter—epochs 迭代次数
影响训练次数,语料不够的情况下,可以调大迭代次数。spark 版本有bug,迭代次数超过1,训练得到的词向量维度值超大
- windows: 窗口大小
当前词与预测词的最大距离。
word2vec.txt文件里面会生成特征所对应的数字序列,遍历语料库,替换为数字序列即可。
注意,所有序列要进行长度的归一化,否则会报错,报错如下:
Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray).
更多推荐
所有评论(0)