一文搞懂模糊匹配:定義、過程與技術

語言: CN / TW / HK

​譯者 | 崔皓

審校 | 孫淑娟

開篇

根據Accenture的一項調查顯示,75% 的消費者更喜歡在知道他們名字和購買習慣的零售商那裏消費,如果零售商無法對消費者提供個性化體驗,他們客户中的 52% 有可能投入競爭對手的懷抱。因此,品牌方每天都會蒐集數百萬數據,識別並建立客户資料,這也是大多數公司面臨的最大挑戰之一。

當企業使用多種工具來採集數據的時候,常遇到客户姓名拼錯或電子郵件地址格式混亂的情況。此外,當不同的應用擁有同一客户不同信息時,由於信息分散導致無法深入瞭解客户行為和偏好。

為了解決上述問題,我們引入了模糊匹配,接下來將介紹什麼是模糊匹配、它的實現方式、使用哪些常用技術以及它所面臨的挑戰。讓我們開始吧。

什麼是模糊匹配?

模糊匹配是一種數據匹配技術,它比較兩個或多個記錄並計算出它們屬於同一實體的可能性。模糊匹配得不到匹配或不匹配的結果,而是得到一個百分比(通常在 0-100% 之間),用來描述該記錄屬於同一客户、產品、員工的可能性。

有效的模糊匹配算法可以處理一系列數據歧義,例如名字/姓氏顛倒、首字母縮略詞、縮略語、語音和故意拼寫錯誤、縮寫、添加/刪除的標點符號等。

模糊匹配過程

模糊匹配包括如下幾個過程:

1. 創建基本標準化錯誤的概要記錄。這包括已經得到修復的錯誤,以便跨記錄實現統一和標準化的視圖。

2. 基於將發生的模糊匹配來選擇和映射屬性。由於屬性的標題可能不同,因此必須跨數據源對其進行映射。

3. 為每個屬性選擇一種模糊匹配技術。例如,名稱可以根據鍵盤距離或名稱變體進行匹配,而電話號碼可以根據數字相似度指標進行匹配。

4. 為每個屬性選擇一個權重,例如高權重與低權重的字段相比,高權重的屬性對整體匹配置信度的影響更大。

5. 定義閾值級別——模糊匹配得分只要高於該級別就被認為是匹配的,低於該級別的就認為是不匹配的。

6. 運行模糊匹配算法並分析匹配結果。

7. 覆蓋任何可能出現的誤報。

8. 合併、去重或簡單地消除重複記錄。

模糊匹配參數

從上面定義的過程中,可以看到模糊匹配算法有多個技術參數,包括屬性權重、模糊匹配技術和分數閾值等等。

為了獲得最佳結果,必須使用不同參數執行模糊匹配,並找到最適合數據的值。許多供應商將這些功能打包在模糊匹配解決方案中,讓參數自動調整,同時也可以根據需要進行定製。

什麼是模糊匹配技術?

當今使用的多數模糊匹配技術與比較、匹配字段的公式算法有所不同。可以根據數據的性質選擇適合的技術。以下是常見的模糊匹配技術列表:

1. 基於字符的相似性度量(最適合匹配字符串):

a) 編輯距離:計算兩個字符串之間的距離,逐個字符計算。

b) 仿射間隙距離:通過還考慮字符串之間的間隙或空間來計算兩個字符串之間的距離。

c) Smith-Waterman 距離:通過同時考慮前綴和後綴的存在與否來計算兩個字符串之間的距離。

d) Jaro 距離:用來匹配名字和姓氏。

2. 基於標記的相似性度量(最適合匹配字符串中完整單詞):

a) 原子字符串:將長字符串劃分為由標點符號分隔的單詞,並在單詞上進行比較。

b) WHIRL:類似於原子字符串,但 WHIRL 會為每個單詞分配權重。

3. 語音相似度指標(最適合發音相似而字符不同的單詞):

a) Soundex:比較拼寫不同發音相似的姓氏。

b) NYSIIS:類似於 Soundex,不同的是它保留了有關元音位置的詳細信息。

c) Metaphone:比較發音相似的單詞、美國人常用的單詞以及美國常用的名字和姓氏。

4. 數字相似度指標,數字之間的距離,數字數據的分佈等。

模糊匹配的挑戰

雖然模糊匹配的整個過程提供了意向不到的幫助,但其實現卻很困難。以下是企業面臨的一些挑戰:

1. 高誤報率

許多模糊匹配解決方案具有較高的誤報率。當算法錯誤地分類匹配和不匹配時,就會發生這種情況,反之亦然。可以通過對匹配定義和模糊參數的配置儘可能多地減少不正確的結果。

2. 計算複雜度

在匹配過程中,每條記錄都會與同一數據集中的所有記錄進行比較。在處理多個數據集的情況下,比較次數會成倍增加。值得注意的是,隨着數據庫容量的增長,比較呈二次方增長態勢。因此,必須使用資源密集型的計算系統。

3.驗證測試

匹配的記錄合併在一起形成實體的完整模型,可以 通過360 度視角來觀察實體。在此過程中發生的任何錯誤都會給業務運營增加風險。這就是為什麼必須進行詳細的驗證測試以確保調整後的算法始終如一地產生高準確率的結果。

總結

企業通常將模糊匹配解決方案視為運行時間長、執行復雜、消耗資源和耗費資金的項目。事實上,投資能夠產生快速和準確結果的解決方案才是關鍵。組織在選擇模糊匹配工具時需要考慮諸多因素,例如投入的時間和金錢、可擴展性設計以及數據集的性質。這些都會幫助他們選擇解決方案,從而充分利用數據產生價值。

譯者介紹

崔皓,51CTO社區編輯,資深架構師,擁有18年的軟件開發和架構經驗,10年分佈式架構經驗。

原文標題:THOUGHT LEADERSFuzzy Matching – Definition, Process and Techniques,作者:Zara Ziad​