使⽤Python内置集合对象和内置函数filter()过滤⽆效书评很多朋友是从编写⽹络爬⾍开始学习Python的,⼀个很⾃然的想法是爬取书评(关于如何编写爬⾍抓取书评会单独形成⽂章进⾏介绍),然后选择⾃⼰喜欢的书或者其他读者评价较⾼的书,这是⼀个⾮常好的思路,也是⾮常明智的做法。
然⽽,并不是每个消费者都会认真留⾔评论,也有部分消费者可能会复制了⼏个简单的句⼦或词作为评论。在爬取到原始书评之后可能需要进⾏简单的处理和过滤,这时就需要制定⼀个过滤的标准进⾏预处理,这也是数据处理与分析的关键内容之⼀。
在进⼊正题之前,⾸先回顾⼀个常识:Python集合中的所有元素是不允许重复的,⾮常适合⽤来提取唯⼀元素。
在下⾯的代码中,采⽤了⼀个最简单的规则:正常书评中,重复的字应该不会超过⼀定的⽐例。
comments = ['这是⼀本⾮常好的书,作者⽤⼼了',
'作者⼤⼤⾟苦了',
'好书,感谢作者提供了这么多的好案例',
'书在运输的路上破损了,我好悲伤。。。',
'为啥我买的书上有菜汤。。。。',
'啊啊啊啊啊啊,我怎么才发现这么好的书啊,相见恨晚',
'书的质量有问题啊,怎么会开胶呢',
'好好好好好好好好好好好',
'好难啊看不懂好难啊看不懂好难啊看不懂',
'书的内容很充实',
'你的书上好多代码啊,不过想想也是,编程的书嘛,肯定代码多⼀些',
'书很不错!!⼀级棒!!买书就上当当,正版,价格⼜实惠,让⼈放⼼ ',
'⽆意中来到你⼩铺就淘到⼼意的宝贝,⼼情不错! ',
'送给朋友的、很不错',
'这是⼀本好书,讲解内容深⼊浅出⼜清晰明了,推荐给所有喜欢阅读的朋友同好们。']
filter过滤对象数组
rule = lambda s:len(set(s))/len(s)>0.5
result = filter(rule, comments)
print('原始书评:')
for comment in comments:
print(comment)
print('='*30)
print('过滤后的书评:')
for comment in result:
print(comment)
代码运⾏结果:
----------喜⼤普奔----------
1、继《Python程序设计基础》《Python程序设计(第2版)》《Python可以这样学》系列图书之后,董付国⽼师新书《Python程序设计开发宝典》已于2017年8⽉1⽇在清华⼤学出版社出版。为庆祝新书《Python程序设计开发宝典》全⾯上架,清华⼤学出版社联合“赣江图书专营”淘宝店推出特价优惠活动,《Python程序设计开发宝典》原价69元,新书上架期间超低价39.8元,可以复制下⾯的链接使⽤浏览器打开查看图书详情和购买:
2、10⽉13⽇——15⽇,重庆,全国⾼校程序设计系列课程⾼级研究班,详见:
3、9⽉22⽇——24⽇,北京,全国Python科研应⽤专题实操培训班通知,详见:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论