SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。而且SnowNLP非常适合商品评论的情感词分析。
参考链接: https://github.com/isnowfy/snownlp
安装
pip install snownlp
功能
from snownlp import SnowNLP
text = u'''
自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。
它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
自然语言处理是一门融语言学、计算机科学、数学于一体的科学。
因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,
所以它与语言学的研究有着密切的联系,但又有重要的区别。
自然语言处理并不是一般地研究自然语言,
而在于研制能有效地实现自然语言通信的计算机系统,
特别是其中的软件系统。因而它是计算机科学的一部分。
'''
s=SnowNLP(text)
# 1、分词
print(s.words)
['自然', '语言', '处理', '是', '计算机', '科学', '领域', '与', '人工', '智能', '领域', '中', '的', '一个', '重要', '方向', '。', '它', '研究', '能', '实现', '人', '与', '计算机', '之间', '用', '自然', '语言', '进行', '有效', '通信', '的', '各种', '理论', '和', '方法', '。', '自然', '语言', '处理', '是', '一', '门融', '语言', '学', '、', '计算机', '科学', '、', '数学', '于', '一体', '的', '科学', '。', '因此', ',', '这', '一', '领域', '的', '研究', '将', '涉及', '自然', '语言', ',', '即', '人们', '日常', '使用', '的', '语言', ',', '所以', '它', '与', '语言学', '的', '研究', '有着', '密切', '的', '联系', ',', '但', '又', '有', '重要', '的', '区别', '。', '自然', '语言', '处理', '并', '不', '是', '一般', '地', '研究', '自然', '语言', ',', '而', '在于', '研制', '能', '有效', '地', '实现', '自然', '语言', '通信', '的', '计算机', '系统', ',', '特别', '是', '其中', '的', '软件', '系统', '。', '因而', '它', '是', '计算机', '科学', '的', '一', '部分', '。']
# 2、词性标注
tags=[x for x in s.tags]
print(tags)
[('自然', 'n'), ('语言', 'n'), ('处理', 'v'), ('是', 'v'), ('计算机', 'n'), ('科学', 'n'), ('领域', 'n'), ('与', 'c'), ('人工', 'b'), ('智能', 'n'), ('领域', 'n'), ('中', 'f'), ('的', 'u'), ('一个', 'm'), ('重要', 'a'), ('方向', 'n'), ('。', 'w'), ('它', 'r'), ('研究', 'v'), ('能', 'v'), ('实现', 'v'), ('人', 'n'), ('与', 'p'), ('计算机', 'n'), ('之间', 'f'), ('用', 'v'), ('自然', 'a'), ('语言', 'n'), ('进行', 'v'), ('有效', 'a'), ('通信', 'vn'), ('的', 'u'), ('各种', 'r'), ('理论', 'n'), ('和', 'c'), ('方法', 'n'), ('。', 'w'), ('自然', 'n'), ('语言', 'n'), ('处理', 'v'), ('是', 'v'), ('一', 'm'), ('门融', 'q'), ('语言', 'n'), ('学', 'v'), ('、', 'w'), ('计算机', 'n'), ('科学', 'n'), ('、', 'w'), ('数学', 'n'), ('于', 'p'), ('一体', 'n'), ('的', 'u'), ('科学', 'n'), ('。', 'w'), ('因此', 'c'), (',', 'w'), ('这', 'r'), ('一', 'm'), ('领域', 'n'), ('的', 'u'), ('研究', 'vn'), ('将', 'd'), ('涉及', 'v'), ('自然', 'a'), ('语言', 'n'), (',', 'w'), ('即', 'v'), ('人们', 'n'), ('日常', 'b'), ('使用', 'vn'), ('的', 'u'), ('语言', 'n'), (',', 'w'), ('所以', 'c'), ('它', 'r'), ('与', 'p'), ('语言学', 'a'), ('的', 'u'), ('研究', 'vn'), ('有着', 'v'), ('密切', 'a'), ('的', 'u'), ('联系', 'vn'), (',', 'w'), ('但', 'c'), ('又', 'd'), ('有', 'v'), ('重要', 'a'), ('的', 'u'), ('区别', 'n'), ('。', 'w'), ('自然', 'n'), ('语言', 'n'), ('处理', 'vn'), ('并', 'c'), ('不', 'd'), ('是', 'v'), ('一般', 'a'), ('地', 'u'), ('研究', 'vn'), ('自然', 'n'), ('语言', 'n'), (',', 'w'), ('而', 'c'), ('在于', 'v'), ('研制', 'v'), ('能', 'v'), ('有效', 'a'), ('地', 'u'), ('实现', 'v'), ('自然', 'n'), ('语言', 'n'), ('通信', 'vn'), ('的', 'u'), ('计算机', 'n'), ('系统', 'n'), (',', 'w'), ('特别', 'd'), ('是', 'v'), ('其中', 'r'), ('的', 'u'), ('软件', 'n'), ('系统', 'n'), ('。', 'w'), ('因而', 'c'), ('它', 'r'), ('是', 'v'), ('计算机', 'n'), ('科学', 'n'), ('的', 'u'), ('一', 'm'), ('部分', 'n'), ('。', 'w')]
# 3、断句
print(s.sentences)
['自然语言处理是计算机科学领域与人工智能领域中的一个重要方向', '它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法', '自然语言处理是一门融语言学、计算机科学、数学于一体的科学', '因此', '这一领域的研究将涉及自然语言', '即人们日常使用的语言', '所以它与语言学的研究有着密切的联系', '但又有重要的区别', '自然语言处理并不是一般地研究自然语言', '而在于研制能有效地实现自然语言通信的计算机系统', '特别是其中的软件系统', '因而它是计算机科学的一部分']
# 4、正负情感词判断得分
print(s.sentiments)
1.0
# 5、转换为拼音
print(s.pinyin)
['Zi', 'ran', 'yu', 'yan', 'chu', 'li', 'shi', 'ji', 'suan', 'ji', 'ke', 'xue', 'ling', 'yu', '与', 'ren', 'gong', 'zhi', 'neng', 'ling', 'yu', 'zhong', 'de', 'yi', 'ge', 'zhong', 'yao', 'fang', 'xiang', '。', 'ta', 'yan', 'jiu', 'neng', 'shi', 'xian', 'ren', '与', 'ji', 'suan', 'ji', 'zhi', 'jian', 'yong', 'Zi', 'ran', 'yu', 'yan', 'jin', 'xing', 'you', 'xiao', 'tong', 'xin', 'de', 'ge', 'zhong', 'li', 'lun', 'huo', 'fang', 'fa', '。', 'Zi', 'ran', 'yu', 'yan', 'chu', 'li', 'shi', 'yi', 'men', 'rong', 'yu', 'yan', 'xue', '、', 'ji', 'suan', 'ji', 'ke', 'xue', '、', 'shu', 'xue', '于', 'yi', 'ti', 'de', 'ke', 'xue', '。', 'yin', 'ci', ',', 'zhe', 'yi', 'ling', 'yu', 'de', 'yan', 'jiu', 'jiang', 'she', 'ji', 'Zi', 'ran', 'yu', 'yan', ',', 'ji', 'ren', 'men', 'ri', 'chang', 'shi', 'yong', 'de', 'yu', 'yan', ',', 'suo', 'yi', 'ta', '与', 'yu', 'yan', 'xue', 'de', 'yan', 'jiu', 'you', 'zhe', 'mi', 'qie', 'de', 'lian', 'xi', ',', 'dan', 'you', 'you', 'zhong', 'yao', 'de', 'qu', 'bie', '。', 'Zi', 'ran', 'yu', 'yan', 'chu', 'li', 'bing', 'bu', 'shi', 'yi', 'ban', 'di', 'yan', 'jiu', 'Zi', 'ran', 'yu', 'yan', ',', 'er', 'zai', 'yu', 'yan', 'zhi', 'neng', 'you', 'xiao', 'di', 'shi', 'xian', 'Zi', 'ran', 'yu', 'yan', 'tong', 'xin', 'de', 'ji', 'suan', 'ji', 'xi', 'tong', ',', 'te', 'bie', 'shi', 'qi', 'zhong', 'de', 'ruan', 'jian', 'xi', 'tong', '。', 'yin', 'er', 'ta', 'shi', 'ji', 'suan', 'ji', 'ke', 'xue', 'de', 'yi', 'bu', 'fen', '。']
# 6、繁体转换为简体
print(s.han)
自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。
它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
自然语言处理是一门融语言学、计算机科学、数学于一体的科学。
因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,
所以它与语言学的研究有着密切的联系,但又有重要的区别。
自然语言处理并不是一般地研究自然语言,
而在于研制能有效地实现自然语言通信的计算机系统,
特别是其中的软件系统。因而它是计算机科学的一部分。
# 7、关键字抽取
print(s.keywords(10))
['语言', '自然', '计算机', '领域', '研究', '科学', '通信', '系统', '智能', '人工']
# 8、摘要
print(s.summary(3))
['因而它是计算机科学的一部分', '自然语言处理是计算机科学领域与人工智能领域中的一个重要方向', '自然语言处理是一门融语言学、计算机科学、数学于一体的科学']
爬取天猫上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)
结果展示
观察正负情感词概率分布可以看出,在0.8以上的好评率占比最高,观察数据评分,在0.1以下的snownlp才认为是差评,
随着大数据的时代的到来,数据变得越来越重要,数据可以帮助我们来看清行业的本质,也可以帮助我们更加快速的了解一个行业,关注公众号——DT学说,走进数据的时代