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

本文分享自华为云社区《【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. 第四十六篇:工程化概念以及什么是webpack

    好家伙,这波是概念补充 1.什么是工程化概念? 我的开发: 开个项目,想怎么改怎么改,拉个东西过来就用 实际的前端开发: (1) 模块化(js的模块化,css的模块化,资源的模块化) (2) 组件化( ...

  2. 安卓平台RTMP推流或轻量级RTSP服务(摄像头或同屏)编码前数据接入类型总结

    很多开发者在做Android平台RTMP推流或轻量级RTSP服务(摄像头或同屏)时,总感觉接口不够用,以大牛直播SDK为例 (Github) 我们来总结下,我们常规需要支持的编码前音视频数据有哪些类型 ...

  3. 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(18)-Fiddler如何接口测试,妈妈再也不担心我不会接口测试了

    1.简介 Fiddler最大的优势在于抓包,我们大部分使用的功能也在抓包的功能上,fiddler做接口测试也是非常方便的. 领导或者开发给你安排接口测试的工作任务,但是没有给你接口文档(由于开发周期没 ...

  4. Taurus.MVC 微服务框架 入门开发教程:项目集成:6、微服务间的调用方式:Rpc.StartTaskAsync。

    系统目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...

  5. .env[mode]文件中如何添加注释

    前言 Vue-Cli 允许我们在项目根目录创建.env.[mode]文件来设置一些打包编译的启动参数,通过执行脚本的时候加mode参数,指定不同环境需要加载的配置文件 形如: .env.prod NO ...

  6. 四、frp内网穿透服务端frps.ini各配置参数详解

    [必须]标识头[common]是不可或缺的部分 [必须]服务器IPbind_addr = 0.0.0.00.0.0.0为服务器全局所有IP可用,假如你的服务器有多个IP则可以这样做,或者填写为指定其中 ...

  7. Elasticsearch API响应的一些常用选项

    我们可以点击Elasticsearch API以获取所需的响应,但是如果要修改API响应,以便我们更改显示格式或过滤掉某些字段,然后我们可以将这些选项与查询一起应用. 有一些常见的选项可以适用于API ...

  8. 堆Pwn:House Of Storm利用手法

    0x00:介绍 利用手法的背景: house of storm是一种结合了unsorted bin attack和Largebin attack的攻击技术,其基本原理和Largebin attack类 ...

  9. Module加载的详细说明-保证你有所收获

    模块 HTML 网页中,浏览器通过<script>标签加载 JavaScript 脚本. <!-- 页面内嵌的脚本 --> <script type="appl ...

  10. Java删除word合并单元格时的重复值

    Spire.Doc提供了Table.applyVerticalMerge()方法来垂直合并word文档里面的表格单元格,Table.applyHorizontalMerge()方法来水平合并表格单元格 ...