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:
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é.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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. } }
Partager