NLP-инженер: чем он занимается и как помогает компаниям становиться умнее

NLP-инженер (от англ. natural language processing) — специалист, который обладает компетенциями в сферах прикладной математики, лингвистики и разработки программного обеспечения. 

Вместе с командой системы управления репутацией и анализа медиа «СКАН-Интерфакс» разобрались, что это за профессия, какими навыками нужно обладать для старта и что нужно изучить, чтобы претендовать на должность NLP-инженера.

NLP-инженер: чем он занимается и как помогает компаниям становиться умнее

Команда системы «СКАН-Интерфакс»

Кто такой NLP-инженер и чем он занимается в компании

Как технический специалист NLP-инженер отвечает за расширение возможностей бизнеса при обработке информации на естественных языках. Он реализует наукоёмкие правила и алгоритмы и применяет инструменты машинного обучения (англ. machine learning, ML).

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

Ну и, конечно же, NLP-инженер должен быть неплохим программистом. Чтобы анализировать и извлекать данные из текстов, необходимо не только отвечать на множество инженерных вызовов, но и уметь правильно готовить такие данные.

В 2017 году в области искусственного интеллекта и машинного обучения произошла революция. Появилась нейросетевая архитектура «трансформер». Она позволила добиться невероятных результатов в решении задач автоматизированной обработки текстовых данных.

NLP-инженеры получили в свои руки инструменты, которые в короткие сроки значительно повысили качество анализа неструктурированной информации.

Взаимосвязь математики и лингвистики

В профессии NLP-инженера математика и лингвистика не могут существовать друг без друга. Эти две противоположные науки связаны через необходимость создания математической модели естественного языка.

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

Если математик-лингвист не понимает русский язык, то он не сможет написать правило, которое будет действовать на обработку падежей в тексте.

Старт профессии: где учиться и куда пойти работать

В российских университетах много программ бакалавриата и магистратуры в различных отраслях Data Science. В МГУ имени М.В. Ломоносова на механико-математическом и филологическом факультете есть:

  • «Фундаментальная и прикладная лингвистика»
  • «Математика»
  • «Прикладная математика и информатика»
  • «Фундаментальная информатика и информационные технологии»
  • «Математика и компьютерные науки»

В ВШЭ — «Прикладной анализ данных и искусственный интеллект», «Компьютерные науки и анализ данных», «Компьютерные системы и сети».

В МГТУ имени Н.Э. Баумана — «Информатика, искусственный интеллект и системы управления», «Системы обработки информации и управления», «Фундаментальная и компьютерная лингвистика» и другие.

Чтобы определиться с направлением обучения, необходимо понять, какая из областей вас интересует:

  • Если в ваши цели входит самостоятельное изобретение инновационных технологий в ИИ, то в университете нужна профильная математика с углублённым изучением Data Science и Deep Learning.
  • Если же вы стремитесь к решению прикладных и бизнес-задач и готовы использовать уже существующие решения, то предпочтение стоит отдать разработке программного обеспечения и ML-инфраструктуры. К промышленным языкам разработки относятся C++, C# и Java. Область знаний — разработка распределённых систем. Средства MLOps — инфраструктура для автоматизации работы с машинным обучением: MLFlow и AirFlow.

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

Любой естественный язык, в том числе русский, непрерывно развивается — появляются новые слова и понятия, устойчивые словосочетания, меняется информационный фон, и многие ранее важные контексты становятся статистически незначимыми. Из-за этого необходимо постоянно адаптировать лингвистическую логику, алгоритмы и статистические модели к изменчивости языка.

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

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

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

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

Личные качества и профессиональные навыки, которые нужны NLP-инженеру

Профильные навыки, без которых специалист не сможет выполнять поставленные задачи:

  • Знание профильной математической базы.
  • Базовое понимание русского языка (морфология, семантика, падежи).
  • Знание программирования на уровне middle и выше.
  • Знание Python, в особенности для NLP-инженера.
  • Умение находить самое простое решение — оно всегда лучшее.
  • Понимание алгоритмов машинного обучения: нейронные сети, алгоритмы кластеризации, логистическая регрессия.
  • Знание промышленных языков разработки: C++, C#, Java.

Личные качества позволяют эффективно выполнять рабочие задачи и продвигаться вверх по карьерной лестнице. Самые основные из них:

  • Умение работать с людьми.
  • Лидерские качества.
  • Внимательность.
  • Желание углублять знания в разных областях IT.
  • Стрессоустойчивость: работа не из простых.
  • Ответственный подход к работе.

Повышение компетенции — один из ключевых моментов в работе IT-специалистов. У NLP-специалистов это происходит в процессе работы.

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

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

NLP-инженер: чем он занимается и как помогает компаниям становиться умнее Профессия

Python-разработчик с нуля

Узнать больше

  • Освоите один из самых универсальных языков программирования
  • Добавите в портфолио три полностью работоспособных проекта
  • Получите опыт работы в команде — выполните совместный проект с одногруппниками

Работа NLP-инженера на практике

NLP-инженеры могут поделить свою работу на две сферы:

  1. Плановые задачи по разработке и поддержке существующих функций системы.
  2. Факультативные исследовательские задачи: разработка стратегии улучшения бизнес-процессов, проверка аналитических гипотез, поиск новых подходов к решению разных задач.

В «СКАН-Интерфаксе» работа специалистов делится на два блока.

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

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

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

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

Для повышения точности связывания именованных сущностей из текста с организациями из базы данных «СПАРК» специалистам «СКАНа» необходимо было реализовать механизм классификации контекстов упоминания этих сущностей по видам экономической деятельности в соответствии с ОКВЭД.

То есть если в тексте упоминается некая компания ООО «Рога и Копыта» в следующем контексте: «За прошлый год ООО «Рога и Копыта» закупило 200 единиц сельскохозяйственной техники, поэтому в этом году полностью готово к началу посевной кампании», — то система должна по этому предложению определить, что эта компания, скорее всего, соответствует коду 01 ОКВЭД, а именно «Растениеводство и животноводство, охота и предоставление соответствующих услуг в этих областях».

Это позволило бы системе в дальнейшем при решении задачи связывания сущностей — идентификации по «СПАРК» — отсеять варианты с неподходящим кодом экономической деятельности.

Что в «СКАНе» сделали для решения этой задачи:

  1. Для каждого кода ОКВЭД верхнего уровня собрали новостные документы с упоминаниями компаний, у которых в уставных документах указан соответствующий вид экономической деятельности как основной.
  2. Из этих документов собрали контексты упоминания организаций: 1–2 предложения до упоминания и 1–2 предложения — после упоминания.
  3. На основе выделенных контекстов составили словари ключевых слов для каждого из видов экономической деятельности.
  4. Взвесили их с помощью TF-IDF — статистической меры, которая используется для оценки важности слова для какого-либо документа относительно других документов.
  5. Для каждого вида экономической деятельности обучили модель SVM-классификатора методом ONE-vs-ALL.
  6. Откорректировали параметры классификаторов для достижения требуемой точности 95%.
  7. Реализовали REST-сервис, использующий обученные модели для multilabel-классификации контекстов.
  8. Захостили сервис в k8s и реализовали его вызов в пайплайне обработки документа.

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

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

  1. Собирёт новости с упоминаниями акций, котировок, тикеров.
  2. Разметит эту выборку вручную: пометит документы, которые точно являются техническими, и те, что ими не являются.
  3. Разделит полученную выборку на две части: обучающую и тестовую в соотношении 70 на 30.
  4. Обучит модель на обучающей выборке, протестирует на тестовой.
  5. Посмотрит на показатели качества и проведёт кросс-валидацию.
  6. Проведёт экспертное тестирование на промышленных данных.
  7. Сделает выводы.









SVM или метод опорных векторов — линейный алгоритм, который используется в задачах классификации и регрессии.

REST — архитектурный стиль взаимодействия компонентов распределённого приложения в сети.

K8S или Kubernetes — платформа с открытым исходным кодом, которая автоматизирует операции с контейнеризированными приложениями.

Почему NLP-инженеры — будущее сервисов информационного поиска

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

Читать также

NLP-инженер: чем он занимается и как помогает компаниям становиться умнее Кто такой компьютерный лингвист, чем занимается и как им стать

NLP-инженер: чем он занимается и как помогает компаниям становиться умнее Что такое компьютерная лингвистика и как технологии на её основе помогают людям с ограниченными возможностями здоровья

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

NLP-инженер: чем он занимается и как помогает компаниям становиться умнее

Команда системы «СКАН-Интерфакс»

The post NLP-инженер: чем он занимается и как помогает компаниям становиться умнее first appeared on Медиа Нетологии.

Полный текст статьи читайте на Нетология