Mar 22, 2008

言語処理学会年次大会(NLP2008) 本会議3日目

自分は今日が最終日。 午前中いろいろとあってホテルに引き篭もっていたため午前中のセッションに間に合わず、午後から参加することに。

午後のポスターは関根先生のオンデマンド情報抽出の話などを聞く。 東大松原さんのMEベースの言語モデルの話を聞きたかったのだが,とにかく混んでいたので結局聞き逃してしまった。

午後のセッションの開始前にNTTのHさんと研究について相談。 この問題でラベルgivenでなおかつ文内限定なのはどうなの?という話。うーん確かにそうなのだが・・・今は某タスクに乗っかってしまっているのだが、別の方向性についても考えていかないと。

午後のセッションの中では鍛冶さんの「単語の半教師ありクラスタリング」が興味深かった。ああいう制約の入れ方もあるのだなぁと。

セッション終了後,JAISTの風間さんから午前中聞き逃した 「Web上の資源から構築した複数の固有表現辞書を用いた日本語固有表現認識」の話を聞く。 辞書を使ったNERの話はいろいろとあるのだけど、大規模な辞書を使った話というのはそれほど多くないという印象はあるので、 まだまだできることはあるのかなと思う。 その他、研究に関することや鳥澤研のことなど聞いた。

Posted at 20:35 in research | WriteBacks (7) | Edit

言語処理学会年次大会(NLP2008) 本会議2日目

会場に着いてから名札をホテルに忘れてきたことに気づき慌てる。 文脈・意味解析の発表3件ほど聞いてから名札を取りにホテルへ戻る。 午後はしばらく発表が無かったので Aマキさんではないマッキーと東工大N口さんと3人で喫茶店でいろいろ喋る。前日のYANS懇の話など聞いたり。YANS懇は申し込み損ねたのだが出ておくべきだったと後悔。

夜、当日申込で懇親会に参加。 名大のHさんといろいろ話す。4月から***に行くということでビザのことやら今後の身の振り方など。 その後懇親会終了時間まで、NTTのSさんに人生相談。

Posted at 20:34 in research | WriteBacks (0) | Edit

言語処理学会年次大会(NLP2008) 本会議1日目

午前中は岡野原さんのShift-Reduceベースの形態素解析の話や河原さんの類似性を用いない並列句解析の話などを聞く。

午後のポスターの時に、東大清水さんの「機械学習テンプレートライブラリ」の話を聞きに行く。個人的に使ってみたいのはMaxMargin+DepTreeもしくはLoglikelihood+DepTreeの組合せ。今MSTParserの選択肢というと、公開されているものに限ればMIRAぐらいしかないので。公開時期に関する話もされていて、それほど先ではなかったのでとても楽しみ。 その後NYで一緒だったKO大のA君と近況報告。

ポスター発表をいくつか聞きに行った後、 比較語彙研究Xの時に会ったK藤さんに会う。1年半ぶりぐらいだろうか。 言語"処理"の会議で会うとは思っていなかったのでびっくり。今回はあまり話せず残念だったが、*社に就職ということなので、また会う機会があるかもしれない。

Posted at 20:33 in research | WriteBacks (0) | Edit

Magic Spice

夜、ryu-iさんと下北沢のMagic Spiceでスープカレー。メニューに"インドネシア風"スープカレーと書かれていたので注文する時に嫌な予感がしたのだが、その予感は的中。これはスープ"カレー"ではない。 イメージしていたものとかけ離れいたため、このまま帰るわけにもいかず、次に豚骨ラーメンを食べに行くことに。しかしここも首を傾げたくなるような味。 今日は2つもハズレくじ引いた。

Posted at 20:22 in misc | WriteBacks (3) | Edit

言語処理学会年次大会(NLP2008) チュートリアル

午前中は音声認識(Juliusの話など)と半教師あり学習の話。 今回の年次大会で一番聞きたかった話は実はこの半教師あり学習のチュートリアルだったのでこれが聞けただけで満足。 半教師あり学習というと、いろいろな手法が乱立していて全体を把握できていなかったのだが、 きれいに分類されていてとてもわかりやすかった。個人的に使ってみたいのは、識別・生成ハイブリッドモデルとAndo法かな。

午後のセッション開始前から、喫煙所でH本先生と長話。 主にコーパス作りの話や言語教育方面の研究に関する話。 結局1時間ぐらい話してしまい、語彙意味論のチュートリアル前半まるまる聞き逃す。

最後、コロケーションのチュートリアル。石川先生の喋りがうまかった。ああいう人を惹き付けるような発表ができるようになりたいものだ。

Posted at 20:21 in research | WriteBacks (0) | Edit

A Raj@東池袋 → 札幌ドミニカ@銀座

今日(16日)は、東京滞在中に一度は行こうと思っていた池袋の南インド料理のお店A Rajへ向かう。滞在先のホテルで荷物を預けてから半蔵門駅から永田町で有楽町線に乗り換えて東池袋駅で下車。

地図を見ながら周囲をうろうろするも、それらしきインド料理がなかなか見つからない。注意深く探しているとようやく発見したが、シャッターが下りている。

「オーナー里帰りのため3月末まで休業します」

うーん、事前に調べておくべきだった。結局、ガイドブックを見ていてたまたま見つけた銀座のスープカレー屋札幌Dominicaに行くことに。

野菜のスープカレーを注文したのだが、串刺しの玉ねぎとしいたけが特徴的。 輪切りにした大根なども入っている。ご飯の量、スープ共にちょうどよい。 辛さは10段階あり、5までは無料。自分は3の中辛にしたのだが、4ぐらいでも良かったかもしれない。 あっさりしているので朝でも食べられそうな感じだが、良くも悪くもあんまり主張してこない感じの味なので物足りないと思う人もいるかもしれない。

Posted at 20:17 in misc | WriteBacks (0) | Edit

赤坂→半蔵門

日本語コーパスの公開ワークショップは今日(16日)もあった(@立川)のだが、自分は昨日のデモだけ参加すればよいと言われていたので、 赤坂のホテルを出発して、次の滞在先である半蔵門のホテルへ向かう。 ホテルを変える必要は無かった気がするが、年次大会の会場である東大駒場キャンパスへは半蔵門→渋谷→東大駒場と乗り換え一回で行けるというのが都合が良いと思ったのでこちらにしたのである。

すぐに半蔵門のホテルに到着。そこそこきれいで、ネット環境もあるので良い感じ。しばらくはここを拠点として行動することに。

Posted at 20:11 in misc | WriteBacks (0) | Edit

Yellow Company

15日の夜はshimpei-mくんと一緒に恵比寿駅近くにあるスープカレーのお店Yellow Companyへ。お店のロゴなどかなりこだわりを感じさせる。 中はとてもお洒落な雰囲気で、スープカレー屋というよりBarといった感じ。 ご飯はちょっと色は薄めだがサフランライス。盛り付けがとても綺麗。 スープの方は(おそらくトマトの)酸味が適度にあってなかなか美味しい。 野菜が結構柔らかくて、ニンジンなどスプーンでもすんなり切れるぐらい火が通っている。

お洒落でお酒の種類も豊富。ここは機会があればまた来たい。

Posted at 20:09 in misc | WriteBacks (0) | Edit

Mar 15, 2008

採録

某J学会論文誌に投稿していた論文の採録通知が来る。照会に対して回答するために、再実験をしたり考察を大幅に書き直したりしてかなり苦労したのだが、無事採録されて一安心というところ。

Posted at 16:35 in research | WriteBacks (3) | Edit

Dharmasagara

成果報告会でのデモ終了後、会場に来ていたshimpei-mくんと2人で 会場のすぐ近くにある南インド料理のお店 Dharmasagaraへ。

お店の看板。

店内の様子。それほど広くなく、カウンターがあるので一人でも入れる。

ランチミールス(1200円)を注文しようと思っていたのだが、平日のみだったらしく注文できなかったので、少し高くついたがミールスBセット野菜のコース(2100円)を注文。

  • ラッサム(辛くて酸味のあるスープ)
  • カレー2種
  • サイドディッシュ
  • ライタ(ヨーグルトサラダ)
  • レモンのアチャール(ピクルス)
  • プーリー(揚げパン)
  • パパド(揚げせんべい)

この中でヒットだったのは辛くて酸味のあるスープ、ラッサム。 これ、辛さと酸味の組合せが絶妙。さらに、香り付けにスパイスやハーブなどがおそらく使われているのだが、この香りが癖になる。プーリーも初めて食べたのだが、軽くパリパリとしていて、カレーにつけて食べるととても美味しい。

Posted at 16:19 in misc | WriteBacks (0) | Edit

日本語コーパス 公開ワークショップ

特定領域研究 日本語コーパスの公開ワークショップにデモ要員として参加してきた。 9時30分ごろ到着して、デモは11:00-13:00の2時間だったので滞在時間は3時間半程度。 デモの間はずっと拘束されていたので、拡張固有表現の話など他のポスター発表が聞けなかったのが残念。

Posted at 15:55 in research | WriteBacks (0) | Edit

Mar 05, 2008

照会

J学会論文誌に投稿していた論文の査読結果が照会となっていたため、論文の修正作業中。基本的に照会の通知が来てから1ヶ月以内に論文の修正と照会への返答をしなければならないのだが、1ヶ月過ぎたらアウトというわけではないらしい。かといって後回しにするのも嫌なので一応1ヶ月という期限で返答する予定。

Posted at 03:33 in research | WriteBacks (0) | Edit

Mar 02, 2008

Beatsource

Beatportという主にクラブミュージックを扱う有料音楽配信サイトがあって自分はよく利用しているのだが、兄弟サイトとしてBeatsourceというのができていた。Beatportは主にTechno、House、Tranceなど4つ打ち系が主なのだが、BeatsourceはHipHop、R&B、Reggaeなどのジャンルがメインらしい。このあたりのジャンルが好きな人には使えるのではないだろうか。

Posted at 18:34 in music | WriteBacks (407) | Edit

split

機械学習器をJavaで実装しているところなのだが、ファイル読み込みのところがやたら遅くなってしまっていて、どうしたものかと悩んでいる。

機械学習器と言っても様々であるが、構造学習をしない場合、 以下のようなフォーマットが用いられることが多い。

label1 feat1 feat2 feat3 ...
label2 feat3 feat5 feat6 ...
...

このファイルの読み込みの処理を、当初以下のように一行ずつ読み込んでStringオブジェクトのsplitを呼び出して要素ごとに分割するという処理をしていた。

BufferedReader reader = new BufferedReader(new FileReader(file));                           
...
while((line = reader.readline()) != null) {
  String[] elements = line.split(" ");
  ...
}

しかし、これで走らせてみると、非常に遅い。

Stringクラスのsplitは、内部ではパターンをコンパイルして、そのパターンを用いてsplitしている。以下はStringクラスのsplit。

public String[] split(String regex, int limit) {
  return Pattern.compile(regex).split(this, limit);
}

これだとsplitする度に毎回パターンをコンパイルしていることになるので、事前にPattern.compile(" ")しておいて、このコンパイルしたパターンを使ってsplitするようにした。 しかし、気持ち程度しか速くならなかった。

次に、splitを使うのをやめて、文字単位にlineを見ていき、スペースを見つけたら、間の部分文字列をsubstringするようにしたところ、splitと比較して半分程度の処理時間になった。以下、その部分のコード。

int offset = 0;
int start = offset;
while(line.charAt(offset) != ' ')
  offset++;
int end = offset;                                                                                  
String target = line.substring(start, end);                                                    

ArrayList features = new ArrayList();                                                              
while(true) {                                                                                      
  start = ++offset;                                                                            
  if (offset >= line.length())                                                                 
    break;                                                                                     
  while(offset < line.length() && line.charAt(offset) != ' ')                                   
    offset++;                                                                                  
  end = offset;                                                                                
  features.add(line.substring(start,end));
}

これでもまだ結構遅いのだが、 ここで時間を費やすわけにもいかないので、これで我慢することに。