Java:kuromojiを使って形態素解析してみる
Last-modified: 2013-08-24 (土) 02:14:21 (3898d)
Top / Java:kuromojiを使って形態素解析してみる
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
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("関西国際空港に行って寿司を食べた。Sampleはもじもじくんです。")) { 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]); if (features.length == 9) { 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] 発音 :。 ########################################################## ===メソッドで取得できる値 表記 :Sample 品詞 :名詞,固有名詞,組織,* 原型 :null 読み :null 既知語 :false 未知語 :true ユーザ辞書?:false すべてのfeature:名詞,固有名詞,組織,*,*,*,* ===token.getAllFeaturesArray()で取得できる配列の中身 fearures[0] 品詞1 :名詞 fearures[1] 品詞2 :固有名詞 fearures[0] 品詞3 :組織 fearures[0] 品詞4 :* fearures[0] 活用形1:* fearures[0] 活用形2:* 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