摘要:今天带领大家学习自然语言处理中的词嵌入的内容。

本文分享自华为云社区《【MindSpore易点通】深度学习系列-词嵌入》,作者:Skytier。

1 特征表示

在自然语言处理中,有一个很关键的概念是词嵌入,这是语言表示的一种方式,可以让算法自动的理解一些同类别的词,比如苹果、橘子,比如袜子、手套。

one-hot向量

比如我们通常会说:“I want a glass of orange juice.”但如果算法并不知道apple和orange的类似性(这两个one-hot向量的内积是0),那么当其遇到“I want a glass of apple __”时,并不知道这里也应该填写 juice。

如果用特征化的表示来表示库里的每个词,学习它们的特征或者数值。

这样我们就可以选用t-SNE算法来对特征向量可视化,通过观察这种词嵌入的表示方法,最终同类别的单词会聚集在一块,词嵌入算法对于相近的概念,学到的特征也比较类似。

2 词嵌入的使用

参考案例——句中找人名:Jack Li is a teacher.

使用词嵌入作为输入训练好的模型,如果看到一个新的输入:“Jack Li is a farmer.”因为知道teacher和farmer很相近,那么算法很容易就知道Jack Li是一个人的名字。同时,如果遇到不太常见的单词,比如:Jack Li is a cultivator.(假设训练集里没有cultivator这个单词),但是词嵌入的算法通过考察大量的无标签文本,会发现farmer、teacher、cultivator相近,把它们都聚集在一块。这样一来即使只有一个很小的训练集,但是使用迁移学习,把从大量的无标签文本中学习到的知识迁移到一个任务中——比如少量标记的训练数据集的命名实体识别任务。

如何用词嵌入做迁移学习的步骤:

1.先从大量的文本集中学习词嵌入。

2.用这些词嵌入模型把它迁移到新的只有少量标注训练集的任务中,比如说用300维的词嵌入来表示单词,这样就可以用更低维度的特征向量代替原来的10000维的one-hot向量。

3.当在新的任务上训练模型时,只有少量的标记数据集,可以选择不进行微调,而是用新的数据调整词嵌入。

当你的任务的训练集相对较小时,词嵌入的作用最明显,所以它广泛用于NLP领域,但是其对于一些语言模型和机器翻译并不适用。

3 类比推理

词嵌入有一个非常强大的特性就是可以帮助实现类比推理。比如从性别这个特征上来说,如果man应该对应woman,那么算法可以推导出king对应queen。

最常用的相似度函数是余弦相似度,假如在向量u和v之间定义相似度:

如果u和v非常相似,那么它们的内积将会很大,那么该式就是u和v的夹角Φ的余弦值,实际就是计算两向量夹角Φ角的余弦。夹角为0度时,余弦相似度就是1,当夹角是90度角时余弦相似度就是0,当夹角是180度时相似度等于-1,因此角度越小,两个向量越相似。

点击关注,第一时间了解华为云新鲜技术~

带你了解NLP的词嵌入的更多相关文章

  1. DLNg序列模型第二周NLP与词嵌入

    1.使用词嵌入 给了一个命名实体识别的例子,如果两句分别是“orange farmer”和“apple farmer”,由于两种都是比较常见的,那么可以判断主语为人名. 但是如果是榴莲种植员可能就无法 ...

  2. NLP领域的ImageNet时代到来:词嵌入「已死」,语言模型当立

    http://3g.163.com/all/article/DM995J240511AQHO.html 选自the Gradient 作者:Sebastian Ruder 机器之心编译 计算机视觉领域 ...

  3. Coursera Deep Learning笔记 序列模型(二)NLP & Word Embeddings(自然语言处理与词嵌入)

    参考 1. Word Representation 之前介绍用词汇表表示单词,使用one-hot 向量表示词,缺点:它使每个词孤立起来,使得算法对相关词的泛化能力不强. 从上图可以看出相似的单词分布距 ...

  4. NLP之基于词嵌入(WordVec)的嵌入矩阵生成并可视化

    词嵌入 @ 目录 词嵌入 1.理论 1.1 为什么使用词嵌入? 1.2 词嵌入的类比推理 1.3 学习词嵌入 1.4 Word2Vec & Skip-Gram(跳字模型) 1.5 分级& ...

  5. NLP︱高级词向量表达(二)——FastText(简述、学习笔记)

    FastText是Facebook开发的一款快速文本分类器,提供简单而高效的文本分类和表征学习的方法,不过这个项目其实是有两部分组成的,一部分是这篇文章介绍的 fastText 文本分类(paper: ...

  6. 斯坦福NLP课程 | 第12讲 - NLP子词模型

    作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...

  7. cips2016+学习笔记︱简述常见的语言表示模型(词嵌入、句表示、篇章表示)

    在cips2016出来之前,笔者也总结过种类繁多,类似词向量的内容,自然语言处理︱简述四大类文本分析中的"词向量"(文本词特征提取)事实证明,笔者当时所写的基本跟CIPS2016一 ...

  8. NLP︱高级词向量表达(一)——GloVe(理论、相关测评结果、R&python实现、相关应用)

    有很多改进版的word2vec,但是目前还是word2vec最流行,但是Glove也有很多在提及,笔者在自己实验的时候,发现Glove也还是有很多优点以及可以深入研究对比的地方的,所以对其进行了一定的 ...

  9. DeepNLP的核心关键/NLP词的表示方法类型/NLP语言模型 /词的分布式表示/word embedding/word2vec

    DeepNLP的核心关键/NLP语言模型 /word embedding/word2vec Indexing: 〇.序 一.DeepNLP的核心关键:语言表示(Representation) 二.NL ...

随机推荐

  1. 检查原生 JavaScript 函数是否被覆盖

    你如何确定一个JavaScript原生函数是否被覆盖? 你不能--或者至少无法可靠地确定.有一些检测方法很接近,但你不能完全相信它们. JavaScript原生函数 在JavaScript中,原生函数 ...

  2. 从原理剖析带你理解Stream

    摘要:Stream是jdk1.8给我们提供的新特性 本文分享自华为云社区<深入理解Stream之原理剖析>,作者: 李哥技术 . Stream是jdk1.8给我们提供的新特性,主要就是允许 ...

  3. Java中数组

    数组的定义格式: 1: 数据类型[] 数组名 2: 数据类型 数组名 动态初始化: 初始化的时候 系统会默认给数组赋值 数据类型[] 变量名 = new 数据类型[数组长度] int[] arr = ...

  4. 教大家怎么看monaco-editor的官方文档

    最近业务中有用到浏览器在线编辑器,用的是monaco-editor,官网文档只在首页介绍了npm安装方式. 但其实还有另外一种<script>的引入方式,但是这种方式体现在API文档中,由 ...

  5. Centos_yum使用

    安装应用 yum install -y xxx -y 表示自动yes 卸载应用 yum -y remove xxx -y 表示自动yes 查看已安装的应用 yum list installed

  6. WSUS下载速度和BITS服务

    近日,新装了一台WSUS服务器.选择好需要同步的补丁类型和语言版本后开始等待同步.通过过程异常缓慢,速度一直上不去.同步了一整天才30G,同步3T数据需要100天.这样肯定没办法用,所以要想办法提高下 ...

  7. day04-1群聊功能

    多用户即时通讯系统04 4.编码实现03 4.5功能实现-群聊功能实现 4.5.1思路分析 群聊的实现思路和私聊的实现非常类似. 不同的是:私聊时,服务端接收到消息后,只需要找出接收方的socket并 ...

  8. Docker与Containerd使用区别

    文章转载自:https://cloud.tencent.com/developer/article/1984040 Kubernetes 在 1.24 版本里弃用并移除 docker shim,这导致 ...

  9. ProxySQL(9):ProxySQL的查询缓存功能

    文章转载自: https://www.cnblogs.com/f-ck-need-u/p/9314459.html ProxySQL支持查询缓存的功能,可以将后端返回的结果集缓存在自己的内存中,在某查 ...

  10. Elasticsearch启动https访问

    Elasticsearch上操作 前提:已设置密码访问 ./bin/elasticsearch-certutil ca # 生成elastic-stack-ca.p12文件 ./bin/elastic ...