【《情绪文本分析中词向量模型构建案例概述》2500字】_第1页
【《情绪文本分析中词向量模型构建案例概述》2500字】_第2页
【《情绪文本分析中词向量模型构建案例概述》2500字】_第3页
【《情绪文本分析中词向量模型构建案例概述》2500字】_第4页
【《情绪文本分析中词向量模型构建案例概述》2500字】_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

情绪文本分析中词向量模型构建案例概述目录TOC\o"1-2"\h\u5386情绪文本分析中词向量模型构建案例概述 1293311.1one-hot表示 1124701.2基于分布式表征表示的Word2vec 2251551.3Glove模型 3310221.4实验 490661.5本章小结 5深度学习中模型的输入必须是计算机可以识别的数字,而经过预处理和jieba分词之后的数据仍然是中文文字的形式。将句子中的单词转化为计算机能识别的数字组合就需要通过训练模型构建词典,将各个单词与数字序列进行匹配,将单词转化为数字组合,句子转化为多个单词的组合,这样就可以得到标准化的深度学习模型的输入。本文采用了三种模型方法训练词典,分别为one-hot模型、Word2Vec模型、Glove模型,下面介绍一下其原理及构建过程。1.1one-hot表示将词向量用one-hot模型来表征是最简单方法。在训练词向量之前,将数据进行清洗和分词之后得到了一个包含所需要的所有词的词表。构建词向量的过程如下:首先是对词表中的每个词进行编号,获取到的词表的长度并设置为n,则对于每一个词的表征向量对应为一个n维向量,且只在其对应位置上的值为1,其他位置都是0。图1.1one-hot模型向量图如图1.1所示,one-hot向量的思想是将每个单词表示为完全独立的实体,然而这会造成三个问题。首先是由于本文使用的语言文本不是无序的随机序列,一般一个词的之后还可以通过其他的组合形成不同意义的词语,甚至是长词语,这些词语往往拥有单个词语无法表示的意义,由于词表中的词不具有序列关系,因此这种模型形成的词向量也没有序列关系。其次是无法使用词向量来比较各个词语之间的相关性和相关词之间的语义距离,一般称为语义鸿沟,这意味着,one-hot模型形成的各个词向量之间的距离是相等的。最后就是容易造成维度灾难,即在数据高维度的情形下,由于其编码方式数据样本会很稀疏,且不会计算词语之间的距离,这就会造成下游模型计算距离时十分困难,给下游模型造成很大的负担。使用one-hot模型构建词典的方式是很简单的,词语和编码视为一对键值对即可使用。1.2基于分布式表征表示的Word2vec为了解决one-hot所带来的无序性的问题,N-gram模型仅用之前的n个文本来计算当前文本的条件概率,从而得出整个文本的概率并使编码具有序列特征,然而N-gram模型依旧没有解决维度爆炸的问题。因此,人们将表征对象的维度进行压缩,在较小的空间中用连续的稠密向量来描述每个对象的抽象特征,在稠密向量中,一个维度对应一个特定的抽象属性。为了表示词向量之间的关系,还可以设计一个函数模型,使得向量可以表示成概率,这样意思相近的词向量就可以在一个向量空间,从而将N-gram模型得到的概率信息也整合到向量之中。维度爆炸的问题就依此被很好地解决了,模型也具有了序列特征。这就是分布式表征,word2vec算法就是基于这种算法。word2vec包括两个模型和两个提速手段,下面进行介绍。首先是CBoW模型,CBoW模型的思路就是输入中间词前后共C个词,预测中间词,在这个过程中训练出我们需要的词向量构成的矩阵。其模型结构如图1.2所示:图1.2CBoW模型图在图1.2中,w表示第k个中心词的前后C个上下文的one-hot向量,图中C为2。将其向存放词向量的矩阵WV×N进行输入,之后进行查表,其中词表的大小为V,词向量的维度为N。然后将查表得到的上下文向量进行求和,再通过一个N×V的矩阵映射到输出层,这样就对目标词进行了预测,也叫做学习的过程,在CBoW模型中,中心词前后的词都会进行输入,以此来预测目标词。预测的过程,也就是学习的过程,也是获得词向量的过程。相反的,在Skip-gram中,模型中是输入的是目标词,之后再对上下文文本的预测,在这个相反的过程中,模型得到词向量。其模型结构如图1.3所示:图1.3Skip-gram模型图从图1.3中不难看出,这就是CBoW模型的逆过程。之后计算输入向量和输出向量的余弦相似度,然后进行Softmax即可。层次Softmax是通过构造一个Huffman树即最优二叉树,将复杂的归一化进行拆解,通过最优二叉树的结构特征进行分解,将其转化为一系列二分类的条件概率相乘的形式,同时将复杂度从V降低到logV1.3Glove模型对于Word2vec,在训练词向量时,都是根据局部语料对中心词进行预测,在使用神经网络进行训练的过程中,只对整个语料库部分建模,并没有考虑到的全局信息。Glove则解决了这种缺点,它既能通过训练得到维度固定的词向量,又能考虑到所获得的语料的全局信息,充分考虑其全局特征。Glove使用了SVD技术,SVD分解就是奇异值分解,它将一个复杂矩阵分解,让这个矩阵转换为更小更简单的几个子矩阵的乘积,这些小矩阵是复杂矩阵特征值和特征向量的变换分解。Glove相对于Word2Vec,需要提前统计词共现矩阵,并将其整合到代价函数之中,使得训练结果具有整体特征。在共现矩阵X中,j表示第j个单词,i表示第i个单词,整体意思是第j个单词出现距离第i个单词小于等于n的位置上的次数,此时设置的窗口长度就是n,然后使用这个窗口遍历整个语料库,则得到了共现矩阵X。代价函数为公式(1.1)所示:J=i,jN(其中,为训练所得到的词向量,为偏差量,为共现矩阵中的元素。1.4实验实验中所使用的语料是从Wiki开源网站中下载的3.8G的文本文件。one-hot向量可以直接生成,无需训练。Glove模型目前只有一个C版本,无法训练,只能通过将Glove转换成Word2vec再进行训练,因此本次实验直接使用Glove包。使用Gensim训练Word2vec的过程代码如图1.4所示。图1.4使用Gensim训练Word2vec的过程代码图使用同一个LSTM模型建模的情况下分别使用one-hot、Word2vec、Glove构建词向量其准确率对比如表1.1所示。表1.1词向量对比模型准确率one-hot49.08%Word2vec55.23%Glove57.67%由表1.1的结果,得到word2ve和Glove比one-hot效果好。1.5本章小结本章主要介绍了词向量构建的三种方法,one-hot、Glove、Word2vec方法,并通过实验进行了对比。其中one-hot方法认为每个单词是完全独立的存在,不考虑其上下文,只单纯的按照固定长度构建向量,其中长度即为词典的长度也是词向量的维度,这造成了序列问题和维度爆炸问题。Word2vec使用CBoW模型、Skip-gram模型,并同时使用层次Softmax技术、负采样技术训练模型预测中心词来得到词

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论