Чем занимаются компьютерные лингвисты

Чем занимаются компьютерные лингвисты

Рассказывает Grammarly.

Валерия Лакуста работает в команде компьютерных лингвистов в Grammarly. В своей колонке она рассказывает, какие задачи решает каждый день, чем хорош язык программирования Clojure и что делать, когда стилистические справочники расходятся во мнении.

Как устроены writing assistants
 

Writing assistants — это сервисы для работы с текстом, в основе которых лежат разные алгоритмы машинного обучения и инструменты обработки естественного языка (natural language processing, NLP). 

Онлайн-сервис Grammarly — один из первых продуктов на рынке в категории writing assistant. Он помогает в написании текстов на английском языке. Кроме проверки формальной правильности текста (грамматики, орфографии, пунктуации), он также дает рекомендации по улучшению текста в других категориях:

  • четкость (лаконичность и понятность);
  • увлекательность (словарный запас и его разнообразие);
  • тон сообщения (формальность, вежливость, уверенность).

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

А с помощью функции детектора тона можно определить, как сообщение, вероятно, будет звучать для его читателя (например, дружественно, раздраженно, оптимистично).

Навыки компьютерного лингвиста
 

Компьютерные лингвисты работают на пересечении программирования и структурной лингвистики. Часто в эту сферу приходят из филологии и перевода, но в Украине есть и вузы, которые выпускают узких специалистов (прикладных или компьютерных лингвистов). Я филолог по специальности — в университете изучала арабский и французский языки, литературу и перевод. После окончания обучения работала в компании, где познакомилась с прикладной лингвистикой. Параллельно училась самостоятельно: начала с регулярных выражений, основ программирования, специальных библиотек для обработки естественного языка. Чуть позже — приняла участие в летней школе по компьютерной лингвистике в Grammarly.

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

Пример дерева синтаксического анализа — одного из инструментов, который компьютерные лингвисты используют для описания недостатков в тексте с помощью кода.

Обработка естественного языка в Grammarly
 

NLP-команда в Grammarly отвечает за разработку рекомендаций, которые пользователи видят в нашем сервисе. 

В команде есть: 

  • компьютерные лингвисты; 
  • аналитические лингвисты;
  • прикладные исследователи (applied research scientists); 
  • ML-инженеры.

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

Компьютерные лингвисты разделены на проектные команды, которые разрабатывают приоритетные направления в функционале продукта. Например, грамматические и стилистические проверки или детектор тона. Сейчас я работаю в команде “clarity”, создаю проверки для повышения четкости и понятности текста. 

Компьютерные лингвисты в Grammarly пишут код на языке Clojure. Это редкий диалект языка Lisp, который очень удобен для описания естественного языка. Clojure работает на JVM (Java Virtual Machine), поэтому мы можем пользоваться всеми наработками Java-девелоперов, включая NLP-библиотеки. Преимущество этого языка в том, что он позволяет писать высокоэффективные и быстрые алгоритмы в краткие сроки.

Про исследовательскую работу
 

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

Перед тем, как начать писать код, лингвист консультируется со стилистическими справочниками, грамматическими пособиями, читает блоги по грамматике. Часто стилистические справочники (например, Associated Press Stylebook, Garner's Modern English Usage, APA) дают разные рекомендации. Всегда учитываем ту рекомендацию, на которой сходится большинство из них. Если ситуация спорная, консультируемся с редакторами и аналитическими лингвистами.

Когда я присоединилась к Grammarly, мне нужно было написать проверку, которая трансформирует цифры в слова в начале предложения (number spelling).

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

Ещё статьи
Как системы работают с высокими нагрузками.
Зачем нужны библиотеки для векторизации.