閱讀242 返回首頁    go 阿裏雲 go 技術社區[雲棲]


教你實現雙十一商品標簽自動歸類(附數據模板)

背景

雙十一購物狂歡節剛剛過去,如果是網購老司機,一定清楚通常一件商品會有很多維度的標簽來展示,比如一個鞋子,它的商品描述可能會是這樣的“韓都少女英倫風係帶馬丁靴女磨砂真皮厚底休閑短靴”。如果是一個包,那麼它的商品描述可能是“天天特價包包2016新款秋冬斜挎包韓版手提包流蘇貝殼包女包單肩包”。

每個產品的描述都包含非常多的維度,可能是時間、產地、款式等等,如何按照特定的維度將數以萬計的產品進行歸類,往往是電商平台最頭痛的問題。這裏麵最大的挑戰是如何獲取每種商品的維度由哪些標簽組成,如果可以通過算法自動學習出例如地點相關的標簽有“日本”、“福建”、“韓國”等詞語,那麼可以快速的構建標簽歸類體係,本文將借助PAI平台的文本分析功能,實現一版簡單的商品標簽自動歸類係統。

數據說明

數據是在網上直接下載並且整理的一份2016雙十一購物清單,一共2千多個商品描述,每一行代表一款商品的標簽聚合,如下圖:

02b596cb0c509efc14f146e7bc5d1a120c0abc6d

我們把這份數據導入PAI進行處理,具體數據上傳方式可以查閱PAI的官方文檔:

https://help.aliyun.com/product/30347.html

實驗說明

數據上傳完成後,通過拖拽PAI的組件,可以生成如下實驗邏輯圖,每一步的具體功能已經標注:

97589b28e0b33579b2366c08db3829f4878d7e89

下麵分模塊說明下每個部分的具體功能:

1.上傳數據並分詞

將數據上傳,由shopping_data代表底層數據存儲,然後通過分詞組件對數據分詞,分詞是NLP的基礎操作,這裏不多介紹。

2.增加序號列

因為上傳的數據隻有一個字段,通過增加序號列為每個數據增加主鍵,方便接下來的計算,處理後數據如下圖:

2fd27256eda8a092703da0243fd2555353ac691d

3.統計詞頻

展示的是每一個商品中出現的各種詞語的個數。

4.生成詞向量

使用的是word2vector這個算法,這個算法可以將每個詞按照意義在向量維度展開,這個詞向量有兩層含義。

  • 向量距離近的兩個詞他們的真實含義會比較相近,比如在我們的數據中,“新加坡”和“日本”都表示產品的產地,那麼這兩個詞的向量距離會比較近。
  • 不同詞之間的距離差值也是有意義的,比如“北京”是“中國”的首都,“巴黎”是“法國”的首都,在訓練量足夠的情況下。|中國|-|北京|=|法國|-|巴黎|

經過word2vector,每個詞被映射到百維空間上,生成結果如下圖展示:

fb3465194c146f9b5de8c30d1f02589f0577a793

5.詞向量聚類

現在已經產生了詞向量,接下來隻需要計算出哪些詞的向量距離比較近,就可以實現按照意義將標簽詞歸類。這裏采用kmeans算法來自動歸類,聚類結果展示的是每個詞屬於哪個聚類簇:

445a06c50cebab3441988dc10b6ea542c4bc9ea0

結果驗證

最後通過SQL組件,在聚類簇中隨意挑選一個類別出來,檢驗下是否將同一類別的標簽進行了自動歸類,這裏選用第10組聚類簇。

edd951a0bd150d0ca32a590d9553dd9b0d98d99c

看一下第10組的結果:

b47de6c5ea7cde2663ef4be692b714403fd9dcb2

通過結果中的“日本”、“俄羅斯”、“韓國”、“雲南”、“新疆”、“台灣”
等詞可以發現係統自動將一些跟地理相關的標簽進行了歸類,但是裏麵混入了“男士內褲”、“堅果”等明顯與類別不符合的標簽,這個很有可能是因為訓練樣本數量不足所造成的,如果訓練樣本足夠大,那麼標簽聚類結果會非常準確。

其他

本文案例已經集成到了PAI首頁的模板,請注冊使用PAI:

https://data.aliyun.com/product/learn

在模板中點擊創建即可使用,包含邏輯以及數據:

13d113cc8d0c8c0fb8a9a67afbf6dd0c0ab05f4f


原文發布時間為:2017-11-13

本文作者:傲海

本文來自雲棲社區合作夥伴“數據派THU”,了解相關信息可以關注“數據派THU”微信公眾號

最後更新:2017-11-14 10:34:18

  上一篇:go  wget下載
  下一篇:go  視頻類搜索引擎優化教程側重點