word2vec 与 doc2vec的区别:

两者从字面意思上就可以大致判断出区别来,word2vec主要针对与单词,而doc2vec主要针对于文本:

顾名思义,Word2Vec是在单个单词上训练的,而Doc2vec是在可变长度的文本上训练的,因此,每个模型可以完成的任务是不同的。使用Word2Vec,您可以根据上下文预测单词,反之则可使用Vera,而使用Doc2vec则可以测量完整文档之间的关系。

概述:

文本向量化是自然语言处理中的基础工作,文本的表示直接影响到了整个自然语言处理的性能。

最简单的文本向量化方式是采用one-hot的词袋模型(Bag of word)进行,将单词转换成独热编码,但是维度过大所以渐渐的出现了很多新的方法:word2vec 与 doc2vec

Bag of word的缺点:

  • 维度灾难
  • 无法保留词序的信息
  • 存在语义鸿沟(相同的单词往往在不同的句子中有不同的意思)

word2vec

Word2vec 是 Word Embedding 的方法之一,他是 2013 年由谷歌的 Mikolov 提出了一套新的词嵌入方法。

在 Word2vec 出现之前,已经有一些 Word Embedding 的方法,但是之前的方法并不成熟,也没有大规模的得到应

Word Embedding?

word embedding 是文本表示的一类方法。跟 one-hot 编码和整数编码的目的一样,不过​他有更多的优点。


  • 他可以将文本通过一个低维向量来表达,不像 one-hot 那么长。
  • 语意相似的词在向量空间上也会比较相近。
  • 通用性很强,可以用在不同的任务中。

Word Embedding三种方法

  • Frequency based Embedding:
    a. Count Vectors
    b. TF-IDF
    c. Co-Occurrence Matrix
  • Prediction based Embedding(word2vec)
    a. CBOW
    b. Skip-Gram
  • gloVe(Global Vector)

Count Vectors: 通过向量基于每个单词的频率

Document1 = ‘He is a lazy boy. She is also lazy.’
Document2 = ‘Neeraj is a lazy person.’

Image for post

TF-IDF:它表示单词对文档的贡献,即与文档相关的单词应经常使用。例如:有关Messi的文件应包含大量“Messi“字样。

图片发布
  • IDF = log(N/n), (N为文本数量,n为在多少个文本出现)
  • IDF(This) = log(2/2) = 0.
  • IDF(Messi) = log(2/1) = 0.301.
  • TF-IDF(This,Document1) = (1/8) * (0) = 0
  • TF-IDF(This, Document2) = (1/5) * (0) = 0
  • TF-IDF(Messi, Document1) = (4/8)*0.301 = 0.15

Co-Occurrence Matrix:具有上下文窗口的统计方法

主要使用PCA,SVD的方法起义分解,得到分解矩阵,好处在于可以更好的联系句子中单词之间的关系。

图片发布

word2vec详细

CBOW

通过上下文来预测当前值。相当于一句话中扣掉一个词,让你猜这个词是什么。cbow输入是某一个特征词的上下文相关的词对应的词向量,而输出就是这特定的一个词的词向量,即先验概率。

训练的过程如下图所示,主要有输入层(input),映射层(projection)和输出层(output)三个阶段。


Skip-gram

用当前词来预测上下文。相当于给你一个词,让你猜前面和后面可能出现什么词。


Negative Sampling(负采样)

传统的神经网络模型(NNLM):


在word2vec中我们预测的是当前单词与其他单词的一起出现的概率,每一个单词与多个单词形成组合形成了大量的分类,导致计算复杂,为了简化计算,采用负分类的是想,将公式转化,通过判断两个单词的组合是否正确将问题转换为二分类问题

负采样主要思想:将多分类的softmax转成二分类的sigmoid。

以“今天|天气|非常|不错|啊”举例,假设上下文只有一个词,选择目标词是“天气”,那么出现的情况有:今天|天气,非常|天气,不错|天气,啊|天气由于我们假设上下文只有一个词,那么在这些情况中只有【今天|天气,非常|天气】是正确的样本。当我们采用【今天|天气】这个样本时,我们希望输入【天气】,会输出标签【今天】,其他概率都是0。

对于原始的skip-gram模型来说,这对应是一个4分类问题,当输入【今天|天气】时,那么我们可能出现的概率是P(今天|天气)、P(非常|天气)、P(不错|天气)和P(啊|天气),我们的目标就是让P(今天|天气)这个概率最大,但是我们得同时计算其他三类的概率,并在利用反向传播进行优化的时候需要对所有词向量都进行更新。这样计算量很大,比如我们这里就要更新5*100=500个参数(假设词向量维度是100维的)。

但是如果采用负采样,当输入【今天|天气】时,我们从【非常|不错|啊】中选出1个进行优化,比如【不错|天气】,即我们只需计算P(D=1|天气,今天)和P(D=0|天气,不错),并且在更新的时候只更新【不错】、【天气】和【今天】的词向量,这样只需更新300个参数,计算量大大减少了。

参考:https://www.cnblogs.com/linhao-0204/p/9126037.html

GloVe?

正如论文的标题而言,GloVe的全称叫Global Vectors for Word Representation,它是一个基于全局词频统计(count-based & overall statistics)的词表征(word representation)工具,它可以把一个单词表达成一个由实数组成的向量,这些向量捕捉到了单词之间一些语义特性,比如相似性(similarity)、类比性(analogy)等。我们通过对向量的运算,比如欧几里得距离或者cosine相似度,可以计算出两个单词之间的语义相似性。

步骤:

  1. 根据语料库构建一个共现矩阵矩阵中的每一个元素Xij代表单词i和上下文单词j在特定大小的上下文窗口(context window)内共同出现的次数。
  2. 构建词向量和共现矩阵的关系
  3. 构造损失函数
  4. 训练(看似无监督训练,其实在训练的过程中提供了共现矩阵中的值,这些值是通过训练集的样本计算而来的。)

dec2vec?

dec2vec是wordvec的衍生,它主要用于对句子的分类上,word2vec将词语分类后,给每个句子创建一个id,通过id和词语进行进一步的训练,将句子分类,从而达到分句的效果。

汇总:


Word2vec And Doc2vec - 文本向量化相关推荐

  1. wiki中文文本语料下载,在维基百科中文语料训练Word2vec and doc2vec 文本向量化代码示例

    首先下载wiki中文语料(大约1.7G) https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2 ...

  2. 【Python自然语言处理】文本向量化的六种常见模型讲解(独热编码、词袋模型、词频-逆文档频率模型、N元模型、单词-向量模型、文档-向量模型)

    觉得有帮助请点赞关注收藏~~~ 一.文本向量化 文本向量化:将文本信息表示成能够表达文本语义的向量,是用数值向量来表示文本的语义. 词嵌入(Word Embedding):一种将文本中的词转换成数字向 ...

  3. NLP - 文本向量化

    文章目录 本质 词袋模型 原理 特点 词空间模型 NNLM 模型 RNNLM C&W 模型 C&W & NNLM CBOW 和 Skip-gram 模型 CBOW 模型 改进: ...

  4. [论文阅读] (24) 向量表征:从Word2vec和Doc2vec到Deepwalk和Graph2vec,再到Asm2vec和Log2vec(一)

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

  5. 5分钟 NLP 系列: Word2Vec和Doc2Vec

    来源:Deephub Imba 本文约800字,建议阅读5分钟 本文主要介绍了Word2Vec和Doc2Vec. Doc2Vec 是一种无监督算法,可从可变长度的文本片段(例如句子.段落和文档)中学习 ...

  6. Keras系列之文本向量化

    作者:<python深度学习>学习笔记,用于自己熟悉和理解 目录 1.实现单词级的one-hot编码:稀疏,高维,硬编码 2.使用词嵌入word embeding:密集,低维,学习得到 2 ...

  7. word to vector 文本向量化

    word to vector 文本向量化 现在趋势是高层用可解释的模型例如 线性模型或者gbdt,下层用带深度的embedding. 文本向量化的 word 2 vector 很不错也有很多自己做得模 ...

  8. 情感分析的新方法,使用word2vec对微博文本进行情感分析和分类

    向AI转型的程序员都关注了这个号??? 大数据挖掘DT数据分析  公众号: datadw 情感分析是一种常见的自然语言处理(NLP)方法的应用,特别是在以提取文本的情感内容为目标的分类方法中.通过这种 ...

  9. 基于word2vec或doc2vec的情感分析

    转载自:http://datartisan.com/article/detail/48.html 情感分析是一种常见的自然语言处理(NLP)方法的应用,特别是在以提取文本的情感内容为目标的分类方法中. ...

最新文章

  1. 提高EDA(探索性数据分析)效率的 3 个简单工具
  2. idea刷新项目、清除项目缓存
  3. poj 2392 dp 不是很懂哎!!!Space Elevator
  4. [WPF]使用Fody提高效率
  5. C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件),附源码
  6. 单调栈 leetcode整理(三)
  7. 在Win7虚拟机下搭建Hadoop2.6.0伪分布式环境
  8. Redis windows端连接虚拟机内Redis各种问题
  9. BEA Tuxedo中间件应用初探
  10. 【AR】DroidCam笔记本调用手机摄像头(smartphone‘s camera as pc webcam)
  11. Portainer中文汉化
  12. HDMI CEC HDCP
  13. 被使用次数最多的22个Python外部模块
  14. Java联网3D坦克大战(网络编程)
  15. GameOff2022参与有感
  16. Cocos Shader入门基础七:一文彻底读懂深度图。
  17. MYSQL ERROR 1130 (HY000) 的错误解决方案
  18. PyTorch官方中文文档上线啦!
  19. 内存按字节 (Byte)编址,地址从A0000H到DFFFFH,共有多少个字节呢?
  20. window_onload

热门文章

  1. MFC界面编程基础(08):菜单(一)
  2. 【点分治】的学习笔记和众多例题
  3. Connections could not be acquired from the unde...
  4. python爬虫可视化题目北京空气质量监测数据获取与分析
  5. scylladb 4.1 分布式安装部署
  6. 【论文排版术】学习笔记1
  7. android adb pull 文件夹,android – 我如何adb拉SD文件夹中的所有文件
  8. 解决Chrome、Safair、Webkit等内核浏览器默认文本域和文本
  9. java 计算日期时间差_Java计算日期和时间差
  10. 一文详解!对于企业来说,商业智能BI到底有什么意义