OpenNLPのPOSTaggerの使い方まとめ
Apache OpenNLPのPOSTagger(品詞タグ付け器)の使い方をまとめました.
はじめに:Apache OpenNLPとは?
Javaで実装されたオープンソースの自然言語処理(NLP)ライブラリです.
形態素解析,品詞タグ付け,固有表現抽出や, 色々なアルゴリズムやモデルをサポートしています.
今回はそれらの機能のうち,品詞タグ付けについて扱います.
英語を始めとした西洋の言語をサポートしており,日本語には対応していません.
POSTaggerとは?
文を与えると,文中の各単語の品詞(part-of-speech; pos)を返してくれる(品詞タグをつけてくれる)ものです.
例えば,「The Apache OpenNLP library is a machine learning based toolkit for the processing of natural language text.」という文を与えると,以下のようにタグ付けしてくれます.
The DT Apache NNPS OpenNLP NNP library NN is VBZ a DT machine NN learning NN based VBN toolkit NN for IN the DT processing NN of IN natural JJ language NN text. NN
文は以下のOpenNLP公式サイトから引用しました.
なお,品詞タグの意味については以下のページをご覧ください.
英語:Penn Treebank P.O.S. Tags
日本語:http://someya-net.com/wlc/POStagset.html
OpenNLPの入手
OpenNLPは上記の公式サイトからDLできます.
DLして解凍すると色々ファイルが出てきますが,使用するのは以下の2つのみです.
lib/opennlp-maxent-3.0.3.jar lib/opennlp-tools-1.5.3.jar
これらのファイルをクラスパスに通しておいてください.
モデルファイルの入手
品詞タグ付けを行うにはモデルファイルが必要です.
以下からDLして下さい.
DLするのは,「en-pos-maxent.bin」です.
サンプルコードを動かしてみる
サンプルコードをGistに置いといたので,それを動かしてみてください.
使用前に,MODEL_FILE_PATH
を先程DLしたモデルファイルのパスに設定してください.
実行すると,上記で示したような実行結果が出力されます.
tagger.tag(sentence)
メソッドでタグ付けができます.
渡す文は予め単語の配列にしておく必要があります.
返り値はタグを格納した配列で,単語の配列のインデックスと対応しています.
細かいことはソースコード中に書いてあるのでそちらをご覧ください.わずか30行のコードです^^