Test.java 4.46 KB
import LIA_topic_seg.*;
import java.io.*;
import java.util.*;

/**
 * Cet exemple recense la plupart des possibilités pour une utilisation minimale de l'application
 * l'exécution directe applique les paramètres par défaut.
 *
 */
class Test
{
  public static void main(String args[])
  {
  	try
  	{
  		//création d'une configuration avec les paramètres par défaut
  		DefaultConfig c = new DefaultConfig();
  		
  		//  	lorsque on veut utiliser un fichier de configuration connu à l'avance
  		//c.load("config3.xml");
  		
  		//on peut récupérer également les paramètres en ligne de commande
  		//en cas de conflit avec le fichier de configuration, c'est la ligne de commande qui est prioritaire
         //c.setParamsFromCmdLine(args); // on peut ajouter des paramètres en ligne de commande également (nom du fichier, nombre de frontières à calculer, ...)
  		
  		//c.save("config.xml");
  		
  		/* 	pour passer un fichier de configuration en paramètre
  		DefaultConfig cc = new DefaultConfig(); 
  		cc.setParamsFromCmdLine(args);
  		DefaultConfig c = new DefaultConfig();  		
  		if (cc.getParam("config") != null)
  			c.load(cc.getParam("config"));
  		c.setParamsFromCmdLine(args);
  		c.save("config3.xml");
  		*/
      System.out.println(c.toString());
      
      //--------------------------------------------------------------------------
      //InputData input = new InputData(c, c.getParam("file"));
      //DefaultInputData input = new DefaultInputData(c, "0.xml");
      DefaultInputData input = new DefaultInputData(c, args[0]);
      
      //--------------------------------------------------------------------------
      DefaultLexicalChainList chains = new DefaultLexicalChainList(input);

  /* impression de la trace du calcul des liens lexicaux   
      System.out.println("Liste des phrases");
      System.out.println("=================");
      System.out.println(input.toString());

      System.out.println("\nDictionnaire des lemmes");
      System.out.println("=======================");
      System.out.println(input.lemmaDict.toString());

      System.out.println("\nChaines lexicales");
      System.out.println("=================");
      System.out.println(chains.toString(false, false));
*/      
      //--------------------------------------------------------------------------
      
      DefaultGapsScores scores = new DefaultGapsScores(chains, input.sentenceCount());
      
      // choix du calcul des valeurs affectées aux intervalles
     // fonction automatiquement lancée à l'initialisation : scores.compute_cos(); //similarités cosine
      System.out.println(scores.to_string());
      
      //les autres fonctions de calcul des scores sont facultatives, et peuvent être lancées successivement.
      scores.compute_smoothing(1); //lissage du calcul des similarités
      System.out.println(scores.to_string());     
       //scores.compute_depth_scores(); //calcul des scores de profondeur de similarité, peut s'utiliser avec ou sans lissage
      //System.out.println(scores.to_string());
     
      
      //--------------------------------------------------------------------------
          DefaultBoundaries bound = new DefaultBoundaries(scores, 9);
     // DefaultBoundaries bound = new DefaultBoundaries(scores, c.getParam("n");
      
          // choix du système de calcul des frontières, en fonction du calcul choisi précédemment
          // il faut en choisir 1 parmi les 3
      //bound.compute_min_similarities(); //à utiliser après compute_cos et/ou compute_smoothing
      bound.compute_loc_min(2); //à utiliser après compute_cos et/ou compute_smoothing
      // bound.compute_max_depth(); //à utiliser après compute_depth_scores
      
      
      //--------------------------------------------------------------------------
      //impression du résultat à l'écran
      System.out.println(bound.to_string()); //numéros de phrases après lesquelles il y a une frontière thématique
      System.out.println(input.result_lines(bound)); // sortie pour les application d'évaluation
     // System.out.println(input.result_complete(bound)); //sortie au même format que l'entrée, avec les mêmes informations
     // System.out.println(input.result_text_only(bound)); //sortie au format xml, avec uniquement le texte délimité par des balises <seg>
      
      
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }
}