Программирование и онтология вакансий и резюме

Можно ли научить алгоритмы «понимать» содержание и смысл вакансий и резюме, и как это может пригодиться на практике?

Покажем на примере анализа вакансий

В исследовательском проекте «Цифровая модель рынка труда» мы собираем все вакансии и значительную часть резюме с различных job-порталов. Данные обрабатываются и заносятся в базу примерно по следующей схеме:

Схема формирования и декомпозиции вакансии в базе данных

Наиболее важными в вакансии для нас являются 2 поля:

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

Вот именно для этих полей мы и учим алгоритмы «читать и понимать».

Давайте посмотрим, как мы это делаем.

Качества и компетенции в описании вакансии

Первым делом мы сформировали «среднестатистический портрет требований» по каждой профессии следующим образом:

  1. Отсортировали вакансии по профессиям и для каждой профессии составили список требований.
  2. Прошлись по требованиям на предмет повторяющихся слов. В большинстве случаев требования начинаются со слов: «… должен быть…» и далее шел традиционный набор: ответственным, внимательным, коммуникабельным. Но за этими «высокочастотными» качествами шли еще 2-3 десятка качеств, которые, как правило, и представляли наибольшую ценность. Потому что первые три качества повторяются для большинства профессий, а вот следующий десяток даёт «цифровой слепок», уникальный для каждой профессии. Мы проверили и сравнили «отпечатки профессий» друг с другом, найдя несколько любопытных «схожестей». Но это тема для отдельной статьи.
  3. Далее мы составили «формулу требований профессии» по повторяющимся словам с присвоением веса этим словам. То есть, грубо говоря, описали «цифровой слепок» формулами.

Затем мы начали повторно сравнивать требования каждой вакансии с ее «цифровым стандартом», но с учетом новых вводных:

  • Категория компании-работодателя. Мы выделили три категории: крупные, средние, мелкие, придерживаясь тех же стандартов, что и Минтруд. И, соответственно, крупным назначили более высокий «вес».
  • Количество рабочих мест по вакансии. Чем большее число работников ищет компания по данной профессии (высокое число рабочих мест по вакансии), тем выше «вес» данных этой вакансии.

В итоге мы откалибровали «цифровой стандарт требований» с учетом «веса» от крупных компаний с большим количеством рабочих мест. Напомним, что всё это происходит автоматически для 17 000 + уникальных профессий (специальностей, должностей с учетом разрядов, категорий). Некоторые профессии (особенно мало распространенные) мы проверяем вручную на предмет адекватности построенного «стандарта требований».

Описания должностных обязанностей

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

Как правило, это выглядит так:

Некто (профессия, соискатель, работник, сотрудник, …) – […] – «двоеточие» — при­ла­га­тель­ное в крат­кой фор­ме муж­ско­го рода един­ствен­но­го чис­ла (должен, обязан, …) /либо глагол (осуществляет, выполняет, приводит, реализовывает, делает, ведет, ….) – далее следует само описание того, что должен делать сотрудник.

«Вынутые» из этой схемы описания мы слегка обрабатываем и сравниваем схожие между собой, проводя синтаксический разбор описания на базе доработанного нами справочника «Новый частотный словарь русской лексики» (Н. Ляшевская, С. А. Шаров), который создан в рамках проекта «Национальный корпус русского языка» (https://ruscorpora.ru/new/).

Сам алгоритм обработки описаний должностных обязанностей − тот же самый, что и при обработке требований к соискателю:

  • создали «средний портрет»,
  • добавили «вес» крупным и массовым работодателям, ввели коэффициент частотности (повторяемости) описания обязанностей внутри профессии,
  • получили усредненное описание должностных обязанностей для каждой профессии.

Как всё это используется

Сейчас процесс автоматизирован следующим образом:

Схема формирования «портрета профессии»

Полученный портрет профессии используется в проектах:

  • Атлас современных профессий, специальностей и должностей («Навигатум»).
  • Система тестирования и побора профессий («Всеумел»).
  • Профориентационные медиаматериалы для школьников.

Что делаем сейчас?

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

Применение этой программы к базе из 17000+ профессий позволяет получить таблицу, в которой профессии «разложены» по этим параметрам. Мы можем увидеть по каждой категории, каких профессий больше, каких меньше. Более значимо то, что мы можем сравнить полученные данные с существующими справочниками профессий – таблицами, в которых эксперты вручную описывают и классифицируют профессии.

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

Что получится в итоге?

Конечным продуктом станет энциклопедия профессий, формируемая и обновляемая онлайн. А данные для нее в виде таблиц можно будет использовать в любом HR- или профориентационном онлайн-проекте.

Обращаем ваше внимание, что информация, получаемая из обработки и анализа вакансий, является дополняющей описание профессий, а не базовой и единственной.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *