Opennlp-chunking-sentences
OpenNLP-チャンキング文
文のチャンク化とは、文を単語グループや動詞グループなどの単語の一部に分割/分割することを指します。
OpenNLPを使用した文のチャンク化
文を検出するために、OpenNLPは en-chunker.bin という名前のファイルというモデルを使用します。 これは、指定された生テキストの文をチャンクするように訓練された事前定義モデルです。
OpenNLPライブラリを使用して文をチャンクするには、する必要があります-
- 文をトークン化します。
- そのためのPOSタグを生成します。
- ChunkerModel クラスを使用して en-chunker.bin モデルを読み込みます
- ChunkerME クラスをインスタンス化します。
- このクラスの* chunk()*メソッドを使用して文をチャンクします。
以下は、与えられた生のテキストから文をチャンクするプログラムを書くために従うべきステップです。
ステップ1:文のトークン化
次のコードブロックに示すように、 whitespaceTokenizer クラスの* tokenize()*メソッドを使用して文をトークン化します。
ステップ2:POSタグを生成する
次のコードブロックに示すように、 POSTaggerME クラスの* tag()*メソッドを使用して、文のPOSタグを生成します。
ステップ3:モデルの読み込み
文をチャンク化するモデルは、 ChunkerModel という名前のクラスで表されます。このクラスは、パッケージ opennlp.tools.chunker に属します。
文検出モデルをロードするには-
- モデルの InputStream オブジェクトを作成します(FileInputStreamをインスタンス化し、モデルのパスをString形式でコンストラクターに渡します)。
- 次のコードブロックに示すように、 ChunkerModel クラスをインスタンス化し、モデルの InputStream (オブジェクト)をコンストラクターにパラメーターとして渡します-
ステップ4:chunkerMEクラスのインスタンス化
パッケージ opennlp.tools.chunker の chunkerME クラスには、文をチャンクするメソッドが含まれています。 これは、最大エントロピーベースのチャンカーです。
このクラスをインスタンス化し、前の手順で作成したモデルオブジェクトを渡します。
ステップ5:文のチャンク化
前の手順で作成したトークン配列とタグ配列をパラメーターとして渡すことにより、このメソッドを呼び出します。
例
以下は、指定された生テキストの文をチャンクするプログラムです。 このプログラムを ChunkerExample.java という名前のファイルに保存します。
次のコマンドを使用して、コマンドプロンプトから保存されたJavaファイルをコンパイルして実行します-
実行時に、上記のプログラムは指定された文字列を読み取り、その中の文をチャンクし、以下に示すように表示します。
トークンの位置の検出
次のコードブロックに示すように、* chunkAsSpans()*メソッドによって返されたスパンをSpan配列に格納して印刷できます。
例
以下は、指定された生テキスト内の文を検出するプログラムです。 このプログラムを ChunkerSpansEample.java という名前のファイルに保存します。
次のコマンドを使用して、コマンドプロンプトから保存したJavaファイルをコンパイルして実行します-
実行すると、上記のプログラムは、指定された文字列とその中のチャンクのスパンを読み取り、次の出力を表示します-
チャンカー確率検出
以下は、 chunker によって最後にデコードされたシーケンスの確率を出力するプログラムです。 このプログラムを ChunkerProbsExample.java という名前のファイルに保存します。
次のコマンドを使用して、コマンドプロンプトから保存したJavaファイルをコンパイルして実行します-
実行時に、上記のプログラムは指定された文字列を読み取り、チャンクし、最後にデコードされたシーケンスの確率を出力します。