Python 字串比對工具:difflib

Pei Lee
2 min readJun 13, 2017

--

關於這個套件其實這位大大講得蠻清楚的了,可以點進去看基本的功能,然後文件在這。在這邊想多分享一個功能,以及公司內部實際應用的例子。

SequenceMatcher 有一個 function 是 ratio(),能幫忙計算兩個字串的相似程度,會傳回 0-1 之間的數字,0 代表完全不同,1 代表完全相同。例如:

s1 = '我是一隻快樂又漂亮的豬'
s2 = '我是豬'
s3 = '今天天氣真好'
SequenceMatcher(None, s1, s2).ratio()

回傳

0.42857142857142855

再來:

SequenceMatcher(None, s1, s3).ratio()

回傳

0.0

是個蠻簡單實用的小工具,不過實際上可以怎麼應用呢?

應用情境

公司在每年辦完活動後,會請廠商填寫意見調查表,累積幾年後想要了解廠商每年意見的變化,但是發現廠商每年寫的公司名稱都不一樣,例如義美的公司全名為「義美食品股份有限公司」,廠商有時只寫「義美」,有時寫「義美食品」,有時則會寫上全名,結果導致公司名稱對不上而無法統計意見。因此我們利用這個小工具去做比對,簡單觀察大概 ratio() 出來的結果是多少以上才吻合,然後去做後續的處理。

以上是目前有實際用過的例子,簡單分享一下。

--

--

Pei Lee
Pei Lee

Written by Pei Lee

Data Team Lead @ Retail & E-commerce Industry

No responses yet