ScalaNLPことはじめ
ScalaNLPとは?
"ScalaNLP is a suite of machine learning and numerical computing libraries."
ScalaNLPは"Breeze"と"Epic"というライブラリからなります。
Breezeは線形代数、数値計算、機械学習とテキスト処理を担当。
Epicは統計学的なパーサ? (未公開のため詳細は分からず)
"Coming Very Soon!"とあるのでそのうち公開するかもしれない。
scalala(Scala Linear Algebra library)というプロジェクとの共同開発からはじまっているのでBreezeはscalalaの影響を受けていると思われる。
まぁ、ことはじめということでScalaNLPのGitHubのQuickStartを参考に導入からサンプルまで動かしてみた。
まずいつものごとくsbtのBuild.sbtを下記のように作成。
name := "NLP with Scala"
version := "1.0"
scalaVersion := "2.9.2"
libraryDependencies ++=Seq(
"org.scalanlp" %% "breeze-math" % "0.1",
"org.scalanlp" %% "breeze-learn" % "0.1",
"org.scalanlp" %% "breeze-process" % "0.1",
"org.scalanlp" %% "breeze-viz" % "0.1"
)
resolvers ++= Seq(
"Sonatype Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots/"
)
あとはQuickStartを見れば無問題。
一点つまったこととして
breeze.text.tokenizeでPoterStemmerというクラスを
使っていますが、これは
scala> import breeze.text.analyze.PorterStemmer
が必要です。
詳細はまたの機会に