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

在做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编码问题会经常出现

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杨算法屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值