Comment intégrer treetagger dans une application java

samoua99 Messages postés 1 Date d'inscription mercredi 15 décembre 2010 Statut Membre Dernière intervention 10 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

9 réponses

Utilisateur anonyme
10 nov. 2012 à 18:40
Bonsoir

Vous avez besoin d'installer TreeTagger comme c'est expliqué ici :
http://www.ims.uni-stuttgart.de/projekte/corplex/TreeTagger/

Ensuite, il vous faut son binding Java :
http://code.google.com/p/tt4j/

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.

Bon courage.










T.U.E.R (First Person Shooter créé par Julien Gouesse)
2
Aboumohamed4070 Messages postés 13 Date d'inscription dimanche 30 octobre 2011 Statut Membre Derniè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.
0
Utilisateur anonyme
11 nov. 2012 à 17:53
Bonjour

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...

Normalement, TreeTagger étiquette chaque mot avec son lemme et sa catégorie grammaticale. Le lemme est passé en paramètre dans le TokenHandler, la catégorie grammaticale aussi, c'est le paramètre "pos" :
http://tt4j.googlecode.com/svn/tt4j/tags/org.annolab.tt4j-1.1.1/apidocs/org/annolab/tt4j/TokenHandler.html#token(O,%20java.lang.String,%20java.lang.String)

Pour la langue française, elle prend les valeurs indiquées ici :
http://www.ims.uni-stuttgart.de/~schmid/french-tagset.html

Vous pouvez partir de l'exemple de base donné sur la page d'accueil de TT4J et passer votre propre implémentation de l'interface TokenHandler.

Bon courage.



















T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
Aboumohamed4070 Messages postés 13 Date d'inscription dimanche 30 octobre 2011 Statut Membre Dernière intervention 6 mars 2013
15 nov. 2012 à 01:50
Merci aussi de m'aider pour savoir comment peut-on extracter les syntagmes nominaux a l'aide de l'API tt4j (de treetagger) ou bien un autre API.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
15 nov. 2012 à 02:18
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.

Bon courage.












T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
Aboumohamed4070 Messages postés 13 Date d'inscription dimanche 30 octobre 2011 Statut Membre Derniè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.
0
Utilisateur anonyme
15 nov. 2012 à 11:38
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.















T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
Aboumohamed4070 Messages postés 13 Date d'inscription dimanche 30 octobre 2011 Statut Membre Derniè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 ...
0
Utilisateur anonyme
17 nov. 2012 à 20:18
Bonsoir

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.
0
Rejoignez-nous