[Cascavel-pm] Comparação de Strings

Flavio S. Glock fglock em pucrs.br
Segunda Novembro 10 12:01:05 CST 2003


Daniel Ruoso wrote:
> 
> Olá...
> 
> Mandei recentemente pra CPAN (Sábado) o módulo String::Compare, que
> serve para testar quanto duas strings são parecidas (preciso disso para
> fazer uma importação de dois bancos de dados diferentes que, por um
> acaso, são inconsistentes).
> 
> Por exemplo, preciso saber que:
> a string "R T Comunicacoes"
> se refere a "R. T. Comunicações"
> e não a "R T Comunidade" (as strings são só de exemplo)
> 
> O módulo funciona aplicando uma série de testes que vão dizer quanto
> duas strings se parecem. a questão é que para estes casos, o módulo
> ainda está retornando o valor errado:
> 
> my $str1 = "R T Comunicacoes";
> my $str2 = "R. T. Comunicações";
> my $str3 = "R T Comunidade";
> use String::Compare;
> print "Entre '$str1' e '$str2': ".compare($str1,$str2)."\n";
> print "Entre '$str1' e '$str3': ".compare($str1,$str3)."\n";
> 
> retorna:
> 
> Entre 'R T Comunicacoes' e 'R. T. Comunicações': 0.598412698412698
> Entre 'R T Comunicacoes' e 'R T Comunidade': 0.65297619047619
> 
> Enfim,
> 
> gostaria que, se vocês puderem, dêem uma olhada nos testes que eu já
> faço para dar idéias de outros testes para tentar fazer retornar o
> resultado certo... valeu?

Daniel:

Você já experimentou o módulo Text::PhraseDistance? Eu acho que este
módulo, junto com uma subrotina para retirar pontuação e acentos
pode ser suficiente.

- Flavio S. Glock



Mais detalhes sobre a lista de discussão Cascavel-pm