首页 > 技术文章 > python实现word2vec训练结果bin文件转txt文件

zhangtianyuan 2017-05-31 10:13 原文

      经理让我把word2vec训练后得到的bin文件转为txt文件,目前还不知道txt文件用来干什么。其实word2vec训练语料时可以选择训练处出bin文件或者txt文件,但是训练出bin文件时过程太漫长,我怕直接训练出txt文件也一样慢,所以还是自己想办法做这个事情了。

      我用到了gensim,这个需要自己安装一下,我的电脑装这个还挺麻烦的。

# -*- coding: utf-8 -*-  
import gensim 
import codecs    
  
def main():  
    path_to_model = 'result.bin'  
    output_file = 'file.txt'  
    bin2txt(path_to_model, output_file)  
  
  
def bin2txt(path_to_model, output_file):  
    output = codecs.open(output_file, 'w' , 'utf-8')  
    model = gensim.models.KeyedVectors.load_word2vec_format(path_to_model, binary=True)  
    print('Done loading Word2Vec!')  
    vocab = model.vocab  
    for item in vocab:  
        vector = list()  
        for dimension in model[item]:  
            vector.append(str(dimension))  
        vector_str = ",".join(vector)  
        line = item + "\t"  + vector_str   
        output.writelines(line + "\n")  #本来用的是write()方法,但是结果出来换行效果不对。改成writelines()方法后还没试过。
    output.close()  
  
if __name__ == "__main__":  
    main() 

 

推荐阅读