¿Cuál sería la forma más rápida y fácil de hacer una API de reconocimiento de oraciones utilizando una red neuronal?

Esta no es una tarea fácil porque su red primero necesitaría aprender todas las formas correctas de sintaxis en inglés …

Una forma de abordar esto es reducir primero el espacio de características de “cadenas de palabras” a “cadenas de categorías sintácticas” (es decir, sustantivo, verbo, preposición, etc.). Este enfoque requeriría una rutina de preprocesamiento que pueda reemplazar efectivamente cada palabra en una oración con sus correspondientes partes del discurso … lo que en realidad es una tarea bastante trivial.

Alternativamente, supongo que podría entrenar a la red en millones de oraciones de ejemplo, pero eso requeriría una cantidad increíble de nodos y tiempo de entrenamiento antes de que la red se estabilice.

Luego, para aprender la sintaxis, necesita una red que pueda aprender contingencias temporales. Específicamente, necesita aprender ordenamientos válidos de categorías sintácticas en el idioma inglés. La forma de lograr esto usando una red neuronal es implementar conexiones recurrentes .

Tome la red recurrente simple (también conocida como red Elman) como ejemplo:


[Figura de redes recurrentes I]

En cada paso de tiempo, se realiza una copia de las unidades de capa ocultas en una capa de copia. El procesamiento se realiza de la siguiente manera:

  1. Copie las entradas para el tiempo t en las unidades de entrada
  2. Calcule las activaciones de unidades ocultas utilizando la entrada neta de las unidades de entrada y de la capa de copia
  3. Calcule las activaciones de la unidad de salida como de costumbre
  4. Copie nuevas activaciones de unidades ocultas para copiar la capa

De hecho, la red Elman recuerda una versión de red neuronal de un modelo oculto de Markov de primer orden. Es relativamente fácil de implementar.

Para más información:

  • Un modelo simple que captura la estructura en secuencias
  • Redes recurrentes I
  • Aprendizaje recurrente en tiempo real