教你實現雙十一商品標簽自動歸類(附數據模板)
背景
雙十一購物狂歡節剛剛過去,如果是網購老司機,一定清楚通常一件商品會有很多維度的標簽來展示,比如一個鞋子,它的商品描述可能會是這樣的“韓都少女英倫風係帶馬丁靴女磨砂真皮厚底休閑短靴”。如果是一個包,那麼它的商品描述可能是“天天特價包包2016新款秋冬斜挎包韓版手提包流蘇貝殼包女包單肩包”。
每個產品的描述都包含非常多的維度,可能是時間、產地、款式等等,如何按照特定的維度將數以萬計的產品進行歸類,往往是電商平台最頭痛的問題。這裏麵最大的挑戰是如何獲取每種商品的維度由哪些標簽組成,如果可以通過算法自動學習出例如地點相關的標簽有“日本”、“福建”、“韓國”等詞語,那麼可以快速的構建標簽歸類體係,本文將借助PAI平台的文本分析功能,實現一版簡單的商品標簽自動歸類係統。
數據說明
數據是在網上直接下載並且整理的一份2016雙十一購物清單,一共2千多個商品描述,每一行代表一款商品的標簽聚合,如下圖:
我們把這份數據導入PAI進行處理,具體數據上傳方式可以查閱PAI的官方文檔:
https://help.aliyun.com/product/30347.html
實驗說明
數據上傳完成後,通過拖拽PAI的組件,可以生成如下實驗邏輯圖,每一步的具體功能已經標注:
下麵分模塊說明下每個部分的具體功能:
1.上傳數據並分詞
將數據上傳,由shopping_data代表底層數據存儲,然後通過分詞組件對數據分詞,分詞是NLP的基礎操作,這裏不多介紹。
2.增加序號列
因為上傳的數據隻有一個字段,通過增加序號列為每個數據增加主鍵,方便接下來的計算,處理後數據如下圖:
3.統計詞頻
展示的是每一個商品中出現的各種詞語的個數。
4.生成詞向量
使用的是word2vector這個算法,這個算法可以將每個詞按照意義在向量維度展開,這個詞向量有兩層含義。
- 向量距離近的兩個詞他們的真實含義會比較相近,比如在我們的數據中,“新加坡”和“日本”都表示產品的產地,那麼這兩個詞的向量距離會比較近。
- 不同詞之間的距離差值也是有意義的,比如“北京”是“中國”的首都,“巴黎”是“法國”的首都,在訓練量足夠的情況下。|中國|-|北京|=|法國|-|巴黎|
經過word2vector,每個詞被映射到百維空間上,生成結果如下圖展示:
5.詞向量聚類
現在已經產生了詞向量,接下來隻需要計算出哪些詞的向量距離比較近,就可以實現按照意義將標簽詞歸類。這裏采用kmeans算法來自動歸類,聚類結果展示的是每個詞屬於哪個聚類簇:
結果驗證
最後通過SQL組件,在聚類簇中隨意挑選一個類別出來,檢驗下是否將同一類別的標簽進行了自動歸類,這裏選用第10組聚類簇。
看一下第10組的結果:
其他
本文案例已經集成到了PAI首頁的模板,請注冊使用PAI:
https://data.aliyun.com/product/learn
在模板中點擊創建即可使用,包含邏輯以及數據:
原文發布時間為:2017-11-13
本文作者:傲海
本文來自雲棲社區合作夥伴“數據派THU”,了解相關信息可以關注“數據派THU”微信公眾號
最後更新:2017-11-14 10:34:18