Jump to content

Сопоставление гештальт-образцов

Сопоставление гештальт-образцов , [1] также распознавание образов Ratcliff/Obershelp , [2] — это алгоритм сопоставления строк для определения сходства двух строк . Он был разработан в 1983 году Джоном В. Рэтклиффом и Джоном А. Обершелпом и опубликован в журнале доктора Добба в июле 1988 года. [2]

Алгоритм

[ редактировать ]

Сходство двух струн и определяется по формуле, вычисляющей удвоенное количество совпадающих символов разделить на общее количество символов обеих строк. Соответствующие символы определяются как некоторая самая длинная общая подстрока. [3] плюс рекурсивно количество совпадающих символов в несовпадающих областях по обе стороны самой длинной общей подстроки: [2] [4]

где метрика сходства может принимать значение от нуля до единицы:

Значение 1 означает полное совпадение двух строк, тогда как значение 0 означает отсутствие совпадений и даже одной общей буквы.

С 1 В я К я М И Д я А
SS2 В я К я М А Н я А

Самая длинная общая подстрока WIKIM (светло-серый) из 5 символов. Слева больше нет подстроки. Несовпадающие подстроки в правой части: EDIA и ANIA. У них снова есть самая длинная общая подстрока IA (темно-серый) длиной 2. Метрика сходства определяется:

Характеристики

[ редактировать ]

Соответствующие символы Рэтклиффа/Оберсхелпа могут существенно отличаться от каждой самой длинной общей подпоследовательности данных строк. Например и иметь как их единственная самая длинная общая подстрока, и никаких общих символов справа от ее появления, а также слева, что приводит к . Однако самая длинная общая подпоследовательность и является , общей длиной .

Сложность

[ редактировать ]

Время выполнения алгоритма в худшем случае и в среднем случае. Изменив метод вычислений, время выполнения можно значительно улучшить. [1]

Коммутативное свойство

[ редактировать ]

Реализация алгоритма сопоставления гештальт-образцов в библиотеке Python не является коммутативной : [5]

Образец

Для двух струн

и

результат метрики для

является с подстроками GESTALT P, A, T, E и для
метрика с подстроками GESTALT P, R, A, C, I. [ почему? ]

Приложения

[ редактировать ]

Питон difflib библиотека, представленная в версии 2.1, [1] реализует аналогичный алгоритм, предшествовавший алгоритму Рэтклиффа-Оберсхелпа. Из-за неблагоприятного поведения этой метрики сходства во время выполнения были реализованы три метода. Два из них возвращают верхнюю границу за более быстрое время выполнения. [1] Самый быстрый вариант сравнивает только длину двух подстрок: [6]

,

Вторая верхняя граница вычисляет двойную сумму всех используемых символов. которые происходят в делится на длину обеих строк, но последовательность игнорируется.

[ нужны разъяснения ]
# Dqr Implementation in Python
def quick_ratio(s1: str, s2: str) -> float:
    """Return an upper bound on ratio() relatively quickly."""
    length = len(s1) + len(s2)

    if not length:
        return 1.0

    intersect = collections.Counter(s1) & collections.Counter(s2)
    matches = sum(intersect.values())
    return 2.0 * matches / length

Тривиально применяется следующее:

и
.
  1. ^ Jump up to: Перейти обратно: а б с д difflib — Помощники для вычисления дельт в документации Python
  2. ^ Jump up to: Перейти обратно: а б с Распознавание образов Национального института стандартов и технологий Рэтклиффа / Оберсхелпа
  3. ^ Хотя две строки могут иметь несколько самых длинных общих подстрок, Рэтклифф (1988), по-видимому, предполагает, что существует только одна.
  4. ^ Илья Ильянков: Сравнение алгоритмов Яро-Винклера и Рэтклиффа/Оберсхелпа при проверке орфографии , май 2014 г. (PDF)
  5. ^ Как работает Pythons SequenceMatcher? на stackoverflow.com
  6. ^ Заимствовано из Python 3.7.0, строки difflib.py 38–41 и 676–686.

Дальнейшее чтение

[ редактировать ]
  • Рэтклифф, Джон В.; Метценер, Дэвид (июль 1988 г.). «Сопоставление с образцом: гештальт-подход». Журнал доктора Добба (46).

См. также

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5754850670ed91f9877e12b25ded911a__1714308240
URL1:https://arc.ask3.ru/arc/aa/57/1a/5754850670ed91f9877e12b25ded911a.html
Заголовок, (Title) документа по адресу, URL1:
Gestalt pattern matching - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)