タグ

ブックマーク / d.hatena.ne.jp/nokuno (3)

  • 「言語処理のための機械学習入門」を参考に各種モデルに対するEMアルゴリズムを実装したよ - nokunoの日記

    Amazonにもレビューを書いたのですが、高村さんの「言語処理のための機械学習入門」を読みました。実はこのを読むのは2回目で、1回目はドラフト版のレビューをさせていただく機会があったのですが、そのときは「言語処理研究者のための機械学習入門」というタイトルで、ちょっと敷居が高いのではないかとコメントしたら「研究者」の部分が削られたという経緯があったりしました。 それはともかくとして、以前読んだときは時間もなくて実装までする暇はなかったのですが、今度はもうちょっとじっくり読みたいなということで、このブログに書いてみようと思います。EMアルゴリズムは教師なし学習を確率モデルと最尤推定でやろうとするときに必ず出てくる手法で、隠れ変数や欠損値を含む色々なモデルに適用できる汎用的なフレームワークになっています。一般的には混合ガウス分布の場合をまず説明して、それがk-means法の一般化した形になって

    se-mi
    se-mi 2010/08/09
    キニナル
  • Social IMEをオープンソース化しました - nokunoの日記

    Social IMEのソースコードを公開しました。現在はサーバーサイドのみですが、クライアントサイドや古いバージョンも順次追加していきたいと思います。 social-ime - Project Hosting on Google CodeSocial IMEは、ユーザー参加型の新しい日本語入力ソフトウェアです。 みんなで単語や正しい変換結果を覚えさせることで、どんどん賢くなっていきます。このページは、日本語入力システムの開発に興味がある開発者・研究者向けのプロジェクトページです。Social IMEを構成する要素のうち、再配布可能なソースコードの公開を行っています。現在のところサーバーサイドの統計的かな漢字変換エンジンの公開を行っていますが、動作にはGoogle N-gram相当のデータが必要となります。 OSS化の経緯について私は、3年前に未踏に採択されてからWeb時代の日本語入力という

  • PHP5のオブジェクト指向と連想配列のパフォーマンス - nokunoの日記

    突然ですが、PHPのオブジェクト指向と連想配列の違いってなんでしょうかね?最近PHP5のオブジェクト指向について触れる機会があったのですが、そもそも型が動的なPHPではポリモフィズムの恩恵も微妙だし、連想配列が強力なので構造体としてもあえて使う理由が見当たらないし… と、ここまで考えて、パフォーマンスに違いがあるのではないか? と思い当たりました。つまり、クラスを「静的な型」として定義し、その型からインスタンスを生成する以上、変数名などの「共通な部分」はクラスの情報として持っておけばよいわけで、1つのクラスからたくさんのインスタンスを生成するときに、メモリ使用量の点で優れているのではないか、と。結論からいうと、オブジェクト指向は、連想配列よりもメモリ使用量が少なく、計算時間も短いことが分かりました。以下、検証コードとその結果です。memory_get_usage()を使ってメモリー使用量を

    se-mi
    se-mi 2009/06/14
    オブジェクト指向で記述した方がパフォーマンスが良い件
  • 1