Учебники

OpenNLP — Разбор предложений

Используя OpenNLP API, вы можете анализировать данные предложения. В этой главе мы обсудим, как анализировать необработанный текст с помощью OpenNLP API.

Разбор необработанного текста с использованием библиотеки OpenNLP

Чтобы обнаружить предложения, OpenNLP использует предопределенную модель, файл с именем en-parserchunking.bin . Это предопределенная модель, которая обучается анализировать данный необработанный текст.

Класс Parser пакета opennlp.tools.Parser используется для хранения компонентов анализа, а класс ParserTool пакета opennlp.tools.cmdline.parser используется для анализа содержимого.

Ниже приведены шаги, которые необходимо выполнить для написания программы, которая анализирует данный необработанный текст с использованием класса ParserTool .

Шаг 1: Загрузка модели

Модель для анализа текста представлена ​​классом с именем ParserModel , который принадлежит пакету opennlp.tools.parser .

Чтобы загрузить модель токенизатора —

  • Создайте объект InputStream модели (создайте экземпляр FileInputStream и передайте путь модели в формате String ее конструктору).

  • Создайте экземпляр класса ParserModel и передайте InputStream (объект) модели в качестве параметра ее конструктору, как показано в следующем блоке кода.

Создайте объект InputStream модели (создайте экземпляр FileInputStream и передайте путь модели в формате String ее конструктору).

Создайте экземпляр класса ParserModel и передайте InputStream (объект) модели в качестве параметра ее конструктору, как показано в следующем блоке кода.

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

Шаг 2: Создание объекта класса Parser

Класс Parser пакета opennlp.tools.parser представляет структуру данных для хранения компонентов анализа. Вы можете создать объект этого класса, используя статический метод create () класса ParserFactory .

Вызовите метод create () ParserFactory , передав объект модели, созданный на предыдущем шаге, как показано ниже —

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

Шаг 3: Разбор предложения

Метод parseLine () класса ParserTool используется для анализа необработанного текста в OpenNLP. Этот метод принимает —

  • строковая переменная, представляющая текст для анализа.

  • объект парсера.

  • целое число, представляющее количество разборов, которые должны быть выполнены.

строковая переменная, представляющая текст для анализа.

объект парсера.

целое число, представляющее количество разборов, которые должны быть выполнены.

Вызовите этот метод, передав предложение следующим параметрам: объект разбора, созданный на предыдущих шагах, и целое число, представляющее требуемое количество разборов, которые необходимо выполнить.

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

пример

Ниже приводится программа, которая анализирует данный необработанный текст. Сохраните эту программу в файле с именем ParserExample.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();          
   } 
}      

Скомпилируйте и выполните сохраненный файл Java из командной строки, используя следующие команды:

javac ParserExample.java 
java ParserExample 

При выполнении вышеуказанная программа считывает заданный необработанный текст, анализирует его и отображает следующий вывод: