背景
笔者由于最近做一个监控应用评论内容的项目,为满足需求,需要对抓取下来的应用评论做中文语义识别,结果搜出来的大部分都是仅限英文语义识别的库,搜好久才找到这个国人开发的中文文本处理库(包含语义识别功能),特此介绍给大家。
开源项目Github地址SnowNLP
安装
跟其他python类库一样,使用pip安装就行了
pip install snownlp
语义分析使用DEMO
# -*- coding: utf-8 -*-
#返回一段文本是积极的还是消极的
#@params: text
#@author: pyj 2017.03.24
#@return: 0~1 (语义积极的概率,越接近1情感表现越积极)
from snownlp import SnowNLP
import sys
if (len(sys.argv) != 2):
print u"请确认输入参数!"
else:
text = sys.argv[1].decode('utf-8')
s = SnowNLP(text)
print round(s.sentiments,2)
测试一哈
python test.py '真的很赞赞赞'
1.0
python test.py '我不知道说什么,太难用了,我给差评'
0.1
语义分析再训练
用的时候,有时候可能会觉得有些语句分析出来的结果会不太准确,这时候你就需要更新语料库,再进行训练,这样下次分析出来的结果就更加准确了。下面介绍一下如何进行训练
首先准备两份语料文本,neg.txt(负面语料文本) pos.txt(积极语料文本)
# -*- coding: utf-8 -*-
from snownlp import sentiment
sentiment.train('neg.txt', 'pos.txt')
sentiment.save('sentiment.marshal')
再次把生成好的sentiment.marshal放入类库的/sentiment 就可以了
试用效果如下,分析各渠道应用市场评论内容的情感:
目前笔者也仅仅试用了情感分析的功能而已,其他功能欢迎读者自行试用,总之就是相当强大