...poco a poco los impulsos eléctricos comenzaron a llenar la memoria de su cerebro de silicio. Tras un pequeño parpadeo que ilumino sus ojos, cobro vida...
Hal v.0.1
Gonzales Cenelia: "Los chatbots en general se considera que pertenecen al campo de la AI débil, en oposición a la AI fuerte, cuyo objetivo es crear programas tan inteligentes o más que los humanos. Pero esto no quiere decir que este tipo de programas no tengan un gran potencial. Los chatbots son la parte de la AI mas accesible para los aficionados con un nivel de programación medio."
El siguiente programa es sencillo, no trata en ningún momento de entender lo que el usuario le esta diciendo, en lugar de eso selecciona una respuesta al azar de su base de datos, cada vez que el usuario escribe una frase por el teclado. El programa se repite muy a menudo. La razón principal es lo limitado de su base de datos. Aunque esto es fácil de solucionar. Tampoco tiene ningún mecanismo que evite las repeticiones. Cuanto más abiertas y ambiguas sean las respuestas de la base de datos tanto mas efectivo resulta.
El código original de Gonzales Cenelia esta escrito para aplicación de consola, yo simplemente lo he modificado para darle un aspecto más agradable y le he llamado Hall en honor del celebre ordenador de Odisea Espacial 2001
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
// Adaptado del código de Gonzales Cenelia.
// Siguiendo su tutorial para la creación de un Chatbot
//http://ai-search.4t.com/bio.html#
namespace Hal9000
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// RESPUESTAS PROGRAMADAS
static string [] RespuestasProgramadas =
{
"He oido que...!",
"Eres consciente de que estas hablando con un ordenador.",
"Continua te escucho.",
"Interesante conversación.",
"Dime más cosas...",
"Me estas sobrevalorando no obstante continua.",
"No estaria yo tan seguro como dices",
};
// VARIABLES DE ENTRADA Y RESPUESTA
static string Entrada = "";
// CUERPO DEL PROGRAMA
private string obtenerRespuesta (string Entrada)
{
Entrada = preguntatextBox3.Text;
Random generador = new Random();
int selecion = generador.Next(0, 7);
string Respuesta;
Respuesta = RespuestasProgramadas[selecion];
if (Entrada.Equals ("Adios"))
{
label1.Text = "Ha sido un placer hablar contigo, nos vemos la proxima vez !";
}
return Respuesta;
}
// Salir
private void toolStripMenuItem6_Click(object sender, EventArgs e)
{
Close();
}
// Acerca de
private void toolStripMenuItem7_Click(object sender, EventArgs e)
{
String textodelacaja = "Hal 9000. Versión 1.0" +
Environment.NewLine + "Enrique Murciano, 2015";
MessageBox.Show(textodelacaja, "Hal 9000");
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
}
private void textBox4_TextChanged(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
respuestatextBox4.Text = obtenerRespuesta(Entrada);
}
}
}
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.