Спасибо, что вы с нами!

О чем речь

Как лингвисты и программисты искали общий язык на лингвохакатоне в Томске

Недавно в Томске прошел лингвохакатон, где собрались студенты, владеющие как языками, на которых люди разговаривают друг с другом, так и языками, на которых люди управляются с машинами. Участникам надо было за два дня придумать, как научить машину правильно понимать, о чем говорят люди и что они имеют в виду. Корреспондент «Чердака» в Томске побывала на хакатоне, чтобы выяснить, как лингвисты и программисты находят общий язык.
Добавить в закладки
Комментарии
...

— Лингвисты всегда знали, как сложно устроен язык. Но остальные люди задумались об этом только тогда, когда попытались формализовать его для речевого взаимодействия с машиной. Так появилась компьютерная лингвистика, — говорит Зоя Резанова, профессор Томского государственного университета.

Лаборатория Резановой организовала в Томске лингвохакатон для лингвистов и программистов. После 30 часов работы команды представили на суд жюри четыре решения предложенных им задач. Эти продукты, конечно, еще далеки от финальных версий, но, главное, участникам хакатона удалось реализовать сотрудничество «технарей» и «гуманитариев».

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

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

Фото: Яна Пчелинцева

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

— А еще программа определяет эмоциональную окраску отзыва. Это так называемый sentiment analysis, анализ тональности текста. Мы создали базу данных, в которой разметили тональность часто используемых слов. По этой базе машина учится соотносить тексты на шкале «позитивный — негативный». У нас были только нейтральные и позитивные оценки — это же поздравления. Но в дальнейшем можно базу расширить, и тогда компьютер научится определять и отрицательные отзывы, — продолжают презентацию лингвисты Роман и Екатерина. Анализ текстов — их епархия.

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

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

Фото: Яна Пчелинцева

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

— Сейчас редко бывает, что программеру приходится решать задачи в одиночку. Почти всегда мы пересекаемся с какой-либо иной отраслью знаний. И это все люди, далекие от программирования, так что лингвисты в этом смысле ничем особо не выделяются, — Сергей излагает свой взгляд на сотрудничество в команде. Он программист, как и Полина. Мария и Максим — лингвисты.

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

— Следующий шаг — надо научить программу учитывать контекст использования слова. Например, возьмем слово «уважаемый»: то ли это просто обращение, то ли это «банк, уважаемый всеми». Анализировать такие данные, выявлять закономерности и выбирать нужные слова естественного языка будет обучаемая нейросеть. По уже размеченным данным она как бы впитает знание и повторит с высокой точностью на новых текстах. В теории можно, наверно, использовать облачные когнитивные технологии, такие как IBM Watson. Но для этого нужно гораздо больше времени и знаний, — признается Полина.

«Ребята, да это стартап!»

Четвертая команда полностью состояла из магистрантов, которые уже учатся на компьютерных лингвистов. Наверное, поэтому их проект, по словам жюри, оказался наиболее реальным. «Да это же стартап, ребята!» — шутят участники команды: Татьяна, Антон, Анна, Долана и Александр.

Фото: Яна Пчелинцева

Их задача — проанализировать новости, которые поступают в единую базу с сайтов федеральных ведомств, и рассортировать эти тексты по регионам. На первый взгляд, ничего сложного. Берешь парсер — систему семантического анализа слов, которая выделяет нужные ключи (например, названия населенных пунктов). Присоединяешь базу данных, где описаны это населенные пункты. Раз — и заработало! Но нет, тут есть подводные камни.

— Выделяя географические сущности в текстах, мы отсекали окончания, чтобы объединить однокоренные слова. Например, Яхрома, Яхромой, яхромцы — и так далее. Вряд ли у корня «яхром» будет иное значение, кроме обозначения населенного пункта. А что насчет села Ясное с корнем «ясн»? — хитро смотрит на зрителей Антон.

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

— Таких проблемных корней немного, так что наш алгоритм работает в целом, а возможность ошибки пока будет отслеживать все-таки носитель языка, человек, — продолжает Александр.

Фото: Яна Пчелинцева

Еще один нерешенный вопрос — омонимичные названия. Крымский мост — это Керчь или Москва? А Московский вокзал вообще есть в нескольких городах. Омонимы — главная проблема компьютерной лингвистики. При общении мы улавливаем контекст, в котором употребляется слово, контекст поясняет нам значение слов. Но решать подобные задачи машине пока что очень сложно. И специалисты не до конца понимают, как это можно в принципе реализовать. Единственное, что понятно: для этой задачи необходимо то самое сотрудничество лингвистов и программистов.

Победили, конечно, магистранты. Но опыт и новые знания получили все.

— Да мы тут за два дня узнали больше, чем за полгода лекций! — смеется Гулхар.

«Это было бы слишком сложно для одного человека», — говорили почти все участники хакатона про свои задачи. Конечно, работа в команде помогала. Кроме того, в таких проектах никто не может оставаться только программистом или только лингвистом. Как заметила Зоя Резанова, эпоха деления специалистов на гуманитариев и технарей прошла. Добро пожаловать в эру digital humanities.

Добавить в закладки
Комментарии
...
Вам понравилась публикация?
Расскажите что вы думаете и мы подберем подходящие материалы