一、模型的保存
模型保存可以有很多种格式,根据格式的不同可以分为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