OpenNLP-文の解析
OpenNLP APIを使用すると、指定された文を解析できます。この章では、OpenNLPAPIを使用して生のテキストを解析する方法について説明します。
OpenNLPライブラリを使用した生のテキストの解析
文を検出するために、OpenNLPは事前定義されたモデル、という名前のファイルを使用します en-parserchunking.bin。これは、指定された生のテキストを解析するようにトレーニングされた事前定義されたモデルです。
ザ・ Parser のクラス opennlp.tools.Parser パッケージは、解析構成要素と ParserTool のクラス opennlp.tools.cmdline.parser パッケージはコンテンツの解析に使用されます。
以下は、を使用して指定された生のテキストを解析するプログラムを作成するために従うべき手順です。 ParserTool クラス。
ステップ1:モデルをロードする
テキストを解析するためのモデルは、という名前のクラスで表されます。 ParserModel、パッケージに属します opennlp.tools.parser。
トークナイザーモデルをロードするには-
作成する InputStream モデルのオブジェクト(FileInputStreamをインスタンス化し、モデルのパスを文字列形式でコンストラクターに渡します)。
インスタンス化する ParserModel クラスと合格 InputStream 次のコードブロックに示すように、コンストラクターへのパラメーターとしてのモデルの(オブジェクト)。
//Loading parser model
InputStream inputStream = new FileInputStream(".../en-parserchunking.bin");
ParserModel model = new ParserModel(inputStream);
ステップ2:パーサークラスのオブジェクトを作成する
ザ・ 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);
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.)))))