NLP入门--新闻文本分类Task5


上一个task4利用了fasttext,但不是最优的思路方法,因此本章将继续学习基于深度学习的文本分类。

学习目标

  • 学习Word2Vec的使用和基础原理
  • 学习使用TextCNN、TextRNN进行文本表示
  • 学习使用HAN网络结构完成文本分类

文本表示方法 Part3

词向量( word2vec)

基本思想

基于词的上下文环境进行预测,对于每一条输入文本,选取一定大小的窗口的上下文和一个中心词,并基于这个中心词去预测窗口内其他词出现的概率。
在这里插入图片描述

基本思路

通过单词和上下文彼此预测

两种算法

  • Skip-grams (SG):由中心词预测上下文

  • Continuous Bag of Words (CBOW):由上下文预测目标单词
    输入层向量维度为Vx1,其中V为训练样本中词的个数,输入层到隐藏层的权重矩阵维度为VxN,其中,N为选定的词向量维度,隐藏层到输出层的权重矩阵为 U(维度为N x V),输出层的向量为 Y(维度为V x 1),输出层就是一个softmax层求概率。
    在这里插入图片描述

两种加快训练的方法

  • Hierarchical softmax
    基于霍夫曼树的原理,为了避免要计算所有词的softmax概率,word2vec采样了霍夫曼树来代替从隐藏层到输出softmax层的映射。
  • Negative sampling(负采样)
    负采样每次让一个训练样本仅仅更新一小部分的权重,这样就会降低梯度下降过程中的计算量

TextCNN

论文基础:Yoon Kim在论文(2014 EMNLP) Convolutional Neural Networks for Sentence Classification提出TextCNN。TextCNN利用CNN(卷积神经网络)进行文本特征抽取,不同大小的卷积核分别抽取n-gram特征,卷积计算出的特征图经过MaxPooling保留最大的特征值,然后将拼接成一个向量作为文本的表示。
在这里插入图片描述
详细原理如下:
在这里插入图片描述

  • Embedding:第一层是图中最左边的7乘5的句子矩阵,每行是词向量,维度=5,这个可以类比为图像中的原始像素点。
  • Convolution:然后经过 kernel_sizes=(2,3,4) 的一维卷积层,每个kernel_size 有两个输出
    channel。
  • MaxPolling:第三层是一个1-max pooling层,这样不同长度句子经过pooling层之后都能变成定长的表示。
  • FullConnection and Softmax:最后接一层全连接的 softmax 层,输出每个类别的概率。

TextRNN

TextRNN利用RNN(循环神经网络)进行文本特征抽取,由于文本本身是一种序列,而LSTM天然适合建模序列数据。TextRNN将句子中每个词的词向量依次输入到双向双层LSTM,分别将两个方向最后一个有效位置的隐藏层拼接成一个向量作为文本的表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值