• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Книга
Verba sonandi : Représentation linguistique des cris d’animaux

Presses Universitaires de Provence, 2017.

Статья
Cкорости речи носителей кубанского диалекта кабардино-черкесского языка: устный дискурс vs. чтения текста

Мороз Г. А.

Томский журнал лингвистических и антропологических исследований. 2017. №  2. С. 9-17.

Глава в книге
Network Dynamics, Plot Analysis: Approaching the Progressive Structuration of Literary Texts
В печати

Fischer F., Göbel M., Kampkaspar D. et al.

In bk.: Digital Humanities 2017 (Montréal, 8–11 August 2017). Book of Abstracts. Montréal: McGill University, 2017.

«Разгромное ревью — отличный повод доработать код»

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

Школа лингвистики факультета гуманитарных наук НИУ ВШЭ сегодня известна как место, где хорошо делают

1.    Собственно лингвистов (на соответствующих программах бакалавриата и магистратуры)

2.    Лингвистические исследования

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

Один из таких примеров — программный пакет lingtypology, созданный и поддерживаемый преподавателем школы Георгием Морозом. Lingtypology соединяет информацию о языках из базы Glottolog с возможностями популярной JavaScript-библиотеки для создания интерактивных карт leaflet, позволяя заниматься лингвистическим картографированием. С lingtypology легко отобразить на карте распространение языковых семей и групп, показать границы тех или иных лингвистических явлений, создать интерактивную лингвистическую или лингвосоциологическую карту.

В этом году lingtypology прошёл жесткую процедуру рецензирования и стал частью rOpenSci — набора открытых программ для научных исследований, написанных на языке R. Число скачиваний пакета превышает пять тысяч, что для узкоспециализированного научного инструмента является хорошим результатом. Мы узнали у Георгия Алексеевича, как он создавал lingtypology, почему важно «поменять мышление» при разработке научных программ и чем полезны разгромные рецензии.

Георгий Мороз
старший преподаватель школы лингвистики НИУ ВШЭ

В школе лингвистики мы делаем действительно много всего, но это часто заканчивается ровно в тот момент, когда кто-то выкладывает свой скрипт на Github. Во-первых, никто об этом не узнает, во-вторых, не сможет повторить и будет делать то же самое с нуля. Поэтому важно доделать продукт до готового модуля, пакета, библиотеки.

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

В какой-то момент я начал писать пакет, который был нужен для работы с картами. До этого мы пользовались очень тяжелым инструментом. Его можно было давать студентам, но каждый раз рассказывать, как им пользоваться, было очень сложно. Я понял, что объяснять это студентам каждый год не готов, и летом 2016 года начал разработку.

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

Есть хорошие лингвистические решения, например, по распознаванию речи, которые, к сожалению, оформлены как миллион отдельных скриптов. Их нужно запустить в правильной последовательности, и если все правильно, то случится магия. Это мучение. Делая пакет, вы много раз подумаете, что стоит туда включать, и постараетесь сделать его установку максимально простой. Больше и вероятность того, что вы попытаетесь сделать ваш продукт кросс-платформенным, работающим на разных операционных системах и т.д. То есть вы чуть больше подумаете о людях, которые будут этим пользоваться.

Сначала lingtypology нужно было опубликовать в CRAN — общем репозитории для всех пакетов на языке R. Это не так просто (например, по сравнению с публикацией модуля для Python), поскольку там есть много разных формальных требований. Но зато твой пакет пытаются собрать на всех возможных системах и машинах — разных разрядностей и т.п. Уже там люди начали мне писать и предлагать улучшения.

За первый месяц после размещения было 107 откликов. Потом я написал в лингвистическую рассылку Linguist list и получил еще один всплеск отзывов. Люди писали и говорили: «о, здорово, но еще хотелось бы это», и я добавлял возможность, или «ой, классно, только мне совсем не нравится это», и я исправлял ошибку. Так было с жестовыми языками: их координаты были неверными, и коллега-лингвист просто прислал мне список верных координат.

Лингвисты присылали отклики, но потом им надоело — и я подумал про rOpenSci. Не все о них слышали, но это сообщество сейчас набирает обороты. Их цель — собирать программные пакеты для научных исследований. У них есть некоторый алгоритм принятия пакета, пройдя который, разработчик понимает очень много всего. В отличие от CRAN, здесь требования не только формально-технические.

Период рецензии в rOpenSci достаточно долгий. Мне назначили двух рецензентов, один из них отреагировал быстро, а другой думал очень долго и написал очень длинное, подробное и разгромное ревью. Каким было мое первое ощущение? Я очень грустил. Но потом я стал смотреть, какие кусочки этого ревью можно использовать. Потому что когда пишут, что «этот пакет никому не нужен, потому что не делает А, B, С», — это может быть отличным поводом реализовать А, B или С. И я действительно многое сделал по их следам. Я исправлял около месяца и верю, что пакет в результате стал лучше. В итоге меня взяли. Теперь в rOpenSci есть группа, которая занимается моим пакетом. Я в нее, конечно, тоже включен. После этого был новый всплеск скачиваний.