MAJ V4.2.2

changement du seuil minimal pour ercgercher un node texttuel.
This commit is contained in:
pablo rodriguez 2023-02-03 19:13:43 +01:00
parent ae9a8e4a9a
commit e43a055702
4 changed files with 13 additions and 31 deletions

View File

@ -12,6 +12,6 @@
<classpathentry kind="lib" path="C:/Users/pabr6/git/analyseWriter/MEPTL/miglayout15-swing.jar"/>
<classpathentry kind="lib" path="jgoodies-forms-1.8.0.jar" sourcepath="jgoodies-forms-1.8.0-sources.jar"/>
<classpathentry kind="lib" path="C:/Users/pabr6/eclipse-workspace/Exportation documentation analyseWriter/plugins/documentation.analyseWriter_1.0.0.202212032022.jar"/>
<classpathentry kind="lib" path="C:/Users/pabr6/eclipse-workspace/cXML.jar"/>
<classpathentry kind="lib" path="C:/Users/pabr6/eclipse-workspace/cXML.jar" sourcepath="/cXML"/>
<classpathentry kind="output" path="bin"/>
</classpath>

Binary file not shown.

View File

@ -237,16 +237,22 @@ public class rechercherUnNodeStudent {
String valueAttribut = evaluation.withoutCodeAndPointPourRechercheContenuExact(nodSujet.retourneLesContenusEnfants(""));
if(valueAttribut.contains("LETTRE[text:line-break]DE DESISTEMENT")) {
int stop = 0;
}
Pattern p = Pattern.compile("^text:p$|^text:h$|^text:span$|^text:list|^text:line-break$|^text:note$|^text:tab$|"
+ "^text:index-body$|^text:index-title$|^text:index-title-template^$|^text:table-of-content$"); //le node qui peuvent rechercher par le contenu textuel
Matcher m = p.matcher(nameNode);
if(m.find()) {
ArrayList<node> tousLesfreres = new ArrayList<node>();
if(nodSujet.getAttributs().get("isDoublon")==null) {
//méthode texte rigoureusement exact
if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNameNodeByFindContentExactly(nod2Student.getNodes(), valueAttribut, nameNode);
if(nod2Student!=null) if(nodStudent==null) {
ArrayList<node> tousLesfreres = nod2Student.retourneTousLesFreres(); //Retourne tous les frère d'une même page
tousLesfreres = nod2Student.retourneTousLesFreres(); //Retourne tous les frère d'une même page
for(int i = 0 ; i < tousLesfreres.size();i++) {
if(nodStudent==null) {
if(tousLesfreres.get(i)!=null) nodStudent = a.retourneFirstNameNodeByFindContentExactly(tousLesfreres.get(i).getNodes(), valueAttribut, nameNode);
@ -254,32 +260,11 @@ public class rechercherUnNodeStudent {
}
}
// if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNameNodeByFindContentExactly(nod1Student.getNodes(), valueAttribut, nameNode);
// if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNameNodeByFindContentExactly(nod0Student.getNodes(), valueAttribut, nameNode);
if(nodStudent!=null) return nodStudent;
//méthode sans tenir compte de la casse et en supprimant tous les espaces
// if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod2Student.getNodes(), valueAttribut, nameNode);
// if(nod2Student!=null) if(nodStudent==null) {
// ArrayList<node> tousLesfreres = nod2Student.retourneTousLesFreres();
// tousLesfreres.remove(nod2Student);
// for(int i = 0 ; i < tousLesfreres.size();i++) {
// if(nod2Student!=null) {
// if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(tousLesfreres.get(i).getNodes(), valueAttribut, nameNode);
// }
// }
// }
// if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod1Student.getNodes(), valueAttribut, nameNode);
// if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod0Student.getNodes(), valueAttribut, nameNode);
// if(nodStudent!=null) return nodStudent;
//méthode par le calcul de la distance de levenshtein
Run.setStockLaDerniereValeurSim(commandes.tolerance_text);
// if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(nod2Student.getNodes(), valueAttribut, nameNode,null);
Run.setStockLaDerniereValeurSim(0.21);
if(nod2Student!=null) if(nodStudent==null) {
ArrayList<node> tousLesfreres = nod2Student.retourneTousLesFreres();
node stockNodeTrouveMeilleurVoisin = null;
for(int i = 0 ; i < tousLesfreres.size();i++) {
if(tousLesfreres.get(i)!=null) {
@ -291,9 +276,6 @@ public class rechercherUnNodeStudent {
}
if(stockNodeTrouveMeilleurVoisin!=null) nodStudent=stockNodeTrouveMeilleurVoisin;
}
// 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 {
//Recherche le doublon
@ -307,7 +289,7 @@ public class rechercherUnNodeStudent {
/**
* Recherche par le contenu par le plus proche voisin. Englobe les contenus des nodes enfants.</br>
* La distance maximale est déterminé par commandes.tolerance_text.</br>
* La distance maximale est déterminé par la valeur de sim.</br>
* @param nameNode
* @param nodSujet
* @param nod0Student
@ -320,7 +302,7 @@ public class rechercherUnNodeStudent {
private static node findNodeParContenuPlusProcheVoisinSim(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a , double sim) {
node nodStudent = null;
if(!nodSujet.retourneLesContenusEnfants("").isEmpty()) {
Run.setStockLaDerniereValeurSim(commandes.tolerance_text);
Run.setStockLaDerniereValeurSim(sim);
String valueAttribut = evaluation.withoutCodeAndPointPourRechercheContenuExact(nodSujet.retourneLesContenusEnfants(""));
if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(nod2Student.getNodes(), valueAttribut, nodSujet.getNomElt(),null);
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneLeNodeByContentPlusProche(nod1Student.getNodes(), valueAttribut, nodSujet.getNomElt(),null);