【王树森】RNN模型与NLP应用(2/9):文本处理与词嵌入(个人向笔记)

数据集

本次课将使用下列数据集:关于电影评价的数据集。
在这里插入图片描述
下面是数据集的信息:
在这里插入图片描述
下载链接:

  • https://ai.stanford.edu/~amaas/data/sentiment/
  • http://s3.amazonaws.com/text-datasets/aclImdb.zip

Text to Sequence

文本处理的好坏很重要,直接影响到机器学习模型的准确率。

Step1:Tokenization

这里将一个单词作为一个token,有些时候还可以将一个字符作为一个token
在这里插入图片描述
讲究的点有如下:

  • 是否将大写转为小写?(Apple 和 apple)有些时候Apple表示苹果公司,而apple表示苹果。
  • 是否应该将类似于the, a, of之类的单词移除?这些单词对二分类问题是没有帮助的。
  • 是否纠正拼写错误?(goood to good)

在实际的应用过程中,Tokenization重要且繁琐。

Step2:Build Dictionary

该过程与上节课讲的一致:
在这里插入图片描述

Step3:One-Hot 编码

在这里插入图片描述

  • 每个人的评论长度不同,sequence的长度不同,这就意味着数据没有进行对齐。
  • 而在机器学习中,我们需要把数据存储在矩阵或者tensor里面,这就需要我们把序列对其,每条序列都有相同的长度。

解决方法:

  • 固定序列长度为w,只保留前面w个词或者后面w个词。
  • 若一个序列太短,长度不到w,则补0。
    在这里插入图片描述
    这样数据就成功被对齐(Aligned)了。

Word Embedding:Word to Vector

  • 若采用One-Hot编码,则向量的维度正比与vocabulary的个数,这样编码就太大了。
  • 因此,我们需要把One-Hot的高维向量映射到低维向量。
  • 方法如下:我们利用矩阵变换来实现:乘上一个矩阵P的转置,而这个矩阵P的参数是从训练中得到的:v是原来词向量的维度,d是变换后的词向量维度。其中d是用户自行决定的,会影响模型的表现,在实现中需要用Cross-Validation进行筛选。
    在这里插入图片描述
  • 下面的参数矩阵P是从文本中训练得来的,会带有感情色彩的信息:由于最终的词向量是二维的,所以可以反映在一个二维平面上。其中感情色彩接近的词会彼此接近,而相反的则会原理,而中性词则会偏中间。
    在这里插入图片描述
    如下图所示,我们在训练过程中需要下列几个参数,这些参数都需要通过交叉验证(Cross-Validation)来确认:
  • vocabulary: 词汇表的总词数。
  • embedding_dim: 变换后的向量维度。
  • word_num: 在文本中取多少个词来进行评估。
  • Param: 参数量,即矩阵P的参数量,计算方法为行乘以列,需要用多少的参数量来实现高维到低维的转化。
    在这里插入图片描述

逻辑回归进行二分类

Step1

  • 使用Keras框架,导入keras相关的包
  • 设置最后的词向量维度为8
  • Sequential可以用来存储一系列的模型
  • 首先对vocabulary做一个Embedding,取文本中word_num个词,输出20个8维的词向量
  • 把这些词向量展平成1个160维的向量
  • 最后用一个全连接层,激活函数用sigmoid
  • summary()把这些模型的信息打印出来
    在这里插入图片描述

Step2

  • 设置训练50个epoch
  • compile指定优化器,学习率,损失函数,和评估标准
  • fit表示开始训练,train和vaild分别指定训练集和验证集
    在这里插入图片描述
    在这里插入图片描述
    在测试集上的表现:大约有75%的准确率,大于随机,小于人的表现。
    在这里插入图片描述

流程总览

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

Text Processing in Keras(视频中无的代码实现)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值