CEFR語彙目標
今のCEFRレベルと目標レベルの間に、新しい単語がいくつ必要かが分かります。A2からB2なら1000語から4000語へ、3000語を覚える計算です。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 現在のレベル
- A2
- 目標レベル
- B2
- 現在の段階
- 1,000
- 目標語彙数
- 4,000
- 知っている単語数
- 1,000
- 学習する単語数
- 3,000
CEFRの帯で語学コースを計画するとき、「中級」のような曖昧なラベルではなく、語彙の不足を具体的な数字で把握すると進めやすくなります。このCEFR語彙目標ツールは、現在のレベルとより高い目標レベルを固定の累積語彙ラダーに対応させ、目標帯の語数に達するまでにまだ必要な新規項目数を示します。教科書の選定、Ankiの1日上限設定、チューターへの共有、配置試験や資格試験前の学習月数の見積もりに使えます。任意の既知語数は、すでに語彙サイズを把握している場合にラダー平均を上書きします。任意の1日あたり語数は、不足分を日数に換算します。
CEFR帯と累積語彙ラダー
ヨーロッパ言語共通参照枠は、言語能力をA1(基礎段階の言語使用者)からC2(熟達した言語使用者)までの6つの主レベルに整理します。語彙サイズは習熟の一側面にすぎず、文法・技能・分野知識も重要ですが、受容語彙の規模はコース設計者や独学者がすでに使う実践的な計画指標です。本機能は透明な累積ラダーを採用します。
A1で500語、A2で1000語、B1で2000語、B2で4000語、C1で8000語、C2で16000語です。これらの丸い数字は教育的な計画アンカーであり、公式のCEFR試験カットスコアではありません。およそ2帯ごとに倍増するため、B1からB2への上昇は新規2000語、C1からC2への上昇は8000語を要します。
例えばA2からB1は1000語、B1からB2は2000語です。この分解により、最終的なCレベル数字だけを見るのではなく、学期単位で目標を段階化できます。
学習計画、チュータリング、製品連携
語学学校はCEFR語彙目標計算機を使い、生徒の宣言した目標に合う週あたりの新規語クォータを設定します。例えば秋の入学前にA2からB1へ進む計画です。検証失敗は残高を消費しません。
数値は計画用の見積もりであることを利用者が理解できるよう、製品文言ではラダーを固定してください。完全なCEFR認定準備が必要なときは技能ベースの配置と組み合わせ、二つの帯の間で語彙差がどれほど大きいかという問いに答えるときに本ツールを使ってください。
活用例
学校・チューター向け計画
保護者と学習者に帯ごとの段階(A2→B1、B1→B2)を示し、学期ごとに測定可能な語彙マイルストーンを設けます。
よくある質問
A2からB2までに何語必要ですか?
このラダーではA2が1000、B2が4000なので、A2平均から始めるとギャップは新規3000語です。
各CEFRレベルの語彙数はいくつですか?
A1は500語、A2は1000語、B1は2000語、B2は4000語、C1は8000語、C2は16000語です。段階が上がるごとに、およそ2倍になります。
この語数はCEFRの公式な基準ですか?
いいえ、計画を立てるための切りのよい目安で、試験の公式な合格ラインではありません。語彙は実力の一部にすぎず、文法や技能、分野の知識も大切です。
実際に知っている語数から計算できますか?
はい。レベル分けテストや単語カードで把握している語数を入力すると、レベルの平均値の代わりに使われます。小数は切り捨てて、整数の語数にします。
目標レベルまで何日かかりますか?
1日に覚える新しい単語の数を入力すると、不足分をそのペースで割って日数を出します。最後の単語が計画から漏れないよう、日数は切り上げます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/edu/cefr-vocab-target \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"current_level":"A2","target_level":"B2"}'const res = await fetch("https://api.kit.forhosting.com/edu/cefr-vocab-target", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"current_level": "A2",
"target_level": "B2"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/cefr-vocab-target",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"current_level": "A2",
"target_level": "B2"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/cefr-vocab-target", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"current_level":"A2","target_level":"B2"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"current_level":"A2","target_level":"B2"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/cefr-vocab-target", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"current_level": "A2",
"target_level": "B2"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.cefr_vocab_target",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
CEFR帯と累積語彙ラダー
現在レベルと厳密により高い目標レベルを送ると、エンジンは両方の累積サイズを参照し、有効な開始サイズを目標サイズから差し引き、非負の差を words_to_learn として返します。path フィールドは開始から目標までの各帯を列挙して中間のマイルストーンを示し、level_steps は総ギャップを帯ごとの増分に分解します。
入力契約、上書き、応答の形
受け入れ値は大文字小文字を問わず A1、A2、B1、B2、C1、C2 です。エンジンは小数を語単位に切り捨て、その値を開始サイズとして使います。必須のCEFRレベル文字列 current_level と target_level を含むJSON本体をPOSTしてください。from や to などのエイリアスは同じフィールドに対応します。目標はラダー上で現在レベルより厳密に上でなければならず、等しい場合や逆転している場合は、成功と誤読されうる静かなゼロではなく invalid_input で失敗します。デッキ、配置試験、単語リスト追跡が帯のラダー平均と異なる実サイズを報告する場合、任意で非負数の known_words を送れます。任意で厳密に正の words_per_day を送ると、days_needed は words_to_learn をその率で割った切り上げ、または目標サイズに既に達している場合は0になります。成功応答は正規化レベル、ladder_current と target_vocab のサイズ、使用した known_words、words_to_learn、already_reached、levels_to_climb、path、level_steps、percent_of_target、短い formula 文字列、人間向けメッセージ、番号付き steps を返します。日次率が指定された場合は words_per_day と days_needed も現れます。任意フィールドは null ではなく省略されます。検証失敗は問題のフィールド名を示し、課金されません。
学習計画、チュータリング、製品連携
独学者は words_to_learn の数字を間隔反復の1日上限と組み合わせ、AnkiやMemriseのデッキが試験日を過大に約束しないようにします。チューターやコーチは曖昧な進捗の話ではなく共有の数値ギャップでセッションを始め、リストが増えるにつれて known_words を更新します。LMSプラグインやモバイル学習アプリは、アルゴリズムがモデルトークンも外向き通信もない純粋算術であるため、エッジワーカーから同じ parse エンドポイントを呼び出します。
連携の活用例
独学とSRSの1日上限
A2→B2の目標を具体的な words_to_learn 合計に換算し、任意で好みの words_per_day から days_needed も求めます。
LMSと言語アプリのAPI
独自のラダー表をホストせず、オンボーディングでCEFR語彙ギャップを計算する決定的な parse エンドポイントを呼び出します。
技術的な質問
各CEFRレベルはどの語彙サイズを使いますか?
累積受容サイズは A1=500、A2=1000、B1=2000、B2=4000、C1=8000、C2=16000 です。公式試験のカットではなく、教育的な計画アンカーです。
目標レベルを現在レベルと同じにできますか?
いいえ。target_level は current_level より厳密に高くなければなりません。等しい、または低い目標は invalid_input となり、ゼロギャップを成功した上昇と扱わせません。
known_words は結果をどう変えますか?
指定すると known_words が現在レベルのラダーサイズを置き換えます。words_to_learn は max(0, target_vocab − known_words) となり、既知リストが大きいほど残りのギャップが縮みます。
CEFR語彙目標計算機の料金は?
ブラウザツールは無料です。APIリクエストは成功した呼び出しごとに前払いKIT残高から $0.002 です。無効な入力は課金されません。