levenshtein

levenshtein -- Calcula a distância Levenshtein entre duas strings

Descrição

int levenshtein ( string str1, string str2)

int levenshtein ( string str1, string str2, int cost_ins, int cost_rep, int cost_del)

int levenshtein ( string str1, string str2, function cost)

Retorna a Levenshtein-Distance entre duas strings argumentos ou -1 , se nenhuma das strings argumentos é mais longa que o o limite de 255 caracteres ( 255 seria mais do que o bastante para o nome ou comparação de dicionário , e ninguém sério estaria fazendo análises genéticas com PHP ) .

A distância Levenshtein é definida como o número mínimo de caracteres que você tem para substituir , inserir ou apagar para transformar str1 dentro de str2 . A complexidade do algoritmo é O( m*n ) , onde n e m são o comprimento da str1 e str2 (rather good when compared to similar_text( ) , which is O(max(n,m)**3) , but still expensive ) .

Na sua forma mais simples a função pegará apenas as duas strings como parâmetros e calculará apenas o número de operações de inserção , substituição e deletação necessárias para transformar str1 em str2 .

Uma segunda variante pegará três parâmetros adicionais que definem o custo das operações de inserção , substituição e deletação . Esta é a mais geral e adapatável do que a variante um , mas não tão eficiente .

A terceira variante ( que ainda não é implementada ) será a mais geral e adaptável , mas também a alternativa mais lenta . Ela chamará uma função de usuário fornecida que determinará o custo para cada possível operação .

A função de usuário fornecida( The user-supplied function ) será chamada com os seguintes argumentos :

The user-supplied function has to return a positive integer describing the cost for this particular operation, but it may decide to use only some of the supplied arguments.

Veja também soundex( ) , similar_text( ) , e metaphone( ) .