この文書はScala Advent Calendar 2013の21日目のために書きました。

Scalaにも行列操作や線形代数の便利ライブラリがあります。
pythonに負けてないぜってことで。
それがScalaNLPです。

1. ScalaNLPとは?

ScalaNLPの「NLP」とは、
「Natural Language Processing」
つまり自然言語処理のことらしいです。
SaclaNLPは自然言語処理と機会学習のための数値解析ライブラリを提供しています。

[続きをもっと見る…]


第4回 Solr4にRDBのデータをくわせる

2013-12-04

Solr4を動かしてみるシリーズの4回目です。

今回は、SolrにRDBのデータをくわせてみます。

solrのチュートリアルにはRESTインターフェイスからインデックスするデータを登録するやり方が書いてありますが、インデックスしたいデータの多くはRDBやNoSQL等のストレージに格納されていることが多いと思います。
いっこいっこPOSTなんてやってられません。
で、RDBのデータを読んでインデックスを作成することにします。

このチュートリアルではRDBとしてMySQLを使用します。

[続きをもっと見る…]


第3回 Solr4のインデックス設定

2013-11-30

Solr4を動かしてみるシリーズの3回目です。

さて、いよいよ全文検索エンジンの肝、インデックスの設定です。

3.1. schema.xml

どんなデータから、どのようなアルゴリズムで全文検索を行うかを定義するのが
schema.xml
です。

coreのインスタンスディレクトリの下のconf内に置いてあります。
※schema.xmlがないとエラーになります^^;

[続きをもっと見る…]


第2回 Solr4のコア設定

2013-11-25

Solr4を動かしてみるシリーズの2回目です。

2.1. コアとは?

solrのコアとは、検索エンジンそのものを差します。
サーチャーやインデクサーの定義、インデックスデータの管理、プラグインの管理などを行う単位です。
solrは1.4系からマルチコアに対応し、コアごとにこれらの設定を行えるようになりました。

例えば、

  1. 本のタイトルと内容から検索する
  2. 著者の名前と自己紹介から検索する

例を考えてみます。

[続きをもっと見る…]


1. Solr4.5を動かしてみる

全文検索エンジンSolrにRDBのデータを喰わせてインデックスを作成するところまでを目標に、

Solr4のインストール〜構築を行っていきます。

  1. Solr4を動かしてみる
  2. Solr4のコア設定
  3. Solr4のインデックス設定(さわりだけ)
  4. Solr4にRDBのデータをくわせる
  5. Solr4でレプリケーションを構築する

1.1. まずはjavaのインストール!

RHEL系だったらyum, debian系だったらapt-getで入れてしまいましょう。

[続きをもっと見る…]


gradleでマルチプロジェクト

2013-10-17

今回のテーマは「gradleでマルチプロジェクトをビルド」です。

そもそも、マルチプロジェクトとは何か?、ですが、複数のプロジェクトを含むツリー構造のプロジェクトを指します。

例えば、

rootプロジェクト
|— サブプロジェクトA
|— サブプロジェクトa1
|— サブプロジェクトB
|— ライブラリ

とか

|— rootプロジェクト
|— サブプロジェクトA
|— サブプロジェクトB
|— ライブラリ`

みたいな構造のプロジェクトです。

[続きをもっと見る…]


gradleで使うファイルについて

2013-10-02

gradleコマンドは、いくつかのファイルを暗黙的に使ってビルドを行います。
(antのbuild.xmlやmavenのpom.xmlと同じですね。)

gradleが使うファイルには下記のようなものがあります。

  • build.gradle ・・・ メインのビルドスクリプトです。
  • settings.gradle ・・・ 設定ファイルです。プロジェクトツリーを定義します。マルチプロジェクトの場合必ず必要となります。
  • gradle.properties ・・・ プロパティを設定します。ここで設定したプロパティはbuild.gradleから参照することができます。

gradleはカレント・ディレクトリからbuild.gradleを探し、このファイルを参照してプロジェクトのビルドを行います。
つまり、build.gradleのおいてあるディレクトリでgradleコマンドを実行してあげないといけないということですね。

[続きをもっと見る…]