物置き

JACET8000

Smart.fmでのマスター単語数が5500を超えてきたので
こちらの語彙レベル測定CGIで「語彙レベル5000」で測定をしてみるも、
「5000語彙ありません」という結果になった。(4000語彙はあった)
この測定CGIではJACET8000という単語リストを基にしているとのこと。


ここで、このまま現在のリストを進めていって果たして大丈夫なんだろうかと不安になった。
今はAGOSのTOEFLシリーズを進めているのだけど、これを進めていってJACET8000の単語を埋めることはできるのだろうか。
(まあ、JACET8000をコンプリートするために勉強しているわけではないのだけど)


ということで、APIを使って現時点でのマスター単語一覧とTOEFLシリーズのリストに含まれる単語一覧を取得し、
それらをあわせたものと、JACET8000の単語リストとを比較してみることで、
TOEFLシリーズを終えた時点でどれくらいJACET8000をカバーできるようになるのか調べてみようと思った。


とはいえ、JACET8000の単語リストはオープンにはなっていなくて、有償で入手する必要がある。
これだけのためにお金払ってまで調べる気にはなれないので、
代替として北海道大学英語語彙表というのを使ってみることにした。
(こちらの語彙表の単語数は7454でJACET8000と比べるとちょっと少ないけど、
目的柄きっとJACET8000と似通ってたもんだろうと予想)

任意のユーザのマスター単語一覧を取得(現在のバッファに出力)

function! GetSmartfmMasteredItems(user_name)
  let smf = smartfm#initialize("")
  
  let offset=0
  while 1
    let offset = offset + 1
    let res = smartfm#get_studied_items(smf,a:user_name,100, offset, "studied",1,0,0,100,100)
    if len(res) == 0
      return
    endif
    for _ in res
      let line = '"'._['cue']['text'].'","'._['responses'][0]['text'].'"'
      exe "normal! Go".line
    endfor
  endwhile
endfunction

任意のリスト内アイテムの一覧

function! GetSmartfmListItems(list_id)
  let smf = smartfm#initialize("")
  
  let offset=0
  while 1
    let offset = offset + 1
    let res = smartfm#get_items_in_list(smf, a:listid, 100, offset, 0)
    if len(res) == 0
      return
    endif
    for _ in res
      let line = '"'._['cue']['text'].'","'._['responses'][0]['text'].'"'
      exe "normal! Go".line
    endfor
  endwhile
endfunction
      • -

わざわざVimScriptでやるのが意味不明な感じだけど、
自前のAPIラッパーを流用できて一番楽ちんだから。(APIラッパーはsmartfm_frontend.vimに含まれている)


上記のスクリプトを使って単語済み一覧を取得し、北海道大学英語語彙表と比較してみたところ、
現時点での語彙表上のマスター単語数は3577だった。
3577 / 7454ということで分母を8000に通分してみると、約3839
まあ、ぎりぎり4000語彙あるかというくらいで、測定CGIのお告げの通りになった。

      • -

あと、この先自分がやろうと思っている(Smart.fm上の)リスト群をコンプリートしても、
自分が期待するほどJACET8000の単語を埋めることはできないということもわかった。まあ仕方ないか。