КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ МОДУЛЯ СБОРА ДАННЫХ О ВАКАНСИЯХ ДЛЯ ЭКСПЕРТНОЙ СИСТЕМЫ

Научная статья
DOI:
https://doi.org/10.23670/IRJ.2020.92.2.014
Выпуск: № 2 (92), 2020
Опубликована:
2020/02/17
PDF

КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ МОДУЛЯ СБОРА ДАННЫХ О ВАКАНСИЯХ ДЛЯ ЭКСПЕРТНОЙ СИСТЕМЫ

Научная статья

Турков Е.С.1, *, Степанов Ю.А.2

2 ORCID ID 0000-0001-7552-6857;

1, 2 Кемеровского государственного университета, Кемерово, Россия

* Корреспондирующий автор (deepekey[at]yandex.ru)

Аннотация

Рассмотрение двух методов получения данных с внешних источников. Описание модуля, который будет осуществлять сбор необходимых данных для разрабатываемой экспертной системы, она будет помогать формировать учебный план сотрудникам ответственных за образовательные программы в ВУЗе. Модуль будет добывать данные через API популярного сайта-агрегатора вакансий компании HeadHunter, и сохранять их в базе данных для дальнейшего использования модулем анализа, который будет выдавать отчёт о необходимых профессиональных компетенциях в зависимости от вида деятельности.

Ключевые слова: экспертная система, data mining, синтаксический анализ (парсинг), API.

CONCEPTUAL MODEL OF VACANCY DATA COLLECTION MODULE FOR EXPERT SYSTEM

Research article

Turkov E.S.1, *, Stepanov Yu.A.2

2 ORCID ID 0000-0001-7552-6857;

1, 2 Kemerovo State University, Kemerovo, Russia

* Corresponding author (deepekey[at]yandex.ru)

Abstract

The authors consider two methods for obtaining data from external sources. The description of the module that collects the necessary data for the developed expert system, it helps to formulate the curriculum for the staff responsible for educational programs at the university. The module extracts data through the API of the popular HeadHunter job aggregator site, and store it in a database for further use by the analysis module, which issues a report on the necessary professional competencies depending on the type of activity.

Keywords: expert system, data mining, parsing, API.

Введение

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

Методы добычи данных

Рассмотрим два метода получения данных из внешних источников. При помощи интерфейса программирования приложений (Application Programming Interface, API), то есть набора методов (функций), которые программист может использовать для доступа к функциональности программного компонента (программы, модуля, библиотеки) [1]. Данный метод позволяет получать доступ и обмениваться данными между информационными системами.

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

  • Имеется документация.
  • Определены и стандартизированы методы и функции для использования, а также их структурированный ответ.
  • Стабильность и удобство поддержки, так как при изменении клиентской часть приложения-источника, версия API не меняется.

Минусы.

  • Ограниченность, условиями использования API от приложения‑источника.
  • Требуется регистрация, авторизация и токен для приложения, чтобы использовать некоторые функции.

Второй метод это синтаксический анализ (парсинг) HTML-документа. Автоматизирует ручную работу с сайтом. Он проходит в четыре этапа [2].

  • Получение доступа к нужной странице. Для этого делают построение адреса веб-страницы с нужными параметрами.
  • Поиск данных. Загружается HTML-документ сайта, разбивается весь текст на лексемы, выделяя необходимую информацию.
  • Извлечение информации. Поиск данных происходит за счёт регулярных выражений, HTML-тегам, описывающих цель поиска. Они помогают выделить из всего документа только нужные фрагменты.
  • Сохранение данных. Далее нужные данные сохраняются в нужном виде и месте. В случае данного модуля это база данных.

Плюсы этого метода при разработке модуля сбора данных.

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

Минусы.

  • Использование регулируется правовыми нормами.
  • Требуются использовать меры предосторожности в работе скрипта, так как приложение-источник может заблокировать активность, посчитав её DOS-атакой.
  • Информация должна быть в открытом доступе.
  • При любом изменении клиентской часть сайта, есть вероятность отказа работы парсинг-скрипта.

Общий минус данных методов это ресурсоемкость, большая длительность при больших объемах данных.

Концептуальная модель

В качестве языка разработки будет Python с использованием библиотек requests для отправки запросов, psycopg2 для работы с базой данных [3], [4]. А для хранения данных система управления базами данных PostgreSQL [5]. Модуль будет работать в консольном режиме.

Модуль будет использовать API сайта-агрегатора вакансий, посылая GET-запросы на основе настроек пользователя, где будет получать ответ в виде формата JSON. Далее из этого JSON объекта будет выделена нужная информация, при помощи ключей описанных в документации к API [6]. Необходимая информация для модуля анализа это:

  • описание вакансии;
  • информация о ключевых навыках;
  • ссылка на вакансию;
  • описание компании, а именно название и отрасль компании;
  • название вакансии и профессиональная область;
  • дата и время публикации.

Затем при помощи SQL-запросов выделенная информация заносится базу данных, где ей заранее присвоена именованная группа, в которой описана дата формирования и при каких настройках делались запросы к API [7].

Модуль входит в структуру экспертной системы и используется модулем анализа, предоставляя ему данные о вакансиях хранящиеся в базе при помощи SQL-запросов. В общем, экспертная система состоит из четырех модулей:

  • «модуль статистики», который на основе данных от ВУЗа введет статистику и делает вывод о соответствии компетенций выпускников требованиям современного рынка труда;
  • «модуль сбора данных», который при помощи программного интерфейса собирает необходимые данные с сайта hh.ru, для последующего анализа;
  • «модуль анализа», при помощи искусственного интеллекта будет помогать формировать учебный план сотрудникам, которые ответственные за образовательные программы в ВУЗе.
  • «модуль вывода результатов», с которым пользователь будет взаимодействовать для настройки и просмотра результатов работы.

На рисунке 1 изображена концептуальная модель модуля добычи данных при использовании API.

25-02-2020 17-26-03

Рис. 1 – Концептуальная модель модуля сбора данных (API)

 

Основная задача модуля сбора данных является предоставление данных о вакансиях модулю анализа.

Основные функциональные задачи.

  • Автоматизированный сбор и хранение данных о вакансиях находящихся сайте hh.ru.
  • Возможность добавление вакансий вручную. Вакансия оформляется в формат JSON, а в блоке настроек выбирается соответствующий параметр.
  • Возможность настройки запроса.
  • Предоставление данных модулю анализа.

Пример работы модуля добычи данных

Пользователю нужно собрать данные о вакансиях связанных с мобильной разработкой для того, чтобы в дальнейшем использовать эти данные в модуле анализа. Для этого он в блок настроек передает параметры, такие как название пакета данных, например «Мобильный разработчик», далее вводит название вакансии или что-то с ней связанное, допустим «Мобильная разработка android», после он может начать поиск или выбрать опционально регион, профессиональная область, специализацию, период публикаций. В примере рассмотрим без опциональных параметров. Теперь модуль формирует из настроек запросы и отправляет их на сайт-агрегатор, в виде GET-запроса. Получаем JSON объект, из которого можно увидеть то, что было найдено 1408 вакансий отвечающих по данному запросу. Далее модуль  из каждой вакансии выделяет нужные нам данные при помощи ключей. Из собранных данных модуль формирует SQL-запросы, которые добавляют их в базу данных. В итоги работы модуля получаем записи в таблицах базы данных, а именно группу «Мобильный разработчик», в которой хранится 1408 вакансий с отобранной информацией.

Данные процедура поиска ресурсоемка и требует определённого времени на работу в зависимости от количества найденных вакансий.

В дальнейшем модуль анализа будет забирать, анализировать эти данные и выдавать экспертное мнение, которое поможет сформировать индивидуальный учебный план.

Заключение

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

Данный программный модуль позволяет собирать и хранить нужные данные о вакансиях с сайта hh.ru для модуля анализа, который в свою очередь из них делает отчёт, который будет помогать сотрудникам ВУЗа, формировать учебный план отвечающий запросам ранка труда.

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

Или, например, в собираемую информацию добавить географические данные вакансии, и при помощи геоинформационной системы провести анализ или моделирование.

Конфликт интересов Не указан. Conflict of Interest None declared.

Список литературы / References

  1. ru. Application Programming Interface (API). [Электронный ресурс] / Tadviser.ru. –2019. – URL: http://www.tadviser.ru/a/53171 (дата обращения: 20.01.2020).
  2. Энциклопедия интернет-маркетинга, статья парсинг. [Электронный ресурс] / –2019. – URL: https://www.seonews.ru/glossary/parsing/ (дата обращения: 20.01.2020).
  3. RealPython. Requests в Python – Примеры выполнения HTTP запросов. [Электронный ресурс] / RealPython. –2019. – URL: https://python-scripts.com/requests (дата обращения: 20.01.2020).
  4. LegGnom. Статья Работа с PostgreSQL в python [Электронный ресурс] / LegGnom. –2019. – URL: https://dev-gang.ru/article/rabota-s-postgresql-v-python-xn8721sq0g/ (дата обращения: 20.01.2020).
  5. Компания «Постгрес Профессиональный». Документация к PostgreSQL11 [Электронный ресурс] / «Постгрес Профессиональный». –2019. – URL: https://postgrespro.ru/docs/postgresql/10/index (дата обращения: 20.01.2020).
  6. HeadHunter. API: документация и библиотеки. [Электронный ресурс] / HeadHunter –2019. – URL: https://github.com/hhru/api (дата обращения: 20.01.2020).
  7. Татьяна Карпова. Лекция 7. Инфологическое моделирование. [Электронный ресурс] / Татьяна Карпова –2019. – URL: https://www.intuit.ru/studies/courses/1001/297/lecture/7411 (дата обращения: 20.01.2020).
  8. Гуриков, С. Р. Основы алгоритмизации и программирования на Python : учеб. пособие / С.Р. Гуриков. — Москва : ФОРУМ : ИНФРА-М, 2018. — 343 с. — (Высшее образование: Бакалавриат). - ISBN 978-5-16-102278-8. - [Электронный ресурс] - URL: https://znanium.com/catalog/product/924699. (дата обращения: 20.01.2020).
  9. Кара-Ушанов, В. Ю. SQL — язык реляционных баз данных: Учебное пособие / Кара-Ушанов В.Ю., - 2-е изд., стер. - Москва :Флинта, Изд-во Урал. ун-та, 2017. - 156 с. ISBN 978-5-9765-3120-8. - Текст : электронный. - URL: https://znanium.com/catalog/product/947669.
  10. Белов, В. В. Проектирование информационных систем : учебник / В.В. Белов, В.И. Чистякова. - М. : КУРС, 2018. - 400 с. - ISBN 978-5-906923-53-0. – [Электронный ресурс] - URL: https://znanium.com/catalog/product/1017181. (дата обращения: 20.01.2020).

Список литературы на английском языке / References in English

  1. ru. Application Programming Interface (API). [Electronic resource] / Tadviser.ru. –2019. – URL: http://www.tadviser.ru/a/53171 (accessed: 20.01.2020). [in Russian]
  2. Enciklopediya internet-marketinga, stat'ya parsing. [Encyclopedia of Internet marketing, article parsing] [ Electronic resource] / –2019. – URL: https://www.seonews.ru/glossary/parsing/ (accessed: 20.01.2020). [in Russian]
  3. Requests в Python – Primery vypolneniya HTTP zaprosov. [Requests в Python – Examples of executing HTTP requests.] [Electronic resource] / RealPython. –2019. – URL: https://python-scripts.com/requests (accessed: 20.01.2020). [in Russian]
  4. Stat'ya Rabota s PostgreSQL v python [Article Working with PostgreSQL in python] [Electronic resource] / LegGnom. –2019. – URL: https://dev-gang.ru/article/rabota-s-postgresql-v-python-xn8721sq0g/ (accessed: 20.01.2020). [in Russian]
  5. The company «Postgres Professional». PostgreSQL 10.11 Documentation [Electronic resource] / «Postgres Professional». –2019. – URL: https://postgrespro.ru/docs/postgresql/10/index (accessed: 20.01.2020).
  6. API: documentation and libraries. [Electronic resource] / HeadHunter –2019. – URL: https://github.com/hhru/api (accessed: 20.01.2020).
  7. Tat'yana Karpova. Lekciya 7. Infologicheskoe modelirovanie. [Lecture 7. Infological modeling] [Electronic resource] / Tat'yana Karpova –2019. – URL: https://www.intuit.ru/studies/courses/1001/297/lecture/7411 (accessed: 20.01.2020).
  8. Gurikov, S. R. Osnovy algoritmizacii i programmirovaniya na Python: ucheb. Posobie [Python Algorithmization and Programming Basics: Tutorial] / Gurikov, S. R. — Moscow : FORUM : INFRA-M, 2018. — 343 p. — (Vysshee obrazovanie: Bakalavriat). - ISBN 978-5-16-102278-8. - [Electronic resource] - URL: https://znanium.com/catalog/product/924699. (accessed: 20.01.2020). [in Russian]
  9. Kara-Ushanov, V. YU. SQL — yazyk relyacionnyh baz dannyh: Uchebnoe posobie [SQL - Relational Database Language: Tutorial] / Kara-Ushanov V. YU., - 2nd edition. - Moscow : Flinta, publishing house Ural. un-ta, 2017. - 156 p. ISBN 978-5-9765-3120-8. - Text : electronic. - URL: https://znanium.com/catalog/product/947669. [in Russian]
  10. Belov, V. V. Proyektirovaniye informatsionnykh sistem : uchebnik [Information Systems Design: A Textbook] / V.V. Belov, V.I. Chistyakova. - M. : COURSE, 2018. - 400 p. - ISBN 978-5-906923-53-0. - [Electronic resource] - URL: https://znanium.com/catalog/product/1017181. (accessed: 20.01.2020). [in Russian]