Affichage de tt les hypernymes de wordnet en java

Fermé
souma - Modifié par Whismeril le 10/06/2015 à 07:49
Bonjour,

SVP svp svp aidez moi de trouver tt les hypernymes d'un mot (même pour un seul sens) en utilisant wordnet.
j'aime bien que le programme contient un void main exécutable (code en java bien sûr)

j'ai cherché trop d'afficher tt les hypernymes d'un mot mais pas de résultat.le suis mal à l'aise

j'ai créer ce code mais il donne seulement le premier hypernym de chaque sens mais j'ai besoin de la liste de tt les hypernymes successives pour chaque sens

import edu.mit.jwi.IDictionary;
import edu.smu.tspell.wordnet.NounSynset;
import edu.smu.tspell.wordnet.Synset;
import edu.smu.tspell.wordnet.SynsetType;
import edu.smu.tspell.wordnet.WordNetDatabase;
import java.net.MalformedURLException;
 import java.net.URL;
import edu.mit.jwi.Dictionary;
import edu.mit.jwi.IDictionary;
import edu.mit.jwi.item.IIndexWord;
import edu.mit.jwi.item.ISynset;
import edu.mit.jwi.item.ISynsetID;
import edu.mit.jwi.item.IWord;
import edu.mit.jwi.item.IWordID;
import edu.mit.jwi.item.POS;
import edu.mit.jwi.item.Pointer;
import java.util.Iterator;
import java.util.List;

//import rita.wordnet.RiWordnet;

public class hypernym {
   public static void hyper(String words)
    {String wordhyp="";
        String path ="C:\\Program Files\\WordNet\\2.1\\dict";
         IDictionary  dict = null ;
         WordNetDatabase database;
         Synset[] synsetsnn=new Synset[50] ;

         try {
                        
               
    URL    url = null;
   url = new URL("file", null, path);
   dict = new Dictionary(url);
          dict.open();
                        IIndexWord idxWord = dict . getIndexWord (words, POS. NOUN );
 NounSynset nounSynset;
        //NounSynset[] hypernyms;
        System.setProperty("wordnet.database.dir", "C:\\Program Files\\WordNet\\2.1\\dict");
        database = WordNetDatabase.getFileInstance();
        Synset[] synsets = database.getSynsets(words);
        int nbsyn=0;
        int k=0;
       for (int j = 0; j < synsets.length; j++) { //iteratre over all senses  
           if (synsets[j] instanceof NounSynset) {
               nbsyn++;synsetsnn[k]=synsets[j];k++;
         //   System.out.println("syn  "+j + " = " + synsets[j]);
           }}
          //  System.out.println(" Les hypernymes du mot sont ");

        for (int j = 0; j < nbsyn; j++) { //iteratre over all senses  
           
 IWordID wordID = idxWord . getWordIDs ().get (j) ; // 1st meaning
 IWord word = dict . getWord ( wordID );
 ISynset synset = word . getSynset ();
  
    
 // String lemma=word.getLemma();
  
   // System.out.println(" Lemma =  "+ lemma);
  List < ISynsetID > hypernyms = synset . getRelatedSynsets ( Pointer . HYPERNYM );
  List <IWord > words2 ;
 for( ISynsetID sid : hypernyms ){
 words2 = dict . getSynset (sid). getWords ();
 System .out . print (sid + " {");
 for( Iterator <IWord > i = words2 . iterator (); i. hasNext () ;){
// System .out . print (i. next (). getLemma ());
wordhyp=i. next (). getLemma ();  
 //System .out . println ("mot = "+ wordhyp);
 System .out . print (wordhyp);
 //hyper(wordhyp); 
 if(i. hasNext ())
 System .out . print (", ");
 }
 System .out . println ("}");
 }
    }
}catch (Exception e) {
            e.printStackTrace();
        }
 
}public static void main(String[] args) throws MalformedURLException
{       hyper("fly");   }
}


EDIT: Ajout de la coloration syntaxique.
A voir également: