Google выложила на GitHub инструмент для создания систем, распознающих синтаксис естественных языков

Сегодня Google выложила на GitHub фреймворк SyntaxNet, работающий на нейронных сетях, на основе которого можно строить системы для синтаксического разбора предложений на естественных языках. Вместе с ним они выложили уже «натренированный» парсер Parsey McParseface, который уже распознаёт предложения на английском языке с поразительной точностью.

По статистике, которую приводит Google, парсер определяет синтаксическую структуру предложений с точностью в 94%. Вот как это выглядит, если ему подать предложение «Alice saw Bob» (Алиса увидела Боба):

asawb

Как видно, система правильно определила «Alice» как субъект действия, «Bob» как объект, а «saw» как глагол, т.е. само действие. Что будет если отдать Parsey что-нибудь посложнее, например «Alice drove down the street in her car» (Алиса поехала вниз по улице в своей машине)?

drovedown2

Система опять отлично определила связи между словами в предложении. Последний пример, который мы приведём: «Alice, who had been reading about SyntaxNet, saw Bob in the hallway yesterday» (Алиса, читающая про SyntaxNet, увидела вчера Боба в коридоре):

long

После того, как я смотрю на этих схемы, мне кажется, что эта программа понимает английский лучше, чем я. Возможно, вы сейчас задумались, а так ли вообще необходима система, которая распознаёт синтаксис предложений. Дело в том, что конструкции на натуральных языках могут иметь разные синтаксические структуры в зависимости от контекста. Этих вероятных схем может быть не две-три, а двадцать, тридцать или сотня, — если говорить о предложениях, в которых несколько десятков слов. И создание системы, которая может распозновать их с вероятностью в 94% — большой шаг на встречу созданию настоящего искусственного интеллекта.

Больше технических деталей можно найти в заметке в блоге Google Research.

Пётр Соковых, транслятор двоичного кода в русский язык