背景
上一期,我们提到了自然语言处理的难度和其巨大的意义。接下来将进入到自然语言处理-情感分析。上一期结尾,我们稍微提到了 某些词带明确情感的指向,所以进而想到了建立一个情感词典的想法。所以,本期自然会介绍该词典法的情感分析。
题外话,我个人学习的过程主要是通过问问题的方式:
1. 了解我们面对的问题,或者说我们的目标;及其环境及其他影响因素;
2. 了解该方法的内在逻辑
3. 基于该内在逻辑,了解其局限性及优缺点
总之呢,我学习的过程就是一个提问和回答的循环。所以,我的文章也是基于该思路。
Lexicon-Based Sentiment Analysis词典法
目标:
首先需要明确,我们的目标是需要对一句话或者一段文本进行情感分析;
方法内在逻辑
词典法,看这个词就能大概知道这个方法的逻辑。但是再深入想一想就可以知道其实没那么简单。个人觉得,以下几个方面就会对该算法造成很大的困难:
分词. 举个例子就很好理解了。比如“好坏”这两个字。 如果把它理解成两个形容词,‘好’,‘坏’,那么这就是一个 正面的词+一个负面的词;如果把它理解成一个修饰形容词的副词和另一个被修饰的形容词。那么这就是 一个 负面的词。 那么‘好坏’到底是很坏的意思还是一个中心词呢?
语义转折. 大部分语义转折出现于 讽刺。 举个例子“我简直太喜欢这个手机了,用了两天就坏了,好开心。” 这种语义转折的情况,如果用词典法,会发现这全是“喜欢”,‘开心”这种正面的词。
那么词典法具体是怎么样的呢?
基础版本真的是简单到不能再简单了。 假设我们看的是英文(不太存在分词的问题),词典法就是简单调用词典,算出每个词的情感分值,然后加起来。
没有找到中文靠谱的词库,而且词库法本身准确性也存在问题,所以并没有深入研究。下面是一个英文词库Textblob的例子,大家能看出来实际上非常简单,就是一个简单的调用。
当然词典法也可以在几个方面做一些升级,比如对于否定的处理,对于副词的处理。
词典法的优缺点
除了前面提到的准确性问题,还有一个更大的缺点,就是词典是普适性的。 但是,当我们专注一个行业或者一个方面时,同一个词可能在不同地方有不同的意思。比如“黑屏”,比如“suck” 这种情况非常普遍;
另一个我个人认为的缺点在于,太依赖词典质量,以至于我们能做的不多。其他的方法,对于算法的改进或者训练样本增多,结果自然会好一些。然而,词典法能做的并不多,因为基础已经确定
下期预告
本期主要介绍了 情感分析最基础的一个词典法。 感觉和神经网络,机器学习没啥关系。 不过下一期不一样,下一期会带来Word2Vec,这个可以说是自然语言处理很基石的一部分。
原创码字,感兴趣的朋友请关注下~
领取专属 10元无门槛券
私享最新 技术干货