中文文本情感分析-python包SnowNLP入门

 

目录

 

1.情感分析是什么?

2.情感分析有什么用?

3.情感分析实战-SnowNLP

SnowNLP官方参考资料:

SnowNLP两个坑:

自己用snownlp训练模型:

 


1.情感分析是什么?

中文文本情感分析-python包SnowNLP入门

 

极性:观点正负性的程度,0-1,0为负,1为正

持有者:提取出观点的持有者是谁

日常分析中使用频率:极性>观点>持有者

中文文本情感分析-python包SnowNLP入门

 

中文文本情感分析-python包SnowNLP入门

 

程度词设置不同的权重

从例子可以看出,基于情感词典的分析是有误差的

中文文本情感分析-python包SnowNLP入门

 

文本向量化:文本变为数值

 

2.情感分析有什么用?

中文文本情感分析-python包SnowNLP入门

 

3.情感分析实战-SnowNLP

中文文本情感分析-python包SnowNLP入门

 

SnowNLP官方参考资料:

https://pypi.org/project/snownlp/

https://github.com/isnowfy/snownlp

SnowNLP介绍:是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。注意本程序都是处理的unicode编码,所以使用时请自行decodeunicode

 

SnowNLP两个坑:

SnowNLP已经训练好的模型不支持中文繁体字和英文,因为训练好的模型是用中文简体训练的

中文文本情感分析-python包SnowNLP入门

 

Snownlp模型训练精度不高,比如:

中文文本情感分析-python包SnowNLP入门

中文文本情感分析-python包SnowNLP入门

 

 

自己用snownlp训练模型:

官网中关于训练的说明

现在提供训练的包括分词,词性标注,情感分析,而且都提供了我用来训练的原始文件 以分词为例 分词在snownlp/seg目录下

from snownlp import seg

seg.train('data.txt')

seg.save('seg.marshal')

# from snownlp import tag

# tag.train('199801.txt')

# tag.save('tag.marshal')

# from snownlp import sentiment

# sentiment.train('neg.txt', 'pos.txt')

# sentiment.save('sentiment.marshal')

这样训练好的文件就存储为seg.marshal了,之后修改snownlp/seg/__init__.py里的data_path指向刚训练好的文件即可