The First Cry of Atom

ScalaNLPのチュートリアル

ScalaNLPを触ってみたので、その時のチュートリアル。 ScalaNLPは基本的にはSBTの依存解決でライブラリをダウンロードできるのでそのとおりに行う。 build.sbtファイルに以下のように書いてupdateを行う libraryDependencies ++= Seq( // other dependencies here // pick and choose: "org.scalanlp" % "breeze-math_2.10" % "0.4", "org.scalanlp" % "breeze-learn_2.10" % "0.4", "org.... Read more

SBTとEclipseでScala開発環境

SBTの使い方がなんとなくわかってきたので、今度はEclipseにSBTプロジェクトを導入してみる。 Eclipse plubin for SBTのinstall プロジェクトに必要なプラグインをインストールする。この場合はproject/plubins.sbtに以下のように記述する。 resolvers += Classpaths.typesafeResolver addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.2") ここで以下のコマンドを打てばこのプラグインがインストールされ、Eclipseプロジェクトに必要な.projectファイルができあがる $ sbt eclipse これ... Read more

SBTを使ったプロジェクト作成(2)

スコープに関するお話 昨日の続き。 実はSettingKeyにはスコープがあり、異なるプロジェクトではことなる値を使うことができる。そもそも同じ場所に置くなよという気はするがテスト用とかリリース用にビルドしたい場合に便利。このビルドの設定を分けるスコープの”軸”がSBTには3つある。 プロジェクト コンフィギュレーション タスク プロジェクト軸によるスコープ それぞれのプロジェクトに対して設定が必要という場合がこのケース。ビルド全体(全プロジェクト)でもよい。 コンフィギュレーション軸によるスコープ ビルドの種類によるわけかた。テストとかリリース用とか、デバッグ用とか。 タスク軸によるスコープ 少しよくわからないけれど、他のタスクに影響を受けるようなスコープのこ... Read more

SBTを使ったプロジェクト作成(1)

SBT(Simple Build Tool)というScalaのビルドツールを使ってみる。 ここを参考にした。 インストール まずインストール。macの場合はHomebrewで用意されているみたい。 $ brew install sbt プロジェクトの作成 ひな形は自分で作る。ここではhelloプロジェクトを作ってみる。 $ mkdir hello $ echo 'object Hi { def main(args: Array[String]) = println("Hi!") }' > hw.scala $ sbt # ここで必要なパッケージとか勝手にインストールしてビルドしてくれるみたい > run ・・・ Hi! 複雑なことはまだたくさんあるけれど、... Read more

Scalaを使うことに

汎用人工知能の開発をするにあたって使う言語とかを考えていた。汎用人工知能(まだそれが何を意味するのか明瞭にはわかってない)で必要なスペックは次のものなのではないかなとあげてみた。 高速 並列処理に向いている 関数型(少なくとも副作用を前提としないプログラム) ここであげた条件には自分の好み、向き不向きが含まれているけれど漠然とした現状を考えるとこれが妥当なのではないかな。 高速であることはいうまでもない。多分CとかC++が一番よい。でもC、C++はメモリ管理とか大変そうで個人的にはデカイものを書くときには向いてない気がする。 並列処理に向いているというのは機械学習を行わせたいので今流行のMahoutもJubatusも並列で計算をおこなっているのでそれが向いているもの... Read more