トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Java:kuromojiを使って形態素解析してみる のバックアップ(No.1)


FrontPage

Java:kuromojiを使って形態素解析してみる

kuromojiを使って形態素解析してみます。

kuromojiはSolrに同梱されている形態素解析器で辞書が内包されているため、jar一個ダウンロードするだけでお手軽に使えます。

資材のDL

以下のURLよりDLします。

展開すると、サンプルのコードとjarが入っているので、jarをクラスパスに追加します。

サンプルコード

基本的に、Tokenクラスと、Tokenizerクラスを使用するだけです。

Tokenizerで文章をトークンに分解し、Tokenクラスのメソッドで各種情報を取得します。

getSurfaceForm?
トークンに分解された単語が返却されます。
getPartOfSpeech?
トークンの品詞が返却されます。
getBaseForm?
トークンの原型が返却されます。動詞の場合は、基本形に直してくれます。
getReading
トークンの読みが返却されます。
isKnown、isUnknown
辞書の登録語かどうかをbooleanで返却します。
isUser
ユーザ辞書の登録後かどうかをbookeanで返却します。
getAllFeatures?、getAllFeaturesArray?
すべての情報をString/String[]で返却します。

KuromojiSample?.java

package kuromojisample;

import org.atilika.kuromoji.Token;
import org.atilika.kuromoji.Tokenizer;

public class KuromojiSample {

    public static void main(String[] args) {
        Tokenizer tokenizer = Tokenizer.builder().build();
        for (Token token : tokenizer.tokenize("関西国際空港に行って寿司を食べた。")) {
            String[] features = token.getAllFeaturesArray();
            System.out.println("##########################################################");
            System.out.println("===メソッドで取得できる値");
            System.out.println("表記   :" + token.getSurfaceForm());
            System.out.println("品詞   :" + token.getPartOfSpeech());
            System.out.println("原型  :" + token.getBaseForm());
            System.out.println("読み  :"+token.getReading());
            System.out.println("既知語 :" + token.isKnown());
            System.out.println("未知語 :" + token.isUnknown());
            System.out.println("ユーザ辞書?:"+ token.isUser());
            System.out.println("すべてのfeature:" +token.getAllFeatures());
            System.out.println("===token.getAllFeaturesArray()で取得できる配列の中身");
            System.out.println("fearures[0] 品詞1 :" + features[0] );
            System.out.println("fearures[1] 品詞2 :" + features[1]);
            System.out.println("fearures[0] 品詞3 :" + features[2]);
            System.out.println("fearures[0] 品詞4 :" + features[3]);
            System.out.println("fearures[0] 活用形1:" + features[4]);
            System.out.println("fearures[0] 活用形2:" + features[5]);
            System.out.println("fearures[0] 原型  :" + features[6]);
            System.out.println("fearures[0] 読み  :" + features[7]);
            System.out.println("fearures[0] 発音  :" + features[8]);
            System.out.println();
        }
    }

}

出力

こんな感じに出力されます。

##########################################################
===メソッドで取得できる値
表記   :関西国際空港
品詞   :名詞,固有名詞,組織,*
原型  :関西国際空港
読み  :カンサイコクサイクウコウ
既知語 :true
未知語 :false
ユーザ辞書?:false
すべてのfeature:名詞,固有名詞,組織,*,*,*,関西国際空港,カンサイコクサイクウコウ,カンサイコクサイクーコー
===token.getAllFeaturesArray()で取得できる配列の中身
fearures[0] 品詞1 :名詞
fearures[1] 品詞2 :固有名詞
fearures[0] 品詞3 :組織
fearures[0] 品詞4 :*
fearures[0] 活用形1:*
fearures[0] 活用形2:*
fearures[0] 原型  :関西国際空港
fearures[0] 読み  :カンサイコクサイクウコウ
fearures[0] 発音  :カンサイコクサイクーコー

##########################################################
===メソッドで取得できる値
表記   :に
品詞   :助詞,格助詞,一般,*
原型  :に
読み  :ニ
既知語 :true
未知語 :false
ユーザ辞書?:false
すべてのfeature:助詞,格助詞,一般,*,*,*,に,ニ,ニ
===token.getAllFeaturesArray()で取得できる配列の中身
fearures[0] 品詞1 :助詞
fearures[1] 品詞2 :格助詞
fearures[0] 品詞3 :一般
fearures[0] 品詞4 :*
fearures[0] 活用形1:*
fearures[0] 活用形2:*
fearures[0] 原型  :に
fearures[0] 読み  :ニ
fearures[0] 発音  :ニ

##########################################################
===メソッドで取得できる値
表記   :行っ
品詞   :動詞,自立,*,*
原型  :行く
読み  :イッ
既知語 :true
未知語 :false
ユーザ辞書?:false
すべてのfeature:動詞,自立,*,*,五段・カ行促音便,連用タ接続,行く,イッ,イッ
===token.getAllFeaturesArray()で取得できる配列の中身
fearures[0] 品詞1 :動詞
fearures[1] 品詞2 :自立
fearures[0] 品詞3 :*
fearures[0] 品詞4 :*
fearures[0] 活用形1:五段・カ行促音便
fearures[0] 活用形2:連用タ接続
fearures[0] 原型  :行く
fearures[0] 読み  :イッ
fearures[0] 発音  :イッ

##########################################################
===メソッドで取得できる値
表記   :て
品詞   :助詞,接続助詞,*,*
原型  :て
読み  :テ
既知語 :true
未知語 :false
ユーザ辞書?:false
すべてのfeature:助詞,接続助詞,*,*,*,*,て,テ,テ
===token.getAllFeaturesArray()で取得できる配列の中身
fearures[0] 品詞1 :助詞
fearures[1] 品詞2 :接続助詞
fearures[0] 品詞3 :*
fearures[0] 品詞4 :*
fearures[0] 活用形1:*
fearures[0] 活用形2:*
fearures[0] 原型  :て
fearures[0] 読み  :テ
fearures[0] 発音  :テ

##########################################################
===メソッドで取得できる値
表記   :寿司
品詞   :名詞,一般,*,*
原型  :寿司
読み  :スシ
既知語 :true
未知語 :false
ユーザ辞書?:false
すべてのfeature:名詞,一般,*,*,*,*,寿司,スシ,スシ
===token.getAllFeaturesArray()で取得できる配列の中身
fearures[0] 品詞1 :名詞
fearures[1] 品詞2 :一般
fearures[0] 品詞3 :*
fearures[0] 品詞4 :*
fearures[0] 活用形1:*
fearures[0] 活用形2:*
fearures[0] 原型  :寿司
fearures[0] 読み  :スシ
fearures[0] 発音  :スシ

##########################################################
===メソッドで取得できる値
表記   :を
品詞   :助詞,格助詞,一般,*
原型  :を
読み  :ヲ
既知語 :true
未知語 :false
ユーザ辞書?:false
すべてのfeature:助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
===token.getAllFeaturesArray()で取得できる配列の中身
fearures[0] 品詞1 :助詞
fearures[1] 品詞2 :格助詞
fearures[0] 品詞3 :一般
fearures[0] 品詞4 :*
fearures[0] 活用形1:*
fearures[0] 活用形2:*
fearures[0] 原型  :を
fearures[0] 読み  :ヲ
fearures[0] 発音  :ヲ

##########################################################
===メソッドで取得できる値
表記   :食べ
品詞   :動詞,自立,*,*
原型  :食べる
読み  :タベ
既知語 :true
未知語 :false
ユーザ辞書?:false
すべてのfeature:動詞,自立,*,*,一段,連用形,食べる,タベ,タベ
===token.getAllFeaturesArray()で取得できる配列の中身
fearures[0] 品詞1 :動詞
fearures[1] 品詞2 :自立
fearures[0] 品詞3 :*
fearures[0] 品詞4 :*
fearures[0] 活用形1:一段
fearures[0] 活用形2:連用形
fearures[0] 原型  :食べる
fearures[0] 読み  :タベ
fearures[0] 発音  :タベ

##########################################################
===メソッドで取得できる値
表記   :た
品詞   :助動詞,*,*,*
原型  :た
読み  :タ
既知語 :true
未知語 :false
ユーザ辞書?:false
すべてのfeature:助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
===token.getAllFeaturesArray()で取得できる配列の中身
fearures[0] 品詞1 :助動詞
fearures[1] 品詞2 :*
fearures[0] 品詞3 :*
fearures[0] 品詞4 :*
fearures[0] 活用形1:特殊・タ
fearures[0] 活用形2:基本形
fearures[0] 原型  :た
fearures[0] 読み  :タ
fearures[0] 発音  :タ

##########################################################
===メソッドで取得できる値
表記   :。
品詞   :記号,句点,*,*
原型  :。
読み  :。
既知語 :true
未知語 :false
ユーザ辞書?:false
すべてのfeature:記号,句点,*,*,*,*,。,。,。
===token.getAllFeaturesArray()で取得できる配列の中身
fearures[0] 品詞1 :記号
fearures[1] 品詞2 :句点
fearures[0] 品詞3 :*
fearures[0] 品詞4 :*
fearures[0] 活用形1:*
fearures[0] 活用形2:*
fearures[0] 原型  :。
fearures[0] 読み  :。
fearures[0] 発音  :。

ほんと、簡単に使えますなw

作者に感謝感謝ですw