Javaで開発したオープンソース日本語形態素解析エンジン
Kuromojiは日本語のテキストを形態素と呼ばれる単語に分割します。
単語一つ一つに名詞、動詞、形容詞のような品詞を付けます。
動詞と形容詞の基本形を表示することもできます。
表示形 | 基本形 |
---|---|
食べたい | 食べる |
楽しくない | 楽しい |
帰りました | 帰る |
漢字の読み方も抽出できます。
Kuromojiは検索アプリケーションに適した「検索モード」があります。検索モードでは複合でも一致するようにさらに細かく 形態素を分割しています。
例えば、「空港」を検索する場合、「関西国際空港」でも一致して欲しいのですが、多くの形態素解析エンジンは 「関西国際空港」を一つの形態素として扱っているため検索した際一致しなくなってしまいます。
Kuromojiは多くの辞書バックエンドに対応しています。 アプリケーションに寄ってipadic、jumandic、unidicなどが使えます。
KuromojiはApacheライセンス、バージョン2.0で提供しています。
KuromojiはApache Lucene及びApache Solrの日本語対応の土台となっています。Elasticsearchにも使われています。
Kuromojiは下記の機能を持った、使い勝手のいい自己完成型の日本語形態素解析エンジンです。
他の機能はあります。詳細は各辞書のToken classをご参照ください。
この例では、Kuromojiの簡単な使い方を表示しています。 入力文章を形態素に分割してからそれぞれの形態素のフィーチャーを出力します。
1package com.atilika.kuromoji.example;
2
3import com.atilika.kuromoji.ipadic.Token;
4import com.atilika.kuromoji.ipadic.Tokenizer;
5import java.util.List;
6
7public class KuromojiExample {
8 public static void main(String[] args) {
9 Tokenizer tokenizer = new Tokenizer() ;
10 List<Token> tokens = tokenizer.tokenize("お寿司が食べたい。");
11 for (Token token : tokens) {
12 System.out.println(token.getSurface() + "\t" + token.getAllFeatures());
13 }
14 }
15}
プロジェクトをビルドする前に下記の依存情報をpom.xmlに追記してください。
1<dependency>
2 <groupId>com.atilika.kuromoji</groupId>
3 <artifactId>kuromoji-ipadic</artifactId>
4 <version>0.9.0</version>
5</dependency>