¿Cuál es el algoritmo de aprendizaje automático requerido para el asistente virtual?

No es un algoritmo, es la combinación de muchos, porque para un asistente virtual tendrás que resolver un par de problemas. Tengo una lista para ti, que no está completa. Cada parte del problema abre varios problemas subyacentes y más algoritmos que necesita implementar. Pero como brújula general, esto funcionaría:

  1. tienes que tener un analizador de fichas para obtener las palabras.
  2. necesita un analizador semántico, lo cual es un gran problema, por lo general toma una red semántica para eso. Algo así como el problema de “el gato está en el tapete”, que le devolverá las relaciones entre las palabras. Solo hay algo que no es tan fácil como parece, pero es manejable.
  3. con una representación semántica de la pregunta, necesita una base de datos que represente el conocimiento subyacente, un sistema experto. Ha habido redes lógicas que hacen eso (como las reglas basadas en reglas de Prolog) o bases de datos basadas en objetos que pueden hacer eso (semánticamente y basadas en atributos, por ejemplo). Este último es mejor para las estructuras de aprendizaje, el primero suele ser mucho más rápido. También hay representaciones de conocimiento basadas en funciones, como en el Computational Knowledge Engine.
  4. Las estructuras de aprendizaje se pueden implementar con redes neuronales o redes semánticas si se expande el conocimiento de su motor. De lo contrario tiene que ser programado.
  5. después de la coincidencia de patrones y el algoritmo de búsqueda de soluciones, significa NN, por ejemplo, debe encontrar la respuesta válida en esa red. Allí tiene diferentes algoritmos que pueden adaptarse a sus necesidades. Desde la simple escalada cuesta arriba hasta los algoritmos genéticos cuando el campo de búsqueda de una solución es muy amplio. En términos generales, esa es la teoría gráfica y todos los algoritmos que pueden resolver el camino en un gráfico pueden ser útiles y adaptarse a sus necesidades. Puede ser bastante complicado.
  6. algoritmo de interfaz, por lo que debe elegir una forma para su interfaz con los humanos. ¿Es un canal IRC o un sitio web? ¿Es un websocket o un socket general? ¿Se conecta a través de una API? Hay ventajas y desventajas y tienes que elegir.
  7. Generador semántico, lo que significa que necesita un algoritmo que genere a partir de la solución encontrada una forma adecuada de representar la respuesta de una manera legible para los humanos. Significa lenguaje natural gramatical y sintácticamente correcto o como salida gráfica o lo que necesite.

Como ejemplo práctico, puedo decir cómo lo hicimos cuando implementamos un traductor universal en NATS (departamento de lenguaje natural) en la Universidad de Hamburgo. El analizador de tokens no era ese problema, el analizador semántico era el proyecto Peirce (si no recuerdo mal), que almacenaba las oraciones y las preguntas en una base de datos de red semántica implementada por una estructura de objeto.

Esta red de objetos también fue la estructura de aprendizaje de ese proyecto e implementó la base de datos.

Como interfaz, utilizamos una API y una segunda interfaz era un socket que se conectaba con la API a varios idiomas, uno de ellos SNI Prolog. Entonces, una parte de nuestra máquina era un programa Prolog basado en reglas que interactuaba con la red semántica. El algoritmo de resolución era un solucionador basado en reglas recursivas y el resultado era texto sin formato en ese socket.

Entonces, cuando se enteró del hecho: “el gato está en el tapete” lo almacenó dentro de su representación y luego cuando se le preguntó “dónde está el gato” respondió sin problema “en el tapete”. Si combina esta estructura con Prolog basado en reglas, podría poner una oración compleja y luego obtener la traducción en otra.

Porque Prolog realmente estaba haciendo el trabajo del generador semántico para ese proyecto por un solucionador de retroceso.

Claro y simple, transfirió una oración a una representación del conocimiento abstracto en la red semántica y luego volvió a traducir ese conocimiento a un idioma diferente.

Eso es todo. Trabajé en eso en algún lugar alrededor de 1995, hice todo lo que no necesitaba Prolog. Peirce era una mierda llena de errores en ese tiempo y necesitaba más de medio año para depurar esa basura para que funcione. Hoy es mucho más fácil. Tiene listo para usar redes semánticas sin errores.

Muy divertido leer todo ese conocimiento y algoritmos. Necesitaba un mes para eso en los días y dudo que sea posible hoy. Las cosas se han vuelto más complicadas y más alejadas de lo comprensible. Demasiada charla académica sobre los hechos simples para que suenen “más académicos”. Lo cual es algo que odio.

Solo espero que alguien algún día encuentre un algoritmo para volver a traducir la basura a algo comprensible. Ya es bastante malo que tengas que decir “Riemann’sche Fläche” (área de Riemann) en lugar de simple “integral” en la Universidad. Todo el mundo entiende “integral”, pero hay que hacer un poco de recherche para descubrir qué significa ese Área de Riemann.

Mierda-habla. Lo odio. Soy un chico practico. Me encanta si alguien lo dice con claridad y si suena fácil, eso realmente demuestra que es inteligente y no si está hablando en latín y hace que todo lo simple suene complicado.

Solo para eso necesitamos un buen traductor. Obtenga el conocimiento en las calles y lejos de las torres de marfil. Los asistentes virtuales son algo bueno. Necesitamos a alguien hablando claro. Y si ya no pueden hacer eso, necesitamos una computadora que lo haga.

Lo siento, soy un asistente virtual humano, no una IA. Creo que esta pregunta es adecuada para los desarrolladores de software, ya que desea saber acerca de los “algoritmos de aprendizaje automático para el asistente virtual” AI “(quizás).

More Interesting

¿Cuál es la diferencia entre los métodos de búsqueda y los algoritmos utilizados por los motores de búsqueda de Google, Yahoo y Bing? ¿Cómo lo explicarías de una manera simple?

¿Qué tan complejo debe ser un algoritmo criptográfico para estar sujeto a las regulaciones de exportación de criptografía?

¿Cuáles son los algoritmos más eficientes que resuelven de manera óptima un cubo de Rubik?

¿Cómo se realiza la reducción del tiempo polinómico de UHAMPATH a UHAMCYCLE?

¿Qué número de puntos cruzados será el mejor para mi algoritmo genético?

¿Cómo funciona el algoritmo de 'forma de relleno' en los programas de dibujo?

¿Cuál será el algoritmo de rotación correcto en C?

¿Cuál es uno de tus problemas favoritos que has encontrado en mecánica / dinámica clásica?

¿Cómo implementaría el aumento de precios utilizando estructuras de datos?

¿Qué significa front = rear = null y front = rear = -1 en la cola de las estructuras de datos en C ++?

¿Cuál es el algoritmo perfecto para extraer la forma, el color, la textura y los bordes de las partes cilíndricas en MATLAB en preparación para el aprendizaje supervisado?

¿Qué algoritmos existen para la reconstrucción de un conjunto de vectores de un diccionario de cardinalidad más pequeña?

¿Cuál es la forma más compleja de reducir 1 + 1?

¿Cuál es el tiempo de ejecución del método sort () en la biblioteca de Colecciones?

Cómo entender la precisión Top-N en el aprendizaje automático de una manera simple