系统中使用的情感分析技术我们采用的是基于词典的情感分析,情感分析(SA)又称为倾向性分析和意见挖掘,它是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程,其中情感分析还可以细分为情感极性(倾向)分析,情感程度分析,主客观分析等。情感极性分析的目的是对文本进行褒义、贬义、中性的判断。在大多应用场景下,只分为两类。例如对于“喜爱”和“厌恶”这两个词,就属于不同的情感倾向。情感分析对象的粒度最小是词汇,但是表达一个情感的最基本的单位则是句子,词汇虽然能描述情感的基本信息,但是单一的词汇缺少对象,缺少关联程度,并且不同的词汇组合在一起所得到的情感程度不同甚至情感倾向都相反。所以以句子为最基本的情感分析粒度是较为合理的。篇章或者段落的情感可以通过句子的情感来计算。
基于词典的情感分析大致步骤如下:1)分解文章段落
2)分解段落中的句子
3)分解句子中的词汇
4)搜索情感词并标注和计数
5)搜索情感词前的程度词,根据程度大小,赋予不同权值
6)搜索情感词前的否定词,赋予反转权值(-1)
7)计算句子的情感得分
8)计算段落的情感得分
9)计算文章的情感得分
考虑到语句中的褒贬并非稳定分布,以上步骤对于积极和消极的情感词分开执行,最终的到两个分值,分别表示文本的正向情感值和负向情感值。
算法设计(伪代码):fetch all text
for each text:
for each para in text:
for each sent in para:
for each word in sents:
if word in sentiment_dicts:
if adverb before sentword
score = adverb*score
if inverse before sentword
score = -1 * score
进过以上的步骤,每篇文章的每个段落的每个句子都会有相应的情感分值,之后针对需求,可以针对句子的分值作统计计算,也可以针对段落的分值作统计计算,得到最后的文本的正向情感值和负向情感值。