技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

Kuromoji 形態素解析を使ってみた

ぶっちゃけこれ

www.atilika.org

Scala2.11.6 +SBT 0.13.x で使ってみたログ。

まずは build.sbt

libraryDependencies ++= Seq(
  "org.atilika.kuromoji" % "kuromoji" % "0.7.7"
)

にこんなん書いて、

import org.atilika.kuromoji.{Token, Tokenizer}

object SelfTokenizer {
  import scala.collection.JavaConversions._

  val tokenizer = {
    val result = Tokenizer.builder()
    result.mode(Tokenizer.Mode.SEARCH)
    result.build()
  }

  def tokenize(str: String): List[Token] = this.synchronized {
    if (str == null || str.isEmpty) List.empty[Token] else tokenizer.tokenize(str).toList
  }
}

とすれば完成。一応 Java のライブラリで、crawler4j と組み合わせで使うと幸せに。

Tokenizer.Mode で幾つかモードを指定できて、結果が違う。
今回のこれは、検索エンジンに特化するように、SEARCH を指定。

Token のフィールドは、「Surface(原文)」「PartOfSpeech(品詞情報)」だけ分かってれば良さそう。
形態素解析ライブラリを触ってみる【Igo】 - 謎言語使いの徒然 より手軽でいい感じ(結構最近でもメンテナンスしているので、信用できそう)