LevenShteInst() retorna a distância Levenshtein entre duas strings. Ela é definida como o número mínimo de edições de caractere único (inserções, exclusões ou substituições) necessárias para transformar uma string na outra.
Essa função é útil para comparações de strings difusas.
Sintaxe:
LevenshteinDist(text1, text2)
Tipo de dados de retorno: inteiro
Argumentos
Argumento
Descrição
text1
A primeira string.
text2
A segunda string que será comparada com a primeira string para calcular o número mínimo de edições de um único caractere.
Exemplo: expressão de gráfico
Exemplo
Resultado
LevenshteinDist( 'Kitten','Sitting' )
Retorna 3
Exemplo - Fundamentos de LevenshteinDist
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados que é carregado em uma tabela de dados denominada Example.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:
InputText
Crie a seguinte medida:
=LevenshteinDist('Silver', InputText), para calcular o número mínimo de edições de caractere único necessárias para alterar o valor da string para InputText para a palavra Silver.
Tabela de resultados
InputText
LevenshteinDist('Silver', InputText)
Sliver
2
SSiveer
3
SSiver
2
A saída da função LevenshteinDist retorna o número de alterações necessárias para alterar o InputText para o texto esperado, Silver. Por exemplo, a primeira linha requer duas alterações para modificar a palavra Sliver para Silver. A segunda linha requer 3 alterações: 1) Exclua o caractere extra S. 2) Exclua o caractere extra e. 3) Insira um novo caractere l.
Exemplo - Cenário de LevenshteinDist
Visão geral
Este exemplo consolida nomes de produtos de diferentes sistemas. Os nomes dos produtos nem sempre usam a mesma grafia devido a erros de digitação, abreviações, espaçamento ou outras variações. Usando a função LevenshteinDist, você pode medir a similaridade entre dois nomes de produtos e identificar quais provavelmente se referem ao mesmo produto, mesmo que os nomes não sejam idênticos.
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados que é carregado em uma tabela de dados denominada Example.
Os campos a seguir na tabela de dados:
ProductA
ProductB
Script de carregamento
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
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
ProductA
ProductB
Crie a seguinte medida:
=LevenshteinDist(ProductA, ProductB), para calcular o número mínimo de edições de caracteres individuais necessárias para alterar o valor da string para ProductB para corresponder a ProductA.
Tabela de resultados
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
A distância de Levenshtein é um tipo de correspondência difusa amplamente usada como parte de verificadores ortográficos, reconhecimento óptico de caracteres e sistemas de correção em áreas como gerenciamento de dados de clientes, sistemas de inventário e processamento de documentos, onde pequenas variações no texto ocorrem com frequência.
Script de carregamento
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;
Tabela de resultados
ID
String_1
String_2
LevenshteinDistance
1
Silver
Sliver
2
2
Silver
SSiver
2
3
Silver
SSiveer
3
4
Gold
Negrito
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 ajudou?
Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!