Affichage des articles dont le libellé est opennlp. Afficher tous les articles
Affichage des articles dont le libellé est opennlp. Afficher tous les articles

mercredi 19 décembre 2012

Apache OpenNLP FR Models


Download here: the last version of the models for processing several common Natural Language Processing tasks in French with Apache OpenNLP  [1]

The models concern the following tasks: Sentence segmentation, Word tokenization, Part-of-Speech Tagging, Morphological inflection analysis*, Lemmatization*, Chunking, Person|Organization|Location Name Entity recognition**

Except for Named Entity models, models have been built using the French Treebank corpus [2] (version 2010). Its licence does not prevent to distribute its analysis results under whatever licence but it mentions that the ftb should be used only for research purpose. Consequently we restrict the use of these models only for research purposes. 


* To be used with the tagger 

** Named Finder Models have been built by Olivier Grisel. See for more detail [3]. 

To get the '.bin' files, unzip and have a loot at the '/opennlp/models/fr/' dir. 

[2] For more on the French Treebank, see Abeille, A., L. Clement, and F. Toussenel. 2003. `Building a treebank for French', in A. Abeille (ed) Treebanks , Kluwer, Dordrecht. http://www.llf.cnrs.fr/Gens/Abeille/French-Treebank-fr.php 

dimanche 7 février 2010

Scripts de téléchargement et d'installation d'un environnement pour utiliser Apache UIMA (>2.3) et développer avec sous Eclipse

Afin de me faciliter la vie, ainsi celles de mes étudiants, j'ai mis en place un environnement qui regroupe tous les pré-requis pour  utiliser Apache UIMA et développer avec sous Eclipse.

FEATURES
  • Scripts pour assister le téléchargement et l'installation d'un environnement pour utiliser Apache UIMA et développer avec sous Eclipse. 
  • La configuration est centralisée pour faciliter la prise en compte les futures mise à jour des outils requis pour l'environnement
  • Ces outils requis sont Java JDK Sun, Eclipse, plugins eclipse (UIMA, Subversion et Maven), Apache UIMA (UIMAJ, UIMA-AS, UIMACPP, Addons), Apache tomcat, OpenNLP, maven, ant, subversion 
  • Les scripts sont distribués sous licence GPLv3 (liberté de modifier et redistribuer le travail, redistribution des travaux dérivés sous la même licence, mise à disposition du code source) 
  • Testés sous Ubuntu 8.10 - Hardy et 9.04 - Jaunty Jackalope
VERSION

La version datée du 7/02/2010 intègre les versions suivantes des outils 
  • Java Sun Development Kit  (jdk-6u17-linux-i586)
  • Eclipse Galileo (3.5)
  • Plugins UIMA,  subversion subeclipse,  maven m2eclipse        
  • Apache UIMA 2.3.0-incubating
  • OpenNLP v1.3
  • Apache Tomcat 6.0.20
TELECHARGEMENT

vendredi 18 décembre 2009

Installer et utiliser OpenNLP au sein de UIMA (Version 1.3. sous linux)

OpenNLP est à la fois
  • un regroupement de projets libres liés au traitement automatique des langues (TAL) 
  • et un ensemble d'outils de TAL développés en Java, qui utilisent la bibliothèque d'apprentissage automatique OpenNLP Maxent et qui permettent les traitements suivant : le découpage en phrases, la détection d'entités nommées, la résolution de la coréférence...
Nous parlons ici de l'ensemble d'outils de TAL qui utilisent la bibliothèque Maxent.
En dec 2009, avec la version apache uima java 2.2.2 en incubation, seuls des wrappers pour la version opennlp-1.3.0 sont disponibles malgré le fait que opennlp en soit à la version 1.4.3.
Pour cette version seuls deux modèles de langue sont disponibles : anglais et espagnol. La version 1.4.3 possède en plus des modèles pour l'allemand et le thai. Les sources s'accompagnent de scripts qui montrent comment entrainer le POS tagger.

1. Récupération et installation de OpenNLP
Une documentation expliquant comment compiler, configurer, exécuter, entrainer... est disponible en version HTML dans l'archive docs/README.html ou en ligne). 
Il faut d'une part récupérer les outils (opennlp-tools) et les modèles (opennlp-models). Les modèles doivent restés compressés, ils seront utilisés en l'état.
wget http://prdownloads.sourceforge.net/opennlp/opennlp-tools-1.3.0.tgz?download
wget -rc http://opennlp.sourceforge.net/models-1.3/
find opennlp.sourceforge.net/models-1.3/ -name "index*" -exec rm {} + ;
mv opennlp.sourceforge.net/models-1.3 opennlp-models-1.3.0
zip -r opennlp-models-1.3.0.zip opennlp-models-1.3.0
rm -r opennlp.sourceforge.net
Ensuite il faut compiler les outils (requiert JAVA_HOME, ant est dispo dans lib/). Après avoir migrer les deux archives dans votre répertoire d'applications (ici $APPLI).
tar -xvzf opennlp-tools-1.3.0.tgz
ln -s opennlp-tools-1.3.0 opennlp
cd opennlp
./build.sh
Une bibliothèque java d'outils a été générée dans le répertoire output.
Par la même occasion on désarchive les modèles dans le répertoire de opennlp
export OPENNLP_HOME=$APPLI/opennlp
unzip opennlp-models-1.3.0.zip -d $OPENNLP_HOME
ln -s opennlp-models-1.3.0 $OPENNLP_HOME/models
2. Utilisation en ligne de commande
Il est nécessaire de rajouter cette nouvelle bibliothèque ainsi que d'autres utiles pour faire tourner les outils.
Si ce n'est pas déjà fait rajouter à la fin de votre ~/.bashrc les lignes suivantes (n'oubliez pas ensuite de faire un "source ~/.bashrc" afin de rendre effectif ces changements pour votre terminal courant) .
export OPENNLP_HOME=$APPLI/opennlp
export CLASSPATH=${OPENNLP_HOME}/lib/ant.jar:${OPENNLP_HOME}/lib/jakarta-ant-optional.jar:${OPENNLP_HOME}/lib/jwnl-1.3.3.jar:${OPENNLP_HOME}/lib/maxent-2.4.0.jar:${OPENNLP_HOME}/lib/trove.jar:${OPENNLP_HOME}/output/opennlp-tools-1.3.0.jar:${CLASSPATH}
Chaque outil de la bibliothèque opennlp-tools est décrit par une classe qui contient un "main" qui réalise le traitement correspondant. Certains de ces outils supposent le traitement d'autres pour pouvoir fonctionner. La plupart prennent un argument, le chemin vers le modèle qu'ils exploitent. Le parser requiert un répertoire de modèles et le namefinder une liste de modèles.
Des exemples sont disponibles dans le fichier docs/README.html ou en ligne.
echo "Jules Verne was a French author who helped pioneer the science-fiction genre. He was born in the bustling harbor city of Nantes in Western France in 1828." > /tmp/text ;
java opennlp.tools.lang.english.SentenceDetector \
${OPENNLP_HOME}/models/english/sentdetect/EnglishSD.bin.gz < /tmp/text |
java -Xmx400m opennlp.tools.lang.english.NameFinder \
${OPENNLP_HOME}/models/english/namefind/*.bin.gz
3. Utilisation au sein d'Apache UIMA
(dernière section en cours d'écriture)
Les wrappers sont disponibles dans le répertoire UIMA_HOME/examples/oppennlp_wrappers/
Dans Eclipse, il s'agit de donner accès aux descripteurs de ces wrappers et de déclarer les bibliothèques requises pour les exécuter
  1. Déclarer en répertoire source le répertoire oppennlp_wrappers/src en cliquant bouton droit et Build Path > Use As Source Folder
  2. Cliquer sur le projet examples avec le bouton droit puis Properties > Java Build Path > Add Variables > OPENNLP_HOME > Extend > et ajouter les bibliothèques