2014-05-15 8 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 개의 문자열은 실제로 2 문자열 워드 프로세서가 말하는B other.for 하나의 문자열 WRT의 편차를보고 비교 :

차이가 무엇을 우리가 '에을 어떻게해야합니까 "로 계산된다

'b'로 바꾸려면? '

와 같은있다 : (B)에 대한 X

가 b2j는 [X] X가 표시되는 (b으로) 인덱스의리스트이고; 정크 요소가 나타나지 않습니다.

위의 예제를 설명하십시오. 이것으로

T 두 서열 요소의 총 개수이고, M은 일치의 숫자 인 경우,이 2.0 * M/T.

: 워드 프로세서

+0

이 보인다 '대신'의' "'봐 없음. 'difflib.SequenceMatcher (없음'. 안녕 ','안녕하세요 ')의 비율()' 는 exacly 1.0 –

+0

그것입니다" 헤이 여기 "와"헤이 거기 ", 따옴표는 차이를 만들지 않습니다. 당신은 잘못된 단어를 입력했습니다 .. –

답변

1

첫 번째 문자열의 8 자와 두 번째 문자열의 문자가 일치하기 때문에 T는 17입니다. 첫 번째 문자열에는 8 자, 두 번째 문자열에는 9가 있기 때문에 T는 17입니다. 2 * 8/17은 0.9411764705882353과 같습니다. 당신은`사용해야처럼