Русский
Русский
English
Статистика
Реклама

Грамматический разбор для естественных языков. Ч.1 Языки описания языков

Исторически первой попыткой формализовать язык и автоматизировать его разбор были регулярные выражения, придуманные С.К. Клейни в 1951. Регулярное выражение составляется из символов языка ("терминалов"), и трёх операций: конкатенация, чередование и замыкание. Для разбора регулярных выражений достаточно ДКА без памяти: разборщик знает, в каком состоянии он находится сейчас, но не помнит ничего о своих прошлых состояниях. Это значит, что языки, допускающие вложенные конструкции например, язык вложенных скобок (n)n и язык самих регулярных выражений невозможно описать регулярными выражениями. Естественные языки тоже допускают конструкции неограниченной вложенности ("Вот два петуха, которые будят того пастуха, который бранится скоровницей строгою, которая доит корову безрогую, лягнувшую старого пса без хвоста, который зашиворот треплет кота, который пугает иловит синицу, которая часто ворует пшеницу, которая втёмном чулане хранится вдоме, который построил Джек."), поэтому для описания естественных языков регулярные выражения недостаточно выразительны.

Более выразительный способ описания языков формальные грамматики предложил Н. Чомски в 1956. Предложения на английском довольно неплохо поддаются такому описанию:

S   NP VPNP  N' | Det N'N'  N | Adj N | N PP | N' CPVP  V | V NP | V PPPP  P NPCP  VnP | C VP | C SVnP  Vn | Adv VnP | VnP Conj VnN   This | rooster | morn | judge | man | maiden | cow |     horn | dog | cat | rat | malt | house | JackV   is | crowed | woke | married | kissed | milked |     tossed | worried | killed | ate | lay | builtVn  shaven | shorn | tattered | torn | forlornAdj  crumpled Adv  allP    in | with Det  theC    thatConj  and

Этой формальной грамматики из пары десятков абстрактных символов ("нетерминалов") и пары десятков правил вывода (не считая лексикона) достаточно, чтобы разобрать вложенные конструкции в том самом предложении про петуха, коровницу, пса и кота:

Для контекстно-свободных грамматик (CFG) когда в левой части каждого правила вывода стоит ровно один нетерминал, как в этом примере существуют эффективные алгоритмы разбора текста; поэтому почти все языки программирования описываются CFG. В отличие от языков программирования, тексты на естественных языках часто допускают несколько возможных разборов например, [that woke the judge]CP могло бы относиться и к mornN' выбор между которыми требует семантического разбора. Однако для естественных языков с более гибким порядком слов, чем в английском, CFG недостаточно: уже для разбора русского стишка понадобились бы и VP V PP, N' N Adj ("бранится скоровницей строгою"), и VP PP V, N' Adj N ("втёмном чулане хранится"); чуть ли не для каждого правила вывода в грамматику понадобилось бы добавить его "зеркальное отражение" и тогда количество возможных разборов текста растёт экспоненциально. Ещё хуже то, что при топикализации листья поддерева, соответствующего нетерминалу, могут идти в тексте не подряд: например, в "Я тебя детям просил помочь, [а не родителям]" члены сложного дополнения [детям помочь]CP разделены сказуемым просилV. В нескольких языках исследователи отмечают голландский и швейцарский немецкий есть не связанные с топикализацией "параллельно-вложенные" конструкции, например:

... das

mer

d'chind

em Hans

es huus

lnd

hlfe

aastriiche

... что

мы

детей

Гансу

дом

просим

помочь

покрасить

"... что мы просим детей помочь Гансу покрасить дом"

Такую цепочку можно наращивать неограниченно, как в стишке про дом Джека; но глаголы во второй части предложения должны идти в том же порядке, в котором идут их дополнения в первой части предложения. Такие явления скрэмблинг при топикализации и "параллельно-вложенные" конструкции в голландском и швейцарском немецком формальные грамматики не в состоянии описать.

Более формально можно доказать, что CFG могут описывать вложенные конструкции в частности, язык вложенных скобок (n)n описывается тривиальной грамматикой S () | (S) но неиерархические зависимости описанию не поддаются: в частности, CFG не может описать язык anbncn или язык дважды повторённых строк ((a|b)+)2.

В 1987 в Осакском университете разработали ещё более выразительный способ описания языков множественные CFG (MCFG); одновременно с этим и независимо от осакцев в Университете Пенсильвании разработали линейные контекстно-свободные системы перезаписи (LCFRS), которые отличаются от MCFG только более простой формой записи. В MCFG/LCFRS нетерминалы становятся многоместными предикатами например, эта LCFRS описывает язык дважды повторённых строк:

S(XY)  P(X,Y)P(a,a)  P(b,b)  P(XY,ZW)  P(X,Z),P(Y,W)

Стрелка влево обозначает дизъюнкт Хорна. В левой части каждого правила вывода описывается составление аргументов нетерминала-предиката из терминалов и переменных; в правой перечисляются предикаты, которым переменные должны удовлетворять. Порядок записи предикатов в правой части не имеет значения. Каждая переменная, использованная в левой части, должна быть ограничена предикатом в правой части; повторное использование одной переменной не допускается. Если в левой части нет переменных, то правая часть может быть пустой это значит, что никаких дополнительных условий, кроме совпадения терминалов, не накладывается. Способ записи LCFRS сильно отличается от принятого для CFG например, грамматику языка дважды повторённых строк можно было бы записать в более прозрачном, хоть на практике и не используемом виде:

S  XY   P  X,YP  a,a | b,b | XY,ZW   P  X,Z  P  Y,W

В отличие от CFG, где каждый узел дерева разбора соответствует подстроке разобранного текста, при разборе MCFG/LCFRS узел дерева разбора может соответствовать нескольким подстрокам, идущим в тексте не подряд: (толщина линии показывает, сколько подстрок нетерминал получает от дочерних узлов)

Практическая польза MCFG/LCFRS в том, что они позволяют описать "разорванный" член предложения (детям, помочь)CP:

VP(X,Y)  NP(X),V(Y)CP(X,Y)  VP(X,Y)VP(X,YZW)  NP(X),V(Z),CP(Y,W)S(XYZ)  NP(X),VP(Y,Z)

Облачные серверы от Маклауд быстрые и безопасные.

Зарегистрируйтесь по ссылке выше и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Источник: habr.com
К списку статей
Опубликовано: 06.06.2021 10:13:43
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Блог компании маклауд

Natural language processing

Mcfg

Категории

Последние комментарии

  • Имя: Билал
    04.12.2024 | 19:28
  • Имя: Murshin
    13.06.2024 | 14:01
    Нейросеть-это мозг вселенной.Если к ней подключиться,то можно получить все знания,накопленные Вселенной,но этому препятствуют аннуннаки.Аннуннаки нас от неё отгородили,установив в головах барьер. Подр Подробнее..
  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2025, personeltest.ru