とにかく英語を読む。ひたすら読む。

朝に少しスライドを直してデータ構造とアルゴリズム演習の授業に臨む。今学期は諸事情で、今日の次は11月下旬に飛んでしまうので、完全なるウォーミングアップである。去年は学生がどれくらいプログラミングを習っているか(あるいは習っていないか)知らなかったのでかなりの出戻りがあったが、今年は去年の経験があるので、授業1コマ分くらいは効率的に行うことができそうである。

授業は先日の DSIRNLP (データ構造と情報検索と自然言語処理)勉強会のスライドを雑談で話したりしつつ、時間通りに終了。とりあえず C 言語でのコンパイル方法を思い出してもらうところからスタートだな……(まず Hello, world と FizzBuzz を書いてもらう)。

お昼は SLP(自然言語処理の教科書)の輪読会。英語はときどき間違っていても内容は正しく理解できている人もいれば、英語はそんなに間違っていないが内容はあまり理解していない人もいるのが不思議な感じ。機械的に(文脈を考慮せず)英語を日本語にしただけだと、日本語の本をただ読み上げたのと同じ意味しかない(単なる英文解釈教室で、おもしろくない)が、内容について必要なら他の書籍やウェブを参照したりして事前に調べておいて説明してくれる人が大半なので、それなりに今学期この輪読会に時間を割いている効果もあるのかなと思う(研究に影響が出ている気もするが……)。

午後は研究会。M1はまだタスクが決まっていない人も多いが、とりあえずサーベイかツールかデータをいじるか、なんでもいいので動いてもらわないと、あっという間に来年になってそう。もっとも、卒業してしまうM2の人以外は別に言語処理学会の年次大会で発表しなくても、他にいくらでも発表の機会はあるので、焦って変な形で発表してしまうよりは、時間をかけてちゃんとしたものを出した方がいいと考えている。

あと、進捗報告で少しずつ実験結果を報告してくれる人が増えて、楽しくなってきた。やっぱりタグ付けにせよ抽出や分類にせよ、できたところまででいいので問題点(漠然としたイメージではなく、実例)や数や精度などを進捗に盛り込んでくれると話が盛り上がる。みんなの時間を使って進捗報告をしているのだから、他の人の参考になることを話してくれるのがよいと思うのであった。

また、研究会でデバッグをするのも恒例になってきたが、聞いてくれるとすぐ解決することが少なくない。今日は CRF++ の使い方(テンプレートの書き方、というかエラーメッセージの読み方)と、KyotoCabinet (の Python バインディング)のインストールの仕方だろうか(先日は CRF++ のコンパイルエラーで、./configure にオプションを渡して解決)。コンパイルエラー関係は、恐らく自分の問題解決能力は高いと思われるので(自然言語処理の研究者としてではなく、オープンソースソフトウェアの開発者としての経験が活躍)、どしどし利用してもらいたい。

基本的にはエラーメッセージをちゃんと読む(見当がつかなければ、エラーメッセージをそのままググる。検索結果が英語でも、ブラウザをそっ閉じせずちゃんと読む)、ということに尽きるのだが、なかなかみなさんエラーメッセージを読んでいないようで……。

研究会のあとは研究相談。何が研究になってなにが研究にならないか、という話をするのだが、このあたりは最近の論文をそれなりの数読んでもらうのが一番だと思う。結局研究にも流行や時期はあるもので、この時代はこれでも研究になったけどいまはダメだとか、そもそも単に既存の手法を新しいデータに適用しただけで何の洞察もないのは厳しいだとか、このあたりの感覚は論文を数十から数百読まないと分からないし。

狭い研究領域でいいから、この分野の論文(あるいはこの時期の論文を)は全部目を通したと思う、というように分野を一つずつ撃破していくとよいと思うのだが、いろんな分野の論文をつまみ食い的に読んだりとか、あるいはそもそも読んでいる論文数が少ない(たとえば大学院生で月に1桁は、精読するのでなければ少なすぎる)とか、なかなか最初の壁を突破できない。誰か無茶苦茶論文を読んでやたら最新の研究の詳しい人、いないかな……。