2009-01-01から1年間の記事一覧
集合は定義から、同じ要素は含まないわけですが、そうゆうのも許して欲しいときがある。こういう2つのベクトルがあったとき x <- c("a", "b", "c", "a", "a", "b") y <- c("c", "d", "c") Rでの差集合演算を使うともちろんこうなる。 > setdiff(x, y) [1] "a…
Rは コーパス言語学的なものに対しては相性がよい 一方、(言語モデルなどの)自然言語処理に対してはひたすら相性が悪い そんな気がしている。 see also CRAN Task View: Natural Language Processing
いやはや、Tsukuba.R#5をやってから大分経過しております。。。 Tsukuba.R#5をやってきました - Seeking for my unique color. というわけで、Tsukuba.R#6を開催しようと思います。# 実は10月半ばに開催する予定だったんですが、大学の全学停電や学園祭シー…
なぜならば、はてなサマーインターン2009が記事になっているからだ!!WEB+DB PRESS Vol.53作者: 桜井雅史,縣俊貴,西田圭介,青木靖,川口耕介,井奥雄一,冨田慎一,森田創,鶴岡直也,長野雅広,武者晶紀,富士慶,中山大輔,常澤邦幸,山?賢,近藤裕介,稲葉健二,Elaine G…
コンテナにはどんな種類があって、どんな感じのことができるかは段々分かってきたけど、もっともっと使いこなしたい。ということで。Effective STL―STLを効果的に使いこなす50の鉄則作者: スコットメイヤーズ,Scott Meyers,細谷昭出版社/メーカー: ピアソン…
なぜ最大エントロピー法が必要か自然言語処理特論の授業で最大エントロピー法が紹介されました。言語モデルで、パープレキティが小さいモデルを作るのが目標なんですが、EMアルゴリズムでは、小さくできるパープレキシティにちょっと限界がありました。まあ…
ゼミでid:reposeがSVMについて話しました。SVRとかそういうのはとりあえずやらないで、マージン最大化とヒンジ関数を使った誤差最小化の枠組みを見たり、解のスパースネスがどうして導けるのかとかについて勉強しました。参考にしてたのはこの2冊。パターン…
ネットに繋がらないところでゼミの準備とかをしていて、「あ、PRMLのこの図を今の資料に入れたい!でも、ネットつながらねー」ということが時々あるので、じわじわと落としてくるスクリプトを書いた。寝る前にでも走らせておいてください。くれぐれもゆーっく…
なんだかようやく調子が出てきはじめた、という感じらしいです。どれもトピックつまみぐい。書き出してみたところ「ああ、俺が好きそうなところばっかりやってるな」と思いました(謎)。工学基礎 最適化とその応用 (新・工科系の数学)作者: 矢部博出版社/メー…
混合正規分布について 混合正規分布のEMアルゴリズムによるパラメータ推定 EMアルゴリズムの単調増加性について この前はEMアルゴリズムがどんな感じのメカニズムで、どんな性質を持っているか簡単に書いた。 初めてのEMアルゴリズム - yasuhisa's blog とい…
東工大の杉山先生の講演がすごく面白かったのでメモ。やりたいこと、特徴p(x)とp'(x)という分布を推定しようという問題があったとする。このとき、二つの分布のパラメータを推定しないといけないので普通は大変。そこで、w(x) = p'(x) / p(x)を推定するとい…
基本ここを真似する。make installができないので精神衛生上よくないように思う。 http://ppwww.phys.sci.kobe-u.ac.jp/~akusumoto/linux/detail.php?d=config/tbb/install ヘッダーファイルは/usr/local/include、ライブラリは/usr/local/lib/tbbみたいな感…
"cppref algorithm/set_difference"とかで調べればすぐに分かるだろう、と思ったら分からんかった><inserterって何やねん。 #include <iostream> #include <algorithm> #include <set> #include <boost/foreach.hpp> using namespace std; int main(int argc, char *argv[]) { set<int> s1; s1.insert(1); s1.</int></boost/foreach.hpp></set></algorithm></iostream>…
こんなディレクトリ構成になっていて /Users/syou6162/dbcls/pne% ls 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 1885-1995のディレクトリ配下にあるファイルの数と1996-2006以下にあ…
Perlワンライナー。 perl -nle 'print unless $_ =~ m/^[!-~\s]+$/' result.txt ついでに半角カタカナさんも死んで欲しいとき。 perl -nle 'print $_ if $_ !~ /^(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/' umls.txt 参考 http://code.nanigac.com/so…
自然言語処理特論の最終課題は言語モデルを作ることで、評価はテストセットパープレキシティ(PP)によってされる。ちなみに、昨日は簡単な言語モデルを作っていた。Trigramで線形補完法*1。PPが14を下回ったら評価のAがくるのだが、線形補完法を使うとギリギ…
EMアルゴリズムとは今日の自然言語処理特論の内容はEMアルゴリズム。N-gram言語モデルを作るときには、未知語に関連して0頻度問題がつきまとう。TrigramからBigram、BigramからUnigramと切り替えていくback-offなどの方法もあるが、今日やったのは線形補完法…
自然言語処理特論で使うやつの準備の準備くらいの。準備として青空文庫のテキストを食わせる。で、何か入力の文を与えるとUnigram、Bigram、Trigramの言語モデルでのその文が出てくる確率を計算する。確率は非常に小さくなるので、出力するところでは対数を…
ガウス過程の定義 ガウス分布との違い 普通のやり方 関数空間から見た視点 ガウス過程のメリットデメリット ガウス過程のメリット ガウス過程のデメリット まだよく分かってない付近 ガウス過程の定義関数上の確率分布で、任意の点集合に対するの値の同時分…
この辺読んでます。カーネル多変量解析―非線形データ解析の新しい展開 (シリーズ確率と情報の科学)作者: 赤穂昭太郎出版社/メーカー: 岩波書店発売日: 2008/11/27メディア: 単行本購入: 7人 クリック: 180回この商品を含むブログ (32件) を見るPRMLの下巻の…
R苦手の会で説明したんだけど、なんとなくBlogでも書いてみる。こんな風なcsvファイルがあったとする。 hoge, 2 fuga, 3 piyo, 1 これは文章中にhogeが2回、fugaが3回、piyoが1回出てきたというようなものを表わしている。ここで、このcsvの情報から単語の登…
PerlもRもヘルプが大変充実しているんですが、C++にはないので非常に苦痛でした。が、こんなのができたらしい! GitHub - kazuho/cppref: man-style access to cppreference.com documents これでイライラしなくてよいですね!!boostにも同じようなものがある…
タブ区切りデータの三列目を取り出す「-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…
書いてるとちゅー!!先週は言語モデル(n-gram)の話があって、パープレキシティの話をして、多項分布の最尤推定だとパープレキシティが無限大にいってしまうからどうにかしないと!!ということをやりました。 言語モデルのよさをはかる指標としてのパープレキシ…
去年の最適化理論の課題は、準ニュートン法あたりを実装してバナナ関数に適用して軌跡書いてね、というようなものだった(はず)だけど、今年は微妙に違う。今年はNelder-Mead methodというのを使ってバナナ関数で遊んでね、というものに変わった。 wikipedia:…
スレッドの中で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>…
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>…
今日の自然言語処理特論の講義がとても面白かったのでメモ。今日の自然言語処理特論では、最初に言語モデルとしてn-gramのモデルの紹介があって、それの最尤推定の話。次に言語モデルのよさをはかる尺度としてエントロピー*1を元にしたパープレキシティが紹…
wikipedia:en:Rosenbrock_functionという有名らしい関数があるんですが、共役勾配法の動きを見てみるためにこの関数で遊んでみました。結果はこんな感じ。 極端すぎないパラメータだと大域的最適解に行ってくれました。コードも簡単。 f <- function(x) { x1 …
本当は去年みたいなplotをしたいんだけど、面倒(ry。工学基礎 最適化とその応用 (新・工科系の数学)の4.6章で遊んでいる。二次関数の簡単なのをとりあえず。 f <- function(x) { x1 <- x[1]; x2 <- x[2] 3 / 2 * x1^2 + x1 * x2 + x2^2 - 6 * x1 - 7 * x2 } …