Programmation en langage naturel - Natural-language programming

La programmation en langage naturel ( NLP ) est une méthode de programmation assistée par une ontologie en termes de phrases en langage naturel , par exemple l' anglais . Un document structuré avec du contenu, des sections et des sous-sections pour les explications des phrases forme un document NLP, qui est en fait un programme informatique . Les langages naturels et les interfaces utilisateur en langage naturel incluent Inform 7 , un langage de programmation naturel pour faire de la fiction interactive, Shakespeare , un langage de programmation naturel ésotérique dans le style des pièces de William Shakespeare , et Wolfram Alpha , un moteur de connaissances informatiques, utilisant des saisie de la langue. Certaines méthodes de synthèse de programmes sont basées sur la programmation en langage naturel.

Interprétation

La plus petite unité d'énoncé en PNL est une phrase. Chaque phrase est énoncée en termes de concepts de l'ontologie sous-jacente, d'attributs de cette ontologie et d'objets nommés en majuscules . Dans un texte PNL chaque phrase sans ambiguïté compile en un appel de procédure dans la sous - jacente langage de programmation de haut niveau tels que Matlab , Octave , SciLab , Python , etc.

Les langages symboliques tels que Wolfram Language sont capables de traiter des requêtes interprétées par des phrases. Cela peut permettre des requêtes interactives telles que celle implémentée dans Wolfram Alpha . La différence entre ceux-ci et le NLP est que ce dernier construit un programme unique ou une bibliothèque de routines qui sont programmées à l'aide de phrases en langage naturel à l'aide d'une ontologie qui définit les structures de données disponibles dans un langage de programmation de haut niveau.

Voici un exemple de texte d'un programme en langue naturelle en anglais :

Si U_ est 'smc01-control', procédez comme suit. Définissez les poids de surface Alpha comme "[0,5, 0,5]". Initialisez la matrice Phi en tant que 'matrice unitaire'. Définissez J comme la « matrice d'inertie » de Spc01. Calculer la matrice J2 comme l'inverse de J. Calculer l'erreur de vitesse de position Ve et l'erreur de vitesse angulaire Oe à partir de l'état dynamique X, référence de guidage Xnow. Définissez la surface de glissement du joint G2 à partir de l'erreur de vitesse de position Ve et de l'erreur de vitesse angulaire Oe en utilisant les poids surfaciques Alpha. Calculer la fonction de signe lissée SG2 à partir de la surface de glissement du joint G2 avec un seuil de signe 0,01. Calculez la force dynamique spéciale F à partir de l'état dynamique X et des poids de surface Alpha. Calculer le couple de contrôle T et la force de contrôle U à partir de la matrice J2, poids surfaciques Alpha, force dynamique spéciale F, fonction de signe lissée SG2. Terminer les actions conditionnelles.

qui définit un schéma de contrôle de rétroaction utilisant une méthode de contrôle en mode glissant .

Paradigme logiciel

La programmation en langage naturel est une méthode descendante d'écriture de logiciels. Ses étapes sont les suivantes :

  • Définition d'une ontologie  – taxonomie – de concepts nécessaires pour décrire des tâches dans le sujet traité. Chaque concept et tous ses attributs sont définis dans des mots en langage naturel. Cette ontologie définira les structures de données que le PNL peut utiliser dans les phrases.
  • Définition d'une ou plusieurs phrases de niveau supérieur en termes de concepts de l'ontologie. Ces phrases sont ensuite utilisées pour invoquer les activités les plus importantes du sujet.
  • Définition de chacune des phrases de niveau supérieur en termes de séquence de phrases.
  • Définir chacune des phrases de niveau inférieur en termes d'autres phrases ou par une phrase simple de la forme Exécuter le code "...". où ... représente un code en termes de langage de programmation de haut niveau associé.
  • Répétez l'étape précédente jusqu'à ce que vous n'ayez plus de phrases non définies. Au cours de ce processus, chacune des phrases peut être classée pour appartenir à une section du document à produire au format HTML ou Latex pour former le programme final en langage naturel.
  • Tester le sens de chaque phrase en exécutant son code à l'aide d'objets de test.
  • Fournir une bibliothèque d'appels de procédure (dans le langage de haut niveau sous-jacent) qui sont nécessaires dans les définitions de code de certaines significations de phrases de bas niveau.
  • Fournir un titre, des données sur l'auteur et compiler les phrases dans un fichier HTML ou LaTex .
  • Publication du programme en langage naturel sous forme de page Web sur Internet ou sous forme de fichier PDF compilé à partir du document LaTex.

Valeur de publication des programmes et documents en langage naturel

Un programme en langage naturel est une description formelle précise d'une procédure créée par son auteur. Il est lisible par l'homme et peut également être lu par un agent logiciel approprié. Par exemple, une page Web au format NLP peut être lue par un agent assistant personnel logiciel à une personne et elle peut demander à l'agent d'exécuter certaines phrases, c'est-à-dire d'effectuer une tâche ou de répondre à une question. Il existe un agent de lecture disponible pour l'interprétation en anglais des documents NLP HTML qu'une personne peut exécuter sur son ordinateur personnel .

Contribution des programmes en langage naturel à la connaissance machine

Une classe d'ontologie est un programme en langage naturel qui n'est pas un concept au sens où les humains utilisent des concepts. Les concepts d'une PNL sont des exemples (échantillons) de concepts humains génériques. Chaque phrase dans un programme en langage naturel est soit (1) énonçant une relation dans un modèle mondial ou (2) exécute une action dans l'environnement ou (3) exécute une procédure de calcul ou (4) invoque un mécanisme de réponse en réponse à une question.

Un ensemble de phrases NLP, avec une ontologie associée définie, peut également être utilisé comme pseudo-code qui ne fournit les détails dans aucun langage de programmation de haut niveau sous-jacent. Dans une telle application, les phrases utilisées deviennent des abstractions de haut niveau (conceptualisations) de procédures informatiques indépendantes du langage informatique et de la machine.

Voir également

Langages de programmation avec une syntaxe de type anglais

Les références

Bibliographie

Livres
Communications lors de conférences
  • Verès, SM ; Molnar, L. (2010). "Documents pour agents intelligents en anglais". Intelligence Artificielle et Applications . doi : 10.2316/p.2010.674-122 . ISBN 978-0-88986-817-5.
  • Contrôle en mode glissant d'engins spatiaux autonomes. (à moitié écrit en anglais) par SM Veres et NK Lincoln, Proc. TAROS'2008, Towards Autonomous Robotic Systems , Édimbourg, 1–3 septembre 2008.
  • Veres, Sandor M. (2010). "Systèmes de contrôle autonome capables de mission dans les océans, dans l'air et dans l'espace". Technologie de l'information inspirée du cerveau . Etudes en Intelligence Computationnelle. 266 . p. 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). "Une enquête sur les technologies de programmation naturaliste". Enquêtes informatiques ACM . 50 (5) : 1-35. doi : 10.1145/3109481 . S2CID  2078759 .
Synthèse de programme à partir de spécifications en langage naturel

Liens externes