[[FrontPage]]
*Java:kuromojiを使って形態素解析してみる [#s006e5a5]
kuromojiを使って形態素解析してみます。
kuromojiはSolrに同梱されている形態素解析器で辞書が内包されているため、jar一個ダウンロードするだけでお手軽に使えます。
-http://www.atilika.org/
***資材のDL [#j77d7c68]
以下のURLよりDLします。
-https://github.com/atilika/kuromoji/downloads
展開すると、サンプルのコードとjarが入っているので、jarをクラスパスに追加します。
***サンプルコード [#z6358b64]
基本的に、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();
}
}
}
***出力 [#d7b03481]
こんな感じに出力されます。
##########################################################
===メソッドで取得できる値
表記 :関西国際空港
品詞 :名詞,固有名詞,組織,*
原型 :関西国際空港
読み :カンサイコクサイクウコウ
既知語 :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