1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/willalex-nlp-journey

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
alg.md 2.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 02.06.2025 10:16 35e70af

Некоторые алгоритмы, используемые с данными структурами в NLP

Алгоритм KMP

Это алгоритм для поиска подстроки в строке: определение, содержится ли одна строка в другой.

Чтобы определить, содержится ли одна строка в другой, обычно сравниваются символы по одному, и если не совпадают, то сдвигаются на один символ и продолжается сравнение. Это, конечно, самый простой и медленный способ. Есть ли более эффективные способы сравнения?

Конечно, есть. Алгоритм KMP является одним из таких способов.

  1. Первый символ совпадает, если не совпадает, сдвигаем на один символ, если совпадает, продолжаем проверку следующего символа.
  2. Если несколько символов совпадают, а затем не совпадают, то в отличие от простого сдвига на один символ, алгоритм KMP сдвигает на количество совпадающих символов минус соответствующее значение частичного совпадения.

Как рассчитывается значение частичного совпадения?

Для этого нужно понять два понятия: "префикс" и "суффикс". "Префикс" - это все комбинации символов, кроме последнего, в строке; "суффикс" - это все комбинации символов, кроме первого, в строке.

"Значение частичного совпадения" - это длина наибольшего общего префикса и суффикса.> Подробное объяснение можно найти в блоге великого специалиста Руань Ифэнга: Алгоритм KMP для поиска подстроки, где все объяснено очень доступно. Рекомендую прочитать все его блоги последовательно.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/willalex-nlp-journey.git
git@api.gitlife.ru:oschina-mirror/willalex-nlp-journey.git
oschina-mirror
willalex-nlp-journey
willalex-nlp-journey
master