5.2自然语言处理
觉得有用的话,欢迎一起讨论相互学习~
2.9 Sentiment classification 情感分类
- 情感分类任务简单来说是看一段文本,然后分辨这个人是否喜欢或不喜欢他们正在谈论的这段文本。
- 情感分类 一个最大的挑战是可能标记的训练集没有那么多,但是有了词嵌入,即使只有中等大小标记的训练集也能构建一个不错的情感分类器。
问题引入
- 通过训练一个从x到y的映射得到一个情感分类器,只需要收集在社交媒体上顾客对你的评价,你就可以判断其对餐厅的情感是正面的还是负面的。
简单的情感分类模型
示例 The dessert is excellent
-
首先在字典中找出句中所有单词,并使用 one-hot向量 表示 ,乘以 词嵌入矩阵E ,得到单词的 嵌入向量e
- 如果在很大的语料库中训练 词嵌入矩阵E 比如壹佰亿的单词,这样就能获得很多知识甚至从有些不常见的词中获取,然后应用到你的问题上,即使你的标记数据集里没有这些词。
-
得到的 嵌入向量e 是一个具有300维特征的向量,将句子中所有单词的 嵌入向量e 进行加和或求平均,此时会得到一个300维度的特征向量,把这个特征向量送进softmax分类器,然后输出(hat{y})
- 其中softmax 分类器能够输出5个分类结果,从一星到五星。
- 而求和和平均的操作则避免模型考虑原有句子的长短。无论原先句子都多长,在 求和 或 平均 操作后都只有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(完全没有好的味道,好的服务,好的环境)
- 首先将每一个单词使用one-hot向量进行表示
- 将每个单词的one-hot向量乘以 词嵌入矩阵E 得到每个单词的 词嵌入向量e
- 将其送入RNN中,在RNN的最后一个时间步计算一个特征表示,用来预测 (hat{y})
优点 这样就能考虑句子中单词的顺序,对于情感分类的效果就会更好了,结合句中的短语对整个句子的情感有新的导向。