开启美好的九月

最近在学习textCNN进行文本分类,然后随机生成向量构建embedding网络的分类效果不是很佳,便考虑训练Glove词向量来进行训练,整个过程还是有遇到一些问题,希望懂的旁友能来指点下~

关于GloVe

GloVe,全称是Global Vectors for Word Representation,是斯坦福大学提出的一种新的词矩阵生成的方法,综合运用词的全局统计信息和局部统计信息来生成语言模型和词的向量化表示。论文提出的方法融合了主流模型的优点:全局矩阵分解(LSA)和局部内容窗口(Word2vec),充分利用统计信息使用词共现矩阵中频率非零的元素来训练模型。
论文链接:http://www.cs.columbia.edu/~blei/seminar/2016_discrete_data/readings/PenningtonSocherManning2014.pdf
官网讲解:http://nlp.stanford.edu/projects/glove/
PS:官网上有详细的说明,其中包括已经训练好的词向量模型供使用,在这里我主要使用它的github代码训练自己的语料

词向量训练

1.下载

官方的github代码:https://github.com/stanfordnlp/GloVe
进入上面的连接并下载整个文件,如下:

阅读其中的README文件可以对其有一定的理解~
由于其中的代码是C的版本,所以在运行前务必确保ubuntu下有gcc!

2.训练词向量模型

(1)进入当前的文件路径,输入命令

make

可以看到文件夹中多了一个build的文件夹
(2)修改demo.sh的内容

源代码中是默认是从网上下载一个语料text8,可以将其删除,在语料上修改为自己的路径**(这里需要说明下,中文语料需要先进行分词以空格进行间隔)**
然后有两个参数需要注意,即向量维度和窗口值
(根据网上的资料显示vector_size=300和window_size=8时效果最佳)
PS:不过在我的训练过程中,300维的词向量在转换为embedding时文件大于2G,一直报错:

ValueError: Cannot create a tensor proto whose content is larger than 2GB.

(请各位大佬来指点下~)
(3)开始训练,输入命令

sh demo.sh

如无意外,最后可以得到一个vector.txt的文件
(4)修改格式
为了能让gensim调用模型,运行以下代码即可

import gensim
import shutil
from sys import platform# 计算行数,就是单词数
def getFileLineNums(filename):f = open(filename, 'r')count = 0for line in f:count += 1return count# Linux或者Windows下打开词向量文件,在开始增加一行
def prepend_line(infile, outfile, line):with open(infile, 'r') as old:with open(outfile, 'w') as new:new.write(str(line) + "\n")shutil.copyfileobj(old, new)def prepend_slow(infile, outfile, line):with open(infile, 'r') as fin:with open(outfile, 'w') as fout:fout.write(line + "\n")for line in fin:fout.write(line)def load(filename):num_lines = getFileLineNums(filename)gensim_file = 'glove_model.txt'gensim_first_line = "{} {}".format(num_lines, 200)# Prepends the line.if platform == "linux" or platform == "linux2":prepend_line(filename, gensim_file, gensim_first_line)else:prepend_slow(filename, gensim_file, gensim_first_line)model = gensim.models.KeyedVectors.load_word2vec_format(gensim_file, binary=False)if __name__ == '__main__':load(vec_path)

Ubuntu下GloVe中文词向量模型训练相关推荐

  1. 深度学习与自然语言处理教程(2) - GloVe及词向量的训练与评估(NLP通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/36 本文地址:https://www.showmeai.tech/article-d ...

  2. 【NLP】word2vec词向量模型训练——基于tensorflow

    前言   维基百科中文数据训练word2vec词向量模型--基于gensim库   上文我们使用了 gensim 库中的 Word2vec 模块训练词向量模型,本篇我们通过 tensorflow 自己 ...

  3. glove中文词向量_Summary系列glove模型解读

    一.Glove模型简介 语义文本向量表示可以应用在信息抽取,文档分类,问答系统,NER(Named Entity Recognition)和语义解析等领域中,大都需要计算单词或者文本之间的距离或者相似 ...

  4. 训练GloVe中文词向量

    准备语料 准备好自己的语料,保存为txt,每行一个句子或一段话,注意要分好词. 准备源码 从GitHub下载代码,https://github.com/stanfordnlp/GloVe 将语料cor ...

  5. glove中文词向量_《GloVe:Global Vectors for Word Representation》学习

    1.概述 自从2013年Mikolov提出了word2vec之后,无监督预训练的word embedding越来越火,很多学者都在研究如何获得更好的语义表达.于是,出现了同样是静态表示的Glove,动 ...

  6. glove中文词向量_NLP中文文本分类任务的笔记(一)

    词向量的使用. 通用的词向量包含word2vec,glove,fasttext三种方式,通过n-gram以及COBW或者skip-gram的方式获取得到, 这边分享一个词向量的GitHub资 Embe ...

  7. PaperWeekly 第52期 | 更别致的词向量模型:Simpler GloVe - Part 1

    作者丨苏剑林 学校丨中山大学硕士生 研究方向丨NLP,神经网络 个人主页丨kexue.fm 前言 如果问我哪个是最方便.最好用的词向量模型,我觉得应该是 word2vec,但如果问我哪个是最漂亮的词向 ...

  8. NLP-分类模型-2016-文本分类:FastText【使用CBOW的模型结构;作用:①文本分类、②训练词向量、③词向量模型迁移(直接拿FastText官方已训练好的词向量来使用)】【基于子词训练】

    <原始论文:Bag of Tricks for Efficient Text Classification> <原始论文:Enriching Word Vectors with Su ...

  9. PaperWeekly 第53期 | 更别致的词向量模型:Simpler GloVe - Part 2

    作者丨苏剑林 学校丨中山大学硕士生 研究方向丨NLP,神经网络 个人主页丨kexue.fm 前言 本文作者在更别致的词向量模型:Simpler GloVe - Part 1一文中提出了一个新的类似 G ...

最新文章

  1. g-gdb工具使用图谱(持续更新)
  2. spring @component的作用
  3. Netty - 传输
  4. TensorFlow模型保存和加载方法
  5. Java try语句的嵌套
  6. 大数据到底是不是“算命”?技术大牛们这样说
  7. 云计算的认识和看法_云存储已经成为存储的未来,你的存储跟上节奏了吗?
  8. idea总结几个不错的插件
  9. 【Linux】Linux的关机和虚拟机克隆、快照
  10. 【论文阅读】基于深度神经网络的人体运动姿态估计与识别
  11. matlab增加一行ones,MATLAB repmat()、ones()、zeros()、prod()函数的使用
  12. 关于小米手机USB传输稍大点的文件老中断的问题解决方法!
  13. Swagger Error Missing required property: responses ✖ Swagger Error Additional properties not allowe
  14. 马云也进军游戏了?还赚了上亿元,网友:马化腾先生怎么看呢?
  15. 腾讯发布叮当助手,人工智能语音助手将赋能智能电视
  16. 打地鼠java代码流程图_51单片机 普中51 打地鼠游戏 仿真 程序 流程图
  17. 【HDL系列】除法器(3)——基2 SRT算法
  18. c# 如何抓微信把柄_C#手把手教你玩微信自动化
  19. fmri与GLM应用
  20. Mysql事务-MVCC

热门文章

  1. 理解计算机3D图形学中的坐标系变换
  2. 【方案分享】华与华《爱的是酒》酣客品牌定位及传播咨询方案.pptx(附下载链接)...
  3. 如何选择第三方电子发票平台服务商?
  4. 呆老大,奸老二,家家有个坏老三(转载自:http://soulogic.3322.org/blog/read.php/165.html)
  5. Python基础第一周--Python语言家族
  6. Android Manifest内容解析
  7. javascript/js 判断是否安装flash player插件,提示安装方法。
  8. AKM AKM-35-4-01-15X-10
  9. 在word表格中设置页码,封面不设置页码,目录页设置罗马数字,正文部分设置阿拉伯数字页码
  10. 《Excel数据可视化:一样的数据不一样的图表》——导读