У меня есть набор данных, с которым я хочу найти наиболее близкое совпадение строки.Для этого я использую FuzzyWuzzy следующим образом:
sol=process.extract(t,dev2,scorer=fuzz.token_sort_ratio)
Где t - строка, а dev2 - список для сравнения.Моя проблема в том, что иногда он имеет очень похожие записи и опции, предоставляемые FuzzyWuzzy, похоже, отсутствуют.И я протестировал с token_sort, token_set ,partal_token сортировать и установить, ratio ,partal_ratio и WRatio.
Например, строка Italy - Serie A
дает мне следующие 2 ближайших совпадения.
Token_sort_ratio: (92, 'Italy - Serie D');(86, 'Italian - Serie A')
Требуемый, очевидно, второй, но символ за персонажем ближе к первому, что является другой лигой.
Это происходит также и с командами.Если, скажем, у меня есть строка Buchtholz
, я получу Buchtholz II
, прежде чем получу TSV Buchtholz
.
Теперь моя главная догадка - попытаться взвесить присутствие и отсутствие нескольких символов в большей степени,как отдельные заглавные буквы в конце строки, поэтому, если есть разница в букве или ее отсутствие, она оценивается как менее близкая.Или для ()
и специальных символов.
Я не знаю, есть ли способ принять это во внимание, или у вас, ребята, есть лучший способ получить строку, которая действительно соответствует.