Intelligence artificielle et réalité mixte pour les établissements scolaires
Prez PFE
1. Réalisation d’une Cvthèque pour l’automatisation de processus
de recrutement et la classification sémantique des CVs
Encadré par :
Encadrante INSAT : Mme Sonia BOUZIDI
Encadrant Entreprise: Mr. Sabri MTIBAA
Encadrante Entreprise: Mlle. Emna DRISSI
Réalisé Par :
Marwa FRIAA
2. PLAN
Sofrecom Tunisie & Mission
Solution proposée
Analyse et spécification de besoin
Conception
&
Architecture
Problématique
9. Boite email
Saturation des boites
emails
Difficulté de suivi des étapes de
recrutement.
Absence traçabilité complète
de chaque candidat.
Problématique
9
13. Données
CV
Données de CV
Classification & filtrage
Automatisation du
processus de suivi et
demande
Centralisation et
extraction des données
Solution proposée
13
Reporting
16. Foncionnalités pour le
manager
Présélectionner les
CVs intéressants
Consulter les
tableaux de bord
Manager
Suivre les
candidatures
Analyse et Spécification de besoin
Proposer un poste
S’authentifier
16
17. Fonctionnalités de Service RH
Présélectionner les
CVs intéressants
Consulter les
tableaux de bord
Suivre les
candidatures
Analyse et Spécification de besoin
Valider les
propositions des
postes
S’authentifier
Service RH
17
18. Besoins non fonctionnels
+ + =
Ergonomie et
convivialité
Temps de réponse
raisonnable
Sécurité
Satisfaire le client
Analyse et Spécification de besoin
18
29. Gestion de
Recrutement
& Reporting
Workflows
Persistence Classification
Ecosystème Spring
Activiti
Spring Boot + Spring Data
+ Spring Security
Base NoSQL Machine Learning
MongoDB SPARK Mlib
Comptes
rendus
29
Choix technologiques
29
Nous enchainons la présentation comme suit:
Commençons par la présentation de Sofrecom et sa mission qui a crée la problématique traitée par le projet , nous présentons la solution proposée en la détaillant par une analyse et spécification des besoins , une conception et l’architecture finale et nous argumentons les différents choix pris.
Par la suite nous enchainons par la présentation de deux principales phases de test et validation et celle de la réalisation .
Et nous finissons par une conclusion et proposons quelques perspectives.
Sofrecom est une filiale orange, elle a 50 ans d’expérience, comporte 300 employés , 1400 consultants , 200 clients et un réseau mondial de partenaires
L’une de ses principales mission est l’augmentation de son portefeuille client , et donc l’augmentation du nombre des projets ce qui crée le besoin de doubler de nombre des équipes et recruter environ 300 employés jusqu’à l’année 2017
Pour le faire , chacun des managers va proposer plusieurs offres de postes, ça sera une bonne nouvelle pour les charcheurs d’emploie qui vont postuler et envoyer leurs CVs plusieurs fois et pour des diférents offres. Au début de mon stage , Sofrecom a reçu environ 14000 CVs.
En contre partie , C’est une masse difficile à gérer par le service RH qui doit examiner et valider les demandes de postes et les candidatures.
Autrement dit , Sofrecom reçoit les candidatures de différentes sources principalement Orange Jobs et Tanit Jobs ce qui provoque une saturation des boites mails , une absence de traçabilité complète de chaque candidature et une difficulté de suivi des étapes de recrutement.
C’est-à-dire le service RH
Doit gérer les demandes de poste en les validant avec le supérieur hiérarchique concerné.
Il doit chercher dans une masse très importantes des CVs qui comporte des doublons, des CVs non organisés et qui comportents plusieurs informations importantes à analyser afin d’identifier les pertinents
Il doit suivre les entretiens et résultats de chaque candidature en coordination avec le manager concerné.
Ces sont les trois étapes les plus intéréssantes : valisation des demandes de poste , présélection des CVs et suivi des candidatures qui constituent le processus de recrutement.
Ces trois étapes comportent plusieurs pbs:
Durant la 1ere étape : la masse importante des offres , le nombre important des manager qui provoque des pbs de coordination entre eux , l’absence de suivi régulier de l’état des demandes et la perte des infors.
Pour la 2eme étapes : Les CVs son non structurés , redondances de qlqs uns , la non organisation des CVs par domaines et la masse des CVs à gérer.
Quant à la 3 étape , elle souffre de l absence de suivi de la candidature par les entités concernées , la non structuration des mails reçus , le nombre important des parties prenantes et donc des problèmes de coordinations.
Et l’absence de la traçabilité pour responsabiliser les acteurs tout au long du process.
Pour résoudre ces problèmes nous avons eu recours à cette solution qui comporte 4 parties:
L’ centralisation et l’extraction des données importantes por faciliter leur manipulation
La classification automatique et le filtrage des CVs
L’automatisation du processus de demande de poste et de suivi de recrutement
Et enfin la génération des Tableau de bord pour dinner une vue globale sur le process.
Concernant l’analyse et la spécification de besoin
Nous avons 3 acteurs principaux:
L’admini pour la gestion des roles de différents utilisateurs.
Le manager et le service RH
Le manager pourra proser un poste …
Tout en s’authentifiant
le service RH pourra valider ces demandes , ….
En contre partie notre application doit offrire une interface conviviale , un temps de réponse raisonable et un accès sécurisé afin de satisfaire les exigences de clients
2 principales fonctionnalités à traiter :
A classification et filtrage des CVs pour faciliter la présélection des CVs en offrant une classification automatiques des CVs suivant le domaine adéquat et un filtrage selon des critères intéréssants telsque la compétence et l’université afin d’identifier rapidement les CVs les plus adéquats .
La 2eme fonctionnalité est l automatisation de precess de validation de demandes de poste et celui de suivi de recrutement
En offrants des KPI à analyser pour faciliter la prise de décisions futures.
Cette classification se fait grace à un processus de text mining qui fait appel à des algorithmes de Machine learning afin d’identifier le domaine d’appartenance adéquat au CV en question
L processus de Text mining suit les étapes suivantes:
L’extraction du contenu text des CVs , l’identifications des différents mots , éliminer les mots souvent utilisés , regrouper les mots ayant le meme sens , crée la matrice d’occurrence de chaque mot par CV , générer la matrice inverse pour éliminer les mots très utilisés par tout les CVs et enfin appliquer l’algorithme adéquat.
Y a pas un algorithme meilleur ou parfait , nous cherchons alors l’algorithme le plus adéquat à notre besoin grace à cette arbre de décision ;
Le concept de machine learning comporte les catégories suivantes :sys de recommendation , app supervisé, non supervisé , Or notre but est de classifier les CVs selon des domaines connues d’avance alors c’est un problème d’app super , cette catégorie peut etre soit de la classification ou la regression Or notre solution met en évidence un ensemble des catégories et donc c’est le cas d(‘une classification , celle-ci comporte plusieurs algorithmes , et puisque nous traitons des labels , alors notre choix va se focaliser sur Naive bayes , Decision tree et KNN.
Ces trois algos répondent au besoin , pour identifier celui le plus adéquat nous avons fait une recherche pour comparer les performences :
Ce qui nous a poussé à éliminer KNN car ces per se dégradent avec une masse des données importante.
Prenant comme 2 eme critère la stabilité : les recherches montrent que l’arbre de décision sera le choix le plus adéquat pour avoir une meilleure stabilité indépendamment des données utilisées.
En terme d’architecture : C’est la vue globale de notre architecture proposée qu’ on va détailler ses trois parties en argumentants les choix pris
Notre architecture est devisée en une partie front end coté client et une partie backend , qui communiquent via le service web rest , le backend manipule des données stockées dans une base NoSQL chargée par une couche d’intégration.
Cette architecture offre une évolutivité meilleure , une maintenance facile et la possibilité de réutilisation.
Pour le front end , il était implémenté par AngularJS , Chart JS pour le reporting , HTML et bootstrap pour les vues
Afin d’avoir une couche facile à tester , avec une interface responsive et conviviale.
Le nosql est connu par la manipulation flexible des données , et donc il dera une bonne solution pour traiter nos données non structurées provenant des mails des sources différentes et des CVs sous différents formats et structures.
Notre architecture manipule les données sous format JSON à cause de l utilisation du WS rest et donc MongoDB basé sur les documents de format BSOn sera le meilleur choix pour manipuler les sonnées sans avoir besoin de les parser.
Aussi , cette solution offre un temps de reponse rapide grace à l utilisation des documents imbriqués de données et donc l’absence de jointure c à d accès et lecture rapide des données. La redondance des données ne sera pas un grand problème dans notre cas car nos tables ne sont pas nombreux.
Pour le choix du spark , une comparaison entre weka et mahout basé sur une recherche faite affirme qu’à u n seuil de 508 MB weka ne répond plus est donc c’est un choix à éliminer , pour spark versus mahout , les recherches montrent que avec un seuil de 1G Spark sera 9 fois plus performant que Mahout et donc le choix du spark
Pour la couche d’intégration un job talend sera planifié chaque fin de journée pour extraire à partir des mails reçus de Tanit et porange jobs les informations de candidatures et extraire en utilisant apache tika le contenu des CVs pour les charger dans MongiDB
Un autre job est crée pour importer les informations des utilisateurs à partie de Ldap dans mongodb
Passons maintenant à l’une des phases les plus importante du projet
Tout au long du projet des réunions régulières sont faites pour identifier les besoins client et en extraire les recettes de test.
A la phase de dev , des test unitaires ont été mise en place pour éliminer les bugs techniques.
Dans une seconde phases des tests fonctionnelles ont été faite avec le product owner avant la mise en prodction et la refaite des test avec le nouveau environnement et préparer l’application aux démonstrations régulières avec la direction générale et les service RH pour valider l’indentification du fonctionnement avec les besoins initiaux. Et c’est fait chaque fin du sprint.
Nous avons pu grace à cet outils de centraliser les données et en extraire des informations utiles
Automatiser le processus afin de notifier régulièrement les candidats et donc minimiser leur stress et donner respect à eurs demandes mm en cas de refus.
Améliorer la coordination entre le service RH et les managers
Offrir un filtrage des CVs pour améliorer la phase de présélection
Initier une classification des CVs
Et nous avons offert une vue globale sur le processus pour guider la prise de décision à des différents stades.
Notre application sera mise en production finale et utilisée Le 1er juillet par Sofrecom.
Techniquement , Avec toute conscience que les algorithmes peuvent engendrer des erreurs qui peuvent etre importantes dans un tel processus critique nous proposons une étude et implémentation des algorithmes ensemblistes pour minimiser ce taux d erreur .
Fonctionnellement , il sera intéressant d’exploiter le réseau social Linkedin pour chercher des nouvelles compétences , développer des nouveaux KPI et mettre en œuvre des nouveaux critères de filtrage.