词表示

V=[a,aaron,...,zulu,<UNK>]V=[a,aaron,...,zulu,<UNK>]V=[a,aaron,...,zulu,<UNK>]

目前为止,我们一直都是用词汇表来表示词,上章节中提到的单词表可能是10000个单词,我们一直用one-hot向量来表示词,比如man在词典中是第5391个单词,那么就可以表示成一个向量,这个向量只在第5391处为1,其它地方全为零,我们用O_5391代表这个量,这里的O表示one-hot。接下来,如果women是编号9853,那么就可以用O_9853来表示,这个向量只在9853处为1,其它地方为0。其它的词,如国王,王后,苹果,橘子都可以这样表示出来。

这种表示方法的一大缺点就是,它把每个词孤立起来,这样使得算法对相关词的泛化能力不强。

举个例子,假如你已经学到了一个语言模型:Iwantaglassoforange()I \space want\space a\space glass\space of\space orange \space ()Iwantaglassoforange()那么下一个词会是什么?很可能是juicejuicejuice,即使你的算法已经学习到了,我想喝一杯橙子果汁很可能是一个句子,但如果看到Iwantaglassofapple()I \space want\space a\space glass\space of\space apple \space ()Iwantaglassofapple()因为算法不知道苹果和橙子之间的关系比橙子与其它词之间的关系更近,比如男人与女人,国王与王后。

所以算法很难从已经知道的橙子果汁是一个很常见的东西而明白苹果果汁也是很常见的东西或者说是很常见的句子。

这是因为任何两个one-hot向量的内积都是0,如果你取两个向量,比如国王和王后,然后计算它们之间的内积,结果就是0。如果计算苹果与橘子之间的内积,也是0。这些词向量的距离是一样的,所以并没有什么价值。所以无法知道苹果与橘子要比国王与橘子或者王后与橘子要相似很多。

换一种表示方式会不会更好?如果我们不用one-hot表示,而是用特征化的表示来表示每个词,我们学习这些词的特征或数值化。

举个例子,对于这些词,比如我们想知道这些词与性别的关系,假定男性的性别为-1,女性的性别为+1。那么男人的性别值为-1,女人的性别值为1。最终根据经验,国王就是-0.95,王后是0.97,苹果和句子没有性别可言。另一些特征可以是这些词有多高贵,或者是这些词与年龄的关系。还有一个特征是这些词是否是食物。当然还可以有很多其它的特征,从尺寸大小,花费多少,这些东西是不是活的,是不是一个动作,或者是不是名词,或者是不是动词,或者其它的等等。

所以你可以想很多的特征,为了说明,我们假设有300个不同的特征,这样的话,对于每个词就得到一列数字,这样300个不同的特征就组成了一个300维的向量来表示男人等词,接下来,我们会用e_5391这个符号表示男人这个词向量。

现在,如果用这种表示方法来表示橙子、苹果这些词,那么橘子、苹果的这种表示肯定会非常相似,可能有些特征不太一样。因为橘子的颜色、苹果的颜色,两者之间的口味或者其它的一些特征会不太一样。但总的来说,橘子和苹果的大部分特征实际上都一样,或者说都有相似的值。这样对于已经知道橙子果汁的算法,很大几率上它也会明白苹果果汁这个东西。这样对于不同的单词,算法会泛化的更好。

后面我们会介绍词嵌入的办法,我们最终学习的特征不会像这里一样这么好理解,不存在说第一个特征是性别,第二个特征是是否高贵等。新特征表示的东西肯定会更难搞清楚。

尽管如此,接下来要学的特征表示方法却能使算法高效地发现苹果和橘子会比国王与橘子更加相似。

如果我们能学习到一个300维的特征向量,或者说300维的词嵌入,通常我们可以做一件事,把这300维的数据嵌入到一个二维空间里,这样就可以可视化了。

常用的可视化算法是t−SNEt-SNEtSNE算法,来自LaurensvanMaatenLaurens\space van\space MaatenLaurensvanMaatenGeoffHintonGeoff\space HintonGeoffHinton的论文。如果看这些映射过来的结果也是一种表示方法,你会发现男人和女人这些词聚集在一块,国王和王后聚集在一块,这些都是人,也都聚集在一起,动物也聚集在一起,水果也聚集在一起,数字也聚集在一起。如果把生物看成一个整体,它们也聚集在一起。

希望你能有一个整体的概念,这种词嵌入算法对于相近的概念学习到的特征也比较类似,在对这些概念可视化的时候,这些概念就比较相似,最终将它们映射为相似的特征向量,这种表示方式用的是在300维空间里的特征表示,这叫做嵌入(embedding)。之所以叫嵌入的原因是,你可以想象一个300维的空间,取一个单词比如橘子,它对应一个300维的特征向量,所以这个词就被嵌在300维空间里的一个点上。苹果这个词就被嵌在这个300维空间的另一个点上。为了可视化,算法t−SNEt-SNEtSNE把这个空间映射到低维空间,你可以画出一个2维图像然后观察,这就是术语嵌入的来源。

自然语言处理 —— 2.1 词汇表征相关推荐

  1. 2.1 词汇表征-深度学习第五课《序列模型》-Stanford吴恩达教授

    词汇表征 (Word Representation) 上周我们学习了RNN.GRU单元和LSTM单元.本周你会看到我们如何把这些知识用到NLP上,用于自然语言处理,深度学习已经给这一领域带来了革命性的 ...

  2. 词汇表征(Word Representation)

    来源:Coursera吴恩达深度学习课程 自然语言处理中一个很关键的概念就是词嵌入(word embeddings),这是语言表示的一种方式,可以让算法自动的理解一些类似的词.如下图,我们先开始讨论词 ...

  3. 一起来学自然语言处理----语料库和词汇资源

    语料库和词汇资源 1.自然语言工具包(NLTK) 2.获取文本语料 1.语料库 古腾堡语料库 网络和聊天文本 布朗语料库 路透社语料库 就职演说语料库 标注文本语料库 在其他语言的语料库 语料库结构 ...

  4. 吴恩达深度学习之五《序列模型》学习笔记

    一.循环序列模型 1.1 为什么选择序列模型 如图所示是一些序列数据的例子 1.2 数学符号 如图所示,我们用  表示一个序列的第 t 个元素,t 从 1 开始 NLP中一个单词就是一个元素(又称时间 ...

  5. 专栏 | 李航教授展望自然语言对话领域:现状与未来

    来源:机器之心 摘要:原华为诺亚方舟实验室主任.现已加入字节跳动 AI Lab的李航教授近日发表博客,对自然语言对话领域的现状和最新进展进行总结,并展望了未来的走向. 1. 引言 语音助手.智能客服. ...

  6. 深度学习笔记 第五门课 序列模型 第二周 自然语言处理与词嵌入

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  7. 05.序列模型 W2.自然语言处理与词嵌入

    文章目录 1. 词汇表征 2. 使用词嵌入 3. 词嵌入的特性 4. 嵌入矩阵 5. 学习词嵌入 6. Word2Vec 7. 负采样 8. GloVe 词向量 9. 情感分类 10. 词嵌入除偏 作 ...

  8. GitHub项目:自然语言处理领域的相关干货整理

    GitHub项目:自然语言处理领域的相关干货整理 自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域.本文作者为NLP初学者整理了一份庞大的自然语言处 ...

  9. 机器学习词汇翻译解释(2)

    词汇 激活函数(Activation Function) Adadelta Adagrad Adam 仿射层(Affine Layer) 注意机制(Attention Mechanism) Alexn ...

最新文章

  1. 【温故知新】CSS学习笔记(盒子内边距介绍)
  2. 【算法】N Queens Problem
  3. SAP云平台上的Fiori administation工具
  4. java 屏蔽地域性访问_javaweb利用filter拦截未授权请求
  5. JavaScript中String的slice(),substr(),substring()三者区别
  6. matlab7.0 6.5,任何处理matlab6.5与7.0.1的兼容问题
  7. Less(v3.9.0)使用详解—变量
  8. error和warning指令
  9. 使用RTX51 Tiny系统给串口发送——显示时间
  10. 国内三大常见核心期刊体系-CSSCI、CSCD与中文核心
  11. 小白看看!本人自学Python编程经验分享。
  12. Java中的try-catch-finally
  13. 8021什么意思_无线网络标准IEEE802.11n是什么意思
  14. 计算机格式化为ntfs,WinXP下怎么把U盘格式化成NTFS格式?XP下把U盘格式化成NTFS格式图文教程...
  15. http 307重定向
  16. 如何卸载adobe air
  17. IDEA jjsp 404_IDEA 卡住buid(编译)不动的解决办法_java
  18. 计算机学院寝室文明风景线活动,计算机工程学院院文明寝室评选活动圆满结束...
  19. 硬件设计——不一二电路设计(电源电路、接口电路、时钟电路)
  20. 硬件笔记(15)----射频天线知识

热门文章

  1. [原创] VPDN--PPTP Server
  2. 2021年100题Java春招面试题
  3. template 模板是怎样通过 Compile 编译的
  4. C#函数(构造函数)的重载
  5. springboot logback 日志配置
  6. leetcode 实现 strStr()
  7. 【记录】利用jar包制作docker镜像
  8. C#LeetCode刷题之#59-螺旋矩阵 II(Spiral Matrix II)
  9. Mac下matplotlib中文显示
  10. 测试开发面试技巧_面试技巧将给您带来信心并帮助您获得开发工作