Rapport Analyse de Sentiments [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Université Hassan II de Casablanca Faculté des sciences et techniques de Mohammedia Département d’Informatique

Projet de Fin d’Etudes Licence sciences et Techniques Informatique, Réseaux et Multimédia

Sujet : Développement d’une application web d’analyse de sentiments avec le Framework Django de python Présenté par : BALRHAYAT WIDAD MELLAL ILYASSE YOUNOUS KHAOULA Devant les membres de jury : Pr. AYAD HABIB

Encadrant (FSTM)

Pr. ADIB ABDELLAH

Rapporteur(FSTM)

Pr. SEKKATE SARA

Examinateur (FSTM)

Année universitaire 2020-2021

1

Dédicace Nous dédions ce travail…

À nos chers parents pour leur soutien, leur amour et leur forte croyance en nous.

À nos amis et collègues d'avoir toujours été là pour nous quand nous avions besoin les uns des autres.

À nos frères et sœurs pour avoir veillé sur nous et nous avoir soutenus dans nos épreuves.

Et félicitations à nous-mêmes pour avoir réussi à terminer ce projet dans le court délai imparti, et cela n'a été possible que parce que les membres du groupe étaient unis et se complétaient dans tous les aspects.

2

Année universitaire 2020-2021

Remerciement

Tout d'abord, nous remercions Dieu pour sa guidance et son aide extrême qui nous a permis de terminer ce projet, et d’atteindre ce que nous avons accompli dans nos vies jusqu'à présent. Nous remercions aussi nos parents qui nous ont toujours offert un bon environnement de travail même pendant ces temps difficiles, ainsi que leurs encouragements et amour.

Nous adressons nos sincères remerciements au corps professoral de la licence « IRM » pour leurs efforts, tout particulièrement notre professeur et encadrant Pr. AYAD, pour ses conseils et orientations précieuses, ainsi que son accompagnement et sa disponibilité et collaboration pour assurer l’aboutissement et le bon déroulement de notre travail.

Sans oublier d'exprimer notre gratitude aux membres du jury pour avoir pris le temps d'évaluer notre travail.

3

Année universitaire 2020-2021

Table des matières Introduction ................................................................................................................................................... 8 Chapitre 1 :Contexte général du projet ....................................................................................................... 10 1

2

L’organisme d’accueil : ...................................................................................................................... 10 1.1

Présentation de La Faculté des Sciences et Techniques de Mohammedia .................................. 10

1.2

Ses Missions et Valeurs : ............................................................................................................ 11

1.3

L’organisme de l’établissement : ................................................................................................ 12

Définition du projet : ........................................................................................................................... 12 2.1

Présentation de la problématique : .............................................................................................. 12

2.2

Présentation de la solution : ........................................................................................................ 13

2.3

Cahier des charges : .................................................................................................................... 13

2.3.1

Besoins fonctionnels : ......................................................................................................... 13

2.3.2

Besoins non fonctionnels : .................................................................................................. 14

Chapitre 2 : Analyse des sentiments et ses algorithmes utilisés ................................................................. 15 1

2

Analyse des sentiments : ..................................................................................................................... 15 1.1

Définition d’analyse des sentiments : ......................................................................................... 15

1.2

Les étapes de l’analyse des sentiments : ..................................................................................... 16

1.3

Les approches de l’analyse des sentiments : ............................................................................... 17

1.3.1

Analyse des sentiments basée sur le lexique : ..................................................................... 17

1.3.2

Analyse des sentiments automatique : ................................................................................ 18

La partie pratique de l’analyse des sentiments :.................................................................................. 19 2.1

Traitement du langage naturel (NLP) : ....................................................................................... 19

2.1.1

Traitement des données :..................................................................................................... 20

2.1.2

Base de données : ................................................................................................................ 21

2.1.3

Evaluation du système : ...................................................................................................... 22

2.2

Analyse des sentiments par le Machine Learning: ...................................................................... 22

2.2.1

Logistic Regression : ........................................................................................................... 23

2.2.2

Random Forest : .................................................................................................................. 23

2.2.3

Naïve Bayes : ...................................................................................................................... 23

2.2.4

Support Vector Machine : ................................................................................................... 24

Chapitre 3 : Analyse et Conception ............................................................................................................ 25 1

Langage de modélisation unifié (UML) :............................................................................................ 25 4

Année universitaire 2020-2021

2

Analyse : ............................................................................................................................................. 26 2.1

Description des acteurs : ............................................................................................................. 26

2.2

Diagramme de cas d’utilisation : ................................................................................................ 26

2.3

Diagramme de classes : ............................................................................................................... 35

2.4

Diagramme de séquence : ........................................................................................................... 35

Chapitre 4 : Aspect Technique et mise en oeuvre ....................................................................................... 39 1

2

3

Architecture applicative : .................................................................................................................... 39 1.1

Le modèle : ................................................................................................................................. 39

1.2

La vue : ....................................................................................................................................... 39

1.3

Le contrôleur : ............................................................................................................................. 40

1.4

Les avantages de l’architecture MVC : ....................................................................................... 41

Langages de programmation : ............................................................................................................. 41 2.1

Caractéristiques de Python : ........................................................................................................ 41

2.2

Applications de Python : ............................................................................................................. 42

2.3

Frameworks Web pour Python: .................................................................................................. 42

Outils de développement :................................................................................................................... 43 3.1

4

Principe : ..................................................................................................................................... 44

Réalisation : ........................................................................................................................................ 44 4.1

Page d’accueil : ........................................................................................................................... 45

4.1.1

Cas d’utilisateur : ................................................................................................................ 45

4.1.2

Cas d’administrateur : ......................................................................................................... 50

Conclusion générale .................................................................................................................................... 52

5

Année universitaire 2020-2021

Liste des abreviations FSTM: Faculté des Sciences et Techniques de Mohammedia MVC: Model View Controller UML : Langage de modélisation unifié SVM : Support Vector Machine NLP : Traitement du langage naturel (NLP) NLTK : Natural Language Toolkit HTML: Hypertext Markup Language CSS: Cascading Style Sheets JS: JavaScript TP : True Positive TN : True negative FP : False positive FN : False negative

Liste des tableaux Tableau 1. Description du cas d’utilisation “Consulter les produits” Tableau 2. Description du cas d’utilisation “S’inscrire” Tableau 3. Description du cas d’utilisation “S’authentifier” Tableau 4. Description du cas d’utilisation “Voir les avis des autres clients” Tableau 5. Description du cas d’utilisation “Commenter sur un produit” Tableau 6. Description du cas d’utilisation “Modifier son commentaire” Tableau 7. Description du cas d’utilisation “Modifier ses informations personnelles” 6

Année universitaire 2020-2021

Tableau 8. Description du cas d’utilisation “Supprimer son compte” Tableau 9. Description du cas d’utilisation “Ajouter des produits” Tableau 10. Description du cas d’utilisation “Modifier/Supprimer les détails des produits” Tableau 11. Description du cas d’utilisation “les commentaires des utilisateurs”

Table des figures Figure 1 : La Faculté des Sciences et Techniques de Mohammedia Figure 2 : Organigramme fonctionnel de le FSTM Figure 3 : Les sentiments négatifs, neutres et positifs. Figure 4 : Les étapes de l’analyse des sentiments. Figure 5 : Les approches de l’analyse de sentiments Figure 6. Le score de précision de Logistic Regression Figure 7. Le score de précision de Random Forest Figure 8. Le score de précision de Naïve Bayes Figure 9. Le score de précision de Support Vector Machine Figure 10. Diagramme de cas d’utilisation Figure 11. Diagramme de classes Figure 12. Diagramme de séquence côté administrateur. Figure 13. Diagramme de séquence côté utilisateur.

Figure 14. Le modèle MVC Figure 15. Page d’accueil de l’application. Figure 16. Page d’inscription sur l’application. Figure 17. Cas d’un nom d’utilisateur pas valide sur la page d’inscription. Figure 18. Cas de saisie d’un nom d’utilisateur existant dans la base de données sur la page d’inscription. Figure 18. Formulaire d’authentification. Figure 19. Réinitialisation du mot de passe. 7

Année universitaire 2020-2021

Figure 20. Confirmation d’envoie d’un nouveau mot de passe à l’adresse email. Figure 21. Réception du nouveau mot de passe à l’adresse email. Figure 22. Boutons pour se déconnecter ou accéder au profil de l'utilisateur Figure 23. Espace de l’utilisateur. Figure 24. Les détails d’un produit. Figure 25. Les commentaires des autres utilisateurs sur un produit Figure 26. L’espace des commentaires. Figure 26. Un commentaire sur l’un des produits. Figure 27. La page des produits. Figure 28. Message de déconnection. Figure 29. Formulaire de connexion d’un administrateur. Figure 30. Les tables des utilisateurs, commentaires, produits et profiles. Figure 31. La page de déconnexion de l’administrateur.

Introduction Les émotions sont au cœur de l'expérience humaine. Depuis des décennies, les psychologues affirment que notre processus de décision est guidé (au moins partiellement) par nos émotions. Les spécialistes des études de marché sont d'accord avec cette hypothèse. Les émotions à l'égard d'une marque peuvent avoir un effet profond sur la façon dont cette marque est perçue. La perception détermine l'engagement, les ventes et les taux de consommation. Les entreprises les plus prospères comprennent le sentiment de leurs clients - ce que les gens disent, comment ils le disent et ce qu'ils veulent dire. Certains l'appellent Social listening, Social Media Monitoring, Social Media Intelligence, Social Media Analytics ou Social Media Management, parmi une multitude d'autres noms. L'écoute sociale, dans son sens le plus technique, consiste essentiellement à utiliser des outils pour surveiller et suivre les occurrences d'informations en ligne où une marque ou une entreprise a été citée ou discutée. 8

Année universitaire 2020-2021

L'analyse des sentiments est probablement la meilleure forme d'écoute sociale. Elle aide les entreprises à comprendre les commentaires que leurs clients laissent en ligne. Les gens vont exprimer ce qu'ils attendent du produit, les fonctionnalités qui leur manquent, ce qu'ils aiment et ce qu'ils n'aiment pas. L'entreprise peut ensuite suivre tous ces commentaires, en tirer des conclusions, adapter la stratégie de marketing et, finalement, le produit. Dans le but de décrocher notre licence en « Informatique, Réseau et Multimédias » à la Faculté des Sciences et Techniques de Mohammedia, nous avons effectué un stage au sein de notre faculté d’une durée d’un mois. Durant cette période, nous avons été amenées à développer une application web qui permet de proposer des produits aux clients en leurs donnant la possibilité de laisser un commentaire sur un produit. Un algorithme d’analyse de sentiments sera implémenté par la suite dans l’application pour classer les produits selon les avis des clients. Dans ce rapport, nous présenterons le travail effectué sous 4 chapitres. Le premier chapitre est consacré au contexte général du projet, ainsi que l’organisme d’accueil, l’étude de l’existant et les règles relatives au contenu. Le second chapitre est consacré à la conception de l’application et sa modélisation avec un diagramme de cas d’utilisation, un diagramme de classes et des diagrammes de séquences. Le troisième chapitre est centré sur les différents algorithmes d’analyse des sentiments. Dernièrement, le quatrième chapitre est consacré à l’aspect technique et l'étude des différents outils pour réaliser l’application, ainsi que l’implémentation des algorithmes d'analyse de sentiments dans l’application et sa visualisation.

9

Année universitaire 2020-2021

Chapitre 1 :Contexte général du projet

Dans ce chapitre, nous lèverons le voile sur l’environnement contextuel du projet. Il vise à présenter le contexte général du projet, introduire l’organisme d’accueil ainsi que l’étude de l’existant et les règles relatives au contenu.

1 L’organisme d’accueil : 1.1 Présentation de La Faculté des Sciences et Techniques de Mohammedia La Faculté de Sciences et Techniques de Mohammadia (FSTM), composante de l’Université Hassan II de Casablanca, fait partie d’un réseau de huit FST à travers le Maroc dont la vocation est la formation universitaire dans les sciences et techniques, la FSTM, implantée dans une zone à forte activité industrielle, a toujours veillé à s’intégrer dans son environnement en disposant des cursus aboutissant à des profils qui répondent par excellence aux besoins socio-économiques. Elle œuvre depuis son inauguration, en 1994, à offrir une formation technique et en ingénierie de qualité, et s’est distinguée par la pertinence de sa recherche. La FST de Mohammedia compte 186 enseignants chercheurs, 57 personnels administratifs et techniques et plus de 3000 étudiants dont 750 en dernière année de licence, 260 en master et 440 en filières d’ingénieurs. Elle délivre plus que 550 diplômes par an.C’est un établissement à accès régulé où l’entrée se fait après une sélection basée sur les notes au baccalauréat de matières définies en fonction du parcours choisi (MIP ou BCG). La FSTM compte 8 départements et 13 laboratoires. La FSTM propose une carte de formation riche et relativement complète en Licence, Master Sciences et Techniques et Filières d’ingénieurs.

10

Année universitaire 2020-2021

Figure 1. La Faculté des Sciences et Techniques de Mohammedia

1.2 Ses Missions et Valeurs :



Missions:

La Faculté des Sciences et Techniques de Mohammedia (FSTM) regroupe des structures qui s’investissent pleinement dans les domaines de la formation et de la recherche scientifique pour contribuer au développement du Maroc. Ces structures sont engagées pour : -



Assurer des formations scientifiques et techniques de qualité en adéquation avec le marché de l'emploi. Développer la recherche scientifique fondamentale et appliquée pour contribuer à la production du savoir, répondre au besoin des entreprises et encourager l’innovation. Dispenser des formations continues pour répondre aux besoins du secteur socioéconomique. Participer au progrès scientifique, technique, professionnel et économique du pays.

Valeurs: La FSTM véhicule des valeurs basées sur l’intégrité intellectuelle et morale : -

La FSTM s’engage à développer le professionnalisme, le sens de la responsabilité, la créativité et le respect d’autrui. La FSTM s'engage à respecter les principes d’équité, d'égalité des chances et de la pluralité culturelle. La FSTM s’engage à émuler l’excellence, la créativité et l’innovation.

11

Année universitaire 2020-2021

1.3 L’organisme de l’établissement : La figure ci-dessous représente l’organisme fonctionnelle de la FSTM.

Figure 2. Organigramme fonctionnel de le FSTM

2 Définition du projet :

2.1 Présentation de la problématique : Des millions de personnes dans le monde utilisent chaque jour les achats en ligne. Cela leur permet d'économiser du temps et des efforts, et il ne leur reste plus qu'à choisir et à cliquer! L'accélération du commerce électronique dans le monde entier au cours des années 2020 et 2021 était difficile à ignorer. Avec la pandémie que nous vivons, et avec la nécessité d'une distanciation sociale, les gens utilisent plus que jamais les plateformes d'achat en ligne.

12

Année universitaire 2020-2021

Certains sites WEB du commerce électronique prennent la performance des ventes et l’engagement commercial comme les facteurs primordiaux qui déterminent la demande de produits et leur popularité, cependant ce n'est pas toujours le cas. Ces sites web doivent cesser de se livrer à des conjectures, ils ont besoin d'un outil capable d'aller au-delà du "nombre de ventes", des "taux de clics", des "taux d'ouverture" et des "taux de commentaires", pour offrir un tout nouveau niveau d'informations - comme les réponses positives, les objections, les renvois ou les désabonnements.

2.2 Présentation de la solution : L'engagement commercial est centré sur l'acheteur, ce qui signifie que la compréhension du sentiment de l'acheteur est une étape cruciale dans une stratégie de vente efficace. Le sentiment de l'acheteur aide à comprendre les meilleures étapes à suivre et à se faire une idée d'un calendrier de vente réaliste. En fin de compte, le processus de vente peut être moins efficace si l'on ne comprend pas la réponse émotionnelle de l'acheteur. Il est temps de réinventer la façon dont nous assurons les efforts de vente grâce au feedback en temps réel des acheteurs. Comment? On doit être à l'écoute des clients. Il faut utiliser les commentaires, les évaluations et les critiques comme lignes directrices pour développer les produits, et il importe peu que ces critiques soient positives ou négatives. En fait, on peut dire que les critiques négatives aident encore plus la marque! Parce qu'ils signalent des défauts qui peuvent être corrigés, des défauts que le vendeur n'aurait pas remarqués s'il n'y avait pas eu d'avis. L’objectif principal de notre projet est de développer une application web permettant de proposer des produits aux clients en leur donnant la possibilité d’évaluer ou de laisser un commentaire sur un produit, les commentaires des clients seront analysés par des algorithmes d’analyse de sentiments en temps réel pour fournir un score relié à chaque produit, ce qui permettra alors de classer les produits selon les avis des clients.

2.3 Cahier des charges : 2.3.1

Besoins fonctionnels :

Les besoins fonctionnels définissent le comportement de base du système. Essentiellement, il s'agit de ce que le système fait ou ne doit pas faire, et peut être considéré comme la façon dont le système répond aux entrées. Pour parvenir au résultat souhaité et disposer d’une application fonctionnelle et pragmatique, l’application devra permettre :

13

Année universitaire 2020-2021

➢ A un administrateur authentifié d’ajouter, modifier et supprimer des produits, des comptes d’utilisateurs ou des commentaires. ➢ A un utilisateur authentifié de commenter sur les produits, modifier ses commentaires, et ses données personnelles, et de supprimer son compte. ➢ A un utilisateur non authentifié/inscrit de créer un compte, parcourir les produits et les avis des clients. ➢ L’analyse des sentiments des commentaires des utilisateurs sur les produits pour en obtenir un score pour chaque produit et les classifier selon le score. 2.3.2

Besoins non fonctionnels :

Les besoins non fonctionnels se présentent sous la forme "le système doit être ", une propriété globale du système dans son ensemble ou d'un aspect particulier et non une fonction spécifique. Les propriétés globales du système font généralement la différence entre la réussite ou l'échec du projet de développement. Les besoins non fonctionnels, dans notre cas, peuvent être présentées comme ceci: ➢ Sécurité : Les informations des utilisateurs sont confidentielles, alors l’accès aux espaces des utilisateurs et des superviseurs doit être sécurisé par un nom d’utilisateur et un mot de passe. ➢ Disponibilité : Notre application doit être disponible et opérationnelle à tout moment. ➢ Performance : :Le système doit répondre aux actions des utilisateurs en un tour de main. ➢ Compatibilité : Notre application doit supporter tous les systèmes d’exploitation (Windows, MAC, Linux). ➢ Utilisation : L’interface doit être facile à utiliser, compréhensible et bien claire.

14

Année universitaire 2020-2021

Chapitre 2 : Analyse des sentiments et ses algorithmes utilisés

Ce chapitre vise à étudier en profondeur l’analyse des sentiments et ses algorithmes utilisés au niveau de notre projet. Il comprend une définition générale de ce traitement ainsi que des explications détaillées des algorithmes et leurs performances.

1 Analyse des sentiments : 1.1 Définition d’analyse des sentiments : L'analyse des sentiments est une technique de traitement du langage naturel utilisée pour déterminer si des données sont positives, négatives ou neutres. L'analyse des sentiments est souvent effectuée sur des données textuelles afin d'aider les entreprises à surveiller la perception de la marque et des produits dans les commentaires des clients et à comprendre les besoins de ces derniers.

Figure 3. Les sentiments négatifs, neutres et positifs. 15

Année universitaire 2020-2021

Alors, comment fait-on exactement ? Quelles sont les étapes nécessaires pour analyser une donnée et en extraire le sentiment qu'elle cache ?

1.2 Les étapes de l’analyse des sentiments : L'analyse des sentiments nécessite les étapes suivantes : 1. La collecte de données: Une phase essentielle pendant laquelle nous sommes censés trouver le bon ensemble de données pour analyser et classer le texte. 2. Prétraitement du texte : Nous avons maintenant les données, mais elles ne sont pas encore prêtes à être classifiées, nous devons d'abord les nettoyer. L'étape de prétraitement permet de réduire le bruit dans les données, en supprimant les parties inutiles (mots vides, émoticônes, liens, mots répétés... etc.), ce qui permet de se concentrer sur les éléments importants, c'est-à-dire les mots clés qui déterminent le sentiment derrière le texte. 3. Classification des sentiments : Plusieurs techniques peuvent être appliquées pour classer un texte. Certaines de ces techniques sont Naïve Bayes, SVM, Maximum Entropy ... etc. Nous parlerons de ces techniques en détail plus tard. 4. Évaluation du modèle : C'est la dernière étape dans laquelle nous évaluons les résultats obtenus afin de déterminer la précision des techniques utilisées pour la classification des sentiments.

Figure 4. Les étapes de l’analyse de sentiments.

16

Année universitaire 2020-2021

1.3 Les approches de l’analyse des sentiments :

Figure 5. Les approches de l’analyse de sentiments Les algorithmes d'analyse du sentiment se répartissent en deux catégories : 1.3.1

Analyse des sentiments basée sur le lexique :

Elle utilise un lexique de sentiment préparé à l'avance pour évaluer un document en agrégeant les scores de sentiment de tous les mots du document. Voici un exemple de base du fonctionnement d’analyse du sentiment basée sur le lexique: ● Définit deux listes de mots polarisés (par exemple, des mots négatifs tels que mauvais, pire, laid, etc. et des mots positifs tels que bon, meilleur, beau, etc.) ● Il compte le nombre de mots positifs et négatifs qui apparaissent dans un texte donné. ● Si le nombre d'apparitions de mots positifs est supérieur au nombre d'apparitions de mots négatifs, le système renvoie un sentiment positif, et vice versa. Si les nombres sont égaux, le système renvoie un sentiment neutre.

17

Année universitaire 2020-2021

1.3.2

Analyse des sentiments automatique :

Les méthodes automatiques, contrairement aux systèmes à base de lexique, ne reposent pas sur des règles élaborées manuellement, mais sur des techniques d'apprentissage automatique. Une tâche d'analyse des sentiments est généralement modélisée comme un problème de classification, dans lequel un classificateur reçoit un texte et renvoie une catégorie, par exemple positive, négative ou neutre. Voici comment un classificateur d'apprentissage automatique peut être mis en œuvre :

1. Les processus d'apprentissage et de prédiction : Dans le processus d'apprentissage, notre modèle apprend à associer une entrée particulière (c'est-à-dire un texte) à la sortie correspondante (étiquette) sur la base des échantillons de test utilisés pour l'apprentissage. L'extracteur de caractéristiques transforme le texte en entrée en un vecteur de caractéristiques. Les paires de vecteurs de caractéristiques et d'étiquettes (par exemple, positives, négatives ou neutres) sont introduites dans l'algorithme d'apprentissage automatique pour générer un modèle. Dans le processus de prédiction, l'extracteur de caractéristiques est utilisé pour transformer les entrées de texte non vues en vecteurs de caractéristiques. Ces vecteurs de caractéristiques sont ensuite introduits dans le modèle, qui génère des étiquettes prédites (à nouveau, positives, négatives ou neutres).

2. Extraction de caractéristiques du texte : La première étape d'un classificateur de texte d'apprentissage automatique consiste à transformer l'extraction de texte ou la vectorisation de texte, et l'approche classique est le sac de mots avec leur fréquence.

3. Les classificateurs linéaires : Un classificateur linéaire atteint l'objectif de la classification en prenant une décision de classification basée sur la valeur d'une combinaison linéaire des caractéristiques. Les caractéristiques d'un objet sont également appelées valeurs de caractéristiques et sont généralement présentées à la machine dans un vecteur appelé vecteur de caractéristiques. Certains des algorithmes les plus couramment utilisés pour la classification (classification binaire dans notre cas): ● Naïve Bayes : Une famille d'algorithmes probabilistes qui utilise le théorème de Bayes pour prédire la catégorie d'un texte. Naïve Bayes prédit les probabilités d'appartenance à chaque classe, telles que la probabilité qu'un enregistrement ou un point de données appartiennent à une classe particulière. La classe avec la probabilité la plus élevée est considérée comme la classe la plus probable.Il peut être utilisé pour les classifications 18

Année universitaire 2020-2021

binaires ainsi que multi-classes. Il fonctionne bien dans les prédictions multi-classes par rapport aux autres algorithmes. C'est le choix le plus populaire pour les problèmes de classification de texte. ● Logistic Regression : La régression logistique est l'un des algorithmes d'apprentissage automatique les plus couramment utilisés pour les problèmes de classification binaire, qui sont des problèmes avec deux valeurs de classe, y compris des prédictions telles que "ceci ou cela", "oui ou non" et "A ou B". Le but de la régression logistique est d'estimer les probabilités d'événements, y compris la détermination d'une relation entre les caractéristiques et les probabilités de résultats particuliers. ● Support Vector Machine : SVM est un modèle linéaire pour les problèmes de classification et de régression. L'idée de SVM est simple : l'algorithme crée une ligne ou un hyperplan qui sépare les données en classes.Le meilleur hyperplan pour un SVM signifie celui avec la plus grande marge entre les deux classes. Marge signifie la largeur maximale de la dalle parallèle à l'hyperplan qui n'a pas de points de données intérieurs. ● Random Forest : La forêt aléatoire(Random forest) est un algorithme d'apprentissage supervisé. L'idée générale est qu'une combinaison de modèles d'apprentissage augmente le résultat global. En termes simples : la forêt aléatoire crée plusieurs arbres de décision et les fusionne pour obtenir une prédiction plus précise et plus stable.

2 La partie pratique de l’analyse des sentiments : Dans ce projet, nous avons utilisé deux approches pour classifier les commentaires de chaque produit. La première s'appuie sur le traitement du langage naturel et une base de données de mots négatifs/positifs, sans apprentissage automatique. Dans la seconde, par contre, nous avons utilisé plusieurs algorithmes d'analyse des sentiments par apprentissage automatique pour effectuer la classification. Nous avons ensuite comparé leur précision, et implémenté le plus performant dans notre application web. Commençons par la première méthode.

2.1 Traitement du langage naturel (NLP) : Les techniques du traitement du langage naturel, comme la tokenisation et la lemmatisation, aident les systèmes à traiter les données du langage naturel pour comprendre les émotions telles que la colère, le stress, le bonheur et la frustration.

19

Année universitaire 2020-2021

➢ NLTK : Le Natural Language Toolkit, ou NLTK, est l'une des bibliothèques de traitement du langage naturel les plus connues et les plus puissantes de Python. NLTK est une plateforme de premier plan pour la création de programmes Python destinés à travailler avec des données sur le langage humain. Elle fournit des interfaces faciles à utiliser pour plus de 50 corpus et ressources lexicales telles que WordNet, ainsi qu'une suite de bibliothèques de traitement de texte pour la classification, la tokenisation, le Stemming, l'analyse syntaxique et le raisonnement sémantique, et un forum de discussion actif. Alors, comment fonctionne réellement le traitement du langage naturel et quelles sont ses techniques principales ? 2.1.1 Traitement des données : Les données que nous utilisons dans le traitement du langage naturel proviennent de diverses sources. Le nettoyage et le traitement du texte sont donc des étapes nécessaires avant de pouvoir l'utiliser pour l'analyse. Plusieurs méthodes sont utilisées pour traiter un texte donné : 1. La tokenisation : C’est la première étape du processus de traitement du texte, et elle est assez simple. Ici, la machine va découper le texte en petits jetons. Ces petits jetons peuvent être essentiellement des listes de mots, de phrases, de caractères, de chiffres, etc. En même temps, cette étape implique de se débarrasser de certains caractères, comme la ponctuation, les séquences d'échappement ou les espaces. 2. Les mots vides : Dans le monde du traitement de texte, les mots vides sont des mots qui sont filtrés avant ou après le traitement d'un texte en langage naturel. Ces mots ne sont pas vraiment significatifs dans les requêtes de recherche. Ils renvoient de grandes quantités d'informations inutiles, il est donc préférable de les supprimer. Voici une liste de quelques mots vides en français: d'abord- dans- de- dehors- delà depuis desdessous- donc- dont- du- dès- déjà- elle- en- encore- enfin- entre- est- et- hors- il- je- laquellelors- lorsque. Spacy et NLTK sont généralement les bibliothèques utilisées pour gérer ces mots. Elles disposent d'un ensemble réservé de mots vides - dans plusieurs langues - qui est utilisé pour traiter un ensemble donné de caractères afin d'éliminer les mots sans signification du corpus donné. 3. La normalisation de text : 20

Année universitaire 2020-2021

La normalisation est le processus de transformation d'un texte en une forme canonique unique. Cette opération est utile et facilite les traitements ultérieurs car la normalisation d'un texte réduit son caractère aléatoire éventuel et le rapproche de sa forme normalisée. En transformant les mots en un format standard, d'autres opérations sont en mesure de travailler avec les données et n'auront pas à faire face à des problèmes qui pourraient compliquer le processus. 4. Le Stemming : Le stemming s'agit essentiellement de la normalisation d'un mot dans sa forme de base ou racine. C'est le processus qui coupe les extrémités des mots, afin de réduire les formes flexionnelles et parfois dérivées d'un mot à une forme de base commune. Le but est de trouver la racine à partir des différentes variations du mot. Ce processus est très utile car, lors du traitement d'un texte, nous trouvons généralement différents mots ayant la même racine.Pour raisons d'uniformité, il est donc préférable de réduire ces mots à leur racine. 5. La lemmatisation : En linguistique, la lemmatisation est le processus qui consiste à regrouper les formes fléchies d'un mot afin qu'elles puissent être analysées comme un seul élément, identifié par le lemme du mot, ou forme du dictionnaire. Il s’agit de l’analyse morphologique des mots, visant à supprimer ses affixes. Sur NLTK, la fonction morph native de WordNet est utilisée pour la Lemmatisation. Nous pouvons également nous appuyer sur certaines bibliothèques robustes comme spaCy qui peut effectuer une lemmatisation très efficace.



Dans ce projet, nous avons utilisé une fonction qui prend comme argument une chaîne de caractères, appelle une autre fonction pour nettoyer la chaîne, créant ainsi une liste de mots (Sans mots vides ni ponctuation). Elle classe chaque mot en utilisant une base de données de mots positifs/négatifs dont nous parlerons plus tard. Ensuite, elle calcule un score et retourne si le commentaire est positif ou négatif. Vu que NLP ne prend pas la phrase de négation en considération, nous avons ajouté une condition de l’existence du mot “pas” dans la phrase, ce qui inverse le score de la phrase. Par exemple, si le mot “pas” existe dans la phrase, le score calculé sera multiplié par moins un ( -1 ), peu importe si le sentiment est positif ou négatif. 2.1.2 Base de données : Nous avons utilisé une base de données collectée par Yanqing Chen et Steven Skiena. ↳ (https://www.kaggle.com/rtatman/sentiment-lexicons-for-81-languages/data) Cette base de données contient des lexiques de sentiments pour 81 langues, mais nous utilisons uniquement le lexique de sentiments français.

21

Année universitaire 2020-2021

2.1.3 Evaluation du système : Pour évaluer les performances du traitement du langage naturel NLP, nous avons besoin d'une base de données de commentaires afin que chaque commentaire soit une requête à l'algorithme, cette dernière appliquera un prétraitement au commentaire pour éliminer tous les mots vides et les ponctuations et rechercher chaque mot dans la forme finale du commentaire dans une liste de mots avec une balise, pour définir si le mot a un sens positif ou négatif et en tenant compte de l'existence de négation dans le commentaire Après tout cela, l'algorithme d'évaluation va construire une matrice de confusion afin de calculer les performances de l'algorithme nlp cette matrice a quatre valeurs : ● Vrai positif (TP) : Interprétation : Vous avez prédit positif et c'est vrai. Vous avez prédit qu'une femme est enceinte et elle l'est en réalité. ● Vrai négatif (TN) : Interprétation : Vous avez prédit négatif et c'est vrai. Vous avez prédit qu'un homme n'est pas enceinte et il ne l'est pas en réalité. ● Faux positif : (Erreur de type 1)(FP) : Interprétation : Vous avez prédit positif et c'est faux. Vous avez prédit qu'un homme est enceinte, mais il ne l'est pas en réalité. ● Faux négatif : (Erreur de type 2)(FN) : Interprétation : Vous avez prédit négatif et c'est faux. Vous avez prédit qu'une femme n'est pas enceinte mais elle l'est en réalité.

⇒ Le résultat de l'évaluation est d'environ 60% alors la performance : (TP+TN)/(TP+TN+FP+FN)=0,59...

Critique des performances : Nous pouvons justifier le résultat par de nombreuses limitations dans l'algorithme, comme la complexité de certains commentaires et aussi l'ironie et le sarcasme, les mots et phrases contextuels et les homonymes.

2.2 Analyse des sentiments par le Machine Learning: Après avoir mis en œuvre les quatre algorithmes de classification à l'aide d'une base de données de commentaires, collectée par nous même, et après avoir appliqué le prétraitement sur la base de données et l'avoir divisé en une sous-base de données d'apprentissage et une sous-base de test, et en utilisant CountVectorizer pour transformer les données en nombres afin que chaque commentaire soit représenté par un vecteur à lire par les algorithmes de classification, les résultats étaient différents, les performances des algorithmes change d'un à l'autre. 22

Année universitaire 2020-2021

2.2.1

Logistic Regression :

Figure 6. Le score de précision de Logistic Regression

2.2.2

Random Forest :

Figure 7. Le score de précision de Random Forest

2.2.3

Naïve Bayes :

Figure 8. Le score de précision de Naïve Bayes

23

Année universitaire 2020-2021

2.2.4

Support Vector Machine :

Figure 9. Le score de précision de Support Vector Machine

Critique des performances : D'après ce qui a été montré dans les pages précédentes, l'algorithme le plus performant dans ce cas est l'algorithme de régression logistique, pourquoi ? Tout d'abord, le problème que nous souhaitons résoudre est de classer les commentaires des utilisateurs et de savoir que le commentaire est soit un avis positif soit un avis négatif, c'est un problème avec deux classes et il est assez évident que l'algorithme Naïve de Bayes fonctionne correctement ou puissamment dans des problèmes avec plus de deux classes. Deuxièmement, les données pourraient ne pas permettre un hyperplan de séparation. Dans ce cas, SVM peut utiliser une petite marge, c'est-à-dire un hyperplan qui sépare de nombreux points de données, mais pas tous. Enfin, Random Forest et logistic regression donnent de bonnes performances car elles établissent des relations entre les éléments des classes pour faire une prédiction précise, donc si on considère les classes de notre base de données comme des variables de probabilité on peut dire que les deux variables ont une relation linéaire ou un ajustement linéaire, c'est ce qui peut expliquer les résultats trouvés . On peut dire librement que le manque de données a un impact énorme sur les performances des algorithmes d'apprentissage automatique en général, donc la ressource la plus précieuse en apprentissage automatique ou en intelligence artificielle sont les données, on ne peut pas non plus nier le fait que ces algorithmes fonctionnent très bien s'ils disposaient d'une grande ressource de données et d'informations.

24

Année universitaire 2020-2021

Chapitre 3 : Analyse et Conception

Ce chapitre traite la phase d’analyse et de conception, qui est une étape très importante qui aide à mieux comprendre le travail demandé, en spécifiant les besoins des différents utilisateurs et leurs attentes finaux de notre application. Dans le cadre de notre projet, nous avons adopté UML comme langage de modélisation.

1 Langage de modélisation unifié (UML) : Le Langage de Modélisation Unifié, de l'anglais Unified Modeling Language (UML), est un langage de modélisation graphique à base de pictogrammes conçu pour fournir une méthode normalisée pour visualiser la conception d'un système. Il est couramment utilisé en développement logiciel et en conception orientée objet. UML présente les avantages suivants : ●

● ●



Outil de planification : UML aide à planifier un programme avant que la programmation n'ait lieu. Cela peut aider à réduire les frais généraux pendant la phase de mise en œuvre de tout programme. En plus, il est facile de modifier un diagramme de modèle UML. UML est un langage formel et standardisé : il permet un gain en précision et en stabilité. UML est un support de communication puissant : grâce à sa représentation graphique, il permet d'exprimer visuellement une solution objet, de faciliter la comparaison et l'évolution de la solution. UML 2.0 propose treize types de diagrammes décrivant les concepts particuliers du système d’information. Dans notre cas, les diagrammes jugés les plus importants sont les suivants : 1. Diagramme des cas d’utilisation : Il s'agit d'un diagramme UML utilisé pour donner une vue d'ensemble du comportement fonctionnel d'un système logiciel. Ils sont utiles pour les présentations à la direction ou aux parties prenantes du projet, mais pour le développement, les cas d'utilisation sont plus appropriés. 2. Diagramme de séquence : montre les interactions entre les objets dans une séquence temporelle. Il décrit les objets impliqués dans le scénario et la séquence 25

Année universitaire 2020-2021

des messages échangés entre les objets nécessaires à l'exécution de la fonctionnalité du scénario. 3. Diagramme de classes : il s'agit d'un type de diagramme de structure statique qui décrit la structure d'un système en montrant les classes du système, leurs attributs, les opérations et les relations entre les objets.

2 Analyse : 2.1 Description des acteurs : Dans le cadre de notre projet, les acteurs qui interviennent directement sur l’application sont les suivants : 1.

2.

3.

Le client non inscrit : C’est l’utilisateur qui n’est pas inscrit sur l’application ou qui n’a pas encore s’authentifié, il a la possibilité de consulter les produits et voir les commentaires d’autres clients. Le client inscrit : C’est le client qui peut donner son avis (un seul commentaire) sur les produits dans la section des commentaires, ainsi que modifier ses informations personnelles ou supprimer son compte. Le super-utilisateur : est la seule personne qui peut ajouter des produits ou les supprimer, modifier leurs détails, les mettre dans des catégories convenables, modifier des commentaires et les supprimer.

2.2 Diagramme de cas d’utilisation : Ci-dessous le diagramme de cas d’utilisation de notre application

26

Année universitaire 2020-2021

Figure 10. Diagramme de cas d’utilisation

Description du cas d’utilisation «Consulter les produits» : Tableau 1. Description du cas d’utilisation “Consulter les produits” Titre But

Consulter les produits Le client peut voir tous les produits

Résumé

Le client accède à la page et consulte les produits Client inscrit- Client Non inscrit

Acteurs Descriptions des enchaînements

27

Année universitaire 2020-2021

Les pré-conditions :

Les pré-conditions : Visualiser les produits

Scénario nominal : 1. Ouvrir l'application 2. s’authentifier (Optionnelle) 3. Accéder à la page d'accueil 4. Visualiser les produits Scénario alternatif : 1. Problème de connexion 2. Erreur dans l’application

Description du cas d’utilisation «S’inscrire» : Tableau 2. Description du cas d’utilisation “S’inscrire” S’inscrire

Titre But Résumé

Acteurs Descriptions des enchaînements

Le client peut créer un compte si il veut exprimer son avis sur les produits Le client clique sur le bouton ‘S’inscrire’ . il sera amené à une nouvelle page, il entre ses informations (username, email, password ), si ses informations sont valides, le compte sera créé . Client Non inscrit

Les pré-conditions :

Les post-conditions :

Avoir un compte gmail

Se connecter

Scénario nominal : 1. Ouvrir l'application 2. Cliquer sur s’inscrire 3. Remplir les informations nécessaires 4. Visualiser les produits Scénario alternatif : 1. 2. 3. 4.

Problème de connexion Mot de passe non valide Nom d’utilisateur déjà utilisé Adresse mail non valide

28

Année universitaire 2020-2021

Description du cas d’utilisation «S’authentifier» : Tableau 3. Description du cas d’utilisation “S’authentifier” S’authentifier Le client peut se connecter pour utiliser son compte.

Titre But

Le client clique sur le bouton ‘S’authentifier’ . il sera amené à une nouvelle page, il entre ses informations (username, password ), si ses informations sont valides, il accède à son compte . Client inscrit

Résumé

Acteurs Descriptions des enchaînements Les pré-conditions : Être déjà inscrit – informations nécessaires

Les post-conditions : Remplir

les

Se déconnecter - Ajouter un commentaire, le modifier, le supprimer- Consulter son profil, le modifier Supprimer son compte

Scénario nominal : 1. Ouvrir l'application 2. Cliquer sur se connecter 3. Remplir les informations nécessaires 4. Accéder au compte Scénario alternatif : 1. 2. 3.

Problème de connexion Mot de passe incorrect Nom d’utilisateur incorrect

Description du cas d’utilisation «Voir les avis des autres clients» : Tableau 4. Description du cas d’utilisation “Voir les avis des autres clients” Titre But Résumé

Acteurs Descriptions des enchaînements Les pré-conditions :

Voir les avis des autres clients Le client peut voir les avis des autres qui vont l'aider à décider d'acheter ou non. Le client doit accéder à la page d'accueil et cliquer sur le produit, il va être amené à une page contenant des informations sur ce produit, et les commentaires. Client inscrit- Client non inscrit Les post-conditions : Voir les commentaires et ajouter un s’il s’agit d’un client inscrit. 29

Année universitaire 2020-2021

Scénario nominal : 1. Ouvrir l'application 2. Se connecter (Optionnelle) 3. Choisir un produit 4. Accéder aux commentaires Scénario alternatif : 1. 2.

Problème de connexion Erreurs dans l’application

Description du cas d’utilisation «Commenter sur un produit» : Tableau 5. Description du cas d’utilisation “Commenter sur un produit” Titre

Commenter sur un produit

But

Le client peut commenter sur un produit s’il veut. Le client doit s’authentifier, puis accéder à la page d’accueil et choisir un produit, il va être amené à une page contenant tous les commentaires. Il doit écrire son commentaire, cliquer ‘commenter’ et c’est fait. Client inscrit

Résumé

Acteurs Descriptions des enchaînements Les pré-conditions :

Les post-conditions :

Avoir un compte- S’authentifier – Ne pas avoir déjà publié un commentaire sur ce produit Scénario nominal : 1. Ouvrir l'application 2. S’authentifier 3. Choisir un produit 4. Ajouter un commentaire

Partager un commentaire

Scénario alternatif : 1. Problème de connexion 2. Erreurs dans l’application

30

Année universitaire 2020-2021

Description du cas d’utilisation «Modifier son commentaire» : Tableau 6. Description du cas d’utilisation “Modifier son commentaire” Titre

Modifier son commentaire

But

Le client peut modifier son commentaire s’il veut. Le client doit s’authentifier, puis accéder à la page d’accueil et choisir un produit, il va être amené à une page contenant tous les commentaires. Il doit cliquer sur le bouton ‘Modifier’ , écrire le nouveau commentaire, confirmer son choix, et le commentaire sera modifié. Client inscrit

Résumé

Acteurs Descriptions des enchaînements Les pré-conditions :

Les post-conditions :

Avoir un compte- S’authentifier – Avoir un commentaire déjà publié

Modifier le commentaire

Scénario nominal : 1. Ouvrir l'application 2. S’authentifier 3. Choisir un produit 4. Modifier un commentaire Scénario alternatif : 3. Problème de connexion 4. Erreurs dans l’application 5. Informations incorrectes (lors de l’authentification)

Description du cas d’utilisation «Modifier ses informations personnelles» : Tableau 7. Description du cas d’utilisation “Modifier ses informations personnelles” Titre

Modifier ses informations personnelles

But

Le client peut modifier ses informations personnelles s’il veut. Le client doit s’authentifier, puis accéder à son profil. Il doit cliquer sur le bouton ‘Modifier’ , remplir les champs à nouveau, confirmer son choix, et les informations seront modifiées. Client inscrit

Résumé

Acteurs Descriptions des enchaînements Les pré-conditions :

Les post-conditions : 31

Année universitaire 2020-2021

Avoir un compte- S’authentifier

Modifier le nom d’utilisateur, électronique ou le mot de passe

l’adresse

Scénario nominal : 1. Ouvrir l'application 2. S’authentifier 3. Accéder au profil 4. Modifier les informations Scénario alternatif : 1. 2. 3. 4.

Problème de connexion Erreurs dans l’application Informations incorrectes (lors l’authentification) Les informations sont non valides

de

Description du cas d’utilisation «Supprimer son compte» : Tableau 8. Description du cas d’utilisation “Supprimer son compte” Titre

Supprimer son compte

But

Le client peut supprimer son compte. Le client doit s’authentifier, puis accéder à son profil. Il doit cliquer sur le bouton ‘Supprimer mon compte’ ,donner son mot de passe, confirmer son choix, et le compte sera supprimé. Client inscrit

Résumé

Acteurs Descriptions des enchaînements Les pré-conditions :

Les post-conditions :

Avoir un compte- S’authentifier

Supprimer le compte.

Scénario nominal : 1. Ouvrir l'application 2. S’authentifier 3. Accéder au profil 4. Cliquer sur ‘Supprimer mon compte’ 5.Donner le mot de passe 6. Confirmer Scénario alternatif :

32

Année universitaire 2020-2021

1. 2. 3. 4.

Problème de connexion Erreurs dans l’application Informations incorrectes Le mot de passe est incorrect (lors de la suppression)

Description du cas d’utilisation «Ajouter des produits » : Tableau 9. Description du cas d’utilisation “Ajouter des produits” Titre

Ajouter des produits L’admin/ le super-utilisateur peut ajouter des produits à la base de données Le super-utilisateur doit s’authentifier, puis accéder à la table des produits dans la base de données, cliquer sur ‘Add produit’, remplir les champs et cliquer sur ‘save’. Le super-utilisateur

But Résumé

Acteurs Descriptions des enchaînements Les pré-conditions :

Les post-conditions :

Être un administrateur- S’authentifier

Ajouter et gérer les produits

Scénario nominal : 1. Ouvrir l'application 2. S’authentifier 3. Accéder à la base de données 4. Ajouter un produit Scénario alternatif : 1. Problème de connexion 2. Erreurs dans l’application

Description du cas d’utilisation «Modifier/Supprimer les détails des produits » : Tableau 10. Description du cas d’utilisation “Modifier/Supprimer les détails des produits” Titre But Résumé

Modifier/Supprimer les détails des produits Le super-utilisateur a la possibilité de modifier ou de supprimer des produits si cela est nécessaire. Le super-utilisateur doit s’authentifier. Après avoir choisi le produit, il peut soit modifier les informations du produits, puis cliquer sur ‘save’, ou supprimer directement le produit. 33

Année universitaire 2020-2021

Acteurs

Le super-utilisateur

Descriptions des enchaînements Les pré-conditions :

Les post-conditions :

Être un administrateur- S’authentifier

Gérer les produits déjà existants

Scénario nominal : 1. Ouvrir l'application 2. S’authentifier 3. Accéder à la base de données 4. Modifier/Supprimer les produits Scénario alternatif : 1. 2. 3.

Problème de connexion Erreurs dans l’application Les informations sont non valides (lors de la modification)

Description du cas d’utilisation «Modifier/Supprimer les commentaires des utilisateurs» : Tableau 11. Description du cas d’utilisation “les commentaires des utilisateurs” Titre

Modifier/Supprimer les commentaires

But

Le super-utilisateur a la possibilité de modifier ou de supprimer des commentaires si cela est nécessaire. Le super-utilisateur doit s’authentifier. Il peut soit modifier un commentaire, puis cliquer sur ‘save’, ou supprimer directement le commentaire. Le super-utilisateur

Résumé

Acteurs Descriptions des enchaînements Les pré-conditions :

Les post-conditions :

Être un administrateur- S’authentifier

Gérer les commentaires

Scénario nominal : 1. Ouvrir l'application 2. S’authentifier 3. Accéder à la base de données 4. Modifier/Supprimer les commentaires Scénario alternatif : 1. 2.

Problème de connexion Erreurs dans l’application

34

Année universitaire 2020-2021

2.3 Diagramme de classes : Ci-dessous, le diagramme de classe qui rassemble toutes les classes utilisées dans notre projet :

Figure 11. Diagramme de classes

2.4 Diagramme de séquence : Ci-dessous, le diagramme de séquence qui représente l’interaction entre l’administrateur et la plateforme:

35

Année universitaire 2020-2021

Figure 12. Diagramme de séquence côté administrateur.

36

Année universitaire 2020-2021

Ci-dessous, le diagramme de séquence qui représente l’interaction entre l’utilisateur et la plateforme:

37

Année universitaire 2020-2021

Figure 13. Diagramme de séquence côté utilisateur.

38

Année universitaire 2020-2021

Chapitre 4 : Aspect Technique et mise en oeuvre

Dans ce chapitre, nous allons nous contenter de l’aspect technique du projet en listant les différents outils et méthodes utilisées, que ce soit les langages de programmation côté client (par exemple le Javascript) ou bien côté serveur (on s'intéresse par le framework django), ainsi que la visualisation de l’application.

1 Architecture applicative : L'architecture vise à ce que la conception soit claire et efficace, et qu'il y ait un gain de temps de maintenance et d’évolution de l'application. Dans ce cadre, le Framework Django utilisé s’est orienté vers l’architecture MVC. Ce modèle d'architecture impose la séparation des données, de la présentation et du traitement, résultant en trois parties fondamentales dans l'application finale : le modèle, la vue et le contrôleur.

1.1 Le modèle : Le composant modèle stocke les données et la logique qui leur est associée. Il représente les données transférées entre les composants du contrôleur ou toute autre logique métier associée. Par exemple, un objet contrôleur récupère les informations sur le client dans la base de données. Il manipule les données et les renvoie à la base de données ou les utilise pour renvoyer les mêmes données. Il répond aux demandes d'affichage et répond également aux instructions du contrôleur pour se mettre à jour. C'est également le niveau le plus bas du modèle qui est responsable de la maintenance des données.

1.2 La vue : Une vue est la partie de l'application qui représente la présentation des données. Les vues sont créées par les données collectées à partir des données du modèle. Une vue demande au modèle de fournir des informations afin de renvoyer la présentation de sortie à l'utilisateur. La vue représente également les données des graphiques et des tableaux. Par exemple, une vue client 39

Année universitaire 2020-2021

comprendra tous les composants de l'interface utilisateur, tels que les zones de texte, les listes déroulantes, etc.

1.3 Le contrôleur : Le contrôleur est la partie de l'application qui gère l'interaction avec l'utilisateur. Le contrôleur interprète les entrées de la souris et du clavier de l'utilisateur, et informe le modèle et la vue des changements à effectuer. Un contrôleur envoie des commandes au modèle pour mettre à jour son état (par exemple, sauvegarder un document spécifique). Le contrôleur envoie également des commandes à la vue qui lui est associée pour modifier la présentation de la vue (par exemple, faire défiler un document particulier). La figure ci-dessous présente l'architecture de MVC:

Figure 14. Le modèle MVC

40

Année universitaire 2020-2021

1.4 Les avantages de l’architecture MVC : L’approche MVC apporte de réels avantages : 1. 2. 3. 4. 5. 6.

Processus de développement d'applications Web plus rapide L'application Web MVC supporte la technique asynchrone Offre les vues multiples Idéal pour développer des applications Web de grande taille Le modèle MVC renvoie les données sans avoir besoin de les formater La modification n'affecte jamais l'ensemble du modèle

2 Langages de programmation : Python : Python est un langage de programmation open source interprété côté serveur et non compilé. Créé par Guido van Rossum, il est utilisé pour le développement Web, le développement de jeux vidéo et d'autres logiciels, ainsi que pour les interfaces utilisateur graphiques. Entre autres choses, il a été utilisé dans la création d'Instagram, YouTube et Spotify, et est l'un des langages de programmation officiels de Google."

2.1 Caractéristiques de Python : ● Python utilise une syntaxe élégante, ce qui rend les programmes que vous écrivez plus faciles à lire. ● C'est un langage facile à utiliser qui permet de faire fonctionner facilement votre programme. Cela rend Python idéal pour le développement de prototypes et d'autres tâches de programmation ad hoc, sans compromettre la maintenance. ● Il est fourni avec une vaste bibliothèque standard qui prend en charge de nombreuses tâches de programmation courantes, telles que la connexion à des serveurs Web, la recherche de texte à l'aide d'expressions régulières, la lecture et la modification de fichiers. ● Le mode interactif de Python permet de tester facilement de courts extraits de code. Il existe également un environnement de développement intégré appelé IDLE.

41

Année universitaire 2020-2021

2.2 Applications de Python : Python est utilisé dans de nombreux domaines d'application. En voici un échantillon: ● Développement web (côté serveur): Python offre de nombreux choix pour le développement web : Des frameworks tels que Django et Pyramid, des microframeworks comme Flask et Bottle, et des systèmes de gestion de contenu avancés tels que Plone et django CMS. ● Développement de logiciels: Python est souvent utilisé comme langage de soutien pour les développeurs de logiciels, pour le contrôle et la gestion de la construction, les tests et de nombreuses autres façons: SCons pour le contrôle de la construction, Buildbot et Apache Gump pour la compilation et les tests continus automatisés et Roundup ou Trac pour le suivi des bogues et la gestion de projet.Calcul scientifique et numérique: Python est largement utilisé dans le domaine du calcul scientifique et numérique : - SciPy est une collection de paquets pour les mathématiques, les sciences et l'ingénierie. - Pandas est une bibliothèque d'analyse de données et de modélisation. - IPython est un puissant shell interactif qui permet d'éditer et d'enregistrer facilement une session de travail, et qui prend en charge les visualisations et le calcul parallèle. ● Applications commerciales: Python est également utilisé pour construire des systèmes ERP et de commerce électronique : - Odoo est un logiciel de gestion tout-en-un qui offre une gamme d'applications commerciales formant une suite complète d'applications de gestion d'entreprise. - Tryton est une plateforme d'applications générales de haut niveau à trois niveaux.

2.3 Frameworks Web pour Python: Un framework Web est une collection de paquets ou de modules qui permettent aux développeurs d'écrire des applications Web ou des services sans avoir à gérer les détails de bas niveau tels que les protocoles, les sockets ou la gestion des processus/threads. En général, les frameworks prennent en charge un certain nombre d'activités telles que l'interprétation des requêtes (obtention des paramètres de formulaire, gestion des cookies et des sessions), la production de réponses (présentation des données en HTML ou dans d'autres formats), le stockage persistant des données, etc. Étant donné qu'une application Web non triviale nécessitera un certain nombre d'abstractions différentes, souvent empilées les unes sur les autres, les frameworks qui tentent de fournir une solution complète pour les applications sont souvent connus sous le nom de "full-stack frameworks", car ils tentent de fournir des composants pour chaque couche de la pile. Ce sont les frameworks de haut niveau les plus populaires: Django, TurboGears et web2py. 42

Année universitaire 2020-2021

HTML5 : HTML est l'abréviation de Hyper Text Markup Language, il est le langage de balisage standard pour la création de pages Web. Le HTML décrit la structure d'une page Web et se compose d'une série d'éléments, ces éléments HTML indiquent au navigateur comment afficher le contenu, et ils étiquettent les éléments de contenu tels que "ceci est un titre", "ceci est un paragraphe", "ceci est un lien", etc.

CSS : CSS est l'abréviation de Cascading Style Sheets (feuilles de style en cascade), il décrit la manière dont les éléments HTML doivent être affichés à l'écran, sur papier ou sur d'autres supports. Le CSS permet d'économiser beaucoup de travail. Il peut contrôler la mise en page de plusieurs pages Web en même temps, et les feuilles de style externes sont stockées dans des fichiers CSS

Javascript : JavaScript est un langage de script ou de programmation qui vous permet d'implémenter des fonctionnalités complexes sur des pages Web. Chaque fois qu'une page Web ne se contente pas d'afficher des informations statiques, qu'il s'agisse de mises à jour ponctuelles du contenu, de cartes interactives, de graphiques 2D/3D animés, de juke-boxes vidéo défilants, etc. Il s'agit de la troisième couche du gâteau de technologies Web standard, dont deux (HTML et CSS) ont été mentionnés ci-dessus.

3 Outils de développement : Django: Django est un cadre de développement web python, côté serveur, gratuit et open source, qui permet de créer des applications web plus rapidement et plus facilement. L'objectif premier de Django est de faciliter la création de sites Web complexes, axés sur les bases de données. Le framework met l'accent sur la réutilisabilité et la "pluggabilité" des composants, la réduction du code, le faible couplage, le développement rapide et le principe "ne

43

Année universitaire 2020-2021

vous répétez pas". Python est utilisé partout, même pour les paramètres, les fichiers et les modèles de données. Django fournit également une interface administrative facultative pour la création, la lecture, la mise à jour et la suppression qui est générée dynamiquement par introspection et configurée via des modèles administratifs.

3.1 Principe : Django s'inspire du principe MVC (Expliqué plus haut dans le paragraphe 2. Architecture Applicative ). En plus de l'interface de programmation applicative d'accès aux données, une interface d'administration fonctionnelle est générée depuis le modèle de données. Un système de validation des données entrées par l'utilisateur est également disponible et permet d'afficher des messages d'erreur automatiques. Le Framework comprend également les éléments suivants: ●

Un serveur Web : Le serveur Web doit être capable de générer une réponse http et de l'envoyer au client appelant. En outre, il doit être capable de maintenir des sessions d'utilisateur, de stocker des cookies, des chaînes de requête et d'autres techniques de gestion d'état erronées. ● Un Runtime : Un composant capable de convertir le code du langage de programmation côté serveur en HTML, CSS et javascript côté client. ● Un langage de programmation côté serveur : utilisé pour écrire, compiler et produire les composants côté serveur. Ces composants, une fois déployés dans le serveur web, en passant par le runtime, généreront un code côté client. ● Un système de gestion de base de données facultatif : (SQL ou NOSQL selon le cadre). Django peut être considéré comme une boîte à outils où chaque module peut fonctionner de façon indépendante.

4 Réalisation : Dans cette partie, on donnera un aperçu sur le résultat des différentes étapes de réalisation du projet. Elle présente les principaux écrans de l’application ainsi que leurs fonctionnalités.

44

Année universitaire 2020-2021

4.1 Page d’accueil : 4.1.1 Cas d’utilisateur : La page d'accueil contient plusieurs options : Connexion, Inscription et les produits. Elle contient également une liste des articles qui ont les meilleures évaluations et des articles recommandés.

Figure 15. Page d’accueil de l’application.

● En cliquant sur le bouton "Register", l’utilisateur accède à une nouvelle page où il peut créer un nouveau compte en remplissant les champs suivants :

Figure 16. Page d’inscription sur l’application.

45

Année universitaire 2020-2021

● Si le nom d'utilisateur n'est pas valide, ou si les deux mots de passe ne sont pas identiques, un message d'erreur s'affiche :

Figure 17. Cas d’un nom d’utilisateur pas valide sur la page d’inscription. ● Si un utilisateur avec le même nom d'utilisateur existe déjà dans la base de données, un autre message d'erreur est affiché :

Figure 18. Cas de saisie d’un nom d’utilisateur existant dans la base de données sur la page d’inscription. ● Si tous les champs sont remplis correctement, le compte sera créé et un formulaire de connexion s'affiche :

Figure 18. Formulaire d’authentification.

46

Année universitaire 2020-2021

● Si l’utilisateur a oublié son mot de passe, il peut cliquer sur « Forgot password? » ce qui l'amènera à une autre page. Il peut alors entrer son adresse, et un email sera envoyé à son compte :

Figure 19. Réinitialisation du mot de passe. L'utilisateur peut alors suivre le lien et réinitialiser son mot de passe.

Figure 20. Confirmation d’envoie d’un nouveau mot de passe à l’adresse email. Maintenant que l'utilisateur a le mot de passe correct, il peut se connecter sans problème. ● S’il souhaite visiter son profil, il lui suffit de cliquer sur le bouton portant son nom dans la barre de navigation :

Figure 22. Boutons pour se déconnecter ou accéder au profil de l'utilisateur

Cela l'amènera à son profil, et il pourra alors modifier ses informations, ajouter une photo de profil ou supprimer son compte.

47

Année universitaire 2020-2021

Figure 23. Espace de l’utilisateur.

Supposons qu'un produit l'intéresse dans la page d'accueil. En cliquant, il sera redirigé vers une page contenant des informations sur le produit (nom, prix, type, description).

Figure 24. Les détails d’un produit.

48

Année universitaire 2020-2021

Ainsi que les commentaires des autres utilisateurs :

Figure 25. Les commentaires des autres utilisateurs sur un produit.

Et puisqu'il est connecté, il peut aussi laisser un commentaire, sinon, il doit se connecter:

Figure 26. L’espace des commentaires.

Le commentaire est maintenant publié, l'utilisateur peut le modifier, mais seul l'administrateur peut le supprimer.

Figure 26. Un commentaire sur l’un des produits.

Si l'utilisateur clique sur "Products", il sera dirigé vers une page où tous les produits sont classés en fonction des commentaires. Cela signifie que les produits ayant reçu le plus d'avis positifs sont affichés en haut de la liste. Il y a également une section montrant à l'utilisateur les cinq meilleurs produits. 49

Année universitaire 2020-2021

Figure 27. La page des produits.

En cliquant sur "Logout", l'utilisateur peut se déconnecter.

Figure 28. Message de déconnection.

4.1.2 Cas d’administrateur : Si l'utilisateur est un administrateur, il peut accéder à un formulaire de login différent de celui utilisé par les autres utilisateurs :

Figure 29. Formulaire de connexion d’un administrateur.

L'administrateur peut maintenant accéder aux produits, aux commentaires ou aux profils. Il peut les modifier ou les supprimer s'il le souhaite : 50

Année universitaire 2020-2021

Figure 30. Les tables des utilisateurs, commentaires, produits et profiles.

En cliquant sur les boutons de la barre de navigation, il peut aller à la page d'accueil, changer son mot de passe ou se déconnecter.

Figure 31. La page de déconnexion de l’administrateur.

51

Année universitaire 2020-2021

Conclusion générale Le but de ce projet était de créer un système de commerce électronique qui analyse les commentaires des clients et les prend en considération pour classer ses produits. Nous avons spécifiquement choisi ce projet car nous savons combien l'écoute sociale est importante pour le succès d'une marque. Nous savons également que pour que le système soit efficace, il doit être rapide, pas coûteux et aussi performant que possible. Et c'est ce que nous avons essayé de réaliser pendant les deux mois où nous avons travaillé sur cette application web. Nous avons beaucoup appris au cours de ce processus. Le traitement du langage naturel, l'apprentissage automatique, l'analyse des sentiments et le commerce électronique sont tous des domaines que nous avons beaucoup étudiés grâce à cette expérience. C'était une excellente occasion de mettre en pratique ce que nous avions appris cette année. Nous avons également découvert de nouvelles technologies qui nous seront certainement utiles à l'avenir. Django, par exemple, qui est un framework basé sur Python que nous n'avions jamais utilisé auparavant, a été utilisé pour construire notre application web. Pour analyser les commentaires, nous avons travaillé avec plusieurs algorithmes d'apprentissage automatique, comme Naive Bayes et Vector machine et d'autres, puis nous avons choisi celui qui nous a donné les meilleurs résultats : Logistic Regression. Bien sûr, c'était parfois difficile, mais c'était surtout intéressant pour nous. Le fait de pouvoir travailler en équipe a également facilité le travail tout en nous faisant sortir de notre zone de confort. Bien entendu, ce produit est toujours en cours de réalisation. L’objectif est maintenant de poursuivre notre travail sur l'apprentissage automatique, car il y a beaucoup à apprendre. Ainsi, un jour, nous serons en mesure de développer un modèle qui donnera des résultats encore meilleurs.

52

Année universitaire 2020-2021

Références bibliographiques : [ 1 ] Big Data, Principles and Paradigms (2016) [ 2 ] Zinkan, George (2011). Recherche en publicité : L'Internet, le comportement des consommateurs et la stratégie. Chicago : American Marketing Association. p. 33.

Références webographiques : https://fr.wikipedia.org/wiki/Python_(langage)#Liste_des_principaux_frameworks https://wiki.python.org/moin/BeginnersGuide/Overview https://www.python.org/about/apps/ https://docs.djangoproject.com/en/3.2/misc/design-philosophies/ https://en.wikipedia.org/wiki/Django_(web_framework) Natural Language Toolkit — NLTK 3.6.2 documentation Sentiment Lexicons for 81 Languages | Kaggle spaCy · Industrial-strength Natural Language Processing in Python Home | UNCTAD Home (devopedia.org) https://www.fstm.ac.ma/ https://scikit-learn.org/stable/modules/naive_bayes.html

53

Année universitaire 2020-2021