NLP-инженер (NLP от англ. natural language processing) — специалист, обладающий компетенциями в сферах прикладной математики, лингвистики и разработки программного обеспечения. Сегодня предлагаем поближе познакомиться с профессией NLP-инженера, узнать об основных задачах и роли в компании. Помог разобраться в непростой теме Иван Харченко, руководитель математико-лингвистического отдела системы управления репутацией и медиа анализа «СКАН-Интерфакс».

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

Как технический специалист NLP-инженер отвечает за расширение возможностей бизнеса при обработке информации на естественных языках. NLP-инженер реализует наукоёмкие правила и алгоритмы и применяет инструменты машинного обучения. 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-инженеры могут поделить свою работу на две сферы: 

  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. Делаем выводы.

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

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

Комментарии (0)