Ministère de l'Enseignement Supérieur
et
Universitaire
UNIVERSITE PROTESTANTE DE LUBUMBASHI
FACULTE DES SCIENCES INFORMATIQUES

Vérité & Liberté
PROJET TUTORÉ DE FIN D'ETUDES
Sujet : CONCEPTION D'UN SYSTEME INTELLIGENT
D'ANALYSE
DE CV BASE SUR LE TRAITEMENT DU LANGAGE NATUREL
(NLP) POUR UNE
EVALUATION OPTIMISEE DES
CANDIDATURES : APPLICATION AU DEPARTEMENT
DES
RESSOURCES HUMAINES.
Effectué par NKISSA KUDOLYE JOSPIN Promotion :
BAC3
Filière : IAGE
Août 2025
Ministère de l'Enseignement Supérieur
et
Universitaire
UNIVERSITE PROTESTANTE DE LUBUMBASHI
FACULTE DES SCIENCES INFORMATIQUES

Vérité & Liberté
PROJET TUTORÉ DE FIN D'ETUDES
Sujet : CONCEPTION D'UN SYSTEME INTELLIGENT
D'ANALYSE
DE CV BASE SUR LE TRAITEMENT DU LANGAGE NATUREL
(NLP) POUR UNE
EVALUATION OPTIMISEE DES
CANDIDATURES : APPLICATION AU DEPARTEMENT
DES
RESSOURCES HUMAINES.
Promotion : BAC 3 Filière : IAGE
Dirigé par Professeur MWAMBA KASONGO Dahouda
Co-dirigé par Assistant NGOIE NKAYA Philippe
ANNEE ACADEMIQUE
2024-2025

DEDICACE
À ma famille,
Ce mémoire est le fruit de votre soutien inestimable, de
vos encouragements et de votre amour sans limites.
À mes parents, pour vos sacrifices, votre patience et
votre confiance en moi. Sans vous, rien de tout cela n'aurait été
possible.
NKISSA KUDOLYE JOSPIN

REMERCIEMENTS
Avec un coeur profondément reconnaissant et des mots
chargés d'émotion, je tiens à commencer cette page en
rendant gloire à Jéhovah Dieu, le Soutien suprême de ma
vie. À Lui seul reviennent les louanges éternelles pour le
souffle de vie, la santé préservée, la force quotidienne,
et la protection invisible mais constante dont j'ai
bénéficié tout au long de ce parcours. Sans Sa main
puissante, aucun de mes efforts n'aurait porté de fruit.
Je rends un hommage vibrant à mes chers parents,
Kuudolye Celestin et Kikaina Naomie , véritables artisans de mon avenir,
pour leur amour inconditionnel, leur soutien inlassable, et surtout pour avoir
assuré ma scolarité de façon continue, depuis mes premiers
pas à l'école maternelle jusqu'à ce jour. Vous avez
été et restez mes modèles de persévérance et
de foi. Grâce à vous, je me tiens aujourd'hui debout, fier du
chemin parcouru.
Mes pensées les plus affectueuses vont également
à l'ensemble de ma famille élargie, et tout
particulièrement à mes oncles et tantes actuellement
présents ici à Lubumbashi, pour leur soutien moral de haute
qualité, leur proximité affectueuse, et leurs paroles
réconfortantes aux moments les plus décisifs. Je n'oublierai
jamais les cadeaux précieux que vous m'avez offert avec amour et
fierté après chaque réussite. Vos gestes m'ont toujours
rappelé que je n'étais jamais seul.
Je tiens à exprimer ma gratitude la plus profonde
à mon directeur de mémoire, le Professeur MWAMBA KASONGO Dahouda,
pour ses orientations ingénieuses, sa disponibilité constante, et
sa rigueur académique qui ont largement contribué à donner
de la profondeur et de la qualité à ce travail. Son encadrement
bienveillant a été un véritable phare tout au long de
cette aventure intellectuelle.
Mes sincères remerciements vont également
à mon co-directeur, l'Assistant NGOIE NKAYA Philippe, pour ses conseils
avisés, son écoute attentive, et ses encouragements stimulants.
Son accompagnement méthodique m'a permis de progresser avec assurance et
efficacité.
Je ne saurais oublier mes connaissances, mes amis, et toutes
les personnes merveilleuses qui ont, d'une manière ou d'une autre,
laissé une empreinte positive dans cette aventure. Une mention
spéciale et honorifique à Maître ASIM, un ami exceptionnel
et une source inépuisable d'inspiration depuis l'école SHALOM
jusqu'à UPL avec la devise sanguine « rendre les parentes
fières car nous n'avons aucune seconde d'erreur la science ! la science
! »
À tous ceux et celles qui, par un geste, un mot, un
sourire ou une prière, ont contribué à cette
réussite, je vous dis un immense MERCI. Que
Jéhovah Dieu vous comble de ses bénédictions les
plus riches.

Table des matières
REMERCIEMENTS ii
LISTE DE FIGURES v
LISTE DES TABLEAU vii
INTRODUCTION 1
CHAPITRE 1 : Revue de la littérature 4
I.1 Revue des systèmes 4
CHAPITRE 2 : MÉTHODOLOGIE 11
2.1 Introduction 11
2.2 Présentation des méthodologies de
développement logiciel (SDLC) 11
2.3 Outils et technologies utilisés
15
2.4 Architecture du système 17
2.5 Méthode d'implémentation du NLP
17
2.6 Exigences fonctionnelles et non fonctionnelles
19
2.7 Limites méthodologiques 19
2.8 Conclusion 19
Chapitre 3 Conception du système 20
3.1 Introduction 20
3.2 Modélisation du processus métier
21
3.3 Identification des acteurs 22
3.4 Diagramme de contexte métier 23
3.5 Diagramme de processus métier BPMN (Business
Process Model and Notation) 24
3.6 Diagramme de cas d'utilisation métier
26
3.7 MODELE DU DOMAIN 27
3.7 Analyse du système informatique 28
3.8. Analyse des besoins de conception 32
3.9 Diagramme de séquence 37
3.12. CONCEPTION DU MODÈLE LOGIQUE DE
DONNÉES 60
3.13. DIAGRAMME DE DÉPLOIEMENT 61
Conclusion partielle 64
CHAPITRE 4 IMPLEMENTATION DE LA SOLUTION PROPOSEE
65
4.1. Introduction 65
4.1. Technologies 65
4.2 Rappels théoriques essentiels 68
4.2.1. Introduction au Machine Learning 68
1.2.2 Apprentissage supervisé 68
2.2.3 Apprentissage non supervisé 69
2.3.4 Apprentissage par renforcement 69
iv
2.3.5 Notions de Deep Learning 69
4.3 Récolte de données 74
4.4 Conception et Entraînement du Modèle de
Classification pour l'Analyse CV-Offres 75
4.5. Conclusion 80
CHAPITRE 5. RESULTATS ET EVALUATIONS 81
5.1 Résultats 81
Conclusion Générale 87
Bibliographie 88

LISTE DE FIGURES
Figure 1 Diagramme de contexte métier 24
Figure 2 Diagramme de processus métier BPMN 25
Figure 3 Diagramme de cas d'utilisation métier 26
Figure 4 Diagramme de classes système 28
Figure 5 Présentation du système 33
Figure 6 Diagramme de cas d'utilisation 35
Figure 7 Diagramme de séquence CU1 créer compte
38
Figure 8 Diagramme de séquence CU2 S'authentifier
39
Figure 9 Diagramme de séquence CU 3
Réinitialisation de mot de passe 40
Figure 10 Diagramme de séquence CU 4 Gérer
profil 41
Figure 11 Diagramme de séquence CU 5 Publier offre
42
Figure 12 Diagramme de séquence CU 6 Gérer
l'offre 43
Figure 13 Diagramme de séquence CU 7 Consulter les
offres 44
Figure 14 Diagramme de séquence CU 8
Téléverser un cv 45
Figure 15 Diagramme de séquence CU 9 supprimer ou
modifier un cv 46
Figure 16 Diagramme de séquence CU 10 Analyser un cv
47
Figure 17 Diagramme de séquence CU 12 Afficher
résultat 48
Figure 18 Diagramme de séquence CU 11 AfficherResultat
48
Figure 19 Diagramme de séquence CU 12 afficher
candidatures 49
Figure 20 Diagramme système 51
Figure 21 Diagramme de classe participante CU 2
Authentification 52
Figure 22 Diagramme de classe participante CU 2
Authentification 52
Figure 23 Diagramme de classe participante CU 3
Réinitialisation 53
Figure 24 Diagramme de classe participante CU 4 Gérer
profil 53
Figure 25 Diagramme de classe participante CU 5 publier offre
54
Figure 26 Diagramme de classe participante CU 6 Gérer
offre 55
Figure 27 Diagramme de classe participante CU 7 Consulter
l'offre 56
Figure 28 Diagramme de classe participante CU 8
Téléverser cv 56
Figure 29 Diagramme de classe participante CU 9 Supprimer
modifier cv 57
Figure 30 Diagramme de classe participante CU 10 Analyser cv
58
Figure 31 Diagramme de classe participante CU 11 Afficher
résultat 59
Figure 32 Diagramme de classe participante CU 12 Afficher
candidature 59
Figure 34 Diagramme de déploiement 63
Figure 35 Machine learning, deep learning description 70
Figure 36 Quelques Domaines du nlp 73
Figure 37 Déséquilibre initiale de classe 76
Figure 38 Equilibres de classes 77
Figure 39 Comparaison de la performance des modèles
78
Figure 40 Tableau comparatif des modèles 78
Figure 41 visualisation de la courbe de précision et
perte 79
Figure 42 Matrice de confusion du modèle validé
79
Figure 43 Matrice de confusion normalisé 79
vi
Figure 44 interface d'accueille 81
Figure 45 interface des offres 81
Figure 46 interface des offres avec option de filtre 82
Figure 47 interface de login pour s'authentifier 82
Figure 48 interface pour réinitialiser le mot de passe
83
Figure 49 interface pour la vérification de OTP envoyer
par mail 83
Figure 50 interface pour sur la vue du détaille de
l'offre 84
Figure 51Interface pour uploader le cv 84
Figure 52 Dashboard Entreprise 85
Figure 53 Dashboard chercheur d'emploie 85
Figure 54 Dashboard entreprise avant l'analyse 85
Figure 55Dashboard entreprise l'analyse encours 86
Figure 56 opération Asynchrone avec serveur celery
86
Figure 57 Résultat d'analyse 86

LISTE DES TABLEAU
Tableau 1 Outils et technologies utilisés 15
Tableau 2 Rôles des acteurs 23
Tableau 3 Identification des acteurs du système
d'Analyse de cv basé sur le NLP 33
Tableau 4 Planification des itérations 35
Tableau 5 Contenu du dataset 74
Tableau 6 Algorithmes implémentés 77

INTRODUCTION
Contexte du sujet
Le processus de recrutement constitue un pilier fondamental de
la gestion des ressources humaines, car il détermine la qualité
du capital humain au sein d'une organisation. Avec la numérisation
croissante des candidatures, les entreprises doivent aujourd'hui traiter un
volume massif de CV, ce qui rend les méthodes traditionnelles de
sélection de plus en plus inefficaces.
Cette surcharge d'informations entraîne non seulement
une perte de temps considérable, mais aussi une augmentation du risque
d'erreur humaine ou de biais dans l'évaluation des profils. Si un
recruteur passe une minute au moins pour évaluer un CV. Imaginons que
suite d'une annonce , l'entreprise reçoit 2000 CV, cela voudrait dire
que le recruteur passerait environ 33 heures pour la
sélection de ces CV, ce qui équivaut 4 jours de travail de 8
heures.
Parallèlement, les avancées dans le domaine de
l'intelligence artificielle (IA), et plus particulièrement du
traitement automatique du langage naturel (Natural Language Processing,
NLP), ont ouvert de nouvelles perspectives pour automatiser et
améliorer les processus décisionnels. Le NLP permet aux machines
de comprendre, d'analyser et de générer du langage humain, ce qui
en fait une technologie de choix pour l'analyse de documents non
structurés tels que les CV.
Dans ce contexte, plusieurs solutions intelligentes ont
été proposées dans le monde pour automatiser la
présélection des candidatures. Des systèmes basés
sur la détection de mots-clés, des moteurs de correspondance
sémantique, et plus récemment des modèles d'apprentissage
profond tels que BERT ou GPT ont été mis en oeuvre avec des
résultats encourageants.
À Lubumbashi, le recrutement pour plusieurs structures
reste encore largement manuel, malgré la disponibilité croissante
de CV numériques. Les départements des ressources humaines
manquent souvent d'outils adaptés pour automatiser ce processus, ce qui
ralentit considérablement la sélection des bons profils. Il
existe donc un besoin réel et urgent d'outils intelligents.
Ce mémoire s'inscrit dans cette dynamique. Il vise
à concevoir un système intelligent capable d'analyser
automatiquement des CV numériques rédigés en
français, à l'aide de techniques avancées de traitement du
langage naturel. Ce système pourra ainsi contribuer à rendre le
processus de présélection plus rapide, plus objectif et plus
efficace au sein des entreprises de Lubumbashi.
Objectifs de l'étude
L'objectif principal de cette étude est de
concevoir un système intelligent d'analyse de CV basé sur
le traitement du langage naturel (NLP) permettant d'automatiser
l'évaluation initiale des candidatures au sein d'un département
des ressources humaines.
Les objectifs spécifiques sont :
· D'extraire automatiquement les informations
pertinentes contenues dans les CV (diplômes, expériences,
compétences, etc.).
· De mesurer la correspondance entre les profils et les
offres d'emploi selon des critères définis.
2
· De proposer un classement des candidats en fonction de
leur adéquation avec le poste à pourvoir.
· D'adapter le système au contexte local
congolais, notamment au format des CV rédigés en
français.
Dans un environnement économique de plus en plus
compétitif, les entreprises doivent recruter rapidement les meilleurs
profils. Cependant, les départements RH sont souvent confrontés
à la difficulté de traiter manuellement un grand volume de
candidatures, Ce traitement manuel est non seulement long, mais il peut
également être subjectif et peu reproductible.
Plusieurs outils existent pour aider à cette
tâche, mais ils sont souvent conçus pour des environnements
anglophones, ne tiennent pas compte de la structure des CV francophones, et
nécessitent des ressources techniques importantes. À Lubumbashi,
les petites et moyennes entreprises disposent rarement d'outils intelligents ou
de personnel formé à ce type de technologie.
Dès lors, une question centrale se pose :
comment concevoir un système intelligent, basé sur le
NLP, capable d'analyser automatiquement des CV en français et
d'optimiser le processus de présélection des candidatures
?
Hypothèse
Nous posons l'hypothèse suivante :
L'utilisation d'un système intelligent
basé sur le traitement automatique du langage naturel permet
d'automatiser et d'accélérer le processus de
présélection des CV, tout en améliorant la pertinence des
candidats retenus pour un poste donné.
Importance ou justification de l'étude Ce
travail est justifié par plusieurs besoins :
v Sur le plan pratique, il répond
à une demande réelle d'amélioration des outils RH dans un
contexte local où les ressources sont limitées.
v Sur le plan scientifique, il s'inscrit
dans la dynamique actuelle de recherche autour du NLP appliqué à
des problématiques RH.
v Sur le plan technologique, il explore la
mise en oeuvre de modèles d'IA modernes dans un environnement
francophone et africain, souvent peu représenté dans les bases de
données utilisées pour l'apprentissage automatique.
Portée et limites
La portée de cette étude se limite aux points
suivants :
· Le système ne traitera que des CV
numériques (PDF).
· Seuls les CV rédigés en langue
française seront analysés.
3
· Le système s'arrête à la
phase de présélection : il ne réalise pas
d'évaluation comportementale ni d'entretien.
Les limites incluent :
· L'efficacité du système dépendra de
la qualité des CV (orthographe, structure,
lisibilité).
· Le manque de données locales
annotées pour l'entraînement de modèles peut
limiter la performance initiale.
Structure du travail
Ce mémoire est organisé en cinq chapitres
principaux :
v Chapitre 1 : Revue de la
littérature
Analyse des travaux existants en lien avec l'analyse automatique
de CV, le NLP appliqué aux RH, et les systèmes intelligents
d'évaluation des candidatures.
v Chapitre 2 : Méthodologie
Présentation du modèle de développement
logiciel (SDLC), des techniques NLP adoptées, et des outils mis en
oeuvre.
v Chapitre 3 : Conception du système
Analyse du système informatique (Modélisation des
exigences fonctionnelles et non fonctionnelles ...)
Conception du système informatique (description de
l'architecture, et conception UML ...)
v Chapitre 4 : Implémentation
Description technique de la réalisation du
système, des choix technologiques et des modules
implémentés.
v Chapitre 5 : Résultats et
évaluation
Présentation du système développé,
des tests effectués (fonctionnalité, performance,
utilisabilité ...) et interprétation des résultats
obtenus.
4
CHAPITRE 1 : Revue de la littérature
De nos jours, avec le grand nombre de candidatures que les
entreprises reçoivent, il devient de plus en plus important de trouver
des moyens efficaces pour analyser les CV. C'est dans ce contexte que les
systèmes intelligents, combinant intelligence artificielle, traitement
du langage naturel (NLP) et ressources humaines, prennent tout leur sens. Ce
chapitre propose un regard critique sur les recherches qui ont
déjà été menées dans ce domaine.
Nous allons voir quelles méthodes ont été
utilisées, quels étaient les objectifs, ce qui a
été obtenu et quelles limites ont été
rencontrées. Cela nous permettra d'identifier ce qui manque encore, et
de mieux comprendre pourquoi le projet que nous présentons ici est
pertinent et utile
I.1 Revue des systèmes
Revue (1)
I.1.1 L'intelligence artificielle au coeur du processus de
recrutement E Recrutement 4.0 au Maroc : Etat des lieux et perspectives
[1].
1. Identification des lacunes en matière de
recherche ou de mise en oeuvre
Manque d'application à 100% :
L'e-recrutement 4.0 n'est pas encore pleinement appliqué au Maroc, ce
qui souligne un écart entre les possibilités technologiques et
leur adoption réelle.
Résistance des candidats :
Une grande partie des candidats refuse
d'être évaluée par un robot, en raison :
o du manque de formation numérique,
o de la peur de l'automatisation,
2. Synthèse
L'article synthétise plusieurs travaux
antérieurs en montrant que l'intelligence artificielle apporte :
des gains en efficacité (temps de traitement des CV
réduit de 18h à quelques minutes),
une réduction des erreurs humaines,
une capacité d'analyse de grands volumes de
données (Allal-Chérif et al., 2021).
Mais il regroupe aussi les critiques fréquentes :
manque de transparence des décisions algorithmiques,
risques d'erreurs injustes,
Des études de cas (ex. Amazon) et des
témoignages d'experts (Morgane Fantino, 2021).
3. Analyse critique
Points forts : L'étude met en
lumière les avantages tangibles de l'IA dans le
recrutement, comme l'efficacité et la rapidité,
tout en soulignant les défis techniques et culturels.
5
Limites : Les auteurs notent que les travaux
existants se concentrent souvent sur les perspectives des recruteurs,
négligeant parfois la perception des candidats, notamment dans des
contextes spécifiques comme le Maroc.
Contributions : L'article comble
partiellement cette lacune en analysant la perception des candidats
marocains
4. Contextualisation
La revue de la littérature montre que l'e-recrutement
basé sur l'intelligence artificielle améliore la rapidité
et l'efficacité du tri des candidatures. Cependant, ces solutions sont
souvent développées pour des contextes internationaux,
principalement anglophones, et ne s'adaptent pas bien aux
réalités locales.
À Lubumbashi, les CV sont souvent non
structurés, rédigés en français, et les entreprises
disposent de peu de ressources techniques.
Le présent mémoire vise donc à combler ce
vide en développant une solution NLP adaptée au contexte local,
capable d'analyser automatiquement les CV francophones dans un environnement
à faible technicité.
Revue (2)
I.1.2 Diplôme : Master en gestion des ressources
humaines, à finalité spécialisée en "politique et
management RH" [2].
1. Identification des lacunes en matière de
recherche ou de mise en oeuvre
En parcourant les travaux existants, notamment celui de
Martins et Mariana (2022),plusieurs limites apparaissent dans les approches
actuelles d'automatisation du recrutement par le traitement du langage naturel.
Ces recherches, bien qu'intéressantes, restent souvent
éloignées des réalités du terrain dans des
contextes comme celui de Lubumbashi.
Premièrement, la majorité des
études s'appuient sur des données provenant de grandes
entreprises internationales, avec peu de prise en compte des
spécificités locales. Or, dans des villes comme Lubumbashi, les
candidatures présentent une grande diversité de formats parfois
non structurés, manuscrits ou scannés et les entreprises
disposent rarement des moyens techniques nécessaires pour
intégrer des solutions complexes.
Deuxièmement, bien que des
modèles avancés de NLP tels que BERT soient
évoqués, leur application concrète dans l'analyse de CV,
notamment en langue française, reste encore limitée. Leur
potentiel est loin d'être pleinement exploité, surtout dans des
contextes à faible ressource.
Par ailleurs, les systèmes proposés sont
généralement peu personnalisés. Ils utilisent des scores
standards de similarité(TF-IDF), sans véritablement tenir compte
des attentes spécifiques du recruteur ou des exigences du poste à
pourvoir.
6
Ces constats soulignent la nécessité de
concevoir une solution innovante, à la fois intelligente, éthique
et réellement adaptée au contexte local.
Synthèse
L'article explore l'utilisation des outils de traitement
automatique du langage naturel (NLP) dans le domaine des ressources humaines,
notamment pour l'analyse de CV et l'appariement aux offres d'emploi. Il passe
en revue plusieurs systèmes, outils, et méthodes existantes,
comme le TF-IDF ou encore les moteurs de recommandation classiques.
Analyse critique
L'examen du document de référence fait
apparaître plusieurs limites notables dans les approches existantes de
l'analyse automatisée des candidatures.
D'abord, les solutions reposent encore largement sur des
représentations textuelles traditionnelles, comme le modèle
TF-IDF, qui reste limité. Même si des modèles plus
avancés comme BERT sont mentionnés, leur intégration est
encore incomplète ou expérimentale, ce qui réduit leur
impact réel sur la qualité de l'analyse.
Ensuite, on constate un manque de personnalisation et de prise
en compte du contexte. Les systèmes évalués se contentent
souvent d'un appariement générique, sans s'adapter aux
spécificités d'un poste, d'une entreprise, ou aux
préférences individuelles des recruteurs. Cette approche
compromet la pertinence des résultats proposés.
Contextualisation
Dans un monde du travail en pleine transformation
numérique, les départements des ressources humaines cherchent
à moderniser leurs outils pour gagner en efficacité et en
objectivité. Le recours au traitement automatique du langage naturel
(NLP) s'inscrit dans cette dynamique, en permettant d'analyser plus rapidement
et de manière plus cohérente des centaines de candidatures.
Dans ce contexte, le présent travail vise à
combler ce vide en concevant un système intelligent d'analyse de
CV, combinant des techniques de NLP, une approche éthique et
une adaptation aux conditions spécifiques du terrain local.
Revue (3)
I.1.3 Un système intelligent pour l'optimisation du
processus de e-recrutement [3]
Identification des lacunes en matière de recherche
ou de mise en oeuvre
Malgré les avancées importantes dans le domaine
du e-recrutement assisté par l'intelligence artificielle, plusieurs
lacunes persistent dans les travaux antérieurs, notamment :
7
Identification incomplète du profil de
candidat
La majorité des systèmes d'appariement exploitent
uniquement le texte brut des offres d'emploi, sans en extraire formellement les
caractéristiques clés du profil recherché (ex. :
diplôme, expérience, compétences ...). Cela limite la
qualité des recommandations de candidats.
Synthèse
la littérature sur le e-recrutement intelligent se
structure autour :
Extraction d'entités (NER) : Les méthodes
traditionnelles (à base de règles ou d'ontologies) sont
aujourd'hui dépassées par les modèles basés sur
l'apprentissage automatique (BERT). Ces derniers permettent une meilleure
extraction d'informations à partir des offres et des CV.
Analyse critique
Bien que les solutions existantes soient techniquement
avancées, plusieurs critiques peuvent toujours persister :
Les méthodes de Matching sont souvent
dépendantes de la qualité des données textuelles, ce qui
peut jouer négativement sur les résultats.
Contextualisation
Systèmes d'aide à la décision (SAD) de
Ramdani (2021) s'inscrit dans une dynamique de modernisation des processus de
recrutement en ligne, en combinant :
- l'analyse automatique des documents RH (CV, offres)
- l'extraction de caractéristiques pertinentes (profil
recherché) [3].
Revue(4)
1.1.4 Intelligence artificielle appliquée au
processus de recrutement - Les perceptions des recruteurs [4]
Identification des lacunes en matière de
recherche ou de mise en oeuvre Lacunes théoriques :
- Le mémoire souligne que l'IA dans le recrutement est
un sujet émergent, encore peu étudié scientifiquement.
Lacunes pratiques :
- Les entreprises ont encore du mal à intégrer
l'IA dans leur stratégie RH globale, faute de moyens, de
compétences numériques internes, ou de clarté sur les
retours d'investissement.
8
Synthèse
Le mémoire de Mariana Martins explore les perceptions
des recruteurs vis-à-vis de l'IA dans le processus de recrutement. Il
adopte une méthode qualitative à travers des entretiens
semi-directifs. L'étude montre que :
- L'IA est perçue comme un levier d'efficacité,
surtout dans les phases de présélection.
- Elle soulage les recruteurs des tâches
répétitives, permet un meilleur ciblage et accélère
le traitement des candidatures.
Analyse critique
Points forts du mémoire :
Bonne structuration théorique : le mémoire offre
une revue de littérature approfondie sur la GRH, le recrutement et
l'IA.
Limites :
L'analyse pourrait approfondir davantage les enjeux juridiques
et les dimensions éthiques (RGPD Règlement
Général sur la Protection des Données.),
consentement).
Contextualisation
Dans le contexte socio-économique :
Le mémoire s'inscrit dans un moment post-COVID
où le télétravail, le recrutement à distance, et la
transformation digitale accélèrent la mutation des RH.
Revue(5)
I.1.5 Mise en correspondance entre les CV et les offres
d'emploi en utilisant le Deep Learning [5]
Identification des lacunes en matière de recherche
ou de mise en oeuvre. Lacunes en recherche :
- Peu de références sont faites aux enjeux
juridiques et éthiques (comme la confidentialité des
données personnelles ou les biais algorithmiques dans les
systèmes de recrutement).
Lacunes en mise en oeuvre :
- Le système repose sur des données
collectées via web scraping (Indeed), ce qui peut poser problème
légalement si l'usage n'est pas encadré.
Synthèse du mémoire
Ce mémoire propose un système de recommandation
qui met en correspondance les CV et les offres d'emploi à l'aide du
deep learning, notamment :
9
Un réseau de neurones classificateur
pour étiqueter les segments des CV (éducation,
expérience, compétences).
L'utilisation de cosinus de similarité
pour calculer la similarité sémantique entre les
éléments d'un CV et ceux d'une offre d'emploi.
Analyse critique Points forts :
Travail rigoureux et structuré, avec une bonne
maîtrise des outils de traitement du langage naturel (NLP) et du deep
learning.
Limites :
L'ensemble du système repose sur des
données textuelles extraites automatiquement
Contextualisation
Dans le contexte technologique :
L'usage du deep learning dans le NLP est
pertinent et montre l'évolution des outils classiques (mots-clés)
vers des approches plus intelligentes.
Dans le contexte local et académique :
Le mémoire contribue à valoriser
l'application de l'IA dans les systèmes web au sein des
universités algériennes.
Pourquoi faire une revue de la littérature
?
1. Pour mieux comprendre notre sujet :
Avant de concevoir un système intelligent d'analyse de
CV, il est essentiel de comprendre en profondeur les fondements
théoriques liés au traitement du langage naturel et à son
usage dans le domaine des ressources humaines. La revue de littérature
permet d'explorer les travaux antérieurs, d'identifier les
modèles et techniques couramment utilisés (comme Word2Vec ou
BERT), et de mieux cerner les enjeux liés à l'automatisation du
tri des candidatures. Cette compréhension offre non seulement une base
solide à la démarche, mais oriente aussi le choix des
technologies adaptées aux objectifs du projet.
2. Pour identifier les lacunes et les besoins de
recherche :
Analyser les recherches existantes aide à
révéler les limites que rencontrent les systèmes d'analyse
de CV actuels, comme leur difficulté à traiter les formats non
standardisés, leur manque de contextualisation ou leur tendance à
négliger les compétences transversales. En mettant en
évidence ces insuffisances, la revue de littérature ouvre des
pistes concrètes d'amélioration et permet de mieux cibler les
besoins encore insatisfaits, que ce soit en termes techniques, fonctionnels ou
éthiques.
10
3. Pour justifier notre recherche :
La revue de littérature permet aussi de positionner
clairement sa propre contribution. En s'appuyant sur les études
existantes et en soulignant leurs limites, elle montre en quoi le
système proposé se distingue et répond à des
besoins réels. Dans notre cas, l'intégration du NLP pour analyser
intelligemment les CV vise à offrir une solution plus précise,
plus accessible et mieux adaptée aux exigences des recruteurs, notamment
dans des contextes locaux peu représentés dans la recherche
actuelle.
4. Pour faciliter la rédaction d'un travail de
recherche :
Enfin, la revue de littérature joue un rôle
structurant dans la rédaction du mémoire. Elle permet de
construire la problématique, d'alimenter le cadre conceptuel, et de
justifier les choix méthodologiques. Elle sert également de
repère tout au long du projet, assurant cohérence et rigueur
scientifique. Ainsi, elle facilite non seulement la rédaction du
travail, mais renforce également la recherche.
11
CHAPITRE 2 : MÉTHODOLOGIE
2.1 Introduction
En informatique, la méthodologie désigne
l'ensemble des techniques, processus et approches utilisés pour
concevoir, développer, implémenter et maintenir des
systèmes informatiques. Elle s'applique à toutes les
étapes du cycle de vie logiciel, depuis l'analyse des besoins
jusqu'à la maintenance, en passant par la conception, le codage et les
tests. Une méthodologie rigoureuse permet de structurer le travail, de
garantir la qualité du logiciel produit, et de réduire les
risques d'échec du projet.
Dans le domaine de l'ingénierie logicielle, la
méthodologie représente bien plus qu'une simple succession
d'étapes techniques. Elle incarne une vision structurée du
développement logiciel, qui permet de traduire une idée
fonctionnelle en une solution informatique fiable, performante et
évolutive. Concrètement, elle désigne l'ensemble des
techniques, processus et approches utilisées pour analyser, concevoir,
implémenter, tester, déployer et maintenir un système
logiciel.
Chaque projet, quelle que soit sa taille, repose sur une
série de choix méthodologiques qui influencent directement sa
réussite. Sans une démarche rigoureuse et bien définie, le
développement logiciel devient vulnérable aux retards, aux
erreurs de conception, à l'instabilité du code et à
l'inadéquation entre le produit final et les besoins des
utilisateurs.
La méthodologie s'applique donc à toutes les
phases du cycle de vie logiciel -- depuis la formulation des exigences
jusqu'à la maintenance post-déploiement, en passant par la
modélisation, la programmation et l'évaluation des performances.
Elle permet de structurer le travail des développeurs, de coordonner les
efforts de l'équipe projet, et surtout, d'assurer que chaque
décision technique reste alignée avec les attentes fonctionnelles
du client ou de l'utilisateur final.
Mais au-delà de sa dimension technique, la
méthodologie est aussi une démarche humaine. Elle établit
un cadre de collaboration entre les différents acteurs du projet :
développeurs, chefs de projet, analystes métiers, utilisateurs
finaux. Elle définit les rôles, organise la communication,
facilite les feedbacks et favorise l'amélioration continue. Ainsi, elle
devient un levier stratégique pour anticiper les difficultés,
maîtriser les risques et construire des solutions réellement
utiles et durables.
Dans le cadre du présent projet, qui vise à
concevoir un système intelligent d'analyse de CV à l'aide du
traitement automatique du langage naturel (NLP), le recours à une
méthodologie adaptée est indispensable. Le caractère
innovant, technique et évolutif de cette solution nécessite une
démarche de développement souple, progressive et centrée
sur l'utilisateur.
2.2 Présentation des méthodologies de
développement logiciel (SDLC)
Le développement logiciel repose sur des modèles
méthodologiques bien établis, regroupés sous le terme de
SDLC (Software Development Life Cycle). Chaque modèle organise les
différentes phases du développement selon des principes et une
logique propre. Le choix du modèle influence profondément la
manière de gérer le projet, de collaborer en équipe et
d'interagir avec les utilisateurs finaux.
12
Ci-dessous, une présentation des principales
méthodologies :
1. Le modèle en cascade (Waterfall)
Le modèle en cascade est l'un des plus anciens
modèles de développement. Il se caractérise par une
progression linéaire et séquentielle des phases de
développement. Chaque étape (analyse des besoins, conception,
implémentation, test, déploiement, maintenance) doit être
complétée avant de passer à la suivante.
Caractéristiques :
· Rigidité du processus : pas de retour possible en
arrière.
· Documentation exhaustive à chaque phase.
· Adapté aux projets à exigences fixes et
stables. Avantages :
· Simplicité de mise en oeuvre.
· Bonne traçabilité des livrables.
Limites :
· Faible adaptabilité aux changements.
· Risque élevé si les besoins sont mal
définis au départ.
2. Le modèle en spirale
Ce modèle introduit une approche itérative
combinée à une analyse du risque. Chaque cycle (ou spirale)
contient les étapes classiques du développement, mais avec des
boucles successives qui permettent d'améliorer ou de corriger le produit
progressivement.
Caractéristiques :
· Axé sur la gestion des risques.
· Intègre des retours fréquents.
Avantages :
· Bonne maîtrise des risques.
· Adapté aux projets longs ou complexes.
Limites :
· Coûts élevés.
· Nécessite une expertise en évaluation de
risques.
3. Le modèle en V (ou modèle de validation
et de vérification)
C'est une extension du modèle en cascade, avec une
correspondance stricte entre chaque phase de développement et sa phase
de test. Chaque exigence a un plan de test associé.
13
Caractéristiques :
· Vision claire des étapes de validation.
· Phase de tests bien planifiée. Avantages
:
· Haut niveau de qualité logicielle.
· Réduction des erreurs de validation.
Limites :
· Peu flexible.
· Nécessite une très bonne définition
des exigences dès le départ.
4. Le modèle Agile
Le modèle Agile est itératif, incrémental
et collaboratif. Il repose sur une organisation du travail en sprints (courtes
périodes de développement), avec des démonstrations
régulières, des tests continus et une adaptation rapide aux
retours des utilisateurs.
Caractéristiques :
· Priorité à la satisfaction du client.
· Évolution continue du produit. Avantages
:
· Flexibilité aux changements.
· Amélioration continue.
· Forte implication des utilisateurs. Limites
:
· Moins adapté aux projets très
réglementés.
· Risque de dérive si la gestion de projet est
faible.
5. La méthode DevOps
DevOps (Development + Operations) est une culture qui vise
à rapprocher les équipes de développement logiciel et
celles chargées de l'exploitation (déploiement, surveillance).
Elle met l'accent sur l'automatisation, la livraison continue et
l'intégration continue.
Caractéristiques :
· Développement, test et déploiement
automatisés.
· Surveillance et retour immédiat après mise
en production.
14
Avantages :
· Accélère la livraison des
fonctionnalités.
· Améliore la stabilité des systèmes.
Limites :
· Nécessite une infrastructure technique
avancée.
· Transformation culturelle parfois difficile dans les
grandes entreprises. 6. Le modèle Lean
Inspiré du lean manufacturing, cette méthode vise
à éliminer les gaspillages, optimiser la valeur apportée
au client et réduire les délais. Elle repose sur la
simplification des processus, la réduction des tâches inutiles, et
l'autonomie des équipes.
Caractéristiques :
· Centré sur la valeur utilisateur.
· Recherche permanente de l'efficience. Avantages
:
· Gain de temps et de ressources.
· Produit adapté aux besoins réels.
Limites :
· Peut être difficile à mettre en oeuvre sans
expérience.
· Moins structuré que les modèles classiques.
2.3 Justification du modèle choisi : Agile
Compte tenu de la nature évolutive du projet (analyse de
CV et recrutement intelligent), le choix s'est porté sur la
méthodologie Agile. Cette approche permet de :
· Décomposer le développement en sprints
hebdomadaires,
· Intégrer rapidement les retours des RH et
utilisateurs finaux,
· Livrer des fonctionnalités utiles à chaque
itération,
· Réagir rapidement aux imprévus et
changements fonctionnels.
15
2.3 Outils et technologies utilisés
Le projet a mobilisé des technologies modernes,
adaptées aux besoins du NLP et du développement web :
Tableau 1 Outils et téchnologies
utilisés
Catégorie Outils/Technologies
Justification
|
Environnement de développement
|
Anaconda
|
Distribution Python complète et stable
avec gestionnaire d'environnements intégrés (conda),
idéale pour le NLP et la data science
|
|
Langage principal
|
Python
|
Langage flexible, adapté au traitement NLP et
à l'IA
|
|
Framework Web
|
Django
|
Framework rapide, sécurisé, avec
architecture MVT intégrée
|
|
Traitement du langage
|
spaCy, Transformers (BERT)
|
Extraction avancée d'entités,
compréhension sémantique
|
|
Base de données
|
PostgreSQL
|
Système relationnel robuste, performant et open
source
|
|
Interface frontend
|
Rectact
|
Design réactif, moderne et facile à
intégrer avec l'architecture mvvm
|
|
Visualisation
|
Matplotlib, Seaborn
|
Génération de graphiques analytiques clairs
et personnalisables
|
SECTION : Environnement et outils de
développement
Afin de concevoir un système intelligent d'analyse de
CV basé sur le traitement automatique du langage naturel, nous avons
soigneusement sélectionné une série d'outils,
bibliothèques et environnements adaptés au contexte du projet.
Cette section décrit en détail les choix technologiques retenus
ainsi que leur justification technique et fonctionnelle.
1. Environnement de développement :
Anaconda
L'environnement de développement utilisé dans ce
projet est Anaconda. Il s'agit d'une distribution open source de Python,
largement adoptée dans les domaines de la data science, du machine
learning et du traitement de données. Anaconda fournit un
écosystème intégré comprenant le gestionnaire de
paquets Conda, un environnement isolé et reproductible, ainsi que des
interfaces comme Jupyter Notebook ou Spyder. Ce choix permet de gérer
facilement les dépendances complexes liées aux
bibliothèques NLP (comme spaCy, transformers) et d'assurer une
compatibilité cohérente des versions. De plus, Anaconda facilite
le déploiement sur différents systèmes (Windows, Linux),
ce qui est crucial pour la portabilité du projet.
L'interface web destinée aux utilisateurs (entreprises
et demandeur d'emploie) a été développée en
s'appuyant sur la bibliothèque JavaScript React. Ce
choix technologique permet de
16
2. Langage de programmation principal :
Python
Le langage central utilisé est Python, en raison de sa
grande richesse en bibliothèques dédiées au traitement du
langage naturel, à l'intelligence artificielle et à la science
des données. Python est aujourd'hui considéré comme la
norme dans les domaines du NLP, grâce à des bibliothèques
comme spaCy, NLTK, scikit-learn, TensorFlow ou encore Hugging Face
Transformers. Sa syntaxe claire et son accessibilité favorisent une
productivité accrue et facilitent la collaboration entre
développeurs. De plus, Python est bien supporté dans les
environnements universitaires, ce qui rend son intégration naturelle
dans un cadre académique.
3. Framework Web : Django
Pour le développement de l'application web, nous avons
utilisé le framework Django. Ce framework Python repose sur une
architecture modèle-vue-contrôleur (MVC) qui favorise la
séparation des responsabilités et la maintenabilité du
code. Django est reconnu pour sa sécurité, sa robustesse et sa
rapidité de développement. Il intègre nativement des
modules pour la gestion des utilisateurs, l'administration des données,
les migrations de base de données, ce qui permet un développement
accéléré et structuré de la plateforme. Django est
également bien adapté à l'intégration de composants
d'intelligence artificielle via des APIs.
4. Traitement automatique du langage : spaCy et
Transformers (BERT)
Le coeur du système repose sur l'analyse linguistique
et sémantique des documents textuels (CV, offres d'emploi). Pour cela,
nous avons utilisé deux outils puissants et complémentaires.
D'une part, spaCy permet un traitement linguistique rapide et précis :
tokenisation, lemmatisation, reconnaissance d'entités nommées
(NER), etc. D'autre part, la bibliothèque Transformers de Hugging Face
fournit des modèles de langage pré-entraînés (comme
BERT) capables de produire des représentations sémantiques
profondes des phrases. Ces modèles permettent un appariement intelligent
entre un CV et une offre d'emploi, même lorsque les termes
utilisés diffèrent. Le couplage de spaCy pour la syntaxe et de
BERT pour la sémantique permet une analyse fine, robuste et
contextualisée.
5. Base de données : PostgreSQL
Le système de gestion de base de données
utilisé est PostgreSQL. Il s'agit d'un SGBD relationnel open source
reconnue pour sa fiabilité, sa conformité aux standards SQL et
ses performances, même avec des volumes de données importants.
PostgreSQL permet de stocker les profils candidats, les offres d'emploi, les
résultats d'analyse, ainsi que les historiques d'évaluation. Sa
capacité à gérer des types de données complexes et
à supporter les requêtes avancées (jointures,
agrégats, indexation) en fait un choix idéal pour ce projet. De
plus, son intégration avec Django via l'ORM (Object Relational Mapper)
permet une manipulation fluide des données côté backend.
6. Interface utilisateur (Frontend) : React
17
construire des interfaces utilisateur dynamiques et
réactives, capables de mettre à jour l'affichage en temps
réel en fonction des interactions et des données reçues du
backend.
React crée un système d'interface modulaire,
où chaque composant peut être stylisé de manière
claire et maintenable.
Grâce à cette approche, l'application propose un
tableau de bord interactif, ergonomique et responsive, optimisé pour
différents formats d'écrans (ordinateurs de bureau, tablettes,
terminaux mobiles). L'utilisation de React offre en outre la possibilité
d'implémenter des fonctionnalités avancées, telles que le
rafraîchissement automatique des résultats de matching, la
navigation fluide entre les pages et la gestion centralisée de
l'état de l'application. Enfin, cette architecture frontend garantit une
accessibilité renforcée et une expérience utilisateur
intuitive, en adéquation avec les standards modernes du
développement web.
7. Visualisation de données : Matplotlib et
Seaborn
Pour visualiser les résultats du système
(statistiques de matching, performances,
comparaisons), des bibliothèques de visualisation ont
été utilisées. Matplotlib est la bibliothèque de
base pour créer des graphiques en Python : histogrammes, courbes,
barres,
etc. Seaborn, construite sur Matplotlib, permet d'obtenir des
visualisations plus esthétiques avec moins de code, et une
intégration facilitée avec les DataFrames (pandas). Ces outils
sont particulièrement utiles pour présenter les
résultats des tests, les performances des
modèles NLP, ou encore les distributions de scores de
similarité entre CV et offres.
2.4 Architecture du système
L'architecture logicielle suit une structure client-serveur avec
les modules suivants :
1. Import des données :
Téléversement de CV au format PDF.
2. Extraction et prétraitement :
Conversion en texte brut, nettoyage, tokenisation.
3. NLP : Extraction des entités (NER),
tokenization, lemmatisation, analyse sémantique.
4. Matching et score : Calcul de
similarité entre le profil et une offre d'emploi.
5. Système d'aide à la décision
: Classement des candidats.
6. Dashboard : Interface RH, consultation des
résultats. 2.5 Méthode d'implémentation du
NLP
2.5.1 Extraction et prétraitement
Les CV sont extraits via un module OCR ou extraction PDF directe.
Le texte est ensuite nettoyé :
· Suppression des caractères spéciaux
· Mise en minuscule
· Suppression des stopwords (ex. "le", "et", "de")
· Lemmatisation pour réduire les mots à leur
racine
18
2.5.2 Reconnaissance d'entités (NER)
Le modèle spaCy est utilisé dans
un premier temps pour détecter :
· Les noms et prénoms
· Les diplômes (ex. Licence, Master)
· Les compétences techniques ("Python", "SQL")
· Les dates d'expérience professionnelle
Un modèle BERT pré-entraîné (par ex.
CamemBERT pour le français) vient enrichir cette extraction avec une
meilleure compréhension contextuelle.
2.5.3 Vectorisation et représentation
Chaque CV et chaque offre sont convertis en vecteurs
sémantiques à l'aide d'un encodeur BERT. 2.5.4
Calcul de similarité (cosine similarity)
Contexte : Après extraction des textes du CV et de
l'offre, le système utilise un modèle BERT (ou autre encodeur
NLP) pour transformer ces textes en vecteurs numériques (embedding).
Chaque document devient un vecteur dans un espace sémantique.
But : Mesurer à quel point le CV et l'offre d'emploi sont
proches dans cet espace vectoriel. On utilise pour cela la similarité
cosinus (cosine similarity).
(AxB)
Formule mathématique :
sim(A, B) = (||A||x||B||
Avec :
· A et B : vecteurs denses du CV et de l'offre.
· A · B : produit scalaire des deux vecteurs.
· ?A? et ?B? : norme (longueur) des vecteurs A et B.
Interprétation du score :
· Score = 1 ? les deux vecteurs sont identiques
(même orientation) ? documents très similaires.
· Score = 0 ? les vecteurs sont orthogonaux ? aucune
similarité.
· Score < 0 (rare dans ce contexte) ? vecteurs
opposés ? contradiction ou divergence sémantique.
Mathématiquement par là tous s'expliquent et
facile à démontrer une fois le texte converti en vecteur .
Supposons que l'encodage donne ces vecteurs :
· CV ? A = [0.5, 0.1, 0.4]
· Offre ? B = [0.6, 0.0, 0.3] sim(A, B) donnera = 0.965
19
2.5.5 Classement intelligent
Les candidats sont classés selon leur score, et ce
classement est affiché dans le dashboard RH Entreprise.
2.6 Exigences fonctionnelles et non fonctionnelles
Fonctionnelles
· Upload de CV PDF
· Extraction automatique des données pertinentes
· Matching avec des offres d'emploi
· Dashboard RH (score, export, tri) Non
fonctionnelles
· Réactivité de l'interface
· Sécurité des données
(authentification, cryptage)
· Compatibilité mobile et navigateurs
· Performances (temps de traitement < 2 secondes)
2.7 Limites méthodologiques
Certaine limite à signaler :
· Difficultés de traitement de certains formats PDF
complexes 2.8 Conclusion
La méthodologie déployée combine des outils
modernes, une approche agile et des techniques de NLP puissantes afin de
répondre aux besoins du e-recrutement intelligent. Le prochain chapitre
abordera en détail la conception technique du système et ses
différents composants fonctionnels.
20
Chapitre 3 Conception du système
3.1 Introduction
Dans le cadre de ce mémoire portant sur le
développement d'un système intelligent d'analyse de CV
fondé sur le traitement du langage naturel (NLP), le présent
chapitre constitue une étape fondamentale de la démarche
méthodologique. Il vise à exposer en détail le processus
de conception de l'application envisagée, depuis l'identification des
besoins métier jusqu'à la définition des modèles
logiques et techniques.
La conception d'un système d'information repose sur un
enchaînement structuré d'activités qui permettent de passer
d'un constat problématique à une solution technique fiable et
pertinente. Dans le domaine du recrutement, la gestion des candidatures est
aujourd'hui confrontée à plusieurs difficultés: la
réception massive de CV non standardisés, la lenteur de
l'évaluation manuelle, et la subjectivité inhérente au tri
des candidatures. L'émergence des techniques de NLP, notamment les
modèles pré-entraînés comme BERT (Bidirectionnel
Encoder Représentations from Transformers), ouvre des perspectives
nouvelles pour automatiser l'analyse sémantique des documents et
fiabiliser la sélection des profils.
Le système conçu dans ce travail a pour vocation
de permettre une comparaison objective et automatisée entre le contenu
des CV déposés par les demandeurs d'emploi et
les offres publiées par les entreprises, grâce
à l'intervention du système intelligent
d'analyse. L'originalité du dispositif repose sur la
capacité à traiter des CV au format PDF, à extraire leur
contenu textuel, à encoder l'information en vecteurs numériques
par BERT, et à calculer un score de pertinence par la mesure de
similarité cosinus. Ce score constitue un indicateur objectif de la
correspondance entre un profil et une offre d'emploi.
Le présent chapitre est organisé en plusieurs
sections complémentaires. La première partie expose
l'analyse métier, qui consiste à étudier
le processus actuel de gestion des candidatures, à identifier les
contraintes et les besoins des principaux acteurs (demandeur d'emploi,
entreprise) et à situer le rôle du système intelligent dans
la chaîne de valeur. Cette étape permet de comprendre le contexte
opérationnel et les enjeux concrets auxquels l'application devra
répondre.
La seconde partie présente l'analyse du
système informatique, notamment la définition des
exigences fonctionnelles (extraction des données, calcul de la
similarité, classement des CV, exportation des résultats) et des
exigences non fonctionnelles (performance, sécurité des
données, ergonomie, évolutivité). Ces
spécifications constituent le référentiel de conception
auquel le développement devra se conformer.
La troisième partie détaille la
conception logique et technique: architecture logicielle de
l'application, modélisation UML du système (diagrammes de cas
d'utilisation, diagrammes de séquence, diagramme de classes) et
définition du modèle logique de données. L'ensemble de ces
éléments permet de structurer le système de façon
cohérente, modulaire et évolutive.
Enfin, le chapitre se termine par la présentation du
modèle de déploiement et par la planification
des itérations de développement, qui permettront de valider
progressivement les fonctionnalités principales et d'assurer la
qualité globale du produit final.
En résumé, le chapitre 3 constitue la
colonne vertébrale conceptuelle et technique du
mémoire. Il établit un lien direct entre les besoins
exprimés par les acteurs du processus de recrutement et les
Le recruteur procède alors à une lecture
détaillée du contenu du CV. Cette lecture est suivie d'une
analyse manuelle visant à apprécier l'adéquation du profil
du candidat avec les exigences définies
21
solutions informatiques proposées, en s'appuyant sur
les meilleures pratiques d'architecture logicielle et sur les avancées
récentes du NLP appliqué à la gestion des ressources
humaines.
3.2 Modélisation du processus métier
La modélisation de processus (en
anglais, business process modeling ou BPM) consiste à
structurer et à représenter les activités d'une
organisation, généralement en utilisant une notation
graphique pour représenter visuellement
l'enchaînement des activités. La modélisation peut
s'appuyer sur des méthodes et outils spécialisés, et
mettre en oeuvre des cadres de références de
processus. [6]
Description textuelle du processus manuel de traitement
des candidatures (CV uniquement)
Le processus de traitement manuel des candidatures au sein
d'une entreprise débute dès l'instant où un demandeur
d'emploi manifeste son intérêt pour une offre d'emploi
spécifique. Dans un premier temps, le candidat consulte l'annonce
publiée, qui peut être diffusée en ligne ou par d'autres
canaux de communication (panneaux d'affichage, presse écrite,
réseaux professionnels). Il prend connaissance des conditions
d'accès au poste et des compétences attendues.
Suite à cette consultation, le candidat prépare
son curriculum vitae (CV), document essentiel permettant de présenter
son parcours académique, ses expériences professionnelles, ainsi
que ses principales compétences. Ce travail est réalisé de
manière autonome par le demandeur d'emploi, sans assistance
automatisée.
Une fois le CV finalisé, le candidat procède
à la soumission de sa candidature auprès de l'entreprise. Cette
transmission peut s'effectuer par voie électronique (email ou plateforme
de dépôt en ligne) ou par remise physique (dépôt du
dossier à l'accueil ou envoi postal). Dans certains cas, une
confirmation de réception est adressée au candidat, mais cette
pratique reste facultative et varie selon les entreprises.
La réception du CV par le service des ressources
humaines marque le transfert de responsabilité et l'ouverture du
traitement interne. La première étape consiste en une
vérification attentive de la complétude du document. L'objectif
est de s'assurer que toutes les informations nécessaires sont
présentes et que le format est conforme aux attentes.
À l'issue de cette vérification, une
première décision est prise:
Si le CV est jugé incomplet (par exemple, absence de
coordonnées, imprécisions sur le parcours professionnel), le
recruteur contacte directement le candidat afin d'obtenir les
compléments requis. Cette démarche s'effectue par email ou
téléphone et retarde l'analyse du dossier.
Si le CV est complet, il est intégré au lot des
candidatures en cours de traitement.
22
pour le poste à pourvoir (niveau de qualification,
années d'expérience, maîtrise des compétences
techniques et comportementales).
Dans un second temps, le recruteur compare les candidatures
entre elles, en utilisant généralement un tableau de suivi ou un
dossier papier, afin de mettre en évidence les différences et
d'établir une hiérarchisation des candidatures. Cette comparaison
repose sur des critères qualitatifs, et elle s'accompagne de la
rédaction de notes d'évaluation et d'appréciations propres
à chaque dossier.
Enfin, une seconde décision intervient. En fonction des
éléments analysés, le recruteur statue sur le statut final
du CV :
Si le profil est jugé pertinent et conforme aux
attentes, le CV est marqué comme présélectionné
pour la suite du processus de recrutement (convocation à un entretien,
tests complémentaires, etc.).
Si le profil est jugé non conforme ou moins
adapté, le CV est archivé dans les bases documentaires de
l'entreprise ou classé selon les procédures internes en
vigueur.
Ce processus manuel, qui mobilise l'expertise et le jugement
du recruteur à chaque étape, prend fin une fois que le statut de
l'ensemble des candidatures reçues a été fixé.
3.3 Identification des acteurs 3.3.1 un acteur
Un acteur représente un rôle joué par une
entité externe (utilisateur humain, dispositif matériel ou autre
système) qui interagit directement avec le système
étudié [7].
Un acteur peut consulter et/ou modifier directement
l'état du système, en émettant et/ou en recevant des
messages susceptibles d'être porteurs de données
[7].
o Les acteurs jouent un rôle clé dans le
fonctionnement du système en effectuant des actions ou en recevant des
informations.
23
Tableau 2 Rôles des acteurs
|
N°
|
Acteur
|
Rôle dans le système manuel
|
|
1
|
Demandeur d'emploi
|
- Recherche des offres d'emploi (presse, affichage, site
web)
- Prépare son CV et sa lettre de motivation
- Soumet sa candidature par email, en main propre ou par
courrier
|
|
2
|
Entreprise
|
- Rédige et diffuse l'offre d'emploi
- Réceptionne les candidatures
- Trie manuellement les dossiers
- Lit les CV un à un et note les candidats
- Compare les profils et sélectionne les meilleurs
|
|
3
|
Responsable RH / Service Recrutement
|
- Participe à l'analyse des dossiers
- Transmet les informations à la hiérarchie
- Organise la suite du processus (entretiens, tests, etc.)
|
3.4 Diagramme de contexte métier
Le diagramme de contexte est le premier modèle à
réaliser dans une démarche de modélisation
systémique. En effet, quel que soit le niveau d'analyse choisi par le
modélisateur, toute modélisation nécessite de
représenter et de clarifier en premier lieu la frontière de
l'entité modélisée ainsi que les objets qu'elle va
échanger avec les autres entités qui se trouvent à
l'extérieur de sa frontière et qui composent son environnement
externe [8].
En réalisant le diagramme de contexte, le
modélisateur va pouvoir définir clairement les frontières
de l'objet modélisé et ses interfaces avec l'environnement
externe et/ou interne. Le diagramme de contexte est une représentation
de l'entité pour répondre à un problème
particulier. En d'autres termes, il peut y avoir différents types de
diagramme de contexte selon la finalité qui est visée par le
modélisateur [8].
24

Figure 1 Diagramme de contexte métier
3.5 Diagramme de processus métier BPMN (Business
Process Model and Notation)
Le Business Process Model and Notation (BPMN) ou norme de
modélisation des processus métier en français, est une
méthode de logigramme qui modélise de A à Z les
étapes d'un processus métier planifié.
Élément clé de la gestion d'un processus métier, il
permet de représenter visuellement une séquence
détaillée des activités commerciales et des flux
d'informations nécessaires à la réalisation d'un processus
[9].
Mais aussi il est constituéé d'un schéma qui
peut se révéler bien plus facile à comprendre qu'un texte.
Il permet de communiquer et de collaborer plus facilement pour atteindre un
processus efficace, produisant un résultat de grande qualité. Il
contribue également à la communication menant à la
création des documents XML (Extensible Markup Language)
nécessaires à l'exécution de divers processus.
Figure 2 Diagramme de processus métier BPMN
25

Demandeur d'emploi Entreprise
1 Accusé réception du 16, candidature
A
T
Non
F
ro ntacter le candidat
tVérfication de la
complétude du
CV
ailikk Le CV est-il complet ?
Oui
Lecture du cv
Consulter I offre d'emploi
e
o-
n
Demandeur
d'emploi intéressé
Préparer le CV
Envoyer le cv pour postuler
Comparer plusieurs CV
i
Rédiger des notes et
appréciations
Le candidat est-il retenu ?
V
Oui J
I
Marquer comme
présélectionné
[tom] Candidature valider
Non
Archiver le CV
busines process use case model
26
3.6 Diagramme de cas d'utilisation métier
Les diagrammes de cas d'utilisation (DCU) sont des diagrammes
UML utilisés pour une représentation du comportement fonctionnel
d'un système logiciel. Ils sont utiles pour des présentations
auprès de la direction ou des acteurs d'un projet, mais pour le
développement, les cas d'utilisation sont plus appropriés. En
effet, un cas d'utilisation (use cases) représente une
unité discrète d'interaction entre un utilisateur (humain ou
machine) et un système. Ainsi, dans un diagramme de cas d'utilisation,
les utilisateurs sont appelés acteurs (actors), et ils apparaissent dans
les cas d'utilisation [10].
Ils permettent de décrire l'interaction entre l'acteur
et le système. L'idée forte est de dire que l'utilisateur d'un
système logiciel a un objectif quand il utilise le système ! Le
cas d'utilisation est une description des interactions qui vont permettre
à l'acteur d'atteindre son objectif en utilisant le système. Les
use case (cas d'utilisation) sont représentés par une
ellipse sous-titrée par le nom du cas d'utilisation
(éventuellement le nom est placé dans l'ellipse). Un acteur et un
cas d'utilisation sont mis en relation par une association
représentée par une ligne [10].

Figure 3 Diagramme de cas d'utilisation métier
27
3.7 MODELE DU DOMAIN
Le modèle du domaine est une
représentation des concepts clés du
système, de leurs caractéristiques et des liens qui les
unissent. Il s'agit d'un diagramme de classes
simplifié, destiné avant tout à faciliter la
compréhension des entités fondamentales du domaine métier,
indépendamment de toute considération technique ou de mise en
oeuvre. Ce modèle décrit de manière claire et
structurée les objets qui interviennent dans le fonctionnement du
système, tels que les candidats, les offres d'emploi, les CV ou encore
les entreprises, ainsi que les relations logiques qui les relient.
L'objectif principal du modèle du domaine est
d'établir un vocabulaire commun et partagé entre les parties
prenantes du projet (maîtrise d'ouvrage, développeurs,
utilisateurs finaux), afin de s'assurer que la conception technique
reflète fidèlement la réalité métier et
réponde aux besoins exprimés.
Le diagramme de classes est quant à
lui un outil essentiel qui permet de modéliser la structure
statique du système. Il représente les objets ou
entités du domaine, leurs attributs, leurs méthodes principales,
ainsi que les relations de dépendance, d'association ou
d'héritage qui les relient. Ce diagramme joue un rôle central dans
la démarche de conception: il sert de point de référence
pour la définition des structures de données, la conception de la
base de données relationnelle, et la génération des
squelettes de code objet.
Dans le cadre de ce projet, le diagramme de classes facilite
la visualisation des entités principales du système (Entreprise,
Offre d'emploi, Demandeur d'emploi, CV), de leurs propriétés (par
exemple les coordonnées, les dates de publication ou les scores de
pertinence) et des cardinalités des associations (une entreprise peut
publier plusieurs offres, un demandeur peut déposer plusieurs
candidatures, etc.).
28

Figure 4 Diagramme de classes système 3.7
Analyse du système informatique
Cette section présente l'analyse
détaillée du système informatique envisagé.
L'objectif est de spécifier les exigences auxquelles la solution doit
répondre, afin d'assurer son adéquation aux besoins métier
identifiés et de guider la conception technique. L'analyse porte
à la fois sur les exigences fonctionnelles, qui
décrivent les services attendus du système, et sur les
exigences non fonctionnelles, qui fixent les contraintes de
qualité, de performance et de sécurité.
Avec plaisir. Voici une version bien structurée et
rédigée de la section :
Ø Exigences fonctionnelles du système existant
(manuel)
29
Cette section présente les exigences fonctionnelles du
système actuel, c'est-à-dire le processus manuel tel qu'il est
observé avant toute informatisation ou automatisation. Il s'agit
d'identifier les tâches que les acteurs réalisent aujourd'hui sans
l'aide d'un système intelligent, afin de mieux comprendre les limites du
fonctionnement actuel et de motiver la mise en place d'une solution
numérique.
o Exigences fonctionnelles identifiées dans le
système existant :
1. Publication manuelle des offres d'emploi
§ Les offres d'emploi sont rédigées et
publiées via des canaux classiques : affichage physique, annonces dans
la presse, groupes WhatsApp ou e-mail.
§ L'offre est souvent sous forme de document Word ou
texte simple.
2. Réception des candidatures
§ Les candidats envoient leur CV par e-mail, sur support
physique (clé USB, papier) ou les déposent en personne.
§ Aucun système centralisé ne gère
la réception : chaque dossier est stocké manuellement.
3. Lecture et analyse des CV
§ Le responsable RH lit chaque CV un par un.
§ L'analyse repose sur l'expérience du recruteur
: vérification manuelle des diplômes, expériences,
compétences.
4. Tri manuel des dossiers
§ Les recruteurs trient les candidatures selon des
critères internes (souvent non formalisés).
§ Les profils sont classés manuellement dans des
dossiers : "retenus", "à revoir", "refusés".
5. Sélection
§ Une liste de candidats
présélectionnés est rédigée sur papier ou
dans un fichier Excel.
§ Le classement est subjectif, sans outil de mesure
formel.
6. Absence de retour automatique
§ Les candidats ne reçoivent souvent pas de retour
formel.
§ Le suivi des candidatures est rarement
automatisé.
7. Archivage des CV
§ Les CV sont stockés dans des dossiers
informatiques ou physiques sans étiquetage standardisé.
§ Il est difficile de retrouver un ancien CV ou de
réutiliser une base de données de candidats.
30
Remarque :
Aucune de ces étapes n'est automatisée, ce qui
engendre des pertes de temps, des oublis, et un manque d'objectivité
dans la sélection.
Suggestion
Pour rendre le processus de recrutement plus simple, rapide et
objectif, nous proposons une application web d'analyse intelligente des
candidatures basée sur le traitement automatique du langage naturel
(NLP). Cette solution aidera les entreprises à identifier plus
efficacement les profils pertinents en comparant automatiquement les CV soumis
aux exigences des offres d'emploi grâce à un modèle BERT de
similarité sémantique.
Ce système permettra aux entreprises de simplifier
leurs démarches de présélection sans avoir à
traiter manuellement de grandes quantités de candidatures, ce qui
réduit considérablement le temps d'analyse et le risque d'erreur
humaine. De plus, l'application offrira aux demandeurs d'emploi la
possibilité de postuler directement en ligne, de recevoir un
accusé de réception et d'assurer une meilleure
traçabilité de leur candidature.
L'authentification sécurisée par OTP garantira
la confidentialité des informations sensibles et la protection des
données personnelles des utilisateurs.
Accessible depuis tout appareil connecté (ordinateur,
tablette, smartphone), l'application couvrira l'ensemble du processus de
dépôt, d'analyse et de classement des CV, assurant une
organisation plus rigoureuse et une expérience utilisateur moderne et
fluide.
3.7.1 Spécification des exigences o Exigences
fonctionnelles
Les exigences fonctionnelles définissent les
principales fonctionnalités que le système doit offrir. Elles
couvrent l'ensemble du cycle de traitement des candidatures, depuis la
publication des offres jusqu'à l'analyse automatique des CV et la
restitution des résultats aux utilisateurs.
Exigences fonctionnelles identifiées : Gestion des
utilisateurs
Le système doit permettre aux entreprises de
créer un compte, de s'authentifier de manière
sécurisée et de gérer leur profil.
L'authentification devra inclure un mécanisme
d'authentification forte via OTP (One-Time Password)
envoyé par email pour renforcer la sécurité lors de la
connexion. Les demandeurs d'emploi doivent pouvoir créer un compte, se
connecter avec OTP, et mettre à jour leurs informations personnelles.
v Publication des offres d'emploi
Les entreprises doivent pouvoir créer, modifier et
supprimer des offres d'emploi via une interface conviviale.
Chaque offre doit comporter au minimum les informations
suivantes: Titre du poste
Description détaillée
31
Compétences requises Niveau d'études
souhaité Type de contrat
Lieu
Date limite de candidature Ect
Consultation des offres
Les demandeurs d'emploi doivent pouvoir consulter la liste des
offres disponibles. Ils doivent pouvoir accéder aux détails
complets de chaque offre avant de postuler.
v Dépôt de candidatures
Les demandeurs d'emploi doivent pouvoir déposer leur CV
au format PDF en réponse à une offre
sélectionnée.
Le système doit confirmer automatiquement la
réception de chaque candidature.
v Extraction et analyse automatique des CV
Le système doit extraire le contenu textuel des CV
déposés.
Il doit générer un vecteur d'embedding à
l'aide du modèle BERT pré-entraîné. Il doit comparer
le contenu du CV avec l'offre d'emploi et calculer un score de
similarité.
v Classement et restitution des résultats
Le système doit afficher la liste des candidatures
reçues pour chaque offre, triée par ordre décroissant de
pertinence.
Il doit permettre d'exporter les résultats au format
Excel et PDF.
v Tableau de bord administratif
Le système doit fournir un tableau de bord de suivi avec
les indicateurs suivants :
Nombre d'offres publiées
Nombre de candidatures reçues
Taux moyen de pertinence des candidatures Statistiques des
dépôts par période
o Exigences non fonctionnelles
Les exigences non fonctionnelles précisent les
contraintes techniques, ergonomiques et organisationnelles auxquelles le
système doit se conformer.
32
Exigences non fonctionnelles identifiées
:
v Sécurité
Les données personnelles des utilisateurs doivent
être protégées conformément aux
réglementations en vigueur.
L'authentification doit être sécurisée avec
un mot de passe chiffré et une vérification par OTP
lors de la connexion.
L'accès aux fonctionnalités sensibles doit
être contrôlé selon le rôle (entreprise, candidat,
administrateur).
v Performance
Le système doit être capable d'analyser un CV et
de générer un score en moins de seconde
après le la soumission de cv.
La navigation doit rester fluide même en cas de forte
affluence.
v Compatibilité
L'application doit être compatible avec les principaux
navigateurs (Chrome, Firefox, Edge).
L'interface doit être responsive, adaptée aux
écrans mobiles et tablettes.
v Ergonomie
L'interface doit être claire et intuitive, avec une
navigation facilitée par des menus explicites et des indications
visuelles.
Les messages d'erreur doivent être précis et guider
l'utilisateur pour corriger les actions.
v Maintenance
Le système doit être conçu de façon
modulaire afin de faciliter son évolution. 3.8. Analyse des
besoins de conception
3.8.1 Présentation du système d'analyse de cv
basé sur NLP

33
Figure 5 Présentation du système
3.8.2 Identification des acteurs du système
d'analyse de cv basé sur le NLP
Un acteur représente un rôle joué par une
entité externe (utilisateur humain, dispositif matériel ou autre
système) qui interagit directement avec le système
étudié. Un acteur peut consulter et/ou modifier directement
l'état du système, en émettant et/ou en recevant des
messages susceptibles d'être porteurs de données [11].
Pour le cas de notre nouveau système, nous recenser les
acteurs ci-après :
Tableau 3 Identification des acteurs du système
d'Analyse de cv basé sur le NLP
|
N° ACTEURS DESCRIPTION
|
|
1
|
Demandeur
|
Toute personne à la recherche d'un emploi qui peut
créer un compte, consulter
|
|
d'emploi
|
les offres, déposer son CV au format PDF et suivre le
statut de sa candidature.
|
|
2
|
Entreprise
|
Organisation ou recruteur autorisé à publier des
offres d'emploi, consulter les candidatures reçues et visualiser les
scores de correspondance générés par le système.
|

3.8.3. Identification des cas d'utilisation
Dans le cadre de la conception du système
proposé, nous avons défini un ensemble de cas d'utilisation
reflétant les principales fonctionnalités attendues. Ces cas
décrivent les interactions entre les différents utilisateurs du
système (demandeurs d'emploi, entreprises, administrateur) et visent
à automatiser efficacement la gestion des candidatures ainsi que
l'analyse intelligente des CV via le NLP.
34
Les différents cas d'utilisation recensés
pour notre système sont les suivants :
1. Créer un compte Permettre aux
utilisate
urs (entreprises, demandeurs d'emploi) de s'inscrire sur la
plateforme.
2. S'authentifier
Connexion sécurisée avec mot de passe et OTP.
3. Gérer le profil utilisateur
Modifier les informations personnelles et les paramètres
de compte.
4. Publier une offre d'emploi
Créer une nouvelle offre avec tous les détails
requis.
5. Gérer les offres d'emploi
Modifier ou supprimer des offres existantes.
6. Téléverser un CV
Envoyer un CV PDF en réponse à une offre.
7. Recevoir la confirmation de candidature
Accuser réception automatiquement au candidat.
8. Analyser le CV
Extraction du texte, génération de l'embedding NLP
et calcul de la similarité.
9. Afficher les candidatures
Voir la liste triée des CV par pertinence.
10. Exporter les résultats
Télécharger les classements au format Excel et
PDF.
3.8.3 Diagramme de cas d'utilisation
Les diagrammes de cas d'utilisation servent à
identifier et à répertorier les principales
fonctionnalités d'un système. Ils permettent de visualiser de
manière synthétique comment les acteurs (utilisateurs ou autres
systèmes) interagissent avec le système, quelles actions ils
réalisent, et quelles sont les fonctionnalités offertes par le
système en réponse à ces actions. En résumé,
les diagrammes de cas d'utilisation sont un outil puissant pour comprendre et
documenter les exigences du projet de
35
manière compréhensible pour toutes les parties
prenantes. Il représente une fonctionnalité du système
visible de l'extérieur du système.

Figure 6 Diagramme de cas d'utilisation 3.8.5
Planification des itérations
Le tableau de Planification des itérations permet de
répartition des cas d'utilisation par cycle, selon leur priorité
et risque, afin d'assurer un développement progressif.
36
Tableau 4 Planification des itérations
N° Cas d'utilisation Acteur Priorité Risque
Itération
|
1
|
Créer compte utilisateur
|
Demandeur/ Entreprise
|
Haute
|
Moyen
|
1
|
|
2
|
S'authentifier (avec OTP)
|
Tous
|
Haute
|
Moyen
|
1
|
|
3
|
Réinitialiser mot de passe
|
Tous
|
Moyenne
|
Moyen
|
2
|
|
4
|
Gérer profil utilisateur
|
Tous
|
Moyenne
|
Faible
|
2
|
|
5
|
Publier offre
|
Entreprise
|
Haute
|
Moyen
|
3
|
|
6
|
Gérer offre d'emploi
|
Entreprise
|
Moyenne
|
Moyen
|
3
|
|
7
|
Consulter les offres
|
Demandeur d'emploi
|
Moyenne
|
Faible
|
3
|
|
8
|
Téléverser CV
|
Demandeur d'emploi
|
Haute
|
Moyen
|
4
|
|
9
|
Supprimer ou modifier CV
|
Demandeur d'emploi
|
Moyenne
|
Faible
|
4
|
|
10
|
Analyser CV
|
Entreprise
|
Haute
|
Élevé
|
5
|
|
11
|
Afficher résultat de l'analyse
|
Entreprise
|
Haute
|
Moyen
|
5
|
|
12
|
Afficher candidatures
|
Entreprise
|
Haute
|
Moyen
|
5
|
|
Dans le cadre de la modélisation du système
proposé, le plan d'itérations permet de structurer le
développement progressif des différentes fonctionnalités
en regroupant les cas d'utilisation par étapes logiques et prioritaires.
Chaque itération correspond à une unité de temps de
développement (souvent une à deux semaines), au cours de laquelle
plusieurs cas d'utilisation sont implémentés de manière
cohérente. Les numéros d'itérations peuvent ainsi se
répéter dans le tableau car plusieurs fonctionnalités
connexes ou complémentaires sont développées
simultanément au sein d'une même phase.
Par exemple, les fonctionnalités liées à
l'authentification des utilisateurs, comme la création de compte et
l'envoi d'un code OTP, sont toutes prévues dès l'itération
1 afin de garantir l'accès sécurisé au système.
L'itération 2 regroupe les opérations de gestion du profil
utilisateur, tandis que l'itération 3 introduit les premières
interactions avec les offres d'emploi, notamment la publication et la
consultation. Les itérations suivantes étendent progressivement
les capacités du système, notamment l'analyse intelligente des
CVs via un moteur NLP, la visualisation des scores de correspondance et
l'export des résultats. Cette organisation permet d'avoir un
développement incrémental, où chaque itération
aboutit à une version partiellement fonctionnelle et testable de
l'application.
37
3.9 Diagramme de séquence
Est un diagramme UML qui représente la séquence
de messages entre les objets au cours d'une interaction. Il permet de
modéliser les interactions possibles entre les objets et les acteurs du
système en fonction du temps. Il montre comment les objets collaborent
entre eux pour atteindre l'objectif d'un cas d'utilisation ou d'un processus.
Un diagramme de séquence comprend des lignes de vie, qui
représenter les objets, est des messages, qui représentent les
échanges entre les objets.
3.9.1 Description textuelle des cas d'utilisation et leurs
diagrammes
1. Titre : Créer un compte utilisateur
Résumé : Permet à un demandeur d'emploi ou
une entreprise de s'inscrire sur la plateforme.
Acteurs : Demandeur d'emploi, Entreprise
Précondition : L'utilisateur ne possède pas encore
de compte.
Scénario nominal :
1.1. L'utilisateur accède à la page
d'inscription.
1.2. Il remplit les champs requis.
1.3. Le système vérifie les données, envoie
un code OTP.
1.4. L'utilisateur valide le code, et le compte est
créé.
Postcondition : Le compte est activé.
38

Figure 7 Diagramme de séquence CU1 créer
compte
2. Titre : S'authentifier
Résumé : Permet aux utilisateurs inscrits de se
connecter.
Acteurs : Demandeur d'emploi, Entreprise
Précondition : Compte déjà
créé.
Scénario nominal :
2.1. L'utilisateur saisit ses identifiants.
2.2. Le système vérifie les identifiants.
2.3. Si valides, l'accès est accordé.
Postcondition : Session ouverte.
39

Figure 8 Diagramme de séquence CU2 S'authentifier
3. Titre : Réinitialiser le mot de passe
Résumé : Permet à un utilisateur de
récupérer son accès. Acteurs : Tous
Précondition : L'utilisateur a perdu ses identifiants.
Scénario nominal :
3.1. L'utilisateur clique sur « Mot de passe oublié
». 3.2. Un lien ou OTP est envoyé.
3.3. L'utilisateur crée un nouveau mot de passe.
Postcondition : Mot de passe mis à jour.
Figure 9 Diagramme de séquence CU 3
Réinitialisation de mot de passe
40

41
4. Titre : Gérer profil utilisateur
Résumé : Mettre à jour ses informations
personnelles.
Acteurs : Tous
Précondition : Être connecté.
Scénario nominal :
4.1. L'utilisateur accède à « Mon profil
».
4.2. Il modifie ses informations.
4.3. Le système enregistre les modifications.
Postcondition : Profil mis à jour.

Figure 10 Diagramme de séquence CU 4 Gérer
profil
42
5. Titre : Publier une offre
Résumé : Une entreprise peut créer une
nouvelle offre d'emploi.
Acteurs : Entreprise
Précondition : Être connecté.
Scénario nominal :
5.1. L'entreprise clique sur « Nouvelle offre ».
5.2. Elle saisit les détails de l'offre.
5.3. Le système enregistre et affiche l'offre.
Postcondition : Offre disponible pour consultation.

Figure 11 Diagramme de séquence CU 5 Publier
offre
6. Titre : Gérer offres d'emploi
Résumé : Modifier ou supprimer une offre
publiée.
Acteurs : Entreprise
Précondition : Offre déjà existante.
Scénario nominal :
43
6.1. L'entreprise sélectionne une offre. 6.2. Elle peut la
modifier ou la supprimer. 6.3. Le système met à jour ou retire
l'offre. Postcondition : Offre publiée.

Figure 12 Diagramme de séquence CU 6 Gérer
l'offre
7. Titre : Consulter les offres d'emploi
Résumé : Toute personne (connectée ou non)
peut voir les offres sur la page d'accueil.
Acteurs : Demandeur d'emploi
Précondition : Offres publiées
Scénario nominal :
7.1. L'utilisateur accède à la liste des offres.
7.2. Le système affiche les offres.
7.3. Il peut filtrer ou rechercher.
Postcondition : Offres visibles publiquement.
44

Figure 13 Diagramme de séquence CU 7 Consulter les
offres
8. Titre : Téléverser un CV
Résumé : Permet au demandeur de postuler via un
CV en PDF.
Acteurs : Demandeur d'emploi
Précondition : Être connecté.
Scénario nominal :
8.1. L'utilisateur sélectionne une offre.
8.2. Il choisit un fichier PDF.
8.3. Le système vérifie, enregistre, puis
déclenche l'analyse.
Postcondition : CV analysable.
45

Figure 14 Diagramme de séquence CU 8
Téléverser un cv
9. Titre : Supprimer ou modifier un CV
Résumé : Modifier ou retirer un CV
déjà téléversé.
Acteurs : Demandeur d'emploi
Précondition : Être connecté et CV
existant.
Scénario nominal :
9.1. Le candidat accède à ses CVs.
9.2. Il en supprime ou modifie un.
Postcondition : Modification prise en compte.
46

Figure 15 Diagramme de séquence CU 9 supprimer ou
modifier un cv
10. Titre : Analyser un CV
Résumé : Le système traite le CV avec le
NLP.
Acteurs : Système (automatique)
Précondition : CV téléchargé.
Scénario nominal :
10.1. Le système extrait le texte.
10.2. Il génère les vecteurs BERT.
10.3. Il calcule la similarité.
Postcondition : Score disponible.
47

Figure 16 Diagramme de séquence CU 10 Analyser un cv
11. Titre : Afficher résultat de l'analyse
Résumé : Affiche tous les CVs reçus pour une
offre. Acteurs : Entreprise
Précondition : Des candidats ont postulé.
Scénario nominal :
11.1. L'entreprise accède à la liste des
candidatures. 11.2. Elle consulte les informations et scores. Postcondition :
Liste disponible.
48

Figure 18 Diagramme de séquence CU 11 AfficherResultat
13. Titre : Afficher candidatures
Résumé : Affiche tous les CVs reçus pour une
offre. Acteurs : Entreprise
Précondition : Des candidats ont postulé.
Scénario nominal :
13.1. L'entreprise accède à la liste des
candidatures. 13.2. Elle consulte les informations et scores. Postcondition :
Liste disponible.
49

Figure 19 Diagramme de séquence CU 12 afficher
candidatures 3.10. Diagramme de classe de conception
Le diagramme de classes de conception constitue un outil
fondamental de modélisation, permettant de représenter la
structure statique d'un système d'information. Il offre une vision
structurée des entités qui composent l'application, en
précisant leurs attributs, leurs méthodes ainsi que les relations
qui les relient.
Dans le cadre de ce projet, ce diagramme formalise les
entités centrales, notamment les comptes utilisateurs, les CV, les
offres d'emploi, ainsi que les résultats d'analyse
générés par le moteur NLP. Il joue également un
rôle clé dans la conception de la base de données
PostgreSQL et l'implémentation des modèles dans Django.
Éléments clés dans un diagramme de
classes
1. Classe
Une classe est représentée par un rectangle
divisé en trois compartiments :
· Le nom de la classe (ex. : CV, Offre, Utilisateur,
Analyse)
· Les attributs (ex. : email, mots_clés, score)
· Les méthodes ou opérations (ex. :
générer_otp(), analyser_cv())
50
2. Attributs
Ils représentent les données propres à
chaque entité.
Exemple : La classe CV possède des attributs tels que
fichier_pdf, compétences, années_d'expérience.
3. Opérations ou Méthodes
Ce sont les comportements internes à chaque classe.
Exemple : La classe Utilisateur peut avoir des
méthodes telles que authentifier(), vérifier_otp(), ou
réinitialiser_mot_de_passe().
4. Visibilité
Elle détermine l'accessibilité des
éléments :
· public : accessible depuis toute autre classe
· privé : accessible uniquement à
l'intérieur de la classe
· protégé : accessible aux classes
héritées Types de relations entre les classes
a.Association
Lien logique entre deux entités. Exemple : Une
Entreprise publie plusieurs Offres. Un Demandeur d'emploi peut
téléverser plusieurs CV.
b. Héritage
(généralisation)
Une classe spécialisée hérite d'une classe
plus générale.
Exemple : La classe Utilisateur est générique
et donne naissance aux classes Entreprise et Demandeur d'emploi.
c. Composition
Relation forte : la suppression de la classe principale
entraîne celle de la dépendante.
Exemple : Une Analyse dépend d'un CV. Si ce dernier est
supprimé, l'analyse devient obsolète.
d. Agrégation
Relation souple : l'entité liée peut exister
indépendamment.
Exemple : Une Offre est associée à une Entreprise,
mais l'Entreprise peut exister sans offre.
e. Dépendance
Lien temporaire utilisé pour l'exécution d'une
tâche ponctuelle.
Exemple : ExportService utilise les données des CV et des
scores pour générer un fichier (PDF, Excel), sans lien permanent
avec ces classes.
Ce diagramme de classes constitue une représentation
synthétique de l'architecture du système, facilitant le passage
vers l'implémentation technique avec Django. Il assure une
compréhension claire des rôles et responsabilités de chaque
entité, tout en garantissant une maintenabilité
et une extensibilité optimales du projet.
51
DC Système
OffreEmploi
- titre : string
description : texte
exigences : texte
responsabilités : texte - salaire : decimal
devise_salaire : string salaire_visible : booléen
- localisation : string
télétravail_possible : booléen
- type_contrat : string
niveau expérience : string
_
active booléen
- date_limite : date
- date_création : datetime date modification : datetime
compétences_ requises : JSONField avantages : texte
+ Creer offre()
+ supprirner_offre()
+ modifier_offre()
+ afficher_details_offre()
+ Hltreroffre()
CV
fichier_cv: FileField
données_extraites: JSONField compétences :
JSONField formations: JSONField a nnées_expérience : float
poste_recherche : string poste_occupe : string description_expérience :
texte texte_extrait : texte méthade_exhachon : string erreur
traitement:texte statut :CharField
notes : texte
date_création : datetime date traitement: datetime
= estimer_annees_experience[.: + modifier_cv0
+ supprimer cv()
+ extraire données[:
|
|
ProfilEntreprise
|
|
|
|
|
PrafilChercheurErnploie
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
nam_entreprise : string logo : image descriptian_entreprise :
string site_web : string
+
|
|
|
|
photo_profil : image compétences : string
expérience : string
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ ajouter_phota_proFil()
+ supprimer_photo_prehl()
+ ajouter_compétences(} +
supprimer_compétence()
|
+
|
|
modifier()
+ ajouter()
+ supprimer()
+ changer logo()
|
+
|
+
|
+
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Utilisateur
|
|
|
|
|
|
|
|
|
|
|
email : String
numero_telephone : String type_utilisateur: String prenorn :
String
nom : String
ville : String
code_otp : String es# vedfie : Boolean tentatives connexion :
Integer token_reinitialisation : String est_actif : Boolean
est_membre_personnel : Boolean date inscription : Date derniere_connexion :
Date derniere_activite : Date
|
|
|
|
|
|
|
+ générer_otp()
+ générer_token réinitialisation()
+ activer compte()
+ désactiver_compte()
+ marquer_camme vérifié()
+ norn_cornplet() : String
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 Reçoit
|
|
|
|
|
|
|
|
|
|
|
|
O..'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Notification
|
|
|
|
|
|
|
|
|
|
|
|
titre : String message : String lue : Boolean uri : LIRL date
creation : Date
|
|
|
|
|
|
|
|
|
|
|
+ marquer_lue(j : void
+ marquer_non_lue(): void
-F envoyer par email()
|
|
|
|
|
|
|
|
Genére
O..
ResultatAnalyseCV
score : String
date_analyse Date
+ enregistrer envoil)
+ get_categorie_score()
Trace
t]'
JoumalEnvoiEmail
- destinataire : String - statut : String
- message_erreur : String - date envoi : Date
+ enregistrer envoi()
Figure 20 Diagramme système
52
3.11. DIAGRAMME DE CLASSES PARTICIPANTES
Le diagramme de participants, également appelé
diagramme de communication ou diagramme de collaboration, est un diagramme
d'interaction en UML. Il illustre les objets impliqués dans une
interaction ainsi que les messages échangés entre eux afin de
réaliser un scénario spécifique,
généralement dérivé d'un cas d'utilisation.
Contrairement au diagramme de séquence qui met l'accent sur la
chronologie des événements, le diagramme de participants
privilégie la structure statique des échanges en
représentant les rôles des objets et les relations de
communication entre eux.
Ce type de diagramme permet de modéliser les
collaborations entre les différentes classes d'analyse, notamment les
classes de type boundary (interface utilisateur), control (logique
métier ou coordination) et entity (gestion des données). Il
fournit ainsi une vue claire et synthétique de l'architecture logique du
système dans le cadre d'un traitement donné.

Figure 21 Diagramme de classe participante CU 1
inscription

Figure 1 22
Diagramme de classe participante CU 2
Authentification

53
Figure 23 Diagramme de classe participante CU 3
Réinitialisation
Figure 24 Diagramme de classe participante CU 4 Gérer
profil

54
Figure 25 Diagramme de classe participante CU 5 publier
offre

55
Figure 26 Diagramme de classe participante CU 6 Gérer
offre
56

Figure 27 Diagramme de classe participante CU 7 Consulter
l'offre

Figure 28 Diagramme de classe participante CU 8
Téléverser cv

57
Figure 29 Diagramme de classe participante CU 9 Supprimer
modifier cv

58
Figure 30 Diagramme de classe participante CU 10 Analyser
cv

59
Figure 31 Diagramme de classe participante CU 11 Afficher
résultat
Figure 32 Diagramme de classe participante CU 12 Afficher
candidature
60
3.12. CONCEPTION DU MODÈLE LOGIQUE DE
DONNÉES
Le Modèle Logique de Données (MLD) constitue une
étape clé de la conception d'un système d'information. Il
permet de structurer les données à manipuler en respectant les
exigences fonctionnelles exprimées lors de la phase d'analyse. Le MLD
traduit les concepts métiers identifiés dans le Modèle
Conceptuel de Données (MCD) en éléments techniques
compatibles avec un système de gestion de base de données
relationnelle (SGBDR), ici PostgreSQL.
Ce modèle sert de fondement à la
génération ultérieure du Modèle Physique de
Données (MPD), qui correspond à la structure finale
implémentée dans la base.
Caractéristiques principales :
· Les entités métiers (par exemple :
Utilisateur, CV, Offre, Analyse) sont transformées en tables
relationnelles.
· Les attributs de ces entités deviennent les
colonnes des tables, avec un typage explicite adapté (exemples : VARCHAR
pour les chaînes de caractères, INTEGER pour les entiers, BOOLEAN
pour les booléens, TIMESTAMP pour les dates).
· Les identifiants des entités deviennent des
clés primaires (PK), souvent nommées id ou identifiant, avec
auto-incrément ou UUID selon la stratégie choisie.
· Les associations entre entités sont
modélisées soit :
§ Par des clés étrangères (FK),
lorsqu'il s'agit de relations de type 1,N ou N,1 (ex : un CV appartient
à un seul utilisateur),
§ Ou par des tables d'association
supplémentaires, lorsqu'il s'agit de relations N,N (ex : un CV peut
correspondre à plusieurs offres, et une offre peut recevoir plusieurs
CVs).
· Les contraintes d'intégrité
(unicité, non-null, relations référentielles) sont
définies afin de garantir la cohérence et la validité des
données.
Exemple d'application :
Pour ton système, les entités clés suivantes
deviennent des tables principales du MLD :
· Utilisateur (CustomUser) ? Table utilisateur
· ProfilEntreprise ? Table entreprise
· ChercheurEmploi ? Table chercheur_emploi
· Offre ? Table offre
· CV ? Table cv
· Analyse NLP ? Table analyse_cv (si
séparée)
· Notifications ? Table notification ou email_log
61
Chaque table contient une clé primaire (ex : id), des
colonnes typées (ex : phone_number : VARCHAR(13), is_verified :
BOOLEAN), et des clés étrangères (ex : user_id,
entreprise_id).
Les relations complexes comme le lien CV et Offre sont
représentées par une table d'association (ex : cv_offre) avec
deux clés étrangères pointant respectivement vers la table
cv et la table offre.
Ce modèle permet d'assurer la persistance des
données, la normalisation, l'intégrité et
l'extensibilité du système, tout en facilitant
l'implémentation avec un ORM comme Django Models.
3.13. DIAGRAMME DE DÉPLOIEMENT
Le diagramme de déploiement (Deployment Diagram) est
un diagramme structurel UML qui permet de représenter la topologie
physique du système. Il décrit comment les composants logiciels
(code source, bibliothèques, services, modèles NLP, etc.) sont
distribués et déployés sur les noeuds matériels et
logiciels du système (serveurs, navigateurs, bases de données,
etc.).
Ce diagramme est indispensable pour visualiser
l'environnement d'exécution réel de l'application, notamment dans
une architecture client-serveur ou distribuée. Il assure la
compréhension globale de la structure d'hébergement, de
l'accessibilité des services, et des dépendances entre les
différentes couches.
Dans le cas de notre système intelligent d'analyse de
CV basé sur le NLP, le diagramme de déploiement permet de
représenter l'architecture logicielle articulée autour des
technologies suivantes :
· Framework backend Django (Python)
· API REST pour la communication avec le frontend
· Interface utilisateur en React.js + Tailwind CSS
· Moteur NLP BERT embarqué pour l'analyse
sémantique
· SGBD PostgreSQL pour le stockage des données
· Serveur d'applications (Gunicorn / uWSGI)
· Serveur web (Nginx ou Apache)
· Conteneurs (optionnellement Docker)
· Navigateur client (pour l'utilisateur final)
Les principaux éléments à
représenter dans ce diagramme sont :
1. Les Noeuds (Nodes) :
Ce sont les dispositifs physiques ou virtuels sur lesquels
les composants sont exécutés. Dans notre système, on
distingue notamment :
· Le client utilisateur (navigateur web sur poste ou
mobile)
· Le serveur applicatif (hébergeant l'API Django +
NLP)
· Le serveur de base de données (PostgreSQL)
62
· Un moteur de traitement (pour BERT + PDF parser)
· Une infrastructure d'hébergement (local, Cloud, ou
via conteneurs Docker/Kubernetes)
2. Les Artéfacts (Artifacts) :
Ce sont les artefacts logiciels déployés sur les
noeuds. Exemples :
· Backend : code source Django (.py), modèles BERT,
scripts d'analyse (.py), fichiers de configuration (
settings.py, .env)
· Frontend : fichiers React buildés (index.html,
JS/CSS)
· Base de données : schéma relationnel
PostgreSQL (tables, contraintes)
3. Les Associations :
Ce sont les canaux de communication entre les noeuds, illustrant
les flux de données ou les appels réseau. Exemple :
· HTTPS entre le navigateur client et le serveur web
· REST API (HTTP/JSON) entre React et Django
· Connexion TCP/IP entre Django et PostgreSQL
· Communication interne entre Django et le moteur NLP Le
déploiement de notre système se présente de la
manière suivante :

63
Figure 33 Diagramme de déploiement
64
Conclusion partielle
Dans ce chapitre, notre démarche a
débuté par une analyse détaillée du processus
métier de gestion des candidatures et de l'analyse automatisée de
CV. Nous avons ensuite présenté et modélisé le
système intelligent que nous proposons, centré sur
l'automatisation de l'extraction d'informations pertinentes à partir des
CV et leur traitement sémantique à l'aide de techniques NLP.
L'étude a permis d'identifier les exigences
fonctionnelles et non fonctionnelles du système, de décrire les
flux de données, les acteurs impliqués, ainsi que les points
forts et les limitations des approches classiques, justifiant ainsi notre
solution. Les méthodes de collecte, de traitement des CV (parser PDF,
analyse avec BERT), et de restitution des résultats ont
été décrites.
Nous avons également modélisé les
différents aspects du système à l'aide de diagrammes UML
clés : diagrammes de cas d'utilisation, de séquence, de classes,
du modèle logique de données, et enfin le diagramme de
déploiement. Ce dernier illustre l'architecture physique du
système, avec une répartition claire des composants logiciels sur
des noeuds distincts : client (navigateur), serveur web, serveur applicatif,
base de données et broker de messages.
Enfin, la conception globale du système repose sur une
architecture client-serveur hybride intégrant :
· le modèle MVVM côté frontend
(React) pour une meilleure séparation entre l'interface utilisateur et
la logique de présentation ;
· le modèle MVT côté backend
(Django), structurant le traitement des requêtes, la logique
métier, et le rendu des données.
Cette structuration garantit un système modulaire,
scalable et maintenable, capable de traiter efficacement les CV à grande
échelle avec un bon découplage des responsabilités.
65
CHAPITRE 4 IMPLEMENTATION DE LA SOLUTION PROPOSEE
4.1. Introduction
Dans ce chapitre, nous présentons les
différents outils et techniques utilisés tel que le NLP pour
implémenter notre système intelligent d'analyse de CV.
Après une justification approfondie des choix technologiques (langages,
frameworks, SGBD), nous détaillons l'architecture
d'implémentation adoptée, qui repose sur une approche
client-serveur hybride articulée autour des modèles MVT
(Model-View-Template) pour le backend (Django) et MVVM (Model-View-ViewModel)
pour le frontend (React). Nous exposons ensuite les différents modules
développés et les tests réalisés pour
évaluer le bon fonctionnement de la solution et quelques rappelles
important pour sur les notions de machines learning, deep learning et nlp .
4.1. Technologies
1. Choix des langages de programmation
· JavaScript (React) : utilisé
côté client pour concevoir une interface dynamique en architecture
MVVM. Le modèle (données), la vue (UI) et la logique de liaison
(état via hooks ou Redux) sont clairement séparés.
· Python (Django) : choisi pour son
efficacité dans le développement web côté serveur et
son intégration native avec des bibliothèques NLP (BERT, Spacy).
Django suit le modèle MVT, facilitant la structuration du backend.

· Tailwindcss: utilisés pour
structurer et styliser l'interface dans les composants React.
2. Frameworks
· React.js : framework JavaScript moderne, basé
sur le modèle MVVM, permettant une gestion efficace des vues et de
l'état via composants, props et hooks.
· Django : framework Python robuste, structuré
selon le modèle MVT, utilisé pour la logique métier, les
API REST, la sécurité et l'interface avec la base de
données via ORM.
· Tailwind CSS : bibliothèque CSS utilitaire,
utilisée pour styliser l'interface sans compromettre la
séparation des vues et de la logique.
· PyTorch / Transformers (Hugging Face) : frameworks
utilisés pour charger et exploiter le modèle BERT dans l'analyse
sémantique des CV.
· PyMuPDF / pdfminer : bibliothèques Python
utilisées pour parser et extraire le contenu textuel des CV en PDF.
66
3. Base de données
Le système utilise PostgreSQL comme SGBD relationnel
robuste, performant et bien adapté à l'architecture Django. Le
modèle de données est défini à travers des
modèles Django (ORM), avec une structure logique respectant
l'intégrité des relations (utilisateurs, offres, CV
analysés...).
4. Environnement de développement
· Visual Studio Code (VS Code) : utilisé comme
éditeur principal, avec intégration d'extensions pour Python,
React, Tailwind, etc.
5. Approche d'implémentation
Nous avons adopté une approche modulaire avec
séparation claire des responsabilités entre frontend, backend,
NLP et base de données.
Côté client :
· Le frontend React est structuré selon
MVVM, avec :
o Model : état local / global (via Redux)
o View : composants d'interface (formulaires CV, tableau de
bord, résultats)
o ViewModel : gestion logique (soumissions, appels API)
Côté serveur :
· Django suit l'approche MVT, où :
o Model : définit la base de données via ORM
o View : fonctions ou classes retournant JSON
o Template : utilisé uniquement pour endpoints HTML
(admin), sinon nous avons utilisé un API REST + React
Modules clés développés
· Module Authentification (utilisateurs, entreprises,
chercheurs d'emploi)
· Module de dépôt et parsing de CV (upload,
extraction PDF)
· Module d'analyse sémantique avec BERT
· Dashboard interactif pour les recruteurs (via React +
Chart.js)
· Système de notification (emails)
· Module de gestion des rôles (permissions Django)
Ces Technologies ont était choisi car c'est adapter
pour développer les applications qui utilises le modèle de
machine Learning .
67
6. Étude et mise en oeuvre d'un serveur
Celery
Dans le domaine du développement d'applications web et
distribuées, il est fréquent de rencontrer des traitements lourds
ou longs à exécuter, tels que l'envoi massif d'e-mails, la
génération de rapports volumineux ou le traitement d'images.
L'exécution synchrone de ces tâches dans le processus principal
d'une application entraîne souvent une dégradation significative
des performances et de l'expérience utilisateur. Pour répondre
à ce problème, la communauté Python a
développé Celery, un système de gestion de tâches
asynchrones permettant d'exécuter ces traitements en arrière-plan
grâce à un mécanisme de file d'attente et à des
workers indépendants.
· Définition de Celery
Celery est un framework Python open-source
dédié à la gestion de tâches
distribuées et à leur exécution asynchrone. Il s'appuie
sur un système de messagerie intermédiaire appelé
broker qui joue le rôle de file d'attente.
Dans ce modèle, l'application principale
délègue l'exécution des tâches à un ou
plusieurs workers Celery qui les traitent de manière
indépendante, permettant ainsi à l'application de rester
réactive.
· Architecture générale
L'architecture de Celery repose sur quatre composants principaux
:
1. Le Producteur (Application principale)
o Rôle : Définir et envoyer les tâches
à exécuter.
Pour ce projet le serveur celery se charge de faire l'ORC du cv
et offre provenant du pdf mais aussi il affiche le résultat provenant du
modèle pour ce qui est de cosine similaty et par-dessus tous, ils
gère les envoient de mail en arrière-plan.
2. Le Broker (Serveur de messagerie)
o Rôle : Transmettre les tâches via une file
d'attente.
o Outils fréquents : Redis, RabbitMQ.
3. Les Workers Celery
o Rôle : Récupérer et exécuter les
tâches en arrière-plan.
o Fonctionnement : Chaque worker écoute une file
d'attente et traite les tâches dès qu'elles sont disponibles.
4. Le Backend de résultats (optionnel)
o Rôle : Stocker le résultat des tâches pour
une consultation ultérieure.
o Support : Redis, base de données relationnelle, etc.
68
5. Avantages de cette approche
· Réduction du temps de réponse
: L'utilisateur n'attend pas que le traitement soit fini.
· Scalabilité : Plusieurs workers
peuvent traiter les tâches en parallèle.
· Résilience : Les tâches
peuvent être relancées en cas d'échec. 4.2 Rappels
théoriques essentiels
4.2.1. Introduction au Machine Learning
L'apprentissage automatique est un sous-ensemble de
l'intelligence artificielle dans le domaine de l'informatique qui utilise
souvent des techniques statistiques pour donner aux ordinateurs la
capacité d'apprendre (c'est-à-dire améliorer
progressivement les performances sur une tâche spécifique) avec
des données, sans être explicitement programmées.
L'apprentissage automatique est la conception et l'étude d'artefacts
logiciels qui utilisent l'expérience passée pour prendre des
décisions futures. C'est l'étude de programmes qui apprennent
à partir de données. L'objectif fondamental de l'apprentissage
automatique est de généraliser, ou pour induire une règle
inconnue à partir d'exemples d'application de la règle. Les
systèmes d'apprentissage automatique sont souvent décrits comme
apprenant par l'expérience, avec ou sans surveillance par l'homme
[12].
Voici les trois styles d'apprentissage de base différents
dans les algorithmes d'apprentissage automatique :
1.2.2 Apprentissage supervisé
Un modèle est préparé par le biais d'un
processus d'entraînement dans lequel il doit faire des prédictions
et est corrigé lorsque ces prédictions sont fausses. Le processus
de formation continue jusqu'à ce que le modèle atteigne le niveau
de précision souhaité sur les données
d'entraînement. Un programme prédit une sortie pour une
entrée en apprenant à partir de paires d'entrées
étiquetées et les résultats, le programme apprend à
partir d'exemples de bonnes réponses [12].
1. Les données d'entrée sont appelées
données d'entraînement et ont une étiquette ou un
résultat connu, tel que spam/non-spam ou un cours d'action à la
fois.
2. Des exemples de problèmes sont la classification et la
régression. 3.Algorithmes supervisés couramment
utilisés
L'apprentissage supervisé repose sur l'utilisation
d'algorithmes qui apprennent à partir d'exemples
étiquetés, c'est-à-dire des données dont les
résultats attendus sont connus. Voici une description
détaillée des principaux algorithmes supervisés
utilisés dans le domaine médical :
v Régression logistique : Cet algorithme
est utilisé pour des tâches de classification binaire. Il
modélise la probabilité qu'une observation appartienne à
une classe donnée.
69
La sortie est comprise entre 0 et 1, ce qui permet de
l'interpréter comme une probabilité. Il est simple, rapide, et
efficace pour des jeux de données linéairement
séparables.
v Arbres de décision (Decision Trees)
: Ce modèle fonctionne en divisant les données en
sous-ensembles selon des conditions basées sur les attributs. Il produit
un arbre hiérarchique où chaque noeud représente une
condition de décision. Faciles à interpréter, les arbres
de décision sont efficaces mais sensibles au surapprentissage
(overfitting).
v K-Nearest Neighbors (K-NN) : Cet
algorithme classe une nouvelle observation selon la majorité des classes
de ses k plus proches voisins dans l'espace des caractéristiques. Il ne
nécessite pas de phase d'entraînement, mais peut être lent
sur de grands ensembles de données. Il est également sensible
à l'échelle des variables.
v Support Vector Machines (SVM) : Le SVM
cherche à trouver l'hyperplan qui sépare au mieux les classes
dans un espace à plusieurs dimensions. Il est efficace dans les cas
où les classes ne sont pas parfaitement séparables, en utilisant
des noyaux pour transformer les données.
v Réseaux de neurones artificiels (ANN)
: Inspirés du fonctionnement du cerveau humain, les ANN sont
constitués de couches de neurones interconnectés. Chaque neurone
applique une fonction d'activation pour transmettre les informations. Ces
réseaux sont capables de modéliser des relations complexes entre
les variables, surtout lorsqu'ils sont profonds (deep learning). Ils sont
utilisés dans les applications d'imagerie médicale, de
reconnaissance vocale et de traitement du langage naturel.
2.2.3 Apprentissage non supervisé
Un modèle est préparé en déduisant
les structures présentes dans les données d'entrée. Il
peut s'agir d'extraire des règles générales. Il peut
s'agir d'un processus mathématique visant à réduire
systématiquement la redondance, ou d'organiser les données par
similarité. Un programme n'apprend pas à partir de données
étiquetées. Au lieu de cela, il tente de découvrir des
modèles dans les données [12].
Ici les données ne sont pas étiquetées,
L'objectif principal de l'apprentissage non supervisé est de permettre
à l'algorithme de trouver des patterns, des regroupements ou des
relations entre les données d'entrée, sans intervention
humaine.
2.3.4 Apprentissage par renforcement
L'apprentissage par renforcement (Reinforcement
Learning, en anglais) est une forme d'apprentissage automatique dans
laquelle un agent autonome apprend à prendre des décisions en
interagissant avec un environnement dynamique. Cet agent n'apprend pas à
partir d'un ensemble de données déjà
étiqueté (comme en apprentissage supervisé), mais à
travers des essais et des erreurs, en recevant des récompenses ou des
pénalités selon la qualité de ses actions.
2.3.5 Notions de Deep Learning
Le Deep Learning ou apprentissage profond est une branche
avancée de l'apprentissage automatique (machine learning) qui repose sur
l'utilisation de réseaux de neurones artificiels profonds,
composés de plusieurs couches. Ces architectures sont capables de
modéliser des relations complexes et de traiter des données de
grande dimension comme les images, les sons ou les textes non structurés
[13].
70

Figure 34 Machine learning, deep learning description
Un réseau de neurones est une structure inspirée
du fonctionnement du cerveau humain. Il est constitué de plusieurs
neurones artificiels.
Les approches classiques de Machine Learning
nécessitent peu de données pour fonctionner efficacement. Elles
s'appuient sur des architectures comme les arbres de décision, SVM ou
KNN, et offrent de bonnes performances lorsqu'elles sont appliquées
à des données structurées. Leur entraînement est
généralement rapide et peu coûteux.
En revanche, les modèles de Deep Learning sont
particulièrement adaptés aux données complexes telles que
les textes, les images ou les sons. Ils reposent sur des réseaux de
neurones profonds et exigent de grandes quantités de données pour
atteindre leur plein potentiel. Leur entraînement demande plus de temps
et mobilise davantage de ressources.
Cas d'usage du Deep Learning dans le traitement de
CV
L'usage du Deep Learning dans le traitement des curriculum
vitae (CV) constitue une avancée majeure dans l'optimisation des
processus de recrutement. Cette technologie, grâce à sa
capacité à traiter des données textuelles
hétérogènes et non structurées, permet de
répondre à des enjeux stratégiques liés à la
sélection automatisée et à la correspondance entre
candidatures et offres d'emploi.
1. Extraction des informations pertinentes à partir
de données non structurées
Les architectures de Deep Learning telles que BERT, SBERT et
les pipelines de traitement linguistique comme spaCy, intégrant la
reconnaissance d'entités nommées (NER), facilitent l'extraction
automatisée de données essentielles, notamment :
· L'identité du candidat
· Les diplômes et le niveau académique
· Les expériences professionnelles
antérieures
· Les compétences techniques (ex. : langages de
programmation, systèmes d'exploitation)
· Les langues maîtrisées
71
· Les certifications obtenues
Cette démarche permet de convertir des documents
textuels non standardisés en représentations structurées
exploitables par des systèmes décisionnels.
2. Évaluation sémantique de la pertinence
entre CV et offres d'emploi
La correspondance automatisée entre le profil d'un
candidat et les exigences d'un poste repose sur la vectorisation
sémantique des contenus textuels. Les modèles comme Sentence-BERT
(SBERT) transforment le CV et l'offre en vecteurs dans un espace latent
partagé. La mesure de similarité cosinus entre ces vecteurs
permet d'évaluer le degré de correspondance. Ce processus
constitue une étape essentielle dans la mise en oeuvre de
systèmes intelligents de recommandation et de
présélection.
2.3.6 Traitement automatique du langage naturel (NLP)
Le NLP pour Natural Language Processing ou Traitement du
Langage Naturel est une discipline qui porte essentiellement sur la
compréhension, la manipulation et la génération du langage
naturel par les machines. Ainsi, le NLP est réellement à
l'interface entre la science informatique et la linguistique. Il porte donc sur
la capacité de la machine à interagir directement avec l'humain.
[14]
À quelles problématiques répond le
NLP ?
Le NLP est terme assez générique qui recouvre un
champ d'application très vaste. Voici les applications les plus
populaires :
Ø Traduction automatique
Le développement d'algorithmes de traduction
automatique a réellement révolutionné la
manière dont les textes sont traduits aujourd'hui. Des applications,
telles que Google Translator, sont capables de
traduire des textes entiers sans aucune intervention humaine.
Le langage naturel étant par nature ambigu et variable, ces applications
ne reposent pas sur un travail de remplacement mot à mot, mais
nécessitent une véritable analyse et modélisation de
texte, connue sous le nom de Traduction automatique statistique (Statistical
Machine Translation en anglais) [14].
Ø Sentiment analysis
Aussi connue sous le nom de « Opinion
Mining », l'analyse des sentiments consiste
à identifier les informations subjectives d'un texte pour
extraire l'opinion de l'auteur [14].
À titre exemple, lorsqu'une marque lance un nouveau
produit, elle peut exploiter les commentaires recueillis sur les réseaux
sociaux pour identifier le sentiment positif ou négatif globalement
partagé par les clients.
De manière générale, l'analyse
des sentiments permet de mesurer le niveau de satisfaction des clients
vis-à-vis des produits ou services fournis par une entreprise ou un
organisme. Elle peut même s'avérer bien plus efficace que
des méthodes classiques comme les sondages [14].
En effet, si l'on rechigne souvent à passer du temps
à compléter de longs questionnaires, une partie
croissante des consommateurs partage aujourd'hui fréquemment leurs
opinions sur les réseaux sociaux. Ainsi, la recherche de textes
négatifs et l'identification des principales plaintes permettent
d'améliorer les produits, d'adapter la publicité et de
réduire le niveau d'insatisfaction des clients [14].
72
Ø Marketing
Les spécialistes du marketing utilisent également
le NLP pour rechercher des personnes étant susceptible d'effectuer un
achat [14].
Ils s'appuient pour cela sur le comportement des
internautes sur les sites, les réseaux sociaux et les
requêtes aux moteurs de recherche. C'est grâce à ce type
d'analyse que Google génère un profit non négligeable en
proposant la bonne publicité aux bons internautes. Chaque fois qu'un
visiteur clique sur une annonce, l'annonceur reverse jusqu'à 50 dollars
!
De manière plus générale, les
méthodes de NLP peuvent être exploitées
pour dresser un portrait riche et complet du marché existant, des
clients, des problèmes, de la concurrence et du potentiel de croissance
des nouveaux produits et services de l'entreprise.
Les sources de données brutes pour cette analyse
comprennent les journaux de ventes, les enquêtes et les médias
sociaux...
Ø Chatbots
Les méthodes NLP sont au coeur du
fonctionnement des Chatbots actuels. Bien que ces systèmes ne soient pas
totalement parfaits, ils peuvent aujourd'hui facilement gérer
des tâches standards telles renseigner des clients sur des
produits ou services, répondre à leurs questions, etc. Ils sont
utilisés par plusieurs canaux, dont l'Internet, les applications et les
plateformes de messagerie. L'ouverture de la plateforme Facebook
Messenger aux chatbots en 2016 a contribué à leur
développement [14].
Autres domaines d'application
· Classification de texte : cela
consiste à attribuer un ensemble de catégories
prédéfinies à un texte donné. Les
classificateurs de texte peuvent être utilisés pour organiser,
structurer et catégoriser à ensemble de textes.
· Reconnaissance de caractères :
Cela permet d'extraire, à partir de la reconnaissance
des caractères, les principales informations des
reçus, des factures, des chèques, des documents
de facturation légaux, etc.
· Correction automatique : la plupart
des éditeurs de texte sont aujourd'hui muni d'un correcteur
orthographique qui permet de vérifier si le texte contient des fautes
d'orthographe.
73

Figure 35 Quelques Domaines du nlp Parmi les
principales étapes, on retrouve :
· Nettoyage : Variable selon la source des
données, cette phase consiste à réaliser des tâches
telles que la suppression d'urls, d'emoji, etc.
· Normalisation des données:
o Tokenisation, ou découpage du texte en
plusieurs pièces appelés tokens. Exemple : «
Vous trouverez en pièce jointe le document en question » ; «
Vous », « trouverez », « en pièce jointe »,
« le document », « en question ».
o Stemming : un même mot peut se
retrouver sous différentes formes en fonction du genre (masculin
féminin), du nombre (singulier, pluriel), la personne (moi, toi, eux...)
etc. Le stemming désigne généralement le processus
heuristique brut qui consiste à découper la fin des mots dans
afin de ne conserver que la racine du mot. Exemple : « trouverez
» -> « trouv »
o Lemmatisation : cela consiste à
réaliser la même tâche mais en utilisant un vocabulaire et
une analyse fine de la construction des mots. La lemmatisation permet donc de
supprimer uniquement les terminaisons inflexibles et donc à isoler la
forme canonique du mot, connue sous le nom de lemme. Exemple : «
trouvez » -> trouver
o Autres opérations : suppression des
chiffres, ponctuation, symboles et stopwords, passage en minuscule.
Afin de pouvoir appliquer les méthodes de Machine
Learning aux problèmes relatifs au langage naturel, il est indispensable
de transformer les données textuelles en données
numériques. Il existe plusieurs approches dont les principales
sont les suivantes :
· Term-Frequency (TF) : cette
méthode consiste à compter le nombre d'occurrences des
tokens présents dans le corpus pour chaque texte.
74
· Chaque texte est alors représenté par un
vecteur d'occurrences. On parle généralement
de Bag-Of-Word, ou sac de mots en français.
Néanmoins, cette approche présente un
inconvénient majeur : certains mots sont par nature
plus utilisés que d'autres, ce qui peut conduire le modèle
à des résultats erronés.
· Term Frequency-Inverse Document Frequency
(TF-IDF) : cette méthode consiste à compter le
nombre d'occurrences des tokens présents dans le corpus pour
chaque texte, que l'on divise ensuite par le nombre d'occurrences total de ces
même tokens dans tout le corpus.
Dans le cadre de ce travaille nous avions utiliser le
modèle Sbert(paraphrase-multilingual-MiniLM-L12-v2) pour l'encodage de
texte et non (TF-IDF) ni
(TF)
4.3 Récolte de données
Nous avions récolté nos données sur
kaggle(Automated Resume Job Categorization ) le dataset est
nomé `' clean_resume_data.csv `'
df.shape : (2484, 2)
Description du Dataset - Automated Resume Job
Categorization
Ce jeu de données est utilisé dans le cadre de
projets de classification automatique des curriculum vitae selon les
catégories d'emploi correspondantes. Il est fréquemment
mobilisé dans les systèmes de recommandation d'offres d'emploi ou
de mise en correspondance entre profils candidats et descriptions de postes.
Tableau 5 Contenu du dataset
Attribut Description
Resume
|
|
Contient le texte brut du CV, généralement sous
forme de paragraphe ou d'ensemble de phrases non structurées.
|
Category
|
Étiquette associée à chaque CV,
représentant le domaine professionnel (ex. : "Data Science", "HR",
"Advocate", "Design", etc.).
|
|
Statistiques générales
Voici un aperçu typique basé sur ce jeu de
données
· Nombre total de CVs : 2484
· Nombre de catégories transformer en offre
d'emplois : environ 24
· Format : CSV
· Colonnes : Resume, Category
· Taille moyenne d'un CV : entre 200 et 500 mots
· Langue du contenu : anglaise
75
Objectif du projet avec ce dataset
Former un modèle capable de prédire la
catégorie de job la plus pertinente à partir du contenu
textuel d'un CV non structuré.
Ce dataset nous l'avions modifié en le traduisant en
français et en changeant la catégory en offre via le
modèle Helsinki-NLP/opus-mt-en-fr.
4.4 Conception et Entraînement du Modèle de
Classification pour l'Analyse CV-Offres
Dans ce bloc nous allons décrire en détail la
conception, l'architecture, l'entraînement et l'évaluation d'un
système de classification automatique permettant d'évaluer la
pertinence entre des CV et des offres d'emploi. Le modèle combine des
techniques avancées de traitement du langage naturel (NLP)
1 Architecture Globale du Système
Le système complet se compose des étapes suivantes
:
1. Prétraitement des données textuelles
(nettoyage, normalisation).
2. Encodage sémantique avec un
modèle SBERT (Sentence-BERT).
3. Calcul de similarité entre les
embeddings CV et offres.
4. Classification avec plusieurs algorithmes
(Random Forest, SVM, Réseau de Neurones).
5. Évaluation et optimisation des
performances.
o Prétraitement des Données
Ø Netoyage robuste
Un prétraitement minimaliste est choisi pour
préserver au maximum la richesse sémantique
originale, les
modèles modernes comme SBERT étant robustes aux variations de
formatage.
2. Encodage Sémantique avec SBERT
Modèle utilisé :
paraphrase-multilingual-MiniLM-L12-v2 Caractéristiques
techniques :
· Modèle Transformer
pré-entraîné sur plusieurs langues
· Taille des embeddings : 384 dimensions
· Capacité à capturer la sémantique
des phrases complètes
· Optimisé pour les tâches de
similarité textuelle Optimisations :
· Traitement par lots pour gérer la
mémoire
· Barre de progression avec tqdm
· Concatenation efficace des résultats
76
3. Calcul de Similarité
Métrique utilisée :
Similarité cosinus
2.4 Stratégie d'Étiquetage Automatique
Approche : Discrétisation des scores de
similarité en 4 classes
Seuils déterminés:
1. Excellent: similarity = 0.7
2. Très bon: 0.6 = similarity <
0.7
3. Bon : 0.5 = similarity < 0.6
4. Faible : similarity < 0.5
Justification :
Les seuils fixes permettent une interprétation
cohérente, tandis que la version basée sur les
quantiles s'adapte automatiquement à la distribution des
données.
2.5 Équilibrage des Classes
Problématique : Distribution
inégale des classes dans les données brutes

Figure 36 Déséquilibre initiale de classe
Solutions implémentées :
1. Oversampling avec SMOTE
2. Pondération des classes
3. Approche hybride : Combinaison des deux
méthodes pour les modèles sensibles au
déséquilibre
77

Figure 37 Equilibres de classes
Impact :
Réduction du biais envers les classes majoritaires,
amélioration des métriques sur les classes rares.
3. Modèles de Classification 3.1 Modèles
Traditionnels
Tableau 6 Algorithmes implémentés
Modèle Paramètres Clés
Avantages
|
Random Forest
|
n_estimators=200, max_depth=15
|
Robustesse, sélection de features
|
|
SVM
|
kernel='rbf',
class_weight='balanced'
|
Performances en haute dimension
|
|
Régression Logistique
|
penalty='elasticnet', solver='saga'
|
Interprétabilité
|
3.2 Réseau de Neurones Profond
Hyperparamètres :
· Taux d'apprentissage : 0.0005 (avec réduction
dynamique)
· Batch size : 64
· Early stopping avec patience=10 Mécanismes
avancés :
· Dropout : Prévention du
surapprentissage
· BatchNorm : Stabilisation de
l'apprentissage
· Callbacks : Optimisation automatique du
LR
78
4. Évaluation des Performances des
modèles

Figure 39 Tableau comparatif des modèles

Figure 38 Comparaison de la performance des
modèles
79

Figure 40 visualisation de la courbe de précision et
perte

Figure 41 Matrice de confusion du modèle
validé

Figure 42 Matrice de confusion normalisé
80
4.5. Conclusion
Dans ce chapitre, nous avons présenté l'ensemble
des outils et technologies ainsi que methodes utilisés pour le
développement de notre système, en mettant l'accent sur les
architectures MVT côté backend (Django) et MVVM côté
frontend (React). L'implémentation a été structurée
de manière modulaire, facilitant la maintenance et
l'évolutivité ainsi que la manières dont nous avons
recoltés nos données et entrainer le model jusqu'au
résultat final. Les tests réalisés ont montré que
la solution est stable, cohérente avec les exigences définies.
81
CHAPITRE 5. RESULTATS ET EVALUATIONS
5.1 Résultats
a) Présentation de l'application

Figure 43 interface d'accueille
Cette page est la page d'accueil accessible à tous les
utilisateurs

Figure 44 interface des offres

82
Figure 45 interface des offres avec option de
filtre
Figure 46 interface de login pour
s'authentifier

83
Figure 47 interface pour réinitialiser le mot
de passe
Figure 48 interface pour la vérification de OTP
envoyer par mail

84
Figure 49 interface pour sur la vue du
détaille de l'offre
Figure 50Interface pour uploader le cv

85
Figure 51 Dashboard Entreprise
Figure 52 Dashboard chercheur d'emploie
Figure 53 Dashboard entreprise avant l'analyse

86
Figure 54Dashboard entreprise l'analyse encours
Figure 55 opération Asynchrone avec serveur
celery
Figure 56 Résultat d'analyse
87
Conclusion Générale
Au terme de ce travail de recherche et de
développement, nous avons pu concevoir et implémenter un
système intelligent d'aide au recrutement basé sur l'analyse
automatique de CV et le matching sémantique avec les offres d'emploi.
Cette étude s'inscrit dans une dynamique actuelle de digitalisation des
processus RH, et répond à un besoin croissant d'automatisation
dans le traitement des candidatures, tant du point de vue des recruteurs que
des demandeurs d'emploi.
Dans une première phase, nous avons mené une
analyse approfondie du métier et des besoins fonctionnels, en nous
basant sur les pratiques existantes et les insuffisances observées dans
les systèmes traditionnels de gestion des candidatures. L'analyse
métier a permis de définir les acteurs clés, les cas
d'utilisation pertinents, ainsi que les exigences fonctionnelles et non
fonctionnelles du système à concevoir.
Sur le plan technique, nous avons mis en oeuvre une
architecture web basée sur des technologies modernes (Django, React) et
avons intégré des techniques avancées de traitement
automatique du langage naturel (NLP), notamment via des modèles
d'embedding comme BERT, pour évaluer la correspondance sémantique
entre les profils des candidats et les offres publiées. Cette
démarche a permis de passer d'un système basé sur des
mots-clés à un moteur intelligent d'analyse contextuelle, plus
pertinent et plus performant.
L'application développée offre ainsi aux
entreprises une plateforme intuitive pour publier et gérer des offres
d'emploi, recevoir des candidatures, analyser automatiquement les CV et
visualiser les scores labelisé. Du côté des chercheurs
d'emploi, le système permet de consulter les offres, de
téléverser leur CV, de suivre l'état de leur candidature
et d'accéder à des services fluides, accessibles et ergonomiques.
L'intégration de fonctionnalités telles que l'authentification
OTP, la traçabilité des actions et le tableau de bord statistique
apporte une valeur ajoutée significative à l'application, en
renforçant la sécurité, la transparence et la
facilité de gestion.
Ce mémoire a également permis de mettre en
évidence les limites rencontrées, notamment en ce qui concerne
l'analyse des CV très hétérogènes ou mal
structurés, ou encore les défis liés à la
constitution d'un jeu de données représentatif pour
entraîner les modèles. Toutefois, les résultats obtenus
sont prometteurs et laissent entrevoir plusieurs perspectives
d'amélioration, telles que l'intégration d'un moteur de
recommandation de profils, l'apprentissage automatique supervisé ou non
supervisé, ou encore la prise en compte de critères
socio-professionnels plus larges.
En définitive, ce travail constitue une contribution
concrète à l'optimisation des processus de recrutement à
l'ère numérique, et ouvre la voie à de nombreuses
évolutions futures. Il témoigne également de l'importance
croissante de l'intelligence artificielle dans les systèmes
d'information décisionnels, notamment dans le domaine des ressources
humaines.
Nous espérons que cette application servira de base
pour d'éventuels déploiements en milieu réel, ou à
tout le moins, qu'elle stimulera une réflexion plus large sur les
opportunités offertes par l'automatisation intelligente au service de
l'employabilité.
88
Bibliographie
[1] S. HATTAB, «zenodo,» [En ligne]. Available:
https://zenodo.org/records/7945078.
[Accès le 1 4 2025].
[2] U. d. Liège, «matheo,» Université de
Liège , [En ligne]. Available:
https://matheo.uliege.be/handle/.
[Accès le 3 4 2025].
[3] H. Ramdani, «
hal.univ-lorraine.fr,»
[En ligne]. Available:
https://hal.univ-lorraine.fr/tel-04213881/file/DDOC_T_2021_0366_RAMDANI.pdf.
[Accès le 4 4 2025].
[4] M. Martins Oliveira, «
matheo.uliege.be,»
Liège University, 2021-2022. [En ligne]. Available:
https://matheo.uliege.be/bitstream/2268.2/16352/4/s162904MartinsMariana2022.pdf.
[Accès le 5 4 2025].
[5] Y. ELMOHRI,
dspace.univ-medea.dz,
Algérienne : Université Yahia Fares de Médéa,
2023-2024.
[6] «wikipedia,» [En ligne]. Available:
https://fr.wikipedia.org/wiki/Mod%C3%A9lisation_de_processus.
[Accès le 9 5 2025].
[7] «
clicours.com,» [En ligne].
Available:
https://www.clicours.com/cours-uml-et-exercices-corriges/.
[Accès le 1 6 2025].
[8] Université du Québec à Montréal,
[En ligne]. Available:
https://www.studocu.com/.
[Accès le 28 5 2025].
[9] «
www.lucidchart.com,»
lucidchart, [En ligne]. Available:
https://www.lucidchart.com/.
[Accès le 5 29 2025].
[10] «wikipedia,» wiki, [En ligne]. Available:
https://fr.wikipedia.org/wiki/Logiciel.
[Accès le 30 06 2025].
[11] «clicours,» [En ligne]. Available:
https://www.clicours.com/cours-uml-et-exercices-corriges/.
[Accès le 1 6 2025].
[12] «machinelearning101,» [En ligne]. Available:
https://machinelearning101.readthedocs.io/en/latest/_pages/01_introduction.html.
[Accès le 1 7 2025].
[13] IBM, «
www.ibm.com,» [En ligne].
Available:
https://www.ibm.com/fr-fr/think/topics/deep-learning.
[Accès le 7 7 2025].
[14] «
datascientest.com,» [En
ligne]. Available:
https://datascientest.com/introduction-au-nlp-natural-language-processing.
[Accès le 7 7 2025].