Я пытаюсь понять, как работает функция fuzzywuzzy модуля python process.extract()?python fuzzywuzzy's process.extract(): как это работает?
В основном я читал о пакете fuzzywuzzy здесь: http://chairnerd.seatgeek.com/fuzzywuzzy-fuzzy-string-matching-in-python/, который является отличным сообщением, объясняющим разные сценарии при попытке выполнить нечеткое сопоставление. Они обсудили несколько сценариев для частичной схожести строк:
1) Out Of Order
2) маркеров Sort
3) токена
И затем, с этого поста: https://pathindependence.wordpress.com/2015/10/31/tutorial-fuzzywuzzy-string-matching-in-python-improving-merge-accuracy-across-data-products-and-naming-conventions/ я научился используйте функцию process.extract() функции fuzzywuzzy, чтобы в основном выбрать верхние k совпадений.
Я не могу найти слишком много информации о том, как работает функция process.extract(). Вот определение/информация, которую я нашел на своей странице GitHub (https://github.com/seatgeek/fuzzywuzzy/blob/master/fuzzywuzzy/process.py), что эта функция:
Найти лучшие матчи в списке или словаре выбора, возвращает список кортежей, содержащих матч, и это оценка. Если используется словарь , он также возвращает ключ для каждого совпадения.
Однако, он не содержит деталей относительно того, как это найти лучшее? Потребовались ли все три описанных выше сценария, чтобы найти это?
Причина, по которой я прошу, состоит в том, что, когда я использовал эту функцию, иногда есть две строки, которые очень похожи, но не совпадают.
, например, в моем текущем наборе выборки данных, для чтобы быть матч-строки
«Общее время восстановления запасов (в рабочие дни)»
он сравнивается с
"PLANNING_TIME_FENCE_CODE", "BUILD_IN_WIP_FLAG"
но не (правильный ответ)
«FULL_LEAD_TIME»
Даже если правильный ответ имеет «заблаговременности» так же, как к-быть-матч-строка делает, это не соответствует к строке соответствия для всех. ЗАЧЕМ? и каким-то образом другие, которые не похожи на строку соответствия, должны быть сопоставлены. ЗАЧЕМ? Теперь я совершенно не знаю.