關於word2vec詞向量讀取


import warnings
import logging
import os.path
import sys
import multiprocessing

import gensim
from gensim.models import Word2Vec
from gensim.models.word2vec import LineSentence
# 忽略警告
warnings.filterwarnings(action='ignore', category=UserWarning, module='gensim')
 
if __name__ == '__main__':
    
    program = os.path.basename(sys.argv[0]) # 讀取當前文件的文件名
    logger = logging.getLogger(program)
    logging.basicConfig(format='%(asctime)s: %(levelname)s: %(message)s',level=logging.INFO)
    logger.info("running %s" % ' '.join(sys.argv))
 
    # inp為輸入語料, outp1為輸出模型, outp2為vector格式的模型
    inp = 'D:/csv/test/test1.txt'
    out_model = 'D:/csv/test/test.model'
    out_vector = 'D:/csv/test/test.vector'
 
    # 訓練skip-gram模型
    model = Word2Vec(LineSentence(inp), size=50, window=5, min_count=5,
                     workers=multiprocessing.cpu_count())
 
    # 保存模型
    model.save(out_model)
    # 保存詞向量
    model.wv.save_word2vec_format(out_vector, binary=False)

會得到三個文件:.model,.model.syn0.npy,.model.syn1neg.npy,讀取就可以:

from gensim.models.deprecated.word2vec import Word2Vec
model = Word2Vec.load( ' D:/csv/test/text.model ') # 3個文件放在一起:.model,.model.syn0.npy,.model.syn1neg.npy
print( " read model successful ")

 

 

另外一種就是獲得無后綴的文件,目測這個文件包含了這三個文件的。

import warnings
import gensim from gensim.models import Word2Vec from gensim.models.word2vec import LineSentence # 忽略警告 warnings.filterwarnings(action='ignore', category=UserWarning, module='gensim')

filePath = "D:/csv/test/test1.txt" sentences = gensim.models.word2vec.LineSentence(filePath) model = gensim.models.Word2Vec(sentences, size=100, window=5, min_count=1, workers=4) # 訓練模型 model.save('D:/csv/test/test1')

讀取時:

import gensim    

inp = 'D:/csv/test/text'  # 讀取詞向量
model = gensim.models.Word2Vec.load(inp)
print("read model successful")

感謝這里這里


免責聲明!

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



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