KeyedVectors python 从词向量文件中快速生成{词:词向量}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangfengling1023/article/details/81705109

在做NLP的一些深度学习任务中,需要从提前训练好的词向量中读取词的向量表示,若自己写代码读取文件,代码相对长一些

可以利用KeyedVectors 进行向量的读取

文件的内容如下:

代码如下所示:

#coding:utf-8
import gensim
from gensim.models import KeyedVectors

word2vec_model_path = './data/data_vec.txt' ##词向量文件的位置
word2vec_model = KeyedVectors.load_word2vec_format(word2vec_model_path, binary=False,unicode_errors='ignore')
word2vec_dict = {}
for word, vector in zip(word2vec_model.vocab, word2vec_model.vectors):
    if '.bin' not in word2vec_model_path:
        word2vec_dict[word] = vector
    else:
        word2vec_dict[word] = vector /np.linalg.norm(vector) 
for each in word2vec_dict:
    print (each,word2vec_dict[each])

运行的结果如下所示:

如果不用KeyedVectors,则需要文件的读取,以及一行一行的读取文件的内容,分别截取出词以及词所对应的向量,这样做起来比较麻烦,搞不好还会使后续的代码出现编码问题,尤其在python2编码问题会经常出现

猜你喜欢

转载自blog.csdn.net/yangfengling1023/article/details/81705109