NLP学习笔记(二):文本分类与词嵌入

文本分类与词嵌入(Text Processing and Word Embedding)

数据集(Dataset)

本节课使用IMDb影评数据作为数据集。其包含有5万条影评文本,每段文本都有很明确的正向/负向情感(即为一个二分类问题)。其中2万5千条数据作为训练数据集,2万5千条数据作为测试数据集。

在这里插入图片描述

文本到序列(Text to Sequence)

我们首先需要把这段文本转换为序列。主要有以下几个步骤需要完成

  • Step 1: 分词(Tokenization)
  • Step 2: 建立词表(Build Dictionary)
  • Step 3: One-Hot编码(One-Hot Encoding)
  • Step 4: 序列对齐(Align Sequences)

分词(Tokenization)

在分词阶段,主要是完成将一段文本转换为一个token的列表的功能。这里的token可以是word,也可以是character或者sub-word等形式。
在这里插入图片描述
在这个过程中,我们要考虑很多问题,诸如:

  1. 是否对单词进行小写化处理
  2. 是否移除停用词
  3. 是否进行拼写纠正
    等等。

建立词表(Build Dictionary)

在建立词表阶段,我们需要建立一个单词到索引的字典用于将每个单词映射到一个数值编号中。
在这里插入图片描述

One-Hot编码(One-Hot Encoding)

然后,我们对文本中的单词按照建立好的词表进行One-Hot编码。

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

序列对齐(Align Sequences)

经过One-Hot编码后,每段文本都变成了一个token编号的序列。但同时出现了一个问题:每段文本编码后的token列表的长度不一。这显然不利于我们进行向量化并行处理。

对于这个问题,一般的解决思路为:

  • 截断过长的文本,比如只保留一段文本的前w或后w个token
  • 填充过短的文本,设置一个特殊的token为<PAD>,当文本的token数目不够w时在前面或后面的位置进行填充
    在这里插入图片描述

在Keras中处理文本(Text Processing in Keras)

Keras实现略

词嵌入:从单词到嵌入(Word Embedding: Word to Vector)

最简单的词嵌入方式就是One-Hot Encoding,但这种嵌入方式所占空间维数大,也无法体现词与词之间的关系。因而,我们需要一种方式将One-Hot 向量映射到一个低维的嵌入空间中.

在这里插入图片描述

如图所示,P是一个可以从训练数据学习到的参数矩阵,用于把一个One-Hot Encoding转换为低维向量。假设转换后的向量维度为d,那么参数矩阵P的维度为 v × p v \times p v×p,转换时只要令 P T P^T PT左乘One-Hot 向量即可得到转化后的低维向量。那么如何解释这些低维向量呢?我们将它们投射到一个二维平面上,可以看到具有相似类型的单词聚集到了一起。例如“boring”、“poor”等消极情绪的词汇聚集到了一起,“fun”、“good”等积极情绪的词汇聚集到了一起。

利用Logistics回归进行二分类(Logistic Regression for Binary Classification)

最后,我们使用Logistics回归来实现这个二分类。

Keras实现略

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值