Python字符串模糊匹配库FuzzyWuzzy
Python字符串模糊匹配庫FuzzyWuzzy
在計算機科學中,字符串模糊匹配(fuzzy string matching)是一種近似地(而不是精確地)查找與模式匹配的字符串的技術。換句話說,字符串模糊匹配是一種搜索,即使用戶拼錯單詞或只輸入部分單詞進行搜索,也能夠找到匹配項。因此,它也被稱為字符串近似匹配。
字符串模糊搜索可用于各種應用程序,例如:
- 拼寫檢查和拼寫錯誤糾正程序。例如,用戶在Google中鍵入“Missisaga”,將返回文字為“Showing results for mississauga”的點擊列表。也就是說,即使用戶輸入缺少字符、有多余的字符或者有其他類型的拼寫錯誤,搜索查詢也會返回結果。
- 重復記錄檢查。例如,由于名稱拼寫不同(例如Abigail Martin和Abigail Martinez)在數據庫中被多次列出。
這篇文章將解釋字符串模糊匹配及其用例,并使用Python中Fuzzywuzzy庫給出示例。
使用FuzzyWuzzy合并酒店房型
每個酒店都有自己的命名方法來命名它的房間,在線旅行社(OTA)也是如此。例如,同一家酒店的一間客房Expedia將之稱為“Studio, 1 King Bed with Sofa Bed, Corner”,Booking.com(繽客)則簡單地將其顯示為“Corner King Studio”。不能說有誰錯了,但是當我們想要比較OTA之間的房價時,或者一個OTA希望確保另一個OTA遵循費率平價協議時(rate parity agreement),這可能會導致混亂。換句話說,為了能夠比較價格,我們必須確保我們進行比較的東西是同一類型的。對于價格比較網站和應用程序來說,最令人頭條的問題之一就是試圖弄清楚兩個項目(比如酒店房間)是否是同一事物。
Fuzzywuzzy是一個Python庫,使用編輯距離(Levenshtein Distance)來計算序列之間的差異。為了演示,我創建了自己的數據集,也就是說,對于同一酒店物業,我從Expedia拿一個房間類型,比如說“Suite, 1 King Bed (Parlor)”,然后我將它與Booking.com中的同類型房間匹配,即“King Parlor Suite”。只要有一點經驗,大多數人都會知道他們是一樣的。按照這種方法,我創建了一個包含100多對房間類型的小數據集,可以訪問Github下載。
我們使用這個數據集測試Fuzzywuzzy的做法。換句話說,我們使用Fuzzywuzzy來匹配兩個數據源之間的記錄。
import pandas as pddf = pd.read_csv('../input/room_type.csv')df.head(10)import pandas as pd總結
以上是生活随笔為你收集整理的Python字符串模糊匹配库FuzzyWuzzy的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字典树介绍
- 下一篇: LightGBM——提升机器算法(图解+