Kansai.pm#11 参加(+発表)

Kansai.pm の第11回ミーティングに参加してきた。前回に続いて2回目の参加。今回は、「ベイズ理論とPOPFileにおける実装例」というたいそうなお題で発表までさせていただいた。
とりあえず発表のスライド(OOo Impress 形式)/(PDF 形式)。PDF の方はなぜかフォントが変。。。
10分ということでかなり駆け足になってしまった(しかも時間がオーバー(^^;)けれど、一応しゃべりたかったことはしゃべることができたかな。ベイズの定理の部分は id:naoya さんの発表にも出てきていて改めて説明しなくてもよくてちょっと助かった。あまり関連性がなさそうな話でも実はどこかでつながっていておもしろかった。
スライドには入れ忘れた参考文献(?)。

以下は、それぞれの方々の発表のメモと思ったこと。

  • Cell Challenge 2009(吉田さん)

PS3 の CPU (Cell) を使っていかに問題を早く解くプログラムを書くかというプログラミングコンテスト。高速化のテクニックとしてビット並列化やループアンローリングなどの紹介と実装の説明。
こういうレベルまでの高速化を考えるというのは私自身最近あまりなくなってしまったが、数百倍もの効果があるという話を聞くと、やはりこういうプロセスは大事だなと思わされる。職場でテスト中の某プログラムも、処理時間が90分から35分に短縮された程度で喜んでいてはいけない。こういう環境だと、往々にして「動けばok」ということになりがち。反省。

  • HTML からの本文抽出(伊奈さん)

HTML::ExtractContent というモジュールの紹介。HTML の中から、ヘッダやフッタ部分などを除いて、本文らしいところを抽出する。
内容をブロックに分割して、ブロックごとの本文っぽさを評価する(句読点の数などを使って)。本文っぽいブロックが連続しているところをクラスタとして扱い、大きなクラスタを本文として抽出する。
考え方としては非常にわかりやすくておもしろい。パラメータをどうとるかや、他の手法との組み合わせによって高い精度を確保できるとのこと。

  • Perl で学ぶコルーチン(はこべさん)

サブルーチンと同じように、一連の処理をまとめたものだが、サブルーチンとは異り、処理の途中で中断し、またそこから再開させることができる(コルーチンの co は協調の co なのかな)。Ruby 1.9 では標準で実装されている。Perl には Coro というモジュールがあり、コルーチンを用いたいろいろな機能が実現されているが、Coro::State では yield で戻り値を返すことができないなど、汎用的には使いにくい。そのため、Ruby の Fiber と同じように使うことができる Fiber.pm を実装した。
コルーチンというのは初めて知った。使いどころによってはおもしろそう。もう少し一般的になるといいのに。

  • スペルミス修正プログラム(id:naoya さん)

辞書を用いたスペルミス修正プログラムの実装例。考え方としては、辞書にある単語と比較して最も近いものを選びだす(近いかどうかの判定には「編集距離」を使う)という単純なものだが、辞書との総当たりの比較を避けるため、bigram インデックスを用いてしぼりこみをおこなったり、編集距離が同じ単語が複数ある場合にはよく出てくる単語を優先したり、前にある文字が誤っている場合ほどペナルティを高くする、など具体的な実装の紹介。
考え方は単純でも、実用的な速度で動作するようにしたり、実用的な精度で候補を絞りこむためにはさまざまな工夫がある。最後にベイズの定理が出てきたのは意外だったけれど、こういう「推定」系の話にはつきものということか。

  • PerlMol の紹介(樋口さん)

Perl で化学構造情報を処理するためのモジュール。さまざまなファイルフォーマット間の相互変換や、ファイルのパースなどを行うことができる。
化学式、久しぶりに見た気がする。個人的にはこれを実用として使うことはないだろうけれど、こういうところでも Perl が使われているのはおもしろい。

台紙を選び、はてなTwitter の ID、呼び名などを入力すると名札の PDF を出力してくれる。アイコンは ID から自動的にひっぱってきて、PDF 化は PDFJ というモジュールで実現。複数の名札をいっぺんに作ることもできる。
簡単な操作でさくさく名札を作ることができるのは便利。台紙にタコの絵がほしいところ(私しか使わないか。。。(汗))。ID からアイコンをひっぱってくるのは他でも使えそう。Perl で PDF 作成もおもしろい。

略。

  • Kansai.pm 2008 報告 + Strawberry Perl のすすめ(lapis25 さん)

Kansai.pm の 2008 年の活動報告と今後の計画(?)。Strawberry PerlWindows で動く Perl で、コンパイラ(gcc)や make が標準でついている。
私自身は今回が 2 回目の参加。今後もできる限り参加していきたい。発表も、ネタがあれば。。。Strawberry Perl は、以前試しにインストールしてみたものの、モジュールのビルドがうまくいかなかったりして断念してしまった(今は Windows では ActivePerl + MinGW + nmake)。この機会に再チャレンジしてみようかな。

  • XS のはなし 改め Social SKK(antipop さん)

Social IMESKK から使うためのサーバ(skkserv)スクリプト。クライアントから変換したい文字列を受けとり、Social IME で処理した候補を返してくるという感じのもの。かな漢字変換以外にもいろいろと拡張されている。
私も AquaSKK 使いだったりするのだけど、外部 skkserv 辞書が使えるというのは知らなかった。環境設定の辞書タブで辞書を追加して、種類を「外部 skkserv 辞書」にすればいいのかな。これはおもしろそう。


発表された方、おつかれさまでした。どの話も興味深く、おもしろかったです。
また、いろいろと準備いただいたはてなの方々、幹事の方々、ありがとうございました。