Hatena::Grouprekken

murawaki の雑記

2009-09-27

アンケートはやりたくないけど人間の語彙学習には興味がある

語彙の学習について、SocialDict - 英文Webページのスマートな注釈・辞書引きシステムのスライドを眺めていて考えたこと。元スライドとはあまり関係なくなった。

発表は、語彙力の推定に他の利用者から得られる手がかりを利用するというもの。実験も、大量の他人のログを与えたときの少量の一人のログを評価している。

人間が直接利用するシステムを作るから、やることはいろいろある。どうやって解くか以前に、そもそも何を解くか。モデルをどうするか。UI の設計が (論文的にはともかく) 実際上重要だとか。モデルに関しては協調フィルタリング系の話らしい。でも、この分野を追いかけてないから知らない。知らないなりに自分の興味に合わせて適当なことを書く。

注目したのは online 学習であること。もっとも、stochastic gradient descent がどの程度気の利いた振る舞いをするのか知らない。*1気になったのは個別手法以前の問題設定。利用者の作業ログから逐次的に学習するという枠組み。

仮に利用者がシステムを長期間利用したとすると、その間に利用者は語彙を学習していくはず。それは観測対象の変化を意味するのではないか。発表は、SBM との類似を主張しているが、SBM では、利用者の興味が変化するという仮定は必ずしも必要ないかもしれない。データを増やすことで、推定をある真の分布に近づけられそうな感じがする。しかし、語の学習については、利用者が変化すると考える方が自然だ。大抵の確率モデルは i.i.d. を仮定しているはずだが、それで良いのか気になる。

とは言うものの、特に対案があるわけではない。とりあえず予想されるのは、利用者の変化を追う実験が大変そうということ。長期的なデータを採取するのは大変。しかも、利用者の挙動がシステムのその時々の状態に依存していると再現実験がやりにくい。

ひとまず実験のことは忘れる。人間の動的なデータが採取できると、いろんな調査ができそうで夢が広がる。語彙に関するこれまでの調査は、(1) 静的なデータに依存し、(2) 基礎語彙に偏っていたから。単語親密度と頻度の関係とか、教科書コーパスから難易度を推定するとか。

私の興味は、言語獲得っぽい立ち上がり段階よりも、基礎語彙を知っている状態で残りの語彙を獲得する段階にある。つまり、このシステムが対象とするような人間。人間は語が何度か出てきたらそのうち覚えるだろうし、しばらく見ないと忘れるだろう。忘れ方にも段階があって、見覚えがある場合もあれば、存在自体を忘れている場合もあるだろう。その辺りの動的変化が実際のところどんな感じなのか知りたい。

*1:追記: 9月28日の NL 研でほぼ同じ発表を直接聞いた。現在のモデルは利用者のパラメータが1個のスカラー値だけで回帰させるので、そもそも利用者ごとの細かい制御はできないとのこと。

2009-09-02

Installing Emacs 23.1 on Windows Vista

2012年12月29日追記: 最近は gnupack という便利なパッケージを提供してくれている人がいる。ここの emacs のバイナリを取ってくればコンパイルしなくても動く。とりあえず使いたければこちらがおすすめ。

Windows Vista のマシンに Emacs 23.1 を入れた。それほどすんなりいかなかったのでメモ。

動機。もうすぐ Windows 7 が出ようかというこの時期に Vista のマシンを手に入れてしまった。Windows 上の Emacs としては、これまで Meadow を使ってきた。Mule for Windows から始まって、Meadow 2、Meadow 3 と。Meadow は素晴らしい。よく使うモジュールが、ちゃんと設定された状態でパッケージ化されている。しかし最近活動が低調。そこで本家を試してみることにした。

GNU のサイトに Windows 版の binary がある。これを取ってきて解凍すればとりあえず動く。しかし IME の使い勝手が悪い。幸い NTEmacs JP の人が IME の patch を作ってくれている。そこで Cygwin 上でソースから自分で build する。

build の手続きは、基本的には NTEmacs 23.1.1のコンパイルに従う。しかし、以下の点でこの手順通りにはいかない。2009/10/28 追記: 元サイトの方が手順を更新してくださっていますので、以下の情報は無効です。

  • nkf をまだインストールしていない。改行文字の変更にしか使わないので dos2unix と unix2dos で代用。
  • configure.bat 時に gcc が認識されない。「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されません。」などと言われる。DOS 的には gcc.exe.lnk が symbolic link と認識されない。configure.bat を書き換えるか、gcc.exe を実体の gcc-3.exe で上書きする。
  • configure.bat 時に libXpm がないといわれる。config.log を見たら simx.h がないと言われる。同じ問題は以前からあったらしい。ひとまず適当に simx.h を取ってくる。
  • make 3.81 では駄目で、make 3.80 を使わないといけないというが、Cygwin のパッケージには make 3.80 は入っていない。Mozilla のサイトに従って、別の場所から落としてくる。

runemacs.exe を実行すると起動する。今度は日本語入力が on-the-spot でできる。

目に見える一番の変化はフォントまわりか。試しに

(set-default-font "メイリオ")

とするとフォントメイリオになった。全然 Emacs っぽくない。しかし、等幅フォントじゃないとコードを書くときに気持ち悪いかもしれない。

もうひとつの問題は、メイリオが簡体字などをサポートしていないこと。等幅で Unicode を広く収録していてきれいなフォントを探さないと。MS Office 付属の Arial Unicode MS は収録文字数が多いけどきれいじゃない。

多言語表示。HELLO はそれなりに表示される。あいかわらずアラビア文字は無茶苦茶だけど。

2009/10/28 追記: 同じ様にして別のマシン (Windows XP) でコンパイルを試みたところ問題が発生した。make bootstrap の途中、info-look.el を byte-compile する段階で止まってしまう。検索して見付けたサイトによると、Cygwin の /usr/X11R6/bin/libXpm.dll を load しにいって制御が戻らなくなるらしい。PATH をいじって /usr/X11R6/bin を外すと先に進むようになった。

2010/01/23 追記: Windows 7 + cygwin 1.7.1 でも特に問題なく build に成功。しかしよく落ちる。buffer の使い方が安全じゃないらしい。