【征文 】如何用3行代码简单实现文本情感分析

如何用3行代码简单实现文本情感分析

一、介绍SnowNPL

今天给大家介绍一款简单易用的可进行情感分析的中文文本自然语言处理库SnowNLP。该库是受到了TextBlob的启发而编写的,不过snowNPL没有使用NLTK,所有的算法都是作者自己实现的。

二、如何安装

我们可以使用pip轻松安装:

pip install snownlp

三、如何训练模型

SnowNPL中预带的模型是基于商品的评论数据训练而成的,我们最好根据自己的实际情况训练模型。

SnowNPL训练模型也是十分简单,有3种方法可以训练模型:

1、分词训练

from snownlp import seg
seg.train('data.txt')
seg.save('seg.marshal')

2、词性标注训练

from snownlp import tag
tag.train('data.txt')
tag.save('tag.marshal')

3、情感分析训练

from snownlp import sentiment
sentiment.train('neg.txt', 'pos.txt')
sentiment.save('sentiment.marshal')

我们在此使用第三种方法训练情感分析模型。此处需要注意,你的语料文件编码应该为‘utf-8’,否则训练会报错

四、如何进行情感分析

今天是清明节,我们一起来缅怀先烈,看一看下面这段话的情感是什么样子的吧?

from snownlp import SnowNLP

text =  u'''在战火纷飞的峥嵘岁月,
无数革命英雄为了民族的解放和人民的幸福,慷慨赴难,义无反顾地献出了自己宝贵的生命。
今天是清明节,在这个慎终追远、缅怀纪念的日子,我们怀着无比崇敬的心情,捧上一束鲜花,向他们致以崇高的敬礼!'''
snow = SnowNLP(text)
print(snow.sentiments)

运行得到结果…

情感分析的数值,越接近1,说明情感越积极;越接近0,说明越消极。

这里0.9999999999754261说明SnowNPL认为这段话的情感是十分积极的,你认为呢?

五、总结

这里作者是使用了自己训练的模型来进行情感分析的,如果用自带的模型,是基于电商评论数据训练的,肯定很多情况下都不太准确的。所以建议自己训练模型。