Python揭秘为什么你看到的文字评论和图片都是最好的!

在数字经济时代的今天,再加上疫情原因无法外出,网上购物已成为大众消费的普遍方式,无论我们是去购物网站、旅游网站、外卖等平台,客户的优质好评都会在最前方,特别是一张美的图片,总会勾起去旅游的欲望,看到好评后毫不犹豫地去“剁手”。买到的东西有时未必符合心中的预期,有人会选择退货,也有人会暗暗告诉自己下次一定要注意了。


无论看到的是图片、视频、还是文字评论,算法都可以告诉那些是客户喜欢的,将最好的评论进行排序,展示给客户。


本文以图片为例,分三个部分去讲解为什么你看到的评论和图片都是最好的。

  • 图片素材获取
  • 算法识别
  • 结论


以下是具体步骤和代码实现:

图片素材获取


今天我们获取的素材为网站上的街拍图片,在图片爬取之前,我们需要对网页进行分析。


Python揭秘为什么你看到的文字评论和图片都是最好的!

分析网页,可以发现每次点击下一页page的数字就发生变化,其他参数不发生变化。

<code>'https://www.mzitu.com/jiepai/comment-page-02/'/<code>


那么接下来就是爬取图片了,爬取图片仅为学习和交流使用,不要暴力爬取。爬取结果如图所示:


Python揭秘为什么你看到的文字评论和图片都是最好的!


代码如下:


<code>headers = {'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"}
content = requests.get(url, headers=headers)
img_url = BeautifulSoup(content.text, 'lxml').findAll('div', class_='comment-body')

for i in img_url:
    pattern = r'data-original=\\S*?\\.jpg'
    result = re.findall(pattern, str(i.find('p')))[0].split('data-original="')[1]
    r = requests.get(result)
    path ='/users/妹子图/image/%s'%(str(num)+'_' + result.split('/')[-1])
    with open(path,'ab+')as f:
        f.write(r.content)
        f.close()/<code>

算法识别


目前对图片处理方式的很多,有图片分类、目标检测、图像分割等,对于人脸检测的公开数据集比较多,比如:哥伦比亚大学公众人物脸部数据库、MTFL数据集等,通过模型训练得到想要对模型其实并不难。如果对模型训练比较感兴趣,可以获取数据集进行训练和调优即可,今天我们直接调用百度人脸检测接口,省去了模型训练过程,使用接口前,按照如下三步进行操作:


1:创建应用,获取AppID、API Key、Secret Key


Python揭秘为什么你看到的文字评论和图片都是最好的!


2.通过API Key和Secret Key获取的access_token


<code># encoding:utf-8
import requests 

# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
response = requests.get(host)
if response:
    print(response.json())/<code>

注意:access_token有效期为30天,切记需要每30天进行定期更换,或者每次请求都拉取新token;


3.调用过程


没有安装数据包,安装pip install baidu-aip


<code>##无安装包请先安装:pip install baidu-aip
from aip import AipFace
""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
client = AipFace(APP_ID, API_KEY, SECRET_KEY)

""" 如果有可选参数 """
options = {}
options["face_field"] = "age"
options["max_face_num"] = 2
options["face_type"] = "LIVE"
options["liveness_control"] = "LOW"


""" 带参数调用人脸检测 """
client.detect(image, imageType, options)/<code>


选取一张图片


Python揭秘为什么你看到的文字评论和图片都是最好的!


调用上方代码


Python揭秘为什么你看到的文字评论和图片都是最好的!

数据分析:颜值评分为78.63,是一名女性,probability为1,glasses为none,年龄为23岁,参数有很多,可以根据需要进行展示,从上述数据上来看,年龄数据不是很准确,算法模型还是有需要优化对地方。

总结


本篇文章以图片为例进行阐述,对于其他场景从算法的角度来看,思路是一样的。比如:对于旅游景点图片,我们可以使用训练一套类似的模型,将“颜值”高的排在最前方,对于商品也是同样道理,利用自然语言NLP识别出对产品评价最高的放置到最前方。


日常购物中,可以从多个视角去看看某款产品值不值得买,仅凭平台几条好评推荐,可能就掉进了陷阱中了,喜欢的欢迎分享和收藏。


分享到:


相關文章: