Двусмысленный русский

Научить компьютер отличать водяной пар от пар в университете
Полина Огородникова    

Гражданская наука: досье проекта

Наука: лингвистика
Кто исследует: проект «Открытый корпус»
Объект: морфологические неоднозначности
Цель: создать базу размеченных текстов из 1 000 000 русских слов
Место: любая точка мира
Срок: открыт без даты завершения
Сбор испытателей: открыт без даты завершения

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

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

Одно из решений — создание размеченного корпуса текстов, как, например, база данных OpenCorpora, которую почти десять лет назад основала команда лингвистов и программистов из Петербурга. Эта база включает самые разные тексты на русском (от рассказов Чехова до статей из Абсурдопедии), а также разметку: падежи существительных, роды прилагательных, числа глаголов и многое другое. Всё это нужно, чтобы обучать компьютерные программы анализировать текст.

— Давайте представим, что на дворе уже 2040 год. Компьютеры идеально понимают вашу речь и могут вести с вами разговор, — предлагает Виктор Бочаров, один из участников проекта OpenCorpora. — Чтобы понять смысл слов в предложении, программе нужно провести несколько этапов анализа. Одним из первых станет морфологический анализ, задача которого — определить, в какой форме стоит то или иное слово. Чтобы натренировать компьютер — например, с помощью машинного обучения — и проверить точность его работы, необходим правильно размеченный эталон. Наш проект и есть такой эталон.

Корпусная лингвистика — раздел языкознания, занимающийся разработкой, созданием и использованием текстовых корпусов. Термин введён в употребление в 1960-е годы в связи с развитием практики создания корпусов, которому начиная с 1980-х способствовало развитие вычислительной техники.

Найти сущность Анджелины Джоли

«…На гигантских каблучищах, а Собчак — на супергигантских…» — на экране моего компьютера появляется несколько примеров для разметки. В каждом нужно определить род существительного. Из десяти примеров два про Ксению Собчак, три про снайпера иракского партизанского движения Джубу и пять со словом «пара». С родом Собчак и Джубы я боюсь ошибиться, поэтому разбираюсь с «парами». Сначала речь идёт о союзе мужчины и женщины — значит, женский род. Потом о газообразном состоянии вещества, значит — мужской. Затем об учёбе в университете, то есть снова женский. Но вот система подкидывает мне уж слишком оригинальный пример: «пам-пам-парам-пам-пам». К такому учительница по русскому меня не готовила.

Чтобы собрать большую коллекцию размеченных примеров, лингвистам не обойтись без волонтёров — именно они, по задумке авторов проекта, могут пополнять лингвистическую базу данных, находясь в любой точке мира. Для этого не требуются специальные знания — достаточно быть носителем русского языка, зарегистрироваться на сайте, прочитать несложную инструкцию и потратить 15–20 минут на разметку примеров.

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

— Я долго занималась модерацией и писала инструкции, как правильно размечать примеры, — рассказывает Светлана Алексеева, одна из участниц проекта, научный сотрудник лаборатории когнитивных исследований СПбГУ. — Самые сложные задания обычно связаны со служебными частями речи. Например, слово «так» может быть и наречием, и союзом, и частицей. В самых простых примерах нужно отличить, например, предлог «из» от формы женского имени Иза или предлог «для» от деепричастия «для» (глагол «длить»).

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

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

— Ещё на сайте можно заняться «разметкой сущностей» — поискать в тексте имена людей, названия мест или компаний. Простой пример: Анджелина Джоли, — объясняет участница команды OpenCorpora Ирина Крылова. — Анджелина и Джоли — это два существительных, но вместе это сущность, имя персоны.

Стать бобром 20 lvl

«Кто разметит много примеров, тому любви и бобра» — через несколько минут работы на экране появляется обаятельный мохнатый грызун. Спустя полчаса я становлюсь бобром третьего уровня — это значит, я неплохо потрудилась: в личной статистике уже 109 ответов. Хотя, конечно, до самых опытных пользователей сайта мне далеко: для бобра максимального уровня нужно разметить 500 000 примеров.

Если вместе с другими волонтёрами мы создадим команду, нам присвоят бейдж с рыбами. Если я буду часто возвращаться на сайт, меня наградят значком «Пёс» за верность проекту, а если начну выполнять задания из разных тематических блоков — дадут хамелеона. Также в списке наград есть аист — его присваивают всем новым волонтёрам, и фиолетовый значок со словом «Ещё!» — им отмечают самых жадных до заданий. Почти для каждого бейджа предусмотрено 20 уровней — в зависимости от успехов пользователя.

— А вы бобры какого уровня? — спрашиваю авторов идеи.

— Ну вот я, например, 14-го, — отвечает один из участников проекта Дмитрий Грановский. Его личный счёт перевалил за 21 000.

Ближайшая цель OpenCorpora — создать базу из 1 000 000 размеченных русских слов, для которых снята неоднозначность. Пока таких единиц всего 62 000, однако их количество растёт всё быстрее, ведь остаётся всё меньше предложений с «пробелами» — неразмеченными словами. С другой стороны, отмечают создатели проекта, оставшиеся примеры самые сложные, на работу с ними придётся потратить больше времени.

— Кстати, в финском языке морфологической неоднозначности почти нет, — объясняет Дмитрий. — В русском окончание «а» может означать и множественное число (как в слове «óкна»), и именительный падеж («машина»), и родительный падеж («человека»). В финском каждый грамматический элемент передаёт только одно значение, поэтому и слова там длинные.

Несложно догадаться, что размеченные корпуса текстов создают для разных языков. Самый большой в России — это Национальный корпус русского языка, включающий около 200 000 000 слов. Правда, работать с ним можно в основном в режиме поиска, скачать весь корпус не получится — тексты защищены авторскими правами. Во многом именно поэтому появился проект OpenCorpora: его авторы хотели сделать открытую базу, которую могли бы использовать лингвисты и разработчики со всего мира.

— Мы посчитали: чтобы разметить 1 000 000 слов, около 10 000 русскоязычных участников должны потратить примерно полчаса времени, — вспоминает Виктор Бочаров. — Поэтому мы и стали делать такие задания, которые может выполнить любой носитель — не студент-филолог и даже не отличник по русскому. Главное условие — хорошо говорить на языке, а уж мы в инструкции напишем всё, что пригодится для выполнения заданий.

Если хотите стать испытателем

Если вы смогли дочитать материал до этого места, вы точно владеете русским, а значит, можете помочь создать Открытый корпус текстов на русском языке. Для участия в проекте нужно зарегистрироваться на сайте OpenCorpora, выбрать понравившуюся группу заданий, внимательно прочитать инструкцию и начать снимать неоднозначности, к примеру, по дороге на работу или когда захочется отдохнуть от рутины.

Иллюстрации

Мира Незнамова / iStock