基于句法依存的情感分析+SO-PMI情感词扩展

依存句法分析

  依存语法 (Dependency Parsing, DP) 通过分析语言单位内成分之间的依存关系揭示其句法结构。 直观来讲,依存句法分析识别句子中的“主谓宾”、“定状补”这些语法成分,并分析各成分之间的关系。

语义依存分析

  语义依存分析 (Semantic Dependency Parsing, SDP),分析句子各个语言单位之间的语义关联,并将语义关联以依存结构呈现。 使用语义依存刻画句子语义,好处在于不需要去抽象词汇本身,而是通过词汇所承受的语义框架来描述该词汇,而论元的数目相对词汇来说数量总是少了很多的。语义依存分析目标是跨越句子表层句法结构的束缚,直接获取深层的语义信息语义依存分析不受句法结构的影响,将具有直接语义关联的语言单元直接连接依存弧并标记上相应的语义关系。这也是语义依存分析与句法依存分析的重要区别。

  • 句法依存某种程度上更重视非实词(如介词)在句子结构分析中的作用,而语义依存更倾向在具有直接语义关联实词之间建立直接依存弧,非实词作为辅助标记存在。 第二,两者依存弧上标记的语义关系完全不同,语义依存关系是由论元关系引申归纳而来,可以用于回答问题,如我在哪里喝汤,我在用什么喝汤,谁在喝汤,我在喝什么。但是句法依存却没有这个能力。

语义依存关系分为三类,分别是主要语义角色,每一种语义角色对应存在一个嵌套关系和反关系;事件关系,描述两个事件间的关系;语义依附标记,标记说话者语气等依附性信息。

 

情感词典计算情感倾向强度值的两种方法

SO-HowNetSO-PMI

流程:

基于句法依存的情感分析+SO-PMI情感词扩展_第1张图片

对比:

  关于SO-HowNet: 最近想通过HowNet来计算词语情感倾向强度值,但是经过不懈努力,发现词库中很多词无法计算情感倾向强度值,原因是:HowNet是董振东先生定义的一套词语知识库,里面根据语义表示了词与词的关系等信息,但是该词库是人工定义的有些词没有加入到知识库中,如“给力”,“正能量”,“坑爹”等词找不到义原。所以,如果确实要使用HowNet必须根据自己的实际工作构造自己的词语知识库,不过这个工作量相对较大,可行性不高。

       关于SO-PMI(点互信息算法):由于SO-HowNet存在以上缺点,基于统计的SO-PMI计算两个词的互信息,即计算词语在语料中出现的概率以及词语与词语在句子中同时出现的概率可用于提供计算词语倾向性的一种方法。该方法减少了人工编辑知识库的成本,完全依赖语料来决定词语的倾向性,比较有实际意义。但是该方法存在一个问题是,如果一个词出现概率比较小,可能得不到该词语的正确情感倾向。

————————————————————————————————————————

https://www.cnblogs.com/bbn0111/p/6677517.html

https://blog.csdn.net/SpringRolls/article/details/80228349

https://blog.csdn.net/MrZhangZZ/article/details/60342343

https://www.cnblogs.com/CheeseZH/p/5768389.html

  1. 传入一篇文章,先做分句处理:依据文章中的句号,把文章分成若干句,装入list;
  2. 情感句过滤:通过步骤1的linst,分词并且过滤出含有情感词的句子;
  3. 计算情感句中每个分词的情感得分并累加,结果作为情感句的情感得分;
  4. 最终求一篇文章的所有情感句的得分加和求平均,得到一篇文章的情感得分;
  5. 通过双曲正切函数tanh把最后得分映射到(-1,1)区间作为最终得分。
  6. 整个过程中用到jieba分词,ltp词性标注,依存句法格式化等ltp功能。

# 总结

1)基于情感词库的篇章级情感分析领域相关性很强,针对不同的领域,需要构建领域相关的情感词表,用于解决领域迁移性  

2)本项目以情感词为核心,借助依存句法的情感计算方式还有改进空间

                                                                                                        

过程中学习:SentimentWordExpansion 基于SOPIM算法的情感词表扩展项目

SO-PMI情感倾向点互信息算法

https://www.jianshu.com/p/d9b6ed70abd9

基于句法依存的情感分析+SO-PMI情感词扩展_第2张图片

基于句法依存的情感分析+SO-PMI情感词扩展_第3张图片 

  1. 输入:
    1、5W个文档,每个文档为一行,保存在'./data/train.txt'中
    2、种子情感词:正负情感词各50个,共100个,格式为 ‘词\t极性’,保存在'./data/sentiment_words.txt'中
    2)输出:
    1、格式:复杂,29.47870186147108,neg,2,a (词语,pmi值,情感极性,词长,词性)
    2、正向扩充情感候选词,保存在'./data/candi_pos.txt'中
    3、负向扩充情感候选词,保存在'./data/candi_neg.txt'中
    3)参数:
    1、window_size: 默认为5, 左右窗口为5, 作为词共现窗口

结果:

以本项目5M语料,100个情感种子词作为语料进行训练得到的结果,可参考2)输出
以65M语料, 2700个情感种子词作为语料进行训练,按照sopmi进行从大到小排序,分别取Pos Top20, Neg Top20

备注:

1、本算法效果受训练语料影响,语料越大,效果越好
2、本算法效率受训练语料影响,语料越大,训练越耗时100个种子词,5M的数据,大约耗时62.679秒
3、候选词的选择,可根据PMI值,词长,词性设定规则,进行筛选  

 

 

你可能感兴趣的:(基于句法依存的情感分析+SO-PMI情感词扩展)