SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。而且SnowNLP非常适合商品评论的情感词分析。
参考链接:github.com/isnowfy/snow
功能
1、中文分词(Character-Based Generative Model)
2、词性标注(TnT 3-gram 隐马)
3、情感分析(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决)
4、文本分类(Naive Bayes)
5、转换成拼音(Trie树实现的最大匹配)
6、繁体转简体(Trie树实现的最大匹配)
7、提取文本关键词(TextRank算法)
8、提取文本摘要(TextRank算法)
9、tf,idf(信息衡量)
10、Tokenization(分割成句子)
11、文本相似(BM25)
功能介绍
安装
pip install snownlp
功能
from snownlp import SnowNLP
案例展示
爬取天猫上olay官方旗舰店的一个商品,对评论内容进行情感词分析,得出评论正负情感的概率,从而判断产品的好坏。代码如下所示
from snownlp import SnowNLP
from snownlp import sentiment
import pandas as pd
import csv
result=pd.read_csv('./olay.csv',encoding='utf-8')
print(result['评论内容'])
items=result['评论内容'].astype(str).tolist()
print(items)
D=[]
for i in range(len(items)):
s=SnowNLP(items[i])
t=s.sentiments
print(t)
a=[items[i],t]
D.append(a)
print(D)
with open('./情感词分析.csv','a',encoding='gb18030',newline='')as f1:
write=csv.writer(f1)
write.writerows(D)
结果展示
image image观察正负情感词概率分布可以看出,在0.8以上的好评率占比最高,观察数据评分,在0.1以下的snownlp才认为是差评,
网友评论