MyTetra Share
Делитесь знаниями!
Алгоритм сравнения строк
31.07.2019
22:37
Раздел: !Закладки - VBA

Алгоритм сравнения строк
Функция нечёткого сравнения использует в качестве аргументов две строки и параметр сравнения - максимальную длину сравниваемых подстрок. Результатом работы функции является число, лежащее в пределах от 0 до 1. 0 соответствует полному несовпадению двух строк, а 1 - полной (в определённом ниже смысле) их идентичности.
Сравнение строк происходит по следующей схеме. Пусть, например, в качестве аргументов заданы две строки "test" и "text" и некоторая максимальная длина подстрок, скажем, 4. Функция сравнения составляет все возможные комбинации подстрок с длинной вплоть до указанной и подсчитывает их совпадения в двух сравниваемых строках. Количество совпадений, разделённое на число вариантов, объявляется коэффициентом схожести строк и выдаётся в качестве результата работы функции.

Продолжим пример.

Сравниваемая подстрока

Подстроки второй строки

Есть совпадение?

Количество совпадений

Количество вариантов

Сравниваем строку test со строкой text по подстрокам длины 1.

t

t, e, x, t

да

3

4

e

t, e, x, t

да

s

t, e, x, t

нет

t

t, e, x, t

да

Сравниваем строку text со строкой test по подстрокам длины 1.

t

t, e, s, t

да

3

4

e

t, e, s, t

да

x

t, e, s, t

нет

t

t, e, s, t

да

Сравниваем строку test со строкой text по подстрокам длины 2.

te

te, ex, xt

да

1

3

es

te, ex, xt

нет

st

te, ex, xt

нет

Сравниваем строку text со строкой test по подстрокам длины 2.

te

te, es, st

да

1

3

ex

te, es, st

нет

xt

te, es, st

нет

Сравниваем строку test со строкой text по подстрокам длины 3.

tes

tex, ext

нет

0

2

est

tex, ext

нет

Сравниваем строку text со строкой test по подстрокам длины 3.

tex

tes, est

нет

0

2

ext

tes, est

нет

Сравниваем строку test со строкой text по подстрокам длины 4.

test

text

нет

0

1

Сравниваем строку text со строкой test по подстрокам длины 4.

text

test

нет

0

1

Итого

8

20

Приведённая таблица иллюстрирует алгоритм подсчёта коэффициента схожести двух строк. Для строк "test" и "text" и длины

Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования