Последовательное приближенное сравнение строк: различия между версиями

Перейти к навигации Перейти к поиску
м
(Новая страница: «== Ключевые слова и синонимы == Сравнение строк, допускающее ошибки или разность; неточное…»)
 
Строка 3: Строка 3:


== Постановка задачи ==
== Постановка задачи ==
Пусть даны текстовая строка T = t1t 2.. tn и строка образца P = p1p2 : : : pm, представляющие собой последовательности над алфавитом S размера a, а также функция расстояния между строками d и порог k. Задача приближенного сравнения строк (approximate string matching, ASM) заключается в нахождении всех текстовых позиций, завершающих так называемое приблизительное вхождение P в T; иначе говоря, в вычислении множества fj; 9 i; 1 < i < j; d(P; t i : : : tj) < kg. В последовательной версии задачи T, P и k уже заданы, при этом алгоритм может быть настроен для конкретного d.
Пусть даны ''текстовая строка'' <math>T = t_1 t_2 ... t_n</math> и ''строка образца'' <math>P = p_1 p_2 ... p_m</math>, представляющие собой последовательности над алфавитом <math>\Sigma</math> размера <math>\sigma</math>, а также ''функция расстояния'' между строками d и ''порог'' k. Задача ''приближенного сравнения строк'' (approximate string matching, ASM) заключается в нахождении всех текстовых позиций, завершающих так называемое ''приблизительное вхождение'' P в T; иначе говоря, в вычислении множества <math>\{ j, \exist i, 1 \le i \le j, d(P, t_i ... t_j) \le k \}</math>. В последовательной версии задачи T, P и k уже заданы, при этом алгоритм может быть настроен для конкретного d.




Решения этой задачи заметно различаются в зависимости от используемой метрики расстояния d. Далее будет использоваться очень популярная метрика, называемая расстоянием Левенштейна или расстоянием редактирования и определяемая как минимальное количество операций вставки символа, удаления символа и замены одного символа на другой, необходимых для преобразования одной строки в другую. Также будет уделено внимание другим распространенным вариантам, таким как indel-расстояние, в котором допускаются только вставки и удаления и которое является двойственным к нахождению самой длинной общей подпоследовательности lcs (d(A; B) = jAj + \B\ - 2 • lcs(A; B)), а также расстояние Хэмминга, в котором рассматриваются только замены.
Решения этой задачи заметно различаются в зависимости от используемой метрики расстояния d. Далее будет использоваться очень популярная метрика, называемая ''расстоянием Левенштейна'' или ''расстоянием редактирования'' и определяемая как минимальное количество операций вставки символа, удаления символа и замены одного символа на другой, необходимых для преобразования одной строки в другую. Также будет уделено внимание другим распространенным вариантам, таким как ''indel-расстояние'', в котором допускаются только вставки и удаления и которое является двойственным к нахождению ''самой длинной общей подпоследовательности'' lcs (d(A, B) = |A| + |B| - 2 • lcs(A, B)), а также ''расстояние Хэмминга'', в котором рассматриваются только замены.




4551

правка

Навигация