суббота, мая 20, 2023

Нечёткие строковые операции.

 В программе возникла необходимость находить в списке строк слова, написанные с ошибками.

Например, при поиске названия группы человек полагает, что группа называется Beetlz. Или он приблизительно помнит, что в названии трека есть упоминание про Фореста Гампа.

Обычные методы определения вхождения подстроки работают в таких случаях так себе, обычно просто ничего не находят.

Пришлось покопаться, что там лингвисты по этому поводу думают – а у них много чего уже наработано. В результате не очень долгих раскопок получилась функция FuzzyContains для определения приблизительного вхождения строки.


В итоге и группа правильно находится, и название трека.