NIIBE Yutaka
gniib****@fsij*****
2010年 7月 7日 (水) 15:53:25 JST
IEEE Spectrum を読んでいたら、Andrew J. Viterbi さんは2010 Medal of Honor Winner だそうで。 関連して(あるいは正確には *しなくて*) lattice.c の現状の実装に関する感 想です。 lattice.c では「いわゆるビタビアルゴリズムを使用して経路を選ぶ」とコメ ントにありますが、このコメントは削除すべきではないでしょうか。 現状の実装は Viterbi アルゴリズムとは関係ないと思います。似ていると勘違 いしたか、あるいはこれから実装するつもりだったのか。 Viterbi アルゴリズムについては下記を参照ください: http://en.wikipedia.org/wiki/Viterbi_algorithm lattice.c の現状の実装は、文節の feature_list の遷移確率を使って、もっ とも確率の高そうな文節の並びを選択するもの、となっています。 「Viterbi アルゴリズムを利用」する、というのであれば、文節 (Hidden State)、読み (Obserbation) と対応させて、文節の遷移確率に加えて、文節か らその読みが出てくる確率を使って、最尤の文節の並びを見つける、となると 思います。 * * * ナイーブに double を使っていたり、掛け算/割り算を使っていたりする点は改 善の余地があるでしょう。get_poisson もナイーブにそのまま pow と expを (毎回)呼ぶところも改善の余地があるでしょう。 計算機資源に窮する人生を送ってきたとすると、こういうナイーブなのを見る と富豪だなぁ、と感じるところでしょうか。 ファイル名の lattice.c というのも再考の余地あり。 --