创建情感字典流程(自然语言处理情感词典实验)

571 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第21天,点击查看活动详情

大连海事大学自然语言处理情感字典实验:根据提供语料库构建属于自己的情感字典。主要流程为:TF-IDF辅助人工提取种子词、SO-PMI互信息算法找出与种子词相关联的词汇扩展情感字典、最后可通过哈工大或其他同义词表进一步丰富情感字典。

一、实验目的和要求

  1. 熟悉情感词典使用方法

  2. 实现基于情感词典的情感分析模型

  3. 思考如何生成情感词典

二、实验原理和内容

  1. 构建基于情感字典与贝叶斯的分类器

  2. 创建当前语料专属情感字典

三。实验流程

  1. 从语料库中挖掘情感字典\自定义种子词

通过TF-IDF算法挖掘特征词汇,辅助挑选种子词

  1. 使用半监督方法扩展情感字典

通过情感倾向点互信息算法 SO-PMI进一步扩展情感字典

接下来通过基础情感词典通过同义词词典找到情感词的同义词,拓展基础情感词典。

三、实验设备

环境:Python 3.8

IDE:Pycharm

第三方库NLTK及其语料库、Sklearn的tfidf向量计算库

四、实验核心代码

  1. 根据TF-IDF辅助提取种子词(主体还是人工来干):

分别提取正向以及负向评论中tf-idf较高的500词再做差集,人工筛选后得到初始情感词典种子词

image.png

TF-IDF源码

  1. 通过情感倾向点互信息算法 SO-PMI进一步扩展情感字典

注:此代码为开源中文文本计算代码,稍作改动用于本次实验

image.png

sopmi源码

五、实验结果与分析

  1. TF-IDF提取种子词结果:

分别提取出98个正向负向情感字典种子词

pos: 98 {'fiction', 'tells', 'crime', 'entertainment', 'happy', 'elements', 'disney', 'attention', 'extremely', 'truly', 'sometimes', 'future', 'titanic', 'co', 'ryan', 'simple', 'somewhat', 'oscar', 'sweet', 'enjoy', 'lead', 'battle', 'kid', 'simon', 'piece', 'cameron', 'knows', 'definitely', 'george', 'science', 'frank', 'fans', 'tale', 'light', 'local', 'mulan', 'private', 'viewer', 'hilarious', 'supporting', 'political', 'strong', 'change', 'feeling', 'taking', 'power', 'intelligent', 'experience', 'blood', 'william', 'perfect', 'excellent', 'reality', 'ben', 'throughout', 'sets', 'beautiful', 'emotional', 'meet', 'usually', 'dark', 'form', 'eventually', 'child', 'leave', 'particularly', 'others', 'chan', 'chris', 'mystery', 'husband', 'jackie', 'amazing', 'feature', 'told', 'leads', 'history', 'voice', 'heart', 'mike', 'easily', 'feels', 'spielberg', 'wars', 'parents', 'brilliant', 'important', 'aliens', 'effective', 'novel', 'war', 'truman', 'perfectly', 'america', 'easy', 'deal', 'wonderful', 'overall'}
neg: 98 {'none', 'happens', 'mission', 'oh', 'stupid', 'cool', 'mostly', 'serious', 'worse', 'boring', 'worst', 'material', 'cop', 'paul', 'interest', 'late', 'result', 'says', 'killed', 'murphy', 'eddie', 'career', 'budget', 'waste', 'robin', 'stone', 'type', 'girlfriend', 'annoying', 'quickly', 'scary', 'premise', 'words', 'filmmakers', 'julie', 'harry', 'word', 'mean', 'mars', 'west', 'sequel', 'poor', 'hell', 'obvious', 'suspense', 'happen', 'talk', 'space', 'wild', 'terrible', 'awful', 'except', 'minute', 'guess', 'die', 'fails', 'attempt', 'obviously', 'girls', 'middle', 'save', 'apparently', 'jokes', 'mess', 'single', 'stuff', 'wonder', 'alone', 'attempts', 'supposed', 'potential', 'brothers', 'yes', 'appears', 'falls', 'kill', 'dumb', 'thriller', 'anyway', 'seemed', 'dull', 'max', 'talent', 'figure', 'lack', 'credits', 'batman', 'hero', 'jones', 'crew', 'godzilla', 'involving', 'saw', 'bunch', 'predictable', 'sam', 'joke', 'basically'}
  1. 通过情感倾向点互信息算法 SO-PMI进一步扩展情感字典

通过 SO-PMI计算词汇的情感极性。

image.png

image.png

  1. 实现基于情感字典的最简单分类器(简单加权):

image.png

基于情感字典与贝叶斯分类器:

image.png

在利用TF-IDF辅助提取种子词的阶段人工筛选是很重要的一步,本实验仅用于学习并没有进行筛选,因此最后的情感字典必然有一定的瑕疵。

通过情感倾向点互信息算法 SO-PMI进一步扩展情感字典严格来说并不属于半监督方法但是也是对于构建专业领域情感字典的比较常用的扩展方法。

虽然字典的构建比较粗糙但是该情感字典对于模型的精度提升还是非常明显的。