Обратная связь
crowdsourcing DARPA Enterprise 2.0 facilitator Gartner Google IBM idea management Imaginatik knowledge management open innovation social business Social Organization Social Platforms Spigit tacit knowledge wit-проект Witology Агенство стратегических инициатив бизнес-лига Деятельное сообщество инвестиции инновации кейсы коллективный интеллект команда Witology краудрекрутинг краудсорсеры краудсорсинг краудсорсинг-проект краудсорсинг-проекты краудфандинг менеджмент идей метаразум методология мотивация Национальная предпринимательская инициатива НПИ облачное предприятие облачные предприятия общественное благо открытые инновации отчеты предсказания приз производство знаний публикации краудсорсеров рынки предсказаний Сбербанк семинар синтеллектуальный краудсорсинг Социально-семантические сети Социальное предприятие социальные платформы социальные сети социальные технологии Социальный бизнес социо-семантическая сеть ТеМП фасилитатор футбол эпоха социализации и коллаборативизации

Ударим nlp по синтаксической неоднозначности

Просмотров2358
Комментариев2

1bdc5a614a4d9c36968cb00ce3d1a919.jpg
Синтаксическая неоднозначность: «Он видел их семью своими глазами». Изображение с сайта photodom.com


Зимний витосеминар, состоявшийся почти месяц назад, 4 декабря, был посвящен автоматической обработке текста. О том, что такое текст и как его обрабатывать нам рассказывал Дмитрий Грановский(сотрудник Яндекса и один из основателей Открытого Корпуса, о котором мы уже писали). Доклад Дмитрия был посвящен основным понятиям и задачам из этой области и самым популярным (или мэйнстримовым  ) алгоритмам их решения.

Мы и раньше знали что, автоматическая обработка языка (Natural Language Processing, NLP) – это своеобразная смесь лингвистики, математики и Computer Science.  Дмитрий в рамках семинара помог упорядочить наши знания, структурировал задачи NLP. В его интерпретации, они заключаются в использовании математических моделей и алгоритмов для обработки данных на естественном языке. Что же можно сделать с такими данными?

Докладчик описал три основных задачи автоматической обработки текста.

Первая– это машинный перевод текста с одного языка на другой. Каждый из нас когда-нибудь пользовался средствами автоматического перевода (например, переводчиком Google) и знает, что пока подобные сервисы далеки от идеальных. Но не каждый знает, как работают автоматические переводчики! Дмитрий приоткрыл завесу тайны и рассказал об одном из возможных методов машинного перевода.

Вторая задача – задача категоризации текстов — состоит из двух частей: кластеризации текстов и классификации текстов. В случае кластеризации, требуется объединить текстовые документы похожей тематики, например, новостные сюжеты, а в случае классификации – определить, принадлежит ли текст к некоторому классу. Так, почтовые серверы классифицируют входящие письма на спам и не спам, то есть, решают, принадлежит ли сообщение к “хорошему” классу или к “плохому”.

Определение тональности текста – третья из рассмотренных задач – была нам  нам хорошо знакома. Для тех, кто забыл серию эмоциональных витосеминаров, напомним, что эта задача заключается в определении отношения автора текста к объектам, о которых он пишет.

Мы обсудили и другие задачи автоматической обработки языка, такие как информационный поиск, распознавание и синтез речи, исправление опечаток. Чтобы лучше объяснить все перечисленные задачи и способы их решения, Дмитрий решил уточнить, что же такое язык и какими свойствами он обладает.

Так, язык имеет две формы существования: письменную (текст) и устную (речь). Они сильно различаются между собой: если транскрибировать (записать) то, что мы говорим, вряд ли получится связанный текст. Из чего же состоит язык? Оказывается, любой естественный язык, обладающий письменностью, состоит из 6 уровней:


1. Фонетика – звуковой уровень (мы уже знаем, что только речь состоит из звуков), мельчайшие звуковые единицы – это слоги и звукосочетания.

2. Графика – символы для записи речи и текста. Это могут быть буквы алфавита, иероглифы, знаки препинания и т.д. Смайлики тоже относятся к графике языка 

3. Морфология – правила, по которым составляются слова. Каждое слово состоит из морфем, наименьших смысловых единиц, таких корни, приставки, суффиксы и т.д. В каждом языке есть набор правил, по которым слово может быть образовано и изменяться.

4. Лексика – все слова языка и их группы (жаргонные слова, профессиональные и проч.)

5. Синтаксис – правила, по которым слова сочетаются между собой (в том числе структура предложений, управление одного слова другим).

6. Семантика – значения слов языка.


Представленная модель языка важна для его автоматической обработки. В частности, существует правило ступенчатого анализа и синтеза языка: для того, чтобы анализировать (или обрабатывать текст) на уровне N, сначала нужно проанализировать его на уровне N-1. Конечно, если на входе имеется готовый текст, то потребность анализировать звук отсутствует. На практике, это означает, что для каждого уровня языка есть специальная программа-анализатор. На вход анализатора уровня N должны поступать результаты анализатора предыдущего уровня. Например, для синтаксического анализа текста требуется знать, какие части речи есть в тексте, то есть, провести морфологический анализ. А прежде чем обращаться к морфологическому словарю, нужно понять, как в записи одно слово отделяется от другого.

Для синтеза языка правило действует в обратную сторону: чтобы синтезировать язык на уровне N, нужно синтезировать его на уровне N+1. Это значит,  что сначала программа должна составить синтаксическую структуру.  В зависимости от созданной структуры программа поставит слова в нужную форму и только потом запишет готовый текст.

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


- аналитический (более лингвистический, основанный на использовании правил и словарей);

- статистический (применение методов машинного обучения к текстовым данным). Эффективнее всего оказывается комбинация этих методов.


С точки зрения Дмитрия, на Западе более развит статистический аппарат, а в России – аналитический. Это связано и со спецификой русского языка и с общим отношением к науке.
Когда Дмитрий начал объяснять, какие бывают вспомогательные инструменты для обработки текстов, мы перебили его и сами ответили на его риторический вопрос: корпуса! Да-да, мы уже писали про корпуса и их роль в анализе текстов, но повторимся. Лингвистический корпус – это коллекция текстов на некотором языке, составленная по определенным правилам. Корпус может быть размеченным: морфологически: синтаксически, семантически и т.д. Фактически, корпус делает возможным применение методов машинного обучения: анализатор текста обучается на корпусе, а потом решает требуемую задачу на реальных данных.

Как всегда на витосеминаре, связанном с лингвистикой не обошлось без курьезных ситуаций: мы пытались разделить китайские иероглифы на слова, понять фразу “Эти типы стали есть в цехе” и снять синтаксическую неоднозначность во фразе “Он видел их семью своими глазами”.

  • Опубликовать в Facebook
avatar

Darya Goncharova

Senior Analyst, Project Department
0
Nikita Sushko
27 Ноябрь 2013
Да, хороший был семинар!
И праздники уже почти прошли, а в памяти осталась одна задумка в плане Открытого корпуса.

Насколько я помню, разметка текста с выделением словоформ и классификация делается вручную в специальной софтинке. В проекте "Открытый корпус" этим занимаются волонтёры ради фана.

Была идея, причем, изначально у Дмитрия, сделать игрушку для мобильных устройств, чтобы в метро или пробках народ не только окучивал Angry Birds и резал верёвки, но и снимал омонимию.
Я бы в такое играл с удовольствием.
Ответить Ссылка 0
0
Daria Goncharova
27 Ноябрь 2013
Спасибо, Никита!

Действительна тема игры кажется чрезвычайно занимательной. Думаю, о том, что Дмитрий собирает команду для такой игры мы узнаем первыми!
Ответить Родитель Ссылка 0