stringtranslate.com

Programación en lenguaje natural

La programación en lenguaje natural ( PLN ) es una forma de programación asistida por ontología en términos de oraciones en lenguaje natural , por ejemplo, inglés . [1] Un documento estructurado con contenido, secciones y subsecciones para explicaciones de oraciones forma un documento de PLN, que en realidad es un programa de computadora . La programación en lenguaje natural no debe confundirse con la interfaz de lenguaje natural o el control de voz donde primero se escribe un programa y luego se comunica a través del lenguaje natural utilizando una interfaz agregada. En PLN, la funcionalidad de un programa se organiza solo para la definición del significado de las oraciones. Por ejemplo, la PLN se puede utilizar para representar todo el conocimiento de un robot autónomo. Una vez hecho esto, sus tareas pueden ser programadas por sus usuarios para que el robot pueda ejecutarlas de forma autónoma mientras mantiene las reglas de comportamiento prescritas según lo determinado por el usuario del robot. Estos robots se denominan robots transparentes [2] ya que su razonamiento es transparente para los usuarios y esto desarrolla confianza en los robots. El uso del lenguaje natural y las interfaces de usuario en lenguaje natural incluyen Inform 7 , un lenguaje de programación natural para crear ficción interactiva, Shakespeare , un lenguaje de programación natural esotérico al estilo de las obras de William Shakespeare , y Wolfram Alpha , un motor de conocimiento computacional que utiliza entradas en lenguaje natural. [ cita requerida ] Algunos métodos para la síntesis de programas se basan en la programación en lenguaje natural. [3]

Interpretación

La unidad de enunciado más pequeña en PNL es una oración. Cada oración se enuncia en términos de conceptos de la ontología subyacente, atributos de esa ontología y objetos nombrados en letras mayúsculas . En un texto de PNL, cada oración se compila de manera inequívoca en una llamada a un procedimiento en el lenguaje de programación de alto nivel subyacente, como MATLAB , Octave , SciLab , Python , etc.

Los lenguajes simbólicos como Wolfram Language son capaces de realizar un procesamiento interpretado de consultas mediante sentencias, lo que permite realizar peticiones interactivas como la implementada en Wolfram Alpha . [4] [5] La diferencia entre estos y el NLP es que este último construye un único programa o una biblioteca de rutinas que se programan mediante sentencias de lenguaje natural utilizando una ontología que define las estructuras de datos disponibles en un lenguaje de programación de alto nivel.

Un texto de ejemplo de un programa de lenguaje natural en idioma inglés es el siguiente:

Si U_ es 'smc01-control', haga lo siguiente. Defina los pesos de superficie Alpha como "[0.5, 0.5]". Inicialice la matriz Phi como una 'matriz de unidad'. Defina J como la 'matriz de inercia' de Spc01. Calcule la matriz J2 como la inversa de J. Calcule el error de velocidad de posición Ve y el error de velocidad angular Oe a partir del estado dinámico X, referencia de guía Xnow. Defina la superficie de deslizamiento de la articulación G2 a partir del error de velocidad de posición Ve y el error de velocidad angular Oe utilizando los pesos de superficie Alpha. Calcule la función de signo suavizado SG2 a partir de la superficie de deslizamiento de la articulación G2 con umbral de signo 0.01. Calcule la fuerza dinámica especial F a partir del estado dinámico X y los pesos de superficie Alpha. Calcule el par de control T y la fuerza de control U a partir de la matriz J2, pesos de superficie Alpha, fuerza dinámica especial F, función de signo suavizado SG2. Termine las acciones condicionales.

que define un esquema de control de retroalimentación utilizando un método de control de modo deslizante .

Paradigma del software

La programación en lenguaje natural es un método de escritura de software de arriba hacia abajo. Sus etapas son las siguientes:

Valor de publicación de programas y documentos en lenguaje natural

Un programa de lenguaje natural es una descripción formal precisa de algún procedimiento que su autor creó. Es legible para humanos y también puede ser leído por un agente de software adecuado. Por ejemplo, una página web en formato NLP puede ser leída por un agente de asistente personal de software para una persona y esta puede pedirle que ejecute algunas oraciones, es decir, que lleve a cabo alguna tarea o responda una pregunta. Existe un agente de lectura disponible para la interpretación en inglés de documentos NLP basados ​​en HTML que una persona puede ejecutar en su computadora personal .

Contribución de los programas de lenguaje natural al conocimiento de las máquinas

Una clase de ontología es un programa de lenguaje natural que no es un concepto en el sentido en que los humanos usan los conceptos. Los conceptos en un lenguaje natural son ejemplos (muestras) de conceptos humanos genéricos. Cada oración en un programa de lenguaje natural (1) enuncia una relación en un modelo del mundo o (2) lleva a cabo una acción en el entorno o (3) lleva a cabo un procedimiento computacional o (4) invoca un mecanismo de respuesta en respuesta a una pregunta.

Un conjunto de sentencias de procesamiento del lenguaje natural, con una ontología asociada definida, también se puede utilizar como pseudocódigo que no proporciona los detalles en ningún lenguaje de programación de alto nivel subyacente. En una aplicación de este tipo, las sentencias utilizadas se convierten en abstracciones de alto nivel (conceptualizaciones) de procedimientos informáticos que son independientes del lenguaje informático y de la máquina.

Inteligencia artificial en la programación en lenguaje natural

Los investigadores han comenzado a experimentar con entornos de programación de lenguaje natural que utilizan indicaciones en lenguaje sencillo y luego utilizan IA (específicamente, modelos de lenguaje grandes) para convertir el lenguaje natural en código formal. Por ejemplo, Spatial Pixel creó un entorno de programación de lenguaje natural para convertir el lenguaje natural en código P5.js a través de la API de OpenAI. En 2021, OpenAI desarrolló un entorno de programación de lenguaje natural para su modelo de lenguaje grande de programación llamado Codex.

Véase también

Lenguajes de programación con sintaxis similar al inglés

Referencias

  1. ^ Miller, LA (1981). "Programación en lenguaje natural: estilos, estrategias y contrastes". IBM Systems Journal . 20 (2): 184–215. doi :10.1147/sj.202.0184.
  2. ^ Desarrollo de robots fiables y confiables. "robots transparentes" }
  3. ^ Desai, Aditya, et al. "Síntesis de programas mediante lenguaje natural". Actas de la 38.ª Conferencia internacional sobre ingeniería de software. ACM, 2016.
  4. ^ Wolfram Alpha: cómo funciona (parte 2) Computer Weekly, 4 de junio de 2009
  5. ^ Wolfram Alpha calcula las respuestas Tech Crunch, 8 de marzo de 2009

Bibliografía

Libros
Ponencias en congresos
Síntesis de programas a partir de especificaciones en lenguaje natural

Enlaces externos