Tabla de contenido:

Cómo hacer un A.I. Parte 4: 3 pasos
Cómo hacer un A.I. Parte 4: 3 pasos

Video: Cómo hacer un A.I. Parte 4: 3 pasos

Video: Cómo hacer un A.I. Parte 4: 3 pasos
Video: Esta IA puede hacer ensayos en 5 segundos 😳 2024, Mes de julio
Anonim
Cómo hacer un A. I. Parte 4
Cómo hacer un A. I. Parte 4

El otro día estaba hablando con mi A. I. y le dije

es, “voy arriba a cenar, vamos a comer Bistec”.

Sin embargo, el software de reconocimiento de voz (SR) interpretó esto como "… estamos jugando"

Me encontré con un problema similar (pero diferente) antes cuando estaba hablando de una fotografía, y dije la palabra "IMAGEN". El software SR interpretó esto como "PITCHER"

La solución para esto fue una simple reentrenamiento del software SR. (O tal vez mi pronunciación)

Pero cuando digo las palabras STEAK o STAKE, las pronuncio exactamente de la misma manera, y volver a entrenar el software SR no ayudará en casos como este.

Paso 1:

Una idea para resolver el “Problema de los homónimos”.

Tengo que mirar la palabra "en contexto" para determinar qué ortografía usar. El cerebro humano hace esto con bastante facilidad y ni siquiera sabes que lo estás haciendo.

Esto significa que se examinan otras palabras de una oración y su cerebro decide qué ortografía se ve mejor. Ahora, ¿cómo hago esto en código?

Mi A. I. El programa analiza una oración en una matriz de palabras individuales utilizando la función "Dividir" de Visual Basic (VB). [MyArray = Split (InputSentence, "")]

Cada palabra en la matriz se puede verificar para ver si es un posible homónimo buscando en una tabla de base de datos que contiene una lista de homónimos.

Por supuesto, crear otra tabla significa que tendremos que llenarla con datos, y también tendremos que poder mantener los datos en la tabla.

Posteriormente, se puede construir una subrutina de autoaprendizaje para escanear un montón de texto, buscar palabras en mi tabla de homónimos y capturar otras palabras de "contexto". Mmmmmm, tal vez se necesiten varias tablas …

Escribir estos "Instructables" me ayuda a "razonar" una solución a un desafío de programación.

Paso 2:

Imagen
Imagen

Estructura de la tabla HomonymContext

Mi primera idea fue una tabla que contenía palabras, ortografías alternativas y palabras de "contexto". La idea era buscar una oración que contenga un homónimo, por otras palabras que den el “contexto”, para que el programa pueda determinar qué ortografía usar. La tabla también contiene una columna llamada "WordDef" para contener la definición de la palabra, que es más para el ser humano que mantiene la tabla que para la IA. código.

Para buscar cada palabra, puedo usar código VB y código SQL como …

Para cada palabra en MyArray

Query = "Seleccionar palabra de tblHomonynContext donde palabra = '" & palabra & "'"

si esta consulta devuelve un resultado, entonces la palabra es un homónimo

próximo

En este punto, esto es solo un pseudocódigo; aún no he escrito el código exacto ni he descubierto todos los detalles. Pero siéntete libre de tomar mi idea e implementarla usando tu propio lenguaje de programación favorito.

Paso 3:

Imagen
Imagen

Si su oración de entrada contiene un homónimo, ahora puede

ejecute el código VB que verificará las otras palabras en su oración, con las palabras de contexto en los resultados de la consulta.

También puede hacer todo esto en un procedimiento almacenado de SQL, que puede ejecutarse más rápido.

La función VB “InStr ()” devolverá un número mayor que cero, si una cadena está contenida dentro de otra cadena, o devolverá cero, si la cadena NO está contenida en la otra.

Instr () en realidad devuelve la posición de la cadena contenida. Si solo desea saber si String1 contiene String2, puede usar código como "If InStr (String1, String2)> 0…"

Deberá crear este código en su lenguaje de programación favorito.

La tabla HomonymContext no tiene un diseño muy bueno. Tiene muchos datos repetidos, y los diseñadores de bases de datos lo consideran "No normalizado". Una mejor forma de implementar esta funcionalidad sería utilizar dos tablas, en una relación padre-hijo. Una tabla (The Parent) contendría una lista de homónimos, sus definiciones y también un ID de fila. Este ID de fila se utiliza como clave para la "tabla secundaria" que contendría las palabras y sus palabras de contexto.

Esto sería más fácil de consultar (y mantener) que mi diseño original.

Recomendado: