pyaiml

Carlos G. Rojas gaston en usuarios.retecal.es
Mie Nov 2 13:16:23 CET 2005


Hola,esta es la primera vez que escribo en la lista.

Hace un tiempo encontré un artículo en el que te indicaban como escribir
un chatterbot con python usando el módulo pyaiml. El problema es que no
funciona correctamente por culpa de los caracteres españoles. El módulo
en cuestión casi no trae documentación y en internet no he encontrado
apenas información sobre como resolver el problema.
Si alguien me pudiese orientar se lo agradecería.

El ejemplo consta de dos archivos:
-------------------------------------------------------------------------------------------------
import aiml

# arranca el intérprete AIML
k = aiml.Kernel()

# se carga el fichero de modelos
k.learn("devbot.aiml")

# abrir/construir ficheros de logs
conv_log = file("conversacion.log","a",1)
unknown_log = file("unknown.log","a",1)
conv_log.write("------------\n")

# bucle principal del programa
while True:
   
    # se cargan enunciaciones del usuario
    user_input = raw_input("> ")
    if user_input == "quit":
        break
   
    # creación de respuestas de bot
    answer = k.respond(user_input)
   
    # si la respuesta está vacía (es decir desconocida)
    # escribimos la pregunta en el log de las desconocidas
    if answer == "":
        unknown_log.write(user_input + "\n")

    # registrar las preguntas y respuestas en el log principal
    conv_log.write(user_input + " : " + answer+ "\n")
   
    # las respuestas se muestran por pantalla
    print unicode(answer, 'UTF-8')

# cerrar los ficheros de los logs
conv_log.close()
unknown_log.close()
-------------------------------------------------------------------------------------------------
y el otro:
-------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="iso-8859-1"?>
<aiml version="1.0">

<category>
    <pattern>HOLA</pattern>
    <template>
        <random>
            <li>Buenos días.</li>
            <li>¡Hola!</li>
            <li>¡Buenas!</li>
        </random>
    </template>
</category>

<category>
    <pattern>HOLA *</pattern>
    <template><srai>HOLA</srai></template>
</category>

<category>
    <pattern>BUENAS</pattern>
    <template><srai>HOLA</srai></template>
</category>

<category>
    <pattern>BUENAS *</pattern>
    <template><srai>HOLA</srai></template>
</category>

<category>
    <pattern>CUÁL ES TU NOMBRE</pattern>
    <template>Me llamo DevBot. Y tú, ¿Cómo te llamas?</template>
</category>

<category>
    <pattern>* LLAMAS</pattern>
    <template><srai>CUÁL ES TU NOMBRE</srai></template>
</category>

<category>
    <pattern>*</pattern>
    <that>* ES TU NOMBRE</that>
    <template>Buenas<set name="name"><star/></set>!</template>
</category>

<topic name="SALUDO">
    <category>
        <pattern>*</pattern>
        <template>
            <random>
                <li>¿Qué tal?</li>
                <li>¿Cómo vas de salud?</li>
                <li>Pues, ¿en qué puedo ayudarte?</li>
            </random>
        </template>
    </category>
</topic>
   
</aiml>
--------------------------------------------------------------------------------------------------




Más información sobre la lista de distribución Python-es