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

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

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

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

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

image

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

image

image

Оставьте комментарий