[DeeplearningAI笔记]序列模型2.9情感分类

5.2自然语言处理

觉得有用的话,欢迎一起讨论相互学习~

我的微博我的github我的B站

吴恩达老师课程原地址

2.9 Sentiment classification 情感分类

  • 情感分类任务简单来说是看一段文本,然后分辨这个人是否喜欢或不喜欢他们正在谈论的这段文本。
  • 情感分类 一个最大的挑战是可能标记的训练集没有那么多,但是有了词嵌入,即使只有中等大小标记的训练集也能构建一个不错的情感分类器。

问题引入

  • 通过训练一个从x到y的映射得到一个情感分类器,只需要收集在社交媒体上顾客对你的评价,你就可以判断其对餐厅的情感是正面的还是负面的。

简单的情感分类模型

示例 The dessert is excellent

  1. 首先在字典中找出句中所有单词,并使用 one-hot向量 表示 ,乘以 词嵌入矩阵E ,得到单词的 嵌入向量e

    1. 如果在很大的语料库中训练 词嵌入矩阵E 比如壹佰亿的单词,这样就能获得很多知识甚至从有些不常见的词中获取,然后应用到你的问题上,即使你的标记数据集里没有这些词。
  2. 得到的 嵌入向量e 是一个具有300维特征的向量,将句子中所有单词的 嵌入向量e 进行加和或求平均,此时会得到一个300维度的特征向量,把这个特征向量送进softmax分类器,然后输出\(\hat{y}\)

    1. 其中softmax 分类器能够输出5个分类结果,从一星到五星。
    2. 而求和和平均的操作则避免模型考虑原有句子的长短。无论原先句子都多长,在 求和平均 操作后都只有300维度,即只和原有的特征定义相关。

缺点 这个算法的缺点是没有考虑语序的问题,对于 Completely lacking in good taste,good service, and good ambience(完全没有好的味道,好的服务,好的环境) 但是这个语句中使用了很多次 good ,如果仅仅是把所有单词的 嵌入向量e 相加,你最后的特征向量会有很多 good 的特征。

基于RNN的情感分类模型

  • Completely lacking in good taste,good service, and good ambience(完全没有好的味道,好的服务,好的环境)
  1. 首先将每一个单词使用one-hot向量进行表示
  2. 将每个单词的one-hot向量乘以 词嵌入矩阵E 得到每个单词的 词嵌入向量e
  3. 将其送入RNN中,在RNN的最后一个时间步计算一个特征表示,用来预测 \(\hat{y}\)

优点 这样就能考虑句子中单词的顺序,对于情感分类的效果就会更好了,结合句中的短语对整个句子的情感有新的导向。

posted @ 2018-08-30 09:38  WUST许志伟  阅读(580)  评论(0编辑  收藏  举报