python實現word2vec訓練結果bin檔案轉txt檔案

右介發表於2017-05-31

      經理讓我把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() 

 

相關文章