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

Запас слов

  • TreeBank - это проанализированный корпус текста, который аннотирует синтаксическую или семантическую структуру предложения. Банки деревьев зависимостей создаются с использованием разных подходов: либо непосредственно благодаря человеческим аннотаторам, либо с использованием автоматических парсеров для обеспечения первого синтаксического анализа, а затем проверки аннотаторами. Общий подход заключается в использовании детерминированного процесса для перевода существующих TreeBanks на новый язык с помощью правил заголовка. Создание высококачественного TreeBank требует затрат времени и средств.
  • CoNLL-U - Computational Natural Language Learning-Universal - это переработанная версия формата CoNLL-X. Предложения из TreeBanks разделяются, и каждое слово или знак препинания помещается в отдельную строку. Каждый из следующих элементов следует за словом, разделенных табуляцией:
    –ID: индекс слова в предложении, начиная с 1
    –FORM: словоформа или пунктуация
    –LEMMA: Лемма или основа словоформы
    –UPOS: универсальная часть речевого тега
    –XPOS: языковая часть речевого тега; не будет использоваться в нашей модели
    –FEATS: неупорядоченный список морфологических признаков, определенных универсальными зависимостями; указывает род и число существительного, время глагола и т. д.
    –HEAD: Заголовок слова, указывает индекс слова, к которому относится текущее слово
    –DEPREL: Универсальный Отношение зависимостей; указывает отношение между двумя словами (подлежащее или объект глагола, определитель существительного и т. д.)
    –DEPS: Зависящая от языка часть речевых тегов; не будет использоваться в нашей модели
    –MISC: Комментарий или другая аннотация

  • Запись - это слово или знак препинания в предложении. Он имеет несколько атрибутов, определенных выше. Предложение обычно представляет собой объединение статей (само слово является атрибутом статьи: ее формой), разделенных пробелом.

Реализация

Реализация Bist-Parser принадлежит авторам своей статьи. Обновление было опубликовано на GitHub Xiezhq Hermann. Вы можете найти это здесь". Он работает на Python 3.x с torch 0.3.1 (с Cuda или без). Он очень полный и может использоваться как есть. Однако, чтобы адаптировать код к вашим данным или обновить его, вы должны пройти через каждый модуль, что может быть сложной задачей. Эта часть статьи проведет вас через все файлы и процессы.

Универсальные зависимости (UD) - это среда открытого сообщества для грамматической аннотации. Он предоставляет корпуса и инструменты, которые очень помогают в разработке анализатора зависимостей.

Из UD вы можете загрузить корпус предложений по вашему выбору (на любом доступном языке, даже на старофранцузском!), Использовать их как есть и начать обучение своего Bist-Parser с помощью команды следующего типа:

python src / parser.py - outdir [каталог результатов] - train training.conll - dev development.conll - epochs 30 - lstmdims 125 - lstmlayers 2 [- extrn extrn.vectors]

python src/parser.py --outdir [results directory] --train training.conll --dev development.conll --epochs 30 --lstmdims 125 --lstmlayers 2 [--extrn extrn.vectors]

Здесь вы можете подробно описать гиперпараметры, уловленные моделью благодаря файлу parser.py.

Как вы, возможно, знаете, когда вы обучаете модель на корпусе, модель смещается в сторону этого корпуса. Вы можете тренировать свою модель на нескольких корпусах, чтобы сделать ее более обобщенной. Несколько техник позволяют увеличить баллы, на примере TreeBank Embedding. Здесь мы только что объединили несколько TreeBanks без какой-либо дальнейшей обработки.

утилиты

  • Создайте класс ConllEntry: каждая запись имеет хорошо известные атрибуты: идентификатор, форму, лемму, универсальный тег PoS, языковой тег PoS, морфологические особенности, заголовок текущего слова, отношение зависимости, улучшенное отношение зависимости и комментарий. Эти атрибуты определены в формате CoNLL-U универсальных зависимостей. Этот формат полезен для модели, чтобы понять, каковы ее входные данные и что она должна предсказывать.
  • Прочтите файл CoNLL-U и преобразуйте каждое предложение в ConllEntry.
  • Словарь счетчика: эта функция создает счетчик атрибутов ConllEntry и позволяет вам узнать, как эти атрибуты распределяются по вашему набору данных. Если вы хотите определить наиболее часто встречающиеся слова или отношения в наборе данных, эта функция может быть полезна.

mstlstm

Этот файл содержит вашу модель. Все ваши гиперпараметры и большая часть вашей работы по мониторингу происходит в этом файле.

Метод forward выполняет итерацию по каждой записи в предложении. Сначала он вычисляет векторы для каждого атрибута записи. С нашей моделью мы получаем несколько векторов, которые описывают слово, тег PoS и подвиги. Затем эти векторы объединяются, чтобы сформировать вектор с большей размерностью для каждой записи. Затем эти записи объединяются вместе, чтобы сформировать вектор предложения.

Во-первых, он преобразует записи в векторы. Здесь основными атрибутами являются встраивание слов, лемм (on) и тегов PoS (pos). Однако мы советуем вам добавить как можно больше функций. Например, у вас может быть доступ к функциям слов, которые указывают на то, является ли существительное в единственном или множественном числе, его род или время… Внедрение этих функций позволяет вашему BiLSTM находить гораздо больше шаблонов.

Затем он передает в BiLSTM эти векторы (для = вперед, назад = назад). В строке 52 оцениваются оценки предложения. Это часть, где создается полный взвешенный орграф. В строке 57 он оценивает оценку отношения. Это интересный трюк в этой модели: вместо того, чтобы оценивать все возможности одновременно (| возможности | = | дуги |. | Метки |, что слишком велико), он сначала предсказывает зависимости, а затем отношения.
О ошибках, lerrs и e мы узнаем позже.

На приведенных ниже иллюстрациях вы можете увидеть эволюцию оценки зависимостей с помощью пакетов. Темно-синяя ячейка соответствует взвешенной дуге. Пример взят из типичного французского предложения: «Les commotions cérébrales sont devenu si courantes dans ce sport qu’on les considère presque Com la повседневная жизнь». Вы можете заметить орфографические ошибки в предложении; это не редкость в TreeBanks.

Примечательными моментами в этом предложении являются слово «devenu», которое является корнем (т. Е. Главное слово), и три четко определенных предложения, разделенных словами «que »И« комм. »

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

Мы узнаем случайную инициализацию на рисунке 1, где все оценки близки к нулю, и мы не видим никакой формы в матрице.
На втором рисунке мы видим, что PoS = вектор-детерминант был учтен, и мы можем различить форму в их столбцах. Изменения по строкам на данный момент менее заметны.
На третьей иллюстрации мы можем четко выделить два предложения, разделенных «que». Дуги четко определены перед ним и немного меньше после него. Знак препинания хорошо связан с корнем «devenu.».
В последнем случае у нас есть четкое представление об основных дугах, модель становится более достоверной, а значения оценок более распространены.

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

Прогнозируемый тип отношения выделен желтым цветом, а наиболее неправильный - красным.

После некоторой тренировки прогноз становится все более уверенным.

Основной метод модели - поезд. Сначала он перемешивает предложения, чтобы обучить модель каждый раз в разном порядке. Затем для каждого предложения вызывается метод forward. Это обновит веса, вернет оценку e и обновит два списка errs и lerrs. Напомним, что e подсчитывает каждый токен, для которого предсказанная голова отличается от золотой головы (ссылка из корпуса). errs вычисляет потери при прогнозировании дуг, а lerrs вычисляет потери при прогнозировании меток. Затем ошибки и lerrs суммируются для получения потерь при обратном распространении: eerrs.

Улучшения и некоторые результаты

Чтобы сделать модель еще более эффективной, вы должны попытаться добавить выпадение слова в качестве гиперпараметра и попробовать различные значения. Мы пробовали значения 0, 0,25, 0,33, 0,5, 0,9 и 1, и лучшим из них было 0,9. Это заставляет модель узнавать гораздо больше из других векторов, чем из слов.

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

С такой реализацией мы получили балл LAS 87,70 на сайте French Sequoia (Универсальные зависимости) TreeBank без специального обучения этому корпусу (после преобразования тегов, поскольку наши теги отличаются от тегов UD).

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

Источники для этой статьи:

О Lettria

Lettria, созданная в 2017 году Марианом Щесняком, Виктором де ла Сальмоньером и Шарлем Бордери, является одним из самых продвинутых игроков в области обработки естественного языка (NLP) на франкоязычном рынке. Команда разработала уникальную технологию для достижения более высокого уровня точности и исправления на французском языке, чем модели, созданные англоговорящими актерами. Lettria стремится максимально приблизить обработку французского языка к функционированию человека, создавая API-интерфейсы на основе французской семантики, а не ключевых слов. Команда Lettria сочетает свои научные и технические навыки с лингвистическим профилем, чтобы как можно точнее разбираться в особенностях французского языка. Они стремятся сделать использование технологий НЛП доступным, предлагая высокопроизводительные проприетарные библиотеки, высококачественный образовательный контент и демонстрируя преимущества использования 100% французской модели во всех сферах деятельности.

Статья написана Come COTHENET