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.
|