elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Proyecto I.A (chatbot) - Analisis y Soluciones
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Proyecto I.A (chatbot) - Analisis y Soluciones  (Leído 7,308 veces)
ella.

Desconectado Desconectado

Mensajes: 5



Ver Perfil
Proyecto I.A (chatbot) - Analisis y Soluciones
« en: 7 Marzo 2010, 16:17 pm »

Actualizaciones

recorri todos los post +1 para dejar este espacio, donde como el titulo menciona, publicare las correcciones que se hagan al post, y tambien los nuevos que se vayan añidiendo.


///////////////////////////////////////////////////////////////////////

Nuevo tema incluido: domingo 7 de marzo del 2010.
           *** Utilizando las 5 cuestiones basicas y la CACHE

///////////////////////////////////////////////////////////////////////







porfavor no comentes aqui: siguie el siguiente link donde es solo para publicar comentarios y opiniones al respecto:



Continua...

EI: juntando mensajes.

Introduccion: documentacion basica

hola que tal, recien me registro, aunque de vez en cuando me doy una vuelta a leer algunos post interesantes.

bueno, estoy iniciando un proyecto para crear una I.A (chatbot), ya se que cientos o si no es que mas han venido con este tema, pero realmente creo que este caso podria tracender lo suficiente para ser conciderado un proyecto decente.

Desde hace algun tiempo me encuentro desarrollando mapas conceptuales y algunos algoritmos al igual que "Proceso del aprendisaje(ligado a redes neuronales)".

Primero que anda, me gustaria decirles que en lo que trabajo es en una I.A real, que apesar de ser un tanto tonta, o poco eficiente, todos y cada uno de sus procesos son "NO PROGRAMADOS", esto quiere decir que solo cuenta con las reglas "Gramaticales" y "Lenguaje Basico" aunque dentro de los planes esta la auto ampliacion de la misma.

Dejo una lista de temas que seran basicos, puesto que ayudaran a comprender el resto de las ENTRADAS que voy a ir publicando.

Temas a relevantes a tratar:

- Programacion C/c++ /avanzado/
(no incluyo temas porque es demasiado obvio supongo, se debe tener conocimiento de todos los elementos con los que se trabaja en c/c++ y no digo que se necesita ser un FULL-MASTER, si no simplemente poder comprender la sintaxis y asi no se extravie facilmente.)

RECOMIENDO: descargar los video tutoriales que publico el usuario shevchenko y se encuentran en el siguiente link: VideoTutoriales C/c++


- Gramatica
             * estructura del sujeto (lectura 1)(lectura 2)
             * estructura del predicado (lectura (PDF))
             * que es un enunciado(oracion) (lectura (PDF))
             * partes de un enunciado (lectura 1) (lectura 2)
                           **Variables (palabra)
                            **Sustantivo (casa)
                            **Adj - Adjetivo (bonita)
                            **V - Verbo (canta)
                            **Adv - Adverbio (útil)
                            **Invariables (partículas)
                            **Preposición (a)
                            **Pronombre (yo)
                            **Art - Artículo (el)
                            **Conj - Conjunción (y)
                            **Int - Interjección (¡ah!)
             * enunciados simples y compuestos
             * morfologia linguistica

            (estos son los temas basicos de gramatica,
              necesarios para realizar algoritmos logicos)


- Proceso del pensamiento (Repaso general)
             * en que consiste
             * definiciones
             * caracteristicas
             * clasificacion
             * relacion entre el pensamiento y el lenguaje
             * operaciones racionales
             * trastornos del pensamiento: velocidad, forma y contenido


Me gustaria agregar un resto de temas extra que creo son indispensables pero ya se fue de largo el POST,  bueno eso son los temas que se deben leer o en los que debemos informarnos antes de comenzar con el proyecto.

Deje links que crei realmente basicos, asi que hecharle una leida, para continuar.

Continua...

EI: juntando mensajes.

Analisis de los procesos de aprendizaje: asociativo y programado

En el tema anterior puse solo los temas que deberian tratarse para ir todos parejos, ahora toca exponer un concepto que estoy analizando y desarrollando.

****RECAPITULANDO

si alguno de ustedes ya estaba metido en el tema, supongo abran checado el codigo de la infinidad de I.A's(chatbot) que se encuentran en internet y aunque algunos proyectos bastante avanzados son bastante decentes y me refiero a decentes cuando logran contestarte a una simple oracion como:

usuario: "mañana voy a ir al colegio"
I.A: te refieres a la escuela?
usuario: si
I.A: ya entiendo.

lo lamentable es que apesar de que tiene programadas esas preguntas/respuestas no logra siquiera simular una mente de un bebe de 3 años, puesto que carecen de contenido o significado alguno sus respuestas.

¿PORQUE? en esencia porque el pensamiento humano no comprende OJO no confundas lo que estoy apunto de decir:

"El ser humano NO es una maquina que tiene todas las posibles respuesta a una conversacion"
he aqui el principal error de las I.A actuales.

¿ENTONCES? la mente trabaja de una forma mas compleja que las respuestas programadas, aunque estas tambien forman parte de nuestra naturaleza pensante.

si se leyeron las lecturas que deje en la entrada anterior encontraran que contamos con 2 principales formas de aprendizaje:

        * Asociativo
        * Programado

Ejemplo de pensamiento asociativo:
azul -----> cielo  ------> nubes -----> blancas ------> flores ------> hermosa -----> mi vecina.

Ejemplo de pensamiento programado:
hola! -----> SALUDO -----> hola
hola! -----> SALUDO -----> que tal
hola! -----> SALUDO -----> buenos dias



Como se puede observar el metodo programado ayuda a dar respuesta inmediata, aunque cae en un ciclo entre el numero limitado de respuestas, lo cual lleva a un pensamiento plano.

Ahora, el pensamiento asociativo genera la creatividad, las ideas originales, debido a que todos tenemos redes asociativas muy diferentes, ejemplo: si escribo la palabra "amor" usted tendra eventos o palabras asociadas a este termino que en el caso de haber tenido buenas experiencias usted podria responder: amor ----> hermoso -----> calido -----> felicidad en cambio si usted a tenido malas experiencis podria responder: amor -----> tristeza ----- > nostalgia -----> imposible


Cerramos este tema con la siguiente conclusion: para lograr una verdadera mente virtual deben de implementarse ambos aspectos del aprendizaje: asociativo y programado, pues esto ayudara a que la I.A. pueda tomar decisiones personales creando consigo una personalidad unica, que bien puede ser generada con ayuda de "Usuario" imprimiendo aqui su personalidad, o generando una nueva por medio de metodos aleatorios.

Continua...

EI: juntando mensajes.

Teoria practica de procesamiento del lenguaje por la I.A. mediante 5 Cuestiones basicas

Ya, van 3 con este, ahora si vamos a comenzar con un poco de teoria practica que ya empezare a dar unos metodos para que la I.A. empiece a entender lo que se le dice mediante un metodo NO PROGRAMADO.


****PROCESANDO ORACION SIMPLE:

Veamos una oracion simple:

     el     dia     esta    nublado

nosotros comprendemos facilmente lo que se esta enunciando de manera rapida y pareciera que intuitiva, pero no es asi. Analicemos mas a fondo.

El cerebro automaticamente esta desfragmentando la oracion y dandole coherencia, buscando asociaciones con otras palabras y haciendo preguntas para entender lo que esta leyendo, obviamente el poder de procesamiento del cerebro es tan grande que nosotros ni siquiera percibimos esta accion y es extremadamente necesario que asi sea para lograr imitar y reconstruir en codigo para nuestra I.A.

Pero no se preocupen, la Gramatica tiene una solucion simple y rapida para resolver este detalle y con tan solo 5 cuestiones podemos comprender una oracion o enunciado simple. Veamos:


                QUIEN? ---> hace referencia al sujeto
                CUANDO? ---> hace referencia al tiempo o fecha(pasado, presente, futuro)
                DONDE? ----> hace referencia al lugar
                COMO? -----> hace referencia a los adjetivos, usaremos a los calificativos por ahora
                QUE? -----> formula la necesidad de que la cuestion sea expresada mas explicitamente

Asi es, con esas 5 cuestiones y un ligero repertorio de palabras equivalente a la memoria de un niño de 3-5 años nuestra I.A. comenzara ha analizar, OJO analizar.

pogamos otra vez el ejemplo de la oracion simple y ahora intentaremos *almacenar cada una de sus palabras en una de las 5 cuestiones:

     el     dia     esta    nublado

                el -----> hace referencia a un sujeto de genero masculino
                dia ----> acompaña a "el" convirtiendolo en el sujeto masculino al que hace referencia "el"
                esta ---> referencia al "estado" en que se encuentra en tiempo "presente"
                nublado ---> es un adjetivo, pasa como adjetivo calificativo, y es el como:

                QUIEN? ---> el dia
                CUANDO? ---> presente
                DONDE? ----> ?
                COMO? -----> nublado
                QUE? -----> ?

BIEN! ahora estos datos en nuestra mente normalmente pasan a nuestra memoria de corto plazo, para ser utilizados en la comprension de las oraciones y enunciados siguientes, analizando al final de forma unificada toda la informacion que reciba.

PERO, como podriamos sustituir esa memoria a corto plazo que tenemos los humanos?. apuesto que ya lo estas imaginando, mediante la CACHE. en el siguiente tema, veremos como procesara estos datos la CACHE de nuestra I.A. y comenzara a generar respuestas al usuario. Tambien explicare a detalle la funcion de la memoria a corto plazo de humano y la de nuestra I.A  :cool:

** NOTA IMPORTANTE: un (chatbot) actual no logra esto, no puede encontrar relacion en 2 oraciones seguidas, lo cual hace que su respuesta final no guarde coherencia.

Continua...

EI: juntando mensajes otra vez.

Tipos de Memoria (humana) && SUSTITUTOS para la I.A


Este es un tema realmente importante, de hecho, considero que uno de los de los mas interesantes y profundos de todo este circo. Vamos a ver los dos tipos de memoria con los que cuentamos y explicar el porque y el para que, el ser humano utiliza este tipo de memoria y porque no simplemente recordar todo, total, tenemos y podemos procesar esa cantidad de informacion.

Muchos sabran que el ser humano cuenta con dos tipos de memoria:

     *Corto plazo (lectura recomendada)
     *Largo plazo (lectura recomendada)

Definamos:
      * la memoria a corto plazo:
La memoria a corto plazo o «Memoria Operativa» es el sistema donde el individuo maneja la información a partir de la cual está interactuando con el ambiente. Aunque esta información es más duradera que la almacenada en las memorias sensoriales, está limitada a, aproximadamente, 7±2 elementos durante 10 s (span de memoria) si no se repasa. (segun wikipedia)

      * la memoria a largo plazo:
La memoria a largo plazo (MLP) es un almacén al que se hace referencia cuando comúnmente hablamos de memoria en general. Es en donde se almacenan recuerdos vividos, conocimiento acerca del mundo, imágenes, conceptos, estrategias de actuación, etc. (segun wikipedia)



Ahora ya tenemos una referencia clara de la funcion que desempeña cada una, PERO ¿en un equipo informatico, cuales serian sus equivalentes?

Facil:

      * la memoria a corto plazo: CACHE DEL SISTEMA, o un simple .TXT con las instrucciones ejecutadas en los ultimos dias.

      * la memoria a largo plazo: DISCO DURO o Cualquier dispositivo de almacenamiento.



En la cache se guardaran las conversaciones que se hayan tenido en los ultimos 2 o 3 dias, y a esta se haran referencias para continuar charlas y recordar datos que sean necesarios en el momento.

En el disco duro se guardaran todos los repertorios de palabras y reglas gramaticales para el correcto procesamiento de las conversaciones.

Tambien existe algo a lo que llamo "Punto de Memorisacion Permanente" esto sucedera cuando algun dato de la CACHE este siendo constantemente utilizado, por ejemplo el nombre de un usuario, entonces despues de ejemplo(10) veces de ser utilizado constantemente este dato, pasara a la memoria a largo plazo de la I.A

El resto de CACHE que deje de ser utilizada despues de cierto tiempo 2-3 dias, se ira limpiando, evitando asi almacenar basura dentro de la memoria a largo plazo.


Excelente!, todo va bien no?, ahora ya sabemos los tipos de memoria y sus usos practicos. en la siguiente Entrada veremos como pasar los datos de la ENTRADA anterio(quien, cuando, donde, etc...) a la cache y trabajar con esta para inicializar una conversacion con el usuario.

Continua...

EI: juntando mensajes por ultima vez.

Utilizando las 5 cuestiones basicas y la CACHE

Despues de un rato de descanso continuamos, en este apartado trataremos de analizar un poco mas a fondo como interaccionaria la I.A. con el usuario simplemente utilizando "las 5 cuestiones basicas" y un modelo de "CACHE" sencillo, para despues continuar dando estructura a la I.A. y comenzar a programar, porfin.


bien, retomando:

Veamos una oracion simple nuevamente:

     el     dia     esta    nublado

                el -----> hace referencia a un sujeto de genero masculino
                dia ----> acompaña a "el" convirtiendolo en el sujeto masculino al que hace referencia "el"
                esta ---> referencia al "estado" en que se encuentra en tiempo "presente"
                nublado ---> es un adjetivo, pasa como adjetivo calificativo, y es el como:

tambien:

                QUIEN? ---> hace referencia al sujeto
                CUANDO? ---> hace referencia al tiempo o fecha(pasado, presente, futuro)
                DONDE? ----> hace referencia al lugar
                COMO? -----> hace referencia a los adjetivos, usaremos a los calificativos por ahora
                QUE? -----> formula la necesidad de que la cuestion sea expresada mas explicitamente



contestando a las preguntas con la oracion anterior:

                QUIEN? ---> el dia
                CUANDO? ---> presente
                DONDE? ----> ?
                COMO? -----> nublado
                QUE? -----> ?


teoricamente, si la estructura de preguntas basicas pasara a la CACHE de la I.A. de la manera anterior, entonces seria capaz de lograr empezar a racionalisar sobre el significado en conjunto de dicha oracion, veamos el alcance de respuestas de la I.A. hasta ahora:

                 usuario > *COMO esta el dia?

ahora la I.A. necesita nuevamente desfragmentar la oracion y quedaria:

                *COMO     esta    el    dia    ?

                *COMO: pasa como tal
                    esta: hace referencia al "tiempo presente"
                        el: hace referencia a sujeto masculino
                      dia: nuevamente acompaña a "el" y por tanto pasa como el sujeto en si
                         ?: hace referencia a pregunta, que (requiere respuesta).

entonces en esta ocasion la I.A. no necesita volver a incluir este patron en su CACHE si no simplemente hacer una busqueda, a donde encuentre la mayor cantidad de valores en concidencia, o una comparativa con sus datos de cache y los que le estan ingresando en modo de solicitud a travez de la pregunta:

si agregaramos 2 registrosa la CACHE de dos oraciones ingresadas anteriormente --->

         DATOS QUE SE ENCUENTRAN EN CACHE:

                 DATA 1:
                QUIEN? ---> el dia
                CUANDO? ---> presente
                DONDE? ----> ?
                COMO? -----> nublado
                QUE? -----> ?

                 DATA 2:
                QUIEN? ---> los alumnos
                CUANDO? ---> pasado(hereda el tiempo de la accion corrieron)
                DONDE? ----> la escuela
                COMO? -----> corrieron
                QUE? -----> ?

Ahora al tener la solicitud:

                *COMO     esta    el    dia    ?

                 en este caso es muy obvia la "DATA" que tomara, que sera la DATA 1, que es la que mayor cantidad de palabras tienen relacion a la cuestion,

Ahora esta data es cargada en memoria nuevamente, y respondera la I.A.
               
                   I.A. > nublado, ( o tambien podria usar la regla de inversion para   crear una respuesta mas compleja) el dia esta nublado.

y de igual manera podria contestar a la pregunta:

*QUIEN esta nublado?> el dia, o
*CUANDO esta nublado > presente (que con un arreglo de sustitucion de palabra por sinonimos logicos, podria quedar como *HOY, esta nublado)

si se le llegara a preguntar el *DONDE, pues la I.A se quedaria en silencio puesto que tal valor no ha sido asimilado, pero no porque no supiera como, si no porque no se entrego dicho valor, aunque a tal problema podria usarse una respuesta *programada, que en este caso vemos que podria ser util, aunque como digo, podria haber muchas mas soluciones antes que caer en el hoyo de una respuesta programada*

Nota relevante: cuando se tiene un metodo como el anterior no importa la complejidad de las oraciones puesto que el 70% de las palabras podran ser englobadas en dichas "5 cuestiones basicas".

Ejemplo:

                   el    dia    esta    nublado    y    lluvioso

la DATA quedaria:

                DATA x:
                QUIEN? ---> el dia
                CUANDO? ---> presente
                DONDE? ----> ?
                COMO? -----> nublado, lluvioso
                QUE? -----> ?

recordemos que e "y" es un acompañamiento logico que se agrega en relacion a la cantidad de elementos a unir.

                *COMO     esta    el    dia    ?

                I.A. > el dia esta, nublado y lluvioso.



Notas finales de entrada: bueno se me fueron las lineas explicando el funcionamiento que debera desempeñar a la hora de intentar dar sentido a una oracion la I.A. pero creo que con esto queda claro, es muy importante que lo lean debido a que sobre esto trabajaremos en el siguiente capito.

en la proxima entrada veremos un ejemplo muy basico en c/c++ para realizar la tarea de las (5 cuestiones basicas),

OJO: este ejemplo es para oraciones y apesar de que sera una funcion para la comprencion del lenguaje no sera la unica, se necesitaran muchas mas, que mas adelante ire intentado exponer.

saludos!, y nos vemos en la proxima entrada!

continua...


« Última modificación: 8 Marzo 2010, 23:40 pm por Eternal Idol » En línea

auzting

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Proyecto I.A (chatbot) - Analisis y Soluciones
« Respuesta #1 en: 24 Julio 2011, 03:39 am »

excelente tu análisis, yo estoy hace casi dos años tratando de hacer un IA pero siempre lo abandono, se complica bastante, en mis principios hice un poco lo que propones pero se me hacia muy arduo el trabajo lo cual parece que lleva a un camino bastante bueno,pero primero quiero encontrar algún plan b, lo que trato de hacer es crear algo con ninguna regla gramatical de ningún tipo, solo con memoria, se me ocurrió porque en uno de mis tantos momentos de tildarme pensando como un loco se me ocurrió que todo lo que uno dice hace es por experiencia, tal como lo hace un juego de ajedrez que se basa en tener todas las jugadas posibles.en un pequeño experimento lo hice con mi sobrina de 5 años XDXD que le pregunte que significa "hola" y me dijo -lo que dicen las personas cuando vienen- lo que me llevo a pensar que si una maquina analizara un conversación que tuviera con ella podría deducir que en la mayoría de las veces lo primero que digo es "hola" o "como estas" haciendo que en una próxima charla la maquina se me anticipe y diga eso: lo común ante un inicio de conversación, cosa que yo respondería, lo que le daría una posible respuesta a lo que dice. bueno eso es maso menos lo que empece a trabajar, es muy bueno hacer este tipo de cosas con personas que estén tan interesadas como uno, así que si necesitas ayuda.. acá estoy ja.
en mis principios aprendí c++ se me olvido un poco, pero se c#,vb,j,sql.
Saludos Suerte!!!


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programacion de chatbot con IA
Programación General
EArgentum 3 8,267 Último mensaje 11 Noviembre 2017, 12:13 pm
por Evaristocrates
El chatbot Eugene Goostman tampoco consigue el sello de aprobación de Ray Kurzwe
Noticias
engel lex 0 1,618 Último mensaje 12 Junio 2014, 01:11 am
por engel lex
Corrompen al chatbot de Microsoft y despiertan su islamofobia
Noticias
wolfbcn 1 1,906 Último mensaje 5 Julio 2017, 03:03 am
por Serapis
[PYTHON] ChatBot que aprende
Scripting
<Trocutor> 4 6,073 Último mensaje 10 Septiembre 2017, 03:37 am
por overxfl0w13
Es posible que un chatbot pueda aprender ?
Scripting
bajo0123 9 5,718 Último mensaje 21 Abril 2018, 09:06 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines