codefest 2011. Алиев Д. — natural language processing (Обработка...
TRANSCRIPT
ПрезентацияApache UIMAIBM Language Ware
Алиев Денис,Axmor
Почему сейчас?
NLP - Два пути
• Простой – Write RegExp and Dictionary and mix them together
• Сложный – NLP like:–Графематический анализ–Морфологический анализ–Синтаксический анализ–Семантический анализ–Информационный анализ
Простой - RegExp & Dictionary
The JCICS class TerminalPrincipalFacility waitTerminal method does not contain any code.…..….number that starts around 100 after a full charge (and drops immediately once under way), never lets you forget the Leaf's limited range and cumbersome refueling process. The onboard computer constantly monitors both battery status and driving conditions...
CarBrand
CamelNotation RegExp \s|^([A-Z]{1}[a-z\d]+){2,5}
KindsCharacteristic
CarOpinion
Сложный - NLP like
Обезьяны NOUN, "жр,мн, им,од"едят VERB, "мн,нс,пе,дст,нст"бананы NOUN "мр,мн, вн,но"
Морфологический анализ
Сложный - NLP likeСинтаксический анализ
едят
Обезьяны бананы
Сложный - NLP like
Universal Networking Language
Семантический анализ
едят
Обезьяныбананы
agt obj
(icl>do).@present
(icl>animal).@generic
(icl>food).@generic
NLP - Два пути
Простой – RegExp & Dictionary:+ Быстрота разработки+ Не требует глубоких знаний лингвистики- Часто не хватает возможностей
Сложный – NLP like:+ позволяет глубоко «читать» текст- сложность разработки
Машинный перевод текста
PROMT
Stylus
TRADOSSocrat
Systran
Где Я?
Машинный перевод текста
Морфологический - Падеж, Число, родСинтаксический - Граф сочетания словСемантический – Смысл текста
Синтез в целевой язык
Этапы анализ
Извлечение фактов, и отношений
http://en.wikipedia.org/wiki/Saturn
Мониторинг информационного поля
Семантический поиск
Семантический поиск
• Структурный поиск - условия на концепты• По шаблону НП: “Организация находиться в …”• Просмотр по онтология• Фасетый поиск• По временному интервалу
IBM WATSON QA – машина
— Как вы думаете, Холмс? — Это элементарно, Ватсон.
IBM WATSON QA – машина
Какие вопросы для машины легки а какие сложны?
IBM WATSON QA – машинаКакие вопросы для машины легки а какие
сложны?
IBM WATSON QA – машинаКакие вопросы для машины легки а какие
сложны?
Где родился X?
IBM WATSON QA – машинаКакие вопросы для машины легки а какие
сложны?
ID Person Birth Place
1 Einstein ULM
Структурная информация
IBM WATSON QA – машинаКакие вопросы для машины легки а какие
сложны?
Однажды, среди многочисленных видов города Ульма, Отто выбрал цвет воды, чтобы напомнить Альберту Эйнштейну
о его родине.
IBM WATSON QA – машинаКакие вопросы для машины легки а какие
сложны?
Естественный язык:
• Не явный• Контекстный• Двусмысленный
IBM WATSON QA – машина
Этот химический элемент был открыт 26 декабря 1898 года во
Французской Академии наук семейной парой.
IBM WATSON QA – машина
IBM WATSON QA – машина
Как построить модель?
IBM WATSON QA – машина
20 000 случайных вопросов * 2500 топиков * 1000 вариантов о чем спросить
• Не пытались предвосхитить ВСЕ вопросы и заложить в базу
• Не пытались создать модель ВСЕГО мира• Разработали NLP технологию «читающую»
текст as is.
IBM WATSON QA – машина
Обучение через «чтение»
TextSyntactic
frameSemantic
frame
Subjec
t
Verb
Object
Яблоко падает на землю 0.6Космонавт летает в волане 0.1Жидкость является жидкой 0.6
Жидкое является жидкостью 0.5Codefest проходит в России 0.6Codefest проходит в Индии 0.5
IBM WATSON QA – машина
Этот текучий материал применяется в строительстве и очень хрупок.
IBM WATSON QA – машинаКирпичБетон
ЦементСтекло
КерамикаМеталл
Лёд
IBM WATSON QA – машина
База данных физики:Kind_of(Стекло, твердое)
IBM WATSON QA – машина
База данных физики:Kind_of(Стекло, твердое)
«Прочитано»:… Стекло является аморфным (твердым) телом. Тем не менее
стекло течет, как жидкость…
IBM WATSON QA – машина
В мае 1898, Португалия отмечала 400ую годовщину с момента
прибытия этого человека в Индию.
IBM WATSON QA – машина
В мае Вася прибыл в Индию после того как он отметил годовщину в
Португалии
IBM WATSON QA – машина
Май 1898
отмечала
400ую годовщину
прибытия
этого человека
Индия
Португалия
Май
прибыл
Вася
Индия
отметил
Португалия
Keyword match
годовщину
Keyword match
Keyword match
Keyword match
Keyword match
Keyword match
IBM WATSON QA – машина
27 Мая 1498, Васко де Гама высадился на пляже Каппад
IBM WATSON QA – машина
Май 1898
отмечала
400ую годовщину
прибытия
этого человека
Индия
Португалия
27 Мая 1498
высадился
Васко де Гама
пляже Каппад
Statis
tical
para
phra
sing
Temporal Reasoning
GeoSpatial Reasoning
Match
Гене
раци
я Ги
поте
з
ВОП
РОС?
Ранж
иров
ание
оч
евид
ност
ей
GeoSpatial Reasoning
Statistical paraphrasing
Temporal Reasoning
Learning
Синт
ез
ОТВ
ЕТ
IBM WATSON QA – машина
На CodeFest
!Где Я?
Apache UIMAUnstructured Information Management Architecture
Collection Reader
Analysis Engine(s)
Consumer(s)
Apache UIMA – Concept
Представляет собой
Annotator’ы объединенные в
группы
Apache UIMA – CAS
TypeSystem
CAS
Type
IndexRepository
FeatureAnnotationIndex
Iterator
Annotation
Common Analysis
Structure
Apache UIMA - Пример
• Вы хотите купить новую машину• Просматриваете обзоры на edmunds.com • Выясняете недочеты и преимущества
моделей
Пример UIMA – Начальные данные
• Перечень с названиями авто• Перечень возможных недочетов• Перечень возможных преимуществ
• Успех – система выделяет предложение, в котором упоминается авто и ее недочет / преимущество.
Пример UIMA – Реализация
• Реализовать аннотатор (ы)• Создать PEAR• Установить AS• Установить и настроить SearchEngine+WebUI• Установить и настроить Crawlers• Запустить!
Пример UIMA – Реализация
• Создать AE дескриптор– Создать систему типов– Сгенерировать Wrapper для типов и Аннотаций – Создать класс Аннотатора
• Реализовать метод process аннотатора
Пример UIMA – Реализация
Пример UIMA – Реализация
Пример UIMA – Aggregated AE
Aggregated Analysis Engine (CarFlaw)
CarBrandAnnotator
Consumer
Reader
KindsAnnotator
CharacteristicAnnotator
CarOpinionAnnotator
CAS
TokenizerAnnotator
На вход берет аннотации, а не
текст
Пример UIMA – Реализация
Пример UIMA – Выводы
Достоинства• Высокая гибкость;
Недостатки• Строить аналитическую модель дольше;• Требует знаний java;• Round trip - Требует перекомпиляции;
Инструментарий
IBM Language Ware
LW - UserInterface
LW – Покупка машины
• Добавить документы• Создать dictionaries• Создать rules• Создать pipeline
• Для чего каждый нужен?
Все заново
?
LW – Создание pipeline
LW – Создание dictionary
• Имя справочника• Размещение
LW – Создание dictionary• Язык• UIMA тип
LW – Создание dictionary• Custom Колонки
– можно добавлять после создания
LW – Создание записиКарточка слова в dictionary
LW – Создание rule…. number that starts around 100 after a
full charge(and drops immediately once under way), never lets you forget the Leaf's limited range and cumbersome
refueling process. The onboard computer constantly monitors both battery status
and driving conditions, and it will update the Leaf's range every few seconds to
reflect city cra….
LW – Создание rule- Параметры- Generalization- Feature evaluation
LW – Создание rule
LW – Создание rule- Создание feature
LW – Создание rule• Перестановка слагаемых меняет результат• Группировка input аннотаций (Group)• Виды rule’ов, предназначение
– Phrases– Entities– Aggregate
• Иерархия rule’ов (level)• Область видимости (Scope) – только aggregate
– Sentence, Paragraph, Document• Иерархия параметров (Subtree)• Не далайте inifinite loop
LW – Результат
LW – Выводы
Достоинства• Быстрота создания модели;• Непрерывное отображение результатов• Не требуется компиляция
Недостатки• Отсутствует рефакторин справочников,
типов, правил
:-)
StartFinish
H
A !
H
LW – Мат. Часть FST
• Знает только текущее состояние
• Идет т! по стрелочкам• Успех только если добрался
до Finish
ha! or haha! or hahaha! or hahahaha! …
NLP фреймворки
• Apache UIMA• Gate• OpenNLP – ссылки на проекты