6. Название Функция Text parser Убирает лишние абзацы и т.д., помещает текст в “ хранилище ” Break detector Объединяет цепочки символов в слова, цепочки слов – в предложения RegExp Обрабатывает даты, электронные адреса, опечатки, сленг,… Morphology Словарь с морфологическими атрибутами Gazetteer Списки, классифицирующие слова по некоторым атрибутам Unknown word Распознает неизвестные слова, основываясь на их морфологии CAPE Выделяет специальные и именованные сущности POS tagger Снимает грамматическую омонимию NE recognizer Специальный модуль для выделения именованных сущностей Chunker Выделяет простые синтаксические группы Syntax Строит полное дерево синтаксического разбора Post syntax Разбивает сложные предложения на простые, уточняет сферу действия отрицания,… Precise Extraction Выделяет факты
7. Название Язык правил, примеры 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 ~ Язык логики предикатов
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Editor's Notes
По 5. – я не буду говорить, чем плохи статистические системы. Я расскажу о плюсах системы на правилах. О том, что такие системы не устарели говорят два факта: 1) Приводимый в данном докладе пример, будучи реализован в различных конкретных платформах, успешно работает на рынках как у нас, так и на Западе 2)
{Phrase: !PP, Case == "Nom"} – в солдаты
Невозожно в контекстно-зависимой грамматике из-за синтаксической омонимии (Петя увидел столб и он упал ) Даже если падежи при сочинении не совпадают и правилами можно было бы ограничить их тождественность. жестко ограничивать падеж нельзя, т.к. в русском языке могут сочиняться ИГ в разных падежах
Тип предложения – иллокутивная сила (повествовательное, вопросительное, восклицательное) Сложное предложение проще всего было бы разбивать, учитавая подлежащие { condition: {Semantic =^ "COOR", Type == "VP"}, actions { // Enum all children VPs in coordinated phrase iterate-children (i, {Phrase: Type == "VP", !@Head}) { // Use Ancestor link from the current child 'i' modify(#i^Ancestor[-1], Annotation) { // Inherite Negation from the head of coordinated phrase #current^Ancestor[-1].Negation } } } }
Во-первых – нет необходимости менять значение Sentiment на слове ТЕПЛЫЙ. Частота встречаемости “ теплого пива ” или “ холодного чая ” может быть недостаточной, чтобы изменить базовую эмоциональную окраску “ теплый ” (положительное) и “ холодный ” (скорее наоборот ). Такие термины могут зависеть от предметной области (=нужд заказчика) – мягкая мебель vs мягк ая подушка и тп. (см. слайд №) 2) Также могут «не видны» из-за невысокой частотности таких коллокаций, но чрезвычайно полезны из-за того, что эмоционально окрашены При обработки корпуса подобные словосочетания могут «прятаться» за явно сентиментными словами и становится т.о. «невидимыми» для модели, например, « длинная цепочка людей уныло тянулась от самых дверей » - “ уныло ” и “ тянулась ” могут регулярно встречаться и в других негативных предложениях и в данном случае «взять на себя ответственность» за отрицательный сентимент. 3) новый заказчик – новые сущности, новые факты, особые правила для Sentiment Analysis и т.д. Вместо того, чтобы тренировать модель (данные? Объем? ) – просто напиши несколько новых правил, зная его ПО ii. Ограничено только перформансом, но те же ограничения есть и на статистические системы Основное преимущество правил – в том, что они обладают “ порождающей ” силой – они могут ммоделировать такие контексты к оторые не встречались в обучающей выборке