Kuromoji(形態素解析)を2分で使えるようにする方法(Java)

※サンプル・コード掲載

あらすじ

自然言語処理関連の仕事をする中、絶対に切り離せないのが形態素解析です。

特に、Java、Pythonで使用する事が多いので、ここに記しておきます。

JavaでMeCabをセットアップすると大変ですが、Kuromojiだと使うまでに3分もかからないはずです。

使用した環境

  • Windows or Macを仮定
  • Eclipse(Neon3)を使用
  • Java8.X を使用

Kuromojiを使用するための設定(1分以内)

*EclipseでのMavenプロジェクトの作成方法等は、本記事の範囲外として割愛させて頂きます。

pom.xmlファイルへの依存関係の追加

Kuromojiのリポジトリの追加

<repositories>
     <repository>
         <id>Atilika Open Source repository</id>
         <url>http://www.atilika.org/nexus/content/repositories/atilika</url>
     </repository>
 </repositories>

依存関係の追加

<dependency>
     <groupId>org.atilika.kuromoji</groupId>
     <artifactId>kuromoji</artifactId>
     <version>0.7.7</version>
     <type>jar</type>
     <scope>compile</scope>
 </dependency>

基本的にはこれだけです。

Kuromojiを使ってみよう(1分以内)

サンプルコード

基本的に以下のコードをコピペして頂ければ、そのまま使えます。非常に楽ですね。

import java.util.List;

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

public class KuromojiTest {

 public static void main(String[] args) {
 String str = "これは形態素解析のテストです"; // 形態素解析対象文字列

 Tokenizer tokenizer = Tokenizer.builder().build(); // Kuromojiオブジェクト作成

 List tokens = tokenizer.tokenize(str); // Tokenize

 for (Token token : tokens) {
 System.out.println("----------------------");
 System.out.println("表層:" + token.getSurfaceForm()); // Tokenの表層

 System.out.println("語幹:" + token.getBaseForm()); // Tokenの語幹

 System.out.println("読み:" + token.getReading()); // Tokenの読み

 System.out.println("POS:" + token.getAllFeatures()); // TokenのPOS詳細情報
  }
 }
}

実行結果

以下は上記のコードの実行結果です。

----------------------
表層:これ
語幹:これ
読み:コレ
POS:名詞,代名詞,一般,*,*,*,これ,コレ,コレ
----------------------
表層:は
語幹:は
読み:ハ
POS:助詞,係助詞,*,*,*,*,は,ハ,ワ
----------------------
表層:形態素
語幹:形態素
読み:ケイタイソ
POS:名詞,一般,*,*,*,*,形態素,ケイタイソ,ケイタイソ
----------------------
表層:解析
語幹:解析
読み:カイセキ
POS:名詞,サ変接続,*,*,*,*,解析,カイセキ,カイセキ
----------------------
表層:の
語幹:の
読み:ノ
POS:助詞,連体化,*,*,*,*,の,ノ,ノ
----------------------
表層:テスト
語幹:テスト
読み:テスト
POS:名詞,サ変接続,*,*,*,*,テスト,テスト,テスト
----------------------
表層:です
語幹:です
読み:デス
POS:助動詞,*,*,*,特殊・デス,基本形,です,デス,デス