Эта статья поднимает множество проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
Парадигмы программирования |
---|
|
Программирование на естественном языке ( NLP ) - это способ программирования с использованием онтологий в терминах предложений на естественном языке , например английского . [1] Структурированный документ с Контентом, разделами и подразделами для объяснения предложений образует документ НЛП, который на самом деле является компьютерной программой . Естественные языки и пользовательские интерфейсы на естественном языке включают Inform 7 , естественный язык программирования для создания интерактивной художественной литературы, Shakespeare , эзотерический естественный язык программирования в стиле пьес Уильяма Шекспира., и Wolfram Alpha , вычислительная машина знаний, использующая ввод на естественном языке. [ необходима цитата ] Некоторые методы синтеза программ основаны на программировании на естественном языке. [2]
Интерпретация [ править ]
Наименьшая единица утверждения в НЛП - это предложение. Каждое предложение сформулировано в терминах понятий из базовой онтологии, атрибутов в этой онтологии и именованных объектов заглавными буквами . В тексте НЛП каждое предложение однозначно компилируется в вызов процедуры на базовом языке программирования высокого уровня, таком как MATLAB , Octave , SciLab , Python и т. Д.
Символьные языки, такие как Wolfram Language , способны интерпретировать обработку запросов по предложениям. Это может разрешить интерактивные запросы, такие как реализованные в Wolfram Alpha . [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.Закончите условные действия.
который определяет схему управления с обратной связью с использованием метода управления скользящим режимом .
Парадигма программного обеспечения [ править ]
Программирование на естественном языке - это метод написания программного обеспечения сверху вниз. Его этапы следующие:
- Определение онтологии - таксономии - концепций, необходимых для описания задач в рассматриваемой теме. Каждое понятие и все его атрибуты определены словами на естественном языке. Эта онтология будет определять структуры данных, которые НЛП может использовать в предложениях.
- Определение одного или нескольких предложений верхнего уровня в терминах концептов онтологии. Эти предложения позже используются для обозначения наиболее важных занятий по теме.
- Определение каждого из предложений верхнего уровня в терминах последовательности предложений.
- Определение каждого из предложений нижнего уровня в терминах других предложений или простым предложением формы Execute code "...". где ... обозначает код в терминах связанного языка программирования высокого уровня.
- Повторяя предыдущий шаг, пока не останется неопределенных предложений. Во время этого процесса каждое из предложений может быть отнесено к разделу документа, который будет создан в формате HTML или Latex, чтобы сформировать окончательную программу на естественном языке.
- Проверка значения каждого предложения путем выполнения его кода с использованием объектов тестирования.
- Предоставление библиотеки вызовов процедур (на базовом языке высокого уровня), которые необходимы в определениях кода некоторых значений предложений низкого уровня.
- Предоставление заголовка, данных об авторе и компиляция предложений в файл HTML или LaTex .
- Публикация программы на естественном языке в виде веб-страницы в Интернете или в виде файла PDF, скомпилированного из документа LaTex.
Публикационная ценность программ и документов на естественном языке [ править ]
Программа на естественном языке - это точное формальное описание некоторой процедуры, созданной ее автором. Он читается человеком, а также может быть прочитан подходящим программным агентом. Например, веб-страница в формате НЛП может быть прочитана программным агентом личного помощника человеку, и он или она может попросить агента выполнить некоторые предложения, то есть выполнить некоторую задачу или ответить на вопрос. Существует читатель агент доступен для английской интерпретации на основе HTML NLP документов , которые человек может работать на ее персональном компьютере .
Вклад программ на естественном языке в машинное знание [ править ]
Класс онтологии в программе на естественном языке, который не является концептом в том смысле, в каком люди используют концепции. Концепции в НЛП - это примеры (образцы) общих человеческих концепций. Каждое предложение в программе на естественном языке либо (1) устанавливает отношения в модели мира, либо (2) выполняет действие в окружающей среде, либо (3) выполняет вычислительную процедуру, либо (4) вызывает ответный механизм в ответ. на вопрос.
Набор предложений НЛП с определенной связанной онтологией также может использоваться как псевдокод , который не предоставляет подробностей на каком-либо базовом языке программирования высокого уровня. В таком приложении используемые предложения становятся абстракциями высокого уровня (концептуализациями) вычислительных процедур, которые не зависят от компьютерного языка и машин.
См. Также [ править ]
- Контролируемый естественный язык
- Бесконтекстный язык
- Доменно-ориентированный язык (или DSL)
- Программирование конечного пользователя
- Представление знаний
- Обработка естественного языка
- Генерация исходного кода
- Язык программирования очень высокого уровня
- Языки программирования с синтаксисом, похожим на английский
- AppleScript
- Попытка контролируемого английского
- КОБОЛ
- ClearTalk
- ПОТОК-МАТИЧЕСКИЙ
- HyperTalk
- Информ 7
- JOSS
- SenseTalk
- Software AG
- Стенограмма
- Язык структурированных запросов (или SQL)
- xTalk
Ссылки [ править ]
- Перейти ↑ Miller, LA (1981). «Программирование на естественном языке: стили, стратегии и контрасты». IBM Systems Journal . 20 (2): 184–215. DOI : 10.1147 / sj.202.0184 .
- ^ Десаи, Адитья и др. « Синтез программ с использованием естественного языка ». Материалы 38-й Международной конференции по программной инженерии. ACM, 2016.
- ↑ Wolfram Alpha - как это работает (часть 2) Computer Weekly, 4 июня 2009 г.
- ^ Wolfram Alpha вычисляет ответы Tech Crunch, 8 марта 2009 г.
Библиография [ править ]
- Книги
- Программирование агентов и роботов на естественном языке: публикация для агентов и людей на английском языке С.М. Верес, ISBN 978-0-9558417-0-5 , Лондон, июнь 2008 г.
- Дейкстра, Эдсгер В. (1979). «О глупости« программирования на естественном языке » ». Построение программы . Конспект лекций по информатике. 69 . С. 51–53. DOI : 10.1007 / bfb0014656 . ISBN 3-540-09251-X.
- Либерман, Генри; Лю, Хьюго (2006). «Технико-экономические обоснования программирования на естественном языке» . Разработка для конечных пользователей . Серия «Взаимодействие человека и компьютера». 9 . С. 459–473 . DOI : 10.1007 / 1-4020-5386-x_20 . ISBN 978-1-4020-4220-1.
- Хальперн, Марк (1990). «Естественный язык и избыточность в программировании». Время связывания: шесть исследований в области технологий программирования и среды . Серия Ablex в вычислительной технике. Книги интеллекта. ISBN 9780893916916.
- Доклады на конференциях
- Верес, С.М. Мольнар, Л. (2010). «Документы для интеллектуальных агентов на английском языке». Искусственный интеллект и приложения . DOI : 10.2316 / p.2010.674-122 . ISBN 978-0-88986-817-5.
- Управление автономным космическим аппаратом в скользящем режиме. (наполовину написано на английском языке) С.М. Верес и Н.К. Линкольн, Proc. ТАРОС'2008, К автономным робототехническим системам , Эдинбург, 1–3 сентября 2008 г.
- Верес, Шандор М. (2010). «Автономные системы управления полетом в океанах, в воздухе и в космосе». Информационные технологии, вдохновленные мозгом . Исследования в области вычислительного интеллекта. 266 . С. 1–10. DOI : 10.1007 / 978-3-642-04025-2_1 . ISBN 978-3-642-04024-5.
- Пулидо-Прието, Оскар; Хуарес-Мартинес, Улисес (2017). «Обзор технологий натуралистического программирования». ACM Computing Surveys . 50 (5): 1–35. DOI : 10.1145 / 3109481 . S2CID 2078759 .
- Синтез программ из спецификаций естественного языка
- Раза, Мохаммад, Сумит Гулвани и Наташа Милич-Фрайлинг. « Композиционный синтез программ из естественного языка и примеров ». IJCAI. 2015 г.
- Грин, Корделл. « Краткое изложение системы синтеза программ PSI» . IJCAI. Vol. 5. 1977.
Внешние ссылки [ править ]
- English Script (бездействует с 2016 г.)
- Простой английский язык программирования. Язык программирования с использованием английских предложений в кодировке ASCII.
- SEMPER - инструментарий для обучения семантических парсеров
- sEnglish - «Пишите программы на английском»
- sysbrain.org - английский язык, MATLAB и сообщество пользователей CAT Cognitive Agents Toolbox («было [...] переработано»)
- wy-lang.org - «Язык программирования для древних китайцев»
- Насколько естественным должен быть естественный интерфейс? - мысли о том, насколько «естественен» интерфейс Ubiquity (бездействует с 2009 года)
- Metafor превращает английский язык в код (бездействует с 2005 года)
- Формат представления компьютерных знаний, система, методы и приложения - патент США: гиперссылка на .who / what / where / when / how XML-файлы, в которые встроен NL