前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Gensim模块训练词向量

使用Gensim模块训练词向量

作者头像
触摸壹缕阳光
发布2020-03-27 10:40:56
1.6K0
发布2020-03-27 10:40:56
举报

没人扶你的时候,自己站直。路还长,背影要美。

全文字数:1236字

阅读时间:8分钟

前言

在以词项为基本单元输入的自然语言处理任务中,都避免不了将词项转换成算法能够输入的特征表示,词项的特征表示有很多种,这里主要介绍的就是词向量。word2vec是比较流行的训练词向量的算法,使用Gensim模块可以非常简单的训练出词向量。

word2vec包含Skip-Gram和CBOW两种不同的模型,不论是Skip-Gram模型还是CBOW模型,它们的输入以及输出都是以词项为基本单位,只是它们对应输入和输出不一样:

  • Skip-Gram模型:输入为单个词项,输出目标为多个上下文词项;
  • CBOW模型:输入为多个上下文词项,输出目标为单个词项;

从上面可以看出,无论是Skip-Gram模型还是CBOW模型基本的处理单元都是词项,那么获取到的语料必须要经过分词处理才能用于词向量的训练语料。

a

数 据 的 处 理

这里选择维基百科作为词向量的训练语料,其它语料的处理方式大致相同。如果还不知道如何去处理维基百科数据,可以参考下面这篇文章。为了演示方便,这里选择一个比较小的语料,当然对于词向量来说,语料越大训练出来的词向量质量越好。

得到中文语料之后,最重要的就是要进行分词操作,这里选择jieba分词工具对语料进行精确模式的分词。

分完词后的结果:

▲分词之前的维基百科

▲分词之后的维基百科

b

训 练 模 型

有了分词好的文本语料,接下来就可以通过Gensim模块中的word2vec函数来训练语料。

下面是一些训练词向量的调参技巧:

  1. 选择训练word2vec的语料要和要使用词向量的任务相似,并且越大越好,在论文中实验说明语料比训练词向量的模型更加的重要,所以要尽量收集大的且与任务相关的语料来训练词向量;
  2. 语料小(小于一亿词,约 500MB 的文本文件)的时候用 Skip-gram 模型,语料大的时候用 CBOW 模型;
  3. 设置迭代次数为三五十次,维度至少选 50,常见的词向量的维度为256、512以及处理非常大的词表的时候的1024维;

使用下面命令来训练模型:

  1. word2vec_model.py:存放训练代码的Python文件;
  2. seg_filename:分好词的训练语料;
  3. model_name:训练好的模型的名称;
  4. word2vec.vector:得到的词向量;

对于本例来说:

▲训练后生成的目录结构

▲word2vec.vector文件中的内容

c

测 试 模 型

有了词向量我们就可以使用词向量来做一些自然语言处理的任务了。那在这之前,我们需要测试模型训练出来的词向量是否可用。

首发: 触摸壹缕阳光~https://zhuanlan.zhihu.com/p/40016964

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档