タグ

ブックマーク / chasen.org/~taku (8)

  • きまぐれ日記: MIRAとstructured outputs

    MIRAというアルゴリズムが統計的係り受けの学習でいい成績を叩き出しているようです. 係り受けに特化したアルゴリズムではなく,structured output ならほぼ何でもできる非常に汎用性の高いアルゴリズムのようです.詳細はこちら 面白そうなので,ちょっと深追いしてみました.特徴をまとめると - オンライン学習 - k-best解が得られるような decoder さえあれば動く - single-best でももちろん可能 - single best の場合は Collins voted perceptron に酷似 - single best の場合の inference は SMO と共通点があり,実際 max-margin parsing の特殊系になっている などなど,面白い点がたくさんあります. もともとは Ben Tasker の Max margin parsing の

  • きまぐれ日記: 2009年04月 アーカイブ

    tettsyun
    tettsyun 2010/01/16
    mmap
  • BACT: a Boosting Algorithm for Tree Classification

    BACT: a Boosting Algorithm for Classification of Trees $Id: index.html 1574 2007-01-26 11:59:13Z taku $; Introduction BACT is a machine learning tool for labeled orderd trees [Kudo & Matsumoto 2004]. The important characteristic is that the input example x is represented not in a numerical feature vector (bag-of-words) but in a labeled ordered tree. Author Taku Kudo Download BACT is free software;

    tettsyun
    tettsyun 2009/10/14
    boosting
  • きまぐれ日記: C++ で多態

    C++ で多態(polymorphism)を実現する方法はたくさんある。 昔は継承で実現するのが一般的だったが、最近は 委譲が推奨されている。そこで、以下のコードを書いてみた。 おそらくその筋の人からみれば当たり前だと思うけど。 #include <iostream> class Dog { public: void bark () { std::cout << "ワンワン" << std::endl; } }; class Cat { public: void bark () { std::cout << "にゃー" << std::endl; } }; class AbstractAnimal { public: virtual void bark () = 0; }; template <typename T> class Animal: public AbstractAnimal

    tettsyun
    tettsyun 2009/09/17
    template, 多態
  • Darts: Double ARray Trie System

    Darts: Double-ARray Trie System はじめに Darts は, Double-Array [Aoe 1989]を構築するための シンプルな C++ Template Library です. Double-Array は Trie を表現するためのデータ構造です. ハッシュ木, デジタルトライ, パトリシア木, Suffix Array による擬似 Trieといった 他の Trie の実装に比べ高速に動作します. オリジナル の Double-Arrayは, 動的に key の追加削除を行えるような 枠組ですが, Darts は ソート済の辞書を一括してDouble-Array に変換することに機能を絞っています. ハッシュのような単純な辞書として使うことも可能ですが, 形態素解析器の辞書に必須の Common Prefix Search を非常に高速に行うことが

    tettsyun
    tettsyun 2009/09/10
    double array
  • きまぐれ日記: 情報抽出アルゴリズム Espresso 最終章

    Espresso を飲みながらさらに Espresso を考えていました。 r_instance = A^n * r_instance_0 となるのは間違いないと思います。A は P * P^{T}、さらに P = 1/|I||P| * pmi(i, p)/ maxpmi です。 A は、インスタンスどうしの類似度を表現した正方対称行列です。A_{i,j} はインスタンス i, j の類似度です。 類似度は、パターン個数次元からなるベクトルの内積で、各次元は pmi となります。 この形だと、r_instanc は r_instance_0 できまるので、初期値に依存してるように思えますが、A^n がいったい どういう意味を持つのかずっと考えていました。 A_{i,j} が 0, 1 の場合、A は無向グラフの接続行列となります。i,j がつながっている場合は A_{i,j} = 1となり

  • きまぐれ日記: Mac OS X Leopard に「標準で」インストールされている MeCabを使ってみる

    Mac OS X Leopard の Spotlight に MeCab が使われているらしいという情報を聞いたので、実際に深追いしてみました。 いとも簡単に /usr/lib/libmecab* , /usr/include/mecab.h と /usr/lib/mecab/dic/apple/{ja,tc,sc} というディレクトリを発見しました。ts, sc は traditional/simplified Chinese (繁体字/簡体字) の略で、中国語の辞書だと推察されます。辞書のディレクトリはさらに dic/apple/ja/{LE,BE} という風に、エンディアンごとに分かれています。MeCabの辞書はエンディアン依存なので、こうするしかないのかもしれません。 さて、この辞書を使って、UTF8の文字列を流し込んでみたのですが、うまいこと解析してくれません。MeCabのバイナ

    tettsyun
    tettsyun 2009/07/18
    mecab
  • YamCha: Yet Another Multipurpose CHunk Annotator

    $Id: index.html,v 1.37 2005/12/24 14:18:58 taku Exp $; Introduction YamCha is a generic, customizable, and open source text chunker oriented toward a lot of NLP tasks, such as POS tagging, Named Entity Recognition, base NP chunking, and Text Chunking. YamCha is using a state-of-the-art machine learning algorithm called Support Vector Machines (SVMs), first introduced by Vapnik in 1995. YamCha is e

    tettsyun
    tettsyun 2009/06/30
    YamCha
  • 1