词向量存pkl格式

18 篇文章 0 订阅
import os
import numpy as np

def load_cn_wiki_wordvec(s_word_vec_path):
    n_vocab_num = 0
    n_word_dim = 0
    m_word_vec ={}
    m_word_id = {}
    with open(s_word_vec_path, "r", encoding="utf-8") as fp:
        for i, s_line in enumerate(fp):
            if i == 0:
                ls_line = s_line.strip().split(" ")
                n_token_num = int(ls_line[0])
                n_word_dim = int(ls_line[1])
                print("token num ", n_vocab_num)
                print("word dim ", n_word_dim)
            else:
                ls_line = s_line.rstrip().split(" ")
                s_token = ls_line[0]
                lf_vec = [float(e) for e in ls_line[1:]] 
                np_vec = np.array(lf_vec)

                m_word_vec[s_token] = np_vec
                m_word_id[s_token] = i-1
                if i % 10000 == 0:
                    print("load %s %s" % (str(i), s_token))
                    # break

    o_out = {
        "word_vec":m_word_vec,
        "word_id": m_word_id,
        "word_dim": n_word_dim
    }                
    return o_out

if __name__ == '__main__':
    import pickle
    w_file = 'tencent-ailab-embedding-zh-d200-v0.2.0-s.txt'
    o_out = load_cn_wiki_wordvec(w_file)
    with open(w_file + '.pkl', 'wb') as f:
        pickle.dump(o_out['word_vec'], f)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值