OpenNLP - Parsing Kalimat

Menggunakan OpenNLP API, Anda bisa mengurai kalimat yang diberikan. Pada bab ini, kita akan membahas bagaimana mengurai teks mentah menggunakan OpenNLP API.

Parsing Teks Mentah menggunakan OpenNLP Library

Untuk mendeteksi kalimat, OpenNLP menggunakan model yang telah ditentukan sebelumnya, sebuah file bernama en-parserchunking.bin. Ini adalah model standar yang dilatih untuk mengurai teks mentah yang diberikan.

Itu Parser kelas dari opennlp.tools.Parser paket digunakan untuk menampung konstituen parse dan ParserTool kelas dari opennlp.tools.cmdline.parser paket digunakan untuk mengurai konten.

Berikut adalah langkah-langkah yang harus diikuti untuk menulis program yang mengurai teks mentah yang diberikan menggunakan ParserTool kelas.

Langkah 1: Memuat model

Model untuk teks parsing diwakili oleh kelas bernama ParserModel, yang termasuk dalam paket opennlp.tools.parser.

Untuk memuat model tokenizer -

  • Buat InputStream objek model (Membuat Instansiasi FileInputStream dan meneruskan jalur model dalam format String ke konstruktornya).

  • Instantiate ParserModel kelas dan lulus InputStream (objek) model sebagai parameter untuk konstruktornya, seperti yang ditunjukkan pada blok kode berikut.

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

Langkah 2: Membuat objek dari kelas Parser

Itu Parser kelas paket opennlp.tools.parsermerepresentasikan struktur data untuk menampung konstituen parse. Anda dapat membuat objek dari kelas ini menggunakan statiscreate() metode dari ParserFactory kelas.

Panggil create() metode dari ParserFactory dengan melewatkan objek model yang dibuat pada langkah sebelumnya, seperti yang ditunjukkan di bawah ini -

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

Langkah 3: Parsing kalimat

Itu parseLine() metode dari ParserToolclass digunakan untuk mengurai teks mentah di OpenNLP. Metode ini menerima -

  • variabel String yang mewakili teks yang akan diurai.

  • objek parser.

  • sebuah integer yang mewakili jumlah parsing yang akan dilakukan.

Panggil metode ini dengan melewatkan kalimat parameter berikut: objek parse yang dibuat di langkah sebelumnya, dan integer yang mewakili jumlah parse yang diperlukan untuk dijalankan.

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

Example

Berikut adalah program yang mengurai teks mentah yang diberikan. Simpan program ini dalam sebuah file dengan namaParserExample.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();          
   } 
}

Kompilasi dan jalankan file Java yang disimpan dari Command prompt menggunakan perintah berikut -

javac ParserExample.java 
java ParserExample

Saat menjalankan, program di atas membaca teks mentah yang diberikan, mem-parsingnya, dan menampilkan keluaran berikut -

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