Opennlp-parsing-the-sentences

提供:Dev Guides
移動先:案内検索

OpenNLP-文の解析

OpenNLP APIを使用して、指定された文を解析できます。 この章では、OpenNLP APIを使用して生テキストを解析する方法について説明します。

OpenNLPライブラリを使用した生テキストの解析

文を検出するために、OpenNLPは事前定義モデル、 en-parserchunking.bin という名前のファイルを使用します。 これは、指定された生テキストを解析するように訓練された事前定義モデルです。

*opennlp.tools.Parser* パッケージの *Parser* クラスは解析構成要素を保持するために使用され、 *opennlp.tools.cmdline.parser* パッケージの *ParserTool* クラスはコンテンツを解析するために使用されます。

以下は、 ParserTool クラスを使用して、指定された生テキストを解析するプログラムを作成するために従うべき手順です。

ステップ1:モデルの読み込み

テキストを解析するためのモデルは、パッケージ opennlp.tools.parser に属する ParserModel という名前のクラスで表されます。

トークナイザーモデルをロードするには-

  • モデルの InputStream オブジェクトを作成します(FileInputStreamをインスタンス化し、モデルのパスをString形式でコンストラクターに渡します)。
  • 次のコードブロックに示すように、 ParserModel クラスをインスタンス化し、モデルの InputStream (オブジェクト)をコンストラクターにパラメーターとして渡します。
//Loading parser model
InputStream inputStream = new FileInputStream(".../en-parserchunking.bin");
ParserModel model = new ParserModel(inputStream);

ステップ2:Parserクラスのオブジェクトを作成する

パッケージ opennlp.tools.parserParser クラスは、解析構成要素を保持するためのデータ構造を表します。 ParserFactory クラスのstatic * create()*メソッドを使用して、このクラスのオブジェクトを作成できます。

以下に示すように、前の手順で作成したモデルオブジェクトを渡すことにより、 ParserFactory の* create()*メソッドを呼び出します-

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

ステップ3:文を解析する

*ParserTool* クラスの* parseLine()*メソッドは、OpenNLPの生テキストを解析するために使用されます。 このメソッドは受け入れます-
  • 解析するテキストを表す文字列変数。
  • パーサーオブジェクト。
  • 実行される解析の数を表す整数。

文に次のパラメーターを渡すことにより、このメソッドを呼び出します。前のステップで作成された解析オブジェクト、および実行される解析の必要数を表す整数。

//Parsing the sentence
String sentence = "finddevguides 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 = "finddevguides 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 finddevguides)) (VP (VBZ is) (NP (DT the) (JJS largest) (NN
   tutorial) (NN library.)))))