[NLP]如何进行情感分析
来源:互联网 发布:怪兽汉化 知乎 编辑:程序博客网 时间:2024/04/30 04:07
本文介绍的是如何进行情感识别。
在自然语言中(尤其社交媒体和购物网站中),每一句话都隐含了具体的情感倾向,比如中性、正面、负面。比如:今天天气不错;今天心情不太好;苹果手机不错;地球是圆的。对于人来说,可以很轻易的就分辨出上述句子是正面的、中性的、负面的。
但是在自然语言处理中是如何进行判断的呢?下面就对基本的情感分析方法进行介绍。
1.准备
1.1 种子词库
在真正开始前,首先想想人看到一句话是如何思考的。
比如:今天天气不错。对于今天和天气来说,只是具体的对话对象,表明讨论的是今天的天气;而真正起作用的是‘不错’,表明今天的天气令人很舒畅,或者心情变好。因为才会得出‘今天天气不错’是正面的评价。
这里我们不关心具体的评价对象,但是可以很清楚看出某些词对于情感倾向识别是起关键作用的。那么我们是否可以建立一个标准情感词库作为情感分析的种子词库呢?答案是肯定的。
情感倾向的种子词库建立是通过分析语料库,首先对语料库去除停用词,然后对与其中的词进行分类,分别为:正面、负面、中性。比如:
正面:不错、很好、很棒、伟大负面:不好、很坏、讨厌、无用中性:手机、地球、一般、还行
1.2 文档频率和文档共现频率
文档频率是指某一个词在文档中出现的次数,用
文档共现频率是指在同一个文档中共同出现的词的出现次数,用
假设我们有很多商品评价或者微博比如下面的形式:
1.xxxxxxxx2.xxxxxxx3.xxxx4.xxxxxx
那么如何统计
1.3 PMI
PMI(Pointwise Mutual Information),中文称为互信息,描述的是两个事件在概率分布上的近似度量。计算公式如下:
如果
相反,如果
1.4 情感分析
我们给每一个句子都给出一个得分score,得分通过
对于socre:
score>0表示正面情感score=0表示中性情感socre<0表示负面情感
2.编码
有了上文的准备工作就可以进行编码了,代码逻辑为:
- 1.统计和保存
p(w) 和p(w1,w2) - 2.统计和保存pmi(w_1,w_2)矩阵
- 3.分别计算待测短语中词与正面情感词库所有词的PMI,将得到的PMI相加得到
∑pmi(wi,wp) - 4.分别计算待测短语中词与负面情感词库所有词的PMI,将得到的PMI相加得到
∑pmi(wi,wn) - 5.计算情感倾向总得分
score=∑pmi(wi,wp)−∑pmi(wi,wn)
3.总结
本文介绍的只是简单的情感分析方法,实际的工作并不是这么简单。本文介绍的方法也有很多不足的地方:
- 需要的人工参与量大
- 模型效果对语料库依赖度高
- 某些修饰词和否定词的作用被忽略,比如不伟大,不开心
这些都是需要后续改进的地方。
另外新申请了个个人公众号,分享关于学习AI的经历,欢迎关注!
version_1_20171008
- [NLP]如何进行情感分析
- 【nlp】文本情感分析
- 使用snownlp进行情感分析
- 如何进行员工情感管理
- 【Natural Language Processing】跨语言情感分析(NLP&CC 2013)
- 独家 | 为什么要利用NLP做情感分析?
- 深度 | 为什么要利用NLP做情感分析?
- Python 文本挖掘:使用情感词典进行情感分析
- 你爱我吗?如何利用BRAT进行中文情感分析语料标注掌握玩家心声
- Python贝叶斯算法进行情感分析
- python+机器学习方法进行情感分析
- 基于机器学习的NLP情感分析(二)---- 分类问题
- 读EXCEL数据,通过百度NLP分析情感倾向,写入xls
- 如何科学地蹭热点:用python爬虫获取热门微博评论并进行情感分析
- 情感分析系列之《利用BRAT进行中文情感分析语料标注》
- 情感分析
- 情感分析
- 情感分析
- mac 安全 没有允许任何来源
- 总结c语言操作符
- tarjan板子(割点割边连通分量)
- 对原生态jdbc程序中的问题总结
- JAVA数值四舍五入
- [NLP]如何进行情感分析
- 用construct2编写一个简单的游戏
- leetcode 377. Combination Sum IV 组合之和 + DP动态规划 + DFS深度优先遍历
- 维护篇 19. 升级到5.2版固件后不能保存日志 ❀ 飞塔 (Fortinet) 防火墙
- caffe学习例子(一) mnist手写字识别
- nginx 负载均衡
- RogueDome02
- MyBatis学习总结(三)——优化MyBatis配置文件中的配置
- 大学生职业生涯规划