66
Презентация Apache UIMA IBM Language Ware Алиев Денис, Axmor

CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Embed Size (px)

Citation preview

Page 1: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

ПрезентацияApache UIMAIBM Language Ware

Алиев Денис,Axmor

Page 2: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Почему сейчас?

Page 3: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

NLP - Два пути

• Простой – Write RegExp and Dictionary and mix them together

• Сложный – NLP like:–Графематический анализ–Морфологический анализ–Синтаксический анализ–Семантический анализ–Информационный анализ

Page 4: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Простой - 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

Page 5: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Сложный - NLP like

Обезьяны NOUN, "жр,мн, им,од"едят VERB, "мн,нс,пе,дст,нст"бананы NOUN "мр,мн, вн,но"

Морфологический анализ

Page 6: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Сложный - NLP likeСинтаксический анализ

едят

Обезьяны бананы

Page 7: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Сложный - NLP like

Universal Networking Language

Семантический анализ

едят

Обезьяныбананы

agt obj

(icl>do).@present

(icl>animal).@generic

(icl>food).@generic

Page 8: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

NLP - Два пути

Простой – RegExp & Dictionary:+ Быстрота разработки+ Не требует глубоких знаний лингвистики- Часто не хватает возможностей

Сложный – NLP like:+ позволяет глубоко «читать» текст- сложность разработки

Page 9: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Машинный перевод текста

PROMT

Stylus

TRADOSSocrat

Systran

Где Я?

Page 10: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Машинный перевод текста

Морфологический - Падеж, Число, родСинтаксический - Граф сочетания словСемантический – Смысл текста

Синтез в целевой язык

Этапы анализ

Page 11: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

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

http://en.wikipedia.org/wiki/Saturn

Page 12: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Мониторинг информационного поля

Page 13: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Семантический поиск

Page 14: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Семантический поиск

• Структурный поиск - условия на концепты• По шаблону НП: “Организация находиться в …”• Просмотр по онтология• Фасетый поиск• По временному интервалу

Page 15: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машина

— Как вы думаете, Холмс? — Это элементарно, Ватсон.

Page 16: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машина

Какие вопросы для машины легки а какие сложны?

Page 17: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машинаКакие вопросы для машины легки а какие

сложны?

Page 18: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машинаКакие вопросы для машины легки а какие

сложны?

Где родился X?

Page 19: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машинаКакие вопросы для машины легки а какие

сложны?

ID Person Birth Place

1 Einstein ULM

Структурная информация

Page 20: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машинаКакие вопросы для машины легки а какие

сложны?

Однажды, среди многочисленных видов города Ульма, Отто выбрал цвет воды, чтобы напомнить Альберту Эйнштейну

о его родине.

Page 21: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машинаКакие вопросы для машины легки а какие

сложны?

Естественный язык:

• Не явный• Контекстный• Двусмысленный

Page 22: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машина

Этот химический элемент был открыт 26 декабря 1898 года во

Французской Академии наук семейной парой.

Page 23: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машина

Page 24: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машина

Как построить модель?

Page 25: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машина

20 000 случайных вопросов * 2500 топиков * 1000 вариантов о чем спросить

• Не пытались предвосхитить ВСЕ вопросы и заложить в базу

• Не пытались создать модель ВСЕГО мира• Разработали NLP технологию «читающую»

текст as is.

Page 26: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машина

Обучение через «чтение»

TextSyntactic

frameSemantic

frame

Subjec

t

Verb

Object

Яблоко падает на землю 0.6Космонавт летает в волане 0.1Жидкость является жидкой 0.6

Жидкое является жидкостью 0.5Codefest проходит в России 0.6Codefest проходит в Индии 0.5

Page 27: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машина

Этот текучий материал применяется в строительстве и очень хрупок.

Page 28: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машинаКирпичБетон

ЦементСтекло

КерамикаМеталл

Лёд

Page 29: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машина

База данных физики:Kind_of(Стекло, твердое)

Page 30: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машина

База данных физики:Kind_of(Стекло, твердое)

«Прочитано»:… Стекло является аморфным (твердым) телом. Тем не менее

стекло течет, как жидкость…

Page 31: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машина

В мае 1898, Португалия отмечала 400ую годовщину с момента

прибытия этого человека в Индию.

Page 32: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машина

В мае Вася прибыл в Индию после того как он отметил годовщину в

Португалии

Page 33: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машина

Май 1898

отмечала

400ую годовщину

прибытия

этого человека

Индия

Португалия

Май

прибыл

Вася

Индия

отметил

Португалия

Keyword match

годовщину

Keyword match

Keyword match

Keyword match

Keyword match

Keyword match

Page 34: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машина

27 Мая 1498, Васко де Гама высадился на пляже Каппад

Page 35: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

IBM WATSON QA – машина

Май 1898

отмечала

400ую годовщину

прибытия

этого человека

Индия

Португалия

27 Мая 1498

высадился

Васко де Гама

пляже Каппад

Statis

tical

para

phra

sing

Temporal Reasoning

GeoSpatial Reasoning

Match

Page 36: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Гене

раци

я Ги

поте

з

ВОП

РОС?

Ранж

иров

ание

оч

евид

ност

ей

GeoSpatial Reasoning

Statistical paraphrasing

Temporal Reasoning

Learning

Синт

ез

ОТВ

ЕТ

IBM WATSON QA – машина

На CodeFest

!Где Я?

Page 37: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Apache UIMAUnstructured Information Management Architecture

Page 38: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Collection Reader

Analysis Engine(s)

Consumer(s)

Apache UIMA – Concept

Представляет собой

Annotator’ы объединенные в

группы

Page 39: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Apache UIMA – CAS

TypeSystem

CAS

Type

IndexRepository

FeatureAnnotationIndex

Iterator

Annotation

Common Analysis

Structure

Page 40: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Apache UIMA - Пример

• Вы хотите купить новую машину• Просматриваете обзоры на edmunds.com • Выясняете недочеты и преимущества

моделей

Page 41: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Пример UIMA – Начальные данные

• Перечень с названиями авто• Перечень возможных недочетов• Перечень возможных преимуществ

• Успех – система выделяет предложение, в котором упоминается авто и ее недочет / преимущество.

Page 42: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Пример UIMA – Реализация

• Реализовать аннотатор (ы)• Создать PEAR• Установить AS• Установить и настроить SearchEngine+WebUI• Установить и настроить Crawlers• Запустить!

Page 43: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Пример UIMA – Реализация

• Создать AE дескриптор– Создать систему типов– Сгенерировать Wrapper для типов и Аннотаций – Создать класс Аннотатора

• Реализовать метод process аннотатора

Page 44: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Пример UIMA – Реализация

Page 45: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Пример UIMA – Реализация

Page 46: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Пример UIMA – Aggregated AE

Aggregated Analysis Engine (CarFlaw)

CarBrandAnnotator

Consumer

Reader

KindsAnnotator

CharacteristicAnnotator

CarOpinionAnnotator

CAS

TokenizerAnnotator

На вход берет аннотации, а не

текст

Page 47: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Пример UIMA – Реализация

Page 48: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Пример UIMA – Выводы

Достоинства• Высокая гибкость;

Недостатки• Строить аналитическую модель дольше;• Требует знаний java;• Round trip - Требует перекомпиляции;

Page 49: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Инструментарий

IBM Language Ware

Page 50: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

LW - UserInterface

Page 51: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

LW – Покупка машины

• Добавить документы• Создать dictionaries• Создать rules• Создать pipeline

• Для чего каждый нужен?

Все заново

?

Page 52: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

LW – Создание pipeline

Page 53: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

LW – Создание dictionary

• Имя справочника• Размещение

Page 54: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

LW – Создание dictionary• Язык• UIMA тип

Page 55: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

LW – Создание dictionary• Custom Колонки

– можно добавлять после создания

Page 56: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

LW – Создание записиКарточка слова в dictionary

Page 57: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

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….

Page 58: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

LW – Создание rule- Параметры- Generalization- Feature evaluation

Page 59: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

LW – Создание rule

Page 60: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

LW – Создание rule- Создание feature

Page 61: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

LW – Создание rule• Перестановка слагаемых меняет результат• Группировка input аннотаций (Group)• Виды rule’ов, предназначение

– Phrases– Entities– Aggregate

• Иерархия rule’ов (level)• Область видимости (Scope) – только aggregate

– Sentence, Paragraph, Document• Иерархия параметров (Subtree)• Не далайте inifinite loop

Page 62: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

LW – Результат

Page 63: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

LW – Выводы

Достоинства• Быстрота создания модели;• Непрерывное отображение результатов• Не требуется компиляция

Недостатки• Отсутствует рефакторин справочников,

типов, правил

Page 64: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

:-)

StartFinish

H

A !

H

LW – Мат. Часть FST

• Знает только текущее состояние

• Идет т! по стрелочкам• Успех только если добрался

до Finish

ha! or haha! or hahaha! or hahahaha! …

Page 65: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

NLP фреймворки

• Apache UIMA• Gate• OpenNLP – ссылки на проекты

Page 66: CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественного языка)

Вопросы?

Алиев Денис,Axmor

[email protected]: alievdenis