Сегодня резидент «Сколково» компания ABBYY, активно занимающаяся разработками в области компьютерной лингвистики, объявила о выпуске первых коммерческих продуктов, основанных на технологии Compreno, которая обеспечивает понимание компьютером текстов на естественных языках. 


Знаменитый физик Сергей Вавилов говорил, что современный читатель находится перед Гималаями библиотек в положении золотоискателя, которому надо отыскать крупинки золота в массе песка. Отметим, что эти слова были произнесены в 1947 году, когда темпы роста объема информации по нашим меркам были мизерными, да и волновала академика Вавилова по большей части проблема поиска нужных данных в публикациях научных журналов.

  

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

Но у современного человека есть помощник, которого не было у Сергея Вавилова. За почти 70 лет значительно шагнула вперед компьютерная техника. И быстродействие вычислительных машин, и их «умения» позволяют нам переложить задачу по поиску «крупинок золота в массе песка» на компьютерные программы. Когда это только начиналось под скромным названием «автоматизация информационного поиска», компьютер мог лишь сортировать данные в каталогах и выдавать их в ответ на запрос пользователя, ориентируясь на краевую перфорацию в перфокарте. Теперь же программа может анализировать тексты в поисках нужной информации, и мы уже говорим о задачи «извлечения данных» (data mining).

Программы легко могут анализировать структурированные данные – представленные в виде таблиц, списков, баз данных. Они могут анализировать огромные объемы информации, подвергать их статистической обработке со скоростью, недоступной человеку. Но проблема в том, что большая часть информации в мире представлена в виде неструктурированных данных. И нам хочется, чтобы программа умела работать с ними. Мы хотим, чтобы она могла анализировать, например, библиотеки статей прессы, отсевая ненужное и выбирая информацию по интересующему нас вопросу. Не стоит забывать и о том огромном количестве текстов, которые каждый день создают пользователи социальных сетей. Эти тексты тоже содержат информацию, которая может быть интересна и политическому аналитику, и экономисту, и даже, например, эпидемиологу (анализируя записи сети микроблогов Twitter, исследователи научились предсказывать эпидемии гриппа). Но пользователя в социальной сети уж точно не заставишь выдавать информацию в структурированном виде. Значит, программа должна извлекать нужные данные из текста.

Первым шагом в этом направлении становится поиск ключевых слов в тексте. Но тут начинаются лингвистические проблемы. Специалист по протезированию зубов, ищущий статьи о новых разработках в этой области, вряд ли будет доволен, когда в место стоматологических мостов ему предложат почитать о конструировании железнодорожных мостов. Если человек ищет публикации про футболиста Вагнера Лава, то ему только помешают сведения о знаменитом оперном композиторе Рихарде Вагнере. Задача же того, кому интересна свежая информация об африканском государстве Того, и вовсе становится непреодолимой: простая программа поиска не сможет отличить название страны от местоимения. Препятствием становятся многозначность слов и наличие в текстах омонимов. Часто как пример омонимии, трудной для компьютерного анализа, приводят фразу: «Эти типы стали есть на складе». О чем идет речь? О наличии на складе каких-то марок металла или о том, что какие-то люди питаются в складском помещении? Правильный выбор можно сделать только оценив более широкий контекст. Здесь мы делаем второй вывод: программа должна быть способна понимать смысл текста и учитывать его при поиске данных. Только тогда она сможет отсеять не относящееся к делу и извлечь из текстов именно нужные данные.

Тут вступает в дело компьютерная лингвистика. Что должна уметь компьютерная программа, чтобы учитывать смысл текста? Она должна понимать семантику слов и структуру предложений. Иными словами – иметь семантический и синтаксический анализатор.

Подобную технологию компьютерного понимания текстов компания ABBYY разработала в системе ABBYY Compreno. Эта система состоит из двух основных компонентов. Во-первых, она включает иерархически организованное представление семантики слов. Иерархия состоит в том, что смыслы представлены в виде «дерева», где можно проследить вхождение частных понятий в более общие. К понятию «движение», например, относятся частные случаи: «бежать», «идти», «ползать», «лететь» и так далее. На данный момент в эту семантическую иерархию включены 110000 универсальных понятий, не зависящих от конкретного языка, 120 000 русских слов и 130000 английских слов. Созданы также описания терминологии отдельных специальных областей: IT, бизнеса, финансов, маркетинга, HR, юриспруденции, медицины, нефтегазовой терминологии.

Во-вторых, ABBYY Compreno имеет синтаксический анализатор, которые определяет структуру предложения и отношения между входящими в него словами. В этой области программа умеет справляться с немалым числом «подводных камней», которые не составляют проблем для человека, владеющего языком, но требуют специальных алгоритмов для компьютерного анализа. Среди таких случаев опущение повторяющейся части предложения («Маша говорит и читает по-шведски, а Катя – по-норвежски») или местоименная анафора («Маша хорошо знает шведский язык. Она изучала его пять лет.). Программа синтаксического анализа в этих случаях понимает, что в первом предложении Катя по-норвежски говорит и читает, а во втором она – это Маша, а он – это шведский язык. Для более точного синтаксического анализа используются данные о семантике слов, которые хранятся в семантическом компоненте. Он позволяют описать связи между словами в предложении и функцию этих слов (действие, место и пр.). Наконец, используются статистические алгоритмы, которые, например, помогают справиться с омонимией. Проанализировав количество слов из разных семантических областей, с которыми связано многозначное слово, программа выберет нужное значение. В результате программа оказывается способной учитывать контекст и правильно понять фразу «Эти типы стали есть на складе» в зависимости от того, идет речь о металлургии или о поведении складских работников.

Перспективность разработки такой системы оценивалось столь высоко, что компания ABBYY вложила в ее создание более 80 миллионов долларов (по состоянию на весну 2014 года). Также на работу над этим проектом около 14 миллионов долларов (475 млн. рублей) выделил «Фонд Сколково», резидентом которого стала компания.

Итак, ABBYY Compreno обладает всеми описанными выше умениями. Создать компьютерную программу, настолько детально анализирующую тексты на естественном языке, конечно, интересная задача для лингвистов и программистов. Но каково ее практическое применение? Оно довольно широко: от машинного перевода до интеллектуального поиска информации. Если говорить о задачах поиска и извлечения информации из текста, то такая система учитывать при работе не только ключевые слова, но и их значения, связи между словами и контекст, что значительно повышает качество работы. Именно таким программным продуктом является представленный сейчас ABBYY Intelligent Search, основанный на технологии Compreno. Он предназначен для интеллектуального поиска данных в корпоративных хранилищах и обладает всеми описанными выше лингвистическими умениями.

Второй продукт, который базируется на той же технологии Compreno, ABBYY Intelligent Tagger предназначен для структурирования имеющейся информации. Он может находить в текстах документов определенные объекты (названия организаций, персон, мест, даты и денежные суммы), что позволяет в дальнейшем автоматически классифицировать и сортировать эти документы, организовывать их автоматическую обработку с той или иной целью.

   

Источник: polit.ru

ru