Jump to content

Грамматическая основа (язык программирования)

(Перенаправлено из Грамматической основы )

Grammatical Framework ( GF ) — язык программирования для написания грамматик естественных языков. GF способен анализировать и генерировать тексты на нескольких языках одновременно, работая с независимым от языка представлением значения. Грамматики, написанные на GF, можно скомпилировать в независимый от платформы формат, а затем использовать из разных языков программирования, включая C и Java , C# , Python и Haskell . Дополнителем GF является GF Resource Grammar Library , библиотека многократного использования для работы с морфологией и синтаксисом растущего числа естественных языков.

И сам GF, и библиотека грамматики ресурсов GF имеют открытый исходный код . Типологически GF — функциональный язык программирования. Математически это теоретико-типовая формальная система ( логическая структура точнее, ), основанная на интуиционистской теории типов Мартина-Лёфа с дополнительными суждениями , специально адаптированными к области лингвистики.

Особенности языка

[ редактировать ]

Учебное пособие

[ редактировать ]

Цель: написать многоязычную грамматику для выражения утверждений о том, что Джон и Мэри любят друг друга. [2]

Абстрактные и конкретные модули

[ редактировать ]

В GF грамматики разделены на два типа модулей:

  • модуль абстрактный , содержащий формы суждений cat и fun.
    • cat или объявления категорий перечисляют категории, т.е. все возможные типы деревьев, которые могут быть.
    • fun или объявления функций указывают функции и их типы , они должны быть реализованы конкретными модулями (см. ниже).
  • один или несколько конкретных модулей, содержащих формы суждений lincat и lin.
    • lincat или определения типа линеаризации , говорит, какой тип объектов линеаризация создает для каждой категории, перечисленной в cat.
    • lin или правила линеаризации реализуют функции, объявленные в fun. Они говорят, как деревья линеаризуются.

Учтите следующее:

Абстрактный синтаксис

 abstract Zero = {
   cat
     S ; NP ; VP ; V2 ;
   fun
     Pred : NP -> VP -> S ;
     Compl : V2 -> NP -> VP ;
     John, Mary : NP ;
     Love : V2 ;
 }

Конкретный синтаксис: английский

 concrete ZeroEng of Zero = {
   lincat
     S, NP, VP, V2 = Str ;
   lin
     Pred np vp = np ++ vp ;
     Compl v2 np = v2 ++ np ;
     John = "John" ;
     Mary = "Mary" ;
     Love = "loves" ;
 }

Уведомление: Str (список токенов или «строка») как единственный тип линеаризации.

Делаем грамматику многоязычной

[ редактировать ]

Один абстрактный синтаксис может быть применен ко многим конкретным синтаксисам, в нашем случае по одному для каждого нового естественного языка, который мы хотим добавить. Ту же систему деревьев можно представить:

  • разные слова
  • разные порядки слов
  • различные типы линеаризации

Конкретный синтаксис: французский

 concrete ZeroFre of Zero = {
   lincat
     S, NP, VP, V2 = Str ;
   lin
     Pred np vp = np ++ vp ;
     Compl v2 np = v2 ++ np ;
     John = "Jean" ;
     Mary = "Marie" ;
     Love = "aime" ;
 }

Перевод и многоязычное поколение

[ редактировать ]

Теперь мы можем использовать нашу грамматику для перевода фраз с французского на английский. Следующие команды можно выполнить в интерактивной оболочке GF.

Импортируйте множество грамматик с одним и тем же абстрактным синтаксисом.

> import ZeroEng.gf ZeroFre.gf
Languages: ZeroEng ZeroFre

Перевод: линеаризация канала в синтаксический анализ

> parse -lang=Eng "John loves Mary" | linearize -lang=Fre
Jean aime Marie

Многоязычное поколение: линеаризация на все языки

> generate_random | linearize -treebank
Zero: Pred Mary (Compl Love Mary)
ZeroEng: Mary loves Mary
ZeroFre: Marie aime Marie

Параметры, таблицы

[ редактировать ]

В латыни есть падежи : именительный падеж подлежащего, винительный падеж объекта.

  • Иоаннес Мариам амат «Джон-Ном любит Мэри-Акк»
  • Мария Иоаннем действительно «Мэри-Ном любит Джона-Акка»

Мы используем тип параметра для регистра (всего 2 из 6 случаев в Latin). Тип линеаризации NP представляет собой табличный тип : от Case к Str. Линеаризация John это таблица перегиба . При использовании NP мы выбираем ( !) соответствующий случай из таблицы.

Конкретный синтаксис: латынь.

 concrete ZeroLat of Zero = {
   lincat
     S, VP, V2 = Str ;
     NP = Case => Str ;
   lin
     Pred np vp = np ! Nom ++ vp ;
     Compl v2 np = np ! Acc ++ v2 ;
     John = table {Nom => "Ioannes" ; Acc => "Ioannem"} ;
     Mary = table {Nom => "Maria" ; Acc => "Mariam"} ;
     Love = "amat" ;
   param
     Case = Nom | Acc ;
 }

Прерывистые составляющие, записи

[ редактировать ]

В голландском языке глагол heeft lief является прерывистым компонентом. Тип линеаризации V2 это тип записи с двумя полями . Линеаризация Love это рекорд . Значения полей выбираются по проекции ( .)

Конкретный синтаксис: голландский

 concrete ZeroDut of Zero = {
   lincat
     S, NP, VP = Str ;
     V2 = {v : Str ; p : Str} ;
   lin
     Pred np vp = np ++ vp ;
     Compl v2 np = v2.v ++ np ++ v2.p ;
     John = "Jan" ;
     Mary = "Marie" ;
     Love = {v = "heeft" ; p = "lief"} ;
 }

Переменные и встроенные функции, соглашение, поддержка Unicode

[ редактировать ]

Для иврита NP имеет род как неотъемлемую характеристику – поле в записи. VP используется пол В качестве переменной характеристики – аргумент таблицы. При предикации VP получает пол NP.

Конкретный синтаксис: иврит.

 concrete ZeroHeb of Zero = {
     flags coding=utf8 ;
   lincat
     S = Str ;
     NP = {s : Str ; g : Gender} ;
     VP, V2 = Gender => Str ;
   lin
     Pred np vp = np.s ++ vp ! np.g ;
     Compl v2 np = table {g => v2 ! g ++ "את" ++ np.s} ;
     John = {s = "ג׳ון" ; g = Masc} ;
     Mary = {s = "מרי" ; g = Fem} ;
     Love = table {Masc => "אוהב" ; Fem => "אוהבת"} ;
   param
     Gender = Masc | Fem ;
 }

Визуализация деревьев разбора

[ редактировать ]

GF имеет встроенные функции, которые можно использовать для визуализации деревьев синтаксического анализа и выравнивания слов.

Следующие команды сгенерируют деревья синтаксического анализа для заданных фраз и откроют созданное изображение PNG, используя системный файл. eog команда.

> parse -lang=Eng "John loves Mary" | visualize_parse -view="eog"
> parse -lang=Dut "Jan heeft Marie lief" | visualize_parse -view="eog"
Дерево разбора фразы «Джон любит Мэри» Дерево разбора фразы «Джон любит Мари»

Создание выравнивания слов

[ редактировать ]
  1. В языках L1 и L2: связывайте каждое слово с его наименьшим связующим поддеревом.
  2. Удалите промежуточное дерево, объединив ссылки непосредственно из L1 в L2.

В целом это дает выравнивание фраз. Ссылки могут быть пересекающимися, фразы — прерывистыми. align_words команда имеет аналогичный синтаксис:

> parse -lang=Fre "Marie aime Jean" | align_words -lang=Fre,Dut,Lat -view="eog"
Выравнивание слов для «Мари Эм Жан» на французском, голландском и латыни.

Ресурсная библиотека грамматики

[ редактировать ]

В приложениях на естественном языке библиотеки — это способ справиться с тысячами деталей, связанных с синтаксисом, лексикой и флексией. Библиотека грамматики ресурсов GF является стандартной библиотекой для Grammatical Framework. Он охватывает морфологию и базовый синтаксис все большего числа языков, включая африкаанс, амхарский (частичный), арабский (частичный), баскский (частичный), болгарский, каталанский, китайский, чешский (частичный), датский, голландский, английский, Эстонский, финский, французский, немецкий, древний греческий (частичный), современный греческий, иврит (фрагменты), хинди, венгерский (частичный), интерлингва, итальянский, японский, корейский (частичный), латынь (частичный), латышский, мальтийский, монгольский , непальский, норвежский букмол, норвежский нюнорск, персидский, польский, пенджабский, румынский, русский, синдхи, словацкий (частично), словенский (частично), сомалийский (частично), испанский, суахили (фрагменты), шведский, тайский, турецкий (фрагменты) ) и урду. Кроме того, 14 языков имеют лексику WordNet и крупномасштабные расширения синтаксического анализа. [3]

Полную документацию по API библиотеки можно найти на странице RGL Synopsis . В документе о статусе RGL указаны языки, доступные в настоящее время в грамматической библиотеке ресурсов GF, включая их зрелость.

Использование GF

[ редактировать ]

GF был впервые создан в 1998 году в европейском исследовательском центре Xerox в Гренобле в рамках проекта Multilingual Document Authoring. В Xerox он использовался для прототипов, включая ресторанный разговорник, систему запросов к базе данных, формализацию инструкций системы сигнализации с переводом на 5 языков и авторскую систему описаний медицинских препаратов.

Более поздние проекты с использованием GF и участием третьих сторон включают:

  • REMU : Надежная многоязычная цифровая связь, проект, финансируемый Шведским исследовательским советом в период с 2013 по 2017 год.
  • MOLTO : многоязычный онлайн-перевод, проект ЕС, работавший в 2010–2013 годах.
  • SALDO : шведский морфологический словарь, основанный на правилах, разработанных для GF и функциональной морфологии.
  • WebAlt : многоязычная генерация математических упражнений (коммерческий проект)
  • TALK: многоязычные и мультимодальные системы разговорного диалога

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

В коммерческом плане GF использовался рядом компаний в таких областях, как электронная коммерция, здравоохранение и перевод формальных спецификаций на естественный язык. [4]

Сообщество

[ редактировать ]

Список рассылки для разработчиков

[ редактировать ]

Существует активная группа для разработчиков и пользователей GF, расположенная по адресу https://groups.google.com/group/gf-dev.

Летние школы

[ редактировать ]

2020 – GF как ресурс по вычислительному праву (Сингапур)

[ редактировать ]

Седьмая летняя школа GF , отложенная из-за COVID-19, пройдет в Сингапуре. Летняя школа , организованная совместно с Центром вычислительного права Сингапурского университета менеджмента , будет уделять особое внимание вычислительному праву.

2018 г. – Шестая летняя школа GF (Стелленбош, ЮАР)

[ редактировать ]

Шестая летняя школа ГФ стала первой, проведенной за пределами Европы. Основными темами летней школы были ресурсы африканского языка и растущее использование GF в коммерческих приложениях.

2017 – GF in a Full Stack of Language Technology (Рига, Латвия)

[ редактировать ]

Пятая летняя школа ГФ прошла в Риге, Латвия. В этой летней школе приняли участие несколько представителей стартапов, которые представили примеры промышленного использования GF.

2016 – Летняя школа по машинному переводу на основе правил (Аликанте, Испания)

[ редактировать ]

GF была одной из четырех платформ, представленных на Летней школе по машинному переводу на основе правил , наряду с Apertium, Matxin и TectoMT.

2015 – Четвертая летняя школа GF (Гозо, Мальта)

[ редактировать ]

Четвертая летняя школа GF прошла на острове Гозо на Мальте. Как и предыдущее издание 2013 года, эта летняя школа сотрудничала с другими ресурсами, такими как Apertium и FrameNet.

2013 – Расширение грамматических ресурсов (озеро Кимзее, Германия)

[ редактировать ]

Третья летняя школа GF прошла на острове Фрауэнхимзее в Баварии, Германия, по специальной теме «Расширение грамматических ресурсов». Эта летняя школа была сосредоточена на расширении существующих грамматик ресурсов с конечной целью работы с любым текстом на поддерживаемых языках. Расширение лексики является очевидной частью этой работы, но интерес представляли и новые грамматические конструкции. Особый интерес был к переносу ресурсов из других подходов с открытым исходным кодом, таких как WordNets и Apertium, и, в свою очередь, к обеспечению возможности повторного использования ресурсов GF в других подходах.

2011 – «Границы многоязычных технологий» (Барселона, Испания)

[ редактировать ]

Вторая Летняя школа GF под названием « Границы многоязычных технологий» прошла в 2011 году в Барселоне, Испания. Его спонсировали CLT , Центр языковых технологий Университета Гетеборга, и UPC , Политехнический университет Каталонии. Школа занималась новыми языками, а также способствовала текущей работе над теми языками, которые уже находятся в стадии разработки. Особенно поощрялось отсутствие языков ЕС.

Школа началась с двухдневного курса GF, предназначенного для тех, кто хочет получить представление о GF или обзор текущей работы.

Все результаты летней школы доступны в виде программного обеспечения с открытым исходным кодом, выпущенного по лицензии LGPL.

2009 – Летняя школа GF (Гетеборг, Швеция)

[ редактировать ]
Групповое фото с летней школы GF 2009 в Гетеборге, Швеция.

Первая летняя школа GF прошла в 2009 году в Гетеборге, Швеция. Это была совместная попытка создать грамматики новых языков в Grammatical Framework, GF. Эти грамматики были добавлены в Библиотеку грамматик ресурсов, которая ранее содержала 12 языков. Около 10 новых языков уже находятся в стадии разработки, и цель Школы - освоить 23 новых языка. Все результаты Летней школы были доступны в виде программного обеспечения с открытым исходным кодом, выпущенного по лицензии LGPL.

Летняя школа была организована группой языковых технологий факультета компьютерных наук и инженерии . Группа является частью Центра языковых технологий , основного исследовательского направления Университета Гетеборга .

Код, созданный участниками школы, доступен в репозитории GF darcs, подкаталог вклад/летняя школа .

  1. ^ Ранта, Аарне (2011). Грамматическая основа: программирование с использованием многоязычных грамматик . Публикации CSLI, Центр изучения языка и информации. стр. 8–9 . ISBN  978-1-57586-627-7 .
  2. ^ Учебное пособие LREC 2010.
  3. ^ «WordNet в GF» . Гитхаб . 16 октября 2021 г.
  4. ^ "Клиенты" .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: eb055856b6c9d95e77e4c339b8932a1f__1694288400
URL1:https://arc.ask3.ru/arc/aa/eb/1f/eb055856b6c9d95e77e4c339b8932a1f.html
Заголовок, (Title) документа по адресу, URL1:
Grammatical Framework (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)