情感分类方法简介

作者: galois_xiong | 来源:发表于2017-08-07 14:41 被阅读260次

    情感分析(Sentiment analysis),又称倾向性分析,意见抽取(Opinion extraction),意见挖掘(Opinion mining),情感挖掘(Sentiment mining),主观分析(Subjectivity analysis),它是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程,如从评论文本中分析用户对“数码相机”的“变焦、价格、大小、重量、闪光、易用性”等属性的情感倾向。
    是NLP领域一个比较重要的课题。

    情感分类有什么用

    物品好坏分析: 从评论中分析物品的好坏。例如电影好坏,是否值得看。
    物品属性分析:例如某些价位区间几款车的舒适度,油耗, 操作性能等。
    产品反馈分析: 产品哪些功能点最受用户喜欢,哪些功能最受用户吐槽。
    网民舆情分析: 例如分析美团外面清真事情等。
    金融走势分析:例如,2012年5月,世界首家基于社交媒体的对冲基金 Derwent Capital Markets 上线。它会即时关注Twitter 中的公众情绪指导投资。
    总的来说:情感分类分析再小到平台物品,产品本身,大到金融事情都有其用武之地。随着这波数据浪潮和人工智能浪潮的兴起。这一领域将会起到越来越重要的作用。

    情感分类的任务有哪些

    情感分析主要目的就是识别用户对事物或人的看法、态度(attitudes:enduring, affectively colored beliefs, dispositions towards objects or persons),参与主体主要包括

    • Holder (source) of attitude:观点持有者
    • Target (aspect) of attitude:评价对象
    • Type of attitude:评价观点
    • From a set of types:Like, love, hate, value, desire, etc.
    • Or (more commonly) simple weighted polarity: positive, negative, neutral
    • Text containing the attitude: 评价的文本, 一般是句子或者整篇文档。

    通常,我们面临的情感分析任务包括如下几类:

    • Simplest task: 文本态度是积极的还是消极的或者是中立的。
    • More complex: 将文本态度分为1到5个档次。
    • Advanced: 探测评价对象, 观点源以及文本态度。
      下面内容将主要覆盖前面两类任务。至于Advanced 内容还需要再做调研。

    情感分类的主要方法

    基于情感词典的方法

    基于词典的方法主要通过制定一系列的情感词典和规则,对文本进行拆句、分析及匹配词典(一般有词性分析,句法依存分析),计算情感值,最后通过情感值来作为文本的情感倾向判断的依据。
    做法:基于词典的情感分析大致步骤如下:
    对大于句子粒度的文本进行拆解句子操作,以句子为最小分析单元;
    分析句子中出现的词语并按照情感词典匹配;
    处理否定逻辑及转折逻辑;
    计算整句情感词得分(根据词语不同,极性不同,程度不同等因素进行加权求和);
    根据情感得分输出句子情感倾向性。
    如果是对篇章或者段落级别的情感分析任务,按照具体的情况,可以以对每个句子进行单一情感分析并融合的形式进行,也可以先抽取情感主题句后进行句子情感分析,得到最终情感分析结果。
    其中最重要的是情感词典的获取。

    1. 是获取成熟的开放词典:例如:GI(The General Inquirer), LIWC (Linguistic Inquiry and Word Count), MPQA Subjectivity Cues Lexicon, Bing Liu Opinion Lexicon, SentiWordNet。
    2. 由于特点领域的需要有时需要根据给定的语料库做情感词典的学习。
      常见的情感词典构建方法是基于半指导的bootstrapping学习方法,主要包括两步
      2.1 Use a small amount of information(Seed)
      2.1.1 A few labeled examples
      2.1.2 A few hand-built patterns
      2.2 寻找其它有相似极性的词:
      2.2.1 使用连接词转折词等
      2.2.2 在同一文档中同一窗口区间的词
      2.2.3 在wordnet 中找同义词和反义词
      2.2.4 使用种子词典和半监督学习的方法寻找相似极性的词,具体可以参考文献3 和 4

    基于ML方法

    基于词典的方法实现方便,高效。但主要缺点是靠谱的词典不好找, 找到的基本都是特定领域的资料。另外由于自然语言千变万化的特点, 规则难于满足大部分场景。效果相较于基于学习的方法效果有一定差距。
    基于ML方法就是将情感分类当做普通的分类问题:例如(negative, positive, neuraltive)
    这里面最重要的问题是特征的提取问题: 常用的文本特征提取,一般是基于tf-idf, 向量表示, 之后分类模型常用的有 maxent, svm, naive bayes等。
    由于TF-IDF,是高纬度高稀疏的,缺乏语义,特征表达能力很弱。从深度学习流行以来在文本表示领域出现了一些效果不错的方法。
    其中比较重要的是采用词向量(例如word2vector, glove)进行表示。例如fasttext 就是采用此类方法进行分类, 在时间复杂度远低于深度学习的方法的同时取得了相当的效果(至少在论文发表时是state of the art)。
    在运算力和数据足够时:可以考虑采用CNN 和 RNN去自动学习语言中词的表示。
    数据不足的问题: 机器学习问题最重要的问题基本是数据问题了。往往在现实中大量标注的数据并不可获得, 为了解决这个问题,一些有远见卓识的大牛正在借助迁移学习, 生成对抗网络在解决这些问题,并且取得了一定的效果。具体可以参考文献5和6.
    具体:利用容易获取的大量未标注数据,可以参考文献6,学习一个传统的语言模型,或者学习一个端到端的 编码器,从而得到一个encoding model来表征输入的文本。再利用少量的标注数据(或购买,或少量人工标注),在第一步获得的encoding model的基础上进行supervised learning,在这个过程中对encoding model进行fine tune,获得最终的分类模型。

    总结

    本文主要讲了情感分类的概念,作用,主要目的,以及当前主要方法。

    参考文献

    1. https://www.cs.uic.edu/~liub/FBS/SentimentAnalysis-and-OpinionMining.pdf
    2. http://52opencourse.com/235/%E6%96%AF%E5%9D%A6%E7%A6%8F%E5%A4%A7%E5%AD%A6%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86%E7%AC%AC%E4%B8%83%E8%AF%BE-%E6%83%85%E6%84%9F%E5%88%86%E6%9E%90%EF%BC%88sentiment-analysis%EF%BC%89
    3. http://acl.ldc.upenn.edu/P/P97/P97-1023.pdf
    4. https://www.isi.edu/natural-language/people/hovy/papers/04Coling-opinion-valences.pdf
    5. https://arxiv.org/pdf/1505.07818.pdf
    6. https://arxiv.org/abs/1511.01432
    7. https://www.zhihu.com/question/31471793

    相关文章

      网友评论

        本文标题:情感分类方法简介

        本文链接:https://www.haomeiwen.com/subject/awqalxtx.html