fuzzystrmatch. Вычисление схожес ти и расстояния между строками
В исходном дистрибутиве установлено по умолчанию: нет.
Связанные компоненты: отсутствуют.
Схема размещения:
ext
.
Модуль содержит функции для вычисления схожести и расстояния между строками.
Описание функций
Soundex
Система Soundex позволяет вычислить похожие по звучанию имена, приводя их к одинаковым кодам. Система не очень полезна для неанглоязычных имен.
Функции для работы с кодами Soundex:
Функция | Возвращает | Описание |
---|---|---|
soundex(text) | text | Преобразует строку в код Soundex |
difference(text, text) | int : 0 – полное несоответствие, 4 — точное совпадение | Преобразует две строки в их коды Soundex и затем сообщает количество совпадающих позиций в этих кодах; ко ды Soundex состоят из четырех символов |
Левенштейн
Функция вычисляет «расстояние Левенштейна» между двумя строками.
Примечание:
Расстояние Левенштейна (редакционное расстояние, дистанция редактирования) — метрика, измеряющая по модулю разность между двумя последовательностями символов. Она определяется как минимальное количество односимвольных операций (а именно вставки, удаления, замены), необходимых для превращения одной последовательности символов в другую.
Источник: ru.wikipedia.org.
Функции Левенштейна:
Функция | Возвращает |
---|---|
levenshtein (text source, text target, int ins_cost, int del_cost, int sub_cost) | int |
levenshtein (text source, text target) | int |
levenshtein_less_equal (text source, text target, int ins_cost, int del_cost, int sub_cost, int max_d) | int |
levenshtein_less_equal (text source, text target, int max_d) | int |
Функция levenshtein_less_equal
является ускоренной версией функции Левенштейна. Она предназначена для использования, когда интерес представляют небольшие расстояния.
Входные параметры функций Левенштейна:
Параметр | Тип | Описание |
---|---|---|
source | text | В качестве исходной может быть передана любая строка, отличная от NULL и не длиннее 255 символов |
target | text | В качестве целевой может быть передана любая строка, отличная от NULL и не длиннее 255 символов |
ins_cost | int | Стоимость добавления символов |
del_cost | int | Стоимость удаления символов |
sub_cost | int | Стоимость замены символов |
max_d | int | Пороговое (максимальное) значение расстояния для функции levenshtein_less_equal (описание параметра представлено ниже) |
Зависимость результата функции levenshtein_less_equal
при установке параметра max_d
от фактического расстояния:
- меньше или равно
max_d
– возвращает точное его значение; - больше
max_d
– возвращает знач ение, большее чемmax_d
; - отрицательное – работа аналогична функции
levenshtein
.
Metaphone
Примечание:
Metaphone - это фонетический алгоритм, опубликованный Лоуренсом Филипсом в 1990 году для индексации слов по их английскому произношению.
Источник: ru.wikipedia.org
Metaphone, как и Soundex, построен на идее составления кода, представляющего входную строку. Две строки признаются похожими, если их коды совпадают.
Функция Metaphone:
Функция | Возвращает | Описание | Входные параметры |
---|---|---|---|
metaphone (text source, int max_output_length) | text | Вычисляет код метафона входной строки | source – строка, отличная от NULL длиной до 255 символов; max_output_length – максимальная длина выходного кода метафона; если код длиннее, он обрезается |
Double Metaphone
Алгоритм Double Metaphone (Двойной метафон) вычисляет две строки «похожего звучания» для заданной строки — «первичную» и «альтернативную». В большинстве случаев они совпадают, но для неанглоязычных имен в особенности они могут быть весьма различными, в зависимости от произношения.
Функция Double Metaphone:
Функция | Возвращает | Описание |
---|---|---|
dmetaphone (text source) | text | Вычисляет первичный код |
dmetaphone_alt (text source) | text | Вычисляет альтернативный код |
Доработка
Доработка не проводилась.
Ограничения
Функции некорректно работают с многобайтными кодировками, как например UTF-8
.