model_cn=KeyedVectorsload_word2vec_formatrsgnstargetword-worddynwin5thr10neg5dim300iter5binary=Falseunicode_errors=ignore预训练的模型model_cn中没有设施服务和‘’舒适度这两个词的词向量想要使用相近的词进行词向量平均然后添加到这个模型中便于下次使用怎么写代码你写的代码是不是
是的,KeyedVectors是用来获取词向量的,而添加新词向量需要使用KeyedVectors的父类Word2Vec。修改后的代码如下:
import numpy as np from gensim.models import KeyedVectors, Word2Vec
加载预训练模型
model_cn = KeyedVectors.load_word2vec_format(r'sgns.target.word-word.dynwin5.thr10.neg5.dim300.iter5', binary=False, unicode_errors='ignore')
相似的词
similar_words = ['服务设施', '设施设备', '舒适性', '舒适度量表']
计算相似词的平均向量
similar_vectors = [model_cn[word] for word in similar_words if word in model_cn] avg_vector = np.mean(similar_vectors, axis=0)
将新的词向量添加到预训练模型中
model_w2v = Word2Vec.load(r'sgns.target.word-word.dynwin5.thr10.neg5.dim300.iter5') model_w2v.wv.add('设施服务', avg_vector) model_w2v.wv.add('舒适度', avg_vector)
保存新的模型
model_w2v.save('new_model_cn.bin'
原文地址: http://www.cveoy.top/t/topic/fIHd 著作权归作者所有。请勿转载和采集!