LevenshteinDist() возвращает расстояние Levenshtein — разность между двумя строками. Оно определяется как минимальное количество односимвольных правок (вставки, удаления или замены), требуемых для превращения одной строки в другую.
Функция полезна для нечеткого сравнения строк.
Синтаксис:
LevenshteinDist(text1, text2)
Возвращаемые типы данных: целое
Аргументы
Аргумент
Описание
text1
Первая строка.
text2
Вторая строка, которая будет сравниваться с первой строкой для подсчета минимального количества односимвольных правок.
Пример: выражение диаграммы
Пример
Результат
LevenshteinDist( 'Kitten','Sitting' )
Возвращает 3
Пример. Основы использования функции LevenshteinDist
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, который загружается в таблицу данных под именем Example.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение:
InputText
Создайте следующую меру:
=LevenshteinDist('Silver', InputText), чтобы рассчитать минимальное количество односимвольных правок, необходимое для преобразования значения строки InputText в слово Silver.
Результирующая таблица
InputText
LevenshteinDist(‘Silver’, InputText)
Sliver
2
SSiveer
3
SSiver
2
Выход функции LevenshteinDist возвращает число изменений, необходимых для преобразования текста InputText в ожидаемый текст Silver. Например, в первой строке требуется два изменения, чтобы превратить слово Sliver в Silver. Во второй строке необходимо сделать три изменения: 1) удалить лишний символ S; 2) удалить лишний символ e; 3) вставить новый символ l.
Пример. Сценарий использования функции LevenshteinDist
Обзор
В этом примере объединены названия продуктов из разных систем. В названиях продуктов не всегда используется одинаковое написание из-за опечаток, сокращений, пробелов и других вариаций. С помощью функции LevenshteinDist можно измерить сходство между двумя названиями продуктов и определить, какие из них, скорее всего, относятся к одному и тому же продукту, даже если названия не идентичны.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, который загружается в таблицу данных под именем Example.
Следующие поля в таблице данных:
ProductA
ProductB
Скрипт загрузки
Example:
Load * inline [
ProductA, ProductB
Coca Cola 330ml, CocaCola 330 ml
Pepsi 500 ml, Pepsi 500ml
Sprite Zero 600 ml, SpriteZero600ml
Red Bull 250ml, Redbull 250ml
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
ProductA
ProductB
Создайте следующую меру:
=LevenshteinDist(ProductA, ProductB), чтобы рассчитать минимальное количество односимвольных правок, необходимое для приведения значений строки ProductB в соответствие с ProductA.
Результирующая таблица
ProductA
ProductB
LevenshteinDist(ProductA, ProductB)
Coca Cola 330ml
CocaCola 330 ml
2
Pepsi 500 ml
Pepsi 500ml
1
Red Bull 250ml
Redbull 250ml
2
Sprite Zero 600 ml
SpriteZero600ml
3
Расстояние Левенштейна ― это тип нечеткого соответствия, который широко используется в программах проверки орфографии, оптического распознавания символов и системах коррекции в таких областях, как управление данными клиентов, инвентаризация и обработка документов, где часто встречаются незначительные отклонения в тексте.
Скрипт загрузки
Example:
Load *, recno() as ID;
Load 'Silver' as String_1,* inline [
String_2
Sliver
SSiver
SSiveer ];
Example:
Load *, recno()+3 as ID;
Load 'Gold' as String_1,* inline [
String_2
Bold
Bool
Bond ];
Example:
Load *, recno()+6 as ID;
Load 'Ove' as String_1,* inline [
String_2
Ove
Uve
Üve ];
Example:
Load *, recno()+9 as ID;
Load 'ABC' as String_1,* inline [
String_2
DEFG
abc
ビビビ ];
set nullinterpret = '<NULL>';
Example:
Load *, recno()+12 as ID;
Load 'X' as String_1,* inline [
String_2
''
<NULL>
1 ];
R1:
Load
ID,
String_1,
String_2,
LevenshteinDist(String_1, String_2) as LevenshteinDistance
resident Example;
Drop table Example;
Результирующая таблица
ID
String_1
String_2
LevenshteinDistance
1
Silver
Sliver
2
2
Silver
SSiver
2
3
Silver
SSiveer
3
4
Gold
Полужирный
1
5
Gold
Bool
3
6
Gold
Bond
2
7
Ove
Ove
0
8
Ove
Uve
1
9
Ove
Üve
1
10
ABC
DEFG
4
11
ABC
'abc'
3
12
ABC
ビビビ
3
13
X
1
14
X
-
1
15
X
1
1
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!