Синтаксический анализ (компьютерная лингвистика)
Синтаксический анализ — это автоматический анализ синтаксической структуры естественного языка, особенно синтаксических отношений (в грамматике зависимостей ) и маркировки диапазонов составляющих (в грамматике округов ). [1] Это мотивировано проблемой структурной двусмысленности в естественном языке: предложению может быть назначено несколько грамматических анализов, поэтому необходимы какие-то знания, выходящие за рамки правил вычислительной грамматики, чтобы определить, какой синтаксический анализ предназначен. Синтаксический анализ является одной из важных задач компьютерной лингвистики и обработки естественного языка и является предметом исследований с середины 20-го века, с появлением компьютеров.
Различные теории грамматики предлагают разные формализмы для описания синтаксической структуры предложений. Для вычислительных целей эти формализмы можно сгруппировать в грамматики округов и грамматики зависимостей . Парсеры каждого класса требуют использования разных типов алгоритмов, и подходы к этим двум проблемам приняли разные формы. Создание аннотированных человеком древовидных банков с использованием различных формализмов (например, универсальных зависимостей ) происходило параллельно с разработкой новых алгоритмов и методов синтаксического анализа.
Маркировка частей речи (которая устраняет некоторую семантическую двусмысленность) является связанной с ней проблемой и часто является предпосылкой или подзадачой синтаксического анализа. Синтаксический анализ может использоваться для извлечения информации (например, анализ событий, разметка семантических ролей, разметка объектов) и в дальнейшем может использоваться для извлечения формальных семантических представлений .
Анализ избирательного округа [ править ]
Синтаксический анализ округа включает в себя синтаксический анализ в соответствии с формализмами грамматики округа, такими как минимализм или формализм Penn Treebank . Это, по крайней мере, означает указание того, какие промежутки являются составляющими (например , [Человек] здесь. ) и какого типа это составляющая (например, [Человек] — именное словосочетание) на основе контекстно-свободной грамматики. (CFG), который кодирует правила формирования и слияния компонентов. [2]
Алгоритмы обычно требуют преобразования CFG в нормальную форму Хомского (с двумя дочерними элементами на каждую составляющую), что можно сделать без потери какой-либо информации о дереве или снижения выразительности с использованием алгоритма, впервые описанного Хопкрофтом и Ульманом в 1979 году. [3]
ККИ [ править ]
Самым популярным алгоритмом анализа округов является алгоритм Кока – Касами – Янгера (CKY). [4] [5] это алгоритм динамического программирования, который строит синтаксический анализ в худшем случае время, по приговору слова и — размер CFG, заданный в нормальной форме Хомского .
Учитывая проблему двусмысленности (например, двусмысленность присоединения предлогов в английском языке), приводящую к множеству приемлемых анализов, необходимо иметь возможность оценить вероятность синтаксических анализов, чтобы выбрать наиболее вероятный. Один из способов сделать это — использовать вероятностную бесконтекстную грамматику (PCFG), которая имеет вероятность каждого правила округа, и модифицировать CKY, чтобы максимизировать вероятности при синтаксическом анализе снизу вверх. [6] [7] [8]
Дальнейшей модификацией является лексикализованный PCFG, который присваивает заголовок каждому компоненту и кодирует правило для каждой лексемы в этом слоте заголовка. Таким образом, если PCFG может иметь правило «NP → DT NN» (именная группа является определителем и существительным), то в то время как лексикализованный PCFG будет иметь такие правила, как «NP(собака) → DT NN(собака)» или «NP (человек)» и т. д. На практике это приводит к некоторому улучшению производительности. [9] [10]
В более поздних работах нейронная оценка вероятностей промежутков (которая может учитывать контекст в отличие от (P)CFG) для передачи в CKY, например, с использованием рекуррентной нейронной сети или преобразователя. [11] поверх вложений слов .
В 2022 году Никита Китаев и др. [12] представил инкрементный синтаксический анализатор, который сначала изучает дискретные метки (из фиксированного словаря) для каждого входного токена с учетом только левого контекста, которые затем являются единственными входными данными для анализатора диаграмм CKY с вероятностями, рассчитанными с использованием изученного средства оценки нейронного диапазона. Этот подход не только лингвистически мотивирован, но и конкурирует с предыдущими подходами к анализу избирательного округа. Их работа получила награду за лучшую бумагу на ACL 2022 .
На основе перехода [ править ]
После успеха синтаксический анализ грамматик зависимостей на основе переходов, началась работа по адаптации подхода к синтаксическому анализу групп. Первую подобную работу провели Кенджи Сагае и Алон Лави в 2005 году, в которых для жадного принятия решений о переходе использовался классификатор на основе признаков. [13] За этим последовала работа Юэ Чжана и Стивена Кларка в 2009 году, которые добавили в декодер поиск луча, чтобы сделать более глобально оптимальный анализ. [14] Первым парсером этого семейства, превзошедшим по производительности парсер на основе диаграмм, был разработан Мухуа Чжу и др. в 2013 году, который решил проблему различий в длине различных последовательностей переходов из-за правил унарного округа (несуществующая проблема для анализа зависимостей) путем добавления операции заполнения. [15]
Обратите внимание, что синтаксический анализ на основе переходов может быть чисто жадным (т. е. выбирать лучший вариант на каждом временном этапе построения дерева, что приводит к потенциально неоптимальным или плохо сформированным деревьям) или использовать лучевой поиск для повышения производительности, не жертвуя при этом эффективностью.
Последовательность к последовательности [ править ]
Другой подход к анализу избирательного округа с использованием моделей нейронных последовательностей был разработан Ориолом Виньялсом и соавт. в 2015 году. [16] В этом подходе синтаксический анализ составляющих моделируется как машинный перевод : задача состоит в преобразовании последовательности в последовательность из предложения в синтаксический анализ избирательного округа, в исходной статье используется глубокий LSTM с механизмом внимания . Для модели такого типа золотые обучающие деревья должны быть линеаризованы, но при преобразовании не теряется никакой информации. Это происходит в с декодером поиска луча шириной 10 (но они не обнаружили особой выгоды от большего размера луча и даже ограничение его жадным декодированием работает хорошо) и достигает конкурентоспособной производительности с традиционными алгоритмами контекстно-свободного анализа, такими как CKY.
Анализ зависимостей [ править ]
Анализ зависимостей — это анализ в соответствии с формализмом грамматики зависимостей, таким как Universal Dependances (который также является проектом, создающим многоязычные древовидные банки зависимостей). Это означает присвоение головы (или нескольких голов в некоторых формализмах, таких как расширенные зависимости, например, в случае координации ) каждому токену и соответствующему отношению зависимости для каждого ребра, в конечном итоге создавая дерево или граф по всему предложению. [17]
В целом существует три современные парадигмы моделирования анализа зависимостей: на основе переходов, на основе грамматики и на основе графов. [18]
На основе перехода [ править ]
Многие современные подходы к анализу дерева зависимостей используют анализ на основе переходов (базовую форму этого иногда называют дуговым стандартом ), как это сформулировано Йоакимом Нивре в 2003 году: [19] который расширяет синтаксический анализ сдвига-сокращения , сохраняя текущий стек токенов и выбирая из трех операций для следующего встреченного токена:
- LeftArc (текущий токен является дочерним элементом вершины стека, не добавляется в стек)
- RightArc (текущий токен является родителем вершины стека, заменяет вершину)
- Shift (добавить текущий токен в стек)
Алгоритм можно сформулировать как сравнение двух верхних токенов стека (после добавления следующего токена в стек) или верхнего токена в стеке и следующего токена в предложении.
Данные обучения для такого алгоритма создаются с помощью оракула , который конструирует последовательность переходов из золотых деревьев, которые затем передаются в классификатор. Классификатор узнает, какая из трех операций является оптимальной с учетом текущего состояния стека, буфера и текущего токена. Современные методы используют нейронный классификатор, который обучен встраиванию слов , начиная с работы Данци Чена и Кристофера Мэннинга в 2014 году. [20] В прошлом также были распространены классификаторы на основе признаков, в которых признаки выбирались из тегов части речи, положения предложения, морфологической информации и т. д.
Это жадный алгоритм, поэтому он не гарантирует наилучшего анализа или даже обязательно корректного анализа, но он эффективен. [21] Также не обязательно, что конкретное дерево будет иметь только одну последовательность допустимых переходов, которые могут его достичь, поэтому динамический оракул (который может допускать множественный выбор операций) повысит производительность. [22]
Модификацией этого метода является анализ дуги , который добавляет еще одну операцию: Уменьшить (удалить верхний жетон в стеке). Практически это приводит к более раннему образованию дуги.
Все они пока поддерживают только проективные деревья, в которых ребра не пересекаются, учитывая порядок токенов в предложении. Для непроективных деревьев Nivre в 2009 году модифицировал анализ на основе переходов, основанный на стандарте дуги, добавив операцию Обмен (поменяйте местами два верхних жетона в стеке, предполагая формулировку, при которой следующий токен всегда добавляется в стек первым). Это увеличивает время выполнения до в худшем случае, но практически все еще почти линейный. [23]
Основанный на грамматике [ править ]
Подход динамического программирования на основе диаграмм к анализу проективных зависимостей был предложен Майклом Коллинзом. [24] в 1996 году и дополнительно оптимизирован Джейсоном Эйснером. [25] в том же году. [26] Это адаптация CKY (ранее упомянутого для анализа округов) к зависимостям с заголовками, преимуществом которого является то, что единственным отличием от анализа округов является то, что каждый компонент возглавляется одним из своих узлов-потомков. Таким образом, можно просто указать, какой дочерний элемент обеспечивает заголовок для каждого правила округа в грамматике (например, NP возглавляет его дочерний элемент N), чтобы перейти от анализа CKY округа к анализу CKY зависимостей.
Первоначальная адаптация Макдональдса имела продолжительность , а оптимизация динамического программирования Эйснера сократила время выполнения до . В своей статье Эйснер предложил три различных метода оценки вероятностей промежутков.
На основе графика [ править ]
Исчерпывающий поиск возможного ребра в дереве зависимостей с обратным отслеживанием в случае создания неправильно сформированного дерева дают базовую линию среда выполнения для анализа зависимостей на основе графов. Этот подход был впервые официально описан Майклом А. Ковингтоном в 2001 году, но он утверждал, что это «алгоритм, который в той или иной форме известен с 1960-х годов». [27]
Задачу синтаксического анализа также можно смоделировать как поиск охватывающей древовидность с максимальной вероятностью по графу всех возможных ребер зависимостей, а затем выбор меток зависимостей для найденных ребер в дереве. Учитывая это, мы можем использовать расширение алгоритма Чу-Лю/Эдмондса с помощью средства оценки ребер и средства оценки меток. Этот алгоритм был впервые описан Райаном Макдональдом , Фернандо Перейрой , Кирилом Рыбаровым и Яном Хаичем в 2005 году. [28] Он может обрабатывать непроективные деревья в отличие от стандартного анализатора дуговых переходов и CKY. Как и раньше, системы оценки могут быть нейронными (обученными на встраивании слов) или основанными на признаках. Это происходит в с расширением алгоритма Тарьяном. [29]
Оценка [ править ]
Производительность синтаксических анализаторов измеряется с использованием стандартных показателей оценки. Подходы к анализу как групп, так и зависимостей могут быть оценены по соотношению точных совпадений (процент предложений, которые были полностью проанализированы), а также точность , отзыв и показатель F1, рассчитанные на основе правильных назначений групп или зависимостей в синтаксическом анализе относительно этого числа. при анализе ссылок и/или гипотез. Последние также известны как метрики PARSEVAL. [30]
Анализ зависимостей также можно оценить с помощью оценки привязанности . Оценка немаркированного прикрепления (UAS) — это процент токенов с правильно назначенными заголовками, а оценка помеченного прикрепления (LAS) — это процент токенов с правильно назначенными заголовками и метками отношений зависимости. [31]
Преобразование между синтаксическими анализами [ править ]
Учитывая, что большая часть работы по синтаксическому анализу английского языка зависела от Penn Treebank , который использовал формализм округов, во многих работах по анализу зависимостей были разработаны способы детерминированного преобразования формализма Пенна в синтаксис зависимостей, чтобы использовать его в качестве обучающих данных. Одним из основных алгоритмов преобразования был Penn2Malt, который переосмыслил предыдущую работу над этой проблемой. [32]
Работа в направлении преобразования зависимостей в группу участников выигрывает от более быстрого выполнения алгоритмов анализа зависимостей. Один из подходов заключается в использовании ограниченного синтаксического анализа CKY, игнорируя диапазоны, которые явно нарушают структуру анализа зависимостей, и, таким образом, сокращая время выполнения до . [33] Другой подход состоит в том, чтобы обучить классификатор находить порядок для всех зависимых элементов каждого токена, в результате чего получается структура, изоморфная анализу округа. [34]
Ссылки [ править ]
- ^ Юрафски и Мартин 2021 .
- ^ Юрафски и Мартин 2021 , глава 13.
- ^ Ланге, Мартин; Лейсс, Ганс (2009). «В CNF или не в CNF? Эффективная, но презентабельная версия алгоритма CYK» (PDF) . Информатика Дидактика . 8 .
- ^ Младший, Дэниел Х. (1967). «Распознавание и синтаксический анализ контекстно-свободных языков за время n 3 « » Информация и контроль . 10 (2): 189–208. doi : 10.1016/S0019-9958(67)80007-X .
- ^ Касами, Т. (1966). «Эффективный алгоритм распознавания и синтаксического анализа для контекстно-свободных языков» . Бедфорд, Массачусетс: Кембриджская исследовательская лаборатория ВВС.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Цветков Юлия; Титов Иван; Берг-Киркпатрик, Тейлор; Кляйн, Дэн (2018). «Алгоритмы НЛП: анализ I» (PDF) . Алгоритмы НЛП . Университет Карнеги-Меллон . Проверено 29 сентября 2021 г.
- ^ Саломаа, Арто (1969). «Вероятностные и взвешенные грамматики» . Информация и контроль . 15 (6): 529–544. дои : 10.1016/S0019-9958(69)90554-3 .
- ^ Бут, Тейлор Л. (1969). Вероятностное представление формальных языков . 10-й ежегодный симпозиум по теории коммутации и автоматов.
- ^ Чен, Даньци; Нарасимхан, Картик (2019). «Анализ избирательного округа» (PDF) . COS 484: Обработка естественного языка .
- ^ Коллинз, Майкл (2003). «Статистические модели, управляемые головой, для анализа естественного языка» . Компьютерная лингвистика . 29 (4): 589–637. дои : 10.1162/089120103322753356 . S2CID 7901127 .
- ^ Китаев, Никита; Кляйн, Дэн (2018). Анализ избирательного округа с помощью самообслуживающегося кодировщика . Материалы 56-го ежегодного собрания Ассоциации компьютерной лингвистики. стр. 2676–2686.
- ^ Китаев, Никита; Лу, Томас; Кляйн, Дэн (2022). Изучил дополнительные представления для синтаксического анализа . Материалы 60-го ежегодного собрания Ассоциации компьютерной лингвистики. стр. 3086–3095.
- ^ Сагаэ, Кенджи; Лави, Алон (2005). Анализатор на основе классификатора с линейной сложностью во время выполнения . Материалы девятого международного семинара по технологиям синтаксического анализа. стр. 125–132.
- ^ Чжан, Юэ; Кларк, Стивен (2009). Анализ китайского дерева на основе переходов с использованием глобальной дискриминационной модели . Материалы 11-й Международной конференции по технологиям синтаксического анализа (IWPT'09). стр. 162–171.
- ^ Чжу, Мухуа; Чжан, Юэ; Чен, Вэньлян; Чжан, Мин; Чжу, Цзинбо (2013). Быстрый и точный анализ составляющих сдвига-сокращения . Материалы 51-го ежегодного собрания Ассоциации компьютерной лингвистики. стр. 434–443.
- ^ Виньялс, Ориол; Кайзер, Лукаш; Ку, Терри; Петров, славянин; Суцкевер, Илья; Хинтон, Джеффри (2015). Грамматика как иностранный язык . Достижения в области нейронных систем обработки информации 28 (NIPS 2015).
- ^ Юрафски и Мартин, 2021 , глава 14.
- ^ Кюблер, Макдональд и Нивр 2009 .
- ^ Нивре, Иоаким (2003). Эффективный алгоритм анализа проективных зависимостей . Материалы восьмой международной конференции по технологиям синтаксического анализа. стр. 149–160.
- ^ Чен, Даньци; Мэннинг, Кристофер (2014). Быстрый и точный анализатор зависимостей с использованием нейронных сетей . Материалы конференции 2014 года по эмпирическим методам обработки естественного языка (EMNLP). стр. 740–750.
- ^ Стимне, Сара (17 декабря 2014 г.). «Разбор зависимостей на основе перехода» (PDF) . Синтаксический анализ (5ЛН455) . Уппсальский университет . Проверено 22 октября 2021 г.
- ^ Гольдберг, Йоав; Нивре, Иоаким (2012). Динамический оракул для анализа зависимостей Arc-Eager . Труды COLING 2012. С. 959–976.
- ^ Нивре, Иоаким (2009). Анализ непроективных зависимостей за ожидаемое линейное время . Материалы совместной конференции 47-го ежегодного собрания ACL и 4-й международной совместной конференции по обработке естественного языка AFNLP. стр. 351–359.
- ^ Коллинз, Майкл Джон (1996). Новый статистический парсер на основе лексических зависимостей биграмм . 34-е ежегодное собрание Ассоциации компьютерной лингвистики. стр. 184–191.
- ^ Эйснер, Джейсон М. (1996). Три новые вероятностные модели для анализа зависимостей: исследование . ОХЛАЖДЕНИЕ.
- ^ Стимне, Сара (15 декабря 2014 г.). «Алгоритмы Коллинза и Эйснера» (PDF) . Синтаксический анализ (5ЛН455) . Уппсальский университет . Проверено 22 октября 2021 г.
- ^ Ковингтон, Майкл А. (2001). Фундаментальный алгоритм анализа зависимостей . Материалы 39-й ежегодной Юго-восточной конференции ACM. CiteSeerX 10.1.1.136.7335 .
- ^ Макдональд, Райан; Перейра, Фернандо; Рыбаров Кирилл; Гаич, Ян (2005). Анализ непроективных зависимостей с использованием алгоритмов связующего дерева . Материалы конференции по технологиям человеческого языка и конференции по эмпирическим методам обработки естественного языка. стр. 523–530.
- ^ Гольдберг, Йоав (2021). «Анализ зависимостей» (PDF) . Введение в обработку естественного языка . Университет Бар-Илан . Проверено 22 октября 2021 г.
- ^ Блэк, Э.; Эбни, С.; Фликенджер, Д.; Гданец, К.; Гришман, Р.; Харрисон, П.; Хиндл, Д.; Ингрия, Р.; Елинек, Ф.; Клаванс, Дж.; Либерман, М.; Маркус, М.; Рукос, С.; Санторини, Б.; Стшалковски, Т. (1991). Процедура количественного сравнения синтаксического охвата грамматик английского языка . Речь и естественный язык: материалы семинара, состоявшегося в Пасифик-Гроув, Калифорния, 19-22 февраля 1991 г.
- ^ Кюблер, McDonald & Nivre 2009 , глава 6.
- ^ Нивр, Иоаким; Холл, Йохан; Нильссон, Йенс (2006). MaltParser: управляемый данными анализатор-генератор для анализа зависимостей . Материалы Пятой Международной конференции по языковым ресурсам и оценке (LREC'06).
- ^ Конг, Линпэн; Раш, Александр М.; Смит, Ной А. (2015). Преобразование зависимостей во фразовые структуры . Материалы конференции Североамериканского отделения Ассоциации компьютерной лингвистики 2015 года: технологии человеческого языка. стр. 788–798.
- ^ Фернандес-Гонсалес, Даниэль; Мартинс, Андре FT (2015). Парсинг как редукция . Материалы 53-го ежегодного собрания Ассоциации компьютерной лингвистики и 7-й Международной совместной конференции по обработке естественного языка. стр. 1523–1533.
Дальнейшее чтение [ править ]
- Юрафски, Дэн; Мартин, Джеймс Х. (2021). Обработка речи и языка (3-е изд.) . Проверено 22 октября 2021 г.
Анализ зависимостей
- Кюблер, Сандра; Макдональд, Райан; Нивре, Иоаким (2009). Грэм Херст (ред.). Анализ зависимостей . Обобщающие лекции по технологиям человеческого языка. Морган и Клейпул.