Поиск слов в тексте по словарю?

Есть словарь 2-3 (Aня, Cаша, Александра, Алекс) тысячи имен и произвольный текст 2-3к символов
Существуют ли самый оптимальный способ поиска точных вхождений имен в этом произвольном тексте.Понятно что можно рекурсивным перебором, но словарь может состоять из 10-100 тысяч имен. Возможно есть какие либо библиотеки или инструменты для этого?
  • Вопрос задан
  • 191 просмотр
Решения вопроса 1
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
Алгоритм Ахо — Корасик
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Думаю с задачей отлично справятся системы полнотекстового поиска - sphynx, elasticsearch.
Но, возможно, это пушка для воробья
Ответ написан
Комментировать
Jump
@Jump
Системный администратор со стажем.
Существуют ли самый оптимальный способ
Не бывает оптимальных способов вообще.
Бывают оптимальные для конкретной ситуации.
Вам один раз надо сделать или постоянно искать, будет ли увеличиваться словарь со временем, насколько жесткие ограничения по памяти, как быстро нужно выполнять поиск, что в приоритете скорость или ресурсы?
Ответ написан
Комментировать
Простая задача. Словарь имён конвертируем в нижний регистр и загружаем в хэш-таблицу или бинарное дерево поиска. Далее пробегаем по тексту, выделяем слова, копируем их в буфер, преобразуя буквы верхнего регистра в нижний, и ищем слово в хеш-таблице(или дереве поиска). Быстрее только за счёт низкоуровневых оптимизаций или я не правильно понял задачу.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы