调gensim库,word2vec模型的保存和加载

一、模型的保存
模型保存可以有很多种格式,根据格式的不同可以分为2种,一种是保存为.model的文件,一种是非.model文件的保存。我常用的保存格式是.model和.vector直接上代码和结果:
1、保存为model文件

#数据的读入
file=open('opos.txt')    
ops=[]  
for line in file.readlines():  
#     print(line)
    curLine=line.strip().split(" ")    
#     floatLine=list(map(float,curLine))#这里使用的是map函数直接把数据转化成为float类型    
    ops.append(curLine[:]) 
# print('ops:',ops)
#模型的训练
from gensim.models.word2vec import Word2Vec
w2vModel = Word2Vec(sentences=ops, hs=0, negative=5, min_count=5, window=5, iter=2, size=300)

在这里插入图片描述
保存方法一:

# 保存方法一
w2vModel.save('w2vModel.model')
# 方式二
w2vModel.wv.save_word2vec_format('word2vec.vector')
w2vModel.wv.save_word2vec_format('word2vec.bin')

在这里插入图片描述
函数的形式调用word2vec模型进行训练

from gensim.models.word2vec import Word2Vec
def train_W2V(sentenList, embedSize=300, epoch_num=1):
    w2vModel = Word2Vec(sentences=sentenList, hs=0, negative=5, min_count=5, window=5, iter=epoch_num, size=embedSize)
    return model

w2vModel = train_W2V(ops, embedSize=300, epoch_num=2)
print(w2vModel)
# 保存方法一
w2vModel.save('w2vModel2.model')
# 方式二
w2vModel.save_word2vec_format('word2vec2.vector')
w2vModel.save_word2vec_format('word2vec2.bin')

在这里插入图片描述在这里插入图片描述假如函数没有return返回值
在这里插入图片描述注意使用的API不同,一个是model.save() 一个是 model.wv.save_word2vec_format()。结果如图:.vector和.bin文件直接可以用txt打开可视,它们的内存占用要少一些,加载的时间要多一点。
在这里插入图片描述二、模型的加载

#加载方式1
import time
t1 = time.time()
model = Word2Vec.load('w2vModel.model')
t2 = time.time()
print(model)
print(".molde load time %.4f"%(t2-t1))

在这里插入图片描述

 from gensim.models import KeyedVectors
#加载方式2
t1 = time.time()
model = KeyedVectors.load_word2vec_format('word2vec.vector')
t2 = time.time()
print(len(model.vectors))
print(".vector load time %.4f" % (t2 - t1))

在这里插入图片描述
这两种方式的加载在获取词向量的时候应该是差别不大,区别就是.model可以继续训练,.vector的文件不能继续训练。加载速度也可以见,前者比后者快很多。前者时间为0.0020秒后者0.03秒,相差十多倍。

参考链接:
https://blog.csdn.net/HUSTHY/article/details/103164934

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值