System of classification for personnel selection based upon Ukrainian language ana-lyze
The article describes a classification system with natural language processing. Many systems use neural networks, but it needs massive amounts of data for training, which is not always available. Authors propose to use ontologies in such systems. As example of such approach it is shown the classific...
Збережено в:
Дата: | 2021 |
---|---|
Автори: | , |
Формат: | Стаття |
Мова: | Ukrainian |
Опубліковано: |
Інститут програмних систем НАН України
2021
|
Теми: | |
Онлайн доступ: | https://pp.isofts.kiev.ua/index.php/ojs1/article/view/437 |
Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
Назва журналу: | Problems in programming |
Завантажити файл: |
Репозитарії
Problems in programmingid |
pp_isofts_kiev_ua-article-437 |
---|---|
record_format |
ojs |
resource_txt_mv |
ppisoftskievua/51/73ba44f94809af8d5538dc7490e36951.pdf |
spelling |
pp_isofts_kiev_ua-article-4372024-04-26T22:46:30Z System of classification for personnel selection based upon Ukrainian language ana-lyze Класифікаційна система з підбору персоналу, базована на аналізаторі української мови Zhezherun, O.P. Ryepkin, M.S. classification system; knowledge base; ontology; Protégé; natural language processing; Ukrainian language processing UDC 004.89 класифікаційна система; база знань; онтологія; Protégé; аналіз природньої мови; аналіз української мови УДК 004.89 The article describes a classification system with natural language processing. Many systems use neural networks, but it needs massive amounts of data for training, which is not always available. Authors propose to use ontologies in such systems. As example of such approach it is shown the classification system, which helps to form a list of the best candidates during the recruitment process. An overview of the methods for ontologies constructing and language analyzers appropriate for classification systems are presented. The system in the form of a knowledge base is constracted. Described system supports Ukrainian and English languages. The possible ways of system expansion is regarded.Problems in programming 2020; 4: 34-40 У статті розглядається класифікаційна системах, яка базується на аналізі природньої мови. В багатьох таких системах використовуються нейронні мережі, проте вони потребують даних для навчання, які не завжди наявні. Автори пропонують використання онтологій в подібних системах аналізу природньої мови. В якості прикладу представлено класифікаційну систему, яка допомагає сформувати список найкращих кандидатів під час підбору персоналу. Представлено огляд методів побудови онтологій та мовних аналізаторів, доречних для класифікаційних систем. Побудовано систему у вигляді бази знань. Здійснена підтримка української та англійської мов у класифікаційній системі. Описані можливості розширення системи.Problems in programming 2020; 4: 34-40 Інститут програмних систем НАН України 2021-01-25 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/437 10.15407/pp2020.04.034 PROBLEMS IN PROGRAMMING; No 4 (2020); 34-40 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 4 (2020); 34-40 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 4 (2020); 34-40 1727-4907 10.15407/pp2020.04 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/437/441 Copyright (c) 2021 PROBLEMS IN PROGRAMMING |
institution |
Problems in programming |
baseUrl_str |
https://pp.isofts.kiev.ua/index.php/ojs1/oai |
datestamp_date |
2024-04-26T22:46:30Z |
collection |
OJS |
language |
Ukrainian |
topic |
classification system knowledge base ontology Protégé natural language processing Ukrainian language processing UDC 004.89 |
spellingShingle |
classification system knowledge base ontology Protégé natural language processing Ukrainian language processing UDC 004.89 Zhezherun, O.P. Ryepkin, M.S. System of classification for personnel selection based upon Ukrainian language ana-lyze |
topic_facet |
classification system knowledge base ontology Protégé natural language processing Ukrainian language processing UDC 004.89 класифікаційна система база знань онтологія Protégé аналіз природньої мови аналіз української мови УДК 004.89 |
format |
Article |
author |
Zhezherun, O.P. Ryepkin, M.S. |
author_facet |
Zhezherun, O.P. Ryepkin, M.S. |
author_sort |
Zhezherun, O.P. |
title |
System of classification for personnel selection based upon Ukrainian language ana-lyze |
title_short |
System of classification for personnel selection based upon Ukrainian language ana-lyze |
title_full |
System of classification for personnel selection based upon Ukrainian language ana-lyze |
title_fullStr |
System of classification for personnel selection based upon Ukrainian language ana-lyze |
title_full_unstemmed |
System of classification for personnel selection based upon Ukrainian language ana-lyze |
title_sort |
system of classification for personnel selection based upon ukrainian language ana-lyze |
title_alt |
Класифікаційна система з підбору персоналу, базована на аналізаторі української мови |
description |
The article describes a classification system with natural language processing. Many systems use neural networks, but it needs massive amounts of data for training, which is not always available. Authors propose to use ontologies in such systems. As example of such approach it is shown the classification system, which helps to form a list of the best candidates during the recruitment process. An overview of the methods for ontologies constructing and language analyzers appropriate for classification systems are presented. The system in the form of a knowledge base is constracted. Described system supports Ukrainian and English languages. The possible ways of system expansion is regarded.Problems in programming 2020; 4: 34-40 |
publisher |
Інститут програмних систем НАН України |
publishDate |
2021 |
url |
https://pp.isofts.kiev.ua/index.php/ojs1/article/view/437 |
work_keys_str_mv |
AT zhezherunop systemofclassificationforpersonnelselectionbaseduponukrainianlanguageanalyze AT ryepkinms systemofclassificationforpersonnelselectionbaseduponukrainianlanguageanalyze AT zhezherunop klasifíkacíjnasistemazpídborupersonalubazovananaanalízatoríukraínsʹkoímovi AT ryepkinms klasifíkacíjnasistemazpídborupersonalubazovananaanalízatoríukraínsʹkoímovi |
first_indexed |
2024-09-16T04:08:41Z |
last_indexed |
2024-09-16T04:08:41Z |
_version_ |
1818528165143773184 |
fulltext |
Моделі та засоби систем баз даних і знань
© О.П. Жежерун, М.С. Рєпкін, 2020
34 ISSN 1727-4907. Проблеми програмування. 2020. № 4
УДК 004.89 https://doi.org/10.15407/pp2020.04.034
О.П. Жежерун, М.С. Рєпкін
КЛАСИФІКАЦІЙНА СИСТЕМА З ПІДБОРУ ПЕРСОНАЛУ,
БАЗОВАНА НА АНАЛІЗАТОРІ УКРАЇНСЬКОЇ МОВИ
У статті розглядається класифікаційна системах, яка базується на аналізі природньої мови. В багатьох
таких системах використовуються нейронні мережі, проте вони потребують даних для навчання, які не
завжди наявні. Автори пропонують використання онтологій в подібних системах аналізу природньої
мови. В якості прикладу представлено класифікаційну систему, яка допомагає сформувати список най-
кращих кандидатів під час підбору персоналу. Представлено огляд методів побудови онтологій та мов-
них аналізаторів, доречних для класифікаційних систем, і побудовано систему у вигляді бази знань.
Здійснена підтримка української та англійської мов у класифікаційній системі. Описані можливості ро-
зширення системи.
Ключові слова: класифікаційна система, база знань, онтологія, Protégé, аналіз природньої мови, аналіз
української мови.
Вступ
Сьогодні у світі розробки програм-
ного забезпечення та бізнесу зростає
тенденція із зменшення присутності лю-
дини у повсякденних завданнях, особли-
во це стосується завдань монотонних або
легко алгоритмізованих. Одна з причин
цієї тенденції – значний зріст обсягу ро-
біт такого типу, які людям обробити стає
все важче. Разом із такою проблемою
прогрес приносить і часткові вирішення
у вигляді зростання обчислювальної
потужності сучасних комп’ютерів. Це
дає інженерам можливості використання
таких алгоритмів, які виконуватимуть
монотонні завдання за розумний час [1].
У ході цієї роботи, яка є продов-
женням статті «Класифікаційна система з
підбору персоналу» [2], було розглянуто
одне з таких завдань та запропоновано
метод його вирішення. Це завдання
вибору кандидатів серед великого списку
претендентів на одну з посад у компанії.
Щодня рекрутери переглядають десятки
чи сотні резюме та обирають найбільш
релевантні. Ефективність такого пошуку
не є високою, тому було вирішено авто-
матизувати саме цей процес. Як основу
системи було побудовано онтологію, яка
описує ієрархію та відношення навичок,
навчальних закладів та компаній для
найбільш ефективного та обґрунтованого
вибору кандидатів.
Онтології для побудови баз знань,
засоби реалізації та застосування
Поняття онтології з’явилось ще за
часів античності, більше ніж дві тисячі
років до появи інформаційних технологій.
У ті часи поняття онтології з’явилось у
межах філософської науки. Онтологія у
філософії – це вчення про буття, у якому
з’ясовуються фундаментальні проблеми
існування [3].
В інженерії “онтологічні” методи
зазвичай застосовуються для побудови
моделей процесів. Інженерна модель про-
цесу і є онтологією. Точніше, онтологіє
описує цю модель. Такі описи моделей є
формальними, тобто зроблені спеціальною
для цього мовою, конструкції якої завжди
інтерпретуються точно та однозначно. Це
дозволяє, наприклад, перевірити чи не іс-
нує в цьому процесі логічних протиріч [4].
Для зручної побудови необхідної онтології
було обрано інструмент Protégé. Цей дода-
ток надає зручний інтерфейс та містить в
собі багато допоміжного інструментарію:
збереження побудованої онтології у вось-
ми різних форматах, вісім найпопулярні-
ших різонерів та автоматична генерація
Java коду на основі онтології.
Для побудови онтології система
Protégé оперує наступними поняттями:
- Class – головний елемент будь-
якої онтології. За їх допомогою описується
ієрархія предметної області.
Моделі та засоби систем баз даних і знань
35
- Individual – екземпляр класу.
- Data property – властивості
класів. Зазвичай є простими типами даних,
наприклад integer/string.
- Object property – зв’язки кла-
сів між собою.
Одним з необхідних інструментів,
який надає Protégé, є різонер. Це програм-
ний застосунок, який аналізує побудовану
ієрархію та зв’язки між її сегментами. Він
є універсальним, тому не обов’язково бу-
дувати власний різонер під свою онтоло-
гію. Проте, якщо заданого функціоналу та
точності не вистачає, то, звичайно, дове-
деться дописувати свої модулі до існуючо-
го рішення [5]. Ось їх список:
- ELK
- FaCT
- HermiT
- Mastro DL-Lite Reasoner
- Ontop
- Pellet
- Pellet(Incremental)
- Jcel
Алгоритми обробки
та аналізу тексту
1. Стемінг. В інформаційному по-
шуку такий алгоритм як стемінг відомий
дуже давно. Він є базою для цієї гілки про-
грамної інженерії. Цей алгоритм дозволяє
знаходити основу слова, при цьому вона
може не збігатися з коренем слова, тому
цей алгоритм є евристикою. Проте він є
основним алгоритмом компанії Google.
Морфологія на основі стемінгу має декіль-
ка переваг. Наприклад, завдяки зменшен-
ню обсягу інформації зростає швидкість
аналізу. Найголовнішою перевагою цього
алгоритму є той факт, що навіть за відсут-
ності словника основ слів ми отримуємо
морфологічну базу необмеженого розміру.
При цьому морфологія ніколи не скаже,
що такого слова немає у словнику [6].
Серед недоліків – невисока точність
методу та неможливість синтезу на базі
без основ. Без основи ми не зможемо зро-
зуміти чи є слово дією, яку необхідно ви-
конати над певним об’єктом, чи це об’єкт
цієї дії і т. д.
У результатах роботи алгоритму
стемінгу ми бачимо, що у всіх випадках
просто відкидається закінчення слова: в
англійській мові закінчення, що характе-
ризує множину об’єкту – “s”, дієслово в
минулому часі – “ed”. Для коректної робо-
ти алгоритму треба оновлювати список
таких закінчень в залежності від мови, яку
ви аналізуєте.
2. Лематизація. Як зазначено вище,
стемінг – це кит, на якому стоїть інформа-
ційний пошук. Лематизація – це другий
кит. Цей алгоритм схожий на стемінг за
своєю метою, яка полягає у зменшенні
кількості інформації та приведення до од-
нієї основи [7]. На відміну від стемінгу,
який не гарантує, що результатом його
роботи буде корінь слова, лематизація
гарантує виокремлення кореня, або транс-
формацію слова до кореня. Для роботи
цього методу недостатньо зберігати закін-
чення та приставки слів у вибраній мові.
Цей алгоритм вимагає збереження всього
словника мови, тому що, наприклад, до
слів у множині може не тільки додаватись
відповідне закінчення, а ще повністю змі-
нюватись слово. Теж саме можна сказати
про дієслова у різних часах.
3. POS-tagging (Part Of Speech
tagging) – алгоритм класифікації слів за
частинами мови, який також є основним
алгоритмом інформаційного пошуку. Сам
по собі алгоритм є низького рівня, за до-
помогою якого можна побудувати свою
пошукову систему. Алгоритм не має пев-
ної послідовності дій, адже в кожній мові
існують свої правила морфології, але най-
частіша імплементація – це виокремлення
закінчення слова, його аналіз і класифіка-
ція всього слова [8].
Також використовується аналіз по-
рядку слів для мов із фіксованим порядком
у реченні. У роботі використано бібліотеку
nltk для англійскьої та pullenti для україн-
ської, які класифікують наступні типи
слів:
- CC – координуючі сполучники
- DT – коми, крапки…
- FW – іноземне слово
- JJ – прикметник
- JJR – порівняльна форма прик-
метника
- JJS – вища порівняльна форма
- NN – іменник
Моделі та засоби систем баз даних і знань
36
- VB – дієслово (інфінітив)
- VBD – дієслово в минулому
часі
- та інші…
Огляд побудованої онтології
Онтологія, яка була побудована у
редакторі Protégé показана на рис. 1.
Рис. 1. Побудована онтологія
Далі опишемо тільки основні класи
онтології.
Career. Клас використовується для
опису вакансій в компанії та є підкласом
головного класу “Thing”, тобто є класом
найвищого рівня в цій онтології. Має
object property “requireSkill”, що описує
необхідні навички для посади. Та має такі
data properties: “career_id”, “career_name”.
Resume. Є абстрактним класом та
зберігає дані про користувачів, які лишили
свої резюме на обрану вакансію. Має на-
ступні data properties: “resume_id” – уніка-
льний номер резюме, “resume_file_name” –
шлях, де збережено файл із резюме,
“resume_link” – всі покликання в файлі з
резюме, “candidate_terms” – усі можливі
терміни, які зустрілись в резюме, але вони
ще не наявні в базі знань, щоб адміністра-
тор зміг занести їх в один з класів онтоло-
гії. Має object property – “resumeHasSkill”,
що зберігає посилання на всі навички, що
було знайдено у файлі з резюме.
Company. В цьому класі зберіга-
ються усі IT компанії за 2020 рік . Має на-
ступні data property – “company_id” – уні-
кальний номер компанії, “company_name”
– назва компанії.
University. В цьому класі зібрані всі
університети України . Має data property –
“university_id” – унікальний номер універси-
тету, “university_name” – назва університету.
Skill. Є абстрактним класом, він ви-
значає можливості користувачів та необ-
хідні навички для здобуття визначеної ро-
боти. Має наступні data properties –
“skill_id” – визначає унікальний номер
навички та “skill_name” – ім’я навички, що
буде показуватись користувачу.
Огляд розробленого аналізатора
текста
Побудований аналізатор текста
працює з файлами у формати “PDF”. Коли
кандидат надсилає своє резюме, система
зберігає його на диск в директорію, яка
відповідає обраній кандидатом вакансії.
Після цього аналізатор починає свою ро-
боту. Далі будуть описані основні етапи
роботи аналізатора з прикладами.
Етап 1. Прийняття резюме та попе-
редня обробка (рис. 2).
Цей етап передбачає виконання на-
ступних кроків.
1. Відкриття файлу.
2. Видалення всіх несуттєвих си-
мволів, які не містять інформації. Напри-
клад, серед них є “\n”, “\r”, “|” та інші.
3. Пошук та видалення в тексті
всіх адрес електронної пошти та телефон-
них номерів українського стандарту. По-
шук здійснюється за допомогою регуляр-
них виразів. Все, знаходиться на цьому
етапі, зберігається в онтології в класі
“Resume” в data property “resume_link” та
“resume_email”.
4. Переведення тексту до нижньо-
го регістру.
5. Видалення “стоп слів”, які не
містять інформації. Список цих слів
було взято з бібліотеки “get_stop_words”
(рис. 3).
Після виконання усіх зазначених
кроків першого етапу надіслане резюме
має вигляд (рис. 4).
Моделі та засоби систем баз даних і знань
37
Рис. 2. Приклад надісланого резюме
Рис. 3. Приклад «стоп-слів»
Моделі та засоби систем баз даних і знань
38
Рис. 4. Резюме після першого етапу
Етап 2. На цьому етапі здійснюєть-
ся пошук по термінах, які вже наявні в он-
тології. Під час цього процесу виділяються
терміни таких типів.
1. Компанії, в яких кандидат пра-
цював раніше. База IT компаній була взята
з сайту dou.ua і нараховує 7400 позицій.
2. Університет, в якому навчався
кандидат. База університетів була взята з
сайту vstup.info.
3. Навички, якими володіє канди-
дат. Цю базу було створено вручну, врахо-
вуючи всі популярні мови програмування,
фреймворки та інші технології.
Після виконання зазначених кроків
резюме має вигляд (рис. 5).
Етап 3. На цьому етапі здійснюєть-
ся пошук усіх можливих термінів. Для
виконання цього завдання здійснюється
лематизація та POS-tagging. Можливі тер-
міни мають задовольняти такі умови.
1. Бути іменником, прикметником
або дієсловом.
2. Якщо це термін з кількох слів,
то між словами не повинно бути розділо-
вих знаків та пропусків рядків.
Результат виконання цього етапу
виглядає так (рис. 6).
Рис. 5. Резюме після другого етапу
Моделі та засоби систем баз даних і знань
39
Рис. 6. Результат третього етапу
Всі можливі терміни зберігаються в
онтології в класі “CandidateTerms”, щоб
адміністратор мав змогу продивитись ці
терміни та прийняти рішення щодо того,
чи дійсно вони є термінами, які необхідно
додати.
Швидкість аналізу резюме складає
приблизно 1MB / секунда. Це достатньо
швидко, зважаючи на те, що загалом роз-
мір резюме не перевищує 5MB.
Класифікаційна система здатна ана-
лізувати дві мови: українську і англійську.
Для англійської всі кроки не відрізняють-
ся, проте використовується бібліотека
“nltk”, а не “pullenti”. Система побудована
таким чином, що додавання нових мов у
аналізатор буде відбуватись без перепису-
вання або редагування вже наявного коду,
що робить її легко розширюваною.
Можливості розширення
Є декілька шляхів розширення
представленої системи:
1. Розширення онтології, щоб ро-
бити більш широку класифікацію.
2. Удосконалення системи аналізу
природньої мови. Додавання нових мов та
оптимізація здійснених операцій, щоб під-
вищити швидкість аналізу.
3. Додавання можливості горизо-
нтального розширення, що дозволить за-
пускати кластери машин, які будуть аналі-
зувати резюме та додавати їх до онтології.
4. Додавання можливості робити
висновки щодо університетів, наприклад,
“Випускники університету N більше розу-
міються на технологій K”.
5. Додавання можливості робити
висновки щодо компаній. Так можна скла-
сти нову онтологію: Компанія-Технологія.
Висновки
Після аналізу можливостей онтоло-
гії можна зробити висновок, що така тех-
нологія є доречною у вирішенні розгляну-
тої проблеми, завдяки своїм класифікацій-
ним можливостям та можливостям логіч-
ного виводу. Також з цього аналізу можна
зробити висновок, що онтологія має великі
переваги над нейронними мережами в кон-
тексті розглянутої задачі, бо нам не потрі-
бно заново тренувати модель кожного ра-
зу, коли змінюються дані. На великих
об’ємах даних це є критичним.
Література
1. Glybovets A., Glybovets M., Polyakov M.
Intelligent networks. NaUKMA.
Dnipropetrovsk. 2014. 462 p.
2. Жежерун О.П., Рєпкін М.С. Класифікацій-
на система з підбору персоналу. Наукові
записки НаУКМА. 2019.
3. Шинкарук В. І. Філософський енциклопе-
дичний словник. Київ: Інститут філософії
імені Григорія Сковороди: Абрис. 2002.
742 с.
4. Лапшин В. А. Онтологии в информацион-
ных системах. Современный подход. Мос-
ква. 2009.
5. Owlready: Ontology-oriented programming in
Python with automatic classification and high
level constructs for biomedical ontologies
[Електронний ресурс].
Моделі та засоби систем баз даних і знань
40
6. Lovins Julie Beth. Development of a Stem-
ming Algorithm. Mechanical Translation and
Computational Linguistics. 1968. Т. 11.
7. Manning Christopher D., Raghavan Prab-
hakar, Schütze Hinrich. Introduction to In-
formation Retreival. Cambridge University
Press.
8. DeRose Steven J. Grammatical category
disambiguation by statistical optimization.
Computational Linguistics, 1988.
References
1. Glybovets A., Glybovets M., Polyakov M.
Intelligent networks. NaUKMA.
Dnipropetrovsk. 2014. 462 p.
2. Zhezherun O., Repkin M. Classification
system for personnel selection. Scientific
Notes of NaUKMA. 2019.
3. Shynkaruk V. Philosophical encyclopedic
dictionary. Kyiv: Grigory Skovoroda Institute
of Philosophy: Abris. 2002. 742 р.
4. Lapshin V. Ontologies in information
systems. Modern approach. Moscow. 2009.
5. Owlready: Ontology-oriented programming in
Python with automatic classification and high
level constructs for biomedical ontologies
[Електронний ресурс].
6. Lovins Julie Beth. Development of a Stem-
ming Algorithm. Mechanical Translation and
Computational Linguistics. 1968. Т. 11.
7. Manning Christopher D., Raghavan Prab-
hakar, Schütze Hinrich. Introduction to In-
formation Retreival. Cambridge University
Press.
8. DeRose Steven J. Grammatical category
disambiguation by statistical optimization.
Computational Linguistics, 1988.
Одержано 18.10.2020
Про авторів:
Жежерун Олександр Петрович,
кандидат фізико-математичних наук,
завідувач кафедри мультимедійних систем
факультету інформатики.
Кількість наукових публікацій в
українських виданнях – більше 80.
Індекс Гірша – 4.
Рєпкін Максим Сергійович,
студент 1 року навчання магістерської
програми «Інженерія програмного
забезпечення» факультету інформатики.
Кількість наукових публікацій в
українських виданнях – 1.
Місце роботи авторів:
Національний університет
«Києво-Могилянська академія»
04655, Київ, вул. Г. Сковороди, 2.
E-mail: zhezherun@ukma.edu.ua,
ryepkin.maksym98@gmail.com
|