Ivan_um, пишу в личку, если
Msi2102 не претендует
Рекомендую (для меня и других потенциальных исполнителей) привести пример неидентичных строк, которые нужно считать совпавшими.
Задача очень непростая. Возможно, полностью автоматического решения найдено не будет. При большой сложности алгоритма, ценник может быть очень большим.
Что она делает |
---|
функция из Приёмов всего лишь определяет, сколько символов из очередной проверяемой строки "кривого" списка найдено в каждой строке "словарного" списка. Строка "словарного" списка, в которой найдено наибольшее количество символов проверяемой "кривой" строки считается наиболее подходящей. Понятно, что на реальных данных такой подход редко может быть полезен в таком виде — строки словаря с наибольшим количеством разнообразных символов будут давать наибольшую "похожесть" по факту являясь совершенно отличными от проверяемого значениями. Счёт совпавших символов может использоваться как часть алгоритма, но нужны гораздо более сложные метрики и проверки.
Повторюсь, задача неточного поиска является очень сложной и часто не может быть автоматического решения — только список с % похожести (определение этого % и является сутью алгоритмов неточного поиска) для выбора (окончательного подтверждения) "кожаным" пользователем. Всё зависит от данных. |