作者ardodo (米蟲)
看板Python
標題[問題] 使用fuzzywuzzy比對兩個不同長度的物件
時間Tue Sep 8 16:56:23 2015
各位版友好:
小弟剛學python不久,有個問題向各位請教
我現在想以fuzzywuzzy套件比對兩個物件內所有地址的相似度,但是這兩個物件的長度
不同,如下code所述:
----
obj1=["信義區一段一號","台北市信義段20號"]
obj2=["台北市信義區一段一號","台北市信義段20號","台北市信義一路二段","台北市信
義區"]
fuz2=fuzz.ratio(obj1,obj2)
print fuz2
----
上述code只能傳回一個值,就我的理解應該是obj1的所有字串跟obj2的所有字串相比之
simiarity,但是我想要做的是,把obj1內的每個物件都跟obj2的每個物件比對,
並且傳回每個與之相比的simiarity,以下是我想呈現的樣貌:
=======================================================================
obj1 obj2 similarity(以下為自己假設的數值)
信義區一段一號 台北市信義區一段一號 0.8
信義區一段一號 台北市信義段20號 0.6
信義區一段一號 台北市信義一路二段 0.4
信義區一段一號 台北市信義區 0.3
台北市信義段20號 台北市信義區一段一號 0.5
台北市信義段20號 台北市信義段20號 1
台北市信義段20號 台北市信義一路二段 0.4
台北市信義段20號 台北市信義區 0.3
=======================================================================
懇請版上各路先進指點,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.27.199
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1441702586.A.225.html
→ bibo9901: for s,t in itertools.product( obj1, obj2 ): 09/08 17:46
→ bibo9901: print(fuzz.ratio(obj1[s],obj2[t]) ) 09/08 17:46
→ bibo9901: 不過如果連 nested loop 都寫不出來 基本功該多練練 ... 09/08 17:49
→ ardodo: 感謝指點,我再試試看 09/08 22:08
→ bibo9901: 啊啊 我把你的obj看成dict了 09/08 22:42
→ bibo9901: 應該是 print(s,t,fuzz.ratio(s,t) ) 09/08 22:42