OpenNLP - Analyse des phrases

En utilisant l'API OpenNLP, vous pouvez analyser les phrases données. Dans ce chapitre, nous verrons comment analyser du texte brut à l'aide de l'API OpenNLP.

Analyse du texte brut à l'aide de la bibliothèque OpenNLP

Pour détecter les phrases, OpenNLP utilise un modèle prédéfini, un fichier nommé en-parserchunking.bin. Il s'agit d'un modèle prédéfini qui est formé pour analyser le texte brut donné.

le Parser classe de la opennlp.tools.Parser package est utilisé pour contenir les composants d'analyse et le ParserTool classe de la opennlp.tools.cmdline.parser package est utilisé pour analyser le contenu.

Voici les étapes à suivre pour écrire un programme qui analyse le texte brut donné en utilisant le ParserTool classe.

Étape 1: chargement du modèle

Le modèle d'analyse du texte est représenté par la classe nommée ParserModel, qui appartient au package opennlp.tools.parser.

Pour charger un modèle de tokenizer -

  • Créé un InputStream objet du modèle (instanciez le FileInputStream et passez le chemin du modèle au format String à son constructeur).

  • Instancier le ParserModel classe et passer le InputStream (objet) du modèle en tant que paramètre de son constructeur, comme indiqué dans le bloc de code suivant.

//Loading parser model 
InputStream inputStream = new FileInputStream(".../en-parserchunking.bin"); 
ParserModel model = new ParserModel(inputStream);

Étape 2: Création d'un objet de la classe Parser

le Parser classe du package opennlp.tools.parserreprésente une structure de données pour contenir les constituants d'analyse. Vous pouvez créer un objet de cette classe en utilisant le staticcreate() méthode de la ParserFactory classe.

Invoquez le create() méthode de la ParserFactory en passant l'objet modèle créé à l'étape précédente, comme indiqué ci-dessous -

//Creating a parser Parser parser = ParserFactory.create(model);

Étape 3: analyse de la phrase

le parseLine() méthode de la ParserToolLa classe est utilisée pour analyser le texte brut dans OpenNLP. Cette méthode accepte -

  • une variable String représentant le texte à analyser.

  • un objet analyseur.

  • un entier représentant le nombre d'analyses à effectuer.

Appelez cette méthode en transmettant à la phrase les paramètres suivants: l'objet d'analyse créé dans les étapes précédentes et un entier représentant le nombre requis d'analyses à effectuer.

//Parsing the sentence 
String sentence = "Tutorialspoint is the largest tutorial library.";       
Parse topParses[] = ParserTool.parseLine(sentence, parser, 1);

Example

Voici le programme qui analyse le texte brut donné. Enregistrez ce programme dans un fichier avec le nomParserExample.java.

import java.io.FileInputStream; 
import java.io.InputStream;  

import opennlp.tools.cmdline.parser.ParserTool; 
import opennlp.tools.parser.Parse; 
import opennlp.tools.parser.Parser; 
import opennlp.tools.parser.ParserFactory; 
import opennlp.tools.parser.ParserModel;  

public class ParserExample { 
   
   public static void main(String args[]) throws Exception{  
      //Loading parser model 
      InputStream inputStream = new FileInputStream(".../en-parserchunking.bin"); 
      ParserModel model = new ParserModel(inputStream); 
       
      //Creating a parser 
      Parser parser = ParserFactory.create(model); 
      
      //Parsing the sentence 
      String sentence = "Tutorialspoint is the largest tutorial library.";
      Parse topParses[] = ParserTool.parseLine(sentence, parser, 1); 
    
      for (Parse p : topParses) 
         p.show();          
   } 
}

Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -

javac ParserExample.java 
java ParserExample

Lors de l'exécution, le programme ci-dessus lit le texte brut donné, l'analyse et affiche la sortie suivante -

(TOP (S (NP (NN Tutorialspoint)) (VP (VBZ is) (NP (DT the) (JJS largest) (NN
   tutorial) (NN library.)))))