20
Павел Гращенков [email protected] Институт востоковедения РАН ЭПАМ-Системз

Rule b platf

Embed Size (px)

Citation preview

Page 1: Rule b platf

Павел Гращенков[email protected]

Институт востоковедения РАНЭПАМ-Системз

Page 2: Rule b platf

1. Возможные применения языковых платформ по извлечению данных

2. Наиболее востребованные пользователем задачи

3. Архитектура

4. Устройство отдельных модулей и примеры их работы

5. Возможности, предоставляемые правилами

Page 3: Rule b platf

Извлечение фактов Извлечение специальных сущностей Извлечение именованных сущностей Анализ эмоциональной окрашенности текста Автоматическое реферирование …

Page 4: Rule b platf

Извлечение фактов

(отслеживание событий на рынке, действий конкурентов, политических оппонентов, …)

Анализ эмоциональной окрашенности текста

(анализ мнений пользователей, общественных настроений, …)

Page 5: Rule b platf

Стандартна для систем данного класса Примеры:

LingPipe(http://alias-i.com/lingpipe/index.html)

GATE(http://gate.ac.uk/g8/page/print/2/sale/tao/split.html#splitpa3.html)

Авикомп(http://www.avicomp.ru/ac_ru/index.php3?cs=as-4-1)

i-Teco(http://www.i-teco.ru/ac.html)

Page 6: Rule b platf

Название Функция

Text parser Убирает лишние абзацы и т.д., помещает текст в “хранилище”

Break detector Объединяет цепочки символов в слова, цепочки слов – в предложения

RegExp Обрабатывает даты, электронные адреса, опечатки, сленг,…

Morphology Словарь с морфологическими атрибутами

Gazetteer Списки, классифицирующие слова по некоторым атрибутам

Unknown word Распознает неизвестные слова, основываясь на их морфологии

CAPE Выделяет специальные и именованные сущности

POS tagger Снимает грамматическую омонимию

NE recognizer Специальный модуль для выделения именованных сущностей

Chunker Выделяет простые синтаксические группы

Syntax Строит полное дерево синтаксического разбора

Post syntax Разбивает сложные предложения на простые, уточняет сферу действия отрицания,…

Precise Extraction

Выделяет факты

Page 7: Rule b platf

Название Язык правил, примеры

Text parser Конфигурируется строчкой регулярных выражений

Break detector Регулярные выражения и макросы, пример: $Digit+ ( [\,\.\-] $Digit+ )+

RegExp Регулярные выражения + правила сопоставления + добавление стандартных атрибутов, пример: /(з[ао]ч)о([дт])(ная)/i RSYN $1е$2$3

Morphology палит {PosTag="V;Prs;Ipf;Itr;Sg;Third", SyntType = "Rdat;Riz;Rins;Rva;Racc"}{PosTag="V;Prs;Ipf;Tr;Sg;Third", SyntType = "Rdat;Riz;Rins;Rva;Racc"}

Gazetteer убыточный MSYN {SpeechPart = "A" @match, Sentiment = "-1"}

Unknown word Словари аффиксов, пример: ибельн SYN ибельн { SpeechPart="A" } // лечибельный

CAPE Контекстно-зависимый язык, оперирующий со словами и их атрибутами

POS tagger {Модель, основанная на Байесовском классификаторе}

NE recognizer {Модель, основанная на Байесовском классификаторе}

Chunker Контекстно-зависимый язык, оперирующий со словами и их атрибутами

Syntax Контекстно-свободный язык, оперирующий словами, фразами и атрибутами

Post syntax Алгоритмический язык, синтаксис близок к языкам программирования

Precise Extraction

~Язык логики предикатов

Page 8: Rule b platf

Особенности функционирования модулей

Каждый модуль работает со своим типом правил Правила не являются частью программного кода, а

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

повторятся: Break detector работает как минимум дважды:

проставляет границы слов и предложений CAPE и Chunker также представляют собой один

формализм и отличаются порядком следования и целевыми конструкциями

Page 9: Rule b platf

Функции:

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

В основном используется для:

Выделения именованных сущностей Предварительного синтаксического анализа (shallow /

robust parsing)

Page 10: Rule b platf

(аналогичен формализму JAPE)

Возможности: Обрабатывает объекты разных типов: слова, идиомы,

синтаксические группы Оперирует с регулярными выражениями Учитывает информацию о грамматических,

семантических и других атрибутах объектов Проверяет тождественность грамматических признаков

на объектах В случае создания новой синтаксической единицы

устанавливает ее вершину и зависимые, определяет тип связи между ними

Page 11: Rule b platf

Пример правила:

Rule: Poss_Adj_NP( ({SpeechPart == "Pron", Type == "PronPoss"}):p ({SpeechPart == "A", Case =^ :p.Case, Number =^ :p.Number, Gender

=^ :p.Gender})? ({Phrase: "NP", Case =^ :p. Case, Number =^ :p.Number, Gender =^ :p.

Gender}):head

):NP :NP.Phrase ={^Head =^ :head, Category = “NP"}

Правило ищет цепочку “посессивное местоимение + прилагательное (опционально) + именная группа”, которая имеет одинаковые (такие же, как у посессивного местоимения) признаки падежа, числа и рода и объединяет ее в синтаксическую группу с вершиной, заимствующейся из именной группы

пример – твоя новая машина из Японии

Page 12: Rule b platf

Пример правила:

Rule: NePonimaju( {Phrase: "VP", Head == {Word: NormalForm == "ПОНИМАТЬ"},

Negation==True}):neg :neg.Phrase ={Sentiment = "-1”, Negation = False}

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

пример – не совсем понимаю

Page 13: Rule b platf

Функции:

Получает на вход результаты работы Chunker’a и других модулей – группы, слова, идиомы

Используется для:

Построения полного дерева синтаксического разбора (совмещенный формализм составляющих и зависимостей)

Page 14: Rule b platf

(текущий парсер построен на GLR* алгоритме)

(ранее использовался Link Grammar и др.)

Возможности: Рекурсивно применяет имеющиеся правила к входной

цепочке Выбирает наиболее полный и приоритетный разбор Проверяет имеющиеся у входных элементов атрибуты Использует временные (внутренние для модуля

синтаксиса) флаги Приоритезирует правила для (не)согласующихся единиц …

Page 15: Rule b platf

Пример правила:CP (control=$2, 2.Semantic, priority=100), relation(2, 1, Type=“Subject”) NP +VP : (1, {Phrase: !PP, Case == "Nom"}) , (2, {Phrase: ! INF}) , raise-priority(1, {Phrase:}, 20) , agree-priority(1,2, Number, 100) , agree-priority(1,2, Gender, 100) , agree-priority(1,2, Person, 100);

Правило должно строить предложение из имеющихся именной и глагольной групп. Учитывается согласование в числе, роде и лице, именная группа стоит обязательно в номинативе. В результате работы правила создается составляющая CP (Complementizer Phrase) с вершиной, заимствующейся из глагольной группы, откуда также берутся все остальные атрибуты

пример – [CP [NP осенний +семестр] [VP +начинается]]

Page 16: Rule b platf

Пример правила:

$1 (control=$1, 1.Semantic, priority=5) , relation(1, 2, Type=“Coordination”)

+* * : (1, {Phrase: }) , (2, {Phrase: }) , control(2,CONJ) , agree-priority(1,2, Type, 10);

Правило выделяет сочинительные конструкции. На входе ожидаются две любые синтаксические группы, первая из которых будет вершиной результирующей группы. Вторая должна иметь временный флаг COOR, который проставляется в результате соединения с сочинительным союзом, запятой и проч. Если обе составляющие одного синтаксического типа, приоритет правила увеличивается. Заимствование из первого узла

пример – [NP [NP +студенты] [NP [CONJ и] [NP +преподаватели]]

Page 17: Rule b platf

Функции: Основываясь на результатах работы синтаксиса, модуль

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

Пример правила:

Negation_to_Coordinate_NP{ condition: {Semantic == "COOR", Type == “NP"}, actions { iterate-children (i, {Phrase: Type == “NP", !Head}) { modify(#i^Head, Annotation) { #current^Head.Negation } } } }

Правило перебирает все именные группы, ищет в них другие именные группы, не являющиеся вершиной (i) и присваивает им то же значения атрибута “отрицание”, что и у вершины “главной” именной группы

пример – [NP [NP не скучающие +студенты] [NP [CONJ и] [NP усталые +преподаватели]]]

Page 18: Rule b platf

I. Бόльшая гибкость – возможность оперативно вносить изменения

1. “Теплое пиво” – просто добавь новое правило“теплый прием” останется позитивным, а “теплое пиво” станет негативным2. Сентименты-невидимки“последовал ответ сквозь зубы”, “длинная цепочка людей”, “официант быстро что-то

сказал и ушел”, “нам долго объясняли, когда нас посадят на самолет” 3. Ситуация пресейлаНовый заказчик, новая предметная область, нет данных для тренировки модели4. Новые языкиНовый заказчик = новый язык (см. далее)…

II. Неограниченная работа над качествомКоличество правил a priori не ограничено, их может быть столько, сколько

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

Page 19: Rule b platf

Новый язык: казахскийпример – Халық қазіргі президентті қайта сайлады.

Модификации платформы:халық SYN {SpeechPart = “N”, Case = “Nom”, Number = “Sg”}қазіргі SYN {SpeechPart = “A”}президентті SYN {SpeechPart = “N”, Case = “Acc”, Number = “Sg”}қайта SYN {SpeechPart = “V”, Fin = “Conv”}сайлады SYN {SpeechPart = “V”, Tense = “Past”, Person = “Third”}

Правила:1) правило Poss_Adj_NP (слегка упрощенное) ; 2) правило для CP и подлежащего; 3) столь же стандартное правило для прямого объекта4) Дополнительное правило:

VP (control=$1, 1.Semantic, priority=100), relation(1, 2, Type=“Aux”) +V V

: (1, {Phrase: Fin == "Conv"});

[CP [NP +Халық]  [VP [NP қазіргі +президентті]  [VP қайта +сайлады]]]

Page 20: Rule b platf

Роману Удовиченко, Юлии Адаскиной – за помощь и годы

совместной работы Татьяне Ландо, организаторам и

слушателям семинара – за возможность выступить