Kuromoji

Javaで開発したオープンソース日本語形態素解析エンジン

機能

複合語の分割

Kuromojiは日本語のテキストを形態素と呼ばれる単語に分割します。

吾輩は猫である。   吾輩   は   猫   で   ある   。

品詞のタグ付け

単語一つ一つに名詞、動詞、形容詞のような品詞を付けます。

相撲名詞助詞見る動詞助詞助詞好き形容動詞です助動詞記号

見出し化

動詞と形容詞の基本形を表示することもできます。

表示形基本形
食べたい食べ
楽しくない楽しい
帰りました帰る

読み方

漢字の読み方も抽出できます。

親譲おやゆずりの無鉄砲むてっぽう小供こどもときからそんばかりしている

検索モード

Kuromojiは検索アプリケーションに適した「検索モード」があります。検索モードでは複合でも一致するようにさらに細かく 形態素を分割しています。

例えば、「空港」を検索する場合、「関西国際空港」でも一致して欲しいのですが、多くの形態素解析エンジンは 「関西国際空港」を一つの形態素として扱っているため検索した際一致しなくなってしまいます。

幅広い辞書サポート

Kuromojiは多くの辞書バックエンドに対応しています。 アプリケーションに寄ってipadic、jumandic、unidicなどが使えます。

オープンソース

KuromojiはApacheライセンス、バージョン2.0で提供しています。

検索エンジンのインテグレーション

KuromojiはApache Lucene及びApache Solrの日本語対応の土台となっています。Elasticsearchにも使われています。

Demo

導入

Kuromojiは下記の機能を持った、使い勝手のいい自己完成型の日本語形態素解析エンジンです。

  • 単語の分割。文章を形態素と呼ばれる単語に分割します。
  • 品詞タグ付け。単語を名詞、動詞、助詞、形容詞などに分けます。
  • 基本形抽出。活用の動詞、形容詞から辞書の基本形の見出しを抽出します。
  • 読み方。漢字の読み方を抽出します。

他の機能はあります。詳細は各辞書のToken classをご参照ください。


実用例

この例では、Kuromojiの簡単な使い方を表示しています。 入力文章を形態素に分割してからそれぞれの形態素のフィーチャーを出力します。

package com.atilika.kuromoji.example;

import com.atilika.kuromoji.ipadic.Token;
import com.atilika.kuromoji.ipadic.Tokenizer;
import java.util.List;

public class KuromojiExample {
    public static void main(String[] args) {
        Tokenizer tokenizer = new Tokenizer() ;
        List<Token> tokens = tokenizer.tokenize("お寿司が食べたい。");
        for (Token token : tokens) {
            System.out.println(token.getSurface() + "\t" + token.getAllFeatures());
        }
    }
}
123456789101112131415

プロジェクトをビルドする前に下記の依存情報をpom.xmlに追記してください。

<dependency>
    <groupId>com.atilika.kuromoji</groupId>
    <artifactId>kuromoji-ipadic</artifactId>
    <version>0.9.0</version>
</dependency>
12345