Алгоритм поиска по имени автора? Добрый день. Общий вопрос по программированию.
Необходимо организовать поиск по имени автора, причем имя автора написано по разному. Например, Френсис Дрейк | Дрейк, Френсис | Дрейк и так далее. При этом следует, также, учитывать возможные ошибки в написании имени автора (расстояние Левенштейна для последнего?).
Буду благодарен за наводку на алгоритм. В голову ничего толкового не приходит.

21 Авг 2019 в 06:22
255 +1
0
Ответы
1

Для решения этой задачи можно воспользоваться алгоритмом сравнения строк на основе расстояния Левенштейна. Расстояние Левенштейна позволяет определить минимальное количество односимвольных операций (вставка, удаление, замена) необходимых для превращения одной строки в другую.

Для каждого имени автора из базы данных можно рассчитать расстояние Левенштейна с введенным пользователем именем. Далее можно установить порог сходства (например, 2-3) и считать имена авторов "совпадающими", если расстояние Левенштейна не превышает этот порог.

Примерный алгоритм поиска по имени автора:

Ввод пользователя - введенное имя автораПолучение списка всех имен авторов из базы данныхДля каждого имени автора из списка:
Рассчитать расстояние Левенштейна между именем автора из базы данных и введенным пользователем именемЕсли расстояние Левенштейна не превышает порог сходства, добавить имя автора в список "совпадающих"Вывод списка "совпадающих" имен авторов

Такой алгоритм позволит учесть возможные ошибки в написании имени автора и найти соответствия даже в случае, когда имя автора записано по-разному.

20 Апр в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 91 696 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир