我最近在复现一些模型的时候,发现这些模型基本上都使用了word2vec或者是Glove等word embedding模型的pre-train的词向量来初始化,然后在此基础上进行fine tune。这些word embedding模型实现起来也不是很难,但是我的主要目的又不是去实践这些模型🥺,关键是自己实现的还不如开源的效果好,毕竟别人的代码做了很多很多的优化啦。所以,想要好的效果并且又不想花费太多时间在pre-train词向量上面的话,学习gensim就显得非常重要了。所以,这篇文章主要是记录gensim的基本使用方法,帮助大家快速的构建vocab,得到pre-train的词向量。
gensim要求的数据格式
1 | texts = [['human', 'interface', 'computer'], |
如上所示,也就是说,我们在将数据输入到gensim的模型进行训练之前,要对corpus进行分词、去除停用词等操作,总之要变成上述的格式。当然啦。如果要处理超大的文件的话,是无法一次性全部加载进入内存的,所以gensim也支持流式处理,也就是说将其变成一个python生成器就可以。如下:
1 | from gensim.models import Word2Vec |
除了上述方法外,还有一种方法,就是使用LineSentence,如下:
1 | from gensim,models.word2vec import LineSentence |
Word2Vec模型参数
1 | from gensim.models import Word2Vec |
词汇表保存与加载
1 | #这种方式可以加载后增加训练 |
目前大致能用到的就是这样,其他的等以后用到的话,再更新吧~🥰
参考文献
https://radimrehurek.com/gensim/models/word2vec.html#gensim.models.word2vec.Word2Vec