2009-10-01から1ヶ月間の記事一覧

初めてのEMアルゴリズム

EMアルゴリズムとは今日の自然言語処理特論の内容はEMアルゴリズム。N-gram言語モデルを作るときには、未知語に関連して0頻度問題がつきまとう。TrigramからBigram、BigramからUnigramと切り替えていくback-offなどの方法もあるが、今日やったのは線形補完法…

言語モデルの準備

自然言語処理特論で使うやつの準備の準備くらいの。準備として青空文庫のテキストを食わせる。で、何か入力の文を与えるとUnigram、Bigram、Trigramの言語モデルでのその文が出てくる確率を計算する。確率は非常に小さくなるので、出力するところでは対数を…

ガウス過程についてのメモ

ガウス過程の定義 ガウス分布との違い 普通のやり方 関数空間から見た視点 ガウス過程のメリットデメリット ガウス過程のメリット ガウス過程のデメリット まだよく分かってない付近 ガウス過程の定義関数上の確率分布で、任意の点集合に対するの値の同時分…

最近のゼミ

この辺読んでます。カーネル多変量解析―非線形データ解析の新しい展開 (シリーズ確率と情報の科学)作者: 赤穂昭太郎出版社/メーカー: 岩波書店発売日: 2008/11/27メディア: 単行本購入: 7人 クリック: 180回この商品を含むブログ (32件) を見るPRMLの下巻の…

applyの普通じゃない(?)ような使い方

R

R苦手の会で説明したんだけど、なんとなくBlogでも書いてみる。こんな風なcsvファイルがあったとする。 hoge, 2 fuga, 3 piyo, 1 これは文章中にhogeが2回、fugaが3回、piyoが1回出てきたというようなものを表わしている。ここで、このcsvの情報から単語の登…

素晴しい!!

C++

PerlもRもヘルプが大変充実しているんですが、C++にはないので非常に苦痛でした。が、こんなのができたらしい! GitHub - kazuho/cppref: man-style access to cppreference.com documents これでイライラしなくてよいですね!!boostにも同じようなものがある…

Trieとかtcとか系列タギングとか

タブ区切りデータの三列目を取り出す「-F」の使い方、すぐ忘れる。。。 perl -F"\t" -anle 'print $F[2]' umls2ja.tab Trieを構築するためのライブラリTx http://www-tsujii.is.s.u-tokyo.ac.jp/~hillbig/tx-j.htm dartsのほうは日本語だとうまく動かない…?T…

Back-off smoothing

書いてるとちゅー!!先週は言語モデル(n-gram)の話があって、パープレキシティの話をして、多項分布の最尤推定だとパープレキシティが無限大にいってしまうからどうにかしないと!!ということをやりました。 言語モデルのよさをはかる指標としてのパープレキシ…

Nelder-Mead method

去年の最適化理論の課題は、準ニュートン法あたりを実装してバナナ関数に適用して軌跡書いてね、というようなものだった(はず)だけど、今年は微妙に違う。今年はNelder-Mead methodというのを使ってバナナ関数で遊んでね、というものに変わった。 wikipedia:…

マルチスレッドとstl

C++

スレッドの中でvectorに次々につっこんでいくプログラム。 #include <iostream> #include <vector> #include <boost/foreach.hpp> #include <boost/thread.hpp> #include <boost/bind.hpp> using namespace std; vector<int> v; void greetingWithID(int i) { v.push_back(i); } int main(int argc, char *argv[]) { int n = 1000; boost::</int></boost/bind.hpp></boost/thread.hpp></boost/foreach.hpp></vector></iostream>…

mapのvalueでソートしたい

C++

PerlやRubyみたいに。stlのmapはディフォルトでキーでソートされていて、valueではできないっぽい。結論からするとpriority_queueを使うとよさそう。 #include <iostream> #include <map> #include <queue> #include <string> #include <boost/foreach.hpp> typedef std::map<std::string, int> container; typedef std::pair<std::string, int> val</std::string,></std::string,></boost/foreach.hpp></string></queue></map></iostream>…