第六课 从词向量到NLP分类问题

文章目录

  • 1 nlp的常见任务
  • 2 词向量表示
    • 2.1 离散表示
    • 2.2 分布式表示
    • 2.3 NNLM(2013年)
      • 2.3.1模型
      • 2.3.2特点
    • 2.4 Word2Vector:CBOW连续词袋
      • 2.4.1 样本处理
      • 2.4.2 结构
      • 2.4.3 CBOW:层次softmax
      • 2.4.4 CBOW:负例采样
      • 2.4.5 Word2Vec:skip-gram模型
      • 2.4.6 word2vec存在的问题
      • 2.4.6 word2vec优点

1 nlp的常见任务

分词
词性标注
自动摘要
指代消解
机器翻译
主题识别
文本分类

2 词向量表示

文本不同于图片与视频。图片与视频天然是以二进制形式表示的,计算机能够处理。
文本是人造的,只有人可以懂,怎么让计算机读懂,需要使用词向量

表示方式要能够解决:
1 需要保证词的相似性
例如 frog toad rana 相似

2 向量空间分布的相似性
英语中的1 2 3 4 要和西班牙语的 1 2 3 4 分布相似

3 向量空间子结构
向量是可以用于运算的

2.1 离散表示

1 one-hot
2 bag of words
文档的向量可以直接将各词的词向量表示加和。
在这里插入图片描述

3 tf-idf
4 bi-gram和n-gram

离散表示的问题:
1 没有办法衡量词向量之间的关系
2 词表维度随着语料库膨胀
3 n-gram 随着语料库膨胀更快
4 数据稀疏问题

2.2 分布式表示

用一个词附近的词表示这个词。
局域窗中的word-word共现矩阵可以挖掘语法和语义信息。
例如:
I like deep learning.
I like NLP.
I enjoy flying.
如果窗口为1(一般在5-10之间),那么可以得到这样的矩阵。
在这里插入图片描述

这是一个对角阵。
I和like 出现2次
I和enjoy出现1次…

存在的问题:

•向量维数随着词典大小线性增长
• 存储整个词典的空间消耗非常大
• 一些模型如文本分类模型会面临稀疏性问题
• 模型会欠稳定

SVD降维

2.3 NNLM(2013年)

NNLM=Neural Network Language Model
以下内容转载自CSDN博主「马飞飞」的原创文章。

NNLM是从语言模型出发(即计算概率角度),构建神经网络针对目标函数对模型进行最优化,训练的起点是使用神经网络去搭建语言模型实现词的预测任务,并且在优化过程后模型的副产品就是词向量。

进行神经网络模型的训练时,目标是进行词的概率预测,就是在词环境下,预测下一个该是什么词,目标函数如下式, 通过对网络训练一定程度后,最后的模型参数就可当成词向量使用.
在这里插入图片描述

2.3.1模型

NNLM的网络结构(四层神经网络)如右图,主要参数有:

  [1]词库大小(假定有8W个词)            [2]转化的词向量大小(假定为300维长度)            [3]输入层神经元数(即词的滑动窗口容量,假定滑窗大小为4)            [4]隐层神经元数量(假定为100个)            [5]输出层神经元数(对应词容量,有8W个)[6]由输入层到投影层的矩阵C(一个大的矩阵,大小为8W*300,是最后求解的目的,开始时随机初始化)          [7]从投影层到隐层的权值矩阵H和偏置矩阵B          [8]从隐层到输出层的权值矩阵U和偏置矩阵D

在这里插入图片描述
现在咱们针对NNLM模型,由下往上进行分析:

1 每次从语料库中滑动4个数据,将其中前三个词转为one-hot编码形式,将三个one-hot形式作为输入喂入网络。

2 从输入到映射层所做的事情是(one-hot向量 * 矩阵C),这里词的one-hot编码会根据为1的位置去对应C矩阵,去抽出对应位置的300维的词向量,将此向量作为投影层的输出。

在这里插入图片描述

3 上一步投射层会将词的one-hot表示表示成300维的稠密向量,从投影层到隐层是一种全连接的连接方式,参数的数量是3*100个,每个隐层神经元有3条线相连接,最后使用tan函数结合H与B获取激活输出。

4 从隐层到输出层也是一直全连接的形式,连接线数量为100*8W,使用softmax函数结合U与D获取最后的概率输出。

5 计算交叉熵损失函数值,以梯度下降方式进行反向传播,在反向传播过程中对参数矩阵C、H、B、U、D进行更新。(C、H、B、U、D分别指什么?)

通过不断的喂入批次数据,对网络进行反向传播调参,最后训练出一个进行词预测任务的模型,并将训练好模型中的C矩阵里的每一列都作为,对应于one-hot编码中位置为1词的词向量(大小为1*300),这个词向量就是我们要转化的结果。

2.3.2特点

优点:使用NNLM模型生成的词向量是可以自定义维度的,维度并不会因为新扩展词而发生改变,而且这里生成的词向量能够很好的根据特征距离度量词与词之间的相似性。例如上面就固定是300维。
缺点:计算复杂度过大,参数较多(word2vec是一种改进)。
在这里插入图片描述

每个训练样本的计算复杂度:NxD+NxDxH+HxV
这一段的描述还可以参考知乎讲得更详细。

2.4 Word2Vector:CBOW连续词袋

NNLM太复杂了。

2.4.1 样本处理

一个滑窗长度n=5。在滑窗范围内以中间词为预测对象,左右词作为上下文。
例如:我|爱|吃|海底捞|火锅。以我,爱,海底捞,火锅这4个词作为上下文,预测中间的词应该是吃。

2.4.2 结构

输入是4个 Vx1的向量,上一步中的矩阵C是DxV维度,每一个Cx向量=一个Dx1的向量。将这4个向量相加,作为输入送入softmax,预估中心词。
与NNLM的区别就是去掉了隐藏。
在这里插入图片描述

2.4.3 CBOW:层次softmax

上面W矩阵(也就是从SUM到输出层)需要DxV维度。V有点大。

Huffman tree 可以根据词频对词典中的词做编码。编码之后频率高的词编码长度短。这棵树的深度为log2Vlog_2Vlog2V

那么输出层是一个若干次的二分类。

计算:对数似然

2.4.4 CBOW:负例采样

正确的词:吃
负利:不是吃的词,可以取300个左右。取哪些词?

词典中的每个词对应线段的每一小段。
线段长度=counter(w)∑u∈Dcounter(u)\dfrac{counter(w)}{\sum_{u \in D} counter(u)}uDcounter(u)counter(w)

将[0,1]划分为M=10810^8108等分,每次随机生成[1,M]的一个数,看落在哪个词对应的部分上。所以出现频次高的词更可能被选择。

2.4.5 Word2Vec:skip-gram模型

用中心词预测周边词

2.4.6 word2vec存在的问题

1 对每个local context window 单独训练,没有用包含在gobal co-currence矩阵中的信息。
2 一词多义不能表示,每个词有唯一的向量。

2.4.6 word2vec优点

在这里插入图片描述
在这里插入图片描述

word2vec可以保证词的相似性
能够发现woman-man结果和queue-king相似

工具库 google word2vec,这是c++版本的。
工具gensim里面集成了word2vec,fast-text等工具。详见链接。
使用word2vec+CNN做文本分类。 详见链接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring mvc学习(34):restful的delete

创建maven项目就不说了&#xff0c;需要的找我前面的博客 pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http…

热度3年猛增20倍,Serverless云开发的技术架构全解析

『 作为一个不断发展的新兴技术&#xff0c; Serverless 热度的制高点已然到来。』 或许&#xff0c;Google Trends 所显示的 3 年猛增 20 倍的“ Serverless ” 搜索量&#xff0c;可以佐证 Serverless 在整个行业中的火爆程度。 不仅如此&#xff0c;据 KBV 研究公司新发布的…

第七课 循环神经网络与自然语言处理

文章目录1 循环神经网络1.1 场景与多种应用1.2 RNN网络结构1.2.1为什么需要RNN1.2.2 RNN 结构1.3 多种RNN1.4 BPTT算法1.5 生成模型与图像描述2 LSTM2.1 LSTM2.2 GRU1 循环神经网络 1.1 场景与多种应用 1 模仿论文生成 2 模仿linux内核编写代码 3 模仿小四写论文 4 机器翻译 …

第十二题:设int x=1,float y=2,则表达式x/y的值是:

第十二题 设int x1,float y2,则表达式x/y的值是&#xff1a;&#xff08;&#xff09; A 0 B 1 C 2 D 以上都不是 懵逼树上懵逼果&#xff0c;懵逼树下你和我 首先看到这道题&#xff0c;我是懵逼和绝望的。 首先我们打开评论&#xff0c;看看谁的赞最多&#xff0c;拿…

Linux 安装 lanmp

Lanmp介绍 lanmp一键安装包是wdlinux官网2010年底开始推出的web应用环境的快速简易安装包. 执行一个脚本&#xff0c;整个环境就安装完成就可使用&#xff0c;快速,方便易用,安全稳定 lanmp一键安装包是用shell脚本编写,且是开源的,你也可以根据业务需求,做相应的调整,来安装自…

如何利用Featue对特定的文档库或列表添加listviewtoolbar上的button

名字有点长&#xff0c;实在想不出什么好名字。 我们经常会遇到一个问题&#xff0c;就是需要在某一个列表或者文档库视图画面的listviewtoolbar上添加一个按钮来做一些操作。比如说页面跳转&#xff0c;列表操作等。目前很多人都知道利用Feature来添加这个button&#xff0c;而…

第八课 RNN条件生成与Attention机制

文章目录1 RNN条件生成2 机器翻译2.1 V1:Encoder-Decoder2.2 V2:Attention-based Encoder-decoder2.3 V3&#xff1a;bi-directional encode layer2.4 V4&#xff1a;Residual Encode layer3 Attention3.1 self attention3.2 hierarchical attention4 图像生成文本4.1 问题引入…

第十四题: 以下代码的输出结果是?

第十四题: 以下代码的输出结果是&#xff1f; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public class B { public static B t1 new B(); public static B t2 new B(); { System.out.println("构造块"); } static { Syst…

第一百二十三期:免费在线制图神器!不上水印支持中文版,GitHub标星已破1万2

又一免费制图神器来袭&#xff01;打开网页就能使用&#xff0c;支持中文版&#xff0c;也不会给你上水印。 作者&#xff1a;乾明 又一免费制图神器来袭&#xff01; 名为draw.io&#xff0c;打开网页就能使用&#xff0c;支持中文版&#xff0c;也不会给你上水印。 不只是…

常用javascript脚本

BS开发中常用的Javascript技术 一、验证类 1、数字验证内 1.1 整数 1.2 大于0的整数 &#xff08;用于传来的ID的验证) 1.3 负整数的验证 1.4 整数不能大于iMax 1.5 整数不能小于iMin 2、时间类 2.1 短时间&#xff0c;形如 (13:04:06) 2.2 短日期&#xff0c;形…

第一百二十四期:2019年臭名昭著的勒索软件,网络钓鱼和僵尸网络

Webroot发布了年度恶意软件列表&#xff0c;展示了2019年最臭名昭著的网络安全威胁。从攻击次数最多的勒索软件和加密挖矿&#xff0c;到破坏最大的网络钓鱼攻击&#xff0c;显然&#xff0c;全球网络威胁正在变得更为先进且难以预测。 作者&#xff1a;kirazhou 勒索软件 在…

好久没发胡说八道的贴了,今天发一贴

看了老翅寒暑 [真实案例&#xff1a;给所有想要创业的朋友的一个管理方面的测试题]一贴http://www.cnblogs.com/BigTall/archive/2006/12/20/597896.html这是一个真实的事件&#xff0c;我把它转化为了一个测试题目&#xff0c;问过很多朋友&#xff0c;到目前为止我认为答满分…

N元语法模型的数据稀疏问题解决方法之一:Good-Turing平滑

转载自时空霹雳 在统计语言模型章节中&#xff0c;我们谈到了N元语法模型不可避免的一个问题&#xff0c;就是数据稀疏&#xff0c;其原因是大规模语料统计与有限语料的矛盾。根据齐普夫&#xff08;Zipf&#xff09;法则&#xff0c;我们能够推测知零概率问题不可避免。数据稀…

错误: 在类中找不到 main 方法, 请将 main 方法定义为:public static void main(String[] args)否则 JavaFX 应用程序类必须扩展javafx.ap

最近在使用eclipse编写java程序时遇到这样一个问题&#xff1a; 错误在类中找不到main方法&#xff0c;请将main方法定义为 public static void main(String[] args)否则 JavaFX 应用程序类必须扩展javafx.application.Application 看到这样的问题让我一头雾水&#xff0c;因为…

第十章 条件随机场CRF

文章目录1 条件随机场定义1.1 马尔科夫随机场1.1.1 用图模型表示概率1.1.3 三个马尔科夫性1.1.3 重点再看局部马尔科夫性1.2 马尔科夫随机场的因子分解1.3 条件随机场1.4 线性链条件随机场2线性链条件随机场的表示形式2.1 参数化形式2.2 简化形式2.3 矩阵形式3 条件随机场的概率…

第一百二十五期:程序员的自我救赎,使用Python开发性格分析工具

如此不均衡的贫富差距&#xff0c;各行业的领导者如何能管理好公司&#xff0c;让员工们既努力产出&#xff0c;又能安于现状呢?每个领导者必学的一门课程就是职场心理学。只有你充分了解员工心理与对应的行为表现&#xff0c;才能从容的掌控各类型的人员&#xff0c;从而达到…

笛卡尔乘积算法的体现

一个商品有多项属性&#xff0c;多项属性的组合就产生不同的商品型号如&#xff1a;衣服&#xff1a;颜色&#xff1a;红、绿尺寸&#xff1a;大、中、小产生的系列就有&#xff1a;红|大、红|中、红|小、绿|大、绿|中、绿|小如果商品的属性不至两个&#xff0c;则产生的系列会…

知识图谱基础

本系列是学习七月算法知识图谱课程的笔记。感觉自己完全就是一个托儿。前面七月算法机器学习&#xff0c;七月算法深度学习的笔记。现在又来了知识图谱课程的笔记。 文章目录1 why知识图谱2 知识图谱前世今生3 知识图谱相关技术4 知识图谱应用案例1 why知识图谱 没有知识图谱&…

第一百二十六期:代码以外的生存之道,献给每位入了坑的码农

本篇内容主要是对这本书的一个总结概括&#xff0c;也希望能用作抛砖引玉&#xff0c;让读者在看完之后&#xff0c;对这本书有所兴趣&#xff0c;或者希望能让读者对代码以外的需要做的事情更加积极明朗一点。 作者&#xff1a;码农三哥 前言 最近刚刚读完了一本书&#xf…

【UOJ 51】最接近神的人

【题目描述】&#xff1a; 破解了符文之语&#xff0c;小FF开启了通往地下的道路。当他走到最底层时&#xff0c;发现正前方有一扇巨石门&#xff0c;门上雕刻着一幅古代人进行某种活动的图案。而石门上方用古代文写着“神的殿堂”。小FF猜想里面应该就有王室的遗产了。但现在的…