Hace unos días me encontraba intentando modificar el código fuente del programa libre aMSN pero no podía dar en el clavo, así que entré en el canal de chat IRC #amsn de la red Freenode.net
Yo necesitaba o, digamos, quería eliminar algunos avisos de aMSN con el fin de que fuera menos molesto su uso y, como tal función no estaba accesible desde las Preferencias, debía tocar su código fuente… más tarde conocería a jake, un robot de charla.
Un usuario del canal #amsn me comentó gentilmente cómo borrar ese molesto cartel cambiando algo en el archivo protocol.tcl. Luego necesité hacer otra modificación, para lo cual debería modificar el archivo gui.tcl, pero ya fue muy complejo. Pasé horas tratando de entender el código y no hubo caso, me di por vencido; busqué ayuda nuevamente, para encontrarme con las respuestas de un tal Alexander Nestorov, quien a pesar de manejarse en inglés luego me comentó que vivía en España y que había nacido en Bulgaria, con lo cual terminamos charlando en un fluido castellano.
La cuestión es que no sólo me ayudó a modificar el código tal como yo quería, sino que me recomendó un bot de charla muy divertido para aMSN, mejor que el conocido amsneliza, no derivado de ningún otro.
Jake (el bot en cuestión) puede buscar definiciones de palabras en la web, aprender desde la ventana de chat (con lo cual no hay que modificar un archivo de diccionario mediante editor de texto), da la fecha y varias cosas más, pero lo que más me gusta es que mediante un algoritmo especial reconoce una frase ingresada aunque esté mal escrita (o sea similar en un 66%).
Por ejemplo, si ante la frase “¿Qué te pasa?” debería responder, “Nada malo”, y nosotros escribimos “Que te pasa?”, responderá también “Nada malo”. Lo mismo si escribimos “¿Q t pasa”.
Miremos directamente cómo operó en mi sistema:
(18:58:17) marcos: !aprende “¿Qué te pasa?” “Nada malo”
(18:58:22) marcos: que te pasa?
(18:58:23) robot: : Nada malo
(18:58:24) marcos: q te pasa?
(18:58:25) robot: : Nada malo
(18:58:27) marcos: q t pasa?
(18:58:36) marcos: ¿q t pasa?
(18:58:36) robot: : Nada malo
Es decir que no reconoció “q t pasa?” porque no alcanzó el 66% de coincidencia.
Miremos otro ejemplo:
(19:00:40) Marcos: !aprende “Buenas, como va?” “Todo bien”
(19:00:45) marcos: buenas, como va?
(19:00:46) robot: : Todo bien
(19:00:50) marcos: buens com va?
(19:00:51) robot: Todo bien
(19:00:57) marcos: bue com va?
(19:01:01) marcos: bue como va?
(19:01:02) robot: Todo bien
(19:01:09) marcos: buenas como te va?
(19:01:10) Marcos: : Todo bien
Notemos que allí respondió a pesar de que añadí la palabra “te”.
Otro ejemplo:
(18:48:17) marcos: hola loco como va
(18:48:19) robot: : bien che
(18:48:22) marcos: hola loco como va la cosa
(18:48:23) robot: : bien che
(18:48:28) marcos: hola loco la cosa vomo ca
(18:48:35) marcos: hola loco como estas
(18:48:36) robot: : bien che
(18:48:52) marcos: hola che, que va la cosa
(18:49:00) marcos: hola loco, de que va la cosa
(18:49:07) marcos: hola loco, como va la cosa
(18:49:09) robot: : bien che
(18:49:12) marcos: hola loco, como iria la cosa
(18:49:14) robot: : bien che
(18:49:22) marcos: hola loco, como irian tus cosas
(18:49:28) marcos: hola loco, como irian las cosas
(18:49:35) marcos: hola loco, como van las cosas
(18:49:36) robot: bien che
Es útil modificar ~/.amsn/plugins/jake/lang/langes si deseamos que diga otras cosas predeterminadamente. Los archivos de diccionario (de dónde obtiene las palabras) se encuentran en
~/.amsn/usuario_hotmail_com/diccionario.dic
Podríamos editarlo a mano pero quizá no tenga mucho sentido. El desarrollador de jake tiene pensadas varias cosas a futuro, entre ellas que cuando jake no comprenda una frase, tome cualquier frase desde un archivo aparte.
Por ahora si no queremos que jake se venda como robot ante nuestros amigos (txtneedhelp Creo que no te he entendido. Si quieres saber como funciono, escribe !ayuda), deberemos comentar la siguiente línea (agregar un #)
::amsn::MessageSend $window 0 “$botname: [trans txtneedhelp]
editando el archivo:
~/.amsn/plugins/jake/jake.tcl
En fin, jake es un plugin para aMSN con mucho futuro y no se trata de una copia de Eliza, actualmente va por la versión 0.6.2.
Descarga: http://www.amsn-project.net/plugins.php#54
Chatear con los usuarios de AMSN: chat irc web via Mibbit
Notas relacionadas:
aMSN: el mensajero libre!
aMSN 0.97 es un buen comienzo para quienes desean dejar...
Blog dedicado al mundo del software libre, por los responsables de MasterMagazine, con Marcos Guglielmetti, Director del sistema operativo Musix, analizando las tendencias y mejores usos.
6 comentarios en Bot de charla para aMSN: jake
julián
11/08/09 a las 2:26
hola, teoricamente tengo a jake activado, pero en ningún estado (busy, away, etc) el tipo habla
. A diferencia de eliza que es muy locuaz aunque repetitiva. Alguna sugerencia?
Enzo
12/08/09 a las 22:59
Ya probé el bot, esta muy bueno estuve editando las frases y también edite para que cuando respondiera no dijera al principio “jake:…”
Aunque me quede pegado en una cosa: no se como agregarle un retraso a la respuesta para que sea un poco mas real
Si alguien sabe como digalo
Saludos
yuanyu
20/08/09 a las 15:36
me pasa lo mismo que a julian, lo instale, le hice aprender varia frases pero no contesta, todo lo demas ok. tampoco me borra las frases del diccionario, alguien sabe por que?
saludos
nana
13/09/09 a las 22:54
Ami mepasa igual, le digo que aprenda algo, y no me responde, insito con el aprende y con !on y nada de nada.
Otra cosaque tampocme gustamucho, es que le haga caso a todo el mundo, se dberia poder elegir quien quieres que haga caso xD
Angelverde
15/03/10 a las 23:50
Ya no funciona en la versión 0.98.3 dice “Error Interno” y jamás se activa.
Angelverde
16/03/10 a las 1:17
Logre que funcione pero me pasa lo de todos, no me responde en las conversaciones y mi diccionary.dic esta en 0
¿Alguien me puede pasar el suyo? alvaradoangel57@gmail.com