Comment intégrer treetagger dans une application java
samoua99
Messages postés1Date d'inscriptionmercredi 15 décembre 2010StatutMembreDernière intervention10 novembre 2012
-
10 nov. 2012 à 09:47
Utilisateur anonyme -
17 nov. 2012 à 20:18
Bonsoir,
je suis entrain de réaliser une application java sur eclipse,et j'ai besoin d'utiliser treetagger, sauf que je ne sais ni comment l'installer sur mon ordinateur ni comment l'integrer dans mon application
Svp,aidez moi à trouvez une solution
Merci
N'oubliez pas de mettre le JAR dans le classpath. N'oubliez pas non plus les fichiers de paramètres. Vous devrez peut-être renseigner le library path ou bien toute autre variable d'environnement utilisée pour indiquer où les modules natifs se trouvent.
Enfin, vous pouvez partir de l'exemple de code sur la page d'accueil du binding, c'est la classe TreeTaggerWrapper que vous devez utiliser.
Aboumohamed4070
Messages postés13Date d'inscriptiondimanche 30 octobre 2011StatutMembreDernière intervention 6 mars 2013 11 nov. 2012 à 16:48
Bonsoir,
est ce qu'on peut utiliser treetagger sous java sans besoin d'installation du perl
autrement est ce que le jar tt4j est suffisant ou non
j'ai essayé avec java de déterminer les catégories grammaticales mais j'ai pas réussi à le faire,
merci de m'aider.
Non, TT4J est un binding, pas un portage pur, c'est-à-dire qu'il permet d'utiliser la version native de TreeTagger dans votre code Java mais il ne réimplémente pas toutes ses fonctionnalités en Java. Quand on utilise un binding, on a toujours besoin de la version native, c'est pareil pour celui de Bullet qui est dans JMonkeyEngine 3 (à ne pas confondre avec JBullet), JOGL qui a besoin d'OpenGL, JOAL qui a besoin d'OpenAL et/ou d'OpenALSoft, JOCL qui a besoin d'OpenCL...
C'est la catégorie grammaticale NP (il me semble) mais elle n'est pas dans la liste ci-dessus, à vous de vérifier. Si j'ai bien compris, un syntagme nominal est en fait un groupe nominal.
Aboumohamed4070
Messages postés13Date d'inscriptiondimanche 30 octobre 2011StatutMembreDernière intervention 6 mars 2013 15 nov. 2012 à 02:25
c'est presque le meme : syntagme nomnal = groupe nominal
mais j'ai pas trouvé comment le faire.
est ce que c'est faisable avec tt4j et pouvez vous me preciser la ou les methodes qui peuvent extraire ces groupes (suntagmes) nominaux
Merci d'avance.
Désolé, je pensais avoir été clair, il faut partir de l'exemple de base disponible sur la page d'accueil de TT4J et modifier le TokenHandler; quand ce dernier vous passe "NP" dans son paramètre "pos", cela signifie que le token passé en premier paramètre est un groupe nominal.
Aboumohamed4070
Messages postés13Date d'inscriptiondimanche 30 octobre 2011StatutMembreDernière intervention 6 mars 2013 17 nov. 2012 à 16:39
j'ai essayé de faire ce que vous avez me demmandé mais ça ne marche pas
merci de me donne un exemple de code.
bon j'ai choisi une autre API (openNLP) mais tjrs il existe de probleme de parametrage (si on paut le dire)
pour cet exemple de methode:
public void methode() {
SentenceModel sd_model = null;
try {
sd_model = new SentenceModel(new FileInputStream(projectPath
+ "opennlp/models/english/sentdetect/en-sent.bin"));
} catch (InvalidFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SentenceDetectorME mSD = new SentenceDetectorME(sd_model);
String param = "This is a good senttence."
+ "I'm very happy. "
+ "Who can tell me the truth."
+ "And go to school.";
String[] sents = mSD.sentDetect(param);
for (String sent : sents) {
System.out.println(sent);
}
}
l'exception suivante
Exception in thread "main" java.lang.NoClassDefFoundError: opennlp/model/MaxentModel
at com.fst.proteines.FctGramm.SentenceDetect(FctGramm.java:213)
at com.fst.proteines.FctGramm.main(FctGramm.java:256)
Caused by: java.lang.ClassNotFoundException: opennlp.model.MaxentModel
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 2 more
Java Result: 1
(FctGramm est le nom de la classe contenant cette la methode si dessus)
merci ...
Je vous ai déjà donné un exemple de code, à vous de débogger l'exemple et de chercher dans la documentation si ça ne marche pas avec "NP". Vous restez beaucoup trop vague, comment voulez-vous que nous vous aidions si vous ne nous dites pas précisément ce qui ne marche pas? De plus, vous semblez ne pas comprendre que Java ne trouve pas les classes par magie, il faut que les JARs des bibliothèques externes soient dans le classpath. Bon courage.