章前小菜
自然语言处理是人工智能中的一大重要研究方向,应用在文本分类、机器翻译、智能回答、情感分析等诸多领域。
前段时间对这一方面很感兴趣,但一直没时间研究,零零星星了解了一些,今天兴趣高涨,就拿实际的试了一下。
之前的文章中有为大家安利过爬去微博话题的,今天也是利用八爪鱼这一爬虫软件爬去微博评论,然后对其进行情感分析。自然语言处理的python库有好多,比如nltk,jieba,snownlp等,本文主要利用snownlp做情感分析。下面进入正文。
1、数据爬去处理
这里对数据的爬去就不多说,利用八爪鱼点两下就能爬去微博评论数据。将爬取的数据导出至csv,在notbook中加载展示。
抓取的数据如上图所示,但主要需要的是评论数据,这里只要评论内容这列数据。
接下来检测一下空值:
在有空值的情况下需要剔除空值:
但是很明显数据中有重复数据,这里也对数据进行去重操作,默认是保留第一个:
至此所有数据都已处理完毕,进行后续操作。
2、SnowNLP情感分析
很多python自然语言分析库是对英文做分析,而SnowNLP是一款专门对中文做分析的库,功能很强大,其中应用到了隐式马尔代夫模型、朴素贝叶斯、字典树等算法。
先试试它的功能效果:
SnowNLP有诸多功能,比如分词,词性标注,拼音转换,情感分析等,这里只是做了简单的示范,可以看出它的情感得分为0.73左右,结合语意看似挺准确的。但实际呢这个库暂时的训练数据主要是针对电商服务数据,所以场景还是有所局限,用来做普通的分析足够了,它同时提供自己模型的训练,这里就不做说明。
那么接下来还是对上面的微博评论数据做个情感分析,看看效果:
得到每条评论的情感得分,然后用pyecharts做个可视化效果,同时对情感得分进行分级,看看评论的整体情况:
SnowNLP情感得分越靠近1的表示越积极,靠近0的表示越消极,看来在这100多条的评论中绝大多数是很支持和赞同的,只有极其少数是不支持,可能也就是我们所说的黑粉。
而同时呢该库也有统计能力,尤其对长篇文章这个功能和有用:
那么最后再看看它的统计关键字功能,与jieba的做了个比较,它的统计功能相比jieba的还是差很多。
小结
今天呢主要是对情感分析做了初探,但就使用的库来说想要达到精准的程度还是不够,需要结合具体场景去标注数据,对数据进行训练等。而在情感分析词典这块还需要去沉淀。
小编会在后面的文章中继续分享,后面还有干货,欢迎一起探讨研究~~~
扫码关注微信公众号:一只步行的菜鸟