Разбор зависимостей в НЛП [объяснено с примерами]

Опубликовано: 2021-03-10

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

НЛП требует глубокого понимания различных терминов и концепций, чтобы ощутимо применять их к сценариям реального мира. Некоторые из этих основных концепций включают тегирование частей речи (POS), статистическое моделирование языка, синтаксический, семантический анализ и анализ тональности, нормализацию, токенизацию, анализ зависимостей и анализ групп, среди прочего.

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

Оглавление

Анализ зависимостей

Анализ зависимостей (DP) относится к изучению зависимостей между словами предложения для анализа его грамматической структуры. Исходя из этого, предложение разбивается на несколько составляющих. Механизм основан на концепции, что между каждой языковой единицей предложения существует прямая связь. Эти связи называются зависимостями.

Возьмем, к примеру, предложение « Я предпочитаю утренний рейс через Денвер».

Диаграмма ниже объясняет структуру зависимости предложения:

Источник

Отношения между каждой языковой единицей или словом предложения обозначаются с помощью направленных дуг в типизированной структуре зависимостей. Как показано на диаграмме, корень дерева «предпочитаю» образует начало приведенного выше предложения.

Связь между любыми двумя словами помечается тегом зависимости. Например, слово «рейс» изменяет значение существительного «Денвер». Таким образом, вы можете заметить зависимость от рейса -> Денвер, где рейс является головным, а Денвер — дочерним или зависимым. Он обозначается nmod , который представляет номинальный модификатор.

Это формирует случай зависимости между каждыми двумя словами, где одно действует как головное, а другое — зависимое. В настоящее время таксономия Universal Dependency V2 состоит из 37 универсальных синтаксических отношений, как указано в таблице ниже:

Тег зависимости Описание
acl clausal модификатор существительного (придаточное предложение)
acl:relcl модификатор относительного предложения
advcl модификатор придаточного предложения
адвмод наречный модификатор
advmod:emph подчеркивающее слово, усилитель
адвмод: лмод местный наречный модификатор
амод модификатор прилагательного
аппос аппозиционный модификатор
вспомогательный вспомогательный
вспомогательный: проход пассивный вспомогательный
кейс маркировка корпуса
копия координирующее соединение
копия: предварительное согласование предконъюнктный
комп клаузальное дополнение
clf классификатор
сложный сложный
состав: лвк легкая конструкция глагола
соединение: прт частица фразового глагола
соединение: редуп редуплицированные соединения
соединение: СВК серийные глагольные соединения
conj соединение
полицейский связка
csubj клаузальный субъект
csubj: пройти клаузальный пассивный подлежащий
деп неуказанная зависимость
дет определитель
Дет:нумгов квантор местоимения, определяющий падеж существительного
Дет:нуммод квантор местоимения, согласующийся в падеже с существительным
дет: возможно притяжательный определитель
дискурс элемент дискурса
вывихнутый смещенные элементы
объяснить ругательство
экспл:имперс безличное ругательство
объясните: пройти возвратное местоимение, используемое в возвратном пассиве
экспл:пв возвратная клитика с возвратным глаголом по своей сути
фиксированный фиксированное многословное выражение
плоский плоское многословное выражение
квартира: иностранная иностранные слова
квартира:имя имена
подходит к подходит к
iobj косвенное дополнение
список список
отметка маркер
нмод номинальный модификатор
нмод: возможно притяжательный номинальный модификатор
нмод: тмод временной модификатор
nsubj номинальный предмет
nsubj: пройти пассивный номинальный подлежащий
нуммод числовой модификатор
nummod: gov числовой модификатор, регулирующий падеж существительного
объект объект
обл косой номинальный
обл: агент модификатор агента
obl:arg косвенный аргумент
обл: лмод местный модификатор
обл:тмод временной модификатор
сирота сирота
паратаксис паратаксис
точка пунктуация
репарандум переопределенная неграмотность
корень корень
звательный падеж звательный падеж
xcomp открытое клаузальное дополнение

Анализ зависимостей с использованием NLTK

Анализ зависимостей можно выполнить с помощью пакета Natural Language Toolkit (NLTK), который представляет собой набор библиотек и кодов, используемых в статистической обработке естественного языка (NLP) человеческого языка.

Мы можем использовать NLTK для разбора зависимостей одним из следующих способов:

  1. Вероятностный синтаксический анализатор проективных зависимостей . Эти синтаксические анализаторы используют знание человеческого языка, полученное из проанализированных вручную предложений, для прогнозирования новых предложений. Известно, что они допускают ошибки и работают с ограниченным набором обучающих данных.
  2. Стэнфордский парсер : это парсер естественного языка, реализованный на Java. Вам нужен синтаксический анализатор Stanford CoreNLP для выполнения синтаксического анализа зависимостей. Парсер поддерживает несколько языков, включая английский, китайский, немецкий и арабский.

Вот как вы можете использовать парсер:

из nltk.parse.stanford импортировать StanfordDependencyParser

path_jar = 'path_to/stanford-parser-full-2014-08-27/stanford-parser.jar'

path_models_jar = 'path_to/stanford-parser-full-2014-08-27/stanford-parser-3.4.1-models.jar'

dep_parser = StanfordDependencyParser(

path_to_jar = path_jar, path_to_models_jar = path_models_jar

)

result = dep_parser.raw_parse('Я застрелил слона во сне')

зависимость = результат.следующий()

список (зависимость.triples())

Вывод вышеуказанной программы выглядит следующим образом:

[

((у'шот', у'ВБД'), и'нсубъ', (у'я', у'ПРП')),

((у'выстрел', у'ВБД'), у'добж', (у'слон', у'НН')),

((у'слон', у'NN'), у'дет', (у'ань', у'ДТ')),

((у'выстрел', у'ВБД'), у'преп', (у'ин', у'ИН')),

((у'ин', у'ИН'), у'побж', (у'сон', у'НН')),

((ты спишь', ты'NN'), ты можешь, (ты'мой', ты'PRP$'))

]

Анализ избирательного округа

Анализ избирательных округов основан на контекстно-свободных грамматиках. Здесь дерево синтаксического анализа включает предложения, разбитые на подфразы, каждая из которых принадлежит к грамматической категории. Каждая лингвистическая единица или слово в предложении действует как конечный узел, который имеет свой родительский узел и тег части речи.

Например, фразы «кошка» и «коробка под кроватью» — это словосочетания с существительными, тогда как «написать письмо» и «водить машину» — это словосочетания с глаголами.

Давайте рассмотрим пример предложения « Я застрелил слона в пижаме». Вот графическое представление дерева синтаксического анализа избирательного округа:

Источник

Дерево синтаксического анализа слева относится к съемке слона в пижаме, а дерево синтаксического анализа справа указывает на то, что субъект стреляет в слона в пижаме.

Все предложение разбивается на подфазы, пока у нас не останутся конечные слова. VP обозначает глагольную фразу, а NP обозначает именную фразу.

Анализ зависимостей против анализа избирательных округов

Анализ избирательных округов также можно реализовать с помощью синтаксического анализатора Stanford. По сути, он анализирует данное предложение в соответствии с парсером избирательного округа и впоследствии преобразует дерево разбора избирательного округа в дерево зависимостей.

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

Оформить заказ: идеи и темы проекта НЛП

Заключение

Если вы нашли эту статью полезной, вам следует ознакомиться с 6-месячной сертификацией upGrad PG в области машинного обучения и НЛП , которая предлагает индивидуальное наставничество от отраслевых экспертов Flipkart, Gramener и Zee5.

Программа предназначена для инженеров, специалистов по программному обеспечению / ИТ, специалистов по данным и других специалистов, которые хотят закрепиться в науке о данных и машинном обучении. Эта сертификация последипломного образования от IIIT BBangalorethe может похвастаться повышением средней заработной платы на 58% — это все, что вам нужно, чтобы получить передовые должности аналитика данных, специалиста по данным, инженера по машинному обучению и инженера по НЛП в ведущих компаниях. Заблокируйте свое место сегодня всего за рупий. 3034 в месяц!

Какая польза от синтаксического анализа зависимостей в НЛП?

В обработке естественного языка синтаксический анализ зависимостей — это метод, используемый для определения семантических отношений между словами в предложении. Анализаторы зависимостей используются для сопоставления слов в предложении семантическим ролям, тем самым определяя синтаксические отношения между словами. Анализ зависимостей — это хорошо известный подход к синтаксическому анализу текстов на естественном языке на уровне поверхностной структуры. В этом методе синтаксическая структура предложения восстанавливается из линейной последовательности токенов слов путем анализа синтаксических зависимостей между словами и определения синтаксической категории каждого слова.

Каковы приложения синтаксического анализа зависимостей?

Вот список нескольких областей применения, в которых используется синтаксический анализ зависимостей. Одним из основных применений синтаксического анализа зависимостей является маркировка семантических ролей (SRL) и извлечение информации, которые являются компонентами обработки естественного языка. Анализ зависимостей также используется для синтаксического разбиения на фрагменты и анализа групп вне задач НЛП. Анализ зависимостей принципиально отличается от анализа структуры фразы, который сопоставляет слова в предложении с соответствующим маркером фразы или древовидной структурой.

В чем основное различие между синтаксическим разбором и разбором зависимостей?

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