[SP-pm] Conceito para fazer busca[ OFF ]

Nelson Ferraz nferraz at gmail.com
Mon Aug 17 08:34:17 PDT 2009


> rodei o módulo com tabela comparativa do documento pdf entre Soundex e
> BuscaBR e as divergênncias que obtive foram:

Aqui vai um exemplo prático das confusões que podem resultar do
Soundex em português:

#!/usr/bin/perl

use strict;
use warnings;

use Text::Soundex;
use Data::Dumper;

my @palavras = map { (split)[0] } <DATA>;

my %soundex;
foreach (@palavras) {
    push @{$soundex{soundex($_)}}, $_;
}

print Dumper \%soundex;

__DATA__
faca
foca
fato
fita
gato
gota
lata
luta
sapo
sopa


Resultado:

$VAR1 = {
          'G300' => [
                      'gato',
                      'gota'
                    ],
          'F300' => [
                      'fato',
                      'fita'
                    ],
          'F200' => [
                      'faca',
                      'foca'
                    ],
          'L300' => [
                      'lata',
                      'luta'
                    ],
          'S100' => [
                      'sapo',
                      'sopa'
                    ]
        };


Ou seja: o soundex de "faca" e "foca" são iguais; assim como "fato" e
"fita", "gato" e "gota", "lata" e "luta"; e assim por diante. Imagine
se a pessoa procurasse por "pata"...

Em português, um "e" pode ser facilmente confundido com "i"; um "o"
com "u"; mas raramente alguém confundiria "a" com "u".

O algoritmo deveria detectar as nuances da língua; em português as
vogais não podem ser simplesmente ignoradas.

Infelizmente o BuscaBR parece cometer o mesmo erro.


More information about the SaoPaulo-pm mailing list