Excel 2010 Fuzzy Lookup增益集 用中文也能通!!

  • 11628
  • 0

Excel 2010 Fuzzy Lookup增益集 用中文也能通!!

Dotblogs 的標籤:

在進行日常資料整理或是分析時,最怕遇到那些髒資料,但是髒資料卻永遠陰魂不散,所以最後就必須人工整理。"人工整理"這個辦公室內永遠的噩夢有沒有可能解決的一天?看起來有一道曙光出現了。微軟BI Lab推出了最新的實驗性工具:Excel 2010 Fussy Lookup增益集。

甚麼Fuzzy Lookup(模糊查閱),這個名詞其實早就在SQL Server 2005的SSIS中出現了,只是老實說,我幾乎沒有使用它的可能性,因為企業資料倉儲的資料過於巨大,若是模糊比對出了問題,我們小要透過人工覆核的可能性都沒有,但是換到辦公室中就不一樣了,因為如果能透過電腦幫我們處理大部分的資料比對,而我們只需要作人工覆核即可確保資料比對的正確性,個人認為這個功能放在Excel上市再聰明不過的想法(繼之前Excel 2007 Data Mining Add-ins之後, 唉…又講到傷心處,這次微軟要堅持正確的方向啊,別再產品出一代就沒下文了…)。

軟體各位可以到這個網址去下載,系統需求很簡單,就是你必須要有Excel 2010。此外,根據筆者實際測試的結果,Fuzzy Lookup計算起來其實蠻耗資源的(尤其是CPU),所以那台電腦最好不要太弱。

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=eb408616-9903-440a-a14f-97548171d137

image

image

安裝步驟很簡單,就跟一般正常微軟產品一樣,只要不停地按下一步就可以完成。

image

開啟後,會有個Fuzzy Lookup的新Ribbon,裡面就只有一個 功能按鈕。

image

安裝程式中有附一個範例,他的情境是當公司秘書要整理幾家主要往來公司的財務資料時(如以下選單),他手上取得了一分前500大企業的財報資訊,想說這些往來企業規模都不小,應該可以從裡面查到相關的財報資料吧,可惜天不從人願,手上這份前500大企業名單的公司名稱格式與公司內紀錄的格式不同,例如我們這邊第一家公司紀錄的是「AMAZON COM INC STK」,而前500大名單內則是「Amazon.com Inc 」。這可頭大了,這該如何比對。

image

image

image

基本上設計方法很簡單。要"被"比對的資料(不完整的資料)請放在左邊,而完整可用於比對的資料則放在右邊,用滑鼠可以點選兩邊要互相比對的欄位,在此是選取兩邊的公司名稱,點選中間圖示即可加入比對欄位清單,此外,他還很貼心的支援設計不同資料的比對組態檔,例如電話號碼、郵遞區號…等都可以設定不同的參數。此外,相較於精確比對,模糊比對最重要的就是要設定相似性門檻值(Similarity Threshould,要多像才會被視為有意義的比對),個人建議在實際處理大量資料之前,最好先利用少量資料測試一下相似性門檻值的合理設定範圍,以免之後白費時間。

image

目前他使用的演算法其實不困難,在此利用的是Jaccard similarity,其實與被視機率有點像。他是比對兩個字串相符(交集)的字元除以原本的字元數,以換算出兩個字串的相似程度。不過他在此用的是改良過的Jaccard similarity,他加入了幾個比較重要的概念。

  • 除了字元斷字之外,還會根據各語系的語言特性根據詞彙來斷字。例如「AsiaMiner is Business Intelligence Expert」,他就不會是一個字母一個字母斷字,而是分割成5個單字。目前預設斷字模式是根據英文,但是他提到在屬性設定中是可以支援其他語言的,至於支援的語言要參照他所附的參考網頁,結果我一看,那就然是SQL Server全文檢索功能的介紹頁面,裡面就提到了只要輸入地區碼 1028 即表示繁体中文。這有意思了,因為筆者之前看過所有的Text Mining都是不支援中文的,所以稍後我也會用中文資料來試試。
  • 此外,他也根據詞意相似性,將類似的詞彙轉換合併,同時加重這類詞彙的權重,如果遇到專˙有名詞字根,也相同會加強權重。

說了那麼多,究竟比對的結果如何,以範例來看,他的效果還不錯,當然,通常只使用他的範例資料是有可能事先作弊的。那我們就拿真實的資料試試看,當然我準備的是中文的資料。

image

我這邊的情境是很多企業蒐集的客戶資料都有殘缺不全的問題,尤其是地址,光是有無郵遞區號,郵資就會差不少,但是很多客戶不一定會填,,此時我就可以利用已經填了郵遞區號的客戶資料來作為Fuzzy參考資料表(為避免洩漏個資,在此Mask資料),看看能否幫我比對出正確的郵遞區號。

image

所以相同的,我們可以設定兩邊比對的原則,在此是利用地址的相似性來比對郵遞區號,我在此將相似性門檻值設為0.5。看來只要參照的資料庫夠完整,即使是中文也可以得到還不錯的效果。

image

image

在此默默期望這個API 未來能開放,如此一來就可以更廣泛的運用在商業環境中,不過以目前微軟處心積慮地綑綁Office銷售來看,應該還有得等。

Allan Yiin

CTO, AsiaMiner