天天看點

資料挖掘-公司别名聚合(三)

确定了從名稱本身出發不靠譜,需要引入其他特征值,但是引入什麼好呢?

前面說過了,我的公司名稱來源是使用者手動填寫的,并且使用者量巨大,是以最先被引入的變量就是人。

設想兩個人,一個所填公司是“華為公司”,另一個是“華為科技有限公司”,我們不知道這兩個是不是一個公司,但是如果我們知道了這兩個人工作時間的ip在一個ip段,且工作時間地理位置重合,且社交網絡中得好友關系重合度高,我們是不是可以高度懷疑這兩個人是一個公司的,進而推出他倆填的公司名稱屬于一個公司。

前面說了我手頭的資料量很大,上面說的資料我這裡都有,說幹就幹。

從使用者資訊中挑選出以下幾個我認為有用的字段:郵箱、ip、地理位置、社交網絡中的好友關系

每個字段稍做一下說明:郵箱好了解,但是需要去除市面上的免費郵箱,方法就是通過字尾過濾。ip資料是通過用戶端過來的,量很大。地理位置是通過app來的(呵呵大資料時代談什麼隐私對吧)。好友關系就是某社交網絡的關系鍊。

個人覺得最好驗證的資料是郵箱,所有先從郵箱入手,先建立一個市面上免費郵箱字尾的list,然後擷取既填了郵箱又填了公司名稱的人得資訊,過濾以下免費郵箱,剩下的認為是公司郵箱。

接下來的做法比較重要,首先把填了相同公司名稱的人歸到一類,這樣就完成了第一次分類,如填了“華為公司”的有100個人,那這100人就作為集合A,填了“華為技術有限公司”的有30個,這30人就作為集合B,每個人又分别對應一個郵箱,是以集合A對應了100個郵箱,将這100個郵箱字尾作為集合a,集合B對應了30個郵箱,那麼這30個郵箱字尾就就作為集合b。接下來就好辦了,計算a和b之間字尾相同的郵箱有多少對,比如有k對,那個k越大,就認為“華為公司”和“華為技術有限公司”就越有可能是一個公司。

實際資料跑下來以後發現效果一般,首先是過濾了免費郵箱以後資料量比較小,原因可能是大家還是不太願意填寫自己的公司郵箱。其次有很多公司丫辦公用的是163郵箱。濾剩下的公司集合之間郵箱字尾相同對數太少,像寶潔、聯想這樣的大公司還行,剩下的小公司算出的對數都<=2,域值沒法定了,看來單個特征效果也不理想,接下來需要嘗試從多特征值出發,建立特征向量,并選擇适合的分類算法進行分類。

繼續閱讀