使用word2vec(C语言版本)训练中文语料 并且将得到的vector.bin文件转换成txt文件

来源:互联网 发布:单片机蜂鸣器报警电路 编辑:程序博客网 时间:2024/06/05 07:27

1、下载word2vec源码:http://download.csdn.net/download/qq_15987811/8681485

2、得到分词好的中文训练语料。

3、修改demo-word.sh文件:

  1. make  
  2. #if [ ! -e text8 ]; then  
  3. #  wget http://mattmahoney.net/dc/text8.zip -O text8.gz  
  4. #  gzip -d text8.gz -f  
  5. #fi  
  6. time ./word2vec -train Result_Country.txt -output vectors.bin -cbow 1 -size 200 -window 8 -negative 25 -hs 0 -sample 1e-4 -threads 20 -binary 1 -iter 15  
  7. ./distance vectors.bin

4、执行make命令

5、执行: sh demo-word.sh命令 得到vectors.bin文件,即为训练好的词向量文件

6、将bin文件转换成txt的格式,方便直接打开。

bin转txt的代码转自  http://www.cnblogs.com/zhangtianyuan/p/6922825.html

# -*- coding: utf-8 -*-  import gensim import codecs      def main():      path_to_model = 'F:/my_learning_ml/LSTM/20170805learn_initial_py/vectors.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()方法后还没试过。    print ('Done Write')    output.close()    if __name__ == "__main__":      main() 


原创粉丝点击