Fonetica 1
Caros colegas
Fiz um sistema de cadastro de pacientes para um setor de hospital e precisava que a ficha dos pacientes fossem recuperadas pelo nome independentemente das muitas grafias com que podem ser escritos. Exemplo: Tereza, Theresa, etc.
Durante muito tempo procurei um rotina que convertesse uma palavra para os fonemas que a compõe, e sempre fui remetido ao Soundex que funciona para o idioma inglês, mas não para o nosso português.
Em minhas andanças pela net achei a tese de mestrado “Desenvolvimento de Sistema para Conversão de Textos em Fonemas no Idioma Português”, de Dimas Trevizan Chbane (neste [url=http://regulus.pcs.usp.br/~geraldo/textos/disdimas.pdf]endereço[/url], o trabalho é extenso e permitiria até fazer um sistema de fala e de separação de sílabas.) e com base nele fiz uma rotina que devolve os fonemas.
Agora, gostaria que vocês analisassem a rotina e fizessem sugestões visando a melhoria.
Vejam alguns resultados
[list:47c3a064a7]
ANDREA andRea
ANDREIA andRea
ELENAelena
HELENAelena
ELIZABETE elizabete
ELIZABETH elizabete
ELISABETE elizabete
INACIOesxetian
IGNACIOinasiu
GIZELLE jizele
GIZELEjizele
GISELLE jizele
GISELEjizele
GISELI jizeli
GISELLI jizeli
KELY keli
QUELI keli
KELLY keli
KELLI keli
KELI keli
CRISTINA kRistina
CRISTINAkristina
LOPEZlopes
LOPESlopes
MARTAmaRta
MARTHA maRta
OSVALDOosvaudu
OSWALDOosvaudu
RUTErute
RUTHrute
SIDNEYsidinei
SYDNEYsidinei
SIDNEIsidinei
SYDNEIsidinei
CYDNEIsidinei
CYDNEYsidinei
CIDNEIsidinei
SYLVIA siuvia
SILVIA siuvia
TERESA teReza
THEREZAteReza
THERESAteReza
TEREZA teReza
WALKIRIA vaukiRia
WALQUIRIA vaukiRia
VALQUIRIAvaukiRia
CHEILAxeila
SHEILAxeila
[/list:u:47c3a064a7]
function SomDex (strNome : string) : string; var V, V1 : set of Char; C, CN : set of ´a´..´z´; intTam, n : integer; begin V := [´a´, ´e´, ´i´, ´o´, ´u´, ´y´, ´á´,´é´, ´ê´, ´ó´, ´ô´, ´í´, ´ú´, ´â´, ´à´, ´ä´, ´è´, ´ë´, ´ì´, ´ï´, ´î´, ´ò´, ´ö´, ´ü´, ´ù´, ´û´]; V1 := [´e´, ´i´,