[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