Программирование на естественном языке
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Программирование на естественном языке ( НЛП ) — это с использованием онтологий способ программирования с использованием предложений естественного языка , например английского . [ 1 ] Структурированный документ с Содержимым, разделами и подразделами для пояснений предложений образует документ НЛП, который фактически представляет собой компьютерную программу . Программирование на естественном языке не следует путать с интерфейсом на естественном языке или голосовым управлением, когда программа сначала пишется, а затем передается на естественном языке с использованием добавленного интерфейса. В НЛП функционал программы организован только для определения смысла предложений. Например, НЛП можно использовать для представления всех знаний автономного робота. После этого пользователи могут записывать его задачи, чтобы робот мог выполнять их автономно, соблюдая при этом предписанные правила поведения, определенные пользователем робота. Такие роботы называются прозрачными роботами. [ 2 ] поскольку их рассуждения прозрачны для пользователей, и это вызывает доверие к роботам. Использование естественного языка и пользовательские интерфейсы на естественном языке включают Inform 7 , естественный язык программирования для создания интерактивной художественной литературы, Shakespeare , эзотерический естественный язык программирования в стиле пьес Уильяма Шекспира , и Wolfram Alpha , машину вычислительных знаний, использующую естественные языки. - языковой ввод. [ нужна ссылка ] Некоторые методы синтеза программ основаны на программировании на естественном языке. [ 3 ]
Интерпретация
[ редактировать ]Самая маленькая единица высказывания в НЛП — это предложение. Каждое предложение сформулировано в терминах концепций базовой онтологии, атрибутов этой онтологии и названных объектов заглавными буквами . В тексте НЛП каждое предложение однозначно компилируется в вызов процедуры на базовом языке программирования высокого уровня , таком как MATLAB , Octave , SciLab , Python и т. д.
Символические языки, такие как Wolfram Language, способны интерпретировать обработку запросов с помощью предложений. Это может позволить выполнять интерактивные запросы, подобные реализованным в Wolfram Alpha . [ 4 ] [ 5 ] Разница между ними и НЛП заключается в том, что последнее создает единую программу или библиотеку подпрограмм, которые программируются с помощью предложений естественного языка с использованием онтологии, которая определяет доступные структуры данных на языке программирования высокого уровня.
Пример текста из программы естественного языка на английском языке выглядит следующим образом:
Если U_ имеет значение «smc01-control», выполните следующие действия. Определите поверхностные веса Alpha как «[0,5, 0,5]». Инициализируйте матрицу Phi как «единичную матрицу». Определите J как «матрицу инерции» Spc01. Вычислить матрица J2 как инверсия J. Вычислить ошибку скорости положения Ve и ошибку угловой скорости. Oe из динамического состояния X, ссылка на руководство Xnow. Определите суставную поверхность скольжения G2 из ошибки позиционной скорости Ve и ошибки угловой скорости Oe с использованием поверхностных весов Альфа. Вычислите сглаженную знаковую функцию SG2 по суставной поверхности скольжения G2 со знаком порог 0,01. Вычислите специальную динамическую силу F на основе динамического состояния X и поверхности. весы Альфа. Вычислите управляющий момент T и управляющую силу U из матрицы J2, поверхностных весов. Альфа, специальная динамическая сила F, сглаженная знаковая функция SG2. Завершить условные действия.
который определяет схему управления с обратной связью с использованием метода управления скользящим режимом .
Парадигма программного обеспечения
[ редактировать ]Программирование на естественном языке — это нисходящий метод написания программного обеспечения. Ее этапы следующие:
- Определение онтологии – таксономии – понятий, необходимых для описания задач по рассматриваемой теме. Каждое понятие и все его атрибуты определяются словами естественного языка. Эта онтология будет определять структуры данных, которые НЛП может использовать в предложениях.
- Определение одного или нескольких предложений верхнего уровня с точки зрения понятий из онтологии. Эти предложения позже используются для вызова наиболее важных действий по теме.
- Определение каждого предложения верхнего уровня в виде последовательности предложений.
- Определение каждого из предложений более низкого уровня через другие предложения или простым предложением формы Выполнить код «...». где... обозначает код соответствующего языка программирования высокого уровня.
- Повторяйте предыдущий шаг до тех пор, пока у вас не останется неопределенных предложений. В ходе этого процесса каждое предложение может быть классифицировано как принадлежащее к разделу документа, который будет создан в формате HTML или Latex для формирования окончательной программы на естественном языке.
- Проверка значения каждого предложения путем выполнения его кода с использованием объектов тестирования.
- Предоставление библиотеки вызовов процедур (на базовом языке высокого уровня), которые необходимы в определениях кода некоторых значений предложений низкого уровня.
- Предоставление названия, данных об авторе и компиляция предложений в файл HTML или LaTeX .
- Публикация программы на естественном языке в виде веб-страницы в Интернете или в виде PDF- файла, составленного из документа LaTeX.
Публикационная ценность программ и документов на естественном языке
[ редактировать ]Программа на естественном языке — это точное формальное описание некоторой процедуры, созданной ее автором. Он удобен для чтения человеком, а также может быть прочитан подходящим программным агентом. Например, веб-страница в формате НЛП может быть прочитана программным персональным помощником -агентом человека, и она или он может попросить агента выполнить некоторые предложения, т.е. выполнить некоторую задачу или ответить на вопрос. Существует читательский агент для английской интерпретации документов НЛП на основе HTML, который человек может запустить на своем персональном компьютере .
Вклад программ на естественном языке в машинные знания
[ редактировать ]Класс онтологии — это программа на естественном языке, которая не является концепцией в том смысле, в котором люди используют концепции. Концепции в НЛП — это примеры (образцы) общих человеческих концепций. Каждое предложение в программе на естественном языке либо (1) устанавливает отношения в модели мира, либо (2) выполняет действие в окружающей среде, либо (3) выполняет вычислительную процедуру, либо (4) вызывает в ответ механизм ответа. на вопрос.
Набор предложений НЛП с определенной онтологией также может использоваться в качестве псевдокода , который не предоставляет деталей ни на каком базовом языке программирования высокого уровня. В таком приложении используемые предложения становятся абстракциями (концептуализациями) высокого уровня вычислительных процедур, которые независимы от компьютерного языка и машины.
ИИ в программировании на естественном языке
[ редактировать ]Исследователи начали экспериментировать со средами программирования на естественном языке, которые используют подсказки на простом языке, а затем используют ИИ (в частности, большие языковые модели), чтобы превратить естественный язык в формальный код. Например, компания Spatial Pixel создала среду программирования на естественном языке , чтобы превратить естественный язык в код P5.js через API OpenAI. В 2021 году OpenAI разработала среду программирования на естественном языке для своей модели большого языка программирования под названием Codex .
См. также
[ редактировать ]- Контролируемый естественный язык
- Контекстно-свободный язык
- Язык, специфичный для предметной области (или DSL)
- Программирование конечного пользователя
- Представление знаний
- Обработка естественного языка
- Генерация исходного кода
- Язык программирования очень высокого уровня.
- Языки программирования с английским синтаксисом.
- AppleScript
- Попытка контролировать английский
- КОБОЛ
- ClearTalk
- ФЛОУ-МАТИК
- ГиперТок
- Информировать 7
- ДЖОСС
- SenseTalk
- Программное обеспечение АГ
- Стенограмма
- Язык структурированных запросов (или SQL)
- xTalk
Ссылки
[ редактировать ]- ^ Миллер, Луизиана (1981). «Программирование на естественном языке: стили, стратегии и контрасты». IBM Systems Journal . 20 (2): 184–215. дои : 10.1147/sj.202.0184 .
- ^ Разработка надежных и заслуживающих доверия роботов. " прозрачные роботы " }
- ^ Десаи, Адитья и др. « Синтез программы с использованием естественного языка ». Материалы 38-й Международной конференции по программной инженерии. АКМ, 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. дои : 10.1007/bfb0014656 . ISBN 3-540-09251-Х .
- Либерман, Генри; Лю, Хьюго (2006). «Технико-экономическое обоснование программирования на естественном языке» . Развитие конечных пользователей . Серия «Взаимодействие человека и компьютера». Том. 9. С. 459–473 . дои : 10.1007/1-4020-5386-x_20 . ISBN 978-1-4020-4220-1 .
- Халперн, Марк (1990). «Естественный язык и избыточность в программировании». Время связывания: шесть исследований в области технологий программирования и среды . Серия Alex по информатике. Интеллектуальные книги. ISBN 9780893916916 .
- Доклады на конференциях
- Верес, С.М.; Мольнар, Л. (2010). «Документы для интеллектуальных агентов на английском языке». Искусственный интеллект и его приложения . дои : 10.2316/стр.2010.674-122 . ISBN 978-0-88986-817-5 .
- Скользящий режим управления автономными космическими аппаратами. (наполовину написано на английском языке) С.М. Верес и Н.К. Линкольн, Proc. TAROS'2008, Навстречу автономным роботизированным системам , Эдинбург, 1–3 сентября 2008 г.
- Верес, Шандор М. (2010). «Автономные системы управления, способные выполнять миссии в океанах, в воздухе и в космосе». Информационные технологии, основанные на мозге . Исследования в области вычислительного интеллекта. Том. 266. стр. 1–10. дои : 10.1007/978-3-642-04025-2_1 . ISBN 978-3-642-04024-5 .
- Пулидо-Прието, Оскар; Хуарес-Мартинес, Улисес (2017). «Обзор технологий натуралистического программирования». Обзоры вычислительной техники ACM . 50 (5): 1–35. дои : 10.1145/3109481 . S2CID 2078759 .
- Синтез программы на основе спецификаций естественного языка
- Раза, Мохаммад, Сумит Гулвани и Натаса Милич-Фрайлинг. « Композиционный синтез программ на основе естественного языка и примеров ». IJCAI. 2015.
- Грин, Корделл. « Краткое описание системы синтеза программ PSI ». IJCAI. Том. 5. 1977.
Внешние ссылки
[ редактировать ]- Английский сценарий (бездействующий с 2016 г.)
- Простое английское программирование Язык программирования с использованием английских предложений в формате ASCII.
- SEMPER — набор инструментов для обучения семантических парсеров
- sysbrain.com — английский редактор на C++/ROS для программирования роботов для разработки прозрачных роботов.
- wy-lang.org – «Язык программирования для древних китайцев»
- Насколько естественным должен быть естественный интерфейс? - мысли о том, насколько «естественен» интерфейс Ubiquity (бездействующий с 2009 года)
- Metafor превращает английский в код (бездействует с 2005 года)
- Формат, система, методы и приложения представления компьютерных знаний - патент США: гиперссылки на XML-файлы .who/what/where/когда/как, в которых встроен NL.