Articulo de referencia

Programación en lenguaje natural

La programación en lenguaje natural ( PLN ) es una forma de programación asistida por ontologías que utiliza oraciones en lenguaje natural , por ejemplo, inglés . [ 1 ] Un docum...

La programación en lenguaje natural ( PLN ) es una forma de programación asistida por ontologías que utiliza oraciones en lenguaje natural , por ejemplo, inglés . [ 1 ] Un documento estructurado con contenido, secciones y subsecciones para la explicación de oraciones conforma un documento PLN, que en realidad es un programa informático . La programación en lenguaje natural no debe confundirse con la interfaz de lenguaje natural ni con el control por voz, donde primero se escribe un programa y luego se comunica con él mediante lenguaje natural utilizando una interfaz añadida. En PLN, la funcionalidad de un programa se organiza únicamente para definir el significado de las oraciones. Por ejemplo, la PLN puede utilizarse 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 las ejecute de forma autónoma, respetando las reglas de comportamiento prescritas por el usuario. Estos robots se denominan robots transparentes [ 2 ], ya que su razonamiento es transparente para los usuarios, lo que genera confianza en ellos. 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 entrada en lenguaje natural. Algunos métodos de síntesis de programas se basan en la programación en lenguaje natural. [ 3 ]

Interpretación

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

Los lenguajes simbólicos como Wolfram Language permiten el procesamiento interpretado de consultas mediante oraciones. Esto posibilita solicitudes interactivas como la implementada en Wolfram Alpha . [ 4 ] [ 5 ] La diferencia con el PLN radica en que este último construye un único programa o una biblioteca de rutinas programadas mediante oraciones en lenguaje natural, utilizando una ontología que define las estructuras de datos disponibles en un lenguaje de programación de alto nivel.

A continuación se muestra un ejemplo de texto procedente de un programa de procesamiento del lenguaje natural en inglés:

Si U_ es 'smc01-control', entonces haga lo siguiente. Defina los pesos de superficie Alpha como "[0.5, 0.5]". Inicialice la matriz Phi como una 'matriz identidad'. 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 usando los pesos de superficie Alpha. Calcule la función de signo suavizada 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 suavizada SG2. Finalice 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 descendente para escribir software. Sus etapas son las siguientes:

  • Definición de una ontología —taxonomía— de conceptos necesarios para describir las tareas del tema tratado. Cada concepto y todos sus atributos se definen en lenguaje natural. Esta ontología definirá las estructuras de datos que el PLN puede utilizar en las oraciones .  
  • Definición de una o más oraciones de nivel superior en términos de conceptos de la ontología. Estas oraciones se utilizan posteriormente para invocar las actividades más importantes del tema.
  • Definición de cada una de las oraciones de nivel superior en términos de una secuencia de oraciones.
  • Definir cada una de las oraciones de nivel inferior en términos de otras oraciones o mediante una oración simple de la forma Ejecutar código "...", donde ... representa un código en términos del lenguaje de programación de alto nivel asociado.
  • Repita el paso anterior hasta que no queden oraciones sin definir. Durante este proceso, cada oración se puede clasificar para pertenecer a una sección del documento que se generará en formato HTML o LaTeX para conformar el programa final en lenguaje natural.
  • Se comprueba el significado de cada oración ejecutando su código mediante objetos de prueba.
  • Proporcionar una biblioteca de llamadas a procedimientos (en el lenguaje de alto nivel subyacente) que se necesitan en las definiciones de código de algunos significados de oraciones de bajo nivel.
  • Proporcionar un título, los datos del autor y compilar las oraciones en un archivo HTML o LaTeX .
  • Publicar el programa de lenguaje natural como una página web en Internet o como un archivo PDF compilado a partir del documento LaTeX.

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

Un programa en lenguaje natural es una descripción formal y precisa de un procedimiento creado por su autor. Es legible para humanos y también puede ser leído por un agente de software adecuado. Por ejemplo, un asistente personal de software puede leer una página web en formato PLN a una persona, quien puede solicitarle que ejecute ciertas frases, es decir, que realice alguna tarea o responda una pregunta. Existe un agente lector disponible para la interpretación en inglés de documentos PLN 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 los usamos. Los conceptos en PLN son ejemplos (muestras) de conceptos humanos genéricos. Cada oración en un programa de lenguaje natural (PLN) (1) establece una relación en un modelo del mundo, (2) realiza una acción en el entorno, (3) ejecuta un procedimiento computacional o (4) invoca un mecanismo de respuesta a una pregunta.

Un conjunto de oraciones de PLN, con su ontología asociada definida, también puede utilizarse como pseudocódigo que no proporciona detalles en ningún lenguaje de programación de alto nivel subyacente. En dicha aplicación, las oraciones utilizadas se convierten en abstracciones de alto nivel (conceptualizaciones) de procedimientos computacionales que son independientes del lenguaje de programación y de la máquina.

Inteligencia artificial en programación del lenguaje natural

Los investigadores han comenzado a experimentar con entornos de programación en lenguaje natural que utilizan indicaciones en lenguaje sencillo y luego emplean inteligencia artificial (específicamente modelos de lenguaje a gran escala) para convertir el lenguaje natural en código formal. Por ejemplo, Spatial Pixel creó un entorno de programación en 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 en lenguaje natural para su modelo de lenguaje a gran escala llamado Codex .

Véase también

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

Lenguajes de programación con vocabulario o sintaxis similares a otros lenguajes naturales.

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 de confianza. " 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 respuestas Tech Crunch, 8 de marzo de 2009

Bibliografía

Libros
  • Programación en lenguaje natural de agentes y dispositivos robóticos: publicación para agentes y humanos en inglés estándar por SM Veres, ISBN 978-0-9558417-0-5Londres, junio de 2008.
  • Dijkstra, Edsger W. (1979). "Sobre la insensatez de la "programación en lenguaje natural""" Construcción de programas . Notas de clase en ciencias de la computación. Vol.  69. págs. 51–53 . doi : 10.1007/bfb0014656 . ISBN  3-540-09251-X.
  • Lieberman, Henry; Liu, Hugo (2006). «Estudios de viabilidad para la programación en lenguaje natural» . Desarrollo del usuario final . Serie de interacción persona-ordenador. Vol.  9. págs. 459–473 . doi : 10.1007/1-4020-5386-x_20 . ISBN  978-1-4020-4220-1.
  • Halpern, Mark (1990). «Lenguaje natural y redundancia en la programación». Binding Time: Six Studies in Programming Technology & Milieu . Serie Ablex en ciencias computacionales. Intellect Books. ISBN 9780893916916.
Ponencias en conferencias
  • Veres, SM; Molnar, L. (2010). «Documentos para agentes inteligentes en inglés». Inteligencia artificial y aplicaciones . doi : 10.2316/p.2010.674-122 . ISBN 978-0-88986-817-5.
  • Control por modos deslizantes de naves espaciales autónomas. (Escrito parcialmente en inglés estándar ) por SM Veres y NK Lincoln, Actas de TAROS'2008, Hacia sistemas robóticos autónomos , Edimburgo, 1-3 de septiembre de 2008.
  • Veres, Sandor M. (2010). «Sistemas de control autónomos con capacidad de misión en los océanos, en el aire y en el espacio». Tecnología de la información inspirada en el cerebro . Estudios en inteligencia computacional. Vol.  266. pp. 1–10 . doi : 10.1007/978-3-642-04025-2_1 . ISBN  978-3-642-04024-5.
  • Pulido-Prieto, Oscar; Juárez-Martínez, Ulises (2017). "Un estudio de las tecnologías de programación naturalista". ACM Computing Surveys . 50 (5): 1– 35. doi : 10.1145/3109481 . S2CID 2078759 . 
Síntesis de programas a partir de especificaciones en lenguaje natural
  • Raza, Mohammad, Sumit Gulwani y Natasa Milic-Frayling. " Síntesis de programas compositivos a partir del lenguaje natural y ejemplos ". IJCAI. 2015.
  • Green, Cordell. " Resumen del sistema de síntesis de programas PSI ". IJCAI. Vol. 5. 1977.
  • Guion en inglés (inactivo desde 2016)
  • Programación en lenguaje sencillo: Lenguaje de programación que utiliza frases en inglés en formato ASCII.
  • SEMPRE : un conjunto de herramientas para entrenar analizadores semánticos. 
  • sysbrain.com Editor en inglés en C++/ROS para la programación de robots para desarrollar robots transparentes. 
  • wy-lang.org "Lenguaje de programación para los antiguos chinos" 
  • ¿Qué tan natural debería ser una interfaz natural? reflexiones sobre cuán "natural" es la interfaz de Ubiquity (inactiva desde 2009) 
  • Metafor convierte el inglés en código (inactivo desde 2005)
  • Formato, sistema, métodos y aplicaciones de representación del conocimiento informático : patente estadounidense relativa a la creación de hipervínculos a archivos XML .who/what/where/when/how que incorporan NL. 
Obtenido de " https://en.wikipedia.org/w/index.php?title=Natural_language_programming&oldid=1304292549 "