爱收集资源网

Python中简单使用snownlp进行商品评价情感分析,得出每条评价到底是好评还是差评

网络 2023-04-08 09:07

序言

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模型即可进行剖析也是一个不错的选择。

python 情感分析