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識別出對產品評價最高的放置到最前方。


日常購物中,可以從多個視角去看看某款產品值不值得買,僅憑平臺幾條好評推薦,可能就掉進了陷阱中了,喜歡的歡迎分享和收藏。


分享到:


相關文章: