Программирование на естественном языке - Natural-language programming

Программирование на естественном языке (НЛП) является онтология -сопровождаемый способ программирование с точки зрения естественный язык предложения, например английский.[1] Структурированный документ с Контентом, разделами и подразделами для объяснения предложений формирует документ НЛП, который на самом деле является компьютерная программа. Естественные языки и пользовательские интерфейсы на естественном языке включают Информ 7, естественный язык программирования для создания интерактивной художественной литературы, Шекспир, эзотерический естественный язык программирования в стиле пьес Уильям Шекспир, и вольфрам Альфа, вычислительная машина знаний, использующая ввод на естественном языке.[нужна цитата ] Некоторые методы для программный синтез основаны на программировании на естественном языке.[2]

Интерпретация

Самая маленькая единица утверждения в НЛП - это предложение. Каждое предложение сформулировано в терминах концепций из базовой онтологии, атрибутов в этой онтологии и именованных объектов в заглавные буквы. В тексте НЛП каждое предложение однозначно компилирует в вызов процедуры в основе язык программирования высокого уровня Такие как MATLAB, Октава, SciLab, Python, так далее.

Символические языки, такие как Язык Wolfram Language способны интерпретированный обработка запросов по предложениям. Это может позволить интерактивные запросы, такие как реализованные в вольфрам Альфа.[3][4] Разница между ними и NLP состоит в том, что последний создает единую программу или библиотеку подпрограмм, которые программируются с помощью предложений естественного языка с использованием онтологии, которая определяет доступные структуры данных на языке программирования высокого уровня.

Пример текста из англоязычной программы для естественного языка выглядит следующим образом:

Если U_ - «smc01-control», сделайте следующее. Определите поверхностные веса Alpha как "[0.5, 0.5]". Инициализировать матрицу Phi как единичную матрицу. Определите J как «матрицу инерции» Spc01. Вычислить матрицу J2 как инверсию J. Вычислить ошибку скорости Ve и угловую скорость Oe из динамического состояния X, ориентир Xnow. Определите поверхность скольжения G2 на основе ошибки позиционной скорости Ve и ошибки угловой скорости Oe, используя поверхностные веса Alpha. Вычислите сглаженную функцию знака SG2 на основе скользящей поверхности G2 соединения с порогом знака 0,01. Вычислите специальную динамическую силу F из динамического состояния X и поверхностных весов Alpha. Вычислите управляющий крутящий момент T и управляющую силу U из матрицы J2, поверхностных весов Alpha, специальной динамической силы F, сглаженной функции знака SG2. Закончите условные действия.

который определяет схему управления с обратной связью с использованием управление скользящим режимом метод.

Парадигма программного обеспечения

Программирование на естественном языке - это нисходящий метод написания программного обеспечения. Его этапы следующие:

  • Определение онтология - таксономия - понятий, необходимых для описания задач в рассматриваемой теме. Каждое понятие и все его атрибуты определены словами на естественном языке. Эта онтология будет определять структуры данных, которые НЛП может использовать в предложениях.
  • Определение одного или нескольких предложений верхнего уровня в терминах концепций онтологии. Эти предложения позже используются для обозначения наиболее важных занятий по теме.
  • Определение каждого из предложений верхнего уровня в терминах последовательности предложений.
  • Определение каждого из предложений нижнего уровня в терминах других предложений или простым предложением формы Выполнить код «...». где ... обозначает код в терминах связанного языка программирования высокого уровня.
  • Повторяя предыдущий шаг, пока не останется неопределенных предложений. Во время этого процесса каждое из предложений может быть отнесено к разделу документа, который будет создан в формате HTML или Latex, чтобы сформировать окончательную программу на естественном языке.
  • Проверка значения каждого предложения путем выполнения его кода с использованием объектов тестирования.
  • Предоставление библиотеки вызовов процедур (на базовом языке высокого уровня), которые необходимы в определениях кода некоторых значений предложений низкого уровня.
  • Предоставление заголовка, данных об авторе и компиляция предложений в HTML или же Латекс файл.
  • Публикация программы на естественном языке в виде веб-страницы в Интернете или PDF файл, скомпилированный из документа LaTex.

Публикационная ценность программ и документов на естественном языке

Программа на естественном языке - это точный формальный описание некоторой процедуры, созданной ее автором. Он удобен для чтения человеком, а также может быть прочитан подходящим программным агентом. Например, веб-страница в формате НЛП может быть прочитана программным обеспечением. личный ассистент агент человеку, и он или она может попросить агента выполнить некоторые предложения, то есть выполнить какое-то задание или ответить на вопрос. Существует читатель агент доступна для английской интерпретации документов НЛП на основе HTML, которые человек может запустить на ней персональный компьютер .

Вклад программ на естественном языке в машинные знания

Класс онтологии в программе на естественном языке, не являющейся концепция в том смысле, в каком люди используют концепции. Концепции в НЛП - это примеры (образцы) общих человеческих концепций. Каждое предложение в программе на естественном языке либо (1) устанавливает связь в модели мира, либо (2) выполняет действие в окружающей среде, либо (3) выполняет вычислительную процедуру, либо (4) в ответ вызывает механизм ответа. на вопрос.

Набор предложений НЛП с определенной связанной онтологией также может использоваться как псевдокод который не предоставляет подробностей ни на одном из основных языков программирования высокого уровня. В таком приложении используемые предложения становятся абстракциями высокого уровня (концептуализациями) вычислительных процедур, которые не зависят от компьютерного языка и машины.

Смотрите также

Языки программирования с синтаксисом, похожим на английский

Рекомендации

  1. ^ Миллер, Л. А. (1981). «Программирование на естественном языке: стили, стратегии и контрасты». Журнал IBM Systems. 20 (2): 184–215. Дои:10.1147 / sj.202.0184.
  2. ^ Десаи, Адитья и др. "Синтез программ на естественном языке. »Материалы 38-й Международной конференции по программной инженерии. ACM, 2016.
  3. ^ Wolfram Alpha - как это работает (часть 2) Computer Weekly, 4 июня 2009 г.
  4. ^ Wolfram Alpha вычисляет ответы Tech Crunch, 8 марта 2009 г.

Библиография

Книги
  • Программирование агентов и роботов на естественном языке: публикации для агентов и людей на английском языке С. М. Верес, ISBN  978-0-9558417-0-5, Лондон, июнь 2008 г.
  • Дейкстра, Эдсгер В. (1979). «О глупости» программирования на естественном языке"". Построение программы. Конспект лекций по информатике. 69. С. 51–53. Дои:10.1007 / bfb0014656. ISBN  3-540-09251-X.
  • Либерман, Генри; Лю, Хьюго (2006). «Технико-экономические обоснования программирования на естественном языке». Разработка для конечных пользователей. Серия «Взаимодействие человека и компьютера». 9. стр.459–473. Дои:10.1007 / 1-4020-5386-x_20. ISBN  978-1-4020-4220-1.
  • Хальперн, Марк (1990). «Естественный язык и избыточность в программировании». Время привязки: шесть исследований по технологиям и среде программирования. Серия Ablex в вычислительной технике. Книги интеллекта. ISBN  9780893916916.CS1 maint: ref = harv (связь)
Доклады на конференциях
  • Верес, С.М .; Мольнар, Л. (2010). «Документы для интеллектуальных агентов на английском языке». Искусственный интеллект и приложения. Дои:10.2316 / стр.2010.674-122. ISBN  978-0-88986-817-5.
  • Управление автономным космическим аппаратом в скользящем режиме. (наполовину написано на английском языке) С. М. Верес и Н. К. Линкольн, Proc. ТАРОС’2008, На пути к автономным робототехническим системам, Эдинбург, 1–3 сентября 2008 г.
  • Верес, Шандор М. (2010). «Автономные системы управления полетом в океанах, воздухе и космосе». Информационные технологии, вдохновленные мозгом. Исследования в области вычислительного интеллекта. 266. С. 1–10. Дои:10.1007/978-3-642-04025-2_1. ISBN  978-3-642-04024-5.
  • Программирование пространственных алгоритмов на естественном языке, Борис Галицкий, Даниил Усиков, в семинаре AAAI по пространственному и временному мышлению 2008, Технический отчет AAAI, https://www.aaai.org/Library/Workshops/ws08-11.php.
  • Пулидо-Прието, Оскар; Хуарес-Мартинес, Улисес (2017). «Обзор технологий натуралистического программирования». Опросы ACM Computing. 50 (5): 1–35. Дои:10.1145/3109481.
Программный синтез из спецификаций естественного языка

внешняя ссылка