序言
Python以开发效率高而闻名,其中一个重要诱因是Python有许多好用的第三方库,明天我们就利用一个英文情感剖析库SnowNLP,来对某个商品的评价做情感剖析,得出每条评价究竟是好评还是差评。SnowNLP库的一个特征就是外置了英文词库,使用这个库就可以直接处理英文,也无需我们去做动词的操作,再者,他还可以做简单的关键字提取以及关键句提取等。
安装snownlp
pip install snownlp
执行前面的命令,即可手动安装,安装完成后就可以开始我们的评论情感剖析了。
数据打算
为了防止太多其他功能代码干扰本文的重点内容,因而我提早在某宝的一个商品上把评论复制出来装入文件taobao评论.txt中,内容大致如下:
良心话,淘宝买衣服最满意的一次,质量也没让我失望,物有所值,非常合身,非常满意,收到就洗了,穿上心情美美的,值得推荐,请大家放心购买 衣服收到了质量挺好哦,价格实惠物美价廉,款式简单大方比较百搭,是雪纺的面料不会很透明,穿着还算合身,喜欢的宝宝可以入手 宝贝己收到,迫不及待的试了一下,感觉还不错,与图片相符合,没有色差,穿起很合身,布料柔软,是我购物最满意的一次,准备再买一件其它颜色,想买的朋友赶紧下手吧,赞赞赞 真心不错。比我想象的还要好。送给朋友的妈妈穿,穿着显年轻。喜欢的赶紧下单。真的不错 袖子太短了,颜色也不好看。 看起来很土啊,穿起来像个大妈款 这个价位太贵了,款式也太旧了。
实现代码
#%% 导入 import snownlp as slp import collections as clt #1 Comment=clt.namedtuple('Comment','content,result') #%% 方法定义 def get_contents(file_path): with open(file_path,'r',encoding='utf8') as f: return [n.strip() for n in f.readlines()] def analyse_to_comment(content): #2 s=slp.SnowNLP(content) #3 return Comment(display_long(content),pst_to_result(s.sentiments)) def display_long(content): if len(content)>10: return f'{content[0:5]}……{content[-5:]}' return content #4 def pst_to_result(positive): if positive>0.75: return '好评' return '差评' #%% 运行 if __name__ == "__main__": file=r'taobao评论.txt' cms=( analyse_to_comment(c) for c in get_contents(file) ) for c in cms: print(c)
输出:
Comment(content='良心话,……家放心购买', result='好评') Comment(content='衣服收到了……宝可以入手', result='好评') Comment(content='宝贝己收到……吧,赞赞赞', result='好评') Comment(content='真心不错。……。真的不错', result='好评') Comment(content='袖子太短了……也不好看。', result='差评') Comment(content='看起来很土……像个大妈款', result='差评') Comment(content='这个价位太……也太旧了。', result='差评')
总结最后
本文介绍了在Python中简单使用snownlp进行商品评价情感剖析,这个库通常对于商品买卖才有比较好的剖析疗效,对于其他场景也许会比较催泪。考虑到他调用简单便捷,我们无需顾及英文动词和创建各类nlp模型即可进行剖析也是一个不错的选择。