From a36fa21f25d9a917776e769e4aacc1e24b23bdd5 Mon Sep 17 00:00:00 2001 From: pablo rodriguez <58742538+1-pablo-rodriguez@users.noreply.github.com> Date: Mon, 9 Jan 2023 19:11:58 +0100 Subject: [PATCH] =?UTF-8?q?MAJ=204.4.2=20-=20R=C3=A9glage=20du=20coef=20de?= =?UTF-8?q?=20similitude=20minimale=20pour=20la=20recherche=20d'un=20parag?= =?UTF-8?q?raphe=20par=20son=20contenu.=20Nouveau=20coef=20minimal=200.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .classpath | 2 +- bin/MEPTL/rechercherUnNodeStudent.class | Bin 16647 -> 15873 bytes bin/evaluer/evaluation.class | Bin 18163 -> 18163 bytes bin/fenetres/attributs.class | Bin 11397 -> 11397 bytes .../create_act/actNewFichierAnalyse.class | Bin 8036 -> 8141 bytes bin/list/listeDesNodesAllContent.class | Bin 1148 -> 1549 bytes src/MEPTL/rechercherUnNodeStudent.java | 44 ++++-------------- src/evaluer/evaluation.java | 6 +-- src/fenetres/attributs.java | 2 +- .../create_act/actNewFichierAnalyse.java | 4 +- src/list/listeDesNodesAllContent.java | 42 +++++++++-------- 11 files changed, 40 insertions(+), 60 deletions(-) diff --git a/.classpath b/.classpath index 4b5675b..148593c 100644 --- a/.classpath +++ b/.classpath @@ -12,6 +12,6 @@ - + diff --git a/bin/MEPTL/rechercherUnNodeStudent.class b/bin/MEPTL/rechercherUnNodeStudent.class index 5e2b12ba03c6edb2f65a0f9b2f6bac6821f6a90b..cdd43df04e10dfcb6b32fcca6a70de264c37b97a 100644 GIT binary patch delta 6114 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 delta 16 XcmZpTY>nJ7foHOZpwH$zJS*h^I(P=8 diff --git a/bin/fenetres/create_act/actNewFichierAnalyse.class b/bin/fenetres/create_act/actNewFichierAnalyse.class index 9ecd867124f3701a7a79750d9917a4d83673af83..9529ecf616d457f22290a91c50468f053c602f2a 100644 GIT binary patch delta 118 zcmaE2ch+9u)W2Q(7#J9A7&o&sFflS{Og_l0vC-m!plotnNoqxjRe?$kgpmPb6c;4s zZI%?8!pzLUxNb6=P}JtNqRJeMYd2q%En-w$4>XL4aRcK_ki79h1W^A^S gD`He!3slO)xQ=l>kmh1wWN-u0K)|>GNU(tT05nJwlmGw# diff --git a/bin/list/listeDesNodesAllContent.class b/bin/list/listeDesNodesAllContent.class index 0c40347587100f5a0c6ef05b3ad3701609b1e260..36638492620872dad77866c839ff61c21381c54a 100644 GIT binary patch literal 1549 zcmaJ>U2GIp6#j0vWvAP1foW-NDFrIEU6`^ITZOiurTkdkmc#-99!zGpLpyYKW|_S! z^5BaxO*BT0L1Ks@VvIv{F{q_l6Px;j8hPT$Ct{*T!=oe^HPQIZ-J-=BXLj%Ropa`% zpL@@}U;p{h9DsfdM^Prw?AUpk34GM<7Uz^-SOo9 z^l>XA1(x;Ot}S;8L^=|O1j+|FErtjxC9Fw50wohdzP0y(lMvnvPWF@Ng>WGHPGqXbdY+8-*@V`L{ZbI;^5%+>#?+ zc8|lH>pBvte<~T3zU_|p#n6DpDDJwW%91UPCaf0FCd~XqSf46(NW&U|YH2+od()mb znKk{%(8t<1)?qyt#yU|j9oDp}V^OfuvN2T+cQcW^JmpxuW7aXV;K)uTwQ6W%VI_++ z)6{x74ecyJ#R?ZlL*llW&zY`2>COFK7AEw(=U10#zlG8Z~sW zFy)xBG~COXO3HZdm@RG3HJ#2-p`nL0DHF4~pBr1^=D5|F@d_?K*v{q1OTUnj1>efi zpn*G9w*R1p9qf#f<^k@Znwc-C4$?5dj9k?qy`?~d0!^h9bEa>O`(|$9juQ3=#FPtZ z%dnv$+7037jkE5DWC2Fvo8cr@dNoRB_KHNBi z6{$@}hG$U!Hf8=%8~mnyPdtD5!1GhYiyyC<3+37QrkhuZSLR!`pCn$JZ#n%t@%pFH zsW9@5&!(p?5O00n8u^O8#1}t3`U$c6>g?qVvGIp9&++_=wwqs`dy3e_lzt@cKzI5D z;!wpm`@SU}O#GY46P<+2dCQ@SDZ5R<{7k{#jk-7hTf|9F9B{D`Ub_n3vk2G z?@@d%z;#3KQ2bJWYlhBBIhXv3p&N=%2beYV&59QTTr~78ia#CTyrFMZ{Mi668+y0m z#{xWK==Uk^26)oYw<-QufD?w^tN7snmZA46zAL~HL*J=*cYt9-e^Bu)0R{|xm*QIk z^cebX#cKj2%8UPgBgLg}d6DZJLAdHiQO~i4JHAr9$gAij)QZ!n6K8k}y@Gmi77gN6 zUNh&=C|*O8cpc5+4PGU0qD5T5TJaXvi6SqMchD*>@sfBC8^koPgc-D}9;#=juurfT m`xvJ}ypM-4#4dW6QWx6)KrxC2{;HNfV(G()k8olcQhx!l8Hi;7 delta 681 zcmY+C%}*0S7{;HsA7NZ7lqwaddoz)2wWpr zT7A?t?dYbmFpN?UMhN*m`9W5j(rr|?wePr%9Ij*Z)0!^i|R@Pv~{SR$ckEs868Gd&dcpUP&Z@3ZegE zwav@67rN}N5>i{Q1r`Z|v1)tnj-wsVmCZ^LcbB(}rMlctq$6^kGxgv>d2c0_`0LtPrws^vPN3tWB#(@c=rv zy2x*q3&k#mPLa)Y%7rn569y*@-ZVI4a4x|#CvavI7U6A!cMP@{3@>$Y@51~KJ~W0} zV#std9sc1oES_ItfagABQ9vG7P{LKrU=WKa@^cx&I^WwXjNlzByZjacjN%i57`U>e^ri(ZZ?CO5&2kGaa?E1uvf2+v}z{~Y-q3|s$wtUhNog%^JS1#Oqd diff --git a/src/MEPTL/rechercherUnNodeStudent.java b/src/MEPTL/rechercherUnNodeStudent.java index 2a7467d..d8b1e81 100644 --- a/src/MEPTL/rechercherUnNodeStudent.java +++ b/src/MEPTL/rechercherUnNodeStudent.java @@ -2,6 +2,7 @@ package MEPTL; import java.util.ArrayList; +import java.util.Enumeration; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -34,6 +35,7 @@ public class rechercherUnNodeStudent { node nodStudent =null; + //************************************************************************************************ //** Recherche le node par le contenu exact du node en intégrant les contenus des nodes enfants ** @@ -42,7 +44,7 @@ public class rechercherUnNodeStudent { if(nodSujet.getAttributs().get("recherche_contenu_exact")!=null){ if(nodSujet.getAttributs().get("recherche_contenu_exact").contentEquals("true")) { nodStudent = findNodeParContenuEXACT(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a); - if(nodStudent!=null) return nodStudent; + return nodStudent; } } @@ -53,19 +55,11 @@ public class rechercherUnNodeStudent { if(nodSujet.getAttributs().get("recherche_contenu_plus_proche_voisin")!=null && nodSujet.retourneLesContenusEnfants("").length()>2){ if(nodSujet.getAttributs().get("recherche_contenu_plus_proche_voisin").equals("true")){ nodStudent = findNodeParContenuPlusProcheVoisin(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a); - if(nodStudent != null) { -// System.out.println("A trouvé le node "+ nameNode + " par le plus proche voisin avec le contenu =" + nodSujet.retourneLesContenusEnfants("")); - return nodStudent; - }else { -// System.out.println("N'a pas trouvé le node "+ nameNode + " par le plus proche voisin avec le contenu =" + nodSujet.retourneLesContenusEnfants("")); - } + return nodStudent; } } - - - //*********************************** //** Recherche le node par l'index ** //*********************************** @@ -75,7 +69,7 @@ public class rechercherUnNodeStudent { return nodStudent; } } - + //********************************************************************************************************** @@ -88,8 +82,7 @@ public class rechercherUnNodeStudent { if(nodStudent!=null) return nodStudent; } - - + //***************************************************************** //** Recherche le node text:p par les différents contenu du node ** @@ -278,15 +271,15 @@ public class rechercherUnNodeStudent { if(nodStudent!=null) return nodStudent; //méthode par le calcul de la distance de levenshtein - if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(nod2Student.getNodes(), valueAttribut, nameNode,0.75,null); + if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(nod2Student.getNodes(), valueAttribut, nameNode,0.1,null); if(nod2Student!=null) if(nodStudent==null) { ArrayList tousLesfreres = nod2Student.retourneTousLesFreres(); for(int i = 0 ; i < tousLesfreres.size();i++) { if(tousLesfreres.get(i)!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(tousLesfreres.get(i).getNodes(), nameNode,valueAttribut,0.75,null); } } - if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(nod1Student.getNodes(), valueAttribut, nameNode,0.75,null); - if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(nod0Student.getNodes(), valueAttribut, nameNode,0.75,null); + if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(nod1Student.getNodes(), valueAttribut, nameNode,0.1,null); + if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(nod0Student.getNodes(), valueAttribut, nameNode,0.1,null); }else { @@ -698,13 +691,8 @@ public class rechercherUnNodeStudent { } - - - /** - * Recherche le node style:tab-stop par style:position.
- * Un tolérance de 0.05 est appliquée sur la valeur de la position.
- * On peut utiliser les intervalles dans la valeur de l'attribut style:position.
+ * Recherche le node style:position pour les stop de tabulation.
* @param nameNode * @param nodSujet * @param nod0Student @@ -726,10 +714,6 @@ public class rechercherUnNodeStudent { if(m3.find()) { valueAttribut = (valueAttribut.substring(m3.start(), m3.end())); }else { - System.out.println("Tolérance par défaut du tab-stop"); - System.out.println("La valeur du tab-stop du sujet est =" + valueAttribut); - System.out.println("Problème de pattern"); - System.out.println("no match avec la valeur du tab-stop du sujet."); JOptionPane.showMessageDialog(null, "Le fichier d'analyse possède une erreur dans la valeur du tab-stop." +"\r\nLa valeur est " + valueAttribut+ "\r\nProblème de pattern.","Erreur",JOptionPane.ERROR_MESSAGE); @@ -739,8 +723,6 @@ public class rechercherUnNodeStudent { valueAttribut = String.valueOf(evaluation.TraitementIntervaleRetourneValeurMaximale(valueAttribut) - tolerance); } }else { - System.out.println("Erreur avec la valeur du tab-stop du sujet."); - System.out.println("Valeur du tab-stop du sujet ="+valueAttribut); JOptionPane.showMessageDialog(null, "Le fichier d'analyse possède une erreur dans la valeur du tab-stop." +"\r\nLa valeur est " + valueAttribut,"Erreur",JOptionPane.ERROR_MESSAGE); } @@ -750,9 +732,6 @@ public class rechercherUnNodeStudent { try { ValeurSujet = Double.valueOf(valueAttribut); }catch (Exception e) { - System.out.println("La valeur du tab-stop du sujet est =" + valueAttribut); - System.out.println("Problème de cast en type double"); - System.out.println("Valeur tab-stop="+ValeurSujet); JOptionPane.showMessageDialog(null, "Le fichier d'analyse possède une erreur dans la valeur du tab-stop." +"\r\nLa valeur est " + valueAttribut+ "\r\nImpossible de convertir la valeur en type Double.", "Erreur",JOptionPane.ERROR_MESSAGE); @@ -771,9 +750,6 @@ public class rechercherUnNodeStudent { if(m3.find()) { valueAttributStudent = (valueAttributStudent.substring(m3.start(), m3.end())); }else { - System.out.println("La valeur du tab-stop du student est =" + valueAttributStudent); - System.out.println("Problème de pattern"); - System.out.println("no match avec la valeur du tab-stop du student."); JOptionPane.showMessageDialog(null, "Le fichier de l'étudiant possède une erreur dans la valeur du tab-stop." +"\r\nLa valeur est " + valueAttribut+ "\r\nProblème de pattern.","Erreur",JOptionPane.ERROR_MESSAGE); diff --git a/src/evaluer/evaluation.java b/src/evaluer/evaluation.java index d564e21..61d4ae1 100644 --- a/src/evaluer/evaluation.java +++ b/src/evaluer/evaluation.java @@ -884,8 +884,8 @@ public class evaluation { /** * Compare deux chaînes de caractères avec un seuil de similitude (79% par défaut).
- * Lorsque les deux chaînes de caractères partages 79% des caractères comparés par groupe de 2 ou 3 ou 4. Alors retourne TRUE.
- * Lorsque les deux chaînes de caractères partages moins de 79% des caractères comparés par groupe de 2 ou 3 ou 4. Alors retourne FALSE.
+ * Lorsque les deux chaînes de caractères partages 90% des caractères comparés par groupe de 2 ou 3 ou 4. Alors retourne TRUE.
+ * Lorsque les deux chaînes de caractères partages moins de 90% des caractères comparés par groupe de 2 ou 3 ou 4. Alors retourne FALSE.
* Les Chaînes de caractères doivent avoir au moins 6 caractères, après néttoyage du texte avec la méthode NetTexte().
* Sinon le seuil de tolérance est de 99.99%.
*
    @@ -900,7 +900,7 @@ public class evaluation { * @return TRUE ou FALSE en fonction de la comparaison et du seuil de tolérance. */ private static boolean similitudeString(String A, String Modele, Double tolerance_text) { - if(tolerance_text==null) tolerance_text = 0.79 ; + if(tolerance_text==null) tolerance_text = 0.9 ; Modele = NetTexte(Modele); A = NetTexte(A); diff --git a/src/fenetres/attributs.java b/src/fenetres/attributs.java index 4290d3e..45c2567 100644 --- a/src/fenetres/attributs.java +++ b/src/fenetres/attributs.java @@ -121,7 +121,7 @@ public class attributs extends JFrame { panelDroite.add(btnIntervalle); JButton btnTextClean = new JButton("Text clean"); - btnTextClean.setToolTipText("Texte nettoyé de tous les caractères spéciaux, chiffres et ignore la casse (équivalent à allContent=\"environ\").
    Cette fonction ne peut pas être combinée avec les autres fonctions ci-dessous.
    Ce n'est pas un opérateur OU contrairement à l'opérateur ↕.
    La tolérance de texte (79% de similitude avec le texte de la consigne) paramètre dans les setting. (exemple : ¢‽2) "); + btnTextClean.setToolTipText("Texte nettoyé de tous les caractères spéciaux, chiffres et ignore la casse (équivalent à allContent=\"environ\").
    Cette fonction ne peut pas être combinée avec les autres fonctions ci-dessous.
    Ce n'est pas un opérateur OU contrairement à l'opérateur ↕.
    La tolérance de texte (90% de similitude avec le texte de la consigne) paramètre dans les setting. (exemple : ¢‽2) "); btnTextClean.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { diff --git a/src/fenetres/create_act/actNewFichierAnalyse.java b/src/fenetres/create_act/actNewFichierAnalyse.java index 65b8366..b11d0ae 100644 --- a/src/fenetres/create_act/actNewFichierAnalyse.java +++ b/src/fenetres/create_act/actNewFichierAnalyse.java @@ -148,7 +148,7 @@ public class actNewFichierAnalyse extends AbstractAction{ Enumeration pages = Collections.enumeration(nod.getNodes()); while(pages.hasMoreElements()) { node nodLaPage = pages.nextElement(); - Pattern p = Pattern.compile("^text:p$|^text:h$|^text:list$|^text:list-item$|^text:line-break$|^text:span$|^text:tab$"); //le node qui peuvent rechercher par le contenu textuel + Pattern p = Pattern.compile("^text:p$|^text:h$|^text:span$|^text:list$|^text:list-item$|^text:line-break$|^text:span$|^text:tab$"); //le node qui peuvent rechercher par le contenu textuel ArrayList listTextesInPage = new ArrayList(); for(int i = 0 ; i < nodLaPage.getNodes().size();i++) { Matcher m = p.matcher(nodLaPage.getNodes().get(i).getNomElt()); @@ -173,7 +173,7 @@ public class actNewFichierAnalyse extends AbstractAction{ Enumeration pages = Collections.enumeration(nod.getNodes()); while(pages.hasMoreElements()) { node nodLaPage = pages.nextElement(); - Pattern p = Pattern.compile("^text:p$|^text:h$|^text:list$|^text:list-item$|^text:line-break$|^text:span$|^text:tab$"); //le node qui peuvent rechercher par le contenu textuel + Pattern p = Pattern.compile("^text:p$|^text:h$|^text:span$|^text:list$|^text:list-item$|^text:line-break$|^text:span$|^text:tab$"); //le node qui peuvent rechercher par le contenu textuel ArrayList listTextesInPage = new ArrayList(); for(int i = 0 ; i < nodLaPage.getNodes().size();i++) { Matcher m = p.matcher(nodLaPage.getNodes().get(i).getNomElt()); diff --git a/src/list/listeDesNodesAllContent.java b/src/list/listeDesNodesAllContent.java index 955218b..9cb7695 100644 --- a/src/list/listeDesNodesAllContent.java +++ b/src/list/listeDesNodesAllContent.java @@ -14,29 +14,33 @@ public class listeDesNodesAllContent { String nameNode = nod.getNomElt(); + switch (nameNode) { + case "text:p": return true; + case "text:span": return true; + case "text:list": return true; + case "text:tab":return true; + case "text:title":return true; + case "text:subject":return true; + case "page":return true; + case "text:time":return true; + case "structurepage":return true; - if(nameNode.equals("text:title")) return true; - if(nameNode.equals("text:subject")) return true; - if(nameNode.equals("page")) return true; - if(nameNode.equals("text:date")) return true; - if(nameNode.equals("text:time")) return true; + case "number:text":return false; + case "text:page-count":return false; + case "OU":return false; + case "text:conditional-text":return false; + case "text:bookmark":return false; + case "style:tab-stop":return false; + case "style:text-properties":return false; + case "style:paragraph-properties":return false; + case "style:style":return false; + case "style:default-style\"":return false; - if(nameNode.equals("structurepage")) return true; - if(nameNode.equals("number:text")) return false; - if(nameNode.equals("text:page-number")) return false; - if(nameNode.equals("text:page-count")) return false; - if(nameNode.equals("OU")) return false; - if(nameNode.equals("text:conditional-text")) return false; - if(nameNode.contains("text:bookmark")) return false; - if(nameNode.contains("text:bookmark")) return false; - if(nameNode.equals("style:tab-stop")) return false; + default: return true; + } -// if(nod.retourneLesContenusEnfants("").length()<=0) return false; - - if(nameNode.contains("text:")) return true; - - return true; + }