ユーザの知らない単語予測がおもしろそう


PRML Hackathon の最中に、twitter の TL に流れてきた つぶやきで、SBM 勉強会 での id:niam さんの「SocialDict - 英文Webページのスマートな注釈・辞書引きシステム」がおもしろそうなお話と知った。
そんなん、SBM は興味の範囲外だし、タイトルからはそうとわからないし、全然ノーチェックだったよ〜(T_T


というわけで、やっと SocialDict の資料をちゃんと読んだ。


SBM には思い入れがないので、SBM との関連はどうでもよく(単語が URL を持つ*1、というのは REST 魂がムズムズするけどねw)。
ユーザが知っている単語かどうかを予測するというあたり、ちょうど本当にやりたいなあと思っている事の一つだったので、ふむふむして読む。
Item Response Theory とか初めて知った。
iVoca のデータで計算してみよう〜。


資料にもあるけど、課題は訓練用のデータ集めかなあ。
3000語訓練して 80% の精度(なのかな?)だと、なかなか「ほら楽しんでね!」というわけにもいかない。
まず最初に使い始めるとき、少ない質問でユーザの特性を推定して、そこから利用する中で訓練が進んでいく、っていうのに IRT が使えたりしないのかな? なんて素人の思いつき。どうだろう。


それから TODO に smart.fm(iKnow) と連携して、問題をインポートさせる……ってあるけど、むしろ逆、勉強した結果を SocialDict にインポートできたほうが嬉しいかな。


smart.fm でそういうデータを保持しているかどうかわからないけど、iVoca ではその単語をマスターしているかどうかとは別に、ユーザがその単語を苦手としているかどうか(間違えたかどうか)という情報が算出できるようになっていて、問題一覧で「苦手度」として5段階表示したり、各ブック(単語帳)に「みんなが苦手な単語一覧」として表示させたり、ということに利用している。



ある程度勉強してくれているユーザなら数百個の単語について、熱心なユーザだと数千〜1万の単語について、そういうデータを持っているので、それを最初にインポートできて、訓練が進んだ状態から使い始められたら楽しそう。
でもまあ、まずは iVoca のデータを使って自分で IRT で計算してみるところからかな。

*1:smart.fm は単語(問題)が URL を持つ。例: http://smart.fm/items/24427