Utilisation de l'API Stanford de façon programmatique
En devant parfois developper des applications en JAVA qui invoquent des classes appartenant à des API externes non pas du command line prompt, mais d'une classe que j'écris ("usage programmatique"), j'ai toujours rencontré des difficultés plus ou moins grandes.Maintenant, je travaille avec la Stanford-Core-NLP (version 1.2.0 - http://www.jarvana.com/jarvana/view/...w-summary.html
), et je veux écrire une classe Main.java qui, quand elle est invoqué par la commande "java Main", fait exactement la même chose que la commande suivante au prompt:
"java edu.stanford.nlp.parser.lexparser.LexicalizedParser -retainTMPSubcategories -outputFormat "wordsAndTags,penn,typedDependencies," englishPCFG.ser.gz
text" - text est un fichier contenant du texte.
Pour obtenir ce but, j'ai écrit cette classe:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| import java.io.*;
import edu.stanford.nlp.parser.lexparser.*;
import edu.stanford.nlp.ling.*;
import edu.stanford.nlp.util.*;
import java.util.*;
import java.util.zip.*;
public class Main {
public static void main(String[] args) {
//Ceci est ma phrase comme Arraylist:
ArrayList<Word> sent = new ArrayList<Word>();
sent.add(new Word("I"));
sent.add(new Word("like"));
sent.add(new Word("it"));
sent.add(new Word("."));
LexicalizedParser lp = null;
try{
lp = new LexicalizedParser(new ObjectInputStream(new FileInputStream("englishPCFG.ser")));
}catch(Exception e){ e.printStackTrace(); }
lp.setOptionFlags("-outputFormat", "typedDependencies");
lp.parse(sent);
//Comment est-ce que je peux imprimer le résultat au command-line prompt (par System.out...)? - La méthode parse() est boolean.
}
} |
Si je l'invoque par java Main, rien n'est imprimé. Mais où est-ce qu'il y a une méthode du "Lexicalized Parser" qui permet d'imprimer le résultat du parsing? J'ai regardé la API, mais je n'ai rien trouvé.