摘自:http://blog.csdn.net/thriving_fcl/article/details/51404655

词的向量化与word2vec简介

word2vec最初是Tomas Mikolov发表的一篇文章[1],同时开源了相应的代码,作用是将所有词语投影到K维的向量空间,每个词语都可以用一个K维向量表示。

为什么要将词用向量来表示呢?这样可以给词语一个数学上的表示,使之可以适用于某些算法或数学模型。通常将词语表示成向量有如下两种方法。

一、one-hot 表示法

假如语料库里一共有N个词,one-hot表示即是为每个词分配一个唯一的索引,并且将每个词表示为N维的向量,在该词索引对应的维度值为1,其余维度均为0。如一共有三个词:今天、天气、真好,那么三个词的词向量分别可以是[1,0,0],[0,1,0],[0,0,1]。这种简单的表示方法已经可以解决相当一部分NLP的问题,不过仍然存在不足,即词向量与词向量之间都是相互独立的,我们无法通过这种词向量得知两个词在语义上是否相似,并且如果N非常大,这种高维稀疏的表示也有可能引发维度灾难。为了解决上述问题,就有了词向量的第二种表示方法。

二、Distributed 表示法

word2vec就是通过这种方法将词表示为向量,即通过训练将词表示为限定维度K的实数向量,这种非稀疏表示的向量很容易求它们之间的距离(欧式、余弦等),从而判断词与词语义上的相似性。如K=3时,我们得到的实数向量可以是[0.5,0.22,0.7]这样。

不过Distributed表示法并不是word2vec诞生才有的,这种方法早在1986年Hinton就提出了[2]。word2vec之所以 会产生这么大的影响,是因为它采用了简化的模型,使得训练速度大为提升,让word embedding这项技术(也就是词的distributed表示)变得较为实用。

概率语言模型

在详细介绍word2vec的原理之前还需要简单的提一下概率语言模型。概率语言模型就是表示语言的基本单位(通常为句子)的概率分布函数。有了语言模型我们可以判断一句话是自然语言的概率,或者让机器开口说话(根据语言模型生成一句话)。

见原文!

word2vec训练过程

见原文!

word2vec用的是神经网络模型,分为两种,cbow与skip-gram,每个模型的训练方法又分别有两种,hierarchical sofmax与negative sampling。

Reference

[1] Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient Estimation of Word Representations in Vector Space. In Proceedings of Workshop at ICLR, 2013.

[2] A. Mnih and G. Hinton. Three new graphical models for statistical language modelling. Proceedings of the 24th international conference on Machine learning,pages 641–648, 2007

转载于:https://www.cnblogs.com/bonelee/p/7144607.html

word2vec (一) 简介与训练过程概要相关推荐

  1. 理解word2vec的训练过程

    from:http://blog.csdn.net/dn_mug/article/details/69852740 生成词向量是自然语言处理中的基本过程,此前对此只知道使用但是一直不知道其原理. 最近 ...

  2. NLP之BERT:BERT的简介(背景、改进点、创新点、简介、意义、原理、优缺点、总结与评价)、模型结构、训练过程(MLM、NSP任务的概述)之详细攻略

    NLP之BERT:BERT的简介(背景.改进点.创新点.简介.意义.原理.优缺点.总结与评价).模型结构.训练过程(MLM.NSP任务的概述)之详细攻略 目录 BERT的论文 BERT的概述 BERT ...

  3. word2vec自训练词向量(代码+注释+训练过程和结果)

    数据集MSRP.SICK.STS下载地址分享 百度云:https://pan.baidu.com/s/1sqlCc702owp_T6KjyNT6Yw 提取码: 66nb 运行:网盘中msr_train ...

  4. tensorflow笔记:模型的保存与训练过程可视化

    tensorflow笔记系列:  (一) tensorflow笔记:流程,概念和简单代码注释  (二) tensorflow笔记:多层CNN代码分析  (三) tensorflow笔记:多层LSTM代 ...

  5. 神经网络训练的一般步骤,神经网络训练过程详解

    1.想要学习人工神经网络,需要什么样的基础知识? 人工神经网络理论百度网盘下载: 链接:https://pan.baidu.com/s/1Jcg4s2ETCrag2Vo-OA57Og 提取码:rxlc ...

  6. bp神经网络训练流程图,BP神经网络训练过程

    (1)BP算法的学习过程中有两个过程是什么?(2)写出BP神经网络的数学模型,并以20 bp(backpropagation)网络是1986年由rumelhart和mccelland为首的科学家小组提 ...

  7. 练习推导一个最简单的BP神经网络训练过程【个人作业/数学推导】

    写在前面: 各式资料中关于BP神经网络的讲解已经足够全面详尽,故不在此过多赘述.本文重点在于由一个"最简单"的神经网络练习推导其训练过程,和大家一起在练习中一起更好理解神经网络训练 ...

  8. 谷歌BERT预训练源码解析(三):训练过程

    目录 前言 源码解析 主函数 自定义模型 遮蔽词预测 下一句预测 规范化数据集 前言 本部分介绍BERT训练过程,BERT模型训练过程是在自己的TPU上进行的,这部分我没做过研究所以不做深入探讨.BE ...

  9. 深度学习模型训练过程

    深度学习模型训练过程 一.数据准备 基本原则: 1)数据标注前的标签体系设定要合理 2)用于标注的数据集需要无偏.全面.尽可能均衡 3)标注过程要审核 整理数据集 1)将各个标签的数据放于不同的文件夹 ...

最新文章

  1. 一作解读:Microbiome马铃薯疮痂病与土壤微生物组关系新进展
  2. linux目录和文件管理命令
  3. 为什么我们总是「习惯性辩解」?
  4. 小程序在wxml页面中取整
  5. 响应HTTP服务的shell脚本
  6. 读书随笔:The Book of Why——CHAPTER 1:The Ladder of Causation
  7. 砸入近 30 亿美元后,马斯克拒绝加入 Twitter 董事会
  8. Qualcomm 推出下一代物联网专用蜂窝技术芯片组!
  9. Selenium基础篇之5-第一个完整的自动化测试脚本
  10. java获取上周任意一天的日期
  11. CentOS部署JavaWeb项目
  12. SQL中笛卡尔积-cross join的用法
  13. PMP第十一章:项目风险管理
  14. 华为p50预计售价鸿蒙是什么,华为p50预计售价多少_华为p50售价预估
  15. 广X斜Y-1顶岗纪实
  16. Homebrew进阶使用教程(二)-用一个命令行天气客户端构建自己的仓库
  17. 嵌入式开发-服务器(一) MQTT服务器
  18. 解决打开CHM文件后,右侧显示空白
  19. Java编程思想总结篇(1-11章学习笔记)——第五章
  20. 报计算机专业高考必考科目,不能错过的重点!新高考选科:名校专业必选的那些科目!...

热门文章

  1. 十三、熵编码算法(4):H.264使用CAVLC解析宏块的残差数据
  2. ubuntu 配置nfs server
  3. C语言用户标准是什么,C语言系统用户标准管理系统.doc
  4. oracle数据库详细性能参数,ORACLE数据库性能参数的优化
  5. java js 转换_[Java教程]javascript 类型转换。
  6. io读取一个文件再写入socket技术_JAVA中IO与NIO面试题
  7. java翻转单词顺序split_剑指offer解题报告(Java版)——翻转单词顺序 左旋字符串 42...
  8. 关于php的cgi,php-fpm的关系
  9. transforms函数查询
  10. python【力扣LeetCode算法题库】15- 三数之和