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 다음 코드 블록과 같이 생성자에 대한 매개 변수로 모델의 (객체).

//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에서 원시 텍스트를 구문 분석하는 데 사용됩니다. 이 방법은-

  • 구문 분석 할 텍스트를 나타내는 String 변수

  • 파서 객체.

  • 수행 할 구문 분석의 수를 나타내는 정수.

다음 매개 변수를 문장에 전달하여이 메소드를 호출하십시오. 이전 단계에서 생성 된 구문 분석 객체 및 수행 할 필요한 구문 분석 수를 나타내는 정수.

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

Example

다음은 주어진 원시 텍스트를 구문 분석하는 프로그램입니다. 이 프로그램을 이름의 파일에 저장하십시오.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

실행시 위의 프로그램은 주어진 원시 텍스트를 읽고 구문 분석하고 다음 출력을 표시합니다.

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