Eu até ia cortar 'RUA ', 'AVENIDA ', 'ESTRADA ' antes do cálculo da distância (si este "prefixo" seria presente em ambos lados da comparação). Custa um pouco tempo para usar a função substr(), mais tambem reduza o cálculo Levenshtein.

Então o caso 'RUA A' <-> 'RUA B' seria 100% de distância. Parece muita distância, mas na realidade que eu vi, 'RUA A' e 'RUA B' são duas ruas vizinhas, mais diferentes mesmo.

Hermann

PS: Alguem me pode explicar a lógica brasileira da dualidade de "lista talk-br" e "OSM Forum, users: Brazil" ? Minha hipótese é que o Forum serve mais para a "Geração Facebook" (a geração dos meus filhos), enquanto que, por outro lado, a lista talk-br é o veículo histórico de comunicação da "Geração pré-Facebook" (que nem eu). É verdade memo ? ;-)

On 2014-03-23 23:16, Fernando Trebien wrote:
Hehe foi exatamente isso que eu fiz na segunda versão:
http://forum.openstreetmap.org/viewtopic.php?pid=408056#p408056

2014-03-23 19:04 GMT-03:00 Paulo Carvalho 
<[email protected]>:
Sugiro dividir o valor da distância pelo número de caracteres de um dos
operandos.  Em ambos os exemplos a distância é 1.  Mas se relativizar, fica
25% para o primeiro exemplo e 3% para o segundo.


Em 23 de março de 2014 16:01, Hermann Peifer 
<[email protected]> escreveu:


Nossa! Isso foi rápido. Nem tive tempo para olhar os detalhes dos
resultados, mas vou fazer logo.

A distäncia Levenshtein é absoluta, não é? Digamos: estes dois exemplos
tem ambos uma distância de 1:

'RUA A' <-> 'RUA B'
'RUA MARECHAL ARTHUR COSTA E SILVA' <-> 'RUA MARECHAL ARTUR COSTA E SILVA'

No primeiro exemplo, um dos dois nomes seria completamente errado e no
segundo exemplo falta só uma letra no meio de um nome comprido. Vou pensar
no assunto.

Abçs, Hermann


_______________________________________________
Talk-br mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/talk-br

Responder a