Какой алгоритм использовать для нахождения соответствия между данными и словарем?
Данные и словарь представляют из себя наборы строк. В данных те же строки из словаря, но с опечатками, с перестановками слов, с лишними или недостающими словами и т.п.
Нужно составить соответствие - какой строке из словаря соответствует строка из данных.
Возможно стоит посмотреть в сторону алгоритмов машинного обучения. Тогда подскажите какого именно.
Именно так я и пытался реализовать, с помощью питоновского пакета fuzzywuzzy. Хорошо работает с отдельными словами, исправляет опечатки. А вот на уровне целой строки пока не получается, так как нужно избавляться от лишних слов, не знаю как это сделать автоматически. Например как здесь:
Словарь:
Ой Ой Ой Смотрите большая белка (рыжая)
Рыжая Лиса с белым хвостом
Данные:
Смотрите! Ой, Рыжая лиса
Должно быть:
Смотрите! Ой, Рыжая лиса -> Рыжая Лиса с белым хвостом
Но по кол-ву совпадающих слов алгоритм выдает белку.