Какой порядок имеет значение при сравнении текстовых последовательностей? - PullRequest
0 голосов
/ 08 апреля 2019

Я хочу сравнить сходство в некоторых текстах, чтобы обнаружить дубликаты, но если я использую difflib, он возвращает разные соотношения в зависимости от порядка, в котором я даю данные.

Какой-то случайный пример ....

Спасибо

import difflib


a='josephpFRANCES'
b='ABswazdfsadSASAASASASAS'

seq=difflib.SequenceMatcher(None,a,b)
d=seq.ratio()*100
print(d)

seq2=difflib.SequenceMatcher(None,b,a)
d2=seq2.ratio()*100
print(d2)

d = 16,216216216216218

d2 = 10,81081081081081

1 Ответ

1 голос
/ 08 апреля 2019

Разница между a и b выполняется на основе того, "сколько из b отличается от a по сравнению с длиной a", поэтому обмен a и b естественно дает разные результаты. Это похоже на «5 на 25% больше, чем 4» против «4 на 20% меньше, чем 5». В вашем примере a намного короче, чем b, поэтому, несмотря на одинаковую разницу между a и b, когда делитель отличается из-за различий в предмете сравнения, коэффициент разности отличается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...