Справочник по построению дерева — документация Lark
Lark автоматически строит дерево на основе структуры грамматики, где каждое совпадающее правило становится ветвью (узлом) в дереве, а его дочерние элементы являются его совпадениями в порядке совпадения.
Например, узел правила : child1 child2
создаст узел дерева с двумя дочерними элементами. Если он соответствует как часть другого правила (т. е. если он не является корнем), узел дерева нового правила станет его родителем.
Использование item+
или item*
приведет к созданию списка элементов, эквивалентного записи item item item ..
.
Используете элемент ?
вернет элемент, если он совпал, или ничего.
Если may_placeholders=True
(по умолчанию), то использование [item]
вернет элемент, если он совпал, или значение None
, если нет.
Если may_placeholders=False
, то []
ведет себя как
.
Клеммы
Терминалы всегда являются значениями в дереве, а не ветвями.
Lark по умолчанию отфильтровывает определенные типы терминалов, учитывая их пунктуацию:
Терминалы, которые не отображаются в дереве:
Терминалы, которые будут отображаться в дереве:
Примечание. Терминалы, состоящие из литералов и других терминалов, всегда включают полное совпадение без фильтрации какой-либо части.
Пример:
начало: PNAME pname ПИМЯ: "("ИМЯ")" pname: "("ИМЯ")" ИМЯ: /\w+/ %игнорировать /\s+/
Lark проанализирует «(Hello) (World)» как:
начало (Привет) псевдоним Мир
Правила с префиксом !
сохранит все свои литералы в любом случае.
Пример:
выражение: "(" выражение ")" | ИМЯ+ ИМЯ: /\w+/ %игнорировать " "
Lark разберет «((hello world))» как:
выражение выражение выражение "привет" "мир"
Скобки не отображаются в дереве по умолчанию. Слова появляются, потому что им соответствует именованный терминал.
Формирование дерева
Пользователи могут изменить автоматическое построение дерева, используя набор грамматических функций.
Пример:
начало: "("_приветствовать")" _greet: /\w+/ /\w+/
Lark разберет «(hello world)» как:
начало "привет" "мир"
Пример:
начало: приветствие приветствие ?приветствовать: "(" /\w+/ ")" | /\ш+/ /\ш+/
Lark будет анализировать «hello world (planet)» как:
начало приветствовать "привет" "мир" "планета"
!выражение: "("выражение ")" | ИМЯ+ ИМЯ: /\w+/ %игнорировать " "
Будет разбирать «((hello world))» как:
выражение ( выражение ( выражение привет мир ) )
Использование ! Префикс
обычно является «запахом кода» и может указывать на недостаток в вашем дизайне грамматики.
Пример:
начало: приветствие приветствие приветствовать: "привет" | "мир" -> планета
Lark будет анализировать «hello world» как:
начало приветствовать планета
Улучшение статистического синтаксического анализатора путем распознавания китайского числа и префикса квантификатора в машинном переводе
Главная Прикладная механика и материалы Прикладная механика и материалы Vols. 427-429 Улучшение статистического анализатора путем признания…
Предварительный просмотр статьи
Резюме:
Изучая префикс числа и квантификатора китайского языка (CNQP) как особый языковой феномен в машинном переводе, в этой статье представлен метод распознавания CNQP, который основан на правилах и не зависит от сегментации слов. В этом методе составы CNQP выражались с использованием формы Бэкуса-Наура (BNF), и в качестве активной информации использовалось числовое значение, а в качестве границ CNQP использовались квантификаторы.
Доступ через ваше учреждение
Вас также могут заинтересовать эти электронные книги
Предварительный просмотр* — Автор, ответственный за переписку
Рекомендации
[1]
П.
Академия Google
[2] Р. Леви и К.Д. Мэннинг: Что сложнее анализировать на китайском или на китайском Treebank? в: Учеб. ACL ’03, 2003, стр. 439.-446.
DOI: 10.3115/1075096.1075152
Академия Google
[3]
К. Мартин: Грамматика функциональной унификации: формализм для машинного перевода, в: Proc.
Академия Google
[4] П. Браун, Дж. Кок, С. Делла Пьетра, В. Делла Пьетра, Ф. Елинек, Р. Мерсер и П. Руссин: статистический подход к языковому переводу, в: Proc. Колинг ’88, 1988, стр. 71-76.
DOI: 10.3115/991635.991651
Академия Google
[5]
К. Дэвид: Иерархическая модель статистического машинного перевода, основанная на фразах, в: Proc. ACL ’05, (2005).
Академия Google
[6] В. Чао, К. Майкл и К. Филипп: китайское синтаксическое переупорядочение для статистического машинного перевода, в: Proc. Совместная конференция 2007 г. по эмпирическим методам обработки естественного языка и компьютерного изучения естественного языка, 2007 г., стр. 737-745.
Академия Google
[7]
X. Fei, M. Michael: Улучшение статистической системы машинного перевода с автоматически изученными шаблонами перезаписи, в: Proc. 20-я международная конференция по компьютерной лингвистике, 2004 г., стр. 508-516.
DOI: 10.3115/1220355.1220428
Академия Google
[8] Ю.К. Чжан, З. Ричард, Н. Герман: Переупорядочение предложений исходного языка на уровне фрагментов с автоматически изученными правилами статистического машинного перевода, в: Proc. NAACL-HLT 2007/AMTA Workshop on Syntax and Structure in Statistical Translation, 2007, стр. 1-8.
DOI: 10.3115/1626281.1626282
Академия Google
[9]
Ю. Лю, К. Лю, С. Лин: Шаблон выравнивания дерева в строку для статистического машинного перевода, в: Proc. 21-я Международная конференция по компьютерной лингвистике и 44-е ежегодное собрание Ассоциации компьютерной лингвистики. Ассоциация компьютерной лингвистики, 2006 г., стр. 609.-616.
DOI: 10.3115/1220175.1220252
Академия Google
[10] Д. Кляйн и К. Д. Мэннинг: Быстрый точный вывод с факторизованной моделью для синтаксического анализа естественного языка, в: Достижения в системах обработки нейронной информации 15 (2002), 2003, стр. 3-10.
Академия Google
[11]
X.