Skip to content

Latest commit

 

History

History

practice_2.4

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Практическая работа №9 "Параллельный поиск подстроки в строке"

Реализовать консольную утилиту для нечеткого поиска подстроки в строке.

Предусмотреть:

  1. Интерфейс командной строки (CLI) с соответствующими флагами и параметрами для каждой функции
  2. Поиск символов произвольных алфавитов
  3. Чувствительность/нечувствительность к регистру
  4. Параметр отвечающий за поиск k первых вхождений
  5. Параметр отвечающий за поиск с начала/конца
  6. Поиск в файле произвольного текстового формата
  7. Вывод результата в консоль
  8. Ограничение на количество выводимого текста (не более 10 строк)
  9. Цветовое выделение (свой цвет для каждой подстроки, если их несколько) найденных подстрок
  10. Вывод результата в файл
  11. Поиск производить параллельно (указывая количество потоков), например, разбивая текст на части или производя поиск разных подстрок (алгоритм расширения выборки) или строя таблицы N-грамм

См. утилиты grep и agrep.

Алгоритмы:

  1. Линейный поиск с метрикой расстояния Левенштейна
  2. Линейный поиск с метрикой расстояния Дамерау-Левенштейна
  3. Двоичный алгоритм Bitap или Shift-Or с модификацией Wu-Manber
  4. BK-деревья
  5. Алгоритм расширения выборки
  6. Метод N-грамм

Требования к реализации

Требования к реализации см. в работе 1.3 "Поиск подстрок в строке".

Входные и выходные данные

Поиск должен учитывать ошибки следующих видов:

  • вставка: коткорт
  • удаление: корткот
  • замена: коткод

Дополнительные требования см. в работе 1.3 "Поиск подстрок в строке".

Методика оценивания

Оценка выставляется в соответствии со следующими требованиями:

  1. Общие требования:
    • код работы проходит проверку утилитой pylint с конфигурационным файлом .pylintrc.
    • код работы успешно проходит тесты, если таковые имеются.
    • наличие документации к модулям, функциям, классам и методам.
    • наличие аннотации типов.
  2. На оценку 3 балла:
    • реализовать пункты 1, 2, 3 и 7.
  3. На оценку 4 балла:
    • дополнительно реализовать пункты 4, 5 и 11.
  4. На оценку 5 балла:
    • реализовать все методы, указанные в описании к работе.

Полезные материалы