zoukankan      html  css  js  c++  java
  • gensim中有关word2vec的一些使用

    写在前面:下面的内容基于pytorch的版本为:1.7.1

    1. 预训练嵌入向量的使用

    import gensim
    model = gensim.models.KeyedVectors.load_word2vec_format('./w2v_model.txt',binary=False, encoding='utf-8')  #加载预训练向量
    print(model['the']         # 查看某个词的嵌入向量
    vocab = model.index2word   # 返回的是所有的词组成的列表
    # 获得词向量矩阵
    embeddings = model.vectors
    # 下面的代码是在模型定义中
    # self.embedding = nn.Embedding(embeddings.shape[0],embeddings.shape[1])
    # self.embedding.weight.data.copy_(torch.from_numpy(embeddings))
    # self.embedding.weight.requires_grad = False
    

    如果要使用glove预训练向量的话,需要做一下小小的改变,glove和Word2vec预训练的格式有一点区别,区别就在于word2vec格式的第一行写了全部的词数和向量的维度,在glove第一行加上就可以了。
    gensim也提供了对应的方法,如下所示:

    from gensim.scripts.glove2word2vec import glove2word2vec
    glove_file = 'test_glove.txt'
    word2vec_file = 'test_word2vec.txt'
    
    glove2word2vec(glove_file, word2vec_file)
    

    2. Word2Vec模型使用保存与加载

    使用方式如下所示:

    from gensim.models import Word2Vec
    
    seq = [['cat','say','meow'],['dog','say','woof']]
    model = Word2Vec(seq,size=50,min_count=1)  #定义模型,执行这一句就开始训练了
    model.save('./model.model')                # 保存整个模型
    model.wv.save_word2vec_format('./model2.txt')   # 保存训练出来的向量
    print(model.wv['cat'])
    
  • 相关阅读:
    实用函数,array_column。从二维数组中获取想要的一位数组。
    解决小程序swiper层级太高问题
    小程序模拟领红包
    小程序,红包弹出层布局
    小程序核销功能
    小程序 text标签中一定 不要换行,不要随便格式化!!!
    小程序动态修改json中的配置
    小程序支付
    docker常用命令
    ssh修改默认端口
  • 原文地址:https://www.cnblogs.com/noob-l/p/14659723.html
Copyright © 2011-2022 走看看