SO-PMI算法及其拓展

点互信息PMI

点互信息用来衡量两个事物之间的相关性,两个事物同时出现的概率越大,其相关性越大。

计算 $word_1$ 和 $word_2$ 的相关性:

其中:

  • P($word_1$, $word_2$) 表示 $word_1$ 和 $word_2$ 共同出现的频率,可转化为 $word_1$ 与 $word_2$ 共同出现的文档数与总文档数的比值

  • P($word_1$) 表示 $word_1$ 单独出现的频率,可转化为 $word_1$ 出现的文档数与总文档数的比值。$word_2$ 类同。

情感倾向点互信息SO-PMI

情感倾向点互信息基本思想是:分别选取一组正向种子词 $P_w$ 和一组负向种子词 $N_w$。计算候选情感词【word 跟每一个正向种子词$P_w$ 点互信息的总和】与【word 跟每一个负向种子词 $N_w$ 点互信息的总和】之间的差值:

经计算:

  • SO-PMI(word)>0: 正面倾向,视word为褒义词
  • SO-PMI(word)=0:中性倾向,视word为中性词
  • SO-PMI(word)<0: 负面倾向,视word为贬义词

基于Good-Turing平滑的SO-PMI:

问题引入:

在进行短文本情感词生成过程中,词频较高的情感词文档频率不一定高。种子词在短文本文档中出现的频率很低会导致候选情感词与种子词共现的频次较低,出现零概率事件,无法计算候选特征情感词的互信息。

Good-Turing:

核心思想:通过高频计数的N元语法重新估计0计数或者低频计数的N元语法发生的概率。

关于Good-Turing的具体介绍可以查看这篇博文,这样我们就可以解决零概率的问题了。

引入词间距,进行多类情感词生成

当两个词语共现时,可能是彼此相邻,也可能是相距很远。我们认为如果两个共现词距离很近,则关联性越强;反之,关联性越弱。两个词语之间的距离可以用两个词语之间的词语个数表示。重复出现时,取间距最小值。则两个词语之间的共现距离:

  • $d_x$表示在每条评论中从评论开始到两个词语总较前面一个词语位置时的词语长度(个数)
  • $d_y$表示在每条评论总从评论开始到两个词语中较后面一个词语位置时的词语长度(个数)

则最新的PMI公式为:

  • N 表示语料库中所有词语的总次数
  • hit表示词语的词频数
  • hit($word_1$,$word_2$)表示词语$word_1$和$word_2$在同一篇文档中总计共现的次数
  • d表示两个词语之间的共现距离

则最新的SO-PMI公式为:

其中:

  • N 表示语料库中所有词语的总次数
  • hit 表示词语的词频数
  • $S_a$ 表示第i类情感种子词集合$S_i$中的第a个情感词
  • hit($word_x, s_a$) 表示词语$word_x$和$S_a$在同一个文档中为共现窗口中共现的次数
  • $M_i$(1<=i<=7) 表示第i类情感种子词集$S_i$中种子词的数量

参考文献

  • 郭顺利, 张向先. 面向中文图书评论的情感词典构建方法研究[J]. 数据分析与知识发现, 2016, 32(2): 67-74.
  • 姜伶伶, 何中市, 张航. 基于 Good-Turing 平滑 SO-PMI 算法构建微博情感词典方法的研究[J]. 现代计算机 (专业版), 2018 (10): 5.