A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

前段时间把word2vec词向量的用法整理了一下。处理的是二进制文件,二进制文件处理起来是比较快的,但是过程可能比较繁琐。这次整理了一下glove词向量的处理方式,文件是txt格式的。



Glove.txt文件大概是这样子的。图中红框表示的是单词,红框蓝底的是对应的词向量。

对这个文件的处理方式:

1、先读取一行;

2、分离出单词和词向量

3、注意:使用这种方法的前提是词表顺序和glove.txt文件里的单词顺序一致。

4、代码很简单,如下:




  • def embLayer(input):



  •     with open('n_GloVe.txt', 'r') as file1:



  •         emb = []



  •         vocab = []



  •         for line in file1.readlines():



  •             row = line.strip().split(' ')



  •             vocab.append(row[0])



  •             emb.append(row[1:])







  •     emb = np.asarray(emb, dtype="float32")



  •     with tf.variable_scope('embedding'):



  •         embedding = tf.Variable(emb, name='emb')



  •         embeding_input = tf.nn.embedding_lookup(embedding, input)







  •         return embeding_input



1 个回复

正序浏览
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马