Tabla de contenido:

Cómo hacer un A.I. Parte 2: 9 pasos
Cómo hacer un A.I. Parte 2: 9 pasos

Video: Cómo hacer un A.I. Parte 2: 9 pasos

Video: Cómo hacer un A.I. Parte 2: 9 pasos
Video: ADIOS TELEFONO O SWITCH 🤣 suscribete al canal #shorts 2024, Noviembre
Anonim
Cómo hacer un A. I. Parte 2
Cómo hacer un A. I. Parte 2

Esta es la parte 2 sobre los pasos que tomé para construir una IA en una computadora con Windows, usando una base de datos gratuita, una herramienta de desarrollo de programación y el motor TTS integrado gratuito que viene con Windows.

La palabra "Windows" pertenece a Microsoft.

La palabra "Dragón" pertenece a Nuance.

Paso 1: Cómo hacer una IA Parte 2

Cómo hacer una IA Parte 2
Cómo hacer una IA Parte 2

Elija un lenguaje de programación y obtenga algunas herramientas

Hay muchos lenguajes de programación. Algunos están especializados en A. I. Mi favorito es Visual Basic, así que eso es lo que usé. También trabajo con bases de datos de servidor SQL, así que también lo usé.

Puede descargar versiones gratuitas de estos desde el sitio web de Microsoft. Simplemente busque "EXPRESS" en el sitio web de Microsoft. [Visual Studio Express y SQL Server Express]

Otros lenguajes que puede querer con nosotros son: Python, C #, C ++, Java, Prolog, Lisp, IPL

y muchos otros. AIML es un "lenguaje de marcado" que es muy interesante.

Quería un programa de "reconocimiento de voz" mejor que el que viene con Windows, así que compré el software DRAGON. Estoy usando el programa estándar "Text-to-speech" que viene con Windows.

Paso 2: diseñe su sistema:

Diseñe su sistema
Diseñe su sistema

Divida sus grandes proyectos en un grupo de proyectos más pequeños. Dividí el código de mi programa en módulos.

Dividí mi código en diferentes módulos para que una función en particular sea más fácil de encontrar.

Tengo módulos llamados "Entrada de proceso", "AI de proceso", "Salida de proceso", "Interfaz de usuario" y algunos otros. Algunas de mis funciones deben ser accesibles para todos los demás módulos de código, así que pongo esas funciones en un módulo "común" donde todo se comparte

Paso 3: Funciones integradas en el lenguaje de programación:

Funciones integradas en el lenguaje de programación
Funciones integradas en el lenguaje de programación

Los diferentes lenguajes pueden tener diferentes nombres para estos, pero todos los lenguajes de alto nivel tienen funciones similares.

LCase o ToLower: convierte una cadena a minúsculas. Convierto todo a minúsculas antes de realizar una búsqueda en la base de datos, aunque la mayoría de las cosas no distinguen entre mayúsculas y minúsculas, por si acaso.

Reemplazar: Reemplaza una cadena dentro de una cadena en otra cadena. Puede reemplazar una cadena con una cadena vacía "" para deshacerse de ella. Elimino los puntos, los signos de interrogación, las comas y otros signos de puntuación.

Dividir: divide una cuerda en piezas individuales y las coloca en una matriz. Esta función dividirá una cadena en cualquier carácter o "Delimitador". Divido una oración en un "carácter de espacio" "" para hacer una matriz de palabras. Esto se llama "Tokenización" por los gurús de la IA.

Utilizo las palabras individuales para crear consultas que se utilizan para buscar en la base de datos. (Más sobre esto en mi próximo artículo)

Paso 4: combine las funciones integradas para crear sus propias funciones

Este es un ejemplo de "visual básico". Use su lenguaje de programación para construir algo como esto.

Por supuesto, necesitará escribir mucho código y construir muchas funciones, utilizando el lenguaje de programación de su elección.

Paso 5: ¿Qué hacen los módulos? "Procesador de entrada"

¿Qué hacen los módulos? "Procesador de entrada"
¿Qué hacen los módulos? "Procesador de entrada"

Puede haber cientos de formas diferentes de hacerle la misma pregunta a la IA. Por ejemplo; "¿Qué hora es?", "¿Tienes tiempo?" "¿Sabes qué hora es?", "¿Puedes decirme la hora actual del día?" Dado que el usuario solo está preguntando por la hora, convierto cualquiera de estas entradas en una única salida llamada "tiempo de consulta" utilizando una tabla de "búsqueda" de la base de datos.

Puede escribir código para recorrer una tabla hasta que encuentre una coincidencia, o si está utilizando una base de datos SQL, puede escribir una consulta SQL, como …

"Seleccione Salida de TableName donde Entrada =" "lo que sea""

… Y luego envío la salida, "Hora de consulta", al siguiente módulo de código; "Procesar IA"

Además de las preguntas, hay muchas formas de decir "Hola"

Hola, hola que pasa, hola hola como estas ?, saludos, bienvenidos, saludos, hola….

Todos estos se reducen a "Saludo"

Cuando el procesador de IA ve "Saludo", envía "Saludo" al procesador de salida, que seleccionará un saludo aleatorio de una tabla de base de datos y lo pronunciará en voz alta.

Paso 6: "Procesador AI"

"Procesador de IA"
"Procesador de IA"

Process AI es el módulo de código más grande. Es tan grande que también lo dividí en secciones.

La entrada se verifica para ver si el usuario pronunció un comando o hizo una pregunta. Además, la IA puede estar en cualquiera de varios "Modos", lo que significa que el código de "Proceso de IA" espera que el usuario CONTESTE una pregunta, en lugar de HACER una pregunta.

Si el usuario no pronunció un comando y la IA no está en un "Modo" especial, entonces construye y ejecuta un montón de consultas, a partir de combinaciones de palabras en la "matriz de palabras". Todos los resultados de la consulta se almacenan en una tabla, y cada resultado de la consulta recibe una "puntuación" en cuanto a qué tan cerca el resultado coincide con lo que había dicho el usuario. La tabla se ordena por puntuación y el resultado con la puntuación más alta se envía a la salida, si supera un determinado umbral. Si todos los puntajes están por debajo del umbral, la IA puede responder con "No sé" o "Eso no se computa"

Paso 7: la tabla "Resultados y puntuaciones"

los
los

La salida de la IA de mi entrada "¿Qué hizo el pollo?"

Paso 8: "Procesador de salida"

"Procesador de salida"
"Procesador de salida"

Esto hace varias cosas que parecen "no relacionadas", pero todas tienen que ver con llevar el texto del Procesador de IA al usuario.

Aquí hay una lista.

1. El texto de la base de datos puede estar en minúsculas y no tener puntuación. Las subrutinas escribirán en mayúscula la primera letra y colocarán un punto o un signo de interrogación al final.

2. Otra subrutina volverá a convertir los apóstrofos en contracciones o las convertirá de nuevo en palabras completas (es decir, "cant" se reemplaza por "can not")

3. El motor de conversión de texto a voz no pronuncia algunas palabras de la manera que me gusta, por lo que el "Procesador de salida" reemplaza esas palabras con una ortografía fonética. Tengo tablas de "búsqueda" en la base de datos para guardarlas, similares a la en el "procesador de entrada"

4. Si la IA no encuentra una respuesta adecuada en la base de datos, puede decir "No sé", pero no quiero que lo diga una y otra vez. Las personas reales varían sus respuestas. Entonces, hay una tabla con frases de "Salida común" y una función que elige una al azar (y nunca elegirá la misma dos veces seguidas).

5. El motor gratuito de "texto a voz" (TTS) no le brinda al programador muchas opciones para la forma en que se pronuncian las oraciones, pero usted tiene un poco de control sobre el tono y la velocidad de los fonemas. El término para esto es "Prosodia". Agregué algunos códigos de "prosodia" en el texto de mi base de datos, y cuando el "Procesador de salida" los ve, ajusta el tono y la velocidad en el motor TTS a medida que se pronuncia cada palabra.

6. A veces, el TTS es difícil de entender, así que además de decir palabras en voz alta, también las muestro en letras grandes en la pantalla de mi computadora. Esta parte de la "Interfaz de usuario" es una cuadrícula que muestra las últimas 6 líneas de una conversación (entrada del usuario y salida AI) y se desplaza hacia arriba a medida que se agregan nuevas líneas.

Paso 9: sigue trabajando en ello

Siga trabajando en ello
Siga trabajando en ello

Mi opinión fue "No se lo digas a nadie"

Todavía estoy trabajando en mi sistema de inteligencia artificial y probablemente nunca se “terminará” realmente. A medida que agregue más funciones, escribiré más artículos.

Quizás algunas de mis ideas te inspiren a construir una IA que sea mejor que la mía.

Recomendado: