2014-05-15 30 views
2

我檢查了difflib的文檔,我很困惑如何difflib.SequenceMatcher.ratio()實際工作。試想一下:方法set_seq1和set_seq2,difflib的工作python

s = difflib.SequenceMatcher(None, "hey here" , "hey there").ratio() 
print s 

s = 0.9411764705882353
我想知道它是如何精確計算。 2串由實際看到一個字符串WRT的other.for 2串一個b文檔說的偏差比較:

差異計算爲「什麼,我們需要做的,「一個'把它改成'b'?「

而且還有這樣的:

爲b中的x,B2J [X]是在出現x中的索引(至b)的列表;垃圾元素不會出現

請解釋w.r.t上述的例子

+0

好像你應該使用''',而不是' 「'你看: 'difflib.SequenceMatcher(無, '嘿', '嘿')比()' 是exacly 1.0 –

+0

其」嘿,這裏「和」嘿,那裏「,引號沒有區別,你輸入了錯誤的單詞.. –

回答

1

從文檔:

其中T是在兩個序列中的元素的總數,並且M是匹配的數量,這是2.0 * M/T。

在這種情況下,T是17,因爲第一個字符串有8個字符,第二個字符串有9個。M是8,因爲第一個字符串的八個字符與第二個字符的字符匹配。 2 * 8/17等於0.9411764705882353。