2017 Tal-1 2
2017 Tal-1 2
RÉSUMÉ. Nous présentons une méthode d’analyse de corpus afin de générer une ontologie dans
le domaine du e-recrutement. Notre approche de construction semi-automatique s’appuie sur
des millions de profils issus de plusieurs réseaux sociaux et sur des dizaines de milliers d’offres
d’emploi collectées sur Internet pour faire émerger des compétences et des connaissances com-
munes afin de construire un ensemble structuré de termes et concepts représentant chaque mé-
tier. Notre approche combinant statistiques et extraction de n-grammes de mots permet de créer
une ontologie en anglais et en français contenant 440 métiers issus de 27 domaines d’activité.
Chaque métier est ainsi relié aux compétences nécessaires à sa pratique pour un total d’environ
6 000 compétences différentes. Une évaluation manuelle sur une portion de l’ontologie a été
réalisée par un expert du recrutement et a montré des résultats de très bonne qualité.
ABSTRACT. We describe a corpus analysis method for generating an ontology in the field of e-
recruitment from millions of user profiles gathered on social networks and tens of thousands
of job offers collected over the internet. Using statistics and n-gram analyses, we create a
structured set of terms and concepts in English and French for 440 occupations in 27 fields of
activity. Each occupation is linked with the necessary practice skills for around 6000 different
skills. A manual evaluation of the results was performed by a domain expert and has shown
excellent results.
MOTS-CLÉS : ontologie, réseaux sociaux, ressources humaines, application industrielle.
KEYWORDS: ontology, social networks, human resources, industrial application.
1. Introduction
Les développements rapides du Web et des réseaux sociaux durant la dernière dé-
cennie ont considérablement modifié la dynamique de recherche d’emploi comme le
décrivent Sivabalan et al. (2014) . Les informations professionnelles publiées par les
utilisateurs dans leurs profils (formations, antécédents de travail, résumé de carrière,
liens sociaux, etc. ) peuvent être exploitées par les recruteurs pour identifier de nou-
veaux candidats ou pour obtenir des informations complémentaires à leur propos.
D’après une étude de RegionsJob1 (2011), « 43 % des recruteurs avouent recourir
à des recherches de type nom/prénom sur les candidats qui postulent chez eux et 8 %
des recruteurs interrogés déclarent avoir écarté un candidat à cause de traces jugées
négatives trouvées en ligne ». La plupart de ces recherches étant effectuées de façon
rapide et manuelle, les informations recueillies sur un individu à un premier niveau de
recherche sont peu structurées, disparates, incomplètes, redondantes, parfois obsolètes
et peuvent être biaisées, voire trompeuses (p. ex. à cause des homonymes).
La plupart des systèmes d’appariement entre une offre d’emploi et un profil s’ap-
puient sur une ou plusieurs ressources linguistiques, coûteuses en entretien et en mise
à jour. En effet, les métiers d’aujourd’hui ne sont pas forcément les mêmes que ceux
d’hier, et ne seront peut-être pas identiques aux métiers de demain. L’évolution de
notre société entraîne l’apparition de nouveaux métiers et de nouvelles compétences
ainsi que la disparition d’autres. Les résultats d’une étude menée par la Harvard Busi-
ness Review, citée par le journal Libération2 , indiquent que plus de 31 % de nouveaux
métiers apparaissent chaque année et que 60 % des emplois actuels disparaîtront au
cours des deux prochaines décennies. Afin de pallier ce problème, nous souhaitons dé-
velopper un système pour générer une ontologie de façon semi-automatique en s’ap-
puyant sur des données collectées sur Internet. Nous supposons que l’exploitation de
ces informations est une voie prometteuse pour constituer un référentiel commun, une
représentation de chaque domaine avec des liens logiques reliant chaque métier aux
compétences nécessaires à sa pratique. Même si chaque profil est différent dans le dé-
tail, nous faisons l’hypothèse qu’un regroupement d’informations issues des mêmes
métiers fera émerger des relations communes pour construire un ensemble structuré de
termes et de concepts représentant chaque domaine. Même si la structure de l’ontolo-
gie reste simple, la génération de ces ressources, tout en restant automatisée, permettra
de créer une représentation de la connaissance de chaque domaine qui pourra être ex-
ploitée par la suite dans le cadre de l’appariement (p. ex. pour évaluer si un candidat a
toutes les compétences pour un métier) ou au travers d’expansion de requêtes (p. ex.
afin de trouver les candidats les plus compétents pour un poste) ou de la génération de
texte (p. ex. pour suggérer à un candidat comment mettre en avant ses compétences
les plus en adéquation pour un poste).
1. https://entreprise.regionsjob.com/enquetes/reseaux_sociaux/resultats_
enquete_2.pdf
2. http://www.liberation.fr/evenements-libe/2016/05/10/
l-intelligence-artificielle-au-service-de-l-emploi_1451670
Génération d’une ontologie RH 41
2. Travaux connexes
De nos jours, des centaines de milliers de candidats mettent en ligne leur profil, et
les entreprises ou les établissements publient une quantité importante de postes recher-
chés. Analyser automatiquement cette quantité d’informations pour mettre en corres-
pondance emplois et candidats est une tâche difficile. Comme le décrivent Yahiaoui
et al. (2006), cet appariement repose, d’une part, sur la connaissance des individus
et de leurs compétences et, d’autre part, sur la connaissance des métiers. De grands
efforts ont ainsi été déployés ces dernières années afin de constituer des ressources
linguistiques pour améliorer les systèmes d’appariement.
Lau et Sure (2002) développent une ontologie, en se fondant sur une étude de cas
de la société Swiss Life, centrée sur le domaine des technologies de l’information. Ils
précisent que celle-ci a finalement été construite manuellement même si des approches
semi-automatiques avaient été tentées, mais les résultats ne permettaient pas d’obtenir
une représentation claire et structurée des compétences.
Les premiers travaux dans l’appariement de candidatures et d’offres d’emploi à
l’aide d’une ontologie ont été proposés par Colucci et al. (2003 ; 2007). Leur système,
3. http://rali.iro.umontreal.ca/rali/?q=fr/butterfly-predictive-project
42 TAL. Volume 58 – n◦ 1/2017
3. Données et connaissances
10. http://www5.hrsdc.gc.ca/noc/
11. http://www.pole-emploi.fr/candidat/le-code-rome-et-les-fiches-metiers-@
/article.jspz?id=60702
Génération d’une ontologie RH 45
{ ...
"countryCode": "FR",
"createdDatetime": "2012-12-19 19:56:47",
"city": "Vannes",
"personalBrandingClaim": "Chef de projets au CHU de Vannes",
"personalBrandingPitch": "Professionnelle dynamique et proactive ayant eu l’opportunité de
développerdes compétences variées tant dans le milieu de la santé que dans celui de
l’aéronautique . Principalement axée sur la gestion, l’amélioration continue
des processus et des pratiques et l’atteinte des objectifs"},
"educations":[{"name": "Marketing pharmaceutique",
"schoolName": "Universite Claude Bernard (Lyon I)"},
{"name": "MBA ", "schoolName": "Universite de Montreal - HEC Montreal"}],
"experiences":[{"function": "Chef de projets", "companyName": "CHU de Vannes"},
{"function": "Directrice du service ‘a la clientele pharmaceutique",
"companyName": "zootopia"},
{"function": "Coordonnatrice de projets", "companyName": "chu-saint-Trudeau"}]
"skills": ["E-commerce", "SDL Fredhopper", "Gestion de projet", "Gestion d’équipe",
"Accessibilité"],
"languages": [{language:"Français", "level": "Native or bilingual"},
{language:"Anglais", "level": "Native or bilingual"}],
...
}
Figure 1. Extrait de la structure JSON d’un profil créé à partir d’informations collec-
tées sur des réseaux sociaux
Canada France
Nombre de profils 2 658 467 7 484 311
Moyenne du nombre d’expériences 3,2 2,3
Moyenne du nombre de formations 1,39 1,06
Moyenne du nombre de compétences 0,17 0,12
Statistiques textuelles des profils
Profil vide 9,61 % 16,34 %
Moins de 100 caractères 26,95 % 40,53 %
Moins de 300 caractères 16,18 % 12,70 %
Moins de 500 caractères 6,43 % 4,66 %
Plus de 500 caractères 40,83 % 25,77 %
les langues qu’il maîtrise, ses loisirs, le nombre de relations avec d’autres candidats ou
encore les compétences acquises au cours de son parcours professionnel. La figure 1
présente un exemple de profil avec des informations extraites de réseaux sociaux.
Chaque profil regroupe une cinquantaine de champs, mais il existe cependant un
nombre important de profils ne contenant pas ou peu d’informations comme le montre
le tableau 1 qui présente quelques statistiques descriptives de cette collection. Dans le
cadre de cette application, nous nous concentrons sur les 2,3 millions de compétences
issues de ces profils.
46 TAL. Volume 58 – n◦ 1/2017
En complément de ces données, 300 000 offres d’emploi ont été collectées sur
Internet, 200 000 en anglais et 100 000 en français. Ces offres d’emploi couvrent un
grand nombre de métiers et sont issues, elles aussi, du Canada ou de la France. Chaque
offre d’emploi contient un titre, une description contenant le détail de l’offre d’emploi,
la date de mise en ligne, le lieu de la mission proposée ainsi que le nom de la com-
pagnie qui recrute. Les premières observations ont montré que, bien qu’extrêmement
bruitées, ces données peuvent constituer une source intéressante d’informations afin
de constituer une ontologie de façon semi-automatique.
4. Méthodologie
Nous présentons tout d’abord le modèle ESCO (le Vrang et al., 2014) et sur le-
quel s’appuie notre démarche. Celui-ci est organisé selon le schéma de modélisation
SKOS (Miles et Bechhofer, 2009). Il classe les connaissances disponibles en trois pi-
liers : professions, compétences et qualifications. Dans le cadre de ces travaux, nous
nous concentrons sur les professions et les compétences. Le modèle se structure par
la suite en concepts et en termes. Chaque profession, compétence et qualification est
associée à un concept et est identifiée de façon unique par un uniform resource iden-
tifier (URI). Chaque concept comporte au moins une étiquette préférée alors que des
possibles synonymes, des variantes d’orthographe et des abréviations sont enregis-
trés comme des étiquettes alternatives. Des relations sont créées manuellement entre
chaque profession et les compétences nécessaires à leur pratique.
Dans un premier temps, nous avons effectué une comparaison entre les compé-
tences issues des réseaux sociaux et celles issues de l’ontologie ESCO. Les résultats
ont montré de nombreuses correspondances exactes ou partielles (plus d’un million)
et variées. Les correspondances partielles ont été calculées, dans un premier temps, en
comparant uniquement les quatre premiers caractères de chaque compétence puis dans
un second temps avec la mesure de Levenshtein (Levenshtein, 1966). Nous observons
que les compétences les plus fréquentes dans les données issues des réseaux sociaux
se retrouvent bien dans l’ontologie ESCO.
Cette approche a cependant montré certaines limites. Même si le modèle ESCO
est d’excellente qualité, les domaines et métiers couverts par l’ontologie restent li-
mités (par exemple, on ne retrouve pas business analyst ou account manager, pour
les métiers, ni marketing strategy, financial modelling, food cost management pour
les compétences). Un enrichissement d’ESCO a été envisagé, cependant le modèle
de 44 univers du partenaire industriel était incompatible avec les regroupements par
domaines effectués dans ESCO. Quant aux classifications ROME et CNP (décrites
dans la section précédente), elles ont été développées dans un cadre administratif afin
de codifier les professions pour les besoins des bureaux d’immigration et de statis-
tiques gouvernementales. Si ces organismes cherchent bien à couvrir tous les métiers
(y compris celui de Premier ministre ou député), ils ont recours à une nomenclature
très différente : nous n’observons que 73 appellations identiques entre les classifica-
tions ROME et CNP, 29 entre ESCO et ROME et seulement 13 entre ROME, CNP
Génération d’une ontologie RH 47
et ESCO ; de plus, ces classifications gouvernementales ne font aucun lien entre mé-
tiers et compétences qui est pourtant le but que nous cherchons à atteindre avec notre
ontologie.
Par ailleurs, il est extrêmement difficile de discerner dans les profils des candidats
les compétences issues d’une expérience plutôt que d’une autre : par exemple, le profil
d’un chef de projet senior en technologies de l’information cumulera des compétences
en tant que développeur issues de ses premières expériences, avec celles, par la suite,
de chef de projet. Il est donc difficile de se restreindre à cette unique source pour
déterminer les compétences requises pour un emploi.
Afin de pallier ces problèmes, nous avons décidé d’utiliser comme source de do-
cuments pour l’ensemble des offres d’emploi. En effet, ces offres définissent les ex-
périences et qualifications désirées pour un métier donné. Comme nous disposons
d’un nombre important d’offres d’emploi (300 000), nous croyons être en mesure de
faire émerger les compétences et les connaissances communes pour construire un en-
semble structuré des termes et des concepts représentant chaque métier. L’ensemble
des offres d’emploi étant collecté sur Internet, le modèle pourra s’enrichir, à terme, de
façon semi-automatique avec l’apparition et la disparition de métiers dans les offres
d’emploi.
La figure 2 présente une vue d’ensemble du système AGOHRA12 dont les étapes
seront détaillées dans le reste de la section. Au cours d’une première étape ¬, nous
effectuons une normalisation des offres d’emploi. Le module suivant utilise les
titres des offres d’emploi afin de détecter les métiers avant d’y associer un univers ®
(voir section 3 pour la notion d’univers). Une première recherche au cours de l’étape
¯ est effectuée par la suite, afin de constituer un dictionnaire composé uniquement
de compétences transversales13 . L’étape suivante ° consiste à utiliser l’ensemble du
vocabulaire récolté afin de faire émerger les compétences. À l’aide de la base de profils
ainsi que de dictionnaires constitués de façon dynamique, le module suivant ± classe
par la suite le vocabulaire obtenu afin de déterminer s’il s’agit de compétences. Le
dernier module ² transforme ensuite les informations ordonnées et structurées en une
ontologie au format RDF.
Nous effectuons au préalable une extraction du contenu textuel des offres d’em-
ploi au format HTML. Au cours de l’étape ¬, nous effectuons une séparation des
offres en français et en anglais ainsi qu’un filtrage des quelques offres dans les autres
langues (environ 150 offres sont en espagnol, japonais, italien, etc. ). L’observation de
l’ensemble des offres montrant un grand nombre de doublons (offres similaires avec
des dates différentes, offres similaires pour des lieux différents, etc.), nous effectuons
un dédoublonnage des offres d’emploi afin d’éviter d’augmenter artificiellement les
fréquences des termes présents dans plusieurs offres pratiquement identiques. Envi-
ron 6 000 offres d’emploi sont ainsi écartées. Toujours au cours de cette étape, une
normalisation des titres des offres d’emploi est effectuée afin de détecter les métiers
en utilisant différents patrons afin d’améliorer la qualité du processus. On supprime
ainsi les accents, les caractères particuliers tels que « - », « / », « ( ) » ou encore les
expressions couramment utilisées dans les titres d’offres d’emploi telles que full-time,
temporary, ou encore entry level. Différents processus linguistiques sont utilisés afin
de réduire le bruit dans le modèle : les expressions courantes (par exemple, c’est-
à-dire, chacun de, etc.), les chiffres et les nombres (numériques et/ou textuels), les
symboles spéciaux ainsi que les termes contenus dans un antidictionnaire adapté à
notre problème.
Nous avons également constitué une liste de noms de métiers normalisés regrou-
pant sous un terme unique les différentes écritures pour chaque métier (féminin, plu-
riel, erreurs typographiques, etc. ) classées selon leur fréquence d’apparition dans le
Génération d’une ontologie RH 49
Figure 3. Extrait de l’arbre de métiers avec chef comme premier nœud ce qui permet
de retrouver chef projet web, ... chef cuisinier, ... chef travaux btp.
champ, en fonction des expériences issues des profils de réseaux sociaux. On observe
par exemple 292 façons différentes (bien comptées !) d’écrire la fonction développeur
dans l’ensemble (p. ex. développeur, developper, développeuse, dévelloppeur, deve-
loper, developpper, etc.). Un processus de lemmatisation avait été intégré lors des
premières expériences, mais il s’est avéré peu performant, car la plupart des noms
d’emploi ne sont pas déclinés et ne posaient aucun problème compte tenu de cette
normalisation qui est mieux adaptée à notre application.
Nous utilisons au cours de cette étape les titres des offres d’emploi normalisés
(voir 5.1) afin de construire une liste de métiers. À l’aide de règles, le système compare
les titres avec un arbre préfixe contenant la liste de métiers normalisés décrite dans la
section 5.1. Chaque métier est ainsi transformé en un ensemble de nœuds où il existe
un nœud pour chaque mot, comme le montre l’exemple de la figure 3.
Cette structure permet d’effectuer des comparaisons rapides entre la liste des mé-
tiers et les titres tout en conservant les variations d’écriture. Nous conservons ainsi la
chaîne la plus longue comme métier reconnu. Grâce à un seuil de fréquences minimal
déterminé empiriquement, nous ne conservons que les métiers avec une fréquence im-
portante. Une première version du système traitait de l’ensemble des métiers présents
dans les offres d’emploi, mais nous avons décidé de privilégier les métiers ciblés par
LBJ, notre partenaire industriel, dont l’activité est centrée sur le recrutement dans les
domaines de la gestion, de la finance ou de la haute technologie.
En retirant les métiers qui n’intéressaient pas notre partenaire industriel, comme
gardienne de chat, nounou, camionneur... nous avons filtré une grande quantité
d’offres d’emploi. Nous en conservons tout de même 45 000 (25 000 en anglais et
20 000 en français). L’étape ® consiste à attribuer un univers à chacun des noms de
métiers obtenu.
50 TAL. Volume 58 – n◦ 1/2017
Afin d’associer un univers à chaque nom de métier, nous avons expérimenté plu-
sieurs approches à l’aide d’algorithmes de type machine à vecteurs de support ou de
boosting. Nous avons transformé le texte en vecteurs de mots afin de détecter de ma-
nière automatique l’univers associé à chaque métier. Après avoir découpé l’ensemble
des offres d’emploi en cinq sous-ensembles approximativement de la même taille,
nous avons appliqué la procédure suivante : quatre des cinq sous-ensembles ont été
concaténés pour produire un corpus d’entraînement et le cinquième a été utilisé pour
le test. La procédure a été effectuée cinq fois afin que chacun des sous-ensembles du
corpus d’apprentissage soit utilisé une fois pour le test. Cependant, les chevauche-
ments de vocabulaire entre univers pour certaines offres d’emploi ont rendu la tâche
délicate (par exemple des offres d’emploi d’analystes financiers travaillant pour des
entreprises qui ne sont pas dans le domaine de la finance ou des postes en informa-
tique pour un groupe de cosmétique, etc.). Nous avons finalement décidé d’associer
manuellement à cette liste un univers pour chaque métier.
L’objectif de l’étape ° est d’utiliser le vocabulaire issu des offres d’emploi afin de
faire émerger les compétences associées à chacun des métiers. Nous effectuons pour
cela une agrégation du vocabulaire en le regroupant par métier. L’extraction d’infor-
mation dans une offre d’emploi n’est pas une tâche triviale comme le soulignent Loth
et al. (2010). Kessler et al. (2008) montrent qu’en raison d’une grande variété dans les
paramètres (texte libre, tailles différentes, découpage incertain, délimiteurs variés), le
découpage d’offres d’emploi en blocs d’information est une tâche délicate. Ces offres
apparaissent cependant dans un ordre conventionnel. Afin de diminuer la taille du vo-
cabulaire considéré, nous recherchons différents motifs séparateurs et fréquents dans
une offre d’emploi, tels qu’exigences, qualifications, responsibilities, etc. Ces motifs,
bien que pas toujours présents, permettent ainsi de réduire considérablement le voca-
bulaire en ne prenant en compte que la partie de l’annonce suivant le motif.
L’observation des compétences de l’ensemble des profils de réseaux sociaux décrit
en section 3 (champs skills de la figure 1) montre que plus de 80 % des compétences
se présentent sous la forme de n-grammes de mots (par exemple financial modelling,
php development) répartis comme suit : 24 % d’unigrammes, 42 % de bigrammes et
20 % de trigrammes, 8 % de 4-grammes, 4 % de 5-grammes et 1 % vide (c’est-à-dire
des profils sans aucune compétence). Compte tenu de ces observations, nous avons
décidé de transformer l’ensemble du vocabulaire issu des offres d’emploi sous forme
d’unigrammes, de bigrammes et trigrammes et de les ordonner selon un score Sjob ,
inspiré du TF-IDF :
Dm
Sjob (u, m) = tf (u).log [1]
df (u)
Génération d’une ontologie RH 51
Les premiers résultats ont montré qu’un grand nombre de compétences extraites
étaient des compétences transversales (telles que verbal/written communication skills,
capacité à travailler en équipe, etc. ) qui peuvent être considérées comme perti-
nentes quel que soit le métier considéré. Nous avons donc ajouté l’étape ¯ afin de
les distinguer des compétences plus techniques, communément appelées hard skills14 .
Les compétences transversales étant des compétences demandées dans l’ensemble des
offres d’emploi et quelle que soit la fonction considérée, nous effectuons un premier
traitement en réutilisant l’ensemble des offres d’emploi sans tenir compte des fonc-
tions. Nous recherchons ainsi les compétences les plus fréquentes quel que soit le
métier considéré. Après l’étape de normalisation (section 5.1), nous effectuons une
agrégation du vocabulaire décrite en section 5.3, que nous transformons par la suite
sous forme d’unigrammes, de bigrammes et de trigrammes et que nous ordonnons en
fonction de Sjob , tel que défini par l’équation [1]. L’ensemble des compétences ob-
tenues permet de constituer un dictionnaire qui sera utilisé par la suite, au cours de
l’étape de validation (section 5.5), afin de séparer les compétences transversales des
compétences plus techniques. Nous obtenons ainsi un dictionnaire de 250 termes en
français et en anglais, regroupant unigrammes, bigrammes et trigrammes.
14. Les hard skills sont les compétences formellement démontrables, nées d’un apprentissage
technique, souvent d’ordre académique, et dont la preuve est apportée par l’obtention de notes,
de diplômes, de certificats.
52 TAL. Volume 58 – n◦ 1/2017
exemple employment equity, strong experience required, etc. ). Mais elle ne permet-
tait pas de prendre en considération la spécificité de certaines compétences vis-à-vis
de certains métiers. Afin de résoudre ce problème, nous avons constitué un diction-
naire dynamique. Pour le construire, les 10 millions de profils ont été indexés avec le
moteur de recherche Lucene15 en fonction de la langue du profil et du pays d’origine.
Chaque champ textuel a été indexé individuellement afin de pouvoir être interrogé sé-
parément. Cette approche affine les résultats en fonction du secteur d’activité, de la
fonction occupée par le profil ou des compétences qu’il possède. Pour chaque métier
sélectionné au cours de l’étape 5.2, nous effectuons une requête avec le nom de ce
métier et en spécifiant que les résultats doivent contenir uniquement des profils dont
la section compétences n’est pas vide. Les profils retournés sont donc des profils qui
occupent ou qui ont occupé le métier recherché et dont la section compétences a été
renseignée. Pour une requête donnée, nous agrégeons les compétences des 10 000
premiers profils16 obtenus. Les compétences sont ainsi transformées en une liste or-
donnée par fréquence avec comme seuil minimal 10 % de la fréquence maximale
obtenue. Chaque liste constitue ainsi un dictionnaire dynamique des compétences les
plus fréquentes pour chaque métier selon la base de profils de réseaux sociaux. Nous
comparons la liste ordonnée de n-grammes obtenus avec ce dictionnaire dynamique et
avec le dictionnaire de soft skills afin de séparer les compétences en fonction de leur
type comme expliqué en section 5.4.
uni:n
es
sko
ype s:p
ris
:t refL
rdf
mp
abe
co l
p:
bp
rdf:type
bpp:univers rdf:Seq Administration
_1
:
rdf
bpp _2
l
rdf:_
:req
be rdf: uire
La type s …
ef
1
pr
os:
sk occ:j bpp
rdf
:has
:_1
Administrative
rdf:_2
Sco
:
f
typ
re
bel
rd
assistant@en
e
efLa
bp
97.4
2 _
s:pr
p:t
rdf:
1
f:_ …
h
rd rdf:Seq
sko
bpp:h
es
ll
ki
kil
es
l
h
…
asSc
p:t
bp
bpp:isRequiredBy
o
skl:l
re
bpp
:isR
e quir
pe
edB
rdf:t
y
y
rdf:t
y
abe
pe
skls:k
refL
skos:prefLabel
pe
s:p
rdf:Seq :ty
124.7 bpp:skill
rdf
sko
bpp:softSkill
Secondary
Human resource@en
education@en
Notre ontologie est une classification hiérarchique, exprimée en RDF, dans la-
quelle chaque univers (uni:n dans la figure 4) est lié par la relation bpp:comprises
à un ensemble de métiers occ:i nommés occupations par souci de compatibilité avec
la nomenclature ESCO. Chaque occupation est liée par la relation bpp:requires
à deux séquences (rdf:Seq) de compétences : une pour les compétences transver-
sales (bpp:softskill) et une autre pour les compétences spécialisées (bpp:skill).
Chaque compétence est liée à une étiquette par la relation skos:prefLabel sous
forme de n-grammes et associée à un score bpp:hasScore qui est la valeur de Sjob .
Chaque métier est ainsi rattaché à son domaine ainsi qu’à une liste des compétences
associées. De plus, un lien direct bpp:isRequiredBy est ajouté entre chaque com-
pétence et le métier qui l’exige. Même si chaque compétence est unique, celle-ci peut
être reliée à plusieurs métiers. Notons que conformément aux principes du Web sé-
mantique, une classe RDF définit l’ensemble des individus qui partagent des proprié-
tés communes, il n’y a donc pas d’instanciation d’objets à partir des classes comme
dans les modèles à objets plus classiques.
Le module ³ crée une ontologie17 composée des titres de 440 métiers (128 en
anglais et 312 en français) répartis dans 27 univers différents (sur les 44 univers pos-
sibles) et reliés à 6 226 compétences différentes (4 059 pour l’anglais et 2 167 pour
le français) et 485 compétences transversales (259 pour l’anglais et 226 pour le fran-
çais). Des exemples de deux métiers avec leurs compétences identifiées sont présentés
dans les tableaux 3 et 4. Plusieurs métiers peuvent partager des compétences qui ne
sont pas répétées dans l’ontologie. La structure permet également de trouver tous les
métiers qui demandent une compétence particulière.
Le réseau RDF pour l’anglais contient 109 156 triplets pour 128 métiers reliés
à 4 059 compétences spécifiques et 259 compétences transversales et celui pour le
français comprend 160 584 triplets pour 312 métiers reliés à 2167 compétences spé-
cifiques et 226 compétences transversales. Ils sont interrogeables avec SPARQL dans
nos applications. Pour en faciliter l’exploration visuelle, nous avons aussi développé
un navigateur spécialisé qui affiche la structure RDF en faisant ressortir les différents
niveaux : univers, métiers et compétences. La figure 5 présente une capture d’écran
du navigateur contenant un extrait de l’ontologie finale avec un des métiers évalués en
section 6. Le champ de texte en haut du navigateur permet de rechercher des métiers
ou des occupations qui contiennent une chaîne. Il est ensuite possible d’explorer les
compétences ou les métiers associés. Ce navigateur regroupe les résultats sous forme
de triplets pour en faciliter l’évaluation, mais la structure de l’ontologie ne repose pas
sur cette distinction qu’il est simple d’ignorer lors de requêtes SPARQL.
Cette première ontologie a une structure relativement simple, mais suffisante pour
les besoins de notre application : elle est composée de listes d’occupations regroupées
en univers, les occupations étant reliées à des listes de termes identifiant les compé-
tences requises par ces occupations. Il aurait été intéressant de hiérarchiser les métiers
Figure 5. Navigateur pour rechercher dans l’ontologie. Chaque concept présent dans
l’ontologie est déterminé à l’aide d’un identifiant numérique, les compétences sont
précédées de la lettre S (Skills) les métiers par O (Occupations), suivi du numéro
associé à l’univers (par exemple O1006 financial analyst appartient à l’univers 10
banque, finance, capital risque, fonds privés). Le nombre entre parenthèses est la va-
leur du score calculée selon l’équation [1] (section 5.3).
56 TAL. Volume 58 – n◦ 1/2017
(p. ex. regrouper les chefs de projets de tous les domaines) ou de créer une structure
d’héritage entre les compétences, mais ceci fera l’objet d’un travail futur.
6. Évaluation
Nous présentons maintenant nos résultats ainsi que son évaluation. Les tableaux 3
et 4 présentent les compétences obtenues, sous forme de n-grammes classés arbitraire-
ment en fonction de la taille. Nous ne présentons ici que les dix premières compétences
en ordre décroissant de Sjob (voir section 5.3) pour les métiers analyste financier (Ta-
bleau 3) et analyste programmeur (Tableau 4) en français et en anglais. L’évaluation
de cette portion de l’ontologie a cependant été effectuée sur les trente premières com-
pétences par un expert du domaine. Nous avons choisi ces métiers afin de privilégier
des métiers ciblés par notre partenaire industriel et pour ne pas nous limiter aux mé-
tiers des technologies de l’information, habituellement utilisés pour les évaluations
dans la littérature. Nous présentons dans le tableau 2 un aperçu des métiers contenus
dans l’ontologie dans chacune des langues, classés en fonction du nombre d’offres
d’emploi utilisées par le système.
Anglais Français
Métier # offres Métier # offres
sales representative 2 211 commercial 3 159
designer 1 764 développeur 2 692
administrative assistant 1 644 technicien commercial 1 451
customer service representative 1 309 comptable 1 363
account manager 1 183 contrôleur de gestion 1 000
developer 1 178 ingénieur commercial 983
business analyst 1 053 responsable commercial 732
store manager 918 acheteur 706
truck drive 729 ingénieur études et développement 570
sales manager 665 responsable comptable 479
assistant manager 621 responsable ressource humaines 422
restaurateur 565 chef produit 407
financial analyst 497 architecte 380
business developer 496 responsable production 373
account executive 454 infirmier 340
Tableau 2. Liste des métiers dans chacune des langues, classés par ordre décrois-
sant du nombre d’offres d’emploi. Seuls les 15 premiers sont présentés ici, mais les
résultats génèrent 128 métiers en anglais et 312 en français.
Génération d’une ontologie RH 57
Financial analyst
Soft skills Hard skills
financial, business, support, management, accounting, analysis, finance, reporting, cpa,
process, reports, data, project, including, cma, budget, cga, end, forecast ...
projects ...
analytical skills, communication skills, financial analyst, financial analysis, financial
problem solving, ability work, internal reporting, financial statements, variance
external, real estate, decision making, analysis, finance accounting, accounting
interpersonal skills, financial services, verbal finance, balance sheet, journal entries, financial
written ... modelling ...
analytical problem solving, problem solving financial planning analysis, ad hoc reporting,
skills, verbal written communication, ability financial reporting analysis, financial analysis
work independently, key performance reporting, financial statement preparation, year
indicators, fast paced environment, oral written end close, consolidated financial statements,
communication, time management skills, planning budgeting forecasting, business case
communication interpersonal skills, analysis, possess strong analytical ...
interpersonal communication skills ...
Analyste financier
Soft skills Hard skills
comptabilite, analyse, connaissance, cpa, finance, finances, consolidation,
information, gestion, direction, recherche, qualifications, cma, cga,principal, ecrit,
environnement, organisation, experience bilinguisme ...
etats financiers, experience client, esprit analyse financiere, analyses financieres,
analyse, capacite travailler, analyse synthese, amelioration processus, processus budgetaire,
travail equipe, relations interpersonnelles, modelisation financiere, processus affaires,
administration affaires, resolution problemes, financial reporting, financial analyst, cycle
gestion priorites ... comptable, prix revient ...
Programmer analyst
Soft skills Hard skills
development, technical, systems, software, programmer, analyst, programming,
application, business, design, support,data, applications, sql, java, test, web, developing,
solutions integration
Analyste programmeur
Soft skills Hard skills
developpement, applications, informatique, net, sql, programmation, javascript, server,
connaissance, solutions, analyse, web, java, cgi, agile, oracle, langage ...
environnement, recherche, experience ...
sql server, bases donnees, esprit equipe, mise asp net, vb net, html css, visual studio,
place, resolution problemes, base donnees, intelligence affaires, services web, applications
projets developpement, capacite analyse, web, apache tomcat, oracle sql, ms sql ...
capacite travailler, developpement logiciel ...
ms visual studio, esprit analyse synthese,ms sql master data management, object oriented
server, capacite travailler equipe, team programming, high pressure environment,
foundation server, sql server 2008, asp net visual basic net, visual studio team
mvc, capacite travailler pression, visual studio
2010 ...
Anglais Français
n-grammes Unigramme Bigramme Trigramme Unigramme Bigramme Trigramme
soft hard soft hard soft hard soft hard soft hard soft hard
Total 60 60 60 60 57 60 60 60 60 60 42 9
Pertinents 48 50 53 58 57 59 57 52 52 56 33 8
Précision 0,80 0,83 0,88 0,97 1,0 0,98 0,95 0,87 0,87 0,93 0,79 0,88
Nous avons barré les n-grammes qui ont été considérés comme non pertinents
par l’expert. Le tableau 5 présente une synthèse de l’évaluation de ces compétences
en termes de précision. Ne disposant pas d’une liste complète des compétences pour
chaque métier, nous n’avons pas été en mesure de calculer le rappel.
Même si l’échantillon évalué est de taille relativement petite (656 compétences
sur environ 60 000 compétences générées), les résultats obtenus sont de très bonne
qualité (0,89 sur l’ensemble de l’évaluation). La qualité des listes en anglais (0,91) est
légèrement meilleure que celles en français (0,87). Nous attribuons cette différence au
plus petit nombre d’offres d’emploi pour les métiers considérés en langue française
(497 et 185 offres en anglais contre 127 et 169 offres en français). Ce nombre restreint
d’offres d’emploi en français explique aussi le faible nombre de trigrammes obtenus
pour le métier d’analyste programmeur.
L’analyse détaillée montre par ailleurs une présence importante de termes an-
glais présents dans les résultats français. Nous attribuons ce mélange à une utili-
sation fréquente de termes anglais dans les offres d’emploi en français. Celles-ci
contiennent des ambiguïtés pour certaines compétences (telles que leadership, ma-
nagement ou encore marketing) ainsi que pour certaines fonctions (manager, trader,
designer, etc.), ce qui complique la tâche de détection de langue. L’utilisation des
n-grammes de mots occasionne par ailleurs des erreurs entre certaines compétences
suivant la taille du n-gramme considéré (access et access to a vehicule, office et office
management, etc.). Nous constatons aussi une redondance de certaines compétences
en fonction de l’usage du singulier ou du pluriel (par exemple : analyse financière et
analyses financières, bases données et base données) ou de versions différentes d’un
logiciel (par exemple : visual studio 2005/2010 ou AutoCad 2015/2017).
Le tableau 5 montre des résultats de meilleure qualité pour les bigrammes et les
trigrammes que pour les unigrammes (des précisions moyennes de 0,86 pour les uni-
grammes, 0,91 pour les bigrammes et 0,93 pour les trigrammes). Nous travaillons à
leur amélioration, car l’observation des offres d’emploi et des résultats montre que les
technologies requises sont généralement présentées sous forme d’unigrammes (par
exemple cga, sap, Java, MySQL, etc.). La mise en place du dictionnaire dynamique
(section 5.5) a permis d’améliorer globalement la qualité des n-grammes obtenus, ce-
pendant des termes ou expressions courants dans les offres d’emploi et dans le diction-
naire viennent parfois bruiter les résultats (par exemple assurance). À partir des don-
nées du tableau 5, on peut calculer que la précision moyenne des compétences tech-
60 TAL. Volume 58 – n◦ 1/2017
niques (hard skills) 0,92 est légèrement meilleure que celle des compétences transver-
sales (soft skills) qui est de 0,88. Afin d’analyser cette différence, nous avons effectué
une évaluation de la qualité du dictionnaire généré pour les compétences transversales
et les résultats montrent qu’une partie du vocabulaire contenu dans le dictionnaire
est non pertinente (précision de 0,87 sur 250 compétences), particulièrement les uni-
grammes (0,60), ce qui se répercute sur la qualité des résultats finaux.
Nous avons présenté dans cet article les travaux réalisés sur la génération automa-
tique de ressources linguistiques pour les besoins de l’e-recrutement. À partir de dix
millions de profils issus de plusieurs réseaux sociaux, ainsi que 45 000 offres d’em-
ploi sur les 300 000 récoltées sur Internet, nous avons fait émerger des compétences
et des connaissances communes pour construire un ensemble structuré des termes et
concepts représentant chaque métier avec ses compétences associées. Ces offres conte-
nant le profil minimal recherché pour un métier ont été utilisées afin de détecter les
compétences. Ces offres d’emploi étant collectées sur Internet, le modèle pourra ainsi
s’enrichir de façon semi-automatique avec l’apparition et la disparition de métiers.
Nous avons présenté par la suite les premiers résultats obtenus ainsi qu’une évaluation
manuelle réalisée par un expert du domaine. L’analyse détaillée a montré des résultats
de très bonne qualité (précision moyenne de 0,89) particulièrement en anglais. Nous
attribuons cette différence principalement à la quantité plus faible d’offres d’emploi
pour les métiers considérés en langue française.
Nous envisageons des traitements plus fins afin de regrouper les compétences for-
tement similaires ou qui ne diffèrent que par de faibles variations d’écriture. Nous
souhaitons utiliser cette ontologie afin d’évaluer si un candidat dispose de toutes les
compétences pour un métier ou encore au travers d’un outil de génération de texte afin
de suggérer à un candidat comment mettre en avant ses compétences ou encore sug-
gérer des mots-clés pour les recruteurs qui effectuent des recherches dans des bases
de profils de candidats. Nous prévoyons par ailleurs de continuer à augmenter la taille
de l’ensemble des offres d’emploi afin de couvrir un nombre de métiers plus impor-
tant pour améliorer la qualité des résultats. Le processus complet étant automatisé, il
est possible, et nous l’avons d’ailleurs expérimenté à quelques reprises, de créer une
nouvelle ontologie aussitôt que de nouvelles offres d’emploi deviennent disponibles.
Il serait toutefois intéressant d’effectuer une mise à jour de l’ontologie existante.
Par ailleurs, nous envisageons l’utilisation de notre système en complément d’un
processus classique de sélection des candidats actifs, c’est-à-dire ayant posé leur can-
didature, nous pourrions ainsi identifier les candidats passifs, qui ne sont pas en re-
cherche d’emploi, mais qui pourraient être intéressés par de nouvelles opportunités,
en parcourant les différents médias sociaux afin de récolter les profils les plus en adé-
quation avec une offre d’emploi. Une fois cette collecte terminée, une proposition
d’opportunité serait transmise à ces candidats passifs qui pourraient alors décider si la
proposition les intéresse suffisamment pour postuler.
Génération d’une ontologie RH 61
Remerciements
8. Bibliographie
Bendaoud R., Rouane Hacene A. M., Toussaint Y., Delecroix B., Napoli A., « Construction
d’une ontologie à partir d’un corpus de textes avec l’ACF », IC 2007, Grenoble, France,
2007.
Colucci S., Di Noia T., Di Sciascio E., Donini F. M., Mongiello M., Mottola M., « A formal
approach to ontology-based semantic match of skills descriptions », J. UCS, vol. 9, no 12,
p. 1437-1454, 2003.
Colucci S., Di Noia T., Di Sciascio E., Donini F. M., Ragone A., Trizio M., « A Semantic-
based Search Engine for Professional Knowledge », Proc. 7th Int. Conf. on Knowledge
Management and Knowledge Technologies (I-KNOW 2007),(Sep 2007), p. 472-475, 2007.
Colucci S., Tinelli E., Giannini S., Di Sciascio E., Donini F. M., « Knowledge Compilation for
Core Competence Extraction in Organizations », Business Information Systems, Springer,
p. 163-174, 2013.
Desmontils E., Jacquin C., Morin E., « Indexation sémantique de documents sur le Web : appli-
cation aux ressources humaines », Journées de l’AS-CNRS Web Sémantique, 2002.
Gómez-Pérez A., Ramírez J., Villazón-Terrazas B., « An ontology for modelling human re-
sources management based on standards », Knowledge-Based Intelligent Information and
Engineering Systems, Springer, p. 534-541, 2007.
Hoffart J., Suchanek F. M., Berberich K., Lewis-Kelham E., de Melo G., Weikum G., « YAGO2 :
Exploring and Querying World Knowledge in Time, Space, Context, and Many Lan-
guages », Proceedings of the 20th International Conference Companion on World Wide
Web, p. 229-232, 2011.
Kessler R., Béchet N., Roche M., El-Bèze M., Torres-Moreno J. M., « Automatic profiling
system for ranking candidates answers in human resources », On the Move to Meaningful
Internet Systems : OTM 2008 Workshops, Springer, p. 625-634, 2008.
Kessler R., Lapalme G., Tondo É., « Génération d’une ontologie dans le domaine des ressources
humaines », CORIA 2016, Toulouse, 03/2016, 2016.
Kmail A. B., Maree M., Belkhatir M., Alhashmi S. M., « An Automatic Online Recruitment
System Based on Exploiting Multiple Semantic Resources and Concept-Relatedness Mea-
sures », Tools with Artificial Intelligence (ICTAI), 2015 IEEE 27th International Conference
on, p. 620-627, 2015.
Lau T., Sure Y., « Introducing ontology-based skills management at a large insurance com-
pany », Proceedings of the Modellierung 2002p. 123-134, 2002.
62 TAL. Volume 58 – n◦ 1/2017
le Vrang M., Papantoniou A., Pauwels E., Fannes P., Vandensteen D., De Smedt J., « ESCO :
Boosting Job Matching in Europe with Semantic Interoperability », Computer, vol. 47,
no 10, p. 57-64, Oct, 2014.
Levenshtein V. I., « Binary codes capable of correcting deletions, insertions and reversals. »,
Soviet Physics Doklady, vol. 10, no 8, p. 707-710, 1966.
Loth R., Battistelli D., Chaumartin F.-R., De Mazancourt H., Minel J.-L., Vinckx A., « Lin-
guistic information extraction for job ads (SIRE project) », Adaptivity, Personalization and
Fusion of Heterogeneous Information, p. 222-224, 2010.
Miles A., Bechhofer S., « SKOS Simple Knowledge Organization System Reference », 2009.
Mochol M., Simperl E. P. B., « Practical guidelines for building semantic erecruitment appli-
cations », International Conference on Knowledge Management, Special Track : Advanced
Semantic Technologies (AST’06), Citeseer, 2006.
Osborne J. D., Flatow J., Holko M., Lin S. M., Kibbe W. A., Zhu L. J., Danila M. I., Feng G.,
Chisholm R. L., « Annotating the human genome with Disease Ontology », BMC Genomics,
2009.
Roche M., Kodratoff Y., « Pruning terminology extracted from a specialized corpus for CV
ontology acquisition », On the Move to Meaningful Internet Systems 2006 : OTM 2006
Workshops, Springer, p. 1107-1116, 2006.
Sami G., Béchet N., Berio G., « Ontologies from Textual Resources : A Pattern Based Impro-
vement Using Deep Linguistic Information », Workshop on on Ontology and Semantic Web
Patterns (WOP), vol. 1302 of Proceedings of Workshop on on Ontology and Semantic Web
Patterns (WOP), p. 14-25, 2014.
Sivabalan L., Yazdanifard R., Ismail N. H., « How to Transform the Traditional Way of Recruit-
ment into Online System », International Business Research, vol. 7, p. 178, 2014.
Trichet F., Bourse M., Leclerc M., Morin E., Human Resource Management and Semantic Web
Technologies, springer edn, ICTTA, Berlin, 2004.
Trog D., Christiaens S., Zhao G., de Laaf J., « Toward a Community Vision Driven Topical
Ontology in Human Resource Management », On the Move to Meaningful Internet Systems :
OTM 2008 Workshops, Springer, p. 615-624, 2008.
Tétreault M., Dufresne A., Gagnon M., « Development of an Ontology-Based E-Recruitment
Application that Integrates Social Web », Electronic business interoperability : Concepts,
opportunities and challengesp. 363-395, 2011.
Yahiaoui L., Boufaïda Z., Prié Y., « Automatisation du e-recrutement dans le cadre du web
sémantique », Journée francophones d’Ingénierie des Connaissances, IC’2006, 2006.
Zimmermann T., Kotschenreuther L., Schmidt K., « Data-driven HR - Résumé Analysis Based
on Natural Language Processing and Machine Learning », CoRR, 2016.