From bbf4a525da6da3eb553005086176416ce56a68aa Mon Sep 17 00:00:00 2001 From: Qpelu Date: Thu, 3 Apr 2025 09:30:20 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20l'analyse=20d'un=20avis.=20Il=20re?= =?UTF-8?q?ste=20=C3=A0=20revoir=20le=20programme=20de=20l'interface=20de?= =?UTF-8?q?=20mani=C3=A8re=20=C3=A0=20utiliser=20les=20classes=20aui=20exi?= =?UTF-8?q?stent=20d=C3=A9ja=20pour=20ne=20pas=20avoir=20un=20gros=20tas?= =?UTF-8?q?=20de=20code=20dans=20"inter"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Main/Avis.java | 47 +++++++++++++++++++++----------------- src/Main/Dictionnaire.java | 6 ++--- src/Main/Main.java | 4 ++++ 3 files changed, 33 insertions(+), 24 deletions(-) diff --git a/src/Main/Avis.java b/src/Main/Avis.java index 45afd1c..211c77a 100644 --- a/src/Main/Avis.java +++ b/src/Main/Avis.java @@ -6,59 +6,64 @@ public class Avis { private int film; private String url; - - public Avis(int f,String u, String com, int pos ) { + public Avis(int f, String u, String com, int pos) { commentaire = com; positif = pos; film = f; - url =u; + url = u; } - + public static int Analyse(Avis a, Dictionnaire dico) { + String[] motsCommentaire = a.getCommentaire().split("\\W+"); + int total = 0; + + for (String m : motsCommentaire) { + m = m.toLowerCase(); + m = Dictionnaire.normaliserMot(m); + + if (Dictionnaire.isStopWord(m)) continue; + if (!dico.getDico().containsKey(m)) continue; + + total += dico.getDico().get(m).getSentiment(); + } + + return total; + } + + public String getCommentaire() { return commentaire; } - public int getPositif() { return positif; } - public int getFilm() { return film; } - public void setCommentaire(String commentaire) { this.commentaire = commentaire; } - public void setPositif(int positif) { this.positif = positif; } - public void setFilm(int film) { this.film = film; } - - public String toString() { return "Avis{commentaire='" + commentaire + "', positif=" + positif + ", film=" + film + "}"; } + public String getUrl() { + return url; + } - public String getUrl() { - return url; - } - - - public void setUrl(String url) { - this.url = url; - } + public void setUrl(String url) { + this.url = url; + } } - - diff --git a/src/Main/Dictionnaire.java b/src/Main/Dictionnaire.java index 35f82f0..9ace0f6 100644 --- a/src/Main/Dictionnaire.java +++ b/src/Main/Dictionnaire.java @@ -44,7 +44,7 @@ public class Dictionnaire { } } - private boolean isStopWord(String mot) { + public static boolean isStopWord(String mot) { for (String stopword : STOPWORDS) { if (mot.equals(stopword)) { return true; @@ -53,7 +53,7 @@ public class Dictionnaire { return false; } - private String normaliserMot(String mot) { + static String normaliserMot(String mot) { String motSansAccents = Normalizer.normalize(mot, Normalizer.Form.NFD); motSansAccents = motSansAccents.replaceAll("[^\\p{ASCII}]", ""); return motSansAccents; @@ -71,7 +71,7 @@ public class Dictionnaire { } } - public Map getMots() { + public Map getDico() { return dico; } } diff --git a/src/Main/Main.java b/src/Main/Main.java index d37f5b2..5b00d4d 100644 --- a/src/Main/Main.java +++ b/src/Main/Main.java @@ -10,6 +10,10 @@ public class Main { Dictionnaire dictionnaire = new Dictionnaire(); + + Avis a = new Avis(0, "szzn", "salut je suis un gros con", 0); + + Avis.Analyse(a, dictionnaire); dictionnaire.apprentissageSentiment(listeAvis.getListeAvis());