LevenshteinDist() devuelve la distancia Levenshtein entre dos cadenas. Se define como el número mínimo de ediciones de un solo carácter (inserciones, eliminaciones o sustituciones) necesarias para cambiar una cadena por otra.
La función es útil para comparaciones de cadenas difusas.
Sintaxis:
LevenshteinDist(text1, text2)
Tipo de datos que devuelve: Entero
Argumentos
Argumento
Descripción
text1
La primera cadena.
text2
La segunda cadena que se comparará con la primera para calcular el número mínimo de ediciones de un solo carácter.
Ejemplo: expresión de gráfico
Ejemplo
Resultado
LevenshteinDist( 'Kitten','Sitting' )
Devuelve 3
Ejemplo: fundamentos de LevenshteinDist
Descripción
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
El script de carga contiene:
Un conjunto de datos que se carga en una tabla de datos denominada Example.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:
InputText
Cree la siguiente medida:
=LevenshteinDist('Silver', InputText), para calcular el número mínimo de ediciones de un solo carácter necesarias para cambiar el valor de la cadena de InputText a la palabra Silver.
Tabla de resultados
InputText
LevenshteinDist('Silver', InputText)
Sliver
2
SSiveer
3
SSiver
2
El resultado de la función LevenshteinDist devuelve el número de cambios necesarios para cambiar el InputText al texto esperado, Silver. Por ejemplo, la primera fila requiere dos cambios para modificar la palabra Sliver a Silver. La segunda fila requiere 3 cambios: 1) Eliminar el carácter extra S. 2) Eliminar el carácter adicional e. 3) Insertar un nuevo carácter l.
Ejemplo: uso de LevenshteinDist
Descripción
Este ejemplo consolida nombres de productos procedentes de diferentes sistemas. Los nombres de los productos no siempre utilizan la misma ortografía debido a errores tipográficos, abreviaturas, espaciado u otras variaciones. Utilizando la función LevenshteinDist, puede medir la similitud entre dos nombres de producto e identificar cuáles se refieren probablemente al mismo producto, aunque los nombres no sean idénticos.
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
El script de carga contiene:
Un conjunto de datos que se carga en una tabla de datos denominada Example.
Los siguientes campos de la tabla de datos:
ProductA
ProductB
Script de carga
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
];
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
ProductA
ProductB
Cree la siguiente medida:
=LevenshteinDist(ProductA, ProductB), para calcular el número mínimo de ediciones de un solo carácter necesarias para cambiar el valor de la cadena de ProductB para que coincida con ProductA.
Tabla de resultados
ProductoA
ProductoB
LevenshteinDist(ProductoA, ProductoB)
Coca Cola 330 ml
Coca Cola 330 ml
2
Pepsi 500 ml
Pepsi 500 ml
1
Red Bull 250ml
Redbull 250ml
2
Sprite Cero 600 ml
Sprite Cero 600 ml
3
La distancia de Levenshtein es un tipo de correspondencia difusa muy utilizada en correctores ortográficos, sistemas de reconocimiento óptico de caracteres y sistemas de corrección en ámbitos como la gestión de datos de clientes, los sistemas de inventario y el tratamiento de documentos, en los que se producen con frecuencia ligeras variaciones en el texto.
Script de carga
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;
Tabla de resultados
ID
Cadenatexto_1
Cadenatexto_2
Distancia Levenshtein
1
Silver (plata)
Sliver (astilla)
2
2
Silver (plata)
SSiver
2
3
Silver
SSiveer
3
4
Gold (oro)
Bold (negrita)
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
¿Esta página le ha sido útil?
No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.