Born Too Late

Yuya's old tech blog.

Blood Farmers が Roadburn Festival 2010 に出演するらしい

2010-10-25 02:46:15

数ヶ月前に登録して、ずっと放置していた Facebook 。昨今のブームもあって、最近ようやく少しずつ使い始めました。

Friends はまだ 2 人と超少ないのですが、そのうちの 1 人は Blood Farmers のギタリスト Dave Depraved です。
彼が、ドゥームの祭典 Roadburn Festival 2011参加するとのことだったので、「Blood Farmers として ?」と尋ねたところ、「Yes」の返事が !

公式によると、まだアナウンスされていないようですが、本人が言うからには間違い無いでしょう。公式にアナウンスされてないことを書いていいのか ? という迷いは一瞬あったものの、 Facebook も一応パブリックな空間だし、出演者自ら認めてるから問題無いんじゃないですかね ...

Roadburn Festival 2011 の出演者のうち、個人的に気になるものをまとめてみました。

と、この豪華な面々に、さらに Blood Farmers まで出演するなんて素晴らしすぎる ... !
オランダは遠いけど、来年こそは是非参加してみたいです。

PHP で N-gram を生成する

2010-10-22 02:04:15

PHP 用の N-gram 生成ライブラリ、 php5-Text_Ngram を Github に公開しました。
個人的な PHP 5.3 の練習ということで作ったので、 namespace 等を使っています。 5.3 未満では動きません。

yuya-takeyama's php5-Text_Ngram at master - GitHub

プロダクションとしての利用は想定していませんので、利用者ご自身の責任においてご利用ください。

Text_Ngram

文字列を N-gram 形式に分割するためのライブラリです。

N-gram オブジェクトを生成し、配列のように扱うことができます。

動作環境

PHP5 (>= PHP 5.3)

インストール

Openpear 経由でインストールできます。

sudo pear channel-discover openpear.org
sudo pear install openpear/Text_Ngram-beta

N-gram とは

例えば全文検索システムを構築する場合、前処理としてインデックスの作成が必要となります。
しかし、欧米の言語と違って、日本語はスペース等の一定のデリミタで区切ることはできません。
そこで、文章的な意味に関わらず、 n 文字ごとの分割した形式を使い、これを N-gram といいます。

分かち書きの方法としては、形態素解析も挙げられますが、 N-gram では辞書のメンテナンスが不要、という利点があります。
また、 n 文字ごとに分割する、という単純なルールなため、言語にかかわらず適用することができます。

使い方

N-gram オブジェクトの生成

require_once '/path/to/Text/Ngram.php';
use Text\Ngram;
$ngram = new Ngram('こんにちは世界!', 2, 'UTF-8');

配列への変換

$ngramArray = $ngram->toArray();

N-gram オブジェクトを配列の要に扱う

echo $ngram[0];     // => こん
echo $ngram[1];     // => んに
echo count($ngram); // => 7

イテレーション

foreach ($ngram as $key => $value) {
    echo "{$key} : {$value}" . PHP_EOL;
}

まとめ

初めにも書きましたが、あくまでも利用者ご自身の責任においてご利用ください。

Pure PHP なので、速くないと思います。
機能も最小限ですが、小規模なサービスでは問題なく使えるとおもいます。

テストはしている & 書いていますが、バグ等見つけたら、フィードバックいただけるとありがたいです。

Dynamic DO!.jp のダイナミック DNS を自動更新するスクリプト

2010-10-17 19:08:41

さくら VPS 契約した記念 + Perl の練習として作ってみました。

スクリプトを適当な場所に保存して、 crontab に以下のような設定を加える。

引数の your_sub_domain は、 ***.ddo.jp なら *** の部分だけで OK 。

実行時刻が 18:47 になっているのは、 n 時ジャストとかにアクセスが集中するそうなので、適当にずらしただけです。 また、実行が 1 日 1 回なのは、さくら VPS だから IP は変わらないという前提のためです。アカウント削除対策が目的なので、実際は 30 日に 1 回の実行でも問題無し。

まぁその辺はそれぞれの必要に応じて、ということで。

更新時に GET する URL については、無料ユーザだと free.ddo.jp で、有料ユーザは ddo.jp となるそうです。そこはベタ書きにしてます。

wget で十分という話もあるけど、まぁ Perl 書きたかっただけなので、そこは気にしない方向で。

関連ページ