在數字經濟時代的今天,再加上疫情原因無法外出,網上購物已成為大眾消費的普遍方式,無論我們是去購物網站、旅遊網站、外賣等平臺,客戶的優質好評都會在最前方,特別是一張美的圖片,總會勾起去旅遊的慾望,看到好評後毫不猶豫地去“剁手”。買到的東西有時未必符合心中的預期,有人會選擇退貨,也有人會暗暗告訴自己下次一定要注意了。
無論看到的是圖片、視頻、還是文字評論,算法都可以告訴那些是客戶喜歡的,將最好的評論進行排序,展示給客戶。
本文以圖片為例,分三個部分去講解為什麼你看到的評論和圖片都是最好的。
- 圖片素材獲取
- 算法識別
- 結論
以下是具體步驟和代碼實現:
圖片素材獲取
今天我們獲取的素材為網站上的街拍圖片,在圖片爬取之前,我們需要對網頁進行分析。
分析網頁,可以發現每次點擊下一頁page的數字就發生變化,其他參數不發生變化。
<code>'https://www.mzitu.com/jiepai/comment-page-02/'/<code>
那麼接下來就是爬取圖片了,爬取圖片僅為學習和交流使用,不要暴力爬取。爬取結果如圖所示:
代碼如下:
<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
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>
選取一張圖片
調用上方代碼
數據分析:顏值評分為78.63,是一名女性,probability為1,glasses為none,年齡為23歲,參數有很多,可以根據需要進行展示,從上述數據上來看,年齡數據不是很準確,算法模型還是有需要優化對地方。
總結
本篇文章以圖片為例進行闡述,對於其他場景從算法的角度來看,思路是一樣的。比如:對於旅遊景點圖片,我們可以使用訓練一套類似的模型,將“顏值”高的排在最前方,對於商品也是同樣道理,利用自然語言NLP識別出對產品評價最高的放置到最前方。
日常購物中,可以從多個視角去看看某款產品值不值得買,僅憑平臺幾條好評推薦,可能就掉進了陷阱中了,喜歡的歡迎分享和收藏。
閱讀更多 地表嘴強程序員 的文章