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'])


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM