作者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://webptt.com/cn.aspx?n=bbs/Python/M.1441702586.A.225.html
1F:→ bibo9901: for s,t in itertools.product( obj1, obj2 ): 09/08 17:46
2F:→ bibo9901: print(fuzz.ratio(obj1[s],obj2[t]) ) 09/08 17:46
3F:→ bibo9901: 不过如果连 nested loop 都写不出来 基本功该多练练 ... 09/08 17:49
4F:→ ardodo: 感谢指点,我再试试看 09/08 22:08
5F:→ bibo9901: 啊啊 我把你的obj看成dict了 09/08 22:42
6F:→ bibo9901: 应该是 print(s,t,fuzz.ratio(s,t) ) 09/08 22:42