[Cascavel-pm] Como lidar com caracteres nacionais

Luis Campos de Carvalho monsieur_champs em yahoo.com.br
Domingo Abril 17 18:53:15 PDT 2005


--- Nelson Ferraz wrote:
> Pessoal,
> 
> Eu estou desenvolvendo um chatbot em espanhol, mas
> estou encontrando problemas com acentuação.
> 
> Eu defini o "vocabulário" do bot em um arquivo XML,
> como esse:
> 
> <chat>
>   <user msg="(oi|hola|saludos)">
>     <bot msg="hola $nome! ¿como estás?"/>
>     <bot msg="hola $nome! ¿que tal?"/>
>     <bot msg="hola $nome! ¿como vamos?"/>
>   </user>
> 
>   <user msg="(y tú|que tal|como estás)">
>     <bot msg="estoy bien, gracias"/>
>     <bot msg="muy bien, gracias"/>
>   </user>
> </chat>
> 
> A seguinte condição compara o que o usuário digitou
> ($user_msg) com um padrão ($bot_msg).
> 
>     if ($user_msg =~ m!$bot_msg!i) {
>       @resp = @{$_->{bot}};
>       my $resposta = eval("\"$resp[rand
> @resp]->{msg}\"");
>       return $resposta;
>     }
> 
> O problema é que a expressão regular falha ao
> pesquisar palavras acentuadas como "tú" e "estás".
> 
> Alguma sugestão? (Eu já tentei usar os módulos
> locale e POSIX, sem sucesso.)

  Duas boas sugestoes: use o Text::Soundex ou o
Text::Metaphone, uma implementacao mais moderninha do
mesmo algoritmo.

  Desta forma, voce nao precisa se preocupar com as
palavras... apenas com seu som. E ainda vai superar
erros sintaticos, de quebra...

  Putamplexos!

--
Luis Campos de Carvalho
Computer Science Student
Unix SysAdmin & OCP/DBA Oracle
http://br.geocities.com/monsieur_champs/

__________________________________________________
Converse com seus amigos em tempo real com o Yahoo! Messenger 
http://br.download.yahoo.com/messenger/ 


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