词向量训练完成之后,并不能直接使用,还需要做进一步的处理——抽取词表中对应的词向量。并不是所有的词向量都是有用的,我们仅用到词表中的词向量,将抽取出来的词向量保存成一个新的文件,以备后续使用。
【提要】
一、这里我们要用到之前的两个文件:
vocab.txt #词表
vec.bin #词向量表
二、还要生成一个新的文件来保存抽取出来的词向量:
select_vocab.txt #抽取出的词向量
三、要保证抽取出的词向量与词表中的位置一一对应,即如果单词出现在文件中的第3行,则其对应的词向量也应该在第三行。
接下来是正文:
由于是采用gensim训练的,因此直接采用gensim来load模型,省去了很多数据预处理的操作,代码也简洁不少。
代码如下:
相关解释已经在代码中注释了,在此不作过多赘述。
至此,关于词向量的处理可以告一段落了。
代码均在:https://github.com/pkulics/teach_NLP/blob/master/2_process_data/select_vec.py
本文与之前的两篇有关词向量预处理的文章很类似,只是采用的方式不同。想了解的可以移步之前的两篇文章:
使用glove词向量
http://lichangsong.win/?post=22
https://blog.csdn.net/lics999/article/details/79937303
使用word2vec词向量
http://lichangsong.win/?post=20
https://blog.csdn.net/lics999/article/details/78696023