無料の英単語学習サービス「えいたんごクイズ」を開発しています。以前 Qiita と note に書いた内容から、適応型出題を実際のサービスに組み込むときに考えたことをまとめます。
測ることと、学び続けることを分ける
項目反応理論(Item Response Theory、IRT)では、回答から学習者の能力と問題の難易度を推定します。
ただ、能力の推定に役立つ問題が、そのまま続けやすい問題になるとは限りません。Qiita で紹介した実装では、学習時は目標正答率を70%に置き、診断時とは能力推定値の動かし方を変えています。
少ない問題で現在地を知ることと、繰り返し取り組めること。それぞれの目的に合わせた調整が必要でした。
データが少ない状態から始める
開始時点では十分な回答データがありません。単語の出現頻度から初期難易度を設定し、実際の回答で補正する形にしました。
ただし、英語での出現頻度と日本語話者にとっての難しさは一致しません。カタカナ語のような例もあります。初期値を確定した答えにせず、データが少ない間は推定値が極端に動かないようにしています。
「覚えた」と「簡単な問題」を混同しない
同じ人が同じ問題を繰り返し正解しても、誰にとっても簡単な問題とは限りません。難易度を推定する際は、同じ単語への連続回答の重みを減らしています。
また、出題にランダム性を加え、同じ問題ばかりになることも避けています。
AIと一緒に、何を作るかを考える
開発には Claude Code や Codex を活用しました。コードを書くことだけでなく、仕様の整理や実装方針の確認にも使っています。
その一方で、誰のために、どんな学習体験を作るのかは考え続ける必要があります。英単語を覚えることを、英語を使うための準備につなげたい。その考えが、出題の難しさや続けやすさを決める土台になっています。
現在のサービス
語彙力診断は登録不要・無料で、20問から推定語彙数と英検レベルの目安を表示します。現在は4つの難易度があり、時間制限なしも選べます。学習記録の保存や復習機能には登録が必要です。
診断結果は目安であり、会話・英作文・リスニングを含む総合的な英語力や、英検の合否を判定するものではありません。
関連記事
この記事の実装の説明は、2026年5月更新の Qiita 記事で紹介した内容を要約しています。PHP のコード例や数式は、元の記事に掲載しています。