<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://air.imag.fr/index.php?action=history&amp;feed=atom&amp;title=VT2017_ONLP</id>
	<title>VT2017 ONLP - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://air.imag.fr/index.php?action=history&amp;feed=atom&amp;title=VT2017_ONLP"/>
	<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2017_ONLP&amp;action=history"/>
	<updated>2026-05-31T13:20:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2017_ONLP&amp;diff=36782&amp;oldid=prev</id>
		<title>Aymeric.Brochier: Created page with &quot; * Auteur : Brochier Aymeric * Enseignants : Georges-Pierre Bonneau * Date : 20/10/2017  =Abstract= Apache OpenNLP is an open source Java library based on machine-learning. It...&quot;</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2017_ONLP&amp;diff=36782&amp;oldid=prev"/>
		<updated>2017-10-26T22:22:55Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot; * Auteur : Brochier Aymeric * Enseignants : Georges-Pierre Bonneau * Date : 20/10/2017  =Abstract= Apache OpenNLP is an open source Java library based on machine-learning. It...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
* Auteur : Brochier Aymeric&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau&lt;br /&gt;
* Date : 20/10/2017&lt;br /&gt;
&lt;br /&gt;
=Abstract=&lt;br /&gt;
Apache OpenNLP is an open source Java library based on machine-learning. It is used to process natural text. It supports the most communs NLP task such as (Sentence detection, POS-tagging,tokenization).I will talk about functionalities, performances with the support of a comparative study[1]&lt;br /&gt;
&lt;br /&gt;
=Résumé=&lt;br /&gt;
Apache OpenNLP est une bibliothèque libre écrite en entièrement en java basé sur de l&amp;#039;apprentissage automatique. Elle supporte les principales tâches du traitement automatique du langage naturel tel que la détection de phrase ,l’étiquetage morpho-syntaxique,la tokenisation,..).Je vais parler des fonctionnalités et performance avec le support d’une étude comparative&lt;br /&gt;
&lt;br /&gt;
=Apache OpenNLP=&lt;br /&gt;
&lt;br /&gt;
Apache OpenNLP est un projet opensource dont le code est disponible sur github&lt;br /&gt;
https://github.com/apache/opennlp&lt;br /&gt;
&lt;br /&gt;
A l’heure ou j’écris ces lignes il y a un peu moins de 20 contributeurs qui ont effectué plus de 1700 commit et  sur ce projet.&lt;br /&gt;
Sa renommée actuelle est de 429 stars.&lt;br /&gt;
Au niveau du nombre de ligne de code j’en ai compté un peu moins de 66 919 en java (grâce à CLOC)&lt;br /&gt;
[[Image:Cloc.png]]&lt;br /&gt;
&lt;br /&gt;
Avant de rentrer dans les détails je vais vous présenter les résultats d’une étude destiné à comparer &lt;br /&gt;
cette boite à outils avec d’autre au niveau des fonctionnalités et des performance.[1]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une première différence est la cible des texte : certaines boites à outils sont conçue pour étudier les tweet alors que les autres boites sont plus génériques.&lt;br /&gt;
La distinction principale au niveau des fonctionnalité est la présence ou non du chunking et du NER&lt;br /&gt;
Je vais détailler quelques tâches de base mais vous pouvez lire une explication similaire  dans l’étude cité précédemment.&lt;br /&gt;
&lt;br /&gt;
* La tache (NER) Name Entity Recognition consiste a classifier dans un texte les mots correspondant à une certaine catégorie (noms des personnes, les lieux, les organisations les dates.&lt;br /&gt;
Par exemple&lt;br /&gt;
[[Image:NER.png]]&lt;br /&gt;
* Le POS-tagging consiste à marquer chaque mots d’une phrase par sa catégorie(nom,verbe …)&lt;br /&gt;
En voici un exemple :&lt;br /&gt;
[[Image:POS.png]]&lt;br /&gt;
=Les performances= &lt;br /&gt;
Les métriques utiliser pour classifier ces différents outils sont celles classiquement utilisé dans le traitement automatique de texte [2] :&lt;br /&gt;
&lt;br /&gt;
* Précision : La précision donne le pourcentage de réponses correctes&lt;br /&gt;
* Rappel : Le rappel donne le pourcentage des réponses correctes qui sont données&lt;br /&gt;
&lt;br /&gt;
* F1 : La moyenne harmonique [[Image:F-mesure.png]]c’est une métrique combinant les deux précédentes.&lt;br /&gt;
Tableau de résultats : pour que ce document reste synthétique je n’ai fourni que deux des tableaux de résultat présent dans [1]&lt;br /&gt;
[[Image:tab1_NLP.png]]&lt;br /&gt;
[[Image:tab2_NLP.png]]&lt;br /&gt;
&lt;br /&gt;
Donc en résume si vous souhaité faire du traitement automatique sur des tweet OpenNLP n’est pas le meilleur choix.&lt;br /&gt;
En revanche cet outils a su montré des scores de rappel et précision très élevés pour les taches tokenisation et POS-taging sur un dataset de texte génériques (voir l’étude pour plus de détails)&lt;br /&gt;
&lt;br /&gt;
Pour la liste complète des fonctionnalité offerte par cet outils il faut aller vois la documentation sur le site officiel : https://opennlp.apache.org/docs/1.8.2/manual/opennlp.html&lt;br /&gt;
&lt;br /&gt;
Attention certain site indique des fonctionnalité qui ne semble pas présente dans l’outil.&lt;br /&gt;
&lt;br /&gt;
Chaque sous module possède un modèle pour certaines langue de base &lt;br /&gt;
La plupart donnent également  la possibilité d’entraîner un modèle ou d’évaluer un modèle.&lt;br /&gt;
1. Language Detector,2. Sentence Detector,3. Tokenizer,4. Name Finder,5. Document Categorizer ,6. Part-of-Speech Tagger,7. Lemmatizer,8. Chunker,9. Parser&lt;br /&gt;
&lt;br /&gt;
=DEMO=&lt;br /&gt;
Pour la petite démonstration :&lt;br /&gt;
&lt;br /&gt;
J’ai choisi de tester sur docker en suivant les instructions sur&lt;br /&gt;
https://github.com/joeferner/node-java pour avoir node-java puis &lt;br /&gt;
https://www.npmjs.com/package/opennlp pour des petit exemple de code simple.&lt;br /&gt;
Si vous suivez les liens vous trouverez les exemples de base que j’ai modifié pour la demomonstration.&lt;br /&gt;
(point négatif si on veut écrire les fichier depuis le container il semblerai que l’on ne puisse utiliser que vim.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Références=&lt;br /&gt;
 [1]Alves, A.O., Oliveira, H.G., &amp;amp; Pinto, A.M. (2016). Comparing the Performance of Different NLP Toolkits in Formal and Social Media Text. SLATE.&lt;br /&gt;
* [2] http://benhur.teluq.ca/SPIP/inf6104/spip.php?article98&lt;br /&gt;
* https://www.tutorialspoint.com/opennlp/&lt;br /&gt;
* https://opennlp.apache.org&lt;/div&gt;</summary>
		<author><name>Aymeric.Brochier</name></author>
	</entry>
</feed>