<<< >>> 最新 / kaoru's clog

ChangeLog 2004-07

2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2004-07-30 Fri

* なんとか準備する [r]

本当は、違うことを喋ろうと思っていたが、準備不足で断念。
でも、風邪は、なんとか快方に向かっているかな?

けいはんな地区には、形態素解析や機械学習が得意な人がいるから、率直
な意見を聞きたかったのに…。

2004-07-23 Fri

* ヘトヘト [l]

微熱が下がらん。でも、休めないし。まいったな…。
SVM合宿へ向けての持ちネタが、去年以上に、ショボイものになりそうだし…。
追い込まれた…。

2004-07-22 Thu

* svm_struct [r]

半分も理解できない論文のネタ、その二。

I. Tsochantaridis, T. Hofmann, T. Joachims, Y. Altun,
"Support Vector Machine Learning for Interdependent and
Structured Output Spaces", ICML2004.
http://www.cs.brown.edu/~th/papers/TsoHofJoaAlt-ICML2004.pdf

理論はさっぱりわからないが、この論文を基にしている svm_struct とい
うパッケージが、Thorsten Joachims のページからダウンロードできる。

http://www.cs.cornell.edu/People/tj/svm_light/svm_struct.html

実験のところで、NER や Parsing にも適用していて、面白そうだったか
ら試してみたくなった。struct_hmm や struct_pcfg は coming soon だっ
たけど、配列アラインメント(懐かしい…) svm_align はダウンロードで
きる。

http://www8.cs.cornell.edu/~paz3/svm_align/

svm_struct は、関数のインターフェースを提供しているだけで、
svm_align で、具現化するという関係になっている。

動かしてみることができれば、実現方法を調べてみることで、理論がわか
らなくても、すこしはイメージがつかめるとっかかりになるかな…と思い、
試行錯誤してみた。が、激しく、敗北。(ま、expected outcome ですが。)

簡単な敗北ログを。

# コンパイルができない!

+ svm_struct の方のパッケージに svm-light が含まれているが、 QP
solver を使うのではなく、svm_align は、 PR_LOQO optimizer を使って
いる。インストールのやりかたは、
svm_light
のページに注意書きがある。

+ Makefile や #include のところで、 svm-light と svm_light という
2つの書き方が混在していている。要チェック。

+ svm_align をコンパイルするときは、bin と tmp というディレクトリ
をあらかじめ用意する必要がある。src に svm_struct のコードと、
svm_align.tar.gz から svm_struct_api.c, svm_struct_api_types.h,
svm_struct_classify.c を用意する。

+ コンパイル中にも警告がいろいろでる。(不安度向上へ抜群の効果あり)

+ 実は、svm_struct_api.c, svm_struct_api_types.h で関数のインター
フェースと実装が矛盾している箇所がある。

# segmentation fault になる!

$ ./svm_struct_learn ../example.data ../example.mdl
Reading training examples...done
セグメンテーション違反です

私だけの幻想か…。ここで、ハッキングする根性がなかった…。機械学習
への愛も足りないだろうし、日頃の行ないも悪いからか。

もっと修行しないとダメですね…。

2004-07-21 Wed

* 通訳学校 [t]

もう、体がしんどくて、授業はそこそこに、こなす。

* 勉強会 [o]

担当。半分も理解できない論文を選んで、だめだめな説明をした。
体内の熱も、部屋の温度も上がってきて、泥沼にどっぷり。耐久レース。
ごめんなさい。> 出席された方々

教訓 - 熱があるときに、ミーティング類は禁物。他人に迷惑がかかる。

ちなみに、紹介した論文は↓。"Factored *" の章は、全滅。
http://robotics.stanford.edu/~btaskar/pubs/mmcfg.ps

2004-07-20 Tue

* GIZA++ [r]

世の中の statistical MT と word alignment model とはどんなものなの
かを調べたいんだが、いまいち結果の解釈ができない。

ALIGNMENT FILE (*.A3.final) という結果ファイルの一部を眺めて、学習
中の Viterbi alignment がどうなっているか観察しているのだが、なん
だか、信じられないぐらい性能が悪いように思う。謎。

* 輪講 [o]

共通の性質を有する問題を見出して、理論を整理して、斬新なアルゴリズ
ムを提案すること、と、新しい問題を定義して、その適切な解を提案する
ことは別。話の展開に違和感がなければ、どっちが出発点でもいいと思う。
センスがいいなっていう感動が欲しい。

* しんどいよね… [l]

一ヶ月に一回のペースで、風邪になる。熱で体がしんどい。
一ヶ月に一回のペースで、気が抜けてしまうということなのでしょうか。
こんな生活、体力も気力も続かない。ヘトヘト。そろそろ引退すべきかも。

今日は、気温が39度らしい(都心)。地球君も熱くてつらいのね。

2004-07-19 Mon

* 重文と複文 [r]

555 文ほど、因果関係の構文ファイルがあったので、眺めてみる。
和英辞典から抜き出した文だからか、不自然な英訳が散見された。
# 忠実な訳というのとは違う。おさまりが悪い英文。

熱で意識が半分とんでいたけど…複文の主節(核)と従属節(衛星)だってひっ
くり返して訳しても通じるじゃないか疑惑発生。頭から訳出する方法とか、
通訳訓練でやるスラッシュリーディング、とかは、談話レベルでの節の関
係を無視しているんじゃないかなぁ。と、とりとめもないことで時間切れ。

アラインメントには、重文か複文か単文かという分類や他の意味的な分類
をバイパスする方法が存在するかも、とか思ったり。

* 無声日 [l]

くやしいから、BBC Radio 2 を、イヤフォンなしで聞く。
でも喉が熱くて痛くて、注意力が激変。。。とにかく、きつい(泣)。

2004-07-18 Sun

* 喉がいたい [l]

一ヶ月前と同じ症状に苦しむ。(ref.[2004-06-02])
何もしなくても、ただただ、喉がいたい。そのうち、声がでなくなった。
きつい。。。集中できなくて、仕事は溜る一方。××な週末だ。

2004-07-16 Fri

* 雑談ミーティング [r]

とてもお疲れの奥村先生と、雑談ミーティング。

悩みつづけていた、今年度の私のCREST関連研究のオチについて、どの辺
りに設定すればよいか、という疑問が解消した。CREST プロジェクトや奥
村先生から期待されていること、が明確になった。向かう方向が分かった
のが、最大の成果。よかった。一安心。

以下、将来の私へのメモ。

- 重文と複文の訳し分け(言い換え)についてつながる研究であって欲しい。
- 研究の出発点は CREST 生データからで良い。
  CREST 以外のデータ(web からもってきたデータ)も利用してよい。
  例の語彙体系を拡張したパターンファイルに限定されなくてもよい。
  このデータは、評価用として利用して、いろいろ考察をする方が嬉しい。
- 研究は、分野できちんと評価されるものに仕上げるようにする。
  CREST チーム内でしか通用しない発想や方法論は、むしろ、好まない。
- 夏休みの宿題は、例の妄想ネタで良いみたい。

* 理研GSC [l]

Sせんせの質問にひたすら答えるミーティングとデータ整理。
某PDとはニアミスが二回ほどあったが、なんとか回避。
懐かしい方々と少しお話。年度がかわっても、大変そうね。
いろいろ清算して、すっきり。

2004-07-15 Thu

* JBI [r]

Special Issue の guest editor から、of publishable quality だ、と
連絡がくる。多分、これで、採録。手続きとしては、これから、JBI の
editors による査定があるらしい。ふーん。

十数ページにもおよぶ査読コメントを直したのが評価されたのか?こっち
も一週間ぶっ通しで直したから疲れたけど、editors も読むのに疲れたみ
たい。今回の直しは、私のお粗末な冠詞の言語モデル周り。"a" と削れ、
"the" を入れろ、という指示が 80 % 以上だった。違う神経を使って、妙
に疲れた。Viterbi algorithm の前には "the" を入れて、Double Array
の前には "a" にして、"F-measure" の前は "an" っていう。すっかり混乱。

アメリカ語では、"envisage" を "envision" というらしい。へぇ〜。

2004-07-14 Wed

* 通訳学校 [t]

イラク情勢。リアルタイム英日変換をひたすらする。ぐったり。いらくト
クソ法の成立過程はもう知りたくない。飽きた。師曰く、私は、
「パフォーマンス力がない」らしい。内容解析、変換、生成もきちっとで
きるのに、と注意されてもね…そんなん言われても…研究でも、プレゼン
ヘタレですからね…私は。

* 勉強会 [o]

高村さんが要約タスクで使われた tree-position kernel というものを紹
介してくれる。http://www.isi.edu/~hdaume/publications.html
要約の背景がよくわからんから、適用したのが偉いのかもしれない。
http://www.isi.edu/~hdaume/SVMsequel/

ただ、カーネルは、基本的に、木のパス(系列)の集まりとみて、ストリ
ングカーネルの考え方をそのまま適用する、みたい。技術的に新しいとこ
ろはない、と、高村さんがコメントしてくれる。確かに、カーネルのエッ
センスは、これと同じ。
http://www-2.cs.cmu.edu/Groups/NIPS/NIPS2002/NIPS2002preproceedings/papers/submitted/AA11-draft.pdf

* Google API [l]

実は、はじめて、だったりする(恥)。

手始めに、アカウント作成して、ツールをダウンロードする。
Java にも C# も Perl もペラペラにしゃべれないから、Ruby でアクセス
できそうなRuby/Googleで代用することに。
Ruby 1.8.1 では、uconvdevel-loggersoap4rが必要らしく、インストールする。
とりあえず、サンプルは動いた。めでたし。

あとは、transliteration の一覧が掲載されていそうなページを検索する
ためのクエリーを考えないと。(ref. [2004-07-12]) そう言えば、NTT の
どこか研の永田さんが、その昔、かの地(ふらんす)で、こういうページ
を partially bilingual text と呼んで、専門用語の対を抽出できた、と
かいう報告をしていたような気がする。

# うぎゃ。現実逃避をしている場合ではないぞ。

2004-07-13 Tue

* ゼミ2日目 [o]

特になし。

2004-07-12 Mon

* ゼミ1日目 [o]

あべかわさんのおまけネタを聞いて、これで、英語とカタカナのペア
(transliteration) が、表記の揺らぎも含めて、大量の抽出できるように
なるかも、と思う。そうすると、ごちゃまぜ文の形態素解析の辞書に使え
るかも。という訳で、しばらく、妄想プロセスが走った。

帰宅して、少し冷静に現況をみつめる。

まずは、Google API の使い方とか知らないから、調べないと。という口
実をみつけて、またまた、ウェブ散策。世の中の web 関連の技術ってす
ごい。勢いが。追うだけで、体力いるなぁー。

1000 件のリミットがあるし、英語とカタカナ表記の一覧がありそうな
web ページを検索してくれそうなクエリを考えないとまずそう。なにより、
奥村研の web 組の研究の邪魔をしてはまずい、といろいろ注意が必要。

Referrer (Inside): [2004-07-14-1]

2004-07-06 Tue

* 部分木マイニング [r]

2 年越しの課題だったけど、やっと、部分木マイニングに挑戦しはじめる。
とりあえず、依存解析木を対象としたいから、兄弟関係は考慮するが順序
は考慮しない unordered 部分木マイニング。

http://www.i.kyushu-u.ac.jp/doitr/trcs216.pdf
http://www.cs.ucla.edu/~ychi/publication/cmtreeminer_pakdd04.pdf

まだ具体的なイメージわかないんだが、なんとなく、分かったこと。

- equivalence class を定義するために、cannonical form を導入する
-- depth-first cannonical form が rooted (un)?ordered (maximal|closed)? subtree mining の標準的なデータ構造みたい。ポイントは、最右拡張。
-- breadth-first cannonical form にすると、free tree マイニングへの拡張が比較的容易にできるらしい。
- maximal と closed の違い

基本的には、「姉--妹」関係と「先祖--子孫」関係の両方がマイニングで
きるようになるのだが、どっちの関係が結果を左右してしまうのかな?

1960-80 年代のコンパイラの研究成果に多謝。ドラゴンブック最強。

2004-07-05 Mon

* リハビリ明けなのに、いきなりスランプ [r]

候補パターンを系列マイニングでのネタが、なかなか軌道にのらない。

私の BIDE の実装がヘタレだから、マイニングに一週間かかっている。
sequence database のサイズが 127,813 で、100 回以上出現したもの(
データマイニングコミュニティでいうところの minsup 0.0776 % ) を対
象にしているから、そもそも無茶なのかも。どちらかというと、sparse
な sequence database だと思うけど、その基準はよくわからんし。むぅー。

とりあえず、374 文しかない小さな The Happy Prince で精度を計算する。
ちなみに、ここでいう精度は、抽出されたものが分母で正解と人手で判断
したものが分子。unannotated & unsupervised な設定だから、正解コー
パスがない。リコールを測定するのは、無理。

最低出現回数 は 2 で設定。結果はイマイチ。BIDEの精度 は、
118/207 で 57% 。PrefixSpanの精度 は、121/271 で、45% 。目視
のレベルだけど、BIDEの抽出結果PrefixSpanの抽出結果
比べると、BIDE の方が、同点スコアによる誤り対応が少なくなって、
それなりに、順序よく抽出してくれてると思うが。たいしたことない。

部分木も試しておきたいな…。実装から始めないと…。時間あるのか?

# で、CREST の研究、どうしよう。アラインメントは、いつするんだ?
# 棚上げした cocab はどうすんの? 制約、タグとばし、ごちゃまぜ、多言語…
# … … … 山積み。激しく、落ち込む。つぶれそう。こげまくり。

2004-07-04 Sun

* テレビ [l]

スポーツ観戦はリアルタイム画像でないと面白くない。

2004-07-03 Sat

* 時事英語 [t]

イラク関連の用語集が RNN 時事英語辞典(http://www.rnnnews.jp/)に掲
載されていた。宿題(ref. [2004-06-30])になっている、自衛隊イラク派
遣もまとまっている。http://rnnnews.jp/indepth/pg/view.php?ch=023

これから、覚えないと。

2004-07-02 Fri

* 乗り過ごし [l]

いつかやると思っていたが、今朝は、長津田で降り損ねた。いつも通り電
車で座れたから、今日は、あるアルゴリズムが完全だという証明を追って
いた。まだ途中だったが、「次は町田です」とアナウンスで、行き過ぎた
ことに、気がつく。U ターンしてきました。朝から、ぼけぼけ。

2004-07-01 Thu

* cpp [p]

今日、はじめて、priority_queue の使い方がわかった。コンテナに格納
しながら、逐次に優先度順にソートしてくれるらしい。便利。

まず、priority_queue に入れたい要素オブジェクト(構造体)を定義する。

struct result {
 double score;
 unsigned int j;
 unsigned int e;
 friend bool operator<( const result& r1, const result& r2 )
 {
   return ( r1.score < r2.score );
 };
 friend std::ostream& operator<<( std::ostream& os, const result& r ) {
   os << r.score << "\t" << r.j << "\t" << r.e;
   return os;
 };
};
 struct result r1;
 r1.score = 1.5;
 r1.j = 1;
 r1.e = 5;
 struct result r2;
 r2.score = 2.3;
 r2.j = 2;
 r2.e = 3;

ここで、operator< と operator<< を friend にしておく。
(奥義を理解していないので、ほとんど、おまじない)

で、 priority_queue の宣言。先ほどの struct result がコンテナの要
素オブジェクト。最後の引数の二項述語の終りに () が付かないのに注意。
よくわからんが、これで型を指定していることになるらしい。
(yet another おまじない。)

 std::priority_queue< result, std::vector< result >, std::less< result > > pq;
 pq.push( r1 );
 pq.push( r2 );
 while ( ! pq.empty() ) {
   std::cout << pq.top() << std::endl;
   pq.pop();
 }

出力はこんな感じ。優先度が高い方から(score in a descending order)
で出力される。

2.3 2 3
1.5 1 5

ラティスのパスの N-best candidates を出力したいなと思っていたが、
priority_queue がわからず停滞していた。今回、ポイントが分かったの
で、自分でも実装できそう。

* 要するに、研究しろ、らしい。 [o]

高村さんから、2日連続で、軽〜いジャブ(注釈:奥村研で日常的に使わ
れる間接発話)攻撃。もう、免罪符、使い果たしちゃったしね。めげそー。

# また、日記に書かれるよ、って奥村先生がおっしゃっていたので、
# ご期待にそうように、書きました。

Referrer (Inside): [2004-06-24-1]

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12

<<< >>> 最新 / kaoru's clog