Найти смысл в тексте

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Для человека, залезающего в интернет, чтобы купить билет на поезд или посмотреть, за кем замужем актриса N, сеть — предмет повседневного удобства. Но для идеологических и силовых структур, для политиков и крупных корпораций информационный поток одновременно и поле боя, и орудие конкурентной борьбы. Поток всё время растёт пропорционально количеству вовлечённых в производство информации людей, поэтому компьютерные лингвисты говорят о перспективе информационного хаоса примерно с теми же интонациями, с какими экологи — о глобальном потеплении.

Однако, в отличие от глобального потепления, проблема информационного хаоса сама содержит в себе своё решение: если оцифрованного текста стало слишком много, почему бы не делегировать наведение порядка компьютерам? Ведь оцифрованный — значит, доступный для автоматической обработки.

Поисковики решают проблему только отчасти. Любой пользователь знает, сколько времени занимает поиск по ключевому слову. Хорошо, если мы ищем что-то, что нам хотят продать: в этом случае задачу «найтись» берёт на себя продавец. А если нам нужно что-то не имеющее коммерческого смысла? А если не «что-то» — а всё по некоторой теме, потому что предстоит принимать решение с очень высокой ценой?

Дело за малым: надо научить программу не просто реагировать на ключевое слово, как это делают поисковики, а извлекать из сказанного смысл.

Кто хоть раз сдавал какой-нибудь международный экзамен по иностранному языку, знает, что информация устроена сложно и нелинейно, а прочитать текст (в человеческом смысле слова) далеко не то же самое, что извлечь из него смысл. Тексты, предлагаемые на таких экзаменах, часто заведомо слишком объёмны, чтобы успеть и дочитать их до конца, и ответить на вопросы. Западная школа, осознавая, с каким колоссальным информационным потоком приходится иметь дело профессионалу, довольно рано начинает учить школьника трём типам чтения: не только обычному — подробному, ничего не упускающему, но и сканирующему (scanning) и суммирующему (skimming) — тем, что в русской традиции называется «читать по диагонали». Задача сканирующего чтения — найти в тексте именно те «места», которые актуальны для текущей задачи; суммирующего — быстро, в один взгляд, понять суть сказанного в статье, главе или разделе в целом.

От машинной обработки сырого информационного потока специалисты хотят добиться примерно такого же — функционального результата. Но если учиться «суммировать» — извлекать и обобщать суть сказанного — понятная постановка задачи (это и не каждый человек умеет), то простой поиск нужного, например документа в корпоративной сети, кажется не таким уж актуальным. Неужели при наличии сегодняшних поисковиков трудно найти нужную бумажку на сервере?

— Это огромная проблема, — убеждена Татьяна Даниэлян, заместитель директора по разработке технологий компании ABBYY, известной своими интеллектуальными системами распознавания и обработки текста и беспрецедентной для коммерческой компании вовлечённостью в теоретическую лингвистику на всех российских площадках, где ею занимаются всерьёз. — Быстрый поиск — одна из актуальнейших задач. По всем исследованиям и в США и в мире сотрудники компаний тратят на поиски нужных документов более 50% времени. Человек помнит, что отсылал какой-то документ, или предполагает, что должен был его получить, или, зная свою компанию, понимает, что такой документ обязательно уже существует, — но как сформулировать поисковый запрос? Этого никто толком не знает, поэтому люди тратят много времени, чтобы придумать, как составить запрос, чтобы удалось найти именно этот документ (полнота поиска) и не получить при этом слишком много ненужных документов (точность). В худшем случае сотрудник отчаивается и начинает создавать искомый документ сам: дублирует уже кем-то сделанное.

Казалось бы — мелочь, но если суммировать этот фактически выброшенный в корзину человеческий ресурс, масштаб потерь получится индустриальным.

Чтобы искать быстрее и точнее, необходимо внести в поиск элемент «ума».

— Стандартная задача, которую сейчас пытаются все решать, даже за пределами компьютерной лингвистики, называется Named Entity Recognition, распознавание, или извлечение именованных сущностей, — объясняет Татьяна Даниэлян. — Примеры именованных сущностей — это персоны, организации, географические места, деньги, даты, время и так далее. Эта задача более или менее решена. Однако, конечно, никому не интересно извлекать сущности просто так. Чаще всего нам нужно знать: а что с этой сущностью происходит, например: «Кто, где, когда, с кем что делал и что планирует делать дальше?». Все хотят извлекать из огромного потока текстов события и связи, которые соотнесены с сущностями.

Одного «извлечения сущностей» достаточно, чтобы почувствовать себя на симпозиуме лапутянских мудрецов, а считалка из детской игры «в чепуху» (кто, с кем, где, когда...) это ощущение усиливает. Значительная доля обаяния компьютерной лингвистики в том, что она рождена на стыке, с одной стороны, предельной прагматики, а с другой — гуманитарной науки, то есть наименее строгой области человеческого знания. «Извлекаемые сущности» не единственный пример того, как умозрительная, интроспективная, практически невалидируемая сетка «философских категорий» превращается в руках компьютерной лингвистики в работающий инструмент. Если для этого надо кое-что подправить и упростить, так тому и быть, главное, чтобы работало.

— Факты, события, связи — это любая информация, которая характеризует сущности и имеет протяжённость во времени и пространстве, — объясняет Татьяна. — Например, наличие или отсутствие, рождение или смерть. Более сложные факты (события) — встреча между двумя лицами, или когда один купил, а другой продал, или противоправное действие и судебное решение; а также кто кому кем приходится (связи). Всё это не так просто извлечь, потому что одна и та же ситуация может описываться разными текстами: например, «Вася украл у Пети кошелёк», «Василий вытащил у Петра Иваныча бумажник» и «Деньги пропали из кармана П. Иванова». Задача в том, чтобы программа увидела в этом случае одно событие, а не три разных.

Инженерия и наука приучили нас к тому, что машины во многих отношениях «умнее» нас: безошибочнее считают, лучше моделируют, информативнее «показывают» (если это, например, компьютерный томограф или хорошая цифровая фотокамера), быстрее обмениваются информацией, лучше извлекают закономерности... В компьютерной лингвистике дело обстоит пока наоборот: тому, что мы понимаем сразу, без обдумывания, машину приходится обучать — изощрёнными способами и с далёким от 100% результатом.

«Я вызвал доктора на дом, и он пришёл» — для человека очевидно, что пришёл не дом, а доктор, а как должна об этом узнать машина? «Маша заказала мороженое, Марина — кофе». Что произошло между Мариной и кофе? Лингвисты любовно коллекционируют примеры лингвистической неоднозначности и демонстрируют их друг другу на профессиональных конференциях: Эти типы стали есть в литейном цехе — какие-то типы достали в цехе бутерброды, или речь идёт о промышленном ресурсе? Он видел их семью своими глазами — семиглазый наблюдатель? Интересно писать просто — где граница между тем, о чём говорится, и тем, что говорится: писать просто — это интересная задача или писать интересно под силу любому? С неоднозначностью вроде «типы стали есть…» или «видел семью…» современные машинные переводчики, «обременённые» кое-какими знаниями о мире, уже неплохо справляются. Но о многочисленные «это» и «свои» машина, как правило, мучительно спотыкается: с чем из упомянутого ранее их соотнести?

К компьютеру слово «понимание» применимо условно. Машинное «чтение» — это способность с некоторой степенью точности «понять смысл»: идёт в тексте речь об одном и том же или о разных вещах? Если о разных, то о похожих или нет? Если похожих, то до какой степени? Что говорится в текстах о конкретном лице или марке — вызывает ли она у людей эмоции (а в идеале ещё и какие)? Хорошо или плохо относятся к ней создатели текстов и в каких долях? Как меняется динамика этого спектра отношений от недели к неделе, от места к месту, от одной возрастной группы к другой? Держать армию людей, мониторящих, что в интернете говорят об X в реальном времени, очень затратно, к тому же весь интернет не промониторишь. Репрезентативное социологическое исследование — дело не быстрое и имеет свои погрешности. А знать хочется; как шутят некоторые разработчики, ещё и с адресами недовольных (для рассылки рекламных предложений, разумеется, потому что Х — это коммерческий бренд — а вы что подумали?). Это любопытство можно удовлетворять быстрее и надёжнее, если формализовать смысл так, чтобы он стал «видимым» для машины: разложить его на регулярные компоненты и обучить систему их распознавать.

— У нас в ABBYY есть три единицы смысла, связанного с конкретным значением, — объясняет Татьяна Даниэлян. — Первая — общее понятие, к которому мы подключаем конкретное значение. Мы создали универсальную семантическую иерархию — своего рода ветвящееся «дерево», на котором происходит наследование значений от смысловых «родителей» к «потомкам»: от общих категорий к более детальным. «Листочком» этого дерева может быть, например, «стол», а «веткой», узлом, от которого значение «стол» наследует смысловые признаки, — «мебель», она в свою очередь будет входить в более общую категорию «предмет», «объект» и так далее. Мы называем свою иерархию универсальной, потому что «дерево» сделано общим для всех языков, а его «ветки» и конечные «листочки» могут наполняться словами любого конкретного языка. Вторая единица — у нас она называется семантема — это дополнительная характеристика, например, съедобное — несъедобное, искусственное — природное и им подобные. Это характеристика, которая для данного значения дополняет информацию чем-то важным для понимания смысла.

— Зачем нужна отдельная категория «съедобное»? Разве это не часть самого значения?

— Иногда одно и то же значение может быть и «съедобным» и «несъедобным». Например, слово «печёный» может относиться и к торту — и тогда оно «съедобное», и к технологии производства кирпича. И наконец, третье — основное — это семантическая связь между значениями, она же — глубинная позиция. Субъект — предикат — объект; локативы («где?»), темпоралы («когда?») и так далее. Кошка съела колбасу и Колбаса съедена кошкой — синтаксически разные структуры, а семантически — одна, и система должна это понимать. А есть ещё отдельный уровень формализации смысла — онтология. Когда онтоинженеры пишут правила извлечения информации, они как раз объясняют, как то, что мы видим в реальном мире, связано с семантикой. Фактически они создают модель мира для некоторой конкретной области, используя в качестве основы те пять сущностей, о которых мы говорили выше, и добавляя новые.

В общем смысле онтология — инструмент философии, реестр основных отвлечённых категорий (структура и свойства, материальное и идеальное и им подобные), предназначенный для описания всего сущего. В компьютерной лингвистике и других прикладных областях онтология становится проще и ближе к людям: моделирует не всё сущее, а только тот его кусочек, который связан с конкретной задачей или конкретной предметной областью.

— Чтобы что-то запрограммировать, — объясняет Анатолий Старостин, руководитель группы семантического анализа в ABBYY и преподаватель компьютерной лингвистики в МФТИ, — это «что-то» нужно формализовать. Лингвист-теоретик может предложить формализацию даже с огрехами — с недоразрешёнными вопросами, и на выходе всё равно будет статья. В компьютерной лингвистике иначе: если в формализации есть огрех, то программа просто не будет работать. Поэтому модели в ней могут использоваться очень простые, но всегда работающие. Вообще, теоретическая лингвистика смотрит на методы формализации смысла по-разному. Не все строят универсальную семантическую иерархию; можно ли организовать в иерархию вообще всё — это большой теоретический вопрос. Мы это сделали, и оно работает. Лично мне интересно, возможен ли гибрид такой иерархии, как наша, и онтологии, которая идёт от задачи? Ведь, вообще-то говоря, они где-то должны сойтись. Мне кажется, у человека в голове это организовано ещё красивее: у него там с самого начала — большая онтология, сложно и не очень понятно устроенная, да ещё и динамичная: мы всё время что-то узнаём, что-то забываем, и под эти концепты в нашем сознании постоянно «подшиваются» слова...

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

— Получится практически живой робот, — улыбается Старостин, — который будет концептуализировать всю окружающую реальность. Но мы этим не занимаемся.

— Прежде всего, это не имело бы смысла, — объясняет Татьяна Даниэлян. — Чтобы решить задачу, её сужают. «Всемогуторы» никому не нужны.

Такой сдержанной компьютерная лингвистика была не всегда. Её юные годы отмечены как приступами эйфории, так и острыми разочарованиями.

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

Этого, конечно, не случилось. Модели развивались, на их основе появлялись алгоритмы, начинали работать, но... каменная чаша не выходила: получалось не очень хорошо. Хорошее лингвистическое описание «из головы» оказалось задачей не то чтобы не решаемой, но слишком объёмной, чтобы справиться с ней в обозримое время.

Е. Вешняковская

Продолжение следует


Источник: vk.com

Комментарии: