python实现word2vec训练结果bin文件转txt文件

经理让我把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() 
时间: 2024-12-14 20:49:45

python实现word2vec训练结果bin文件转txt文件的相关文章

arff文件和txt文件之间的转换_python

在github上,已经有前辈对这两种格式的文件间的转换提供了相应的python库,比如liac-arff: https://github.com/renatopp/liac-arff.但是当程序比较复杂时,再调用这么多外部文件,未免显得冗杂:而且这些arff库,在attribute和值数目不一致时,会报错.所以,在师兄的支持下,我参考overflow写了两个简单的转换函数.(用时5个多小时...以后要效率啊) arff2txt(): 将arff文件转换成txt格式: import re impo

Python学习之旅-10-文件储存:txt文件、csv文件、json文件

1.存储数据txt文件. 1.1 实例: # 1 存储 txt 文件 data = '''我是一个txt文件''' # 存储的文件名:file='test.txt' # 文件打开方式:mode='a' # 编码格式:encoding='UTF-8' with open(file='test.txt',mode='a',encoding='UTF-8') as f : f.write(data) # 保存内容 f.close() # 关闭文件 1.2 打开文件的不同模式: 模式 描述 r r,以只

matlab中 mat的文件和txt文件相互转换

(1)直接保存为txt文件: >> a=rand(1,2) a = 0.1419 0.4218 >> fid=fopen('a.txt','wt'); >> fprintf(fid,'%6.4f %6.4f\n',a); >> fclose(fid); >> (2)将mat文件转存为txt文件: >> clear >> load a.mat >> save b.txt -ASCII a; (3)将txt文件转存

打开窗口进行选择文件(txt文件),打开所选文件,读入文件

用mfc编写项目的时候往往需要调用窗口,允许用户通过窗口进行选择文件操作 TCHAR szBuffer[MAX_PATH] = { 0 }; OPENFILENAME ofn = { 0 }; ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = m_hWnd; ofn.lpstrFilter = _T("txt文件(*.txt)\0");//要选择的文件后缀 char buf[80]; getcwd(buf, sizeof(buf)); ofn

已知文件 a.txt 文件中的内容为“bcdeadferwplkou”, * 请编写程序读取该文件内容,并按照自然顺序排序后输出到 b.txt 文件中。 * 即 b.txt 中的文件内容应为“abcd…………..”这样的顺序。

import java.io.*;class SortChar{ private String str; private char arrayList[]; private BufferedReader br; //字符流 private File f; //读取的文件 SortChar( String s ) { f=new File( s ); } public void start() { if( inputData()==-1 ) { return; } //对字符数组进行冒泡排序 so

gensim加载word2vec训练结果(bin文件)并进行相似度实验

# -*- coding: utf-8 -*- import gensim # 导入模型 model = gensim.models.KeyedVectors.load_word2vec_format('vectors.bin', binary=True) # 得到两组词的相似度 list1 = [u'核能'] list2 = [u'电能'] list3 = [u'电力'] list_sim1 = model.n_similarity(list1, list2) print list_sim1

Python统计字符出现次数(Counter包)以及txt文件写入

# -*- coding: utf-8 -*- #spyder (python 3.7) 1. 统计字符(可以在jieba分词之后使用) from collections import Counter from operator import itemgetter # txt_list可以写成函数参数进行导入 txt_list = ['千古','人间','人间','龙','龙','龙','哈哈哈','人才','千古','千古'] c = Counter() for x in txt_list:

6.文件类型和文件权限管理

6.1.普通文件 (1)普通文件(- regular file)包括文本文件+二进制文件. (2)文本文件即文件中的内容是由文本构成的,文本即经过某种编码的字符(譬如ASCII码字符):所有文件的内容本质上都是数字,而文本文件中的数字本身应理解为该数字所对应的编码字符(譬如ASCII码对应的字符):常见的.c文件和.h文件和.txt文件等都是文本文件:文本文件的好处是可以被人轻松读懂和编辑,则文本文件天生就是为人类发明的. (3)二进制文件即文件中存储的内容本质上也是数字,但这些数字并非字符对应

C#操作txt文件

c# 操作txt文件 # 操作txt文件 c#创建文本 private const string FILE_NAME = "ErroLog.txt"; public static void WriteFile(string str) ...{ StreamWriter sr; if (File.Exists(FILE_NAME)) //如果文件存在,则创建File.AppendText对象 ...{ sr = File.AppendText(FILE_NAME); } else //如