文本情感分类

传统模型——基于情感词典

  • 输入句子,预处理
  • 文本分词
  • 训练情感词典(积极消极词汇、否定词、程度副词等)
  • 判断规则(算法模型)
  • 情感分类

文本预处理

使用正则表达式,过滤掉我们不需要的信息(如 Html 标签等)

句子自动分词

  • jieba 中文分词
  • HanLp 中文分词
  • 中科院分词
  • ...

载入情感词典

  • 积极情感词典
  • 消极情感词典
  • 否定词典
  • 程度副词词典

文本情感分类

  • 每个积极情感词语赋予权重 1
  • 每个消极情感词语赋予权重 -1
  • 否定词会导致权值反号
  • 程度副词则让权值加倍
  • 最后,根据总权值的正负性来判断句子的情感

优化点

  • 考虑句子的类型(祈使句、疑问句等)
  • 每个词语(考虑主语、谓语、宾语等)
  • 情感词典的自动扩充(无监督式的词频统计)
    通过已有的模型对评论数据进行情感分类,然后在同一类情感(积极或消极)的评论集合中统计各个词语的出现频率,最后将积极、消极评论集的各个词语的词频进行对比。某个词语在积极评论集中的词频相当低,在消极评论集中的词频相当高,那么我们就有把握将该词语添加到消极情感词典中,或者说,赋予该词语负的权值。

深度学习模型

标准模型

  • 标注语料的收集
  • 模型阈值选取问题
  • word2vec 将词语转换为向量
  • CNN、RNN、LSTM 等网络模型,特征抽取句子向量

算法步骤

  • 分词
  • 词向量
  • 句向量(LSTM)
  • 分类

分词 OR 不分词

“端到端”的模型:能够直接将原始数据和标签输入,然后让模型自己完成一切过程——包括特征的提取、模型的学习。

  • one hot:以字为单位,不分词,将每个句子截断为200字(不够则补空字符串),然后将句子以“字-one hot”的矩阵形式输入到LSTM模型中进行学习分类
  • one embedding:以字为单位,不分词,,将每个句子截断为200字(不够则补空字符串),然后将句子以“字-字向量(embedding)“的矩阵形式输入到LSTM模型中进行学习分类
  • word embedding:以词为单位,分词,,将每个句子截断为100词(不够则补空字符串),然后将句子以“词-词向量(embedding)”的矩阵形式输入到LSTM模型中进行学习分类

更好的更新方案

设定一个阈值为0.6,那么模型对某个正样本的输出大于0.6,我就不根据这个样本来更新模型了,模型对某个负样本的输出小于0.4,我也不根据这个样本来更新模型了,只有在0.4~0.6之间的,才让模型更新,这时候模型会更“集中精力”去关心那些“模凌两可”的样本,从而使得分类效果更好

修正的交叉熵损失

你可能感兴趣的:(文本情感分类)