FuzzyWuzzy для очень похожих записей в Python - PullRequest
0 голосов
/ 16 декабря 2018

У меня есть набор данных, с которым я хочу найти наиболее близкое совпадение строки.Для этого я использую 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.

Теперь моя главная догадка - попытаться взвесить присутствие и отсутствие нескольких символов в большей степени,как отдельные заглавные буквы в конце строки, поэтому, если есть разница в букве или ее отсутствие, она оценивается как менее близкая.Или для () и специальных символов.

Я не знаю, есть ли способ принять это во внимание, или у вас, ребята, есть лучший способ получить строку, которая действительно соответствует.

...