From febfd30f49f686dd49b9378e4ff6f2635fe9f11e Mon Sep 17 00:00:00 2001 From: shenlei Date: Fri, 18 Sep 2026 11:16:09 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20A1=20=E7=9F=AD=E6=9D=90=E6=96=99?= =?UTF-8?q?=E5=A4=8D=E7=8E=B0=E6=9C=AC=E5=8D=95=E5=85=83=E7=90=86=E8=A7=A3?= =?UTF-8?q?=E8=AF=8D=EF=BC=8C=E5=B9=B6=E5=8A=A0=E5=85=A5=E9=BB=91=E5=A4=9C?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 课程内容 - 重写全部 21 个 A1 单元的听读材料,把本单元理解词织进听/读文本, 单元内理解词复现率从约 20% 提升到约 77%(各单元 56–96%)。 - 修正 U01 房间号与机场大巴同为 thirty 的撞车(改为 17/30/40)。 - 校验器容差按级别读取(A1 为 8%),materials 覆盖率、字数、 选项子串等校验全部通过;course_content_test 通过。 黑夜模式 - app_theme 拆分明/暗两套调色板,AppColors 随亮度切换; main 用 theme/darkTheme/themeMode + builder 镜像已解析亮度; 主题偏好持久化到快照;进度页新增“外观主题”切换。 文档 - COURSE-PACK-JSON.md 更新 A1 词池覆盖(840/933)与材料复现约定。 Co-Authored-By: Claude Opus 4.8 --- Doc/COURSE-PACK-JSON.md | 224 + Doc/LEARNING-ENGINE-SPEC.md | 45 +- kouyu_english/assets/courses/A1/A1-U01.json | 918 ++ kouyu_english/assets/courses/A1/A1-U02.json | 831 ++ kouyu_english/assets/courses/A1/A1-U03.json | 907 ++ kouyu_english/assets/courses/A1/A1-U04.json | 954 ++ kouyu_english/assets/courses/A1/A1-U05.json | 910 ++ kouyu_english/assets/courses/A1/A1-U06.json | 989 +++ kouyu_english/assets/courses/A1/A1-U07.json | 929 ++ kouyu_english/assets/courses/A1/A1-U08.json | 923 ++ kouyu_english/assets/courses/A1/A1-U09.json | 973 ++ kouyu_english/assets/courses/A1/A1-U10.json | 912 ++ kouyu_english/assets/courses/A1/A1-U11.json | 966 ++ kouyu_english/assets/courses/A1/A1-U12.json | 971 ++ kouyu_english/assets/courses/A1/A1-U13.json | 975 +++ kouyu_english/assets/courses/A1/A1-U14.json | 960 ++ kouyu_english/assets/courses/A1/A1-U15.json | 917 ++ kouyu_english/assets/courses/A1/A1-U16.json | 954 ++ kouyu_english/assets/courses/A1/A1-U17.json | 910 ++ kouyu_english/assets/courses/A1/A1-U18.json | 935 ++ kouyu_english/assets/courses/A1/A1-U19.json | 912 ++ kouyu_english/assets/courses/A1/A1-U20.json | 857 ++ kouyu_english/assets/courses/A1/A1-U21.json | 952 ++ kouyu_english/assets/courses/A2/A2-U01.json | 1154 +++ kouyu_english/assets/courses/A2/A2-U02.json | 1238 +++ kouyu_english/assets/courses/A2/A2-U03.json | 1192 +++ kouyu_english/assets/courses/A2/A2-U04.json | 1228 +++ kouyu_english/assets/courses/A2/A2-U05.json | 1213 +++ kouyu_english/assets/courses/A2/A2-U06.json | 1200 +++ kouyu_english/assets/courses/A2/A2-U07.json | 1231 +++ kouyu_english/assets/courses/A2/A2-U08.json | 1176 +++ kouyu_english/assets/courses/A2/A2-U09.json | 1197 +++ kouyu_english/assets/courses/A2/A2-U10.json | 1215 +++ kouyu_english/assets/courses/A2/A2-U11.json | 1235 +++ kouyu_english/assets/courses/A2/A2-U12.json | 1154 +++ kouyu_english/assets/courses/A2/A2-U13.json | 1205 +++ kouyu_english/assets/courses/A2/A2-U14.json | 1192 +++ kouyu_english/assets/courses/A2/A2-U15.json | 1113 +++ kouyu_english/assets/courses/B1/B1-U01.json | 1421 +++ kouyu_english/assets/courses/B1/B1-U02.json | 1383 +++ kouyu_english/assets/courses/B1/B1-U03.json | 1410 +++ kouyu_english/assets/courses/B1/B1-U04.json | 1399 +++ kouyu_english/assets/courses/B1/B1-U05.json | 1372 +++ kouyu_english/assets/courses/B1/B1-U06.json | 1320 +++ kouyu_english/assets/courses/B1/B1-U07.json | 1307 +++ kouyu_english/assets/courses/B1/B1-U08.json | 1307 +++ kouyu_english/assets/courses/B1/B1-U09.json | 1344 +++ kouyu_english/assets/courses/B1/B1-U10.json | 1319 +++ kouyu_english/assets/courses/B1/B1-U11.json | 1337 +++ kouyu_english/assets/courses/B1/B1-U12.json | 1335 +++ kouyu_english/assets/courses/B1/B1-U13.json | 1478 ++++ kouyu_english/assets/courses/B1/B1-U14.json | 1288 +++ kouyu_english/assets/courses/course-map.json | 653 ++ kouyu_english/lib/core/a0_core.dart | 101 +- kouyu_english/lib/core/app_state.dart | 8 + kouyu_english/lib/core/app_state_review.dart | 36 +- .../lib/core/app_state_snapshot.dart | 4 + kouyu_english/lib/core/app_theme.dart | 133 +- kouyu_english/lib/core/review_feedback.dart | 17 +- kouyu_english/lib/core/seed_courses.dart | 121 +- kouyu_english/lib/core/speech_compare.dart | 149 + kouyu_english/lib/core/writing_feedback.dart | 5 +- .../features/assessment/assessment_page.dart | 2 +- .../lib/features/dialogue/dialogue_flow.dart | 24 +- .../lib/features/home/home_page.dart | 6 +- .../lib/features/lesson/lesson_flow.dart | 16 +- .../lesson/steps/independent_step.dart | 2 +- .../features/lesson/steps/listening_step.dart | 45 +- .../features/lesson/steps/reading_step.dart | 16 +- .../features/lesson/steps/speaking_step.dart | 76 +- .../features/lesson/steps/writing_step.dart | 4 +- .../features/onboarding/onboarding_pages.dart | 4 +- .../lib/features/progress/progress_pages.dart | 49 +- .../progress/sync_settings_sheet.dart | 6 +- .../lib/features/review/review_page.dart | 183 +- .../lib/features/shell/learning_shell.dart | 7 +- kouyu_english/lib/main.dart | 85 +- kouyu_english/lib/widgets/app_widgets.dart | 4 +- kouyu_english/lib/widgets/lexicon_lookup.dart | 28 +- kouyu_english/test/app_state_test.dart | 94 +- kouyu_english/test/course_content_test.dart | 40 + kouyu_english/test/review_feedback_test.dart | 33 +- kouyu_english/test/speech_compare_test.dart | 46 + kouyu_english/test/writing_feedback_test.dart | 12 +- .../tool/courses/build_word_pools.py | 167 + .../tool/courses/course_validator.dart | 1138 +++ kouyu_english/tool/courses/lexicon/SOURCES.md | 33 + .../cefrj-grammar-profile-20180315.csv | 501 ++ .../lexicon/cefrj-vocabulary-profile-1.5.csv | 7800 +++++++++++++++++ .../tool/courses/pools/a1-word-pool.csv | 1067 +++ .../tool/courses/pools/a2-word-pool.csv | 1245 +++ .../tool/courses/pools/b1-word-pool.csv | 2141 +++++ kouyu_english/tool/courses/validate.dart | 62 + 93 files changed, 72676 insertions(+), 274 deletions(-) create mode 100644 Doc/COURSE-PACK-JSON.md create mode 100644 kouyu_english/assets/courses/A1/A1-U01.json create mode 100644 kouyu_english/assets/courses/A1/A1-U02.json create mode 100644 kouyu_english/assets/courses/A1/A1-U03.json create mode 100644 kouyu_english/assets/courses/A1/A1-U04.json create mode 100644 kouyu_english/assets/courses/A1/A1-U05.json create mode 100644 kouyu_english/assets/courses/A1/A1-U06.json create mode 100644 kouyu_english/assets/courses/A1/A1-U07.json create mode 100644 kouyu_english/assets/courses/A1/A1-U08.json create mode 100644 kouyu_english/assets/courses/A1/A1-U09.json create mode 100644 kouyu_english/assets/courses/A1/A1-U10.json create mode 100644 kouyu_english/assets/courses/A1/A1-U11.json create mode 100644 kouyu_english/assets/courses/A1/A1-U12.json create mode 100644 kouyu_english/assets/courses/A1/A1-U13.json create mode 100644 kouyu_english/assets/courses/A1/A1-U14.json create mode 100644 kouyu_english/assets/courses/A1/A1-U15.json create mode 100644 kouyu_english/assets/courses/A1/A1-U16.json create mode 100644 kouyu_english/assets/courses/A1/A1-U17.json create mode 100644 kouyu_english/assets/courses/A1/A1-U18.json create mode 100644 kouyu_english/assets/courses/A1/A1-U19.json create mode 100644 kouyu_english/assets/courses/A1/A1-U20.json create mode 100644 kouyu_english/assets/courses/A1/A1-U21.json create mode 100644 kouyu_english/assets/courses/A2/A2-U01.json create mode 100644 kouyu_english/assets/courses/A2/A2-U02.json create mode 100644 kouyu_english/assets/courses/A2/A2-U03.json create mode 100644 kouyu_english/assets/courses/A2/A2-U04.json create mode 100644 kouyu_english/assets/courses/A2/A2-U05.json create mode 100644 kouyu_english/assets/courses/A2/A2-U06.json create mode 100644 kouyu_english/assets/courses/A2/A2-U07.json create mode 100644 kouyu_english/assets/courses/A2/A2-U08.json create mode 100644 kouyu_english/assets/courses/A2/A2-U09.json create mode 100644 kouyu_english/assets/courses/A2/A2-U10.json create mode 100644 kouyu_english/assets/courses/A2/A2-U11.json create mode 100644 kouyu_english/assets/courses/A2/A2-U12.json create mode 100644 kouyu_english/assets/courses/A2/A2-U13.json create mode 100644 kouyu_english/assets/courses/A2/A2-U14.json create mode 100644 kouyu_english/assets/courses/A2/A2-U15.json create mode 100644 kouyu_english/assets/courses/B1/B1-U01.json create mode 100644 kouyu_english/assets/courses/B1/B1-U02.json create mode 100644 kouyu_english/assets/courses/B1/B1-U03.json create mode 100644 kouyu_english/assets/courses/B1/B1-U04.json create mode 100644 kouyu_english/assets/courses/B1/B1-U05.json create mode 100644 kouyu_english/assets/courses/B1/B1-U06.json create mode 100644 kouyu_english/assets/courses/B1/B1-U07.json create mode 100644 kouyu_english/assets/courses/B1/B1-U08.json create mode 100644 kouyu_english/assets/courses/B1/B1-U09.json create mode 100644 kouyu_english/assets/courses/B1/B1-U10.json create mode 100644 kouyu_english/assets/courses/B1/B1-U11.json create mode 100644 kouyu_english/assets/courses/B1/B1-U12.json create mode 100644 kouyu_english/assets/courses/B1/B1-U13.json create mode 100644 kouyu_english/assets/courses/B1/B1-U14.json create mode 100644 kouyu_english/assets/courses/course-map.json create mode 100644 kouyu_english/lib/core/speech_compare.dart create mode 100644 kouyu_english/test/course_content_test.dart create mode 100644 kouyu_english/test/speech_compare_test.dart create mode 100644 kouyu_english/tool/courses/build_word_pools.py create mode 100644 kouyu_english/tool/courses/course_validator.dart create mode 100644 kouyu_english/tool/courses/lexicon/SOURCES.md create mode 100644 kouyu_english/tool/courses/lexicon/cefrj-grammar-profile-20180315.csv create mode 100644 kouyu_english/tool/courses/lexicon/cefrj-vocabulary-profile-1.5.csv create mode 100644 kouyu_english/tool/courses/pools/a1-word-pool.csv create mode 100644 kouyu_english/tool/courses/pools/a2-word-pool.csv create mode 100644 kouyu_english/tool/courses/pools/b1-word-pool.csv create mode 100644 kouyu_english/tool/courses/validate.dart diff --git a/Doc/COURSE-PACK-JSON.md b/Doc/COURSE-PACK-JSON.md new file mode 100644 index 0000000..7a766e2 --- /dev/null +++ b/Doc/COURSE-PACK-JSON.md @@ -0,0 +1,224 @@ +# 课程内容包 JSON 格式 + +> 对应《学习引擎规格》第 5 节。本文说明 A1–B1 单元内容包的文件位置、字段和程序校验规则。A0 仍按《A0 初始核心课程包》,不在此格式内。 + +## 1. 文件与工具 + +| 路径 | 内容 | +|---|---| +| `kouyu_english/assets/courses/course-map.json` | 主题地图:等级、单元顺序、每级的数量范围、名称白名单 | +| `kouyu_english/assets/courses/<等级>/<单元ID>.json` | 单元内容包,一个单元一个文件 | +| `kouyu_english/tool/courses/lexicon/` | 锁定的 CEFR-J 数据与 `SOURCES.md` | +| `kouyu_english/tool/courses/pools/` | 等级词池(`build_word_pools.py` 生成) | +| `kouyu_english/tool/courses/validate.dart` | 校验全部内容包,报告词池覆盖率 | +| `kouyu_english/test/course_content_test.dart` | 在 `flutter test` 中要求校验零错误 | + +```sh +cd kouyu_english +dart run tool/courses/validate.dart # 错误和覆盖率 +dart run tool/courses/validate.dart --uncovered B1 # 按主题列出未覆盖的词池词 +dart run tool/courses/validate.dart --levels B1-U14 # 打印条目的计算等级 +``` + +内容包目前只是资源文件,尚未加入 `pubspec.yaml`,运行时也还不读取。 + +## 2. 当前内容(2026-09-17,全部为 `draft`) + +| 等级 | 单元 | 产出核心 | 理解词 | 听读材料 | 词池覆盖 | +|---|---|---|---|---|---| +| A1 | 21 | 265 | 598 | 42 | 840/933(90.0%) | +| A2 | 15 | 217 | 862 | 44 | 1040/1078(96.5%) | +| B1 | 14 | 206 | 1121 | 42 | 1345/1552(86.7%) | + +全部由 AI 起草、程序校验通过,尚未经过独立审核和用户确认,不能冻结。 + +## 3. course-map.json + +```jsonc +{ + "schemaVersion": 1, + "goal": "日常生活与旅行", + "sources": ["CEFR-J Vocabulary Profile 1.5(…)", "CEFR-J Grammar Profile 20180315(…)"], + "minimumPoolCoverage": 0.85, // 等级词池覆盖下限 + "alwaysAllowedWords": ["oh", "ok", …], // 任何文本都可用的语气词 + "names": ["tom", "london", "mr", …], // 全局专名、缩写 + "levels": [{ + "id": "B1", + "title": "独立应对大多数情况", + "coreRange": [10, 15], + "receptiveRange": [70, 110], + "materials": {"count": [2, 3], "listeningWords": [250, 550], "readingWords": [300, 500]}, + // A1 的材料较短,且可选 "unknownTolerance"(默认 0.02)放宽超纲词占比 + "units": [{"id": "B1-U01", "file": "B1/B1-U01.json", "title": "…", "categories": ["旅行"], "canDo": "…"}] + }] +} +``` + +各等级范围: + +| 等级 | 产出核心 | 理解词 | 听读材料 | 听力词数 | 阅读词数 | +|---|---|---|---|---|---| +| A1 | 10–15 | 20–35 | 2 篇 | 60–120 | 80–150 | +| A2 | 10–15 | 40–65 | 2–3 篇 | 120–280 | 150–250 | +| B1 | 10–15 | 70–110 | 2–3 篇 | 250–550 | 300–500 | + +A1 材料短、面向零基础,`unknownTolerance` 设为 0.08(听读材料默认 0.02):允许更多“课程尚未正式教、但零基础者需要”的常用词,前提是每个都写进 `glosses` 给出中文,问题选项用中文以免受“选项须在原文出现”的限制。 + +`units` 的顺序就是推荐学习顺序,校验“已教的词”时按此顺序累积。 + +## 4. 单元文件 + +### 4.1 ID 规则 + +所有 ID 都以单元 ID 开头,序号从 1 连续编号: + +| 前缀 | 对象 | 例子 | +|---|---|---| +| `W` | 产出核心:单词 | `B1-U14-W01` | +| `P` | 产出核心:词块或句型 | `B1-U14-P01` | +| `R` | 理解词 | `B1-U14-R01` | +| `S` | 教学段 | `B1-U14-S1` | +| `C` | 场景 | `B1-U14-C1` | +| `T` | 任务 | `B1-U14-T1` | +| `M` | 听读材料 | `B1-U14-M1` | + +### 4.2 顶层字段 + +```jsonc +{ + "schemaVersion": 1, + "id": "B1-U14", + "revision": 1, + "level": "B1", + "title": "写说明与投诉", // title/categories/canDo 必须与 course-map 一致 + "categories": ["日常", "旅行"], + "canDo": "写邮件说明经过并提出要求", + "status": "draft", // draft / reviewed / frozen + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": ["CEFR-J Vocabulary Profile 1.5", "CEFR-J Grammar Profile 20180315"], + "reviews": [], // 审核记录 + "frozenAt": null + }, + "names": ["seaview", "palace"], // 本单元专名,小写 + "grammar": [{"id": "142", "use": "active"}, {"id": "215", "use": "receptive", "reason": "…"}], + "coreItems": […], "receptiveWords": […], "segments": […], "scenes": […], "tasks": […], + "materials": […], // A1 起(A1 为短材料) + "rubric": {"dimensions": […]}, // A2 起(A1 无开放任务评分标准) + "excluded": [{"en": "…", "reason": "…"}] +} +``` + +### 4.3 coreItems(产出核心) + +```json +{ + "id": "B1-U14-P08", + "type": "phrase", + "en": "I would like to request a full refund.", + "zh": "我想申请全额退款。", + "sceneWord": false, + "match": [["request a full refund", "request a refund"]], + "example": {"en": "I would like to request a refund for the second night.", "zh": "我想申请退还第二晚的费用。"}, + "review": {"prompt": "在邮件里提出退款要求。"} +} +``` + +- `type`:`word` / `phrase` / `pattern`。 +- `match`:判定用户是否用到本项。外层数组之间为“且”,内层为“或”;每个词条按连续短语匹配(缩写展开、忽略大小写和标点)。`en` 和 `example.en` 都必须满足。 +- `sceneWord`:高于本等级或 CEFR-J 未收录、但场景必需的词句设为 `true`,并写 `sceneReason`;每单元不超过产出核心的 1/3。 +- `review.prompt`:复习时的中文任务,不能直接包含英文答案。 + +### 4.4 receptiveWords(理解词) + +```json +{"id": "B1-U14-R01", "en": "furthermore", "zh": "此外"} +``` + +- 不高于本等级加一级(B1 单元最高 B2)。 +- 不能是 A0 或之前单元已教的词(按词形还原比较)。 +- 必须出现在本单元的教学段、场景或听读材料文本中。 + +### 4.5 segments(教学段) + +每单元 2–4 段,每段 8–15 分钟、最多 6 个新产出核心: + +```jsonc +{ + "id": "B1-U14-S1", "title": "说明写信目的", "minutes": 12, + "itemIds": ["B1-U14-P01", "B1-U14-P02"], + "listening": {"text": "…", "question": "…", "options": ["正确", "干扰", "干扰"]}, + "speaking": [{"text": "…", "tip": "可选的发音提示"}], + "reading": {"text": "多行用 \n", "question": "…", "options": ["…", "…", "…"]}, + "writing": {"prompt": "…", "example": "…", "itemIds": ["B1-U14-P01"]}, + "independent": {"prompt": "…", "itemIds": ["B1-U14-P02"]} +} +``` + +- 选项恰好 3 个,第一个是正确答案(界面随机排序);选项不能互为子串。英文选项至少两个在原文出现,且正确选项必须出现。 +- `writing.example` 必须用到它引用的每个产出核心。 + +### 4.6 scenes 与 tasks + +```jsonc +{ + "id": "B1-U14-C1", "kind": "main", // 恰好 1 个 main,另有 2–3 个 variant + "title": "…", "learnerRole": "客人", "aiRole": "酒店客服经理", "setting": "…", + "turns": [ // 4–7 轮 + {"ai": "AI 说的话", "goal": "本轮目标", "model": "学习者示范回答", "zh": "示范的中文", "itemIds": ["B1-U14-P01"]} + ] +} +``` + +```json +{"id": "B1-U14-T1", "sceneId": "B1-U14-C1", "goal": "…", "itemIds": ["B1-U14-P01"], "slots": ["目的", "经过", "结果", "要求"]} +``` + +- `model` 必须用到本轮 `itemIds` 引用的产出核心。 +- 每个场景至少有一个任务,每个任务至少 1 个信息槽。 +- 每个产出核心都要出现在教学段、场景示范和任务中。 + +### 4.7 materials(A1 用短材料,A2、B1 更长) + +```jsonc +{ + "id": "B1-U14-M1", "mode": "reading", "title": "投诉邮件和回复", + "text": "…", + "glosses": {"balcony": "阳台"}, + "questions": [{"type": "gist", "question": "…", "options": ["正确", "干扰", "干扰"]}] // 2–4 道,gist/detail/inference +} +``` + +- 每单元听和读都要有。 +- 超纲词(见第 5 节)按词次不超过该级 `materials.unknownTolerance`(默认 2%,A1 为 8%),每个超纲词都要写进 `glosses`。 +- A1 材料应尽量把本单元的理解词织进听读文本,让理解词在教学段之外再复现一次(本级平均单元内复现率约 77%);本单元的产出核心与理解词都算已教词,写进材料不计超纲。 + +### 4.8 rubric(A2 起) + +```json +{"dimensions": [{"name": "说明经过", "bands": ["经过说不清", "能按顺序说明经过,但缺少结果", "按顺序说明经过、结果,并附上证据"], "pass": 1}]} +``` + +至少 2 个维度,每维至少 3 档;`pass` 是及格档在 `bands` 中的下标(从 0 起),须大于 0。 + +## 5. 文本用词检查 + +“已知词”包括:`alwaysAllowedWords`、功能词、A0 已教的词、推荐顺序在前的单元的产出核心和理解词、本单元的产出核心和理解词(均按词形还原),以及全局与本单元的 `names`。数字不计。 + +| 文本 | 允许的未知词 | +|---|---| +| 教学段的听、说、读、写示范,场景的 AI 句和示范句 | 0 | +| 听读材料 | ≤ `materials.unknownTolerance`(默认 2%,A1 为 8%),且全部有 `glosses` | + +注意:等级低于本单元、但还没有被任何单元教过的词(如 `history`、`culture`)同样算未知词。要在文本中使用,须改写,或把它加为本单元的理解词。 + +## 6. 等级与覆盖 + +- 语法:`active` 语法项不高于本等级,否则写 `reason`。 +- 产出核心中的词不高于本等级,除非是场景词。 +- 覆盖率:等级词池(`tool/courses/pools/`)中,被产出核心、`match` 词块或理解词覆盖的词(含 A0 已教)占比须 ≥ `minimumPoolCoverage`。 + +## 7. 状态流转 + +`draft`(AI 起草、校验通过)→ `reviewed`(独立审核后,在 `meta.reviews` 记录审核模型、日期和问题清单)→ `frozen`(用户确认,填 `frozenAt`)。已冻结单元的 ID 不复用;修改须提升 `revision` 并遵循《学习引擎规格》5.5 的 stageVersion 规则。 diff --git a/Doc/LEARNING-ENGINE-SPEC.md b/Doc/LEARNING-ENGINE-SPEC.md index 2432d07..7f4c863 100644 --- a/Doc/LEARNING-ENGINE-SPEC.md +++ b/Doc/LEARNING-ENGINE-SPEC.md @@ -259,35 +259,37 @@ A2 起的出口任务按 5.8 判定;A2 → B1 与 B1 结业须人工或通过 - **单元是冻结和学习的基本单位**:某个单元冻结后即可学习,不必等整个等级。 - **单元之间不设门槛**:完成单元的教学段并尝试过单元任务后,即可进入下一单元;掌握在复习中继续推进。积压时按 2.2a 暂停推荐新单元。 - **推荐顺序按依赖排列**(如价格先于购物、日期先于预订、问路先于交通)。用户可以自选单元;跳到后面的单元时,前面单元中被引用的词句作为预热新项先教。 -- **单元规模**:产出核心 10–15 项(词、词块、句型);理解词 A1 20–35 项、A2 30–50 项、B1 50–80 项(两层词汇见 3.5)。A1 数量已按词池试建结果调整(5.4);A2、B1 仍是初始估计,建好词池后再调整。 +- **单元规模**:产出核心 10–15 项(词、词块、句型);理解词 A1 20–35 项、A2 40–65 项、B1 70–110 项(两层词汇见 3.5)。三个等级的数量都已按词池和起草结果调整(5.4),以 `course-map.json` 为准。 ### 5.2 主题地图 -A0 保持现有 10 节核心课(见《A0 初始核心课程包》)。A1 起的单元如下,“类别”表示该单元主要服务日常还是旅行。修改主题地图(增删、合并或调整单元)须用户确认;已冻结单元的 ID 不复用。 +A0 保持现有 10 节核心课(见《A0 初始核心课程包》)。A1 起的单元如下,机器可读版本是 `kouyu_english/assets/courses/course-map.json`,单元内容包格式见《课程内容包 JSON 格式》(COURSE-PACK-JSON.md)。A1 按词池试建结果补了“家人与住处”“描述人和感受”,把“开口求助与数字”放在最前,并按依赖调整了顺序(如问路先于打车、公交)。“类别”表示该单元主要服务日常还是旅行。修改主题地图(增删、合并或调整单元)须用户确认;已冻结单元的 ID 不复用。 **A1:固定的生活与旅行互动** | 单元 | 主题 | 类别 | 单元结束后能做什么 | |---|---|---|---| -| A1-U01 | 在咖啡店点单 | 日常 | 点饮料、说规格、礼貌确认 | +| A1-U01 | 开口求助与数字 | 旅行/日常 | 没听懂时礼貌求助,说 11–100 的数字,拼读字母 | | A1-U02 | 价格与付款 | 日常/旅行 | 问价、说 100 以内的金额、选择现金或刷卡 | -| A1-U03 | 在餐厅点餐 | 日常/旅行 | 点餐、问推荐、要账单 | -| A1-U04 | 超市与便利店 | 日常 | 找商品、说数量 | -| A1-U05 | 买衣服 | 日常 | 问尺码和颜色、试穿 | -| A1-U06 | 认识新朋友 | 日常 | 问职业、兴趣和住在哪里 | -| A1-U07 | 我的一天 | 日常 | 说作息和常做的事 | -| A1-U08 | 天气与穿着 | 日常/旅行 | 问天气、说该穿什么 | -| A1-U09 | 日期与约时间 | 日常 | 说日期、约见面、改时间 | -| A1-U10 | 问路 | 旅行 | 问地点、听懂左右和距离 | -| A1-U11 | 公交与地铁 | 旅行 | 买票、问站点、确认下车 | -| A1-U12 | 打车 | 旅行 | 说目的地、确认价格或路线 | -| A1-U13 | 在机场 | 旅行 | 值机、问登机口、回答入境的简单问题 | -| A1-U14 | 入住酒店 | 旅行 | 说明预订信息、办理入住 | -| A1-U15 | 酒店里的需求 | 旅行 | 要物品、报告简单问题 | -| A1-U16 | 药店与不舒服 | 日常/旅行 | 说一个症状、听懂基本建议 | -| A1-U17 | 请求帮助 | 日常/旅行 | 礼貌求助、感谢与回应 | -| A1-U18 | 打电话与留言 | 日常 | 留下姓名、号码和简短信息 | -| A1-U19 | 周末计划 | 日常 | 说将要做的事 | +| A1-U03 | 在咖啡店点单 | 日常 | 点饮料、说大小杯、礼貌确认 | +| A1-U04 | 问路 | 旅行 | 问地点、听懂左右和距离 | +| A1-U05 | 在餐厅点餐 | 日常/旅行 | 点餐、问推荐、要账单 | +| A1-U06 | 家人与住处 | 日常 | 介绍家人,说住在哪里和家里有什么 | +| A1-U07 | 公交与地铁 | 旅行 | 买票、问站点、确认下车 | +| A1-U08 | 超市与便利店 | 日常 | 找商品、说数量 | +| A1-U09 | 描述人和感受 | 日常 | 说一个人的外貌和性格,说自己的心情 | +| A1-U10 | 打车 | 旅行 | 说目的地、确认价格或路线 | +| A1-U11 | 我的一天 | 日常 | 说作息和常做的事 | +| A1-U12 | 买衣服 | 日常 | 问尺码和颜色、试穿 | +| A1-U13 | 日期与约时间 | 日常 | 说日期、约见面、改时间 | +| A1-U14 | 在机场 | 旅行 | 值机、问登机口、回答入境的简单问题 | +| A1-U15 | 入住酒店 | 旅行 | 说明预订信息、办理入住 | +| A1-U16 | 天气与穿着 | 日常/旅行 | 问天气、说该穿什么 | +| A1-U17 | 酒店里的需求 | 旅行 | 要物品、报告简单问题 | +| A1-U18 | 药店与不舒服 | 日常/旅行 | 说一个症状、听懂基本建议 | +| A1-U19 | 遇到麻烦时求助 | 日常/旅行 | 说明遇到的麻烦、请求帮忙、感谢与回应 | +| A1-U20 | 打电话与留言 | 日常 | 留下姓名、号码和简短信息 | +| A1-U21 | 周末计划 | 日常 | 说将要做的事、邀请朋友 | **A2:讲经历、做安排、处理小问题** @@ -342,7 +344,7 @@ B2 为可选扩展(自然语速的生活与旅行内容、复杂协商和讨 不导入、不抄录:Cambridge English Vocabulary Profile / English Grammar Profile、Oxford 3000、Pearson GSE(没有开放许可)。 -原始数据文件与来源说明(版本、下载地址、SHA-256、许可文本)随内容包一同存档。 +原始数据文件与来源说明(版本、下载地址、SHA-256、许可文本)随内容包一同存档,见 `kouyu_english/tool/courses/lexicon/SOURCES.md`。目前只导入了 CEFR-J 的两份文件,其余数据尚未导入。 ### 5.4 分级数据怎么用 @@ -360,6 +362,7 @@ B2 为可选扩展(自然语速的生活与旅行内容、复杂协商和讨 词池随等级 stageVersion 冻结,分类结果随数据来源一同存档。 - **覆盖检查**:冻结等级 stageVersion 前,本等级词池至少 85% 须被覆盖:作为产出核心或理解词,或出现在产出核心的词块、句型里(如 `Can I have ...?` 覆盖 can、I、have),A0 已教的词也算。每冻结一个单元,其候选词中未覆盖的词顺延到后面的单元;未覆盖的词逐个补进某个单元、放进听读材料,或写入排除项并说明理由。 - **A1 词池试建(2026-09-17,未经用户抽样审核)**:CEFR-J 1.5 的 A1 共 1,066 个不同词头。排除只属于学校与学术或其他的 102 个(如 homework、grammar、ruler,以及 fairy、prince、lion、kite、DVD 等儿童读物词和过时词),单独保存只属于工作的 15 个(如 meeting、interview、engineer、business),合并 is/was/did 等词形变体后,词池为 932 个。其中 A0 已覆盖 68 个,约 126 个是功能词和数词,其余约 770 个是实词:无主题标注的形容词 109、名词 105、动词 88、副词 40;有标注的 Free time 68、Personal identification 60、House and home 55、Food and drink 52、Shopping 44、Travel 23、Health 23 等。85% 覆盖需要 A1 单元再覆盖约 730 个。按每单元产出核心 12 项、其中约 8 项覆盖词池词(其余是场景词或纯句型)估算,产出核心覆盖约 150 个,加上词块中的功能词约 100 个,理解词需要覆盖约 480 个,也就是每单元平均约 25 个,因此 A1 的理解词数量从 15–30 调为 20–35。试建发现主题地图的缺口:family 类(aunt、cousin、husband、daughter 等约 20 个)和住处类(kitchen、bedroom、sofa、garden 等约 15 个)没有对应的 A1 单元,描述人和情绪的形容词(tall、young、angry、lonely 等)也没有集中的单元。 +- **A1–B1 起草结果(2026-09-17,未审核)**:50 个单元全部起草并通过程序校验,状态为 `draft`。词池覆盖 A1 834/933(89.4%)、A2 1040/1078(96.5%)、B1 1344/1552(86.6%)。A2、B1 的理解词范围按实际需要调为 40–65 和 70–110;听读材料词数 A2 听 120–280、读 150–250,B1 听 250–550、读 300–500。 - **A0**:保持已冻结的 60 项(`A0-1.0`),不按数据重新生成。对照 CEFR-J 1.5:40 个单词按词形还原后有 39 个属于 A1(`movies`→`movie`、`okay`→`OK/okay`),`zero` 不在词表中,作为 A0 自有项保留。 ### 5.5 单元内容包组成 diff --git a/kouyu_english/assets/courses/A1/A1-U01.json b/kouyu_english/assets/courses/A1/A1-U01.json new file mode 100644 index 0000000..02dc658 --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U01.json @@ -0,0 +1,918 @@ +{ + "schemaVersion": 1, + "id": "A1-U01", + "revision": 1, + "level": "A1", + "title": "开口求助与数字", + "categories": [ + "旅行", + "日常" + ], + "canDo": "没听懂时礼貌求助,说 11–100 的数字,拼读字母", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "123-2", + "use": "active" + }, + { + "id": "249", + "use": "active", + "reason": "Can you…? 是旅行中求助必需的功能问句,本单元只作为固定句块使用" + }, + { + "id": "59-1", + "use": "active" + }, + { + "id": "239", + "use": "active" + }, + { + "id": "246", + "use": "active" + }, + { + "id": "150", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "A1-U01-P01", + "type": "phrase", + "en": "Excuse me.", + "zh": "打扰一下。", + "sceneWord": false, + "match": [ + [ + "excuse me" + ] + ], + "example": { + "en": "Excuse me. Can you help me?", + "zh": "打扰一下,你能帮我吗?" + }, + "review": { + "prompt": "你想问路人问题,先礼貌地引起对方注意。" + } + }, + { + "id": "A1-U01-P02", + "type": "phrase", + "en": "Sorry, I don't understand.", + "zh": "抱歉,我没听懂。", + "sceneWord": true, + "sceneReason": "understand 在 CEFR-J 为 A2,但没听懂时求助是旅行第一天就要用的生存句", + "match": [ + [ + "do not understand", + "can not understand" + ] + ], + "example": { + "en": "Sorry, I don't understand. Can you speak slowly, please?", + "zh": "抱歉,我没听懂。你能说慢一点吗?" + }, + "review": { + "prompt": "对方说得太快,你没听懂,礼貌地告诉对方。" + } + }, + { + "id": "A1-U01-P03", + "type": "pattern", + "en": "Can you speak slowly, please?", + "zh": "你能说慢一点吗?", + "sceneWord": true, + "sceneReason": "slowly 在 CEFR-J 为 A2,但请对方放慢语速是零基础学习者最常用的求助句", + "match": [ + [ + "speak slowly", + "speak more slowly", + "slowly" + ] + ], + "example": { + "en": "Sorry, can you speak slowly, please?", + "zh": "抱歉,你能说慢一点吗?" + }, + "review": { + "prompt": "请对方说慢一点。" + } + }, + { + "id": "A1-U01-P04", + "type": "pattern", + "en": "Can you help me?", + "zh": "你能帮我吗?", + "sceneWord": false, + "match": [ + [ + "help me", + "help us" + ] + ], + "example": { + "en": "Excuse me. Can you help me?", + "zh": "打扰一下,你能帮我吗?" + }, + "review": { + "prompt": "在车站,你想请工作人员帮忙。" + } + }, + { + "id": "A1-U01-P05", + "type": "pattern", + "en": "What does this word mean?", + "zh": "这个词是什么意思?", + "sceneWord": false, + "match": [ + [ + "what does", + "what is" + ], + [ + "mean" + ] + ], + "example": { + "en": "Excuse me. What does this word mean?", + "zh": "打扰一下,这个词是什么意思?" + }, + "review": { + "prompt": "你看到一个不认识的词,问它的意思。" + } + }, + { + "id": "A1-U01-P06", + "type": "pattern", + "en": "Can you write it down, please?", + "zh": "你能把它写下来吗?", + "sceneWord": false, + "match": [ + [ + "write it down", + "write that down", + "write down" + ] + ], + "example": { + "en": "Sorry, I don't understand. Can you write it down, please?", + "zh": "抱歉,我没听懂。你能写下来吗?" + }, + "review": { + "prompt": "你听不清一个号码,请对方写下来。" + } + }, + { + "id": "A1-U01-P07", + "type": "pattern", + "en": "How do you say this in English?", + "zh": "这个用英语怎么说?", + "sceneWord": false, + "match": [ + [ + "how do you say" + ], + [ + "in english" + ] + ], + "example": { + "en": "Excuse me. How do you say this in English?", + "zh": "打扰一下,这个用英语怎么说?" + }, + "review": { + "prompt": "指着一样东西,问它用英语怎么说。" + } + }, + { + "id": "A1-U01-W01", + "type": "word", + "en": "eleven", + "zh": "十一", + "sceneWord": false, + "match": [ + [ + "eleven" + ] + ], + "example": { + "en": "Eleven or twelve?", + "zh": "十一还是十二?" + }, + "review": { + "prompt": "用英语说数字 11。" + } + }, + { + "id": "A1-U01-W02", + "type": "word", + "en": "twelve", + "zh": "十二", + "sceneWord": false, + "match": [ + [ + "twelve" + ] + ], + "example": { + "en": "My room number is twelve.", + "zh": "我的房间号是十二。" + }, + "review": { + "prompt": "用英语说数字 12。" + } + }, + { + "id": "A1-U01-P08", + "type": "pattern", + "en": "thirteen, fourteen, fifteen, sixteen, seventeen, eighteen, nineteen", + "zh": "十三到十九(-teen 重音在后)", + "sceneWord": false, + "match": [ + [ + "thirteen", + "fourteen", + "fifteen", + "sixteen", + "seventeen", + "eighteen", + "nineteen" + ] + ], + "example": { + "en": "The bus number is seventeen.", + "zh": "公交车是十七路。" + }, + "review": { + "prompt": "用英语说 13 到 19 之间的一个数字,比如 15。" + } + }, + { + "id": "A1-U01-P09", + "type": "pattern", + "en": "twenty, thirty, forty, fifty, sixty, seventy, eighty, ninety", + "zh": "二十到九十(-ty 重音在前),21 说成 twenty-one", + "sceneWord": false, + "match": [ + [ + "twenty", + "thirty", + "forty", + "fifty", + "sixty", + "seventy", + "eighty", + "ninety" + ] + ], + "example": { + "en": "Forty or fourteen?", + "zh": "四十还是十四?" + }, + "review": { + "prompt": "用英语说 40,再说 45。" + } + }, + { + "id": "A1-U01-W03", + "type": "word", + "en": "one hundred", + "zh": "一百", + "sceneWord": true, + "sceneReason": "hundred 在 CEFR-J 为 A2,但说到 100 是本单元的数字目标,下一单元的价格也要用", + "match": [ + [ + "hundred" + ] + ], + "example": { + "en": "Your key number is one hundred.", + "zh": "你的钥匙号是一百。" + }, + "review": { + "prompt": "用英语说数字 100。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U01-R01", + "en": "repeat", + "zh": "重复" + }, + { + "id": "A1-U01-R02", + "en": "pardon", + "zh": "(没听清)请再说一遍" + }, + { + "id": "A1-U01-R03", + "en": "question", + "zh": "问题" + }, + { + "id": "A1-U01-R04", + "en": "easy", + "zh": "容易的" + }, + { + "id": "A1-U01-R05", + "en": "difficult", + "zh": "难的" + }, + { + "id": "A1-U01-R06", + "en": "right", + "zh": "对的" + }, + { + "id": "A1-U01-R07", + "en": "wrong", + "zh": "错的" + }, + { + "id": "A1-U01-R08", + "en": "sure", + "zh": "当然;好的" + }, + { + "id": "A1-U01-R09", + "en": "letter", + "zh": "字母" + }, + { + "id": "A1-U01-R10", + "en": "first", + "zh": "第一个" + }, + { + "id": "A1-U01-R11", + "en": "email", + "zh": "电子邮件" + }, + { + "id": "A1-U01-R12", + "en": "address", + "zh": "地址" + }, + { + "id": "A1-U01-R13", + "en": "listen", + "zh": "听" + }, + { + "id": "A1-U01-R14", + "en": "look", + "zh": "看" + }, + { + "id": "A1-U01-R15", + "en": "problem", + "zh": "问题;麻烦" + }, + { + "id": "A1-U01-R16", + "en": "room", + "zh": "房间" + }, + { + "id": "A1-U01-R17", + "en": "welcome", + "zh": "欢迎;不客气" + }, + { + "id": "A1-U01-R18", + "en": "great", + "zh": "太好了" + }, + { + "id": "A1-U01-R19", + "en": "bus", + "zh": "公交车" + }, + { + "id": "A1-U01-R20", + "en": "hotel", + "zh": "酒店" + }, + { + "id": "A1-U01-R21", + "en": "here", + "zh": "这里" + }, + { + "id": "A1-U01-R22", + "en": "there", + "zh": "那里" + }, + { + "id": "A1-U01-R23", + "en": "now", + "zh": "现在" + }, + { + "id": "A1-U01-R24", + "en": "very", + "zh": "很" + }, + { + "id": "A1-U01-R25", + "en": "fine", + "zh": "很好;没问题" + }, + { + "id": "A1-U01-R26", + "en": "answer", + "zh": "答案;回答" + } + ], + "segments": [ + { + "id": "A1-U01-S1", + "title": "没听懂时怎么说", + "minutes": 12, + "itemIds": [ + "A1-U01-P01", + "A1-U01-P02", + "A1-U01-P03", + "A1-U01-P04" + ], + "listening": { + "text": "Excuse me. Can you help me? Sure. What's the problem? Sorry, I don't understand. Can you speak slowly, please?", + "question": "说话的人没听懂时,请对方做什么?", + "options": [ + "说慢一点", + "写下来", + "再帮一次忙" + ] + }, + "speaking": [ + { + "text": "Excuse me. Can you help me?", + "tip": "excuse 的 x 读 /ks/" + }, + { + "text": "Sorry, I don't understand." + }, + { + "text": "Can you speak slowly, please?" + }, + { + "text": "Pardon? Can you repeat that, please?", + "tip": "pardon 只需要听懂,会说更好" + } + ], + "reading": { + "text": "Anna: Excuse me. Can you help me?\nTom: Sure. What's the problem?\nAnna: I have a question. Where is the bus?\nTom: The bus is there.\nAnna: Sorry, I don't understand. Can you speak slowly, please?\nTom: Sure. The bus... is... there. Look!\nAnna: Great. Thank you very much.\nTom: You're welcome.", + "question": "Anna 没听懂时说了哪一句?", + "options": [ + "Can you speak slowly, please?", + "Can you help me?", + "Where is the bus?" + ] + }, + "writing": { + "prompt": "你没听懂对方的话,写两句话:说没听懂,再请对方说慢一点。", + "example": "Sorry, I don't understand. Can you speak slowly, please?", + "itemIds": [ + "A1-U01-P02", + "A1-U01-P03" + ] + }, + "independent": { + "prompt": "想象你在街上找不到路:不看提示,说出引起注意、请求帮忙、请对方说慢一点的三句话。", + "itemIds": [ + "A1-U01-P01", + "A1-U01-P04", + "A1-U01-P03" + ] + } + }, + { + "id": "A1-U01-S2", + "title": "问词义、拼写和写下来", + "minutes": 12, + "itemIds": [ + "A1-U01-P05", + "A1-U01-P06", + "A1-U01-P07" + ], + "listening": { + "text": "Excuse me. What does this word mean? This one? Address. Look, this is my email address. Sorry, can you write it down, please? Sure. Here you are.", + "question": "他们在说哪个词?", + "options": [ + "地址", + "电话", + "名字" + ] + }, + "speaking": [ + { + "text": "A B C D E F G, H I J K L M N O P, Q R S T U V, W X Y Z.", + "tip": "先念熟 26 个字母,才能拼读和听懂别人拼写" + }, + { + "text": "What does this word mean?" + }, + { + "text": "Can you write it down, please?" + }, + { + "text": "How do you say this in English?" + }, + { + "text": "K, E, Y. Key.", + "tip": "拼读时一个字母一个字母地说,停顿清楚" + } + ], + "reading": { + "text": "Mia: Excuse me. How do you say this in English?\nTom: It's a key.\nMia: How do you spell that?\nTom: K, E, Y. Three letters. The first letter is K.\nMia: Can you write it down, please?\nTom: Sure. Here you are. Now listen: key.\nMia: Key. Thanks!", + "question": "Tom 说第一个字母是什么?", + "options": [ + "K", + "E", + "Y" + ] + }, + "writing": { + "prompt": "你看到一个不认识的词,写一句话问它的意思。", + "example": "Excuse me. What does this word mean?", + "itemIds": [ + "A1-U01-P05" + ] + }, + "independent": { + "prompt": "指着身边的一样东西,用英语问它怎么说,再请对方把词写下来。", + "itemIds": [ + "A1-U01-P07", + "A1-U01-P06" + ] + } + }, + { + "id": "A1-U01-S3", + "title": "11 到 100", + "minutes": 13, + "itemIds": [ + "A1-U01-W01", + "A1-U01-W02", + "A1-U01-P08", + "A1-U01-P09", + "A1-U01-W03" + ], + "listening": { + "text": "Hello. My room number is fifteen. Fifty? No, fifteen. One, five.", + "question": "房间号是多少?", + "options": [ + "15", + "50", + "51" + ] + }, + "speaking": [ + { + "text": "eleven, twelve" + }, + { + "text": "thirteen, fourteen, fifteen, sixteen, seventeen, eighteen, nineteen", + "tip": "-teen 重音在后:thir-TEEN" + }, + { + "text": "twenty, thirty, forty, fifty, sixty, seventy, eighty, ninety", + "tip": "-ty 重音在前:THIR-ty" + }, + { + "text": "twenty-one, thirty-five, one hundred" + } + ], + "reading": { + "text": "Tom: What's your room number?\nMia: Thirty.\nTom: Thirteen?\nMia: No, that's wrong. Thirty. Three, zero.\nTom: Right, thirty. And the bus number?\nMia: Eleven.", + "question": "Mia 的房间号是多少?", + "options": [ + "thirty", + "thirteen", + "three" + ] + }, + "writing": { + "prompt": "用英文单词写出 40、14 和 100。", + "example": "forty, fourteen, one hundred", + "itemIds": [ + "A1-U01-P09", + "A1-U01-P08", + "A1-U01-W03" + ] + }, + "independent": { + "prompt": "不看提示,用英语从 11 数到 20,再说出 30、50、99 和 100。", + "itemIds": [ + "A1-U01-W01", + "A1-U01-W02", + "A1-U01-P08", + "A1-U01-P09", + "A1-U01-W03" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U01-C1", + "kind": "main", + "title": "在街上问公交车", + "learnerRole": "游客", + "aiRole": "路人", + "setting": "你在街边,想知道去酒店坐几路公交车。", + "turns": [ + { + "ai": "Hello.", + "goal": "引起对方注意,请对方帮忙", + "model": "Excuse me. Can you help me?", + "zh": "打扰一下,你能帮我吗?", + "itemIds": [ + "A1-U01-P01", + "A1-U01-P04" + ] + }, + { + "ai": "Sure. What's your question?", + "goal": "问去酒店坐哪路公交车", + "model": "Which one is the hotel bus?", + "zh": "去酒店坐哪路车?", + "itemIds": [] + }, + { + "ai": "The hotel bus? It's the seventeen bus. It's there.", + "goal": "说你没听懂,请对方说慢一点", + "model": "Sorry, I don't understand. Can you speak slowly, please?", + "zh": "抱歉,我没听懂。你能说慢一点吗?", + "itemIds": [ + "A1-U01-P02", + "A1-U01-P03" + ] + }, + { + "ai": "Bus... seventeen.", + "goal": "请对方把号码写下来", + "model": "Can you write it down, please?", + "zh": "你能写下来吗?", + "itemIds": [ + "A1-U01-P06" + ] + }, + { + "ai": "Sure. Here you are. One, seven.", + "goal": "确认号码并道谢", + "model": "Seventeen. Thank you very much!", + "zh": "十七路。非常感谢!", + "itemIds": [ + "A1-U01-P08" + ] + } + ] + }, + { + "id": "A1-U01-C2", + "kind": "variant", + "title": "向朋友问词义", + "learnerRole": "学英语的人", + "aiRole": "朋友 Tom", + "setting": "朋友发来的消息里有个词你不认识。", + "turns": [ + { + "ai": "Hi! How are you?", + "goal": "回答,再问 easy 是什么意思", + "model": "I'm fine, thanks. What does easy mean?", + "zh": "我很好,谢谢。easy 是什么意思?", + "itemIds": [ + "A1-U01-P05" + ] + }, + { + "ai": "Easy means it is not difficult.", + "goal": "请对方说慢一点", + "model": "Sorry, can you speak slowly, please?", + "zh": "抱歉,你能说慢一点吗?", + "itemIds": [ + "A1-U01-P03" + ] + }, + { + "ai": "Easy... is not... difficult. Now, a question for me?", + "goal": "指着一样东西,问它用英语怎么说", + "model": "Okay, thanks. How do you say this in English?", + "zh": "好的,谢谢。这个用英语怎么说?", + "itemIds": [ + "A1-U01-P07" + ] + }, + { + "ai": "Good question! The answer is a pen.", + "goal": "请对方把词写下来", + "model": "Can you write it down, please?", + "zh": "你能写下来吗?", + "itemIds": [ + "A1-U01-P06" + ] + } + ] + }, + { + "id": "A1-U01-C3", + "kind": "variant", + "title": "在酒店前台听号码", + "learnerRole": "住客", + "aiRole": "前台", + "setting": "你刚到酒店,前台很快地说了房间号。", + "turns": [ + { + "ai": "Hello. Welcome to the hotel. Your room number is twelve.", + "goal": "没听清,请对方说慢一点", + "model": "Sorry, I don't understand. Can you speak slowly, please?", + "zh": "抱歉,我没听懂。你能说慢一点吗?", + "itemIds": [ + "A1-U01-P02", + "A1-U01-P03" + ] + }, + { + "ai": "Room... twelve. One, two.", + "goal": "确认是 11 还是 12", + "model": "Eleven or twelve?", + "zh": "十一还是十二?", + "itemIds": [ + "A1-U01-W01", + "A1-U01-W02" + ] + }, + { + "ai": "Twelve. And your key number is one hundred.", + "goal": "重复钥匙号确认", + "model": "One hundred? Okay.", + "zh": "一百?好的。", + "itemIds": [ + "A1-U01-W03" + ] + }, + { + "ai": "Yes. And the bus is at four o'clock. Bus number fourteen.", + "goal": "确认是 14 还是 40", + "model": "Fourteen or forty?", + "zh": "十四还是四十?", + "itemIds": [ + "A1-U01-P08", + "A1-U01-P09" + ] + }, + { + "ai": "Fourteen. One, four.", + "goal": "确认并道谢", + "model": "Fourteen. Thank you very much!", + "zh": "十四。非常感谢!", + "itemIds": [ + "A1-U01-P08" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U01-T1", + "sceneId": "A1-U01-C1", + "goal": "向路人求助:没听懂时请对方说慢一点并写下来,最后确认公交车号码", + "itemIds": [ + "A1-U01-P01", + "A1-U01-P04", + "A1-U01-P02", + "A1-U01-P03", + "A1-U01-P06", + "A1-U01-P08" + ], + "slots": [ + "公交车号码" + ] + }, + { + "id": "A1-U01-T2", + "sceneId": "A1-U01-C2", + "goal": "问一个词的意思,再问一样东西用英语怎么说", + "itemIds": [ + "A1-U01-P05", + "A1-U01-P03", + "A1-U01-P07", + "A1-U01-P06" + ], + "slots": [ + "不认识的词", + "要问的东西" + ] + }, + { + "id": "A1-U01-T3", + "sceneId": "A1-U01-C3", + "goal": "听前台说号码,逐个确认容易混淆的数字", + "itemIds": [ + "A1-U01-P02", + "A1-U01-P03", + "A1-U01-W01", + "A1-U01-W02", + "A1-U01-W03", + "A1-U01-P08", + "A1-U01-P09" + ], + "slots": [ + "房间号", + "钥匙号", + "公交车号码" + ] + } + ], + "materials": [ + { + "id": "A1-U01-M1", + "mode": "listening", + "title": "问路人:坐几路车、住几号房", + "text": "Hello! Welcome to the hotel. Do you have a question? Sure, I can help you. Listen, please, and look here. The bus to the hotel is number seventeen. One, seven. Sorry, can you repeat that? Yes, seventeen. Is that right? Great. Your room is number thirty. Three, zero. Now, is everything fine? The airport bus is number forty. It comes every twenty minutes. Please wait here at the bus stop. Have a good day!", + "glosses": { + "stop": "(公交)站", + "minutes": "分钟", + "airport": "机场", + "wait": "等", + "comes": "来" + }, + "questions": [ + { + "type": "gist", + "question": "这段话主要在帮客人做什么?", + "options": [ + "告诉他公交车号和房间号", + "卖给他一张车票", + "教他怎么点咖啡" + ] + }, + { + "type": "detail", + "question": "去酒店坐几路公交车?", + "options": [ + "十七路", + "四十路", + "三十路" + ] + } + ] + }, + { + "id": "A1-U01-M2", + "mode": "reading", + "title": "读一段对话:问词义和拼写", + "text": "Anna: Excuse me, can you help me? This word is difficult. I don't understand it. What does it mean?\nTom: This one? It's 'address'. Look, this is my email address.\nAnna: Sorry, can you repeat it? And can you spell it? I'll write the letters down.\nTom: Sure. A, D, D, R, E, S, S. The first letter is A.\nAnna: Let me read it again. Is my answer right or wrong?\nTom: It's right. No problem!\nAnna: Great, thank you. My room is number fifteen.\nTom: Fifteen or fifty?\nAnna: Fifteen. One, five.\nTom: OK, that's fine. The bus stop is over there, near the door. It's very easy.\nAnna: Great, thank you very much!", + "glosses": { + "spell": "拼读", + "stop": "(公交)站", + "door": "门", + "let": "让;Let me… 让我……", + "read": "读" + }, + "questions": [ + { + "type": "detail", + "question": "Anna 觉得哪个词难、不明白?", + "options": [ + "address(地址)", + "hotel(酒店)", + "bus(公交车)" + ] + }, + { + "type": "inference", + "question": "Tom 为什么说 “Fifteen or fifty?”", + "options": [ + "这两个数字听起来很像", + "他没听清房间号,其实两个都不是", + "他想换一个房间" + ] + } + ] + } + ], + "excluded": [ + { + "en": "Could you…?", + "reason": "更礼貌的请求放到 A2,A1 先用 Can you…?" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U02.json b/kouyu_english/assets/courses/A1/A1-U02.json new file mode 100644 index 0000000..537299d --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U02.json @@ -0,0 +1,831 @@ +{ + "schemaVersion": 1, + "id": "A1-U02", + "revision": 1, + "level": "A1", + "title": "价格与付款", + "categories": [ + "日常", + "旅行" + ], + "canDo": "问价、说 100 以内的金额、选择现金或刷卡", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "246", + "use": "active" + }, + { + "id": "10", + "use": "active" + }, + { + "id": "123-2", + "use": "active" + }, + { + "id": "146-2", + "use": "active" + }, + { + "id": "141", + "use": "active", + "reason": "I'll take it. 只作为购物固定句块使用,不讲将来时" + }, + { + "id": "8", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "A1-U02-P01", + "type": "pattern", + "en": "How much is it?", + "zh": "这个多少钱?", + "sceneWord": false, + "match": [ + [ + "how much" + ] + ], + "example": { + "en": "Excuse me. How much is this hat?", + "zh": "打扰一下,这顶帽子多少钱?" + }, + "review": { + "prompt": "你在小店看中一样东西,问它的价格。" + } + }, + { + "id": "A1-U02-P02", + "type": "pattern", + "en": "It's twenty dollars.", + "zh": "二十美元。", + "sceneWord": false, + "match": [ + [ + "dollar", + "dollars" + ] + ], + "example": { + "en": "Seven dollars? Here you are.", + "zh": "七美元?给你。" + }, + "review": { + "prompt": "用英语说出价格:35 美元。" + } + }, + { + "id": "A1-U02-W01", + "type": "word", + "en": "expensive", + "zh": "贵的", + "sceneWord": false, + "match": [ + [ + "expensive" + ] + ], + "example": { + "en": "Forty dollars? That's expensive.", + "zh": "四十美元?太贵了。" + }, + "review": { + "prompt": "店员说的价格太高了,告诉对方很贵。" + } + }, + { + "id": "A1-U02-W02", + "type": "word", + "en": "cheap", + "zh": "便宜的", + "sceneWord": true, + "sceneReason": "cheap 在 CEFR-J 为 A2,但和 expensive 成对出现,购物时马上要用", + "match": [ + [ + "cheap" + ] + ], + "example": { + "en": "Is there a cheap one?", + "zh": "有便宜一点的吗?" + }, + "review": { + "prompt": "问店员有没有便宜的。" + } + }, + { + "id": "A1-U02-P03", + "type": "phrase", + "en": "I'll take it.", + "zh": "我买了。", + "sceneWord": false, + "match": [ + [ + "take it", + "take this", + "take that", + "take the" + ] + ], + "example": { + "en": "Great. I'll take it.", + "zh": "太好了,我买了。" + }, + "review": { + "prompt": "价格合适,告诉店员你买下它。" + } + }, + { + "id": "A1-U02-P04", + "type": "pattern", + "en": "Can I pay by card?", + "zh": "我可以刷卡吗?", + "sceneWord": false, + "match": [ + [ + "pay by card", + "pay with a card", + "pay with card" + ] + ], + "example": { + "en": "I'll take it. Can I pay by card?", + "zh": "我买了。可以刷卡吗?" + }, + "review": { + "prompt": "你想刷卡付款,先问一下店员。" + } + }, + { + "id": "A1-U02-W03", + "type": "word", + "en": "cash", + "zh": "现金", + "sceneWord": true, + "sceneReason": "cash 在 CEFR-J 为 A2,但“现金还是刷卡”是旅行付款必答的问题", + "match": [ + [ + "cash" + ] + ], + "example": { + "en": "Oh, wait. I have cash.", + "zh": "哦,等等,我有现金。" + }, + "review": { + "prompt": "店员问你怎么付款,说用现金。" + } + }, + { + "id": "A1-U02-P05", + "type": "phrase", + "en": "Here you are.", + "zh": "给你。", + "sceneWord": false, + "match": [ + [ + "here you are" + ] + ], + "example": { + "en": "Five dollars. Here you are.", + "zh": "五美元,给你。" + }, + "review": { + "prompt": "把钱递给店员时说一句话。" + } + }, + { + "id": "A1-U02-W04", + "type": "word", + "en": "change", + "zh": "找零;零钱", + "sceneWord": false, + "match": [ + [ + "change" + ] + ], + "example": { + "en": "Thank you. Here's your change.", + "zh": "谢谢,这是找您的零钱。" + }, + "review": { + "prompt": "店员还没找钱,提醒对方找零。" + } + }, + { + "id": "A1-U02-P06", + "type": "pattern", + "en": "Can I have a receipt, please?", + "zh": "可以给我一张收据吗?", + "sceneWord": true, + "sceneReason": "receipt 在 CEFR-J 为 A2,但旅行报销和核对金额都要用", + "match": [ + [ + "receipt" + ] + ], + "example": { + "en": "No, thanks. Can I have a receipt, please?", + "zh": "不用了,谢谢。可以给我收据吗?" + }, + "review": { + "prompt": "付完钱,向店员要一张收据。" + } + }, + { + "id": "A1-U02-P07", + "type": "pattern", + "en": "Is there an ATM near here?", + "zh": "这附近有取款机吗?", + "sceneWord": false, + "match": [ + [ + "atm", + "cash machine" + ] + ], + "example": { + "en": "I only have cards. Is there an ATM near here?", + "zh": "我只有卡。这附近有取款机吗?" + }, + "review": { + "prompt": "你需要取现金,问附近有没有取款机。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U02-R01", + "en": "price", + "zh": "价格" + }, + { + "id": "A1-U02-R02", + "en": "buy", + "zh": "买" + }, + { + "id": "A1-U02-R03", + "en": "want", + "zh": "想要" + }, + { + "id": "A1-U02-R04", + "en": "money", + "zh": "钱" + }, + { + "id": "A1-U02-R05", + "en": "cent", + "zh": "美分" + }, + { + "id": "A1-U02-R06", + "en": "coin", + "zh": "硬币" + }, + { + "id": "A1-U02-R07", + "en": "only", + "zh": "只;仅仅" + }, + { + "id": "A1-U02-R08", + "en": "just", + "zh": "只是;仅" + }, + { + "id": "A1-U02-R09", + "en": "sale", + "zh": "打折;出售" + }, + { + "id": "A1-U02-R10", + "en": "free", + "zh": "免费的" + }, + { + "id": "A1-U02-R11", + "en": "shop", + "zh": "商店" + }, + { + "id": "A1-U02-R12", + "en": "ticket", + "zh": "票" + }, + { + "id": "A1-U02-R13", + "en": "map", + "zh": "地图" + }, + { + "id": "A1-U02-R14", + "en": "gift", + "zh": "礼物" + }, + { + "id": "A1-U02-R15", + "en": "hat", + "zh": "帽子" + }, + { + "id": "A1-U02-R16", + "en": "umbrella", + "zh": "伞" + }, + { + "id": "A1-U02-R17", + "en": "bottle", + "zh": "瓶子" + }, + { + "id": "A1-U02-R18", + "en": "machine", + "zh": "机器" + }, + { + "id": "A1-U02-R19", + "en": "else", + "zh": "别的" + }, + { + "id": "A1-U02-R20", + "en": "also", + "zh": "也" + }, + { + "id": "A1-U02-R21", + "en": "wait", + "zh": "等" + }, + { + "id": "A1-U02-R22", + "en": "then", + "zh": "那么;然后" + } + ], + "segments": [ + { + "id": "A1-U02-S1", + "title": "问价格", + "minutes": 12, + "itemIds": [ + "A1-U02-P01", + "A1-U02-P02", + "A1-U02-W01", + "A1-U02-W02" + ], + "listening": { + "text": "Excuse me. How much is this hat? It's forty dollars. Forty? That's expensive. This one is cheap. It's only fifteen dollars.", + "question": "便宜的那顶帽子多少钱?", + "options": [ + "15 美元", + "40 美元", + "50 美元" + ] + }, + "speaking": [ + { + "text": "How much is it?" + }, + { + "text": "It's twenty dollars.", + "tip": "dollars 结尾的 s 读 /z/" + }, + { + "text": "That's expensive." + }, + { + "text": "Is there a cheap one?" + } + ], + "reading": { + "text": "Mia: Excuse me. How much is this umbrella?\nTom: It's twenty-five dollars.\nMia: Twenty-five? That's expensive.\nTom: This one is cheap. It's only nine dollars.\nMia: Great. And how much is the map?\nTom: The map is free.", + "question": "地图多少钱?", + "options": [ + "free", + "nine dollars", + "twenty-five dollars" + ] + }, + "writing": { + "prompt": "写一句话问价,再写一句说太贵了。", + "example": "How much is it? That's expensive.", + "itemIds": [ + "A1-U02-P01", + "A1-U02-W01" + ] + }, + "independent": { + "prompt": "看看身边的一样东西:用英语问它多少钱,再用 dollars 说一个价格。", + "itemIds": [ + "A1-U02-P01", + "A1-U02-P02" + ] + } + }, + { + "id": "A1-U02-S2", + "title": "买下和付款", + "minutes": 13, + "itemIds": [ + "A1-U02-P03", + "A1-U02-P04", + "A1-U02-W03", + "A1-U02-P05", + "A1-U02-W04", + "A1-U02-P06" + ], + "listening": { + "text": "I'll take it. Cash or card? Can I pay by card? Sorry, cash only. Okay. Here you are. Thanks. Here's your change.", + "question": "这家店收什么?", + "options": [ + "只收现金", + "只收卡", + "现金和卡都收" + ] + }, + "speaking": [ + { + "text": "I'll take it.", + "tip": "I'll 连读成一个音节" + }, + { + "text": "Can I pay by card?" + }, + { + "text": "Cash, please." + }, + { + "text": "Here you are." + }, + { + "text": "Can I have a receipt, please?" + } + ], + "reading": { + "text": "Anna: I want to buy this bottle of water. How much is it?\nTom: Two dollars.\nAnna: I'll take it. Can I pay by card?\nTom: Sorry, cash only.\nAnna: Okay. Here you are. Five dollars.\nTom: Thank you. Here's your change. Three dollars.\nAnna: Can I have a receipt, please?\nTom: Sure.", + "question": "Anna 给了多少钱?", + "options": [ + "five dollars", + "two dollars", + "three dollars" + ] + }, + "writing": { + "prompt": "店员问你 Cash or card?,写下你的回答:先问能不能刷卡,不行就付现金并把钱递过去。", + "example": "Can I pay by card? Okay, cash. Here you are.", + "itemIds": [ + "A1-U02-P04", + "A1-U02-W03", + "A1-U02-P05" + ] + }, + "independent": { + "prompt": "不看提示,说出买下东西、问能不能刷卡、要收据的三句话。", + "itemIds": [ + "A1-U02-P03", + "A1-U02-P04", + "A1-U02-P06" + ] + } + }, + { + "id": "A1-U02-S3", + "title": "找取款机、看价格牌", + "minutes": 10, + "itemIds": [ + "A1-U02-P07" + ], + "listening": { + "text": "Excuse me. I need money. Is there an ATM near here? Yes. It's there, near the shop.", + "question": "取款机在哪里?", + "options": [ + "商店旁边", + "酒店里面", + "公交车上" + ] + }, + "speaking": [ + { + "text": "Is there an ATM near here?", + "tip": "ATM 三个字母分开读" + }, + { + "text": "I only have cards." + }, + { + "text": "Is there a cheap shop near here?" + } + ], + "reading": { + "text": "SALE! Good prices!\nHats: only ten dollars.\nUmbrellas: eighteen dollars.\nMaps: free.\nCoffee: ninety cents.\nWe take cash. We also take cards.\nThe ATM is near the shop.", + "question": "伞多少钱?", + "options": [ + "eighteen dollars", + "ten dollars", + "eighty dollars" + ] + }, + "writing": { + "prompt": "写一句话问附近有没有取款机。", + "example": "Excuse me. Is there an ATM near here?", + "itemIds": [ + "A1-U02-P07" + ] + }, + "independent": { + "prompt": "想象你身上只有卡、没有现金:说明情况,再问附近有没有取款机。", + "itemIds": [ + "A1-U02-P07" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U02-C1", + "kind": "main", + "title": "在纪念品店买帽子", + "learnerRole": "游客", + "aiRole": "店员", + "setting": "你在一家纪念品店,想买一顶帽子。", + "turns": [ + { + "ai": "Hello! Can I help you?", + "goal": "问这顶帽子多少钱", + "model": "Yes. How much is this hat?", + "zh": "是的。这顶帽子多少钱?", + "itemIds": [ + "A1-U02-P01" + ] + }, + { + "ai": "It's forty dollars.", + "goal": "说太贵了,问有没有便宜的", + "model": "That's expensive. Is there a cheap one?", + "zh": "太贵了。有便宜的吗?", + "itemIds": [ + "A1-U02-W01", + "A1-U02-W02" + ] + }, + { + "ai": "Yes, another hat. This one is just twelve dollars. It's a good gift.", + "goal": "说你买下", + "model": "Great. I'll take it.", + "zh": "太好了,我买了。", + "itemIds": [ + "A1-U02-P03" + ] + }, + { + "ai": "Cash or card?", + "goal": "问能不能刷卡", + "model": "Can I pay by card?", + "zh": "可以刷卡吗?", + "itemIds": [ + "A1-U02-P04" + ] + }, + { + "ai": "Sure. Do you want anything else?", + "goal": "说不要别的了,再要一张收据", + "model": "No, thanks. Can I have a receipt, please?", + "zh": "不用了,谢谢。可以给我收据吗?", + "itemIds": [ + "A1-U02-P06" + ] + } + ] + }, + { + "id": "A1-U02-C2", + "kind": "variant", + "title": "只收现金的小摊", + "learnerRole": "顾客", + "aiRole": "小摊摊主", + "setting": "你在路边小摊买水,摊主只收现金。", + "turns": [ + { + "ai": "Hi! Do you want water? It's two dollars.", + "goal": "说要一瓶,问能不能刷卡", + "model": "Yes, please. Can I pay by card?", + "zh": "要,谢谢。可以刷卡吗?", + "itemIds": [ + "A1-U02-P04" + ] + }, + { + "ai": "Sorry, cash only.", + "goal": "说你只有卡,问附近有没有取款机", + "model": "I only have cards. Is there an ATM near here?", + "zh": "我只有卡。这附近有取款机吗?", + "itemIds": [ + "A1-U02-P07" + ] + }, + { + "ai": "Yes, there. Near the ticket machine.", + "goal": "发现自己有现金,把钱递给摊主", + "model": "Oh, wait. I have cash. Here you are.", + "zh": "哦,等等,我有现金。给你。", + "itemIds": [ + "A1-U02-W03", + "A1-U02-P05" + ] + }, + { + "ai": "Thanks. Ten dollars? Here's your change. Eight dollars in coins.", + "goal": "确认找零并道谢", + "model": "Eight dollars change. Thank you!", + "zh": "找我八美元。谢谢!", + "itemIds": [ + "A1-U02-W04" + ] + } + ] + }, + { + "id": "A1-U02-C3", + "kind": "variant", + "title": "在售票处买车票", + "learnerRole": "乘客", + "aiRole": "售票员", + "setting": "你在公交车站的售票处,想买两张车票。", + "turns": [ + { + "ai": "Hello. Can I help you?", + "goal": "问一张公交车票多少钱", + "model": "Hi. How much is a bus ticket?", + "zh": "你好。一张公交车票多少钱?", + "itemIds": [ + "A1-U02-P01" + ] + }, + { + "ai": "A bus ticket is three dollars fifty.", + "goal": "说要两张,问能不能刷卡", + "model": "Two tickets, please. Can I pay by card?", + "zh": "两张,谢谢。可以刷卡吗?", + "itemIds": [ + "A1-U02-P04" + ] + }, + { + "ai": "Sure. Two tickets, then. That's seven dollars.", + "goal": "确认金额,把卡递过去", + "model": "Seven dollars? Here you are.", + "zh": "七美元?给你。", + "itemIds": [ + "A1-U02-P02", + "A1-U02-P05" + ] + }, + { + "ai": "Thank you. Do you want a map? It's free.", + "goal": "说要地图,再要一张收据", + "model": "Yes, please. Can I have a receipt, please?", + "zh": "要,谢谢。可以给我收据吗?", + "itemIds": [ + "A1-U02-P06" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U02-T1", + "sceneId": "A1-U02-C1", + "goal": "问价、嫌贵换便宜的、买下并刷卡,最后要收据", + "itemIds": [ + "A1-U02-P01", + "A1-U02-W01", + "A1-U02-W02", + "A1-U02-P03", + "A1-U02-P04", + "A1-U02-P06" + ], + "slots": [ + "商品", + "价格" + ] + }, + { + "id": "A1-U02-T2", + "sceneId": "A1-U02-C2", + "goal": "对方只收现金时问取款机,最后付现金并确认找零", + "itemIds": [ + "A1-U02-P04", + "A1-U02-P07", + "A1-U02-W03", + "A1-U02-P05", + "A1-U02-W04" + ], + "slots": [ + "付款方式", + "找零金额" + ] + }, + { + "id": "A1-U02-T3", + "sceneId": "A1-U02-C3", + "goal": "买两张车票:问价、确认总价、付款并要收据", + "itemIds": [ + "A1-U02-P01", + "A1-U02-P04", + "A1-U02-P02", + "A1-U02-P05", + "A1-U02-P06" + ], + "slots": [ + "票数", + "总价" + ] + } + ], + "materials": [ + { + "id": "A1-U02-M1", + "mode": "listening", + "title": "商店广播:打折和付款", + "text": "Welcome to our shop! Everything is on sale today. This hat is only ten dollars — very cheap! This umbrella is just fifteen dollars, a good price. Do you want a map? It's free today! We also have bottles of water. You can pay with cash, coins or a card. The card machine is here. Buy two, and wait for a free gift. Is there an ATM? Yes, near here. Have a nice day!", + "glosses": {}, + "questions": [ + { + "type": "gist", + "question": "这段广播主要说什么?", + "options": [ + "店里在打折、卖东西", + "商店今天关门", + "这里没有地图" + ] + }, + { + "type": "detail", + "question": "那顶帽子多少钱?", + "options": [ + "十美元", + "十五美元", + "免费的" + ] + } + ] + }, + { + "id": "A1-U02-M2", + "mode": "reading", + "title": "读一段对话:买包付款", + "text": "Mia: How much is this bag? I want to buy a gift.\nShop: The price is twenty dollars.\nMia: That's expensive. This one?\nShop: That one is cheap, only eight dollars.\nMia: OK, I'll take it. Can I pay by card?\nShop: No card today. Cash only, please.\nMia: I have only eight dollars and fifty cents.\nShop: Here is your change: a coin and a receipt.\nMia: Do you have bus tickets?\nShop: No, but the ticket machine is here. Do you want anything else?\nMia: No, that's all. Thank you!", + "glosses": {}, + "questions": [ + { + "type": "detail", + "question": "Mia 最后买了哪个包?", + "options": [ + "便宜的八美元的包", + "二十美元的包", + "她没有买" + ] + }, + { + "type": "detail", + "question": "她怎么付钱?", + "options": [ + "用现金", + "用银行卡", + "用手机" + ] + } + ] + } + ], + "excluded": [ + { + "en": "How much does it cost?", + "reason": "cost 为 A2,A1 先用 How much is it?" + }, + { + "en": "Do you take credit cards?", + "reason": "credit card 为 A2,A1 先用 Can I pay by card?" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U03.json b/kouyu_english/assets/courses/A1/A1-U03.json new file mode 100644 index 0000000..d8abc0a --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U03.json @@ -0,0 +1,907 @@ +{ + "schemaVersion": 1, + "id": "A1-U03", + "revision": 1, + "level": "A1", + "title": "在咖啡店点单", + "categories": [ + "日常" + ], + "canDo": "点饮料、说大小杯、礼貌确认", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "142", + "use": "active", + "reason": "I'd like… 作为点单的礼貌固定句块使用,不展开 would 的其他用法" + }, + { + "id": "239", + "use": "receptive" + }, + { + "id": "150", + "use": "active" + }, + { + "id": "21", + "use": "active" + }, + { + "id": "16", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A1-U03-P01", + "type": "pattern", + "en": "I'd like a coffee, please.", + "zh": "我想要一杯咖啡。", + "sceneWord": false, + "match": [ + [ + "would like" + ] + ], + "example": { + "en": "I'd like a small orange juice, please.", + "zh": "我想要一小杯橙汁。" + }, + "review": { + "prompt": "店员问你想喝什么,礼貌地点一杯咖啡。" + } + }, + { + "id": "A1-U03-P02", + "type": "pattern", + "en": "Can I see the menu, please?", + "zh": "可以看一下菜单吗?", + "sceneWord": true, + "sceneReason": "menu 在 CEFR-J 为 A2,但点单前看菜单是咖啡店和餐厅的第一步", + "match": [ + [ + "menu" + ] + ], + "example": { + "en": "Sorry, can I see the menu, please?", + "zh": "抱歉,可以看一下菜单吗?" + }, + "review": { + "prompt": "你还没想好点什么,请店员给你看菜单。" + } + }, + { + "id": "A1-U03-W01", + "type": "word", + "en": "small", + "zh": "小的;小杯", + "sceneWord": false, + "match": [ + [ + "small" + ] + ], + "example": { + "en": "A small tea, please.", + "zh": "一小杯茶,谢谢。" + }, + "review": { + "prompt": "店员问你要多大的,说要小杯。" + } + }, + { + "id": "A1-U03-W02", + "type": "word", + "en": "large", + "zh": "大的;大杯", + "sceneWord": false, + "match": [ + [ + "large" + ] + ], + "example": { + "en": "Large, please.", + "zh": "大杯,谢谢。" + }, + "review": { + "prompt": "店员问你要多大的,说要大杯。" + } + }, + { + "id": "A1-U03-W03", + "type": "word", + "en": "cup", + "zh": "杯子;一杯", + "sceneWord": false, + "match": [ + [ + "cup" + ] + ], + "example": { + "en": "A cup of tea for my friend.", + "zh": "给我朋友一杯茶。" + }, + "review": { + "prompt": "说“一杯茶”。" + } + }, + { + "id": "A1-U03-W04", + "type": "word", + "en": "hot", + "zh": "热的", + "sceneWord": false, + "match": [ + [ + "hot" + ] + ], + "example": { + "en": "A hot coffee, please.", + "zh": "一杯热咖啡,谢谢。" + }, + "review": { + "prompt": "你想要热饮,告诉店员。" + } + }, + { + "id": "A1-U03-W05", + "type": "word", + "en": "cold", + "zh": "冷的;冰的", + "sceneWord": false, + "match": [ + [ + "cold" + ] + ], + "example": { + "en": "Cold, please.", + "zh": "要冰的,谢谢。" + }, + "review": { + "prompt": "天很热,你想要冰饮,告诉店员。" + } + }, + { + "id": "A1-U03-P03", + "type": "phrase", + "en": "with milk", + "zh": "加奶", + "sceneWord": false, + "match": [ + [ + "with milk" + ] + ], + "example": { + "en": "Yes, with milk, please.", + "zh": "要,加奶,谢谢。" + }, + "review": { + "prompt": "你的咖啡要加奶,告诉店员。" + } + }, + { + "id": "A1-U03-P04", + "type": "phrase", + "en": "No sugar, please.", + "zh": "不要加糖。", + "sceneWord": false, + "match": [ + [ + "no sugar" + ] + ], + "example": { + "en": "With milk. No sugar, please.", + "zh": "加奶,不要糖。" + }, + "review": { + "prompt": "你不想加糖,告诉店员。" + } + }, + { + "id": "A1-U03-W06", + "type": "word", + "en": "juice", + "zh": "果汁", + "sceneWord": false, + "match": [ + [ + "juice" + ] + ], + "example": { + "en": "An apple juice for my sister.", + "zh": "给我妹妹一杯苹果汁。" + }, + "review": { + "prompt": "你不想喝咖啡,点一杯橙汁。" + } + }, + { + "id": "A1-U03-W07", + "type": "word", + "en": "sandwich", + "zh": "三明治", + "sceneWord": false, + "match": [ + [ + "sandwich" + ] + ], + "example": { + "en": "And a sandwich, please.", + "zh": "再要一个三明治。" + }, + "review": { + "prompt": "饮料点好了,再加一个三明治。" + } + }, + { + "id": "A1-U03-P05", + "type": "pattern", + "en": "To go, please.", + "zh": "带走,谢谢。(在店里吃说 For here.)", + "sceneWord": false, + "match": [ + [ + "to go", + "for here" + ] + ], + "example": { + "en": "For here or to go? To go, please.", + "zh": "在这儿吃还是带走?带走,谢谢。" + }, + "review": { + "prompt": "店员问你在店里喝还是带走,说带走。" + } + }, + { + "id": "A1-U03-P06", + "type": "phrase", + "en": "That's all, thanks.", + "zh": "就这些,谢谢。", + "sceneWord": false, + "match": [ + [ + "that is all", + "that is it" + ] + ], + "example": { + "en": "No, that's all, thanks.", + "zh": "不用了,就这些,谢谢。" + }, + "review": { + "prompt": "店员问你还要别的吗,说就这些。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U03-R01", + "en": "drink", + "zh": "饮料;喝" + }, + { + "id": "A1-U03-R02", + "en": "eat", + "zh": "吃" + }, + { + "id": "A1-U03-R03", + "en": "food", + "zh": "食物" + }, + { + "id": "A1-U03-R04", + "en": "cake", + "zh": "蛋糕" + }, + { + "id": "A1-U03-R05", + "en": "chocolate", + "zh": "巧克力" + }, + { + "id": "A1-U03-R06", + "en": "bread", + "zh": "面包" + }, + { + "id": "A1-U03-R07", + "en": "breakfast", + "zh": "早餐" + }, + { + "id": "A1-U03-R08", + "en": "cookie", + "zh": "饼干" + }, + { + "id": "A1-U03-R09", + "en": "apple", + "zh": "苹果" + }, + { + "id": "A1-U03-R10", + "en": "orange", + "zh": "橙子;橙色的" + }, + { + "id": "A1-U03-R11", + "en": "cheese", + "zh": "奶酪" + }, + { + "id": "A1-U03-R12", + "en": "chicken", + "zh": "鸡肉" + }, + { + "id": "A1-U03-R13", + "en": "table", + "zh": "桌子" + }, + { + "id": "A1-U03-R14", + "en": "ready", + "zh": "准备好的" + }, + { + "id": "A1-U03-R15", + "en": "order", + "zh": "点单" + }, + { + "id": "A1-U03-R16", + "en": "next", + "zh": "下一个" + }, + { + "id": "A1-U03-R17", + "en": "minute", + "zh": "分钟" + }, + { + "id": "A1-U03-R18", + "en": "sweet", + "zh": "甜的" + }, + { + "id": "A1-U03-R19", + "en": "delicious", + "zh": "好吃的" + }, + { + "id": "A1-U03-R20", + "en": "enjoy", + "zh": "享用;喜欢" + }, + { + "id": "A1-U03-R21", + "en": "good morning", + "zh": "早上好" + }, + { + "id": "A1-U03-R22", + "en": "friend", + "zh": "朋友" + }, + { + "id": "A1-U03-R23", + "en": "cafe", + "zh": "咖啡店" + } + ], + "segments": [ + { + "id": "A1-U03-S1", + "title": "点一杯饮料", + "minutes": 12, + "itemIds": [ + "A1-U03-P02", + "A1-U03-P01", + "A1-U03-W03", + "A1-U03-W01", + "A1-U03-W02" + ], + "listening": { + "text": "Hi. Can I see the menu, please? Sure. Here you are. What would you like? I'd like a coffee, please. Small or large? Large, please.", + "question": "顾客要了多大杯的咖啡?", + "options": [ + "大杯", + "小杯", + "没说大小" + ] + }, + "speaking": [ + { + "text": "Can I see the menu, please?" + }, + { + "text": "I'd like a coffee, please.", + "tip": "I'd 读作 /aɪd/,很轻很短" + }, + { + "text": "A small cup of tea, please.", + "tip": "cup of 连读成 cuppa" + }, + { + "text": "Large, please." + } + ], + "reading": { + "text": "CAFE MENU\nCoffee: small three dollars, large four dollars\nTea: two dollars fifty\nHot chocolate: four dollars\nOrange juice: three dollars\nBread: two dollars\nCake: five dollars\nCookies: one dollar\nGood morning! Breakfast is ready!", + "question": "大杯咖啡多少钱?", + "options": [ + "four dollars", + "three dollars", + "five dollars" + ] + }, + "writing": { + "prompt": "写一句话,点一杯小杯咖啡。", + "example": "I'd like a small coffee, please.", + "itemIds": [ + "A1-U03-P01", + "A1-U03-W01" + ] + }, + "independent": { + "prompt": "看着菜单,不看提示点一杯你想喝的饮料,并说要大杯还是小杯。", + "itemIds": [ + "A1-U03-P01", + "A1-U03-W01", + "A1-U03-W02" + ] + } + }, + { + "id": "A1-U03-S2", + "title": "冷热、加奶和糖", + "minutes": 12, + "itemIds": [ + "A1-U03-W04", + "A1-U03-W05", + "A1-U03-P03", + "A1-U03-P04", + "A1-U03-W06" + ], + "listening": { + "text": "I'd like a tea, please. Hot or cold? Hot, please. With milk? Yes, with milk. No sugar, please.", + "question": "顾客的茶是怎么要的?", + "options": [ + "热的,加奶,不加糖", + "冰的,加奶,加糖", + "热的,不加奶,加糖" + ] + }, + "speaking": [ + { + "text": "Hot, please." + }, + { + "text": "With milk, please." + }, + { + "text": "No sugar, please." + }, + { + "text": "A cold orange juice, please." + } + ], + "reading": { + "text": "Anna: Hi. I'd like a coffee, please.\nTom: Hot or cold?\nAnna: Cold, please. With milk.\nTom: Sugar?\nAnna: No sugar, please. And an apple juice for my sister.\nTom: Okay. One cold coffee with milk and one apple juice.", + "question": "Anna 给妹妹点了什么?", + "options": [ + "apple juice", + "cold coffee", + "milk" + ] + }, + "writing": { + "prompt": "写下你想要的饮料:热的、加奶、不加糖。", + "example": "A hot coffee with milk, please. No sugar.", + "itemIds": [ + "A1-U03-W04", + "A1-U03-P03", + "A1-U03-P04" + ] + }, + "independent": { + "prompt": "说说你平时怎么喝咖啡或茶:要热的还是冰的,加不加奶和糖。", + "itemIds": [ + "A1-U03-W04", + "A1-U03-W05", + "A1-U03-P03", + "A1-U03-P04" + ] + } + }, + { + "id": "A1-U03-S3", + "title": "加点吃的、带走和结束点单", + "minutes": 12, + "itemIds": [ + "A1-U03-W07", + "A1-U03-P05", + "A1-U03-P06" + ], + "listening": { + "text": "Anything else? A sandwich, please. For here or to go? To go, please. Is that all? Yes, that's all, thanks.", + "question": "顾客是在店里吃还是带走?", + "options": [ + "带走", + "在店里吃", + "还没决定" + ] + }, + "speaking": [ + { + "text": "A chicken sandwich, please." + }, + { + "text": "To go, please." + }, + { + "text": "For here, please." + }, + { + "text": "That's all, thanks." + } + ], + "reading": { + "text": "Tom: Next, please! What would you like?\nMia: A cheese sandwich and a small tea, please.\nTom: For here or to go?\nMia: For here. Is there a free table?\nTom: Yes, there. Anything else? The cake is delicious.\nMia: No, that's all, thanks.\nTom: That's nine dollars. Your food is ready in five minutes.", + "question": "Mia 点了什么?", + "options": [ + "奶酪三明治和小杯茶", + "蛋糕和小杯茶", + "奶酪三明治和蛋糕" + ] + }, + "writing": { + "prompt": "写两句话:说要带走,再说不要别的了。", + "example": "To go, please. That's all, thanks.", + "itemIds": [ + "A1-U03-P05", + "A1-U03-P06" + ] + }, + "independent": { + "prompt": "你点了一杯饮料和一个三明治:说带走还是在店里吃,最后结束点单。", + "itemIds": [ + "A1-U03-W07", + "A1-U03-P05", + "A1-U03-P06" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U03-C1", + "kind": "main", + "title": "早上买咖啡", + "learnerRole": "顾客", + "aiRole": "咖啡店店员", + "setting": "早上你在咖啡店,想买一杯热咖啡和一个三明治带走。", + "turns": [ + { + "ai": "Good morning! What would you like?", + "goal": "点一杯咖啡", + "model": "I'd like a coffee, please.", + "zh": "我想要一杯咖啡。", + "itemIds": [ + "A1-U03-P01" + ] + }, + { + "ai": "Sure. Small or large?", + "goal": "要大杯、热的", + "model": "Large, please. Hot.", + "zh": "大杯,热的。", + "itemIds": [ + "A1-U03-W02", + "A1-U03-W04" + ] + }, + { + "ai": "Milk and sugar?", + "goal": "加奶,不加糖", + "model": "With milk, please. No sugar.", + "zh": "加奶,不要糖。", + "itemIds": [ + "A1-U03-P03", + "A1-U03-P04" + ] + }, + { + "ai": "Okay. Anything else? The chocolate cake is very sweet.", + "goal": "不要蛋糕,加一个三明治", + "model": "No, thanks. A sandwich, please.", + "zh": "不用了,谢谢。要一个三明治。", + "itemIds": [ + "A1-U03-W07" + ] + }, + { + "ai": "For here or to go?", + "goal": "说带走,并结束点单", + "model": "To go, please. That's all, thanks.", + "zh": "带走。就这些,谢谢。", + "itemIds": [ + "A1-U03-P05", + "A1-U03-P06" + ] + } + ] + }, + { + "id": "A1-U03-C2", + "kind": "variant", + "title": "先看菜单,替朋友点单", + "learnerRole": "顾客", + "aiRole": "咖啡店店员", + "setting": "你和朋友在咖啡店,你还没看菜单,店员已经来问了。", + "turns": [ + { + "ai": "Hi! Are you ready to order?", + "goal": "说抱歉,请店员给你看菜单", + "model": "Sorry, can I see the menu, please?", + "zh": "抱歉,可以看一下菜单吗?", + "itemIds": [ + "A1-U03-P02" + ] + }, + { + "ai": "Here you are. Drinks: tea, coffee and juice.", + "goal": "给自己点一小杯橙汁", + "model": "I'd like a small orange juice, please.", + "zh": "我要一小杯橙汁。", + "itemIds": [ + "A1-U03-P01", + "A1-U03-W01", + "A1-U03-W06" + ] + }, + { + "ai": "A cold orange juice. It's two dollars.", + "goal": "再给朋友点一杯茶", + "model": "Okay. And a cup of tea for my friend.", + "zh": "好的。再给我朋友一杯茶。", + "itemIds": [ + "A1-U03-W03" + ] + }, + { + "ai": "Hot tea. With milk?", + "goal": "说不加奶,也不加糖", + "model": "No milk. No sugar, please.", + "zh": "不加奶,也不要糖。", + "itemIds": [ + "A1-U03-P04" + ] + }, + { + "ai": "Okay. Anything else?", + "goal": "说就这些", + "model": "That's all, thanks.", + "zh": "就这些,谢谢。", + "itemIds": [ + "A1-U03-P06" + ] + } + ] + }, + { + "id": "A1-U03-C3", + "kind": "variant", + "title": "没有冰咖啡了", + "learnerRole": "顾客", + "aiRole": "早餐店店员", + "setting": "你想要冰咖啡,但店里今天没有。", + "turns": [ + { + "ai": "Hello! What would you like?", + "goal": "点一个三明治和一杯冰咖啡", + "model": "I'd like a sandwich and a cold coffee, please.", + "zh": "我要一个三明治和一杯冰咖啡。", + "itemIds": [ + "A1-U03-P01", + "A1-U03-W07", + "A1-U03-W05" + ] + }, + { + "ai": "Sorry, no cold coffee today. Hot coffee?", + "goal": "说热的也行,要小杯", + "model": "Okay, a small hot coffee, please.", + "zh": "好吧,一小杯热咖啡。", + "itemIds": [ + "A1-U03-W01", + "A1-U03-W04" + ] + }, + { + "ai": "With milk?", + "goal": "说要加奶", + "model": "Yes, with milk, please.", + "zh": "要,加奶。", + "itemIds": [ + "A1-U03-P03" + ] + }, + { + "ai": "For here or to go? You can eat at this table.", + "goal": "说在店里吃", + "model": "For here, please.", + "zh": "在这里吃。", + "itemIds": [ + "A1-U03-P05" + ] + }, + { + "ai": "That's six dollars. Enjoy your breakfast!", + "goal": "付钱并道谢", + "model": "Here you are. Thank you!", + "zh": "给你。谢谢!", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U03-T1", + "sceneId": "A1-U03-C1", + "goal": "点一杯大杯热咖啡,说清加奶不加糖,再加一个三明治带走", + "itemIds": [ + "A1-U03-P01", + "A1-U03-W02", + "A1-U03-W04", + "A1-U03-P03", + "A1-U03-P04", + "A1-U03-W07", + "A1-U03-P05", + "A1-U03-P06" + ], + "slots": [ + "饮料", + "大小", + "冷热", + "奶和糖", + "带走或堂食" + ] + }, + { + "id": "A1-U03-T2", + "sceneId": "A1-U03-C2", + "goal": "先要菜单,再给自己和朋友各点一杯饮料", + "itemIds": [ + "A1-U03-P02", + "A1-U03-P01", + "A1-U03-W01", + "A1-U03-W06", + "A1-U03-W03", + "A1-U03-P04", + "A1-U03-P06" + ], + "slots": [ + "自己的饮料", + "朋友的饮料" + ] + }, + { + "id": "A1-U03-T3", + "sceneId": "A1-U03-C3", + "goal": "想要的饮料没有时换一个,并说在店里吃", + "itemIds": [ + "A1-U03-P01", + "A1-U03-W07", + "A1-U03-W05", + "A1-U03-W01", + "A1-U03-W04", + "A1-U03-P03", + "A1-U03-P05" + ], + "slots": [ + "替代的饮料", + "堂食或带走" + ] + } + ], + "materials": [ + { + "id": "A1-U03-M1", + "mode": "listening", + "title": "咖啡店广播:介绍吃的喝的", + "text": "Good morning, and welcome to our cafe! Would you like a hot drink or a cold drink? Our coffee is very good. A small cup is three dollars, a large cup is four dollars. Do you want it with milk? We also have food: fresh bread, cake, chocolate cookies, cheese sandwiches and chicken. There is orange juice and sweet apple cake too. It's all delicious! Is it for here or to go? Sit at a table, please. Your order is ready in one minute. Enjoy your breakfast!", + "glosses": { + "fresh": "新鲜的", + "too": "也", + "sit": "坐" + }, + "questions": [ + { + "type": "gist", + "question": "这段话主要介绍什么?", + "options": [ + "咖啡店的饮料和吃的", + "怎么坐公交车", + "酒店的房间" + ] + }, + { + "type": "detail", + "question": "大杯咖啡多少钱?", + "options": [ + "四美元", + "三美元", + "五美元" + ] + } + ] + }, + { + "id": "A1-U03-M2", + "mode": "reading", + "title": "读一段对话:点咖啡和点心", + "text": "Ben: Good morning! Can I see the menu, please? I want some breakfast.\nStaff: Sure. Here you are.\nBen: I'd like a large coffee, hot, with milk. No sugar, please. And some bread.\nStaff: We have fresh bread, apple cake and chocolate cookies. They are all sweet.\nBen: One chocolate cake, please. Is the chicken sandwich good?\nStaff: Yes, it's delicious. The cheese one is nice too.\nBen: OK, a chicken sandwich. That's all, thanks. To go, please.\nStaff: Sit at that table for one minute. Your order is ready. Enjoy!\nBen: Thank you, my friend!", + "glosses": { + "staff": "员工,服务员", + "fresh": "新鲜的", + "too": "也", + "sit": "坐" + }, + "questions": [ + { + "type": "detail", + "question": "Ben 的咖啡怎么做?", + "options": [ + "大杯、热的、加奶、不加糖", + "小杯、冷的、加糖", + "中杯、加奶和糖" + ] + }, + { + "type": "detail", + "question": "他点了哪种三明治?", + "options": [ + "鸡肉的", + "奶酪的", + "没有点三明治" + ] + } + ] + } + ], + "excluded": [ + { + "en": "medium", + "reason": "B1;A1 只学 small 和 large" + }, + { + "en": "latte / cappuccino", + "reason": "CEFR-J 未收录,作为菜单专名由应用临时提示" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U04.json b/kouyu_english/assets/courses/A1/A1-U04.json new file mode 100644 index 0000000..cc22715 --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U04.json @@ -0,0 +1,954 @@ +{ + "schemaVersion": 1, + "id": "A1-U04", + "revision": 1, + "level": "A1", + "title": "问路", + "categories": [ + "旅行" + ], + "canDo": "问地点、听懂左右和距离", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "245", + "use": "active" + }, + { + "id": "246", + "use": "active" + }, + { + "id": "117", + "use": "active" + }, + { + "id": "21", + "use": "active" + }, + { + "id": "146", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "A1-U04-P01", + "type": "pattern", + "en": "Where is the station?", + "zh": "车站在哪里?", + "sceneWord": false, + "match": [ + [ + "where is", + "where are" + ] + ], + "example": { + "en": "Excuse me. Where is the toilet?", + "zh": "打扰一下,洗手间在哪里?" + }, + "review": { + "prompt": "你想找一个地方,问它在哪里。" + } + }, + { + "id": "A1-U04-P02", + "type": "pattern", + "en": "How do I get to the station?", + "zh": "去车站怎么走?", + "sceneWord": false, + "match": [ + [ + "how do i get to", + "how can i get to" + ] + ], + "example": { + "en": "Yes, I'm lost. How do I get to the museum?", + "zh": "是的,我迷路了。去博物馆怎么走?" + }, + "review": { + "prompt": "你想去博物馆,问路人怎么走。" + } + }, + { + "id": "A1-U04-W01", + "type": "word", + "en": "station", + "zh": "车站", + "sceneWord": false, + "match": [ + [ + "station" + ] + ], + "example": { + "en": "Is there a subway station near here?", + "zh": "这附近有地铁站吗?" + }, + "review": { + "prompt": "问火车站在哪里。" + } + }, + { + "id": "A1-U04-W02", + "type": "word", + "en": "toilet", + "zh": "洗手间;厕所", + "sceneWord": false, + "match": [ + [ + "toilet", + "toilets" + ] + ], + "example": { + "en": "Excuse me. Where is the toilet?", + "zh": "打扰一下,洗手间在哪里?" + }, + "review": { + "prompt": "在商场里,问洗手间在哪里。" + } + }, + { + "id": "A1-U04-P03", + "type": "phrase", + "en": "I'm lost.", + "zh": "我迷路了。", + "sceneWord": true, + "sceneReason": "lost 在 CEFR-J 为 A2,但说明自己迷路是问路时最先要说的话", + "match": [ + [ + "lost" + ] + ], + "example": { + "en": "Sorry, I'm lost. Where is the station?", + "zh": "抱歉,我迷路了。车站在哪里?" + }, + "review": { + "prompt": "告诉路人你迷路了。" + } + }, + { + "id": "A1-U04-W03", + "type": "word", + "en": "left", + "zh": "左边", + "sceneWord": false, + "match": [ + [ + "left" + ] + ], + "example": { + "en": "The bank is on the left.", + "zh": "银行在左边。" + }, + "review": { + "prompt": "说“左边”。" + } + }, + { + "id": "A1-U04-P04", + "type": "pattern", + "en": "Turn left.", + "zh": "左转。(右转是 Turn right.)", + "sceneWord": false, + "match": [ + [ + "turn left", + "turn right" + ] + ], + "example": { + "en": "Turn right at the corner.", + "zh": "在拐角处右转。" + }, + "review": { + "prompt": "告诉别人在路口右转。" + } + }, + { + "id": "A1-U04-P05", + "type": "phrase", + "en": "Go straight.", + "zh": "直走。", + "sceneWord": false, + "match": [ + [ + "go straight", + "straight on" + ] + ], + "example": { + "en": "Go straight and turn left.", + "zh": "直走,然后左转。" + }, + "review": { + "prompt": "告诉别人一直往前走。" + } + }, + { + "id": "A1-U04-P06", + "type": "pattern", + "en": "It's on the left.", + "zh": "在左边。", + "sceneWord": false, + "match": [ + [ + "on the left", + "on the right", + "on your left", + "on your right" + ] + ], + "example": { + "en": "The station is on the right.", + "zh": "车站在右边。" + }, + "review": { + "prompt": "告诉别人银行在右边。" + } + }, + { + "id": "A1-U04-P07", + "type": "pattern", + "en": "It's next to the bank.", + "zh": "在银行旁边。", + "sceneWord": false, + "match": [ + [ + "next to" + ] + ], + "example": { + "en": "The station is next to the church.", + "zh": "车站在教堂旁边。" + }, + "review": { + "prompt": "告诉别人车站在教堂旁边。" + } + }, + { + "id": "A1-U04-P08", + "type": "pattern", + "en": "Is it far?", + "zh": "远吗?", + "sceneWord": true, + "sceneReason": "far 在 CEFR-J 为 A2,但问远不远决定走路还是坐车", + "match": [ + [ + "far" + ] + ], + "example": { + "en": "Is the museum far?", + "zh": "博物馆远吗?" + }, + "review": { + "prompt": "问路人那个地方远不远。" + } + }, + { + "id": "A1-U04-P09", + "type": "pattern", + "en": "It's ten minutes from here.", + "zh": "离这里十分钟。", + "sceneWord": false, + "match": [ + [ + "minute", + "minutes" + ] + ], + "example": { + "en": "No, it's not far. It's five minutes from here.", + "zh": "不远,离这里五分钟。" + }, + "review": { + "prompt": "告诉别人走过去要五分钟。" + } + }, + { + "id": "A1-U04-P10", + "type": "pattern", + "en": "Can you show me on the map?", + "zh": "你能在地图上指给我看吗?", + "sceneWord": false, + "match": [ + [ + "show me" + ] + ], + "example": { + "en": "Five minutes. Can you show me on the map?", + "zh": "五分钟。你能在地图上指给我看吗?" + }, + "review": { + "prompt": "你听不懂路线,请对方在地图上指给你看。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U04-R01", + "en": "street", + "zh": "街道" + }, + { + "id": "A1-U04-R02", + "en": "corner", + "zh": "拐角" + }, + { + "id": "A1-U04-R03", + "en": "walk", + "zh": "走路" + }, + { + "id": "A1-U04-R04", + "en": "bank", + "zh": "银行" + }, + { + "id": "A1-U04-R05", + "en": "park", + "zh": "公园" + }, + { + "id": "A1-U04-R06", + "en": "museum", + "zh": "博物馆" + }, + { + "id": "A1-U04-R07", + "en": "hospital", + "zh": "医院" + }, + { + "id": "A1-U04-R08", + "en": "church", + "zh": "教堂" + }, + { + "id": "A1-U04-R09", + "en": "supermarket", + "zh": "超市" + }, + { + "id": "A1-U04-R10", + "en": "post office", + "zh": "邮局" + }, + { + "id": "A1-U04-R11", + "en": "building", + "zh": "大楼" + }, + { + "id": "A1-U04-R12", + "en": "bridge", + "zh": "桥" + }, + { + "id": "A1-U04-R13", + "en": "city", + "zh": "城市" + }, + { + "id": "A1-U04-R14", + "en": "town", + "zh": "小镇;城镇" + }, + { + "id": "A1-U04-R15", + "en": "block", + "zh": "街区" + }, + { + "id": "A1-U04-R16", + "en": "find", + "zh": "找到" + }, + { + "id": "A1-U04-R17", + "en": "end", + "zh": "尽头" + }, + { + "id": "A1-U04-R18", + "en": "second", + "zh": "第二" + }, + { + "id": "A1-U04-R19", + "en": "traffic light", + "zh": "红绿灯" + }, + { + "id": "A1-U04-R20", + "en": "sign", + "zh": "标志;指示牌" + }, + { + "id": "A1-U04-R21", + "en": "restaurant", + "zh": "餐厅" + }, + { + "id": "A1-U04-R22", + "en": "subway", + "zh": "地铁" + }, + { + "id": "A1-U04-R23", + "en": "train", + "zh": "火车" + }, + { + "id": "A1-U04-R24", + "en": "library", + "zh": "图书馆" + }, + { + "id": "A1-U04-R25", + "en": "river", + "zh": "河" + }, + { + "id": "A1-U04-R26", + "en": "garden", + "zh": "花园" + }, + { + "id": "A1-U04-R27", + "en": "way", + "zh": "路;方向" + }, + { + "id": "A1-U04-R28", + "en": "stop", + "zh": "车站;停" + }, + { + "id": "A1-U04-R29", + "en": "come", + "zh": "来" + }, + { + "id": "A1-U04-R30", + "en": "cinema", + "zh": "电影院" + } + ], + "segments": [ + { + "id": "A1-U04-S1", + "title": "问地方在哪里", + "minutes": 12, + "itemIds": [ + "A1-U04-P03", + "A1-U04-P01", + "A1-U04-W01", + "A1-U04-W02", + "A1-U04-P02" + ], + "listening": { + "text": "Excuse me. I'm lost. Where is the station? The train station? It's on this street. Look, there is the sign.", + "question": "说话的人要找什么地方?", + "options": [ + "火车站", + "洗手间", + "银行" + ] + }, + "speaking": [ + { + "text": "Sorry, I'm lost." + }, + { + "text": "Excuse me. Where is the station?" + }, + { + "text": "Where is the toilet?" + }, + { + "text": "How do I get to the museum?", + "tip": "get to 连读,to 读得很轻" + }, + { + "text": "Is this the way to the station?" + } + ], + "reading": { + "text": "TOWN MAP\nThe train station is next to the bank.\nThe museum is behind the church.\nThe cinema is behind the museum.\nThe toilets are in the park, next to the garden.\nThe library is between the post office and the supermarket.", + "question": "博物馆在哪里?", + "options": [ + "behind the church", + "next to the bank", + "in the park" + ] + }, + "writing": { + "prompt": "你迷路了,写两句话:说自己迷路了,再问车站在哪里。", + "example": "Sorry, I'm lost. Where is the station?", + "itemIds": [ + "A1-U04-P03", + "A1-U04-P01", + "A1-U04-W01" + ] + }, + "independent": { + "prompt": "想一个你今天要去的地方,用英语问它在哪里、怎么去。", + "itemIds": [ + "A1-U04-P01", + "A1-U04-P02" + ] + } + }, + { + "id": "A1-U04-S2", + "title": "左转、右转、直走", + "minutes": 13, + "itemIds": [ + "A1-U04-W03", + "A1-U04-P04", + "A1-U04-P05", + "A1-U04-P06", + "A1-U04-P07" + ], + "listening": { + "text": "How do I get to the bank? Go straight. Turn left at the traffic lights. The bank is on the right, next to the hospital.", + "question": "银行在哪里?", + "options": [ + "右边,医院旁边", + "左边,医院旁边", + "右边,公园旁边" + ] + }, + "speaking": [ + { + "text": "Go straight." + }, + { + "text": "Turn left.", + "tip": "left 结尾的 t 要轻轻带出来" + }, + { + "text": "Turn right at the corner." + }, + { + "text": "It's on the left." + }, + { + "text": "It's next to the bank." + } + ], + "reading": { + "text": "Mia: Excuse me. How do I get to the supermarket?\nTom: Go straight. Turn right at the second street. You can see a sign.\nMia: Turn right at the second street?\nTom: Yes. The supermarket is on the left, next to the restaurant.", + "question": "超市在哪一边?", + "options": [ + "on the left", + "on the right", + "at the second street" + ] + }, + "writing": { + "prompt": "写出两步指路:先直走,再在拐角左转。", + "example": "Go straight. Turn left at the corner.", + "itemIds": [ + "A1-U04-P05", + "A1-U04-P04" + ] + }, + "independent": { + "prompt": "从你家门口到最近的一家商店,用英语说两三步怎么走,最后说它在左边还是右边。", + "itemIds": [ + "A1-U04-P05", + "A1-U04-P04", + "A1-U04-P06" + ] + } + }, + { + "id": "A1-U04-S3", + "title": "远不远、在地图上指给我看", + "minutes": 11, + "itemIds": [ + "A1-U04-P08", + "A1-U04-P09", + "A1-U04-P10" + ], + "listening": { + "text": "Is it far? No, it's not far. It's ten minutes from here. You can walk.", + "question": "走过去要多久?", + "options": [ + "十分钟", + "五分钟", + "半小时" + ] + }, + "speaking": [ + { + "text": "Is it far?" + }, + { + "text": "It's five minutes from here." + }, + { + "text": "Can you show me on the map?" + } + ], + "reading": { + "text": "Anna: Excuse me. Is the museum far?\nTom: Yes, it's far. It's thirty minutes from here. Don't walk. Take the subway.\nAnna: Can you show me on the map?\nTom: Sure. Come and look. We are here. The subway stop is there, at the end of this street.", + "question": "Tom 建议怎么去博物馆?", + "options": [ + "take the subway", + "walk", + "take a bus" + ] + }, + "writing": { + "prompt": "写一句话问远不远,再请对方在地图上指给你看。", + "example": "Is it far? Can you show me on the map?", + "itemIds": [ + "A1-U04-P08", + "A1-U04-P10" + ] + }, + "independent": { + "prompt": "你在地图上找不到酒店:问怎么去、远不远,再请对方指给你看。", + "itemIds": [ + "A1-U04-P02", + "A1-U04-P08", + "A1-U04-P10" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U04-C1", + "kind": "main", + "title": "问去火车站的路", + "learnerRole": "游客", + "aiRole": "路人", + "setting": "你拖着行李找不到火车站,向一位路人问路。", + "turns": [ + { + "ai": "Hi. Can I help you?", + "goal": "说迷路了,问火车站在哪里", + "model": "Yes, please. I'm lost. Where is the train station?", + "zh": "是的,谢谢。我迷路了。火车站在哪里?", + "itemIds": [ + "A1-U04-P03", + "A1-U04-P01", + "A1-U04-W01" + ] + }, + { + "ai": "The station? Go straight and turn left at the bridge.", + "goal": "复述确认:直走,然后左转", + "model": "Go straight and turn left?", + "zh": "直走,然后左转?", + "itemIds": [ + "A1-U04-P05", + "A1-U04-P04", + "A1-U04-W03" + ] + }, + { + "ai": "Yes. Then walk two blocks. The station is on the right, next to the church.", + "goal": "确认位置,再问远不远", + "model": "On the right, next to the church. Is it far?", + "zh": "在右边,教堂旁边。远吗?", + "itemIds": [ + "A1-U04-P06", + "A1-U04-P07", + "A1-U04-P08" + ] + }, + { + "ai": "No, it's not far. It's five minutes from here.", + "goal": "确认时间,请对方在地图上指给你看", + "model": "Five minutes. Can you show me on the map?", + "zh": "五分钟。你能在地图上指给我看吗?", + "itemIds": [ + "A1-U04-P09", + "A1-U04-P10" + ] + }, + { + "ai": "Sure. We are here. The station is here.", + "goal": "道谢", + "model": "Great. Thank you very much!", + "zh": "太好了,非常感谢!", + "itemIds": [] + } + ] + }, + { + "id": "A1-U04-C2", + "kind": "variant", + "title": "找洗手间", + "learnerRole": "游客", + "aiRole": "咖啡店店员", + "setting": "你在一家咖啡店附近,急着找洗手间。", + "turns": [ + { + "ai": "Hello. Are you okay?", + "goal": "问洗手间在哪里", + "model": "Excuse me. Where is the toilet?", + "zh": "打扰一下,洗手间在哪里?", + "itemIds": [ + "A1-U04-P01", + "A1-U04-W02" + ] + }, + { + "ai": "The toilets are in the building behind the cafe.", + "goal": "问去那栋楼怎么走", + "model": "How do I get to the building?", + "zh": "那栋楼怎么走?", + "itemIds": [ + "A1-U04-P02" + ] + }, + { + "ai": "Go straight. Then turn right at the corner. It's on the left.", + "goal": "复述确认方向", + "model": "Turn right, then on the left?", + "zh": "右转,然后在左边?", + "itemIds": [ + "A1-U04-P04", + "A1-U04-P06", + "A1-U04-W03" + ] + }, + { + "ai": "Yes. It's the second building.", + "goal": "问远不远", + "model": "Is it far?", + "zh": "远吗?", + "itemIds": [ + "A1-U04-P08" + ] + }, + { + "ai": "No. Two minutes.", + "goal": "确认时间并道谢", + "model": "Two minutes. Thanks!", + "zh": "两分钟。谢谢!", + "itemIds": [ + "A1-U04-P09" + ] + } + ] + }, + { + "id": "A1-U04-C3", + "kind": "variant", + "title": "去远处的博物馆", + "learnerRole": "游客", + "aiRole": "当地人", + "setting": "你想去城市博物馆,但它离这里很远。", + "turns": [ + { + "ai": "Hi there! You look lost. Can I help you find something?", + "goal": "说是的,问去博物馆怎么走", + "model": "Yes, I'm lost. How do I get to the museum?", + "zh": "是的,我迷路了。去博物馆怎么走?", + "itemIds": [ + "A1-U04-P03", + "A1-U04-P02" + ] + }, + { + "ai": "The city museum? It's far. It's forty minutes from here.", + "goal": "问附近有没有地铁站", + "model": "Is there a subway station near here?", + "zh": "这附近有地铁站吗?", + "itemIds": [ + "A1-U04-W01" + ] + }, + { + "ai": "Yes. Go straight. The subway station is next to the park.", + "goal": "确认在公园旁边", + "model": "Next to the park?", + "zh": "在公园旁边?", + "itemIds": [ + "A1-U04-P07" + ] + }, + { + "ai": "Yes, on the left. Then take the subway. The museum stop is number six.", + "goal": "请对方在地图上指出博物馆站", + "model": "Can you show me on the map, please?", + "zh": "你能在地图上指给我看吗?", + "itemIds": [ + "A1-U04-P10" + ] + }, + { + "ai": "Sure. Look, it's here, near the river.", + "goal": "道谢", + "model": "Thank you very much!", + "zh": "非常感谢!", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U04-T1", + "sceneId": "A1-U04-C1", + "goal": "说自己迷路,问到火车站的路线,确认左右、位置和距离", + "itemIds": [ + "A1-U04-P03", + "A1-U04-P01", + "A1-U04-W01", + "A1-U04-P05", + "A1-U04-P04", + "A1-U04-W03", + "A1-U04-P06", + "A1-U04-P07", + "A1-U04-P08", + "A1-U04-P09", + "A1-U04-P10" + ], + "slots": [ + "目的地", + "路线", + "距离" + ] + }, + { + "id": "A1-U04-T2", + "sceneId": "A1-U04-C2", + "goal": "问洗手间在哪里并复述路线", + "itemIds": [ + "A1-U04-P01", + "A1-U04-W02", + "A1-U04-P02", + "A1-U04-P04", + "A1-U04-P06", + "A1-U04-W03", + "A1-U04-P08", + "A1-U04-P09" + ], + "slots": [ + "地点", + "左右" + ] + }, + { + "id": "A1-U04-T3", + "sceneId": "A1-U04-C3", + "goal": "目的地很远时改问地铁站,并请对方在地图上指出", + "itemIds": [ + "A1-U04-P03", + "A1-U04-P02", + "A1-U04-W01", + "A1-U04-P07", + "A1-U04-P10" + ], + "slots": [ + "目的地", + "交通方式" + ] + } + ], + "materials": [ + { + "id": "A1-U04-M1", + "mode": "listening", + "title": "路人给你指路", + "text": "Excuse me. Do you need help? You look lost. The train station? OK, listen. Go straight down this street. Walk two blocks to the traffic light, then turn left at the bank. The station is at the end of the road, on the right, next to the church. It's not far — about ten minutes on foot. A big supermarket and a post office are near it too. You can see the sign for the subway there. Have a good trip!", + "glosses": { + "luck": "good luck 祝好运", + "trip": "旅行", + "foot": "on foot 步行", + "road": "路", + "big": "大的", + "too": "也" + }, + "questions": [ + { + "type": "gist", + "question": "这段话在做什么?", + "options": [ + "给人指去火车站的路", + "介绍一家餐厅", + "问多少钱" + ] + }, + { + "type": "detail", + "question": "火车站在什么旁边?", + "options": [ + "教堂旁边", + "银行旁边", + "公园旁边" + ] + } + ] + }, + { + "id": "A1-U04-M2", + "mode": "reading", + "title": "读一段对话:问去博物馆的路", + "text": "Anna: Excuse me, how do I get to the museum? I'm lost.\nMan: The museum? Go straight, cross the bridge, and turn right at the corner.\nAnna: Turn right at the corner. Is it far?\nMan: No, it's near — about five minutes. It's the second building on your left, next to the park.\nAnna: Is there a library near the museum too?\nMan: Yes, at the end of the street, near the river and the garden.\nAnna: Can you show me on the map?\nMan: Sure. We are here, in the town center. This is the way to the museum.\nAnna: Great. Is there a restaurant near there?\nMan: Yes, next to the cinema. Thank you, and have a nice day!", + "glosses": { + "cross": "穿过", + "center": "中心", + "man": "男人", + "too": "也" + }, + "questions": [ + { + "type": "detail", + "question": "去博物馆要在拐角怎么走?", + "options": [ + "右转", + "左转", + "一直走" + ] + }, + { + "type": "detail", + "question": "博物馆离这里远吗?", + "options": [ + "不远,大约五分钟", + "很远,要坐车", + "不知道" + ] + } + ] + } + ], + "excluded": [ + { + "en": "opposite / across from", + "reason": "A2 方位词,放到 A2 的描述地点单元" + }, + { + "en": "north / south / east / west", + "reason": "A2;日常问路很少用方位" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U05.json b/kouyu_english/assets/courses/A1/A1-U05.json new file mode 100644 index 0000000..9364ff8 --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U05.json @@ -0,0 +1,910 @@ +{ + "schemaVersion": 1, + "id": "A1-U05", + "revision": 1, + "level": "A1", + "title": "在餐厅点餐", + "categories": [ + "日常", + "旅行" + ], + "canDo": "点餐、问推荐、要账单", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "141", + "use": "active", + "reason": "只把 I'll have… 当作点菜的固定句块,不展开 will 的将来用法" + }, + { + "id": "123", + "use": "active" + }, + { + "id": "239", + "use": "receptive" + }, + { + "id": "142", + "use": "receptive" + }, + { + "id": "15", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A1-U05-P01", + "type": "phrase", + "en": "A table for two, please.", + "zh": "请给我们一张两人桌。", + "sceneWord": false, + "match": [ + [ + "table for" + ] + ], + "example": { + "en": "A table for four, please.", + "zh": "请给我们一张四人桌。" + }, + "review": { + "prompt": "你们两个人走进餐厅,告诉服务员要几人桌。" + } + }, + { + "id": "A1-U05-P02", + "type": "phrase", + "en": "What do you recommend?", + "zh": "你推荐什么?", + "sceneWord": true, + "sceneReason": "recommend 在 CEFR-J 为 B1,但在餐厅请人推荐是外出吃饭最常用的一句", + "match": [ + [ + "recommend" + ] + ], + "example": { + "en": "What do you recommend today?", + "zh": "你今天推荐什么?" + }, + "review": { + "prompt": "你不知道点什么,请服务员推荐。" + } + }, + { + "id": "A1-U05-P03", + "type": "phrase", + "en": "I'll have the fish.", + "zh": "我要鱼。", + "sceneWord": false, + "match": [ + [ + "i will have" + ] + ], + "example": { + "en": "I'll have the soup, please.", + "zh": "我要汤,谢谢。" + }, + "review": { + "prompt": "告诉服务员你要牛肉。" + } + }, + { + "id": "A1-U05-W01", + "type": "word", + "en": "soup", + "zh": "汤", + "sceneWord": false, + "match": [ + [ + "soup" + ] + ], + "example": { + "en": "The soup is very hot.", + "zh": "汤很烫。" + }, + "review": { + "prompt": "说“汤”。" + } + }, + { + "id": "A1-U05-W02", + "type": "word", + "en": "rice", + "zh": "米饭", + "sceneWord": false, + "match": [ + [ + "rice" + ] + ], + "example": { + "en": "Can I have some rice, please?", + "zh": "可以给我一些米饭吗?" + }, + "review": { + "prompt": "向服务员要一些米饭。" + } + }, + { + "id": "A1-U05-W03", + "type": "word", + "en": "fish", + "zh": "鱼", + "sceneWord": false, + "match": [ + [ + "fish" + ] + ], + "example": { + "en": "The fish is very good here.", + "zh": "这里的鱼很好吃。" + }, + "review": { + "prompt": "说“鱼”。" + } + }, + { + "id": "A1-U05-W04", + "type": "word", + "en": "vegetables", + "zh": "蔬菜", + "sceneWord": false, + "match": [ + [ + "vegetable", + "vegetables" + ] + ], + "example": { + "en": "I'd like some vegetables, please.", + "zh": "我想要一些蔬菜。" + }, + "review": { + "prompt": "说你想要蔬菜。" + } + }, + { + "id": "A1-U05-P04", + "type": "phrase", + "en": "Is it spicy?", + "zh": "辣吗?", + "sceneWord": true, + "sceneReason": "spicy 在 CEFR-J 为 B1,但对习惯问辣度的中国游客点菜很关键", + "match": [ + [ + "spicy" + ] + ], + "example": { + "en": "Is the chicken spicy?", + "zh": "鸡肉辣吗?" + }, + "review": { + "prompt": "点菜前问这道菜辣不辣。" + } + }, + { + "id": "A1-U05-P05", + "type": "phrase", + "en": "Some water, please.", + "zh": "请给我一些水。", + "sceneWord": false, + "match": [ + [ + "water" + ] + ], + "example": { + "en": "Can I have some water, please?", + "zh": "可以给我一些水吗?" + }, + "review": { + "prompt": "向服务员要水。" + } + }, + { + "id": "A1-U05-W05", + "type": "word", + "en": "hungry", + "zh": "饿的", + "sceneWord": false, + "match": [ + [ + "hungry" + ] + ], + "example": { + "en": "I'm very hungry.", + "zh": "我很饿。" + }, + "review": { + "prompt": "说你很饿。" + } + }, + { + "id": "A1-U05-P06", + "type": "phrase", + "en": "I'm full.", + "zh": "我饱了。", + "sceneWord": false, + "match": [ + [ + "i am full", + "we are full" + ] + ], + "example": { + "en": "No dessert, thanks. I'm full.", + "zh": "不要甜点了,谢谢。我饱了。" + }, + "review": { + "prompt": "服务员问你要不要甜点,说你已经饱了。" + } + }, + { + "id": "A1-U05-P07", + "type": "phrase", + "en": "Can I have the bill, please?", + "zh": "请给我账单。", + "sceneWord": true, + "sceneReason": "bill 在 CEFR-J 为 A2,但吃完结账必须会说", + "match": [ + [ + "the bill", + "the check" + ] + ], + "example": { + "en": "Excuse me. Can we have the bill, please?", + "zh": "打扰一下,可以给我们账单吗?" + }, + "review": { + "prompt": "吃完了,向服务员要账单。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U05-R01", + "en": "meal", + "zh": "一顿饭" + }, + { + "id": "A1-U05-R02", + "en": "dinner", + "zh": "晚饭" + }, + { + "id": "A1-U05-R03", + "en": "lunch", + "zh": "午饭" + }, + { + "id": "A1-U05-R04", + "en": "waiter", + "zh": "服务员" + }, + { + "id": "A1-U05-R05", + "en": "egg", + "zh": "鸡蛋" + }, + { + "id": "A1-U05-R06", + "en": "meat", + "zh": "肉" + }, + { + "id": "A1-U05-R07", + "en": "beef", + "zh": "牛肉" + }, + { + "id": "A1-U05-R08", + "en": "potato", + "zh": "土豆" + }, + { + "id": "A1-U05-R09", + "en": "tomato", + "zh": "西红柿" + }, + { + "id": "A1-U05-R10", + "en": "pizza", + "zh": "比萨饼" + }, + { + "id": "A1-U05-R11", + "en": "salad", + "zh": "沙拉" + }, + { + "id": "A1-U05-R12", + "en": "fruit", + "zh": "水果" + }, + { + "id": "A1-U05-R13", + "en": "banana", + "zh": "香蕉" + }, + { + "id": "A1-U05-R14", + "en": "ice cream", + "zh": "冰淇淋" + }, + { + "id": "A1-U05-R15", + "en": "glass", + "zh": "玻璃杯" + }, + { + "id": "A1-U05-R16", + "en": "knife", + "zh": "刀" + }, + { + "id": "A1-U05-R17", + "en": "fork", + "zh": "叉子" + }, + { + "id": "A1-U05-R18", + "en": "spoon", + "zh": "勺子" + }, + { + "id": "A1-U05-R19", + "en": "dessert", + "zh": "甜点" + }, + { + "id": "A1-U05-R20", + "en": "special", + "zh": "特别的;特色菜" + }, + { + "id": "A1-U05-R21", + "en": "try", + "zh": "尝试" + }, + { + "id": "A1-U05-R22", + "en": "people", + "zh": "人们" + }, + { + "id": "A1-U05-R23", + "en": "seat", + "zh": "座位" + }, + { + "id": "A1-U05-R24", + "en": "dish", + "zh": "一道菜" + }, + { + "id": "A1-U05-R25", + "en": "too", + "zh": "太" + }, + { + "id": "A1-U05-R26", + "en": "smell", + "zh": "闻起来" + }, + { + "id": "A1-U05-R27", + "en": "tip", + "zh": "小费" + }, + { + "id": "A1-U05-R28", + "en": "hamburger", + "zh": "汉堡包" + }, + { + "id": "A1-U05-R29", + "en": "butter", + "zh": "黄油" + }, + { + "id": "A1-U05-R30", + "en": "ask", + "zh": "问;请求" + }, + { + "id": "A1-U05-R31", + "en": "sit", + "zh": "坐" + } + ], + "segments": [ + { + "id": "A1-U05-S1", + "title": "入座与请人推荐", + "minutes": 12, + "itemIds": [ + "A1-U05-P01", + "A1-U05-W05", + "A1-U05-P02", + "A1-U05-P03" + ], + "listening": { + "text": "Hello. How many people? A table for two, please. Sure. Sit here, please. Here is the menu, and some bread and butter.", + "question": "他们要几人桌?", + "options": [ + "两人桌", + "三人桌", + "四人桌" + ] + }, + "speaking": [ + { + "text": "A table for two, please." + }, + { + "text": "I'm very hungry." + }, + { + "text": "What do you recommend?", + "tip": "recommend 重音在最后的 mend" + }, + { + "text": "I'll have the fish, please.", + "tip": "I'll 读作 /aɪl/,很短" + } + ], + "reading": { + "text": "TODAY'S SPECIAL\nFish with rice $15\nBeef with potatoes $18\nTomato soup $6\nEgg salad $7\nPizza $12\nDessert: banana ice cream $5", + "question": "哪一道菜最便宜?", + "options": [ + "tomato soup", + "egg salad", + "pizza" + ] + }, + "writing": { + "prompt": "写两句话:要一张两人桌,再说你要鱼。", + "example": "A table for two, please. I'll have the fish.", + "itemIds": [ + "A1-U05-P01", + "A1-U05-P03" + ] + }, + "independent": { + "prompt": "想想你常去的一家餐厅,用英语请服务员推荐,然后点一道菜。", + "itemIds": [ + "A1-U05-P02", + "A1-U05-P03" + ] + } + }, + { + "id": "A1-U05-S2", + "title": "点菜:汤、米饭、辣不辣", + "minutes": 13, + "itemIds": [ + "A1-U05-W01", + "A1-U05-W02", + "A1-U05-W03", + "A1-U05-W04", + "A1-U05-P04", + "A1-U05-P05" + ], + "listening": { + "text": "What would you like? I'll have the chicken soup and rice. Is the soup spicy? No, it isn't. It has meat and vegetables. And some water, please.", + "question": "顾客点了什么?", + "options": [ + "鸡汤和米饭", + "鱼和米饭", + "鸡汤和蔬菜" + ] + }, + "speaking": [ + { + "text": "soup, rice, fish" + }, + { + "text": "I'd like some vegetables, please.", + "tip": "vegetables 读作三个音节 /ˈvedʒtəblz/" + }, + { + "text": "Is it spicy?" + }, + { + "text": "Some water, please." + } + ], + "reading": { + "text": "Waiter: Would you like to try the beef? It's very good.\nMia: Is it spicy?\nWaiter: Yes, very spicy.\nMia: Oh, no. I'll have the fish and some vegetables.\nWaiter: And to drink?\nMia: A glass of water, please.", + "question": "Mia 点了什么主菜?", + "options": [ + "the fish", + "the beef", + "a glass of water" + ] + }, + "writing": { + "prompt": "写两句话:问鱼辣不辣,再要一些水。", + "example": "Is the fish spicy? Some water, please.", + "itemIds": [ + "A1-U05-P04", + "A1-U05-P05", + "A1-U05-W03" + ] + }, + "independent": { + "prompt": "用英语点一份汤、米饭和蔬菜。", + "itemIds": [ + "A1-U05-W01", + "A1-U05-W02", + "A1-U05-W04" + ] + } + }, + { + "id": "A1-U05-S3", + "title": "吃饱了,结账", + "minutes": 10, + "itemIds": [ + "A1-U05-P06", + "A1-U05-P07" + ], + "listening": { + "text": "Would you like some dessert? We have ice cream and fruit. No, thanks. I'm full. Can I have the bill, please?", + "question": "顾客为什么不要甜点?", + "options": [ + "已经吃饱了", + "不喜欢冰淇淋", + "甜点太贵" + ] + }, + "speaking": [ + { + "text": "I'm full." + }, + { + "text": "No dessert, thanks." + }, + { + "text": "Can I have the bill, please?", + "tip": "bill 的 i 是短音,不要读成 beer" + } + ], + "reading": { + "text": "Please wait here. The waiter will take you to a seat.\nLunch: 11 to 2. Dinner: 5 to 10.\nYou can pay by cash or card at your table. Please ask the waiter for the bill.\nNo tips, please.", + "question": "怎么结账?", + "options": [ + "在餐桌上向服务员要账单", + "去门口付钱", + "只能付现金" + ] + }, + "writing": { + "prompt": "写两句话:说你吃饱了,再要账单。", + "example": "I'm full. Can I have the bill, please?", + "itemIds": [ + "A1-U05-P06", + "A1-U05-P07" + ] + }, + "independent": { + "prompt": "回想上次在外面吃饭,用英语说你吃饱了并要账单。", + "itemIds": [ + "A1-U05-P06", + "A1-U05-P07" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U05-C1", + "kind": "main", + "title": "晚饭点菜", + "learnerRole": "顾客", + "aiRole": "服务员", + "setting": "你和朋友晚上走进一家餐厅吃饭。", + "turns": [ + { + "ai": "Hello! How many people?", + "goal": "说要两人桌", + "model": "A table for two, please.", + "zh": "两人桌,谢谢。", + "itemIds": [ + "A1-U05-P01" + ] + }, + { + "ai": "Sure. Sit here, please. Here is the menu. Our special dish today is beef with potatoes.", + "goal": "说你们很饿,请服务员推荐", + "model": "Thank you. We're very hungry. What do you recommend?", + "zh": "谢谢。我们很饿。你推荐什么?", + "itemIds": [ + "A1-U05-W05", + "A1-U05-P02" + ] + }, + { + "ai": "The fish is very good. It comes with rice and vegetables.", + "goal": "问辣不辣", + "model": "Is it spicy?", + "zh": "辣吗?", + "itemIds": [ + "A1-U05-P04" + ] + }, + { + "ai": "No, it isn't.", + "goal": "点鱼和一份汤", + "model": "Great. I'll have the fish and a soup, please.", + "zh": "好的,我要鱼和一份汤。", + "itemIds": [ + "A1-U05-P03", + "A1-U05-W03", + "A1-U05-W01" + ] + }, + { + "ai": "And to drink? Here is a spoon for the soup.", + "goal": "要水", + "model": "Some water, please.", + "zh": "请给我一些水。", + "itemIds": [ + "A1-U05-P05" + ] + } + ] + }, + { + "id": "A1-U05-C2", + "kind": "variant", + "title": "吃完结账", + "learnerRole": "顾客", + "aiRole": "服务员", + "setting": "你吃完午饭,想结账离开。", + "turns": [ + { + "ai": "How is your meal?", + "goal": "说很好,你已经饱了", + "model": "Very good, thank you. I'm full.", + "zh": "很好,谢谢。我饱了。", + "itemIds": [ + "A1-U05-P06" + ] + }, + { + "ai": "Would you like some dessert? We have ice cream, fruit and cake.", + "goal": "拒绝并要账单", + "model": "No, thanks. Can I have the bill, please?", + "zh": "不用了,谢谢。可以给我账单吗?", + "itemIds": [ + "A1-U05-P07" + ] + }, + { + "ai": "Sure. Here you are. Lunch for one, twelve dollars.", + "goal": "问能不能刷卡", + "model": "Can I pay by card?", + "zh": "可以刷卡吗?", + "itemIds": [] + }, + { + "ai": "Yes, sure.", + "goal": "道谢,说这里的汤和米饭很好", + "model": "Thank you. The soup and rice are very good here.", + "zh": "谢谢。这里的汤和米饭很好。", + "itemIds": [ + "A1-U05-W01", + "A1-U05-W02" + ] + } + ] + }, + { + "id": "A1-U05-C3", + "kind": "variant", + "title": "快餐店点汉堡", + "learnerRole": "顾客", + "aiRole": "店员", + "setting": "你在一家快餐店,很饿,但不太能吃辣。", + "turns": [ + { + "ai": "Hi! What would you like?", + "goal": "说你很饿,要一个汉堡", + "model": "I'm hungry. I'll have a hamburger, please.", + "zh": "我饿了。我要一个汉堡。", + "itemIds": [ + "A1-U05-W05", + "A1-U05-P03" + ] + }, + { + "ai": "Beef or chicken? The chicken is spicy.", + "goal": "说要牛肉的,鸡肉太辣", + "model": "Beef, please. The chicken is too spicy for me.", + "zh": "牛肉的。鸡肉对我来说太辣了。", + "itemIds": [ + "A1-U05-P04" + ] + }, + { + "ai": "Would you like vegetables or potatoes with it?", + "goal": "选蔬菜", + "model": "Vegetables, please.", + "zh": "蔬菜,谢谢。", + "itemIds": [ + "A1-U05-W04" + ] + }, + { + "ai": "And to drink?", + "goal": "要水", + "model": "Just some water, please.", + "zh": "只要一些水,谢谢。", + "itemIds": [ + "A1-U05-P05" + ] + }, + { + "ai": "OK. Here is your food, and a knife and fork.", + "goal": "道谢", + "model": "Thank you! It smells good.", + "zh": "谢谢!闻起来很香。", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U05-T1", + "sceneId": "A1-U05-C1", + "goal": "要座位、请人推荐、问辣度并点主菜、汤和饮料", + "itemIds": [ + "A1-U05-P01", + "A1-U05-W05", + "A1-U05-P02", + "A1-U05-P04", + "A1-U05-P03", + "A1-U05-W03", + "A1-U05-W01", + "A1-U05-P05" + ], + "slots": [ + "人数", + "主菜", + "饮料" + ] + }, + { + "id": "A1-U05-T2", + "sceneId": "A1-U05-C2", + "goal": "吃完说饱了,拒绝甜点并结账", + "itemIds": [ + "A1-U05-P06", + "A1-U05-P07", + "A1-U05-W01", + "A1-U05-W02" + ], + "slots": [ + "甜点", + "账单" + ] + }, + { + "id": "A1-U05-T3", + "sceneId": "A1-U05-C3", + "goal": "在快餐店按口味点餐", + "itemIds": [ + "A1-U05-W05", + "A1-U05-P03", + "A1-U05-P04", + "A1-U05-W04", + "A1-U05-P05" + ], + "slots": [ + "主食", + "辣度", + "配菜" + ] + } + ], + "materials": [ + { + "id": "A1-U05-M1", + "mode": "listening", + "title": "餐厅介绍今晚的菜", + "text": "Good evening, and welcome to our restaurant. Please sit down; here is a seat for you. Tonight we have a special meal. First, a hot soup or a fresh salad with tomato. Then you can try beef with potato, chicken with rice, or a pizza. The fish is our best dish — it smells wonderful and is not spicy. For dessert, we have ice cream, fruit and banana cake. Here are your knife, fork and spoon, and a glass of water. Tell the waiter when you are ready. Enjoy your dinner!", + "glosses": { + "evening": "傍晚,晚上", + "tell": "告诉", + "tonight": "今晚", + "best": "最好的", + "wonderful": "很棒的", + "fresh": "新鲜的" + }, + "questions": [ + { + "type": "gist", + "question": "这段话主要说什么?", + "options": [ + "餐厅今晚有什么菜", + "怎么去餐厅", + "餐厅几点关门" + ] + }, + { + "type": "detail", + "question": "关于鱼,下面哪个对?", + "options": [ + "很好吃,不辣", + "很辣", + "已经卖完了" + ] + } + ] + }, + { + "id": "A1-U05-M2", + "mode": "reading", + "title": "读一段对话:在餐厅点餐", + "text": "Waiter: Good evening. A table for two? Here are your seats.\nBen: Thank you. We're very hungry. What do you recommend?\nWaiter: The beef is our special dish today. The fish and the salad are good too.\nBen: I'll have the fish with rice and some vegetables. Is it spicy?\nWaiter: No, it isn't. And to drink?\nBen: A glass of water, please. Can I have a fork and a spoon?\nWaiter: Of course. Would you like a dessert? The ice cream is sweet and the fruit is fresh.\nBen: Ice cream, please. That was delicious. I'm full now. Can I have the bill?\nWaiter: Sure. Many people ask for the ice cream — it's the best!\nBen: Great. Here is a tip. Thank you!", + "glosses": { + "evening": "傍晚,晚上", + "best": "最好的", + "course": "of course 当然", + "fresh": "新鲜的" + }, + "questions": [ + { + "type": "detail", + "question": "服务员今天推荐什么菜?", + "options": [ + "牛肉", + "汤", + "香蕉" + ] + }, + { + "type": "inference", + "question": "Ben 为什么最后要账单?", + "options": [ + "他吃完了,吃饱了", + "菜太辣了", + "他要换一张桌子" + ] + } + ] + } + ], + "excluded": [ + { + "en": "reservation / book a table", + "reason": "B1;预订放到 A2 的预订单元" + }, + { + "en": "noodle", + "reason": "CEFR-J 未收录,作为菜单专名由应用临时提示" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U06.json b/kouyu_english/assets/courses/A1/A1-U06.json new file mode 100644 index 0000000..32938ae --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U06.json @@ -0,0 +1,989 @@ +{ + "schemaVersion": 1, + "id": "A1-U06", + "revision": 1, + "level": "A1", + "title": "家人与住处", + "categories": [ + "日常" + ], + "canDo": "介绍家人,说住在哪里和家里有什么", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "8", + "use": "active" + }, + { + "id": "59", + "use": "active" + }, + { + "id": "59-2", + "use": "active" + }, + { + "id": "60", + "use": "active" + }, + { + "id": "15", + "use": "active" + }, + { + "id": "146", + "use": "active" + }, + { + "id": "101", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "A1-U06-P01", + "type": "phrase", + "en": "This is my family.", + "zh": "这是我的家人。", + "sceneWord": false, + "match": [ + [ + "my family" + ] + ], + "example": { + "en": "This is my family. These are my parents.", + "zh": "这是我的家人。这两位是我的父母。" + }, + "review": { + "prompt": "给朋友看全家福,开头说一句介绍。" + } + }, + { + "id": "A1-U06-W01", + "type": "word", + "en": "parents", + "zh": "父母", + "sceneWord": false, + "match": [ + [ + "parent", + "parents" + ] + ], + "example": { + "en": "My parents live in Beijing.", + "zh": "我父母住在北京。" + }, + "review": { + "prompt": "说“我父母”。" + } + }, + { + "id": "A1-U06-P02", + "type": "phrase", + "en": "Do you have any brothers or sisters?", + "zh": "你有兄弟姐妹吗?", + "sceneWord": false, + "match": [ + [ + "brothers or sisters", + "brother or sister" + ] + ], + "example": { + "en": "Do you have any brothers or sisters?", + "zh": "你有兄弟姐妹吗?" + }, + "review": { + "prompt": "问新朋友有没有兄弟姐妹。" + } + }, + { + "id": "A1-U06-W02", + "type": "word", + "en": "husband", + "zh": "丈夫", + "sceneWord": false, + "match": [ + [ + "husband" + ] + ], + "example": { + "en": "This is my husband, David.", + "zh": "这是我丈夫大卫。" + }, + "review": { + "prompt": "介绍你的丈夫。" + } + }, + { + "id": "A1-U06-W03", + "type": "word", + "en": "wife", + "zh": "妻子", + "sceneWord": false, + "match": [ + [ + "wife" + ] + ], + "example": { + "en": "My wife is a doctor.", + "zh": "我妻子是医生。" + }, + "review": { + "prompt": "介绍你的妻子。" + } + }, + { + "id": "A1-U06-W04", + "type": "word", + "en": "children", + "zh": "孩子们", + "sceneWord": false, + "match": [ + [ + "child", + "children" + ] + ], + "example": { + "en": "We have two children.", + "zh": "我们有两个孩子。" + }, + "review": { + "prompt": "说你有两个孩子。" + } + }, + { + "id": "A1-U06-P03", + "type": "phrase", + "en": "What does he do?", + "zh": "他是做什么工作的?", + "sceneWord": false, + "match": [ + [ + "what does he do", + "what does she do", + "what do you do", + "what does your" + ] + ], + "example": { + "en": "What does your sister do?", + "zh": "你姐姐是做什么工作的?" + }, + "review": { + "prompt": "问朋友的妻子是做什么工作的。" + } + }, + { + "id": "A1-U06-P04", + "type": "phrase", + "en": "I live in Shanghai.", + "zh": "我住在上海。", + "sceneWord": false, + "match": [ + [ + "live in", + "lives in" + ] + ], + "example": { + "en": "My parents live in Beijing.", + "zh": "我父母住在北京。" + }, + "review": { + "prompt": "说你住在哪个城市。" + } + }, + { + "id": "A1-U06-P05", + "type": "phrase", + "en": "I live with my parents.", + "zh": "我和父母一起住。", + "sceneWord": false, + "match": [ + [ + "live with", + "lives with" + ] + ], + "example": { + "en": "I live with my wife and children.", + "zh": "我和妻子、孩子一起住。" + }, + "review": { + "prompt": "说你和谁一起住。" + } + }, + { + "id": "A1-U06-W05", + "type": "word", + "en": "flat", + "zh": "公寓", + "sceneWord": false, + "match": [ + [ + "flat", + "apartment" + ] + ], + "example": { + "en": "I live in a small flat.", + "zh": "我住在一个小公寓里。" + }, + "review": { + "prompt": "说你住在一个公寓里。" + } + }, + { + "id": "A1-U06-P06", + "type": "phrase", + "en": "There are two bedrooms.", + "zh": "有两间卧室。", + "sceneWord": false, + "match": [ + [ + "there are", + "there is" + ] + ], + "example": { + "en": "There is a big kitchen.", + "zh": "有一个大厨房。" + }, + "review": { + "prompt": "说你家有三间卧室。" + } + }, + { + "id": "A1-U06-W06", + "type": "word", + "en": "kitchen", + "zh": "厨房", + "sceneWord": false, + "match": [ + [ + "kitchen" + ] + ], + "example": { + "en": "The kitchen is small.", + "zh": "厨房很小。" + }, + "review": { + "prompt": "说“厨房”。" + } + }, + { + "id": "A1-U06-W07", + "type": "word", + "en": "big", + "zh": "大的", + "sceneWord": false, + "match": [ + [ + "big" + ] + ], + "example": { + "en": "Our house is very big.", + "zh": "我们的房子很大。" + }, + "review": { + "prompt": "说你家的客厅很大。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U06-R01", + "en": "grandmother", + "zh": "祖母;外祖母" + }, + { + "id": "A1-U06-R02", + "en": "grandfather", + "zh": "祖父;外祖父" + }, + { + "id": "A1-U06-R03", + "en": "aunt", + "zh": "阿姨;姑姑" + }, + { + "id": "A1-U06-R04", + "en": "uncle", + "zh": "叔叔;舅舅" + }, + { + "id": "A1-U06-R05", + "en": "cousin", + "zh": "堂/表兄弟姐妹" + }, + { + "id": "A1-U06-R06", + "en": "baby", + "zh": "婴儿" + }, + { + "id": "A1-U06-R07", + "en": "son", + "zh": "儿子" + }, + { + "id": "A1-U06-R08", + "en": "daughter", + "zh": "女儿" + }, + { + "id": "A1-U06-R09", + "en": "house", + "zh": "房子" + }, + { + "id": "A1-U06-R10", + "en": "bedroom", + "zh": "卧室" + }, + { + "id": "A1-U06-R11", + "en": "bathroom", + "zh": "浴室;卫生间" + }, + { + "id": "A1-U06-R12", + "en": "living room", + "zh": "客厅" + }, + { + "id": "A1-U06-R13", + "en": "window", + "zh": "窗户" + }, + { + "id": "A1-U06-R14", + "en": "door", + "zh": "门" + }, + { + "id": "A1-U06-R15", + "en": "sofa", + "zh": "沙发" + }, + { + "id": "A1-U06-R16", + "en": "new", + "zh": "新的" + }, + { + "id": "A1-U06-R17", + "en": "bed", + "zh": "床" + }, + { + "id": "A1-U06-R18", + "en": "floor", + "zh": "楼层;地板" + }, + { + "id": "A1-U06-R19", + "en": "neighbor", + "zh": "邻居" + }, + { + "id": "A1-U06-R20", + "en": "pet", + "zh": "宠物" + }, + { + "id": "A1-U06-R21", + "en": "dog", + "zh": "狗" + }, + { + "id": "A1-U06-R22", + "en": "cat", + "zh": "猫" + }, + { + "id": "A1-U06-R23", + "en": "old", + "zh": "老的;旧的" + }, + { + "id": "A1-U06-R24", + "en": "young", + "zh": "年轻的;年幼的" + }, + { + "id": "A1-U06-R25", + "en": "little", + "zh": "小的" + }, + { + "id": "A1-U06-R26", + "en": "job", + "zh": "工作" + }, + { + "id": "A1-U06-R27", + "en": "work", + "zh": "工作;上班" + }, + { + "id": "A1-U06-R28", + "en": "doctor", + "zh": "医生" + }, + { + "id": "A1-U06-R29", + "en": "teacher", + "zh": "老师" + }, + { + "id": "A1-U06-R30", + "en": "student", + "zh": "学生" + }, + { + "id": "A1-U06-R31", + "en": "hometown", + "zh": "家乡" + }, + { + "id": "A1-U06-R32", + "en": "quiet", + "zh": "安静的" + }, + { + "id": "A1-U06-R33", + "en": "TV", + "zh": "电视" + }, + { + "id": "A1-U06-R34", + "en": "home", + "zh": "家" + }, + { + "id": "A1-U06-R35", + "en": "married", + "zh": "已婚的" + } + ], + "segments": [ + { + "id": "A1-U06-S1", + "title": "介绍家人", + "minutes": 13, + "itemIds": [ + "A1-U06-P01", + "A1-U06-W01", + "A1-U06-P02", + "A1-U06-W02", + "A1-U06-W03", + "A1-U06-W04" + ], + "listening": { + "text": "This is my family. These are my parents. This is my wife, Anna, and these are our children, Ben and Lily. Ben is eight. Lily is a baby.", + "question": "Ben 几岁?", + "options": [ + "八岁", + "六岁", + "三岁" + ] + }, + "speaking": [ + { + "text": "This is my family." + }, + { + "text": "These are my parents." + }, + { + "text": "This is my husband, David." + }, + { + "text": "This is my son, and this is my daughter." + }, + { + "text": "My wife and I have two children.", + "tip": "children 的 ch 读 /tʃ/,结尾是 /ən/" + }, + { + "text": "Do you have any brothers or sisters?", + "tip": "brothers or sisters 连读,or 很轻" + } + ], + "reading": { + "text": "Hi, I'm Tom. This is my family.\nMy grandfather and grandmother are on the left. My grandfather is 80. He's very old.\nMy parents are next to them.\nMy aunt and uncle are on the right. Their son, my cousin Leo, is only two.\nI don't have any brothers or sisters.", + "question": "Tom 有兄弟姐妹吗?", + "options": [ + "没有", + "有一个哥哥", + "有一个妹妹" + ] + }, + "writing": { + "prompt": "写两句话:介绍你的父母,再问对方有没有兄弟姐妹。", + "example": "These are my parents. Do you have any brothers or sisters?", + "itemIds": [ + "A1-U06-W01", + "A1-U06-P02" + ] + }, + "independent": { + "prompt": "拿出手机里一张家人的照片,用英语一个一个介绍。", + "itemIds": [ + "A1-U06-P01", + "A1-U06-W01", + "A1-U06-W04" + ] + } + }, + { + "id": "A1-U06-S2", + "title": "做什么工作、住在哪里", + "minutes": 12, + "itemIds": [ + "A1-U06-P03", + "A1-U06-P04", + "A1-U06-P05" + ], + "listening": { + "text": "Are you married? Yes. What does your wife do? She's a doctor. And you? I'm a teacher. We live in Shanghai with our two children.", + "question": "说话人做什么工作?", + "options": [ + "老师", + "医生", + "学生" + ] + }, + "speaking": [ + { + "text": "What does he do?", + "tip": "does he 连读,he 的 h 可以很弱" + }, + { + "text": "She's a teacher." + }, + { + "text": "I live in Beijing." + }, + { + "text": "I live with my parents." + } + ], + "reading": { + "text": "Nina: Where do you live, Sam?\nSam: I live in London, but my hometown is Sydney.\nNina: Do you live with your family?\nSam: No. My parents live in Sydney. I live with a friend. He's a student.\nNina: What's your job?\nSam: I work in a hospital. I'm a doctor.", + "question": "Sam 和谁住在一起?", + "options": [ + "with a friend", + "with his parents", + "in Sydney" + ] + }, + "writing": { + "prompt": "写两句话:说你住在哪个城市、和谁住。", + "example": "I live in Shanghai. I live with my wife and children.", + "itemIds": [ + "A1-U06-P04", + "A1-U06-P05" + ] + }, + "independent": { + "prompt": "用英语说说你家里的一个人:他或她做什么工作、住在哪里。", + "itemIds": [ + "A1-U06-P03", + "A1-U06-P04" + ] + } + }, + { + "id": "A1-U06-S3", + "title": "我住的地方", + "minutes": 12, + "itemIds": [ + "A1-U06-W05", + "A1-U06-P06", + "A1-U06-W06", + "A1-U06-W07" + ], + "listening": { + "text": "Is your flat big? No, it's small. It's on the second floor. There are two bedrooms, a kitchen, a bathroom and a small living room. It's quiet, and my neighbors are very nice.", + "question": "这套公寓有几间卧室?", + "options": [ + "两间", + "三间", + "一间" + ] + }, + "speaking": [ + { + "text": "I live in a small flat." + }, + { + "text": "There are two bedrooms.", + "tip": "There are 连读成 /ðeərə/" + }, + { + "text": "The kitchen is very big." + }, + { + "text": "Is your house big?" + } + ], + "reading": { + "text": "Big family house\nThere are three bedrooms with big beds, and two bathrooms.\nThe kitchen is big. There is a sofa and a TV in the living room.\nThere is a small garden. Pets are OK: dogs and cats.\nIt's near a park and the subway.", + "question": "关于宠物,这里怎么说?", + "options": [ + "允许养宠物", + "禁止养宠物", + "没有提到宠物" + ] + }, + "writing": { + "prompt": "写两句话:说你住在一个小公寓里,里面有两间卧室。", + "example": "I live in a small flat. There are two bedrooms.", + "itemIds": [ + "A1-U06-W05", + "A1-U06-P06" + ] + }, + "independent": { + "prompt": "用英语介绍你现在住的地方:大不大、有几间卧室、厨房怎么样。", + "itemIds": [ + "A1-U06-W05", + "A1-U06-P06", + "A1-U06-W06", + "A1-U06-W07" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U06-C1", + "kind": "main", + "title": "和旅途中认识的朋友聊家人", + "learnerRole": "你", + "aiRole": "刚认识的朋友", + "setting": "你在火车上和刚认识的朋友聊天,对方拿出手机给你看家人的照片。", + "turns": [ + { + "ai": "Look, this is my family. These are my parents, and this is my little sister. And this is our dog.", + "goal": "也介绍你的家人", + "model": "This is my family. This is my wife, and these are our children.", + "zh": "这是我的家人。这是我妻子,这是我们的孩子。", + "itemIds": [ + "A1-U06-P01", + "A1-U06-W03", + "A1-U06-W04" + ] + }, + { + "ai": "Your children are so young! What does your wife do?", + "goal": "说妻子的工作,再问对方的妹妹做什么", + "model": "She's a doctor. What does your sister do?", + "zh": "她是医生。你妹妹是做什么的?", + "itemIds": [ + "A1-U06-P03" + ] + }, + { + "ai": "She's a student. Do you have any brothers or sisters?", + "goal": "说你有一个哥哥,他和父母住在一起", + "model": "Yes, a brother. He lives with my parents.", + "zh": "有,一个哥哥。他和我父母住在一起。", + "itemIds": [ + "A1-U06-P05" + ] + }, + { + "ai": "Where do you live?", + "goal": "说你住在上海,家里是个大公寓", + "model": "I live in Shanghai. We have a big flat.", + "zh": "我住在上海。我们有一个大公寓。", + "itemIds": [ + "A1-U06-P04", + "A1-U06-W05", + "A1-U06-W07" + ] + }, + { + "ai": "Nice. Is it quiet?", + "goal": "说很安静,有三间卧室,厨房很大", + "model": "Yes, it's quiet. There are three bedrooms, and the kitchen is big.", + "zh": "是的,很安静。有三间卧室,厨房很大。", + "itemIds": [ + "A1-U06-P06", + "A1-U06-W06", + "A1-U06-W07" + ] + } + ] + }, + { + "id": "A1-U06-C2", + "kind": "variant", + "title": "和民宿主人聊天", + "learnerRole": "住客", + "aiRole": "民宿主人", + "setting": "你带家人住进一家小民宿,主人很爱聊天。", + "turns": [ + { + "ai": "Welcome! Are you here with your family?", + "goal": "说和丈夫、孩子一起来的", + "model": "Yes, I'm here with my husband and children.", + "zh": "是的,我和丈夫、孩子一起来的。", + "itemIds": [ + "A1-U06-W02", + "A1-U06-W04" + ] + }, + { + "ai": "How nice. I live here with my parents and my grandmother.", + "goal": "问主人有没有兄弟姐妹", + "model": "Do you have any brothers or sisters?", + "zh": "你有兄弟姐妹吗?", + "itemIds": [ + "A1-U06-P02" + ] + }, + { + "ai": "Yes, a brother. He lives in Tokyo. He's a doctor. And your husband?", + "goal": "说丈夫是老师", + "model": "He's a teacher.", + "zh": "他是老师。", + "itemIds": [] + }, + { + "ai": "Where do you live?", + "goal": "说你们住在北京,和父母住在一起", + "model": "We live in Beijing, with my parents.", + "zh": "我们住在北京,和我父母一起。", + "itemIds": [ + "A1-U06-P04", + "A1-U06-W01" + ] + }, + { + "ai": "Is your home big?", + "goal": "说是个小公寓,有两间卧室", + "model": "No, it's a small flat. There are two bedrooms.", + "zh": "不大,是个小公寓,有两间卧室。", + "itemIds": [ + "A1-U06-W05", + "A1-U06-P06" + ] + } + ] + }, + { + "id": "A1-U06-C3", + "kind": "variant", + "title": "视频通话看新家", + "learnerRole": "你", + "aiRole": "老朋友", + "setting": "你刚搬进新家,和老朋友视频通话,带对方看房子。", + "turns": [ + { + "ai": "Hi! Is this your new home?", + "goal": "说是新公寓,不大但很安静", + "model": "Yes, this is my new flat. It's not big, but it's quiet.", + "zh": "是的,这是我的新公寓。不大,但很安静。", + "itemIds": [ + "A1-U06-W05", + "A1-U06-W07" + ] + }, + { + "ai": "Show me the kitchen!", + "goal": "说厨房很小,但有一扇大窗户和一扇新门", + "model": "Here is the kitchen. It's small, but it has a big window and a new door.", + "zh": "这是厨房。很小,但有一扇大窗户和一扇新门。", + "itemIds": [ + "A1-U06-W06", + "A1-U06-W07" + ] + }, + { + "ai": "Nice! Do you live with your family?", + "goal": "说和妻子住,父母住在家乡", + "model": "No, I live with my wife. My parents live in my hometown.", + "zh": "不,我和妻子住。我父母住在我的家乡。", + "itemIds": [ + "A1-U06-P05", + "A1-U06-W03", + "A1-U06-W01" + ] + }, + { + "ai": "How are your parents?", + "goal": "说他们很好,再问对方的哥哥现在做什么", + "model": "They're fine. What does your brother do now?", + "zh": "他们很好。你哥哥现在做什么工作?", + "itemIds": [ + "A1-U06-P03" + ] + }, + { + "ai": "He's a student. He lives with our aunt and uncle in London.", + "goal": "回应一句", + "model": "That's great.", + "zh": "那太好了。", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U06-T1", + "sceneId": "A1-U06-C1", + "goal": "看照片介绍家人,互相问工作、兄弟姐妹、住在哪里和房子", + "itemIds": [ + "A1-U06-P01", + "A1-U06-W03", + "A1-U06-W04", + "A1-U06-P03", + "A1-U06-P05", + "A1-U06-P04", + "A1-U06-W05", + "A1-U06-W07", + "A1-U06-P06", + "A1-U06-W06" + ], + "slots": [ + "家人", + "工作", + "住处" + ] + }, + { + "id": "A1-U06-T2", + "sceneId": "A1-U06-C2", + "goal": "回答民宿主人关于家人和住处的问题,并反问一句", + "itemIds": [ + "A1-U06-W02", + "A1-U06-W04", + "A1-U06-P02", + "A1-U06-P04", + "A1-U06-W01", + "A1-U06-W05", + "A1-U06-P06" + ], + "slots": [ + "同行的人", + "兄弟姐妹", + "住处" + ] + }, + { + "id": "A1-U06-T3", + "sceneId": "A1-U06-C3", + "goal": "带朋友看新家,说房子情况和与谁同住", + "itemIds": [ + "A1-U06-W05", + "A1-U06-W07", + "A1-U06-W06", + "A1-U06-P05", + "A1-U06-W03", + "A1-U06-W01", + "A1-U06-P03" + ], + "slots": [ + "房间", + "同住的人" + ] + } + ], + "materials": [ + { + "id": "A1-U06-M1", + "mode": "listening", + "title": "朋友介绍全家照", + "text": "Look, this is a photo of my family at our new house. These are my parents. My father is a doctor, and my mother is a teacher. This is my little sister; she is a student. Here are my grandmother and grandfather. My uncle, my aunt and my cousin live near us too. I have one brother. He is married and lives with his wife and their baby son and daughter. Our house has three bedrooms, a big living room with a sofa and a TV, a kitchen and two bathrooms. It's quiet, and our neighbor is very kind. I love my home!", + "glosses": { + "love": "很喜欢,爱", + "photo": "照片", + "kind": "善良的" + }, + "questions": [ + { + "type": "gist", + "question": "这段话主要在做什么?", + "options": [ + "介绍自己的家人和家", + "说怎么去上海", + "问房子多少钱" + ] + }, + { + "type": "detail", + "question": "说话人的爸爸做什么工作?", + "options": [ + "医生", + "老师", + "学生" + ] + } + ] + }, + { + "id": "A1-U06-M2", + "mode": "reading", + "title": "读一段对话:聊各自的家", + "text": "New friend: Do you have any brothers or sisters?\nYou: Yes, one brother. He lives with our grandmother and our parents.\nNew friend: Where do you live?\nYou: In a small flat in the city. There are two bedrooms, a living room and a little kitchen.\nNew friend: Is it new?\nYou: No, it's old, but I love it. There is a big window in my bedroom. Do you have a pet?\nYou: Yes, a dog and a cat. What about you?\nNew friend: I live with my husband and our young daughter. Our house is near the park.\nNew friend: What does your uncle do?\nYou: He has a new job. He works in a hospital. My aunt is a teacher.\nNew friend: That's nice.", + "glosses": { + "love": "很喜欢,爱", + "week": "周,星期" + }, + "questions": [ + { + "type": "detail", + "question": "“你”养了什么宠物?", + "options": [ + "一只狗和一只猫", + "一只鸟", + "没有宠物" + ] + }, + { + "type": "detail", + "question": "新朋友和谁住在一起?", + "options": [ + "丈夫和小女儿", + "父母", + "一个人住" + ] + } + ] + } + ], + "excluded": [ + { + "en": "apartment", + "reason": "A2;美式说法先在 match 里接受,A2 再正式教" + }, + { + "en": "rent / landlord", + "reason": "A2–B1;租房放到 B1 的租住单元" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U07.json b/kouyu_english/assets/courses/A1/A1-U07.json new file mode 100644 index 0000000..00110f3 --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U07.json @@ -0,0 +1,929 @@ +{ + "schemaVersion": 1, + "id": "A1-U07", + "revision": 1, + "level": "A1", + "title": "公交与地铁", + "categories": [ + "旅行" + ], + "canDo": "买票、问站点、确认下车", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "245", + "use": "active" + }, + { + "id": "246", + "use": "active" + }, + { + "id": "59-2", + "use": "active" + }, + { + "id": "60", + "use": "active" + }, + { + "id": "101", + "use": "active" + }, + { + "id": "117", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "A1-U07-P01", + "type": "phrase", + "en": "A ticket to the airport, please.", + "zh": "一张去机场的票。", + "sceneWord": false, + "match": [ + [ + "ticket to" + ] + ], + "example": { + "en": "A ticket to the museum, please.", + "zh": "一张去博物馆的票。" + }, + "review": { + "prompt": "在售票处买一张去机场的票。" + } + }, + { + "id": "A1-U07-P02", + "type": "phrase", + "en": "Which bus goes to the museum?", + "zh": "哪路车去博物馆?", + "sceneWord": false, + "match": [ + [ + "which bus", + "which line", + "which train" + ] + ], + "example": { + "en": "Which train goes to the airport?", + "zh": "哪趟车去机场?" + }, + "review": { + "prompt": "问哪路公交车去火车站。" + } + }, + { + "id": "A1-U07-P03", + "type": "phrase", + "en": "Does this bus go to the station?", + "zh": "这辆车去车站吗?", + "sceneWord": false, + "match": [ + [ + "does this bus go to", + "does this train go to" + ] + ], + "example": { + "en": "Does this train go to the airport?", + "zh": "这趟车去机场吗?" + }, + "review": { + "prompt": "上车前问司机这辆车去不去博物馆。" + } + }, + { + "id": "A1-U07-W01", + "type": "word", + "en": "line", + "zh": "(地铁)线路", + "sceneWord": false, + "match": [ + [ + "line" + ] + ], + "example": { + "en": "Take Line 2.", + "zh": "坐 2 号线。" + }, + "review": { + "prompt": "说“坐 3 号线”。" + } + }, + { + "id": "A1-U07-P04", + "type": "phrase", + "en": "Where do I change?", + "zh": "我在哪里换乘?", + "sceneWord": false, + "match": [ + [ + "where do i change", + "change at", + "change to" + ] + ], + "example": { + "en": "Change to Line 5 at City Park.", + "zh": "在城市公园站换乘 5 号线。" + }, + "review": { + "prompt": "问在哪一站换乘。" + } + }, + { + "id": "A1-U07-P05", + "type": "phrase", + "en": "How many stops?", + "zh": "坐几站?", + "sceneWord": false, + "match": [ + [ + "how many stops" + ] + ], + "example": { + "en": "How many stops to the zoo?", + "zh": "到动物园坐几站?" + }, + "review": { + "prompt": "问到博物馆要坐几站。" + } + }, + { + "id": "A1-U07-P06", + "type": "phrase", + "en": "Where do I get off?", + "zh": "我在哪里下车?", + "sceneWord": false, + "match": [ + [ + "get off" + ] + ], + "example": { + "en": "Get off at the next stop.", + "zh": "在下一站下车。" + }, + "review": { + "prompt": "问去医院应该在哪里下车。" + } + }, + { + "id": "A1-U07-P07", + "type": "phrase", + "en": "Is this my stop?", + "zh": "这是我要下的站吗?", + "sceneWord": false, + "match": [ + [ + "my stop" + ] + ], + "example": { + "en": "Excuse me, is this my stop?", + "zh": "打扰一下,这是我要下的站吗?" + }, + "review": { + "prompt": "车停了,问旁边的人是不是你要下的站。" + } + }, + { + "id": "A1-U07-P08", + "type": "phrase", + "en": "When is the last train?", + "zh": "末班车是几点?", + "sceneWord": true, + "sceneReason": "last 作限定词在 CEFR-J 为 A2,但晚上出行必须会问末班车", + "match": [ + [ + "last train", + "last bus", + "next train", + "next bus" + ] + ], + "example": { + "en": "When is the next bus?", + "zh": "下一班公交车是几点?" + }, + "review": { + "prompt": "晚上问末班地铁几点。" + } + }, + { + "id": "A1-U07-P09", + "type": "phrase", + "en": "It comes every ten minutes.", + "zh": "每十分钟一班。", + "sceneWord": false, + "match": [ + [ + "every" + ] + ], + "example": { + "en": "The train comes every five minutes.", + "zh": "火车每五分钟一班。" + }, + "review": { + "prompt": "说公交车每十五分钟一班。" + } + }, + { + "id": "A1-U07-P10", + "type": "phrase", + "en": "Is this seat free?", + "zh": "这个座位有人吗?", + "sceneWord": false, + "match": [ + [ + "seat free" + ] + ], + "example": { + "en": "Excuse me, is this seat free?", + "zh": "打扰一下,这个座位有人吗?" + }, + "review": { + "prompt": "在车上问旁边的座位有没有人。" + } + }, + { + "id": "A1-U07-W02", + "type": "word", + "en": "platform", + "zh": "站台", + "sceneWord": true, + "sceneReason": "platform 在 CEFR-J 为 B1,但坐火车找站台离不开这个词", + "match": [ + [ + "platform" + ] + ], + "example": { + "en": "The train is on Platform 4.", + "zh": "火车在 4 号站台。" + }, + "review": { + "prompt": "问火车在几号站台。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U07-R01", + "en": "bike", + "zh": "自行车" + }, + { + "id": "A1-U07-R02", + "en": "bicycle", + "zh": "自行车" + }, + { + "id": "A1-U07-R03", + "en": "boat", + "zh": "小船" + }, + { + "id": "A1-U07-R04", + "en": "ship", + "zh": "船" + }, + { + "id": "A1-U07-R05", + "en": "trip", + "zh": "旅程" + }, + { + "id": "A1-U07-R06", + "en": "travel", + "zh": "出行;旅行" + }, + { + "id": "A1-U07-R07", + "en": "arrive", + "zh": "到达" + }, + { + "id": "A1-U07-R08", + "en": "early", + "zh": "早" + }, + { + "id": "A1-U07-R09", + "en": "late", + "zh": "晚;迟到" + }, + { + "id": "A1-U07-R10", + "en": "hour", + "zh": "小时" + }, + { + "id": "A1-U07-R11", + "en": "half", + "zh": "一半" + }, + { + "id": "A1-U07-R12", + "en": "quarter", + "zh": "一刻钟;四分之一" + }, + { + "id": "A1-U07-R13", + "en": "often", + "zh": "经常" + }, + { + "id": "A1-U07-R14", + "en": "ride", + "zh": "乘坐;骑" + }, + { + "id": "A1-U07-R15", + "en": "fast", + "zh": "快的" + }, + { + "id": "A1-U07-R16", + "en": "slow", + "zh": "慢的" + }, + { + "id": "A1-U07-R17", + "en": "driver", + "zh": "司机" + }, + { + "id": "A1-U07-R18", + "en": "passenger", + "zh": "乘客" + }, + { + "id": "A1-U07-R19", + "en": "tram", + "zh": "有轨电车" + }, + { + "id": "A1-U07-R20", + "en": "fare", + "zh": "车费" + }, + { + "id": "A1-U07-R21", + "en": "side", + "zh": "边" + }, + { + "id": "A1-U07-R22", + "en": "miss", + "zh": "错过" + }, + { + "id": "A1-U07-R23", + "en": "catch", + "zh": "赶上" + }, + { + "id": "A1-U07-R24", + "en": "road", + "zh": "路" + }, + { + "id": "A1-U07-R25", + "en": "direction", + "zh": "方向" + }, + { + "id": "A1-U07-R26", + "en": "single", + "zh": "单程的" + }, + { + "id": "A1-U07-R27", + "en": "return", + "zh": "往返的" + }, + { + "id": "A1-U07-R28", + "en": "car", + "zh": "汽车" + }, + { + "id": "A1-U07-R29", + "en": "zoo", + "zh": "动物园" + } + ], + "segments": [ + { + "id": "A1-U07-S1", + "title": "买票、问坐哪路车", + "minutes": 13, + "itemIds": [ + "A1-U07-P01", + "A1-U07-P02", + "A1-U07-P03", + "A1-U07-W01" + ], + "listening": { + "text": "Excuse me. Which bus goes to the museum? Bus 15. Does this bus go to the museum? No, it doesn't. Take the other bus, on the other side of the street.", + "question": "去博物馆应该怎么做?", + "options": [ + "到街对面坐车", + "就坐这辆车", + "改坐地铁" + ] + }, + "speaking": [ + { + "text": "A ticket to the airport, please." + }, + { + "text": "A single ticket, please." + }, + { + "text": "Which bus goes to the station?" + }, + { + "text": "Does this bus go to the museum?", + "tip": "Does this 连读,重音在 museum" + }, + { + "text": "Take Line 2." + } + ], + "reading": { + "text": "Travel in the city\nSubway: fast. Trains come every five minutes.\nBus: slow, but cheap. Pay the driver. The fare is $2.\nTram: Line 7 goes to the river.\nBoat: a small ship on the river, every hour.\nBike: you can ride a bicycle in the park.\nCar: not easy, and very expensive.", + "question": "哪种交通方式要把车费付给司机?", + "options": [ + "bus", + "tram", + "boat" + ] + }, + "writing": { + "prompt": "写两句话:买一张去机场的票,再问哪路车去机场。", + "example": "A ticket to the airport, please. Which bus goes to the airport?", + "itemIds": [ + "A1-U07-P01", + "A1-U07-P02" + ] + }, + "independent": { + "prompt": "想一个你常去的地方,用英语问哪路车去那里、这辆车去不去。", + "itemIds": [ + "A1-U07-P02", + "A1-U07-P03" + ] + } + }, + { + "id": "A1-U07-S2", + "title": "换乘、坐几站、几号站台", + "minutes": 13, + "itemIds": [ + "A1-U07-P04", + "A1-U07-P05", + "A1-U07-P09", + "A1-U07-W02" + ], + "listening": { + "text": "Excuse me. How do I get to the zoo? Take Line 2. Change to Line 5 at City Park. How many stops? Five stops. Trains come every four minutes.", + "question": "在哪一站换乘?", + "options": [ + "城市公园站", + "动物园站", + "第五站" + ] + }, + "speaking": [ + { + "text": "Where do I change?" + }, + { + "text": "How many stops?" + }, + { + "text": "Change to Line 3." + }, + { + "text": "The train comes every five minutes.", + "tip": "every 读两个音节 /ˈevri/" + }, + { + "text": "Which platform?", + "tip": "platform 重音在前" + } + ], + "reading": { + "text": "Lily: Which train goes to the airport?\nMark: The airport train. It's on Platform 4.\nLily: How often does it come?\nMark: Every fifteen minutes. It's fast. It takes half an hour.\nLily: Do I change?\nMark: No, you don't. It goes to the airport.", + "question": "坐火车到机场要多久?", + "options": [ + "half an hour", + "fifteen minutes", + "four minutes" + ] + }, + "writing": { + "prompt": "写两句话:问在哪里换乘,再问坐几站。", + "example": "Where do I change? How many stops?", + "itemIds": [ + "A1-U07-P04", + "A1-U07-P05" + ] + }, + "independent": { + "prompt": "用英语说说你家附近的一条地铁或公交线路:几号线、多久一班。", + "itemIds": [ + "A1-U07-W01", + "A1-U07-P09" + ] + } + }, + { + "id": "A1-U07-S3", + "title": "找座位、下车、末班车", + "minutes": 12, + "itemIds": [ + "A1-U07-P10", + "A1-U07-P06", + "A1-U07-P07", + "A1-U07-P08" + ], + "listening": { + "text": "Excuse me, is this seat free? Yes, it is. Thanks. Where do I get off for the hospital? Get off at the next stop. Is this my stop? No, it's the next one.", + "question": "去医院在哪里下车?", + "options": [ + "下一站", + "这一站", + "终点站" + ] + }, + "speaking": [ + { + "text": "Is this seat free?" + }, + { + "text": "Where do I get off?", + "tip": "get off 连读成 /ɡe tɒf/" + }, + { + "text": "Is this my stop?" + }, + { + "text": "When is the last train?" + } + ], + "reading": { + "text": "Last trains\nLine 1: 11:30\nLine 2: 11:45\nPlease arrive early. Do not be late!\nPassengers: this train goes in one direction only. After the last train, take a bus.", + "question": "2 号线的末班车是几点?", + "options": [ + "十一点四十五", + "十一点半", + "十二点" + ] + }, + "writing": { + "prompt": "写两句话:问末班车几点,再问在哪里下车。", + "example": "When is the last train? Where do I get off?", + "itemIds": [ + "A1-U07-P08", + "A1-U07-P06" + ] + }, + "independent": { + "prompt": "你坐车去一个没去过的地方,用英语问座位、在哪里下车、是不是这一站。", + "itemIds": [ + "A1-U07-P10", + "A1-U07-P06", + "A1-U07-P07" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U07-C1", + "kind": "main", + "title": "坐地铁去机场", + "learnerRole": "乘客", + "aiRole": "地铁站工作人员", + "setting": "你在地铁站,要坐地铁去机场。", + "turns": [ + { + "ai": "Hello. Can I help you?", + "goal": "买一张去机场的票", + "model": "Yes. A ticket to the airport, please.", + "zh": "是的。一张去机场的票。", + "itemIds": [ + "A1-U07-P01" + ] + }, + { + "ai": "Single or return? A single is three dollars.", + "goal": "付钱,问哪条线去机场", + "model": "Here you are. Which line goes to the airport?", + "zh": "给你。哪条线去机场?", + "itemIds": [ + "A1-U07-P02", + "A1-U07-W01" + ] + }, + { + "ai": "Take Line 3 and change to the airport train.", + "goal": "问在哪里换乘", + "model": "Where do I change?", + "zh": "我在哪里换乘?", + "itemIds": [ + "A1-U07-P04" + ] + }, + { + "ai": "At Bridge Street. Then take the airport train.", + "goal": "问坐几站,是不是每十分钟一班", + "model": "How many stops? Does it come every ten minutes?", + "zh": "坐几站?每十分钟一班吗?", + "itemIds": [ + "A1-U07-P05", + "A1-U07-P09" + ] + }, + { + "ai": "Four stops. It comes every fifteen minutes. The last train leaves at a quarter past eleven.", + "goal": "问在几号站台", + "model": "OK. Which platform is it?", + "zh": "好的。在几号站台?", + "itemIds": [ + "A1-U07-W02" + ] + }, + { + "ai": "Platform 2. Have a good trip!", + "goal": "道谢", + "model": "Thanks!", + "zh": "谢谢!", + "itemIds": [] + } + ] + }, + { + "id": "A1-U07-C2", + "kind": "variant", + "title": "公交车上确认下车", + "learnerRole": "乘客", + "aiRole": "公交车司机", + "setting": "你第一次坐这路公交车去博物馆,担心坐过站。", + "turns": [ + { + "ai": "Hello. Where are you going?", + "goal": "问这辆车去不去博物馆", + "model": "Does this bus go to the museum?", + "zh": "这辆车去博物馆吗?", + "itemIds": [ + "A1-U07-P03" + ] + }, + { + "ai": "Yes, it does. Two dollars, please.", + "goal": "付钱,问坐几站", + "model": "Here you are. How many stops?", + "zh": "给你。坐几站?", + "itemIds": [ + "A1-U07-P05" + ] + }, + { + "ai": "Seven stops.", + "goal": "问去博物馆在哪里下车", + "model": "Where do I get off for the museum?", + "zh": "去博物馆在哪里下车?", + "itemIds": [ + "A1-U07-P06" + ] + }, + { + "ai": "Get off at Park Road. It's after the bridge. The bus is slow today, sorry.", + "goal": "过了一会儿,问是不是这一站", + "model": "Excuse me, is this my stop?", + "zh": "打扰一下,这是我要下的站吗?", + "itemIds": [ + "A1-U07-P07" + ] + }, + { + "ai": "No, the next stop. Don't miss it!", + "goal": "道谢", + "model": "OK, thank you!", + "zh": "好的,谢谢!", + "itemIds": [] + } + ] + }, + { + "id": "A1-U07-C3", + "kind": "variant", + "title": "深夜赶末班车", + "learnerRole": "乘客", + "aiRole": "另一位乘客", + "setting": "深夜你在火车站,担心赶不上回酒店的末班车。", + "turns": [ + { + "ai": "Are you OK? You look lost.", + "goal": "问去城市公园的末班车几点", + "model": "Yes, thanks. When is the last train to City Park?", + "zh": "是的,谢谢。去城市公园的末班车几点?", + "itemIds": [ + "A1-U07-P08" + ] + }, + { + "ai": "It leaves at half past eleven, from Platform 6. You can catch it.", + "goal": "确认站台,问在哪里换乘", + "model": "Platform 6? Where do I change?", + "zh": "6 号站台?我在哪里换乘?", + "itemIds": [ + "A1-U07-W02", + "A1-U07-P04" + ] + }, + { + "ai": "You don't change. It's Line 1. Just ride it for eight stops.", + "goal": "确认线路和站数", + "model": "Line 1, eight stops. Thank you.", + "zh": "1 号线,八站。谢谢。", + "itemIds": [ + "A1-U07-W01" + ] + }, + { + "ai": "Here is the train. Oh, it's very full.", + "goal": "问旁边的人座位有没有人", + "model": "Excuse me, is this seat free?", + "zh": "打扰一下,这个座位有人吗?", + "itemIds": [ + "A1-U07-P10" + ] + }, + { + "ai": "Yes, it is. Where do you get off?", + "goal": "说在城市公园下车,问远不远", + "model": "At City Park. Is it far?", + "zh": "在城市公园。远吗?", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U07-T1", + "sceneId": "A1-U07-C1", + "goal": "买票,问线路、换乘、站数、班次和站台", + "itemIds": [ + "A1-U07-P01", + "A1-U07-P02", + "A1-U07-W01", + "A1-U07-P04", + "A1-U07-P05", + "A1-U07-P09", + "A1-U07-W02" + ], + "slots": [ + "目的地", + "线路", + "换乘站", + "站台" + ] + }, + { + "id": "A1-U07-T2", + "sceneId": "A1-U07-C2", + "goal": "上车确认方向,问坐几站和在哪里下车", + "itemIds": [ + "A1-U07-P03", + "A1-U07-P05", + "A1-U07-P06", + "A1-U07-P07" + ], + "slots": [ + "目的地", + "下车站" + ] + }, + { + "id": "A1-U07-T3", + "sceneId": "A1-U07-C3", + "goal": "深夜问末班车、站台和换乘,上车找座位", + "itemIds": [ + "A1-U07-P08", + "A1-U07-W02", + "A1-U07-P04", + "A1-U07-W01", + "A1-U07-P10" + ], + "slots": [ + "末班车时间", + "站台", + "座位" + ] + } + ], + "materials": [ + { + "id": "A1-U07-M1", + "mode": "listening", + "title": "公交车上的广播", + "text": "Good afternoon, passengers. This is the airport bus. A single ticket is ten dollars; a return ticket is fifteen. The fare is the same all day. The bus comes every fifteen minutes, so you don't need to wait long. Please find a free seat and hold on. We ride fast on the big road, but there is a slow tram on the other side. The next stop is the train station. If you go to the zoo, change here. The last bus tonight is late, at eleven. Don't miss it! Thank you for taking our bus.", + "glosses": { + "tonight": "今晚", + "afternoon": "下午", + "same": "一样的", + "long": "(时间)久", + "hold": "抓牢;hold on 抓稳" + }, + "questions": [ + { + "type": "gist", + "question": "这是什么广播?", + "options": [ + "机场公交车上的广播", + "餐厅的广播", + "商店的广播" + ] + }, + { + "type": "detail", + "question": "这趟车多久来一班?", + "options": [ + "每十五分钟", + "每十分钟", + "每小时" + ] + } + ] + }, + { + "id": "A1-U07-M2", + "mode": "reading", + "title": "读一段对话:坐公交去机场", + "text": "Anna: Excuse me, does this bus go to the station?\nDriver: No, this one goes to the airport. For the station you need the tram on the other side of the road.\nAnna: I don't want to be late. How many stops, and is it fast?\nDriver: Four stops. It's fast, about half an hour. We arrive early today.\nAnna: Good, I don't want to miss my plane. Where do I get off?\nDriver: It's the last stop. Is this seat free?\nAnna: Yes. How much is a single ticket?\nDriver: Ten dollars. A return is fifteen.\nAnna: A single, please. I often travel by bus; it's cheaper than a car or a taxi.\nDriver: Here you are. Have a good trip!\nAnna: Thank you!", + "glosses": { + "tell": "告诉", + "half": "一半;half an hour 半小时", + "than": "比", + "cheaper": "更便宜", + "plane": "飞机", + "taxi": "出租车" + }, + "questions": [ + { + "type": "detail", + "question": "去机场要坐几站?", + "options": [ + "四站", + "五站", + "两站" + ] + }, + { + "type": "detail", + "question": "Anna 在哪一站下车?", + "options": [ + "最后一站", + "第一站", + "火车站" + ] + } + ] + } + ], + "excluded": [ + { + "en": "transfer", + "reason": "B1;A1 用 change 表达换乘" + }, + { + "en": "one-way / round trip", + "reason": "CEFR-J 未收录;A1 用 single / return,应用可提示美式说法" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U08.json b/kouyu_english/assets/courses/A1/A1-U08.json new file mode 100644 index 0000000..9931eec --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U08.json @@ -0,0 +1,923 @@ +{ + "schemaVersion": 1, + "id": "A1-U08", + "revision": 1, + "level": "A1", + "title": "超市与便利店", + "categories": [ + "日常" + ], + "canDo": "找商品、说数量", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "123", + "use": "active" + }, + { + "id": "61", + "use": "active", + "reason": "只用 I'm looking for… 这个固定句块" + }, + { + "id": "15", + "use": "active" + }, + { + "id": "59-2", + "use": "active" + }, + { + "id": "16", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "A1-U08-P01", + "type": "phrase", + "en": "Where can I find the milk?", + "zh": "哪里能找到牛奶?", + "sceneWord": false, + "match": [ + [ + "where can i find" + ] + ], + "example": { + "en": "Excuse me. Where can I find the rice?", + "zh": "打扰一下,哪里能找到大米?" + }, + "review": { + "prompt": "在超市问哪里能找到糖。" + } + }, + { + "id": "A1-U08-P02", + "type": "phrase", + "en": "Do you have any yogurt?", + "zh": "你们有酸奶吗?", + "sceneWord": false, + "match": [ + [ + "do you have" + ] + ], + "example": { + "en": "Do you have any fresh bread?", + "zh": "你们有新鲜面包吗?" + }, + "review": { + "prompt": "问店员有没有冰块。" + } + }, + { + "id": "A1-U08-W01", + "type": "word", + "en": "aisle", + "zh": "(超市的)通道", + "sceneWord": true, + "sceneReason": "aisle 在 CEFR-J 为 A2,但在超市找东西时店员几乎都会这样指路", + "match": [ + [ + "aisle" + ] + ], + "example": { + "en": "The rice is in aisle 4.", + "zh": "大米在 4 号通道。" + }, + "review": { + "prompt": "说“在 3 号通道”。" + } + }, + { + "id": "A1-U08-P03", + "type": "phrase", + "en": "It's on the top shelf.", + "zh": "在最上层的架子上。", + "sceneWord": false, + "match": [ + [ + "top shelf", + "bottom shelf" + ] + ], + "example": { + "en": "The sugar is on the bottom shelf.", + "zh": "糖在最下层的架子上。" + }, + "review": { + "prompt": "告诉朋友牛奶在最下层。" + } + }, + { + "id": "A1-U08-P04", + "type": "phrase", + "en": "a bottle of water", + "zh": "一瓶水", + "sceneWord": false, + "match": [ + [ + "a bottle of", + "bottles of", + "a box of", + "a bag of", + "a piece of" + ] + ], + "example": { + "en": "Two bottles of water, please.", + "zh": "请给我两瓶水。" + }, + "review": { + "prompt": "说要一盒鸡蛋。" + } + }, + { + "id": "A1-U08-P05", + "type": "phrase", + "en": "a kilo of apples", + "zh": "一公斤苹果", + "sceneWord": true, + "sceneReason": "kilo 在 CEFR-J 为 A2,但在市场买水果、蔬菜时按公斤说数量", + "match": [ + [ + "kilo", + "kilos" + ] + ], + "example": { + "en": "Half a kilo of grapes, please.", + "zh": "请给我半公斤葡萄。" + }, + "review": { + "prompt": "在水果摊说要两公斤苹果。" + } + }, + { + "id": "A1-U08-P06", + "type": "phrase", + "en": "I need two bags.", + "zh": "我需要两个袋子。", + "sceneWord": false, + "match": [ + [ + "i need", + "we need" + ] + ], + "example": { + "en": "I need a box of eggs.", + "zh": "我需要一盒鸡蛋。" + }, + "review": { + "prompt": "说你需要一个袋子。" + } + }, + { + "id": "A1-U08-W02", + "type": "word", + "en": "bag", + "zh": "袋子", + "sceneWord": false, + "match": [ + [ + "bag", + "bags" + ] + ], + "example": { + "en": "Do you need a bag?", + "zh": "你需要袋子吗?" + }, + "review": { + "prompt": "结账时说你要一个袋子。" + } + }, + { + "id": "A1-U08-W03", + "type": "word", + "en": "fresh", + "zh": "新鲜的", + "sceneWord": true, + "sceneReason": "fresh 在 CEFR-J 为 A2,但买水果、面包时常要问", + "match": [ + [ + "fresh" + ] + ], + "example": { + "en": "Is the fish fresh?", + "zh": "这鱼新鲜吗?" + }, + "review": { + "prompt": "问这些水果新不新鲜。" + } + }, + { + "id": "A1-U08-P07", + "type": "phrase", + "en": "Where do I pay?", + "zh": "在哪里付钱?", + "sceneWord": false, + "match": [ + [ + "where do i pay", + "where can i pay" + ] + ], + "example": { + "en": "Excuse me. Where do I pay?", + "zh": "打扰一下,在哪里付钱?" + }, + "review": { + "prompt": "拿好东西后问在哪里付钱。" + } + }, + { + "id": "A1-U08-P08", + "type": "phrase", + "en": "What time do you close?", + "zh": "你们几点关门?", + "sceneWord": false, + "match": [ + [ + "what time do you close", + "what time do you open" + ] + ], + "example": { + "en": "What time do you open?", + "zh": "你们几点开门?" + }, + "review": { + "prompt": "问便利店几点开门。" + } + }, + { + "id": "A1-U08-P09", + "type": "phrase", + "en": "I'm looking for eggs.", + "zh": "我在找电池。", + "sceneWord": false, + "match": [ + [ + "looking for" + ] + ], + "example": { + "en": "I'm looking for the bread.", + "zh": "我在找面包。" + }, + "review": { + "prompt": "告诉店员你在找牛奶。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U08-R01", + "en": "box", + "zh": "盒子;箱子" + }, + { + "id": "A1-U08-R02", + "en": "piece", + "zh": "一块;一片" + }, + { + "id": "A1-U08-R03", + "en": "list", + "zh": "清单" + }, + { + "id": "A1-U08-R04", + "en": "pick", + "zh": "挑选" + }, + { + "id": "A1-U08-R05", + "en": "put", + "zh": "放" + }, + { + "id": "A1-U08-R06", + "en": "carry", + "zh": "拿;提" + }, + { + "id": "A1-U08-R07", + "en": "heavy", + "zh": "重的" + }, + { + "id": "A1-U08-R08", + "en": "store", + "zh": "商店" + }, + { + "id": "A1-U08-R09", + "en": "candy", + "zh": "糖果" + }, + { + "id": "A1-U08-R10", + "en": "biscuit", + "zh": "饼干" + }, + { + "id": "A1-U08-R11", + "en": "grape", + "zh": "葡萄" + }, + { + "id": "A1-U08-R12", + "en": "corn", + "zh": "玉米" + }, + { + "id": "A1-U08-R13", + "en": "bean", + "zh": "豆子" + }, + { + "id": "A1-U08-R14", + "en": "basket", + "zh": "篮子" + }, + { + "id": "A1-U08-R15", + "en": "item", + "zh": "物品;件" + }, + { + "id": "A1-U08-R16", + "en": "sell", + "zh": "卖" + }, + { + "id": "A1-U08-R17", + "en": "open", + "zh": "开着的;营业" + }, + { + "id": "A1-U08-R18", + "en": "closed", + "zh": "关着的;停止营业" + }, + { + "id": "A1-U08-R19", + "en": "bottom", + "zh": "底部" + }, + { + "id": "A1-U08-R20", + "en": "year", + "zh": "年" + }, + { + "id": "A1-U08-R21", + "en": "night", + "zh": "夜晚" + }, + { + "id": "A1-U08-R22", + "en": "snack", + "zh": "零食" + }, + { + "id": "A1-U08-R23", + "en": "soap", + "zh": "肥皂" + }, + { + "id": "A1-U08-R24", + "en": "salt", + "zh": "盐" + }, + { + "id": "A1-U08-R25", + "en": "battery", + "zh": "电池" + }, + { + "id": "A1-U08-R26", + "en": "empty", + "zh": "空的" + }, + { + "id": "A1-U08-R27", + "en": "keep", + "zh": "保留" + }, + { + "id": "A1-U08-R28", + "en": "plastic", + "zh": "塑料的" + }, + { + "id": "A1-U08-R29", + "en": "whole", + "zh": "整个的" + } + ], + "segments": [ + { + "id": "A1-U08-S1", + "title": "找东西", + "minutes": 13, + "itemIds": [ + "A1-U08-P01", + "A1-U08-P02", + "A1-U08-W01", + "A1-U08-P03", + "A1-U08-P09" + ], + "listening": { + "text": "Excuse me. Where can I find the sugar? It's in aisle 4, on the bottom shelf. And do you have any candy? Yes, in aisle 7.", + "question": "糖在哪里?", + "options": [ + "4 号通道最下层", + "7 号通道最下层", + "4 号通道最上层" + ] + }, + "speaking": [ + { + "text": "Excuse me. Where can I find the milk?" + }, + { + "text": "I'm looking for the bread.", + "tip": "looking for 连读,for 很轻" + }, + { + "text": "Do you have any yogurt?" + }, + { + "text": "It's in aisle 3.", + "tip": "aisle 里的 s 不发音,读作 /aɪl/" + }, + { + "text": "It's on the top shelf." + } + ], + "reading": { + "text": "Welcome to City Store\nAisle 1: fruit and vegetables\nAisle 2: bread and cake\nAisle 3: milk, cheese, yogurt and cream\nAisle 4: rice, beans, corn, sugar and salt\nAisle 5: candy, biscuits and snacks\nAisle 6: soap and batteries\nIce is in the box next to the door.", + "question": "酸奶在哪个通道?", + "options": [ + "aisle 3", + "aisle 5", + "aisle 6" + ] + }, + "writing": { + "prompt": "写两句话:问哪里能找到牛奶,再问有没有酸奶。", + "example": "Where can I find the milk? Do you have any yogurt?", + "itemIds": [ + "A1-U08-P01", + "A1-U08-P02" + ] + }, + "independent": { + "prompt": "想想你家附近的超市,用英语问三样东西在哪里。", + "itemIds": [ + "A1-U08-P01", + "A1-U08-P09", + "A1-U08-W01" + ] + } + }, + { + "id": "A1-U08-S2", + "title": "说数量", + "minutes": 13, + "itemIds": [ + "A1-U08-P04", + "A1-U08-P05", + "A1-U08-P06", + "A1-U08-W02", + "A1-U08-W03" + ], + "listening": { + "text": "Can I have a kilo of apples, please? Sure. Anything else? Yes, two bottles of water. Do you need a bag? Yes, please. I need two bags. They're heavy.", + "question": "顾客买了几瓶水?", + "options": [ + "两瓶", + "一瓶", + "三瓶" + ] + }, + "speaking": [ + { + "text": "a bottle of water" + }, + { + "text": "a box of eggs" + }, + { + "text": "a kilo of apples", + "tip": "kilo 读作 /ˈkiːləʊ/" + }, + { + "text": "Half a kilo, please." + }, + { + "text": "I need two bags." + }, + { + "text": "Is the bread fresh?" + } + ], + "reading": { + "text": "Shopping list\n- a kilo of apples\n- half a kilo of grapes\n- a box of eggs\n- two bottles of water\n- a piece of cheese\n- a whole chicken\nMia: Please keep the list, and don't buy candy!", + "question": "清单上要买多少葡萄?", + "options": [ + "half a kilo", + "a piece of cheese", + "a box of eggs" + ] + }, + "writing": { + "prompt": "写购物清单里的两行:一瓶水、一公斤苹果。", + "example": "a bottle of water, a kilo of apples", + "itemIds": [ + "A1-U08-P04", + "A1-U08-P05" + ] + }, + "independent": { + "prompt": "用英语说说你这周要买的三样东西和数量。", + "itemIds": [ + "A1-U08-P04", + "A1-U08-P05", + "A1-U08-P06" + ] + } + }, + { + "id": "A1-U08-S3", + "title": "付钱和营业时间", + "minutes": 10, + "itemIds": [ + "A1-U08-P07", + "A1-U08-P08", + "A1-U08-W02" + ], + "listening": { + "text": "Where do I pay? Over there. What time do you close? We close at ten. We're open every day.", + "question": "这家店几点关门?", + "options": [ + "十点", + "九点", + "十一点" + ] + }, + "speaking": [ + { + "text": "Where do I pay?" + }, + { + "text": "What time do you close?", + "tip": "do you 连读成 /djuː/" + }, + { + "text": "What time do you open?" + }, + { + "text": "Can I have a plastic bag?" + } + ], + "reading": { + "text": "Open every day: 7 to 11\nClosed on the first day of the new year\nPlease put your items in a basket. Please pay here.\nPlastic bags are 10 cents.", + "question": "塑料袋多少钱?", + "options": [ + "十美分一个", + "免费", + "一美元" + ] + }, + "writing": { + "prompt": "写两句话:问在哪里付钱,再问几点关门。", + "example": "Where do I pay? What time do you close?", + "itemIds": [ + "A1-U08-P07", + "A1-U08-P08" + ] + }, + "independent": { + "prompt": "在便利店结账时,用英语要一个袋子,并问几点关门。", + "itemIds": [ + "A1-U08-W02", + "A1-U08-P08" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U08-C1", + "kind": "main", + "title": "在超市找东西", + "learnerRole": "顾客", + "aiRole": "店员", + "setting": "你在一家大超市,想买牛奶、酸奶和鸡蛋,但找不到。", + "turns": [ + { + "ai": "Hi. Can I help you?", + "goal": "问哪里能找到牛奶", + "model": "Yes, please. Where can I find the milk?", + "zh": "是的,谢谢。哪里能找到牛奶?", + "itemIds": [ + "A1-U08-P01" + ] + }, + { + "ai": "The milk is in aisle 3, on the bottom shelf.", + "goal": "确认通道,再问有没有新鲜酸奶", + "model": "Aisle 3? And do you have any fresh yogurt?", + "zh": "3 号通道?你们有新鲜酸奶吗?", + "itemIds": [ + "A1-U08-W01", + "A1-U08-P02", + "A1-U08-W03" + ] + }, + { + "ai": "Yes, next to the milk, on the top shelf.", + "goal": "确认位置,再说你还在找鸡蛋", + "model": "On the top shelf. Thanks. I'm also looking for eggs.", + "zh": "最上层。谢谢。我还在找鸡蛋。", + "itemIds": [ + "A1-U08-P03", + "A1-U08-P09" + ] + }, + { + "ai": "Eggs are in aisle 5. Do you need a basket? You can't carry it all.", + "goal": "说不用篮子,你有袋子", + "model": "No, thanks. I have a bag.", + "zh": "不用了,谢谢。我有袋子。", + "itemIds": [ + "A1-U08-W02" + ] + }, + { + "ai": "OK. Anything else?", + "goal": "问在哪里付钱", + "model": "Where do I pay?", + "zh": "在哪里付钱?", + "itemIds": [ + "A1-U08-P07" + ] + } + ] + }, + { + "id": "A1-U08-C2", + "kind": "variant", + "title": "在水果摊买水果", + "learnerRole": "顾客", + "aiRole": "摊主", + "setting": "你在市场的水果摊买水果。", + "turns": [ + { + "ai": "Hello! Fresh fruit today!", + "goal": "问苹果新不新鲜", + "model": "Are the apples fresh?", + "zh": "苹果新鲜吗?", + "itemIds": [ + "A1-U08-W03" + ] + }, + { + "ai": "Very fresh. Pick your apples. Two dollars a kilo.", + "goal": "要两公斤苹果", + "model": "Two kilos of apples, please.", + "zh": "请给我两公斤苹果。", + "itemIds": [ + "A1-U08-P05" + ] + }, + { + "ai": "Sure. Anything else? The grapes are very sweet.", + "goal": "要半公斤葡萄", + "model": "OK, half a kilo of grapes.", + "zh": "好,半公斤葡萄。", + "itemIds": [ + "A1-U08-P05" + ] + }, + { + "ai": "Here you are. It's heavy. Do you need a bag?", + "goal": "说需要两个袋子", + "model": "Yes, I need two bags, please.", + "zh": "要,我需要两个袋子。", + "itemIds": [ + "A1-U08-P06", + "A1-U08-W02" + ] + }, + { + "ai": "Sure. Seven dollars, please.", + "goal": "付钱", + "model": "Here you are.", + "zh": "给你。", + "itemIds": [] + } + ] + }, + { + "id": "A1-U08-C3", + "kind": "variant", + "title": "晚上去便利店", + "learnerRole": "顾客", + "aiRole": "店员", + "setting": "晚上你在酒店旁边的便利店买东西。", + "turns": [ + { + "ai": "Hi there.", + "goal": "说你在找电池", + "model": "Hi. I'm looking for batteries.", + "zh": "你好。我在找电池。", + "itemIds": [ + "A1-U08-P09" + ] + }, + { + "ai": "Sorry, we don't sell batteries. We have snacks, drinks and soap.", + "goal": "改要一瓶水", + "model": "OK. A bottle of water, please.", + "zh": "好吧。请给我一瓶水。", + "itemIds": [ + "A1-U08-P04" + ] + }, + { + "ai": "The water is over there. Anything else?", + "goal": "问几点关门", + "model": "No, thanks. What time do you close?", + "zh": "不用了,谢谢。你们几点关门?", + "itemIds": [ + "A1-U08-P08" + ] + }, + { + "ai": "We're open all night.", + "goal": "问有没有冰块", + "model": "Oh, good. Do you have any ice?", + "zh": "哦,太好了。你们有冰块吗?", + "itemIds": [ + "A1-U08-P02" + ] + }, + { + "ai": "Sorry, the ice box is empty now.", + "goal": "回应", + "model": "That's OK. Thank you.", + "zh": "没关系,谢谢。", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U08-T1", + "sceneId": "A1-U08-C1", + "goal": "在超市问三样东西在哪里,确认通道和货架,最后问在哪里付钱", + "itemIds": [ + "A1-U08-P01", + "A1-U08-W01", + "A1-U08-P02", + "A1-U08-W03", + "A1-U08-P03", + "A1-U08-P09", + "A1-U08-W02", + "A1-U08-P07" + ], + "slots": [ + "商品", + "位置" + ] + }, + { + "id": "A1-U08-T2", + "sceneId": "A1-U08-C2", + "goal": "在水果摊问新鲜程度,按公斤买水果并要袋子", + "itemIds": [ + "A1-U08-W03", + "A1-U08-P05", + "A1-U08-P06", + "A1-U08-W02" + ], + "slots": [ + "水果", + "数量", + "袋子" + ] + }, + { + "id": "A1-U08-T3", + "sceneId": "A1-U08-C3", + "goal": "在便利店找东西,找不到时换一样,并问营业时间", + "itemIds": [ + "A1-U08-P09", + "A1-U08-P04", + "A1-U08-P08", + "A1-U08-P02" + ], + "slots": [ + "商品", + "营业时间" + ] + } + ], + "materials": [ + { + "id": "A1-U08-M1", + "mode": "listening", + "title": "超市广播", + "text": "Welcome to our store! We are open now, from morning to ten at night. Today we sell fresh fruit and vegetables. Grapes and apples are cheap. The candy, biscuits and snacks are on the top shelf; corn, beans and salt are at the bottom. Milk and yogurt are next to the eggs. Soap and batteries are near the door. Please take a basket and put your items in it. Some boxes are heavy, so carry them with care. Please keep your plastic bags. Pay at the front. Thank you, and have a nice day!", + "glosses": { + "forget": "忘记", + "tonight": "今晚", + "front": "前面;front desk 前台", + "care": "with care 小心地", + "shelf": "架子" + }, + "questions": [ + { + "type": "gist", + "question": "这段广播主要说什么?", + "options": [ + "超市里的商品和信息", + "怎么坐地铁", + "怎么点菜" + ] + }, + { + "type": "detail", + "question": "糖果和零食放在哪里?", + "options": [ + "最上层的架子", + "门口", + "最下面" + ] + } + ] + }, + { + "id": "A1-U08-M2", + "mode": "reading", + "title": "读一段对话:在超市找东西", + "text": "Mia: Excuse me, where can I find the milk?\nStaff: It's on the top shelf, next to the yogurt.\nMia: Thank you. I have a list. I need a box of eggs, a piece of cheese and some grapes.\nStaff: The eggs are in aisle three. The grapes are fresh today. Please pick the good ones.\nMia: OK. Where are the corn and the beans?\nStaff: At the bottom, near the salt. Do you need soap or batteries?\nMia: Yes, one soap. This basket is heavy now! Can you carry it?\nStaff: Sure. Do you want a plastic bag or a box?\nMia: A box, please. What time do you close? Are you open on Sunday?\nStaff: We close at ten, and yes, we're open every day of the year.\nMia: Great, thank you very much!", + "glosses": { + "staff": "员工,服务员", + "front": "前面;front desk 前台", + "shelf": "架子" + }, + "questions": [ + { + "type": "detail", + "question": "Mia 的清单上有什么?", + "options": [ + "一盒鸡蛋、一块奶酪、一些葡萄", + "面包和牛奶", + "糖和零食" + ] + }, + { + "type": "detail", + "question": "超市几点关门?", + "options": [ + "十点", + "九点", + "十一点" + ] + } + ] + } + ], + "excluded": [ + { + "en": "checkout / cashier", + "reason": "B1 或未收录;A1 用 Where do I pay? 表达" + }, + { + "en": "dozen", + "reason": "B1;A1 用 a box of twelve eggs" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U09.json b/kouyu_english/assets/courses/A1/A1-U09.json new file mode 100644 index 0000000..dfd06be --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U09.json @@ -0,0 +1,973 @@ +{ + "schemaVersion": 1, + "id": "A1-U09", + "revision": 1, + "level": "A1", + "title": "描述人和感受", + "categories": [ + "日常" + ], + "canDo": "说一个人的外貌和性格,说自己的心情", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "60", + "use": "active" + }, + { + "id": "101", + "use": "active" + }, + { + "id": "59-1", + "use": "active" + }, + { + "id": "1", + "use": "active" + }, + { + "id": "117", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "A1-U09-P01", + "type": "phrase", + "en": "What does she look like?", + "zh": "她长什么样?", + "sceneWord": false, + "match": [ + [ + "look like" + ] + ], + "example": { + "en": "What does your brother look like?", + "zh": "你哥哥长什么样?" + }, + "review": { + "prompt": "朋友让你去接一个人,问那个人长什么样。" + } + }, + { + "id": "A1-U09-W01", + "type": "word", + "en": "tall", + "zh": "高的", + "sceneWord": false, + "match": [ + [ + "tall" + ] + ], + "example": { + "en": "My father is very tall.", + "zh": "我爸爸很高。" + }, + "review": { + "prompt": "说你的朋友很高。" + } + }, + { + "id": "A1-U09-W02", + "type": "word", + "en": "short", + "zh": "矮的;短的", + "sceneWord": false, + "match": [ + [ + "short" + ] + ], + "example": { + "en": "She's short, and she has short hair.", + "zh": "她个子矮,留着短发。" + }, + "review": { + "prompt": "说你的孩子个子矮。" + } + }, + { + "id": "A1-U09-P02", + "type": "phrase", + "en": "She has long hair.", + "zh": "她留着长发。", + "sceneWord": false, + "match": [ + [ + "has long", + "has short", + "have long", + "have short" + ], + [ + "hair" + ] + ], + "example": { + "en": "He has short black hair.", + "zh": "他留着黑色短发。" + }, + "review": { + "prompt": "描述一个留着长发的朋友。" + } + }, + { + "id": "A1-U09-P03", + "type": "phrase", + "en": "He wears glasses.", + "zh": "他戴眼镜。", + "sceneWord": false, + "match": [ + [ + "wears glasses", + "wear glasses" + ] + ], + "example": { + "en": "My mother wears glasses.", + "zh": "我妈妈戴眼镜。" + }, + "review": { + "prompt": "说你的老师戴眼镜。" + } + }, + { + "id": "A1-U09-P04", + "type": "phrase", + "en": "What is he like?", + "zh": "他(性格)怎么样?", + "sceneWord": false, + "match": [ + [ + "what is he like", + "what is she like", + "what are they like", + "what is your" + ] + ], + "example": { + "en": "What is your new teacher like?", + "zh": "你的新老师怎么样?" + }, + "review": { + "prompt": "问朋友的新邻居性格怎么样。" + } + }, + { + "id": "A1-U09-W03", + "type": "word", + "en": "kind", + "zh": "友善的;好心的", + "sceneWord": false, + "match": [ + [ + "kind" + ] + ], + "example": { + "en": "The man is very kind.", + "zh": "那个男人很友善。" + }, + "review": { + "prompt": "说你的邻居很友善。" + } + }, + { + "id": "A1-U09-W04", + "type": "word", + "en": "funny", + "zh": "有趣的;好笑的", + "sceneWord": false, + "match": [ + [ + "funny" + ] + ], + "example": { + "en": "My son is very funny.", + "zh": "我儿子很有趣。" + }, + "review": { + "prompt": "说你的朋友很有趣。" + } + }, + { + "id": "A1-U09-W05", + "type": "word", + "en": "shy", + "zh": "害羞的", + "sceneWord": false, + "match": [ + [ + "shy" + ] + ], + "example": { + "en": "She's a little shy.", + "zh": "她有点害羞。" + }, + "review": { + "prompt": "说你的女儿有点害羞。" + } + }, + { + "id": "A1-U09-P05", + "type": "phrase", + "en": "I'm tired.", + "zh": "我累了。", + "sceneWord": false, + "match": [ + [ + "tired" + ] + ], + "example": { + "en": "I'm very tired today.", + "zh": "我今天很累。" + }, + "review": { + "prompt": "告诉朋友你今天很累。" + } + }, + { + "id": "A1-U09-W06", + "type": "word", + "en": "happy", + "zh": "开心的", + "sceneWord": false, + "match": [ + [ + "happy" + ] + ], + "example": { + "en": "I'm very happy today.", + "zh": "我今天很开心。" + }, + "review": { + "prompt": "说你今天很开心。" + } + }, + { + "id": "A1-U09-P06", + "type": "phrase", + "en": "I feel sad.", + "zh": "我觉得难过。", + "sceneWord": false, + "match": [ + [ + "feel", + "feels" + ] + ], + "example": { + "en": "He feels sad today.", + "zh": "他今天很难过。" + }, + "review": { + "prompt": "告诉朋友你觉得难过。" + } + }, + { + "id": "A1-U09-P07", + "type": "phrase", + "en": "I'm worried.", + "zh": "我很担心。", + "sceneWord": true, + "sceneReason": "worried 在 CEFR-J 为 A2,但遇到麻烦时说明自己担心很常用", + "match": [ + [ + "worried" + ] + ], + "example": { + "en": "I'm worried about my son.", + "zh": "我很担心我儿子。" + }, + "review": { + "prompt": "孩子走丢了,告诉工作人员你很担心。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U09-R01", + "en": "thin", + "zh": "瘦的" + }, + { + "id": "A1-U09-R02", + "en": "handsome", + "zh": "英俊的" + }, + { + "id": "A1-U09-R03", + "en": "pretty", + "zh": "漂亮的" + }, + { + "id": "A1-U09-R04", + "en": "beautiful", + "zh": "美丽的" + }, + { + "id": "A1-U09-R05", + "en": "eye", + "zh": "眼睛" + }, + { + "id": "A1-U09-R06", + "en": "face", + "zh": "脸" + }, + { + "id": "A1-U09-R07", + "en": "clever", + "zh": "聪明的" + }, + { + "id": "A1-U09-R08", + "en": "smart", + "zh": "聪明的" + }, + { + "id": "A1-U09-R09", + "en": "lazy", + "zh": "懒的" + }, + { + "id": "A1-U09-R10", + "en": "angry", + "zh": "生气的" + }, + { + "id": "A1-U09-R11", + "en": "lonely", + "zh": "孤单的" + }, + { + "id": "A1-U09-R12", + "en": "afraid", + "zh": "害怕的" + }, + { + "id": "A1-U09-R13", + "en": "glad", + "zh": "高兴的" + }, + { + "id": "A1-U09-R14", + "en": "strong", + "zh": "强壮的" + }, + { + "id": "A1-U09-R15", + "en": "cute", + "zh": "可爱的" + }, + { + "id": "A1-U09-R16", + "en": "feeling", + "zh": "感觉" + }, + { + "id": "A1-U09-R17", + "en": "smile", + "zh": "微笑" + }, + { + "id": "A1-U09-R18", + "en": "laugh", + "zh": "笑" + }, + { + "id": "A1-U09-R19", + "en": "cry", + "zh": "哭" + }, + { + "id": "A1-U09-R20", + "en": "love", + "zh": "爱;喜欢" + }, + { + "id": "A1-U09-R21", + "en": "dark", + "zh": "深色的;黑暗的" + }, + { + "id": "A1-U09-R22", + "en": "black", + "zh": "黑色的" + }, + { + "id": "A1-U09-R23", + "en": "brown", + "zh": "棕色的" + }, + { + "id": "A1-U09-R24", + "en": "excited", + "zh": "兴奋的" + }, + { + "id": "A1-U09-R25", + "en": "boring", + "zh": "无聊的" + }, + { + "id": "A1-U09-R26", + "en": "nervous", + "zh": "紧张的" + }, + { + "id": "A1-U09-R27", + "en": "woman", + "zh": "女人" + }, + { + "id": "A1-U09-R28", + "en": "man", + "zh": "男人" + }, + { + "id": "A1-U09-R29", + "en": "boy", + "zh": "男孩" + }, + { + "id": "A1-U09-R30", + "en": "girl", + "zh": "女孩" + }, + { + "id": "A1-U09-R31", + "en": "guy", + "zh": "家伙;人" + }, + { + "id": "A1-U09-R32", + "en": "surprised", + "zh": "惊讶的" + }, + { + "id": "A1-U09-R33", + "en": "interesting", + "zh": "有意思的" + }, + { + "id": "A1-U09-R34", + "en": "let", + "zh": "让(let's 一起……吧)" + } + ], + "segments": [ + { + "id": "A1-U09-S1", + "title": "长什么样", + "minutes": 13, + "itemIds": [ + "A1-U09-P01", + "A1-U09-W01", + "A1-U09-W02", + "A1-U09-P02", + "A1-U09-P03" + ], + "listening": { + "text": "What does your brother look like? He's tall and thin. He has short black hair, and he wears glasses.", + "question": "哥哥长什么样?", + "options": [ + "高瘦,短黑发,戴眼镜", + "矮个子,长黑发,戴眼镜", + "高瘦,短黑发,不戴眼镜" + ] + }, + "speaking": [ + { + "text": "What does she look like?", + "tip": "look like 连读,重音在 look" + }, + { + "text": "She's tall." + }, + { + "text": "He's short." + }, + { + "text": "She has long brown hair." + }, + { + "text": "He wears glasses." + } + ], + "reading": { + "text": "Please help! We are looking for a little girl. Her name is Lucy. She is five.\nShe has a small face, long brown hair and beautiful big brown eyes. She's short.\nLucy is shy, but she has a big smile.", + "question": "Lucy 长什么样?", + "options": [ + "长棕发,棕色大眼睛", + "短黑发,戴眼镜", + "长黑发,个子很高" + ] + }, + "writing": { + "prompt": "写两句话描述你的一位朋友:高还是矮、什么头发。", + "example": "My friend is tall. She has long hair.", + "itemIds": [ + "A1-U09-W01", + "A1-U09-P02" + ] + }, + "independent": { + "prompt": "用英语描述一个你家里的人:他或她长什么样。", + "itemIds": [ + "A1-U09-P01", + "A1-U09-W01", + "A1-U09-W02", + "A1-U09-P02", + "A1-U09-P03" + ] + } + }, + { + "id": "A1-U09-S2", + "title": "性格怎么样", + "minutes": 12, + "itemIds": [ + "A1-U09-P04", + "A1-U09-W03", + "A1-U09-W04", + "A1-U09-W05" + ], + "listening": { + "text": "What is your new teacher like? She's very kind and funny. The students love her. And your teacher? He's clever, but he's a little shy.", + "question": "说话人的新老师怎么样?", + "options": [ + "友善又有趣", + "聪明但害羞", + "严厉又无聊" + ] + }, + "speaking": [ + { + "text": "What is he like?", + "tip": "不要和 What does he like? 混淆" + }, + { + "text": "She's very kind." + }, + { + "text": "He's funny." + }, + { + "text": "My son is a little shy." + } + ], + "reading": { + "text": "Tom: What are your new neighbors like?\nMia: The man is very kind. He's strong, and he can carry my bags!\nTom: And the woman?\nMia: She's clever and funny. Her two boys are cute, but they are a little lazy.\nTom: Lazy?\nMia: Yes. They don't help their mother!", + "question": "那个男人怎么样?", + "options": [ + "very kind", + "clever and funny", + "a little lazy" + ] + }, + "writing": { + "prompt": "写两句话:问朋友的新朋友怎么样,再说他很有趣。", + "example": "What is your new friend like? He's very funny.", + "itemIds": [ + "A1-U09-P04", + "A1-U09-W04" + ] + }, + "independent": { + "prompt": "用英语说说你最好的朋友的性格,至少用两个词。", + "itemIds": [ + "A1-U09-P04", + "A1-U09-W03", + "A1-U09-W04", + "A1-U09-W05" + ] + } + }, + { + "id": "A1-U09-S3", + "title": "说感受", + "minutes": 12, + "itemIds": [ + "A1-U09-P05", + "A1-U09-W06", + "A1-U09-P06", + "A1-U09-P07" + ], + "listening": { + "text": "Hi, Ben. How are you? I'm tired. I have a lot of work today. And I feel sad. My cat is lost. Oh, no. I'm sorry.", + "question": "Ben 为什么难过?", + "options": [ + "他的猫走丢了", + "他工作太多", + "他生病了" + ] + }, + "speaking": [ + { + "text": "I'm tired." + }, + { + "text": "I'm very happy today." + }, + { + "text": "I feel sad." + }, + { + "text": "I'm worried.", + "tip": "worried 读作 /ˈwʌrid/,不要读成 /ˈwɔːrid/" + } + ], + "reading": { + "text": "Emma: How are you today?\nLily: I'm happy and excited! I have a new job. My old job is very boring.\nEmma: That's great! I'm surprised.\nLily: And you? How are you feeling?\nEmma: I'm a little nervous. I'm in a new city, and I feel lonely.\nLily: Don't be afraid. Come and have lunch with me!", + "question": "Emma 为什么紧张?", + "options": [ + "在新城市,觉得孤单", + "找到了新工作", + "午饭时间太晚" + ] + }, + "writing": { + "prompt": "写两句话说你现在的感受:很累,但是开心。", + "example": "I'm tired, but I'm happy.", + "itemIds": [ + "A1-U09-P05", + "A1-U09-W06" + ] + }, + "independent": { + "prompt": "用英语说说你今天的感受。", + "itemIds": [ + "A1-U09-P06", + "A1-U09-P05", + "A1-U09-W06", + "A1-U09-P07" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U09-C1", + "kind": "main", + "title": "帮朋友接人", + "learnerRole": "你", + "aiRole": "朋友", + "setting": "朋友请你去机场帮忙接她哥哥,你没见过他,打电话问清楚。", + "turns": [ + { + "ai": "Can you get my brother at the airport today?", + "goal": "答应,问他长什么样", + "model": "Sure. What does he look like?", + "zh": "没问题。他长什么样?", + "itemIds": [ + "A1-U09-P01" + ] + }, + { + "ai": "He's tall and handsome, and he has short dark hair.", + "goal": "确认,再问他戴不戴眼镜", + "model": "Tall, with short dark hair. Does he wear glasses?", + "zh": "高个子,黑色短发。他戴眼镜吗?", + "itemIds": [ + "A1-U09-W01", + "A1-U09-P03" + ] + }, + { + "ai": "Yes, he does.", + "goal": "问他性格怎么样", + "model": "OK. What is he like?", + "zh": "好的。他人怎么样?", + "itemIds": [ + "A1-U09-P04" + ] + }, + { + "ai": "He's kind, but a little shy. He's a nice guy.", + "goal": "说没关系,你也有点害羞", + "model": "That's OK. I'm shy too.", + "zh": "没关系,我也有点害羞。", + "itemIds": [ + "A1-U09-W05" + ] + }, + { + "ai": "Thank you! Are you OK? You look tired.", + "goal": "说你有点累,但很乐意帮忙", + "model": "I'm a little tired, but I'm happy to help.", + "zh": "我有点累,但很乐意帮忙。", + "itemIds": [ + "A1-U09-P05", + "A1-U09-W06" + ] + } + ] + }, + { + "id": "A1-U09-C2", + "kind": "variant", + "title": "商场里孩子走丢了", + "learnerRole": "家长", + "aiRole": "商场服务台工作人员", + "setting": "你在商场里和孩子走散了,去服务台求助。", + "turns": [ + { + "ai": "Hello. Are you OK?", + "goal": "说你很担心,女儿走丢了", + "model": "No. I'm worried. My daughter is lost.", + "zh": "不好。我很担心,我女儿走丢了。", + "itemIds": [ + "A1-U09-P07" + ] + }, + { + "ai": "Don't worry. What does she look like?", + "goal": "描述:个子矮,长头发", + "model": "She's five. She's short, and she has long hair.", + "zh": "她五岁,个子矮,留着长发。", + "itemIds": [ + "A1-U09-W02", + "A1-U09-P02" + ] + }, + { + "ai": "Is her hair black or brown?", + "goal": "说是棕色,眼睛也是棕色的", + "model": "It's brown. And she has big brown eyes.", + "zh": "棕色的。她还有一双棕色的大眼睛。", + "itemIds": [] + }, + { + "ai": "Is she shy?", + "goal": "说她不害羞,很有趣,爱笑", + "model": "No, she isn't shy. She's very funny. She loves to laugh.", + "zh": "不,她不害羞,很有趣,很爱笑。", + "itemIds": [ + "A1-U09-W05", + "A1-U09-W04" + ] + }, + { + "ai": "Look! Is that her, the pretty little girl over there? She's crying.", + "goal": "看到女儿,很开心", + "model": "Yes! Oh, I'm so happy! Thank you!", + "zh": "是她!太开心了!谢谢你!", + "itemIds": [ + "A1-U09-W06" + ] + } + ] + }, + { + "id": "A1-U09-C3", + "kind": "variant", + "title": "朋友关心你的心情", + "learnerRole": "你", + "aiRole": "朋友", + "setting": "朋友发现你今天不太开心,关心你。", + "turns": [ + { + "ai": "Hi! Are you OK? You don't look happy.", + "goal": "说你今天觉得难过", + "model": "I feel sad today.", + "zh": "我今天觉得难过。", + "itemIds": [ + "A1-U09-P06" + ] + }, + { + "ai": "Oh, no. Is it your work?", + "goal": "说是,你很累,工作很多", + "model": "Yes. I'm very tired. I have a lot of work.", + "zh": "是的。我很累,工作很多。", + "itemIds": [ + "A1-U09-P05" + ] + }, + { + "ai": "I'm sorry. Are the people at work angry?", + "goal": "说同事们很友善,但你担心新工作", + "model": "No, they're kind, but I'm worried about my new job.", + "zh": "不,他们很友善,但我担心我的新工作。", + "itemIds": [ + "A1-U09-W03", + "A1-U09-P07" + ] + }, + { + "ai": "Don't be afraid. You're smart, and your work is interesting.", + "goal": "说谢谢,你现在觉得开心了", + "model": "Thank you. I feel happy now.", + "zh": "谢谢你。我现在觉得开心了。", + "itemIds": [ + "A1-U09-P06", + "A1-U09-W06" + ] + }, + { + "ai": "Good! I'm glad. Let's have a cup of coffee.", + "goal": "答应", + "model": "OK, great!", + "zh": "好啊!", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U09-T1", + "sceneId": "A1-U09-C1", + "goal": "帮朋友接人:问清外貌和性格,回应对方的关心", + "itemIds": [ + "A1-U09-P01", + "A1-U09-W01", + "A1-U09-P03", + "A1-U09-P04", + "A1-U09-W05", + "A1-U09-P05", + "A1-U09-W06" + ], + "slots": [ + "外貌", + "性格" + ] + }, + { + "id": "A1-U09-T2", + "sceneId": "A1-U09-C2", + "goal": "孩子走丢时说明担心,描述孩子的外貌和性格", + "itemIds": [ + "A1-U09-P07", + "A1-U09-W02", + "A1-U09-P02", + "A1-U09-W05", + "A1-U09-W04", + "A1-U09-W06" + ], + "slots": [ + "年龄", + "外貌", + "性格" + ] + }, + { + "id": "A1-U09-T3", + "sceneId": "A1-U09-C3", + "goal": "朋友关心时说出自己的感受和原因", + "itemIds": [ + "A1-U09-P06", + "A1-U09-P05", + "A1-U09-W03", + "A1-U09-P07", + "A1-U09-W06" + ], + "slots": [ + "感受", + "原因" + ] + } + ], + "materials": [ + { + "id": "A1-U09-M1", + "mode": "listening", + "title": "朋友让你去接人", + "text": "Can you get my friend at the station? You don't know her, so listen. She is a young woman, tall and thin, with a pretty face and big brown eyes. Her hair is long and black. She wears glasses and always has a nice smile. She is very kind, clever and funny, but a little shy, so don't worry if she is quiet. Today she has a big red bag. She is a little tired after the trip, and maybe nervous in a new city, so please be kind. When you find her, give her a smile. Call me then. Thank you!", + "glosses": { + "call": "打电话", + "know": "知道", + "red": "红色", + "always": "总是", + "maybe": "也许", + "give": "给" + }, + "questions": [ + { + "type": "gist", + "question": "这段话在做什么?", + "options": [ + "描述一个人,好去接她", + "介绍今天的天气", + "点一份晚餐" + ] + }, + { + "type": "detail", + "question": "这个朋友长什么样?", + "options": [ + "高、瘦、长黑发、戴眼镜", + "矮、短发、不戴眼镜", + "高、卷发、戴帽子" + ] + } + ] + }, + { + "id": "A1-U09-M2", + "mode": "reading", + "title": "读一段对话:聊聚会上的人", + "text": "Tom: How was the party? You look happy and excited!\nMia: It was great, not boring at all! But I feel a little tired now.\nTom: Who is that handsome man, tall and strong, with the big smile?\nMia: That's my brother. He looks serious, but he is very funny and kind. Everyone loves him.\nTom: Is that clever girl his friend? She has beautiful eyes.\nMia: Yes. She is smart and cute. Are you OK? You look nervous.\nTom: I'm just shy at parties. Sometimes I feel lonely and a little afraid here.\nMia: Don't be afraid! Come and say hello. Everyone is glad to see new people.\nTom: OK. This party is interesting. Let's go and laugh together!\nMia: Great, that's the way!", + "glosses": { + "bit": "一点;a bit 有点", + "party": "聚会", + "parties": "聚会", + "serious": "严肃的", + "loves": "喜欢", + "everyone": "每个人", + "sometimes": "有时", + "together": "一起" + }, + "questions": [ + { + "type": "detail", + "question": "那个英俊的男人是谁?", + "options": [ + "Mia 的哥哥", + "Mia 的爸爸", + "Tom 的朋友" + ] + }, + { + "type": "detail", + "question": "Tom 为什么显得紧张?", + "options": [ + "他在聚会上有点害羞", + "他很累", + "他找不到 Mia" + ] + } + ] + } + ], + "excluded": [ + { + "en": "friendly", + "reason": "B2;A1 用 kind / nice 表达" + }, + { + "en": "curly / blond / beard", + "reason": "B1 或未收录;外貌先用 long / short / dark 描述" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U10.json b/kouyu_english/assets/courses/A1/A1-U10.json new file mode 100644 index 0000000..46be323 --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U10.json @@ -0,0 +1,912 @@ +{ + "schemaVersion": 1, + "id": "A1-U10", + "revision": 1, + "level": "A1", + "title": "打车", + "categories": [ + "旅行" + ], + "canDo": "说目的地、确认价格或路线", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "117", + "use": "active" + }, + { + "id": "123", + "use": "active" + }, + { + "id": "246", + "use": "active" + }, + { + "id": "146", + "use": "receptive" + }, + { + "id": "120", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "A1-U10-P01", + "type": "phrase", + "en": "Take me to the airport, please.", + "zh": "请带我去机场。", + "sceneWord": false, + "match": [ + [ + "take me to", + "to the airport", + "to the train station", + "to the station", + "to the hotel", + "to this address" + ] + ], + "example": { + "en": "To the train station, please.", + "zh": "请去火车站。" + }, + "review": { + "prompt": "上车后告诉司机去这个地址。" + } + }, + { + "id": "A1-U10-W01", + "type": "word", + "en": "taxi", + "zh": "出租车", + "sceneWord": false, + "match": [ + [ + "taxi" + ] + ], + "example": { + "en": "Let's take a taxi.", + "zh": "我们打车吧。" + }, + "review": { + "prompt": "说“一辆出租车”。" + } + }, + { + "id": "A1-U10-P02", + "type": "phrase", + "en": "How much is it to the airport?", + "zh": "去机场多少钱?", + "sceneWord": false, + "match": [ + [ + "how much is it to", + "how much to" + ] + ], + "example": { + "en": "How much is it to the station?", + "zh": "去车站多少钱?" + }, + "review": { + "prompt": "上车前问去市中心要多少钱。" + } + }, + { + "id": "A1-U10-P03", + "type": "phrase", + "en": "How long does it take?", + "zh": "要多长时间?", + "sceneWord": false, + "match": [ + [ + "how long" + ] + ], + "example": { + "en": "How long does it take to the airport?", + "zh": "去机场要多长时间?" + }, + "review": { + "prompt": "问司机到酒店要多久。" + } + }, + { + "id": "A1-U10-P04", + "type": "phrase", + "en": "Can you stop here, please?", + "zh": "请在这里停车。", + "sceneWord": false, + "match": [ + [ + "stop here", + "stop at", + "stop in front of" + ] + ], + "example": { + "en": "Stop at the corner, please.", + "zh": "请在拐角停车。" + }, + "review": { + "prompt": "到了,请司机在这里停车。" + } + }, + { + "id": "A1-U10-P05", + "type": "phrase", + "en": "I'm in a hurry.", + "zh": "我赶时间。", + "sceneWord": false, + "match": [ + [ + "in a hurry" + ] + ], + "example": { + "en": "Sorry, I'm in a hurry.", + "zh": "抱歉,我赶时间。" + }, + "review": { + "prompt": "告诉司机你赶时间。" + } + }, + { + "id": "A1-U10-P06", + "type": "phrase", + "en": "Please use the meter.", + "zh": "请打表。", + "sceneWord": true, + "sceneReason": "meter 在 CEFR-J 为 A2,但在国外打车要求打表很重要", + "match": [ + [ + "meter" + ] + ], + "example": { + "en": "Can you use the meter, please?", + "zh": "可以打表吗?" + }, + "review": { + "prompt": "司机不打表,请他打表。" + } + }, + { + "id": "A1-U10-P07", + "type": "phrase", + "en": "Can you help me with my suitcase?", + "zh": "能帮我拿一下行李箱吗?", + "sceneWord": true, + "sceneReason": "suitcase 在 CEFR-J 为 A2,但坐出租车去机场、酒店时常常用到", + "match": [ + [ + "suitcase" + ] + ], + "example": { + "en": "My suitcase is very heavy.", + "zh": "我的行李箱很重。" + }, + "review": { + "prompt": "请司机帮你拿行李箱。" + } + }, + { + "id": "A1-U10-P08", + "type": "phrase", + "en": "Is this the right way?", + "zh": "这条路对吗?", + "sceneWord": false, + "match": [ + [ + "right way", + "wrong way" + ] + ], + "example": { + "en": "Is this the right way to the museum?", + "zh": "这是去博物馆的路吗?" + }, + "review": { + "prompt": "担心司机走错路,问这条路对不对。" + } + }, + { + "id": "A1-U10-P09", + "type": "phrase", + "en": "Keep the change.", + "zh": "不用找了。", + "sceneWord": false, + "match": [ + [ + "keep the change" + ] + ], + "example": { + "en": "Here's twenty dollars. Keep the change.", + "zh": "这是二十美元,不用找了。" + }, + "review": { + "prompt": "付钱时告诉司机不用找零。" + } + }, + { + "id": "A1-U10-W02", + "type": "word", + "en": "traffic", + "zh": "路上的车辆;交通", + "sceneWord": true, + "sceneReason": "traffic 在 CEFR-J 为 A2,但打车时经常要听懂“堵车”", + "match": [ + [ + "traffic" + ] + ], + "example": { + "en": "There's a lot of traffic today.", + "zh": "今天路上车很多。" + }, + "review": { + "prompt": "说路上车很多。" + } + }, + { + "id": "A1-U10-P10", + "type": "phrase", + "en": "Please drive carefully.", + "zh": "请小心开车。", + "sceneWord": false, + "match": [ + [ + "drive carefully", + "drive slowly" + ] + ], + "example": { + "en": "Please drive slowly.", + "zh": "请开慢一点。" + }, + "review": { + "prompt": "司机开得太快,请他小心开车。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U10-R01", + "en": "careful", + "zh": "小心的" + }, + { + "id": "A1-U10-R02", + "en": "quickly", + "zh": "快速地" + }, + { + "id": "A1-U10-R03", + "en": "front", + "zh": "前面的" + }, + { + "id": "A1-U10-R04", + "en": "back", + "zh": "后面" + }, + { + "id": "A1-U10-R05", + "en": "pocket", + "zh": "口袋" + }, + { + "id": "A1-U10-R06", + "en": "busy", + "zh": "忙的;繁忙的" + }, + { + "id": "A1-U10-R07", + "en": "highway", + "zh": "公路;高速公路" + }, + { + "id": "A1-U10-R08", + "en": "radio", + "zh": "收音机;电台" + }, + { + "id": "A1-U10-R09", + "en": "accident", + "zh": "事故" + }, + { + "id": "A1-U10-R10", + "en": "jam", + "zh": "堵塞" + }, + { + "id": "A1-U10-R11", + "en": "correct", + "zh": "正确的" + }, + { + "id": "A1-U10-R12", + "en": "different", + "zh": "不同的" + }, + { + "id": "A1-U10-R13", + "en": "place", + "zh": "地方" + }, + { + "id": "A1-U10-R14", + "en": "already", + "zh": "已经" + }, + { + "id": "A1-U10-R15", + "en": "almost", + "zh": "几乎;快要" + }, + { + "id": "A1-U10-R16", + "en": "soon", + "zh": "很快" + }, + { + "id": "A1-U10-R17", + "en": "yet", + "zh": "还(没)" + }, + { + "id": "A1-U10-R18", + "en": "outside", + "zh": "外面" + }, + { + "id": "A1-U10-R19", + "en": "entrance", + "zh": "入口" + }, + { + "id": "A1-U10-R20", + "en": "gate", + "zh": "大门" + }, + { + "id": "A1-U10-R21", + "en": "belt", + "zh": "带子(seat belt 安全带)" + }, + { + "id": "A1-U10-R22", + "en": "center", + "zh": "中心" + }, + { + "id": "A1-U10-R23", + "en": "famous", + "zh": "著名的" + }, + { + "id": "A1-U10-R24", + "en": "tonight", + "zh": "今晚" + } + ], + "segments": [ + { + "id": "A1-U10-S1", + "title": "说目的地、问价钱和时间", + "minutes": 13, + "itemIds": [ + "A1-U10-P01", + "A1-U10-W01", + "A1-U10-P02", + "A1-U10-P03", + "A1-U10-P05" + ], + "listening": { + "text": "Hi. To the airport, please. Sure. How much is it to the airport? About forty dollars. How long does it take? Thirty minutes. But there is a lot of traffic now.", + "question": "去机场大约多少钱?", + "options": [ + "四十美元左右", + "三十美元左右", + "十四美元左右" + ] + }, + "speaking": [ + { + "text": "Take me to the airport, please." + }, + { + "text": "Take me to this address, please." + }, + { + "text": "How much is it to the station?" + }, + { + "text": "How long does it take?", + "tip": "does it 连读,take 重读" + }, + { + "text": "I'm in a hurry." + } + ], + "reading": { + "text": "TAXI\nPlease wait here for a taxi.\nTo the city center: about $45, 40 minutes.\nTo the train station: about $30, 25 minutes.\nAll taxis use the meter. Pay by cash or card.\nPlease use your seat belt.", + "question": "从这里到火车站大约要多久?", + "options": [ + "二十五分钟", + "四十分钟", + "三十分钟" + ] + }, + "writing": { + "prompt": "写两句话:告诉司机去机场,再问要多久。", + "example": "To the airport, please. How long does it take?", + "itemIds": [ + "A1-U10-P01", + "A1-U10-P03" + ] + }, + "independent": { + "prompt": "你要打车回酒店,用英语说目的地、问价格和时间。", + "itemIds": [ + "A1-U10-P01", + "A1-U10-P02", + "A1-U10-P03" + ] + } + }, + { + "id": "A1-U10-S2", + "title": "打表、确认路线", + "minutes": 12, + "itemIds": [ + "A1-U10-P06", + "A1-U10-P08", + "A1-U10-W02", + "A1-U10-P10" + ], + "listening": { + "text": "Please use the meter. OK. Is this the right way to the museum? Yes, but there is a lot of traffic on the bridge. We can take the highway. It's fast.", + "question": "司机为什么要走公路?", + "options": [ + "桥上车很多", + "桥上有事故", + "公路更便宜" + ] + }, + "speaking": [ + { + "text": "Please use the meter.", + "tip": "meter 读作 /ˈmiːtə/" + }, + { + "text": "Is this the right way?" + }, + { + "text": "There's a lot of traffic." + }, + { + "text": "Please drive carefully." + } + ], + "reading": { + "text": "Taxi tips\nTake a taxi from the taxi stop at the gate.\nSay, \"Please use the meter.\"\nHave the address on your phone or in your pocket.\nIs it a different way? Ask the driver, \"Is this the right way?\"", + "question": "应该在哪里坐出租车?", + "options": [ + "大门口的出租车站", + "路边随便拦车", + "酒店里面" + ] + }, + "writing": { + "prompt": "写两句话:请司机打表,再问路对不对。", + "example": "Please use the meter. Is this the right way?", + "itemIds": [ + "A1-U10-P06", + "A1-U10-P08" + ] + }, + "independent": { + "prompt": "用英语说路上车很多,请司机小心开车。", + "itemIds": [ + "A1-U10-P10", + "A1-U10-W02" + ] + } + }, + { + "id": "A1-U10-S3", + "title": "停车、付钱、拿行李", + "minutes": 11, + "itemIds": [ + "A1-U10-P04", + "A1-U10-P07", + "A1-U10-P09" + ], + "listening": { + "text": "Can you stop here, please? Sure. That's twenty dollars. Here you are, thirty. Keep the change. Thank you. Can you help me with my suitcase? Sure.", + "question": "乘客给了司机多少钱?", + "options": [ + "三十美元", + "二十美元", + "五十美元" + ] + }, + "speaking": [ + { + "text": "Can you stop here, please?" + }, + { + "text": "Stop at the corner, please." + }, + { + "text": "Keep the change." + }, + { + "text": "Can you help me with my suitcase?", + "tip": "suitcase 读作 /ˈsuːtkeɪs/" + } + ], + "reading": { + "text": "Anna: Where are you?\nBen: I'm in a taxi. We are almost at the hotel.\nAnna: Great. The hotel entrance is on the other side. Ask the driver to stop in front of the hotel.\nBen: OK. See you soon.", + "question": "应该让司机停在哪里?", + "options": [ + "in front of the hotel", + "on the other side", + "at the corner" + ] + }, + "writing": { + "prompt": "写两句话:请司机在这里停车,再说不用找零。", + "example": "Can you stop here, please? Keep the change.", + "itemIds": [ + "A1-U10-P04", + "A1-U10-P09" + ] + }, + "independent": { + "prompt": "到了酒店,用英语请司机停车、帮你拿行李箱,再付钱。", + "itemIds": [ + "A1-U10-P04", + "A1-U10-P07", + "A1-U10-P09" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U10-C1", + "kind": "main", + "title": "从机场打车去酒店", + "learnerRole": "乘客", + "aiRole": "出租车司机", + "setting": "你在机场坐上一辆出租车,要去市中心的酒店。", + "turns": [ + { + "ai": "Hello! Where to? Please put your bag in the back.", + "goal": "告诉司机去城市酒店", + "model": "Take me to City Hotel, please.", + "zh": "请带我去城市酒店。", + "itemIds": [ + "A1-U10-P01" + ] + }, + { + "ai": "City Hotel. OK.", + "goal": "问多少钱、要多久", + "model": "How much is it to the hotel? How long does it take?", + "zh": "去酒店多少钱?要多久?", + "itemIds": [ + "A1-U10-P02", + "A1-U10-P03" + ] + }, + { + "ai": "About forty dollars. Forty minutes, but there is a lot of traffic today.", + "goal": "说你赶时间,请司机打表", + "model": "I'm in a hurry. Please use the meter.", + "zh": "我赶时间。请打表。", + "itemIds": [ + "A1-U10-P05", + "A1-U10-P06" + ] + }, + { + "ai": "Sure. There is an accident on the bridge, and a traffic jam. Let's take the highway. It's fast.", + "goal": "过了一会儿,问路对不对", + "model": "Is this the right way?", + "zh": "这条路对吗?", + "itemIds": [ + "A1-U10-P08" + ] + }, + { + "ai": "Yes, it's correct. Your hotel is in a famous place, near the river. It's almost here.", + "goal": "请司机开慢一点、小心开", + "model": "OK. Please drive carefully.", + "zh": "好的。请小心开车。", + "itemIds": [ + "A1-U10-P10" + ] + }, + { + "ai": "Here is City Hotel.", + "goal": "请司机在这里停车,并帮你拿行李箱", + "model": "Can you stop here and help me with my suitcase?", + "zh": "能在这里停车,帮我拿一下行李箱吗?", + "itemIds": [ + "A1-U10-P04", + "A1-U10-P07" + ] + } + ] + }, + { + "id": "A1-U10-C2", + "kind": "variant", + "title": "打车赶火车", + "learnerRole": "乘客", + "aiRole": "出租车司机", + "setting": "你快赶不上火车了,在街上拦了一辆出租车。", + "turns": [ + { + "ai": "Hi. It's cold outside! Where are you going?", + "goal": "说去火车站,你赶时间", + "model": "To the train station, please. I'm in a hurry.", + "zh": "请去火车站。我赶时间。", + "itemIds": [ + "A1-U10-P01", + "A1-U10-P05" + ] + }, + { + "ai": "OK. Be careful with the door. What time is your train?", + "goal": "说十点,问要多久", + "model": "At ten. How long does it take?", + "zh": "十点。要多久?", + "itemIds": [ + "A1-U10-P03" + ] + }, + { + "ai": "About fifteen minutes. There is a lot of traffic on the bridge.", + "goal": "问有没有别的路", + "model": "A lot of traffic? Is there another way?", + "zh": "车很多?有别的路吗?", + "itemIds": [ + "A1-U10-W02" + ] + }, + { + "ai": "Yes. We can go through the park. I can drive quickly.", + "goal": "请司机小心开车", + "model": "Great, but please drive carefully.", + "zh": "太好了,不过请小心开车。", + "itemIds": [ + "A1-U10-P10" + ] + }, + { + "ai": "Here is the station, and you're not late yet. That's twelve dollars.", + "goal": "付十五美元,不用找零", + "model": "Here's fifteen. Keep the change.", + "zh": "这是十五美元。不用找了。", + "itemIds": [ + "A1-U10-P09" + ] + } + ] + }, + { + "id": "A1-U10-C3", + "kind": "variant", + "title": "司机不打表", + "learnerRole": "乘客", + "aiRole": "出租车司机", + "setting": "晚上你在酒店门口打车去一家餐厅,但司机不想打表。", + "turns": [ + { + "ai": "Hi. Taxi? It's busy tonight.", + "goal": "说要打车,给地址", + "model": "Yes, a taxi, please. Take me to this address.", + "zh": "是的,要打车。请带我去这个地址。", + "itemIds": [ + "A1-U10-W01", + "A1-U10-P01" + ] + }, + { + "ai": "That restaurant? Twenty dollars.", + "goal": "请司机打表", + "model": "Please use the meter.", + "zh": "请打表。", + "itemIds": [ + "A1-U10-P06" + ] + }, + { + "ai": "The meter doesn't work today. It's the same price.", + "goal": "问要多久", + "model": "How long does it take?", + "zh": "要多长时间?", + "itemIds": [ + "A1-U10-P03" + ] + }, + { + "ai": "Ten minutes. Do you want the radio or some music?", + "goal": "说太贵了,请司机在这里停车,你换一辆车", + "model": "No, thanks. Can you stop here, please? I want a different taxi.", + "zh": "不用了,谢谢。请在这里停车,我换一辆车。", + "itemIds": [ + "A1-U10-P04", + "A1-U10-W01" + ] + }, + { + "ai": "OK, OK. The meter works now. It's already on.", + "goal": "回应,再问这条路对不对", + "model": "Thank you. Is this the right way to the restaurant?", + "zh": "谢谢。这是去餐厅的路吗?", + "itemIds": [ + "A1-U10-P08" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U10-T1", + "sceneId": "A1-U10-C1", + "goal": "从机场打车去酒店:说目的地、问价格和时间、要求打表、确认路线、下车拿行李", + "itemIds": [ + "A1-U10-P01", + "A1-U10-P02", + "A1-U10-P03", + "A1-U10-P05", + "A1-U10-P06", + "A1-U10-P08", + "A1-U10-P10", + "A1-U10-P04", + "A1-U10-P07" + ], + "slots": [ + "目的地", + "价格", + "路线" + ] + }, + { + "id": "A1-U10-T2", + "sceneId": "A1-U10-C2", + "goal": "赶火车时说明赶时间,问时间和路线,付钱下车", + "itemIds": [ + "A1-U10-P01", + "A1-U10-P05", + "A1-U10-P03", + "A1-U10-W02", + "A1-U10-P10", + "A1-U10-P09" + ], + "slots": [ + "目的地", + "时间", + "付款" + ] + }, + { + "id": "A1-U10-T3", + "sceneId": "A1-U10-C3", + "goal": "司机不打表时坚持打表,必要时换车", + "itemIds": [ + "A1-U10-W01", + "A1-U10-P01", + "A1-U10-P06", + "A1-U10-P03", + "A1-U10-P04", + "A1-U10-P08" + ], + "slots": [ + "目的地", + "打表" + ] + } + ], + "materials": [ + { + "id": "A1-U10-M1", + "mode": "listening", + "title": "打车去机场", + "text": "Hello, taxi? Good. Please take me to the airport quickly; I'm in a hurry. Is this the right way? Please use the meter. My bag is in the back; my phone is in my pocket. How much is it, and how long does it take? About thirty minutes? The traffic is busy tonight. The radio says there is an accident on the highway, so maybe there is a jam. Please drive carefully. Are we almost there? We are near the airport gate now. You can stop here at the entrance. Keep the change. Thank you!", + "glosses": { + "bad": "糟糕的", + "meter": "计价器", + "maybe": "也许" + }, + "questions": [ + { + "type": "gist", + "question": "说话人要去哪里?", + "options": [ + "机场", + "火车站", + "酒店" + ] + }, + { + "type": "detail", + "question": "收音机里说高速路上怎么了?", + "options": [ + "出了事故,可能堵车", + "天气很好", + "没有车" + ] + } + ] + }, + { + "id": "A1-U10-M2", + "mode": "reading", + "title": "读一段对话:打车去酒店", + "text": "Ben: Take me to this hotel, please. Can you use the meter?\nDriver: Sure. It's about twenty minutes, but the road is busy.\nBen: I'm in a hurry. Is this the right way? Is it the correct road?\nDriver: Yes, but there is a traffic jam near the city center. Let's take a different way.\nBen: OK. Please drive carefully. Are we almost there?\nDriver: Almost. The hotel is just in front of us. We arrive soon.\nBen: Great. Can you stop at the entrance? Please put my suitcase on the ground; don't drop it.\nDriver: Of course. That's fifteen dollars.\nBen: Here is twenty. Keep the change. Is the airport far from here for tonight?\nDriver: Not far. Call me anytime. Be careful with your bag!\nBen: Thank you!", + "glosses": { + "tomorrow": "明天", + "course": "of course 当然", + "different": "不同的", + "ground": "地面", + "anytime": "随时", + "call": "打电话", + "drop": "掉落" + }, + "questions": [ + { + "type": "detail", + "question": "司机说路上情况怎么样?", + "options": [ + "很堵,要换条路", + "路很空", + "下雨了" + ] + }, + { + "type": "detail", + "question": "车费多少钱?", + "options": [ + "十五美元", + "二十美元", + "三十美元" + ] + } + ] + } + ], + "excluded": [ + { + "en": "trunk / boot / luggage", + "reason": "B1–B2;A1 用 suitcase 表达行李" + }, + { + "en": "route", + "reason": "B2;A1 用 the right way 确认路线" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U11.json b/kouyu_english/assets/courses/A1/A1-U11.json new file mode 100644 index 0000000..83494e4 --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U11.json @@ -0,0 +1,966 @@ +{ + "schemaVersion": 1, + "id": "A1-U11", + "revision": 1, + "level": "A1", + "title": "我的一天", + "categories": [ + "日常" + ], + "canDo": "说作息和常做的事", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "59", + "use": "active" + }, + { + "id": "60", + "use": "active" + }, + { + "id": "32", + "use": "active" + }, + { + "id": "101", + "use": "active" + }, + { + "id": "55", + "use": "active", + "reason": "只用 get up、go to bed 等固定搭配" + } + ], + "coreItems": [ + { + "id": "A1-U11-P01", + "type": "phrase", + "en": "I get up at seven.", + "zh": "我七点起床。", + "sceneWord": false, + "match": [ + [ + "get up", + "gets up" + ] + ], + "example": { + "en": "He gets up at six thirty.", + "zh": "他六点半起床。" + }, + "review": { + "prompt": "说你几点起床。" + } + }, + { + "id": "A1-U11-P02", + "type": "phrase", + "en": "What time do you get up?", + "zh": "你几点起床?", + "sceneWord": false, + "match": [ + [ + "what time do you", + "what time does" + ] + ], + "example": { + "en": "What time do you go to work?", + "zh": "你几点去上班?" + }, + "review": { + "prompt": "问新室友几点起床。" + } + }, + { + "id": "A1-U11-P03", + "type": "phrase", + "en": "I have breakfast at home.", + "zh": "我在家吃早饭。", + "sceneWord": false, + "match": [ + [ + "have breakfast", + "has breakfast", + "have lunch", + "has lunch", + "have dinner", + "has dinner" + ] + ], + "example": { + "en": "I have lunch at twelve.", + "zh": "我十二点吃午饭。" + }, + "review": { + "prompt": "说你在家吃早饭。" + } + }, + { + "id": "A1-U11-P04", + "type": "phrase", + "en": "I go to work at eight.", + "zh": "我八点去上班。", + "sceneWord": false, + "match": [ + [ + "go to work", + "goes to work", + "go to school", + "goes to school" + ] + ], + "example": { + "en": "My son goes to school at eight.", + "zh": "我儿子八点去上学。" + }, + "review": { + "prompt": "说你几点去上班。" + } + }, + { + "id": "A1-U11-W01", + "type": "word", + "en": "usually", + "zh": "通常", + "sceneWord": false, + "match": [ + [ + "usually" + ] + ], + "example": { + "en": "I usually go to work by bus.", + "zh": "我通常坐公交车上班。" + }, + "review": { + "prompt": "说你通常晚上看电视。" + } + }, + { + "id": "A1-U11-W02", + "type": "word", + "en": "always", + "zh": "总是", + "sceneWord": false, + "match": [ + [ + "always" + ] + ], + "example": { + "en": "I always have breakfast.", + "zh": "我总是吃早饭。" + }, + "review": { + "prompt": "说你总是早上洗澡。" + } + }, + { + "id": "A1-U11-W03", + "type": "word", + "en": "never", + "zh": "从不", + "sceneWord": false, + "match": [ + [ + "never" + ] + ], + "example": { + "en": "I never watch TV in the morning.", + "zh": "我早上从不看电视。" + }, + "review": { + "prompt": "说你从不吃早饭。" + } + }, + { + "id": "A1-U11-W04", + "type": "word", + "en": "sometimes", + "zh": "有时候", + "sceneWord": true, + "sceneReason": "sometimes 在 CEFR-J 为 B1,但描述习惯时和 always、usually、never 一样常用", + "match": [ + [ + "sometimes" + ] + ], + "example": { + "en": "I sometimes cook dinner.", + "zh": "我有时候做晚饭。" + }, + "review": { + "prompt": "说你有时候早上跑步。" + } + }, + { + "id": "A1-U11-P05", + "type": "phrase", + "en": "I watch TV in the evening.", + "zh": "我晚上看电视。", + "sceneWord": false, + "match": [ + [ + "in the evening", + "in the morning", + "in the afternoon", + "at night" + ] + ], + "example": { + "en": "I run in the morning.", + "zh": "我早上跑步。" + }, + "review": { + "prompt": "说你晚上常做的一件事。" + } + }, + { + "id": "A1-U11-P06", + "type": "phrase", + "en": "every day", + "zh": "每天", + "sceneWord": false, + "match": [ + [ + "every day" + ] + ], + "example": { + "en": "I read the newspaper every day.", + "zh": "我每天看报纸。" + }, + "review": { + "prompt": "说你每天都喝咖啡。" + } + }, + { + "id": "A1-U11-P07", + "type": "phrase", + "en": "I take a shower.", + "zh": "我洗个澡。", + "sceneWord": false, + "match": [ + [ + "take a shower", + "takes a shower" + ] + ], + "example": { + "en": "I always take a shower in the morning.", + "zh": "我总是早上洗澡。" + }, + "review": { + "prompt": "说你早上先洗澡。" + } + }, + { + "id": "A1-U11-P08", + "type": "phrase", + "en": "I go to bed at eleven.", + "zh": "我十一点睡觉。", + "sceneWord": false, + "match": [ + [ + "go to bed", + "goes to bed" + ] + ], + "example": { + "en": "What time do you go to bed?", + "zh": "你几点睡觉?" + }, + "review": { + "prompt": "说你通常十二点睡觉。" + } + }, + { + "id": "A1-U11-P09", + "type": "phrase", + "en": "In my free time, I read books.", + "zh": "空闲时我看书。", + "sceneWord": false, + "match": [ + [ + "free time" + ] + ], + "example": { + "en": "In my free time, I watch videos.", + "zh": "空闲时我玩电子游戏。" + }, + "review": { + "prompt": "说你空闲时喜欢做什么。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U11-R01", + "en": "wake", + "zh": "醒来(wake up)" + }, + { + "id": "A1-U11-R02", + "en": "sleep", + "zh": "睡觉" + }, + { + "id": "A1-U11-R03", + "en": "wash", + "zh": "洗" + }, + { + "id": "A1-U11-R04", + "en": "clean", + "zh": "打扫;干净的" + }, + { + "id": "A1-U11-R05", + "en": "brush", + "zh": "刷" + }, + { + "id": "A1-U11-R06", + "en": "tooth", + "zh": "牙齿(复数 teeth)" + }, + { + "id": "A1-U11-R07", + "en": "cook", + "zh": "做饭" + }, + { + "id": "A1-U11-R08", + "en": "school", + "zh": "学校" + }, + { + "id": "A1-U11-R09", + "en": "study", + "zh": "学习" + }, + { + "id": "A1-U11-R10", + "en": "teach", + "zh": "教" + }, + { + "id": "A1-U11-R11", + "en": "learn", + "zh": "学" + }, + { + "id": "A1-U11-R12", + "en": "newspaper", + "zh": "报纸" + }, + { + "id": "A1-U11-R13", + "en": "afternoon", + "zh": "下午" + }, + { + "id": "A1-U11-R14", + "en": "start", + "zh": "开始" + }, + { + "id": "A1-U11-R15", + "en": "finish", + "zh": "完成;结束" + }, + { + "id": "A1-U11-R16", + "en": "exercise", + "zh": "锻炼" + }, + { + "id": "A1-U11-R17", + "en": "run", + "zh": "跑步" + }, + { + "id": "A1-U11-R18", + "en": "homework", + "zh": "作业" + }, + { + "id": "A1-U11-R19", + "en": "news", + "zh": "新闻" + }, + { + "id": "A1-U11-R20", + "en": "internet", + "zh": "互联网" + }, + { + "id": "A1-U11-R21", + "en": "computer", + "zh": "电脑" + }, + { + "id": "A1-U11-R22", + "en": "video", + "zh": "视频" + }, + { + "id": "A1-U11-R23", + "en": "song", + "zh": "歌曲" + }, + { + "id": "A1-U11-R24", + "en": "sing", + "zh": "唱歌" + }, + { + "id": "A1-U11-R25", + "en": "dance", + "zh": "跳舞" + }, + { + "id": "A1-U11-R26", + "en": "draw", + "zh": "画画" + }, + { + "id": "A1-U11-R27", + "en": "swim", + "zh": "游泳" + }, + { + "id": "A1-U11-R28", + "en": "weekend", + "zh": "周末" + }, + { + "id": "A1-U11-R29", + "en": "week", + "zh": "星期;周" + }, + { + "id": "A1-U11-R30", + "en": "life", + "zh": "生活" + } + ], + "segments": [ + { + "id": "A1-U11-S1", + "title": "早上的安排", + "minutes": 13, + "itemIds": [ + "A1-U11-P01", + "A1-U11-P02", + "A1-U11-P03", + "A1-U11-P07", + "A1-U11-P04" + ], + "listening": { + "text": "What time do you get up? I get up at six thirty. I take a shower and have breakfast at home. I go to work at seven thirty.", + "question": "说话人几点去上班?", + "options": [ + "七点半", + "六点半", + "八点" + ] + }, + "speaking": [ + { + "text": "I get up at seven.", + "tip": "get up 连读成 /ɡe tʌp/" + }, + { + "text": "What time do you get up?" + }, + { + "text": "I take a shower." + }, + { + "text": "I have breakfast at home." + }, + { + "text": "I go to work at eight." + } + ], + "reading": { + "text": "Mark's morning\nMark wakes up at 6:00. He washes his face and brushes his teeth. He takes a shower. Then he cooks breakfast: eggs and bread.\nAt 7:30, he goes to work. His office is near his home.", + "question": "Mark 早饭吃什么?", + "options": [ + "鸡蛋和面包", + "米饭和汤", + "咖啡和蛋糕" + ] + }, + "writing": { + "prompt": "写两句话:你几点起床、几点去上班。", + "example": "I get up at seven. I go to work at eight.", + "itemIds": [ + "A1-U11-P01", + "A1-U11-P04" + ] + }, + "independent": { + "prompt": "用英语按顺序说说你平时早上做的几件事。", + "itemIds": [ + "A1-U11-P01", + "A1-U11-P07", + "A1-U11-P03", + "A1-U11-P04" + ] + } + }, + { + "id": "A1-U11-S2", + "title": "总是、通常、有时、从不", + "minutes": 13, + "itemIds": [ + "A1-U11-W01", + "A1-U11-W02", + "A1-U11-W03", + "A1-U11-W04", + "A1-U11-P06" + ], + "listening": { + "text": "I always have breakfast. I usually go to work by bus. I sometimes run in the morning. I never watch TV in the morning.", + "question": "说话人早上从不做什么?", + "options": [ + "看电视", + "跑步", + "吃早饭" + ] + }, + "speaking": [ + { + "text": "I always have breakfast." + }, + { + "text": "I usually go to work by bus.", + "tip": "usually 读作 /ˈjuːʒuəli/" + }, + { + "text": "I sometimes cook dinner." + }, + { + "text": "I never watch TV in the morning." + }, + { + "text": "I read the newspaper every day." + } + ], + "reading": { + "text": "How often do you exercise?\nAnna: I run every day. I always go before work.\nTom: I usually swim on the weekend.\nLily: I sometimes dance at home.\nBen: I never exercise. I'm always busy!", + "question": "谁每天跑步?", + "options": [ + "Anna", + "Tom", + "Ben" + ] + }, + "writing": { + "prompt": "写两句话:说一件你总是做的事和一件你从不做的事。", + "example": "I always have breakfast. I never watch TV in the morning.", + "itemIds": [ + "A1-U11-W02", + "A1-U11-W03" + ] + }, + "independent": { + "prompt": "用 usually、sometimes、never 各说一件你的习惯。", + "itemIds": [ + "A1-U11-W01", + "A1-U11-W04", + "A1-U11-W03" + ] + } + }, + { + "id": "A1-U11-S3", + "title": "晚上和空闲时间", + "minutes": 12, + "itemIds": [ + "A1-U11-P05", + "A1-U11-P08", + "A1-U11-P09" + ], + "listening": { + "text": "What do you do in the evening? I usually cook dinner and watch TV. In my free time, I read books or watch videos. I go to bed at eleven.", + "question": "说话人几点睡觉?", + "options": [ + "十一点", + "十点", + "十二点" + ] + }, + "speaking": [ + { + "text": "I watch TV in the evening." + }, + { + "text": "In my free time, I read books." + }, + { + "text": "I go to bed at eleven." + }, + { + "text": "I study English at night." + } + ], + "reading": { + "text": "My week\nI'm a teacher. I teach at a school five days a week. After school, I finish my work and learn English on the computer.\nIn the evening, I listen to the news and songs on the internet. I sometimes sing and draw.\nMy life is busy, but I love it. On the weekend, I sleep late.", + "question": "这位老师晚上做什么?", + "options": [ + "在网上听新闻和歌", + "去学校上课", + "很早睡觉" + ] + }, + "writing": { + "prompt": "写两句话:你晚上常做什么、几点睡觉。", + "example": "I watch TV in the evening. I go to bed at eleven.", + "itemIds": [ + "A1-U11-P05", + "A1-U11-P08" + ] + }, + "independent": { + "prompt": "用英语说说你空闲时喜欢做的两件事。", + "itemIds": [ + "A1-U11-P09", + "A1-U11-P05" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U11-C1", + "kind": "main", + "title": "和语言伙伴聊作息", + "learnerRole": "你", + "aiRole": "语言交换伙伴", + "setting": "你和语言交换伙伴视频聊天,互相问对方平时一天怎么过。", + "turns": [ + { + "ai": "So, what time do you get up?", + "goal": "说你七点起床", + "model": "I get up at seven.", + "zh": "我七点起床。", + "itemIds": [ + "A1-U11-P01" + ] + }, + { + "ai": "Seven? That's early! What do you do in the morning?", + "goal": "说你洗澡、在家吃早饭", + "model": "I take a shower and have breakfast at home.", + "zh": "我洗个澡,在家吃早饭。", + "itemIds": [ + "A1-U11-P07", + "A1-U11-P03" + ] + }, + { + "ai": "Nice. I never have breakfast. I only have a coffee.", + "goal": "说你八点去上班,再问对方几点起床", + "model": "I go to work at eight. What time do you get up?", + "zh": "我八点去上班。你几点起床?", + "itemIds": [ + "A1-U11-P04", + "A1-U11-P02" + ] + }, + { + "ai": "At nine! I work at home on the computer. In the afternoon, I clean the house. What do you do in the evening?", + "goal": "说你通常晚上看电视", + "model": "I usually watch TV in the evening.", + "zh": "我通常晚上看电视。", + "itemIds": [ + "A1-U11-W01", + "A1-U11-P05" + ] + }, + { + "ai": "Me too. And what time do you go to bed?", + "goal": "说十一点睡觉,从不太晚睡", + "model": "I go to bed at eleven. I never go to bed late.", + "zh": "我十一点睡觉,从不晚睡。", + "itemIds": [ + "A1-U11-P08", + "A1-U11-W03" + ] + } + ] + }, + { + "id": "A1-U11-C2", + "kind": "variant", + "title": "体检时回答生活习惯", + "learnerRole": "病人", + "aiRole": "护士", + "setting": "体检时护士问你平时的生活习惯。", + "turns": [ + { + "ai": "Hello. I have some questions about your day. Do you exercise?", + "goal": "说你有时候早上跑步", + "model": "Yes, I sometimes run in the morning.", + "zh": "有,我有时候早上跑步。", + "itemIds": [ + "A1-U11-W04", + "A1-U11-P05" + ] + }, + { + "ai": "Good. Do you have breakfast every day?", + "goal": "说你总是吃早饭", + "model": "Yes, I always have breakfast.", + "zh": "是的,我总是吃早饭。", + "itemIds": [ + "A1-U11-W02", + "A1-U11-P03" + ] + }, + { + "ai": "What time do you go to bed?", + "goal": "说通常十二点睡觉", + "model": "I usually go to bed at twelve.", + "zh": "我通常十二点睡觉。", + "itemIds": [ + "A1-U11-W01", + "A1-U11-P08" + ] + }, + { + "ai": "That's late. How many hours do you sleep?", + "goal": "说每天睡七个小时", + "model": "I sleep seven hours every day.", + "zh": "我每天睡七个小时。", + "itemIds": [ + "A1-U11-P06" + ] + }, + { + "ai": "OK. And in your free time?", + "goal": "说空闲时你看书", + "model": "In my free time, I read books.", + "zh": "空闲时我看书。", + "itemIds": [ + "A1-U11-P09" + ] + } + ] + }, + { + "id": "A1-U11-C3", + "kind": "variant", + "title": "和新室友商量早上的时间", + "learnerRole": "室友", + "aiRole": "新室友", + "setting": "你和新室友住在一起,商量早上谁先用浴室。", + "turns": [ + { + "ai": "Hi! What time do you get up?", + "goal": "说你六点半起床", + "model": "I get up at six thirty.", + "zh": "我六点半起床。", + "itemIds": [ + "A1-U11-P01" + ] + }, + { + "ai": "Oh, I get up at seven. Do you take a shower in the morning?", + "goal": "说你总是早上洗澡", + "model": "Yes, I always take a shower in the morning.", + "zh": "是的,我总是早上洗澡。", + "itemIds": [ + "A1-U11-W02", + "A1-U11-P07", + "A1-U11-P05" + ] + }, + { + "ai": "OK. You can use the bathroom first. What time do you go to work?", + "goal": "说你七点半去上班", + "model": "I go to work at seven thirty.", + "zh": "我七点半去上班。", + "itemIds": [ + "A1-U11-P04" + ] + }, + { + "ai": "I start school at nine. I'm a student. Do you have breakfast at home?", + "goal": "说有时候在家吃,再问对方几点睡觉", + "model": "Sometimes. What time do you go to bed?", + "zh": "有时候。你几点睡觉?", + "itemIds": [ + "A1-U11-W04", + "A1-U11-P08" + ] + }, + { + "ai": "Usually at twelve. I do my homework late.", + "goal": "说你十一点睡觉,请对方晚上安静一点", + "model": "I go to bed at eleven. Please be quiet at night.", + "zh": "我十一点睡觉。晚上请安静一点。", + "itemIds": [ + "A1-U11-P08", + "A1-U11-P05" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U11-T1", + "sceneId": "A1-U11-C1", + "goal": "和语言伙伴互相介绍一天的作息", + "itemIds": [ + "A1-U11-P01", + "A1-U11-P07", + "A1-U11-P03", + "A1-U11-P04", + "A1-U11-P02", + "A1-U11-W01", + "A1-U11-P05", + "A1-U11-P08", + "A1-U11-W03" + ], + "slots": [ + "起床", + "上班", + "晚上", + "睡觉" + ] + }, + { + "id": "A1-U11-T2", + "sceneId": "A1-U11-C2", + "goal": "回答护士关于运动、早饭、睡眠和空闲时间的问题", + "itemIds": [ + "A1-U11-W04", + "A1-U11-P05", + "A1-U11-W02", + "A1-U11-P03", + "A1-U11-W01", + "A1-U11-P08", + "A1-U11-P06", + "A1-U11-P09" + ], + "slots": [ + "运动", + "早饭", + "睡眠" + ] + }, + { + "id": "A1-U11-T3", + "sceneId": "A1-U11-C3", + "goal": "和室友商量早上的时间安排", + "itemIds": [ + "A1-U11-P01", + "A1-U11-W02", + "A1-U11-P07", + "A1-U11-P05", + "A1-U11-P04", + "A1-U11-W04", + "A1-U11-P08" + ], + "slots": [ + "起床时间", + "洗澡", + "睡觉时间" + ] + } + ], + "materials": [ + { + "id": "A1-U11-M1", + "mode": "listening", + "title": "介绍我的一天", + "text": "This is my normal day. I wake up at seven and get up. I wash my face and brush my teeth, then I take a shower. I have breakfast and clean the kitchen. I go to school at eight to study and learn. I usually eat lunch with friends. In the afternoon my classes start again, and I do my homework. I finish at five. In the evening I sometimes cook, read the newspaper, or watch the news on TV. In my free time I run, swim, sing, dance or draw. On the weekend I use the internet and watch videos. I never sleep late; I go to bed at eleven.", + "glosses": { + "normal": "平常的", + "teeth": "牙齿", + "classes": "(复数)课" + }, + "questions": [ + { + "type": "gist", + "question": "这段话主要讲什么?", + "options": [ + "说话人每天的作息和常做的事", + "一次旅行", + "怎么买衣服" + ] + }, + { + "type": "detail", + "question": "说话人早上先做什么?", + "options": [ + "洗脸、刷牙", + "去上学", + "做作业" + ] + } + ] + }, + { + "id": "A1-U11-M2", + "mode": "reading", + "title": "读一段对话:聊日常和爱好", + "text": "Mia: What time do you wake up?\nBen: I usually wake up at six thirty and go for a run. And you?\nMia: I never get up early! I wash and brush my teeth at eight.\nBen: Do you go to school?\nMia: Yes, I study music at college. I teach a small class on the weekend too.\nBen: What do you do in your free time?\nMia: I sing, dance and draw. Sometimes I swim. I like this life! What about you?\nBen: After work I clean the house, cook, and read the news on the internet.\nMia: Do you watch TV?\nBen: No, I never watch TV. But I like videos and songs.\nMia: Me too. Let's swim together this weekend!", + "glosses": { + "together": "一起", + "college": "大学", + "class": "课" + }, + "questions": [ + { + "type": "detail", + "question": "Mia 空闲时喜欢做什么?", + "options": [ + "唱歌、跳舞、画画", + "跑步", + "看电视" + ] + }, + { + "type": "detail", + "question": "关于看电视,Ben 怎么说?", + "options": [ + "他从不看电视", + "他每天看电视", + "他晚上看电视" + ] + } + ] + } + ], + "excluded": [ + { + "en": "routine", + "reason": "B1;A1 用 my day 表达" + }, + { + "en": "gym", + "reason": "B1;A1 用 exercise / run / swim 表达运动" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U12.json b/kouyu_english/assets/courses/A1/A1-U12.json new file mode 100644 index 0000000..423d514 --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U12.json @@ -0,0 +1,971 @@ +{ + "schemaVersion": 1, + "id": "A1-U12", + "revision": 1, + "level": "A1", + "title": "买衣服", + "categories": [ + "日常" + ], + "canDo": "问尺码和颜色、试穿", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "123", + "use": "active" + }, + { + "id": "8", + "use": "active" + }, + { + "id": "38", + "use": "active", + "reason": "只用 bigger、smaller 这类单音节比较级" + }, + { + "id": "16", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "A1-U12-P01", + "type": "phrase", + "en": "Just looking, thanks.", + "zh": "我只是看看,谢谢。", + "sceneWord": false, + "match": [ + [ + "just looking" + ] + ], + "example": { + "en": "No, thanks. I'm just looking.", + "zh": "不用了,谢谢,我只是看看。" + }, + "review": { + "prompt": "店员问你要不要帮忙,说你只是看看。" + } + }, + { + "id": "A1-U12-W01", + "type": "word", + "en": "clothes", + "zh": "衣服", + "sceneWord": false, + "match": [ + [ + "clothes" + ] + ], + "example": { + "en": "I need some new clothes.", + "zh": "我需要几件新衣服。" + }, + "review": { + "prompt": "说你想买些衣服。" + } + }, + { + "id": "A1-U12-W02", + "type": "word", + "en": "shirt", + "zh": "衬衫", + "sceneWord": false, + "match": [ + [ + "shirt", + "shirts" + ] + ], + "example": { + "en": "I'm looking for a white shirt.", + "zh": "我在找一件白衬衫。" + }, + "review": { + "prompt": "说你要找一件衬衫。" + } + }, + { + "id": "A1-U12-W03", + "type": "word", + "en": "jacket", + "zh": "夹克;外套", + "sceneWord": false, + "match": [ + [ + "jacket", + "jackets" + ] + ], + "example": { + "en": "This jacket is very nice.", + "zh": "这件夹克很好看。" + }, + "review": { + "prompt": "说你喜欢这件夹克。" + } + }, + { + "id": "A1-U12-P02", + "type": "phrase", + "en": "a pair of shoes", + "zh": "一双鞋", + "sceneWord": false, + "match": [ + [ + "a pair of" + ] + ], + "example": { + "en": "I want a pair of black shoes.", + "zh": "我想要一双黑鞋。" + }, + "review": { + "prompt": "说你想买一双鞋。" + } + }, + { + "id": "A1-U12-P03", + "type": "phrase", + "en": "Can I try it on?", + "zh": "我可以试穿吗?", + "sceneWord": false, + "match": [ + [ + "try it on", + "try them on", + "try this on", + "try these on" + ] + ], + "example": { + "en": "These shoes are nice. Can I try them on?", + "zh": "这双鞋不错,我可以试穿吗?" + }, + "review": { + "prompt": "问店员能不能试穿。" + } + }, + { + "id": "A1-U12-P04", + "type": "phrase", + "en": "Where is the changing room?", + "zh": "试衣间在哪儿?", + "sceneWord": false, + "match": [ + [ + "changing room" + ] + ], + "example": { + "en": "The changing room is next to the mirror.", + "zh": "试衣间在镜子旁边。" + }, + "review": { + "prompt": "问试衣间在哪里。" + } + }, + { + "id": "A1-U12-P05", + "type": "phrase", + "en": "It's too small.", + "zh": "太小了。", + "sceneWord": false, + "match": [ + [ + "too small", + "too big", + "too long", + "too short" + ] + ], + "example": { + "en": "These pants are too long.", + "zh": "这条裤子太长了。" + }, + "review": { + "prompt": "说这件外套太大了。" + } + }, + { + "id": "A1-U12-P06", + "type": "phrase", + "en": "Do you have a bigger size?", + "zh": "有大一号的吗?", + "sceneWord": false, + "match": [ + [ + "bigger size", + "smaller size" + ] + ], + "example": { + "en": "Do you have a smaller size?", + "zh": "有小一号的吗?" + }, + "review": { + "prompt": "问有没有小一号的。" + } + }, + { + "id": "A1-U12-P07", + "type": "phrase", + "en": "It doesn't fit.", + "zh": "不合身。", + "sceneWord": true, + "sceneReason": "fit 在 CEFR-J 为 B1 动词,但试衣服时说“不合身”离不开它", + "match": [ + [ + "doesn't fit", + "don't fit", + "fits" + ] + ], + "example": { + "en": "These shoes don't fit.", + "zh": "这双鞋不合脚。" + }, + "review": { + "prompt": "说这件衬衫不合身。" + } + }, + { + "id": "A1-U12-P08", + "type": "phrase", + "en": "Do you have it in blue?", + "zh": "有蓝色的吗?", + "sceneWord": false, + "match": [ + [ + "in blue", + "in black", + "in red", + "in white" + ] + ], + "example": { + "en": "Do you have this jacket in black?", + "zh": "这件夹克有黑色的吗?" + }, + "review": { + "prompt": "问这件衬衫有没有白色的。" + } + }, + { + "id": "A1-U12-P09", + "type": "phrase", + "en": "It looks good on you.", + "zh": "你穿着很好看。", + "sceneWord": false, + "match": [ + [ + "looks good on", + "look good on" + ] + ], + "example": { + "en": "Those shoes look good on you.", + "zh": "那双鞋你穿着很好看。" + }, + "review": { + "prompt": "夸朋友穿这件外套好看。" + } + }, + { + "id": "A1-U12-P10", + "type": "phrase", + "en": "I'll think about it.", + "zh": "我再考虑一下。", + "sceneWord": false, + "match": [ + [ + "think about it" + ] + ], + "example": { + "en": "It's nice, but I'll think about it.", + "zh": "挺好的,不过我再考虑一下。" + }, + "review": { + "prompt": "不想马上买,礼貌地说再考虑一下。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U12-R01", + "en": "color", + "zh": "颜色" + }, + { + "id": "A1-U12-R02", + "en": "red", + "zh": "红色的" + }, + { + "id": "A1-U12-R03", + "en": "green", + "zh": "绿色的" + }, + { + "id": "A1-U12-R04", + "en": "yellow", + "zh": "黄色的" + }, + { + "id": "A1-U12-R05", + "en": "white", + "zh": "白色的" + }, + { + "id": "A1-U12-R06", + "en": "gray", + "zh": "灰色的" + }, + { + "id": "A1-U12-R07", + "en": "pink", + "zh": "粉色的" + }, + { + "id": "A1-U12-R08", + "en": "purple", + "zh": "紫色的" + }, + { + "id": "A1-U12-R09", + "en": "T-shirt", + "zh": "T 恤" + }, + { + "id": "A1-U12-R10", + "en": "dress", + "zh": "连衣裙" + }, + { + "id": "A1-U12-R11", + "en": "skirt", + "zh": "裙子" + }, + { + "id": "A1-U12-R12", + "en": "jeans", + "zh": "牛仔裤" + }, + { + "id": "A1-U12-R13", + "en": "pants", + "zh": "裤子" + }, + { + "id": "A1-U12-R14", + "en": "coat", + "zh": "大衣" + }, + { + "id": "A1-U12-R15", + "en": "cap", + "zh": "帽子(有檐的)" + }, + { + "id": "A1-U12-R16", + "en": "sweater", + "zh": "毛衣" + }, + { + "id": "A1-U12-R17", + "en": "sock", + "zh": "袜子" + }, + { + "id": "A1-U12-R18", + "en": "tight", + "zh": "紧的" + }, + { + "id": "A1-U12-R19", + "en": "mirror", + "zh": "镜子" + }, + { + "id": "A1-U12-R20", + "en": "style", + "zh": "款式" + }, + { + "id": "A1-U12-R21", + "en": "lovely", + "zh": "可爱的;漂亮的" + }, + { + "id": "A1-U12-R22", + "en": "ugly", + "zh": "难看的" + }, + { + "id": "A1-U12-R23", + "en": "favorite", + "zh": "最喜欢的" + }, + { + "id": "A1-U12-R24", + "en": "button", + "zh": "纽扣" + }, + { + "id": "A1-U12-R25", + "en": "present", + "zh": "礼物" + }, + { + "id": "A1-U12-R26", + "en": "girlfriend", + "zh": "女朋友" + }, + { + "id": "A1-U12-R27", + "en": "boyfriend", + "zh": "男朋友" + }, + { + "id": "A1-U12-R28", + "en": "lady", + "zh": "女士" + }, + { + "id": "A1-U12-R29", + "en": "sir", + "zh": "先生" + }, + { + "id": "A1-U12-R30", + "en": "toy", + "zh": "玩具" + }, + { + "id": "A1-U12-R31", + "en": "jewelry", + "zh": "首饰" + }, + { + "id": "A1-U12-R32", + "en": "notebook", + "zh": "笔记本" + }, + { + "id": "A1-U12-R33", + "en": "pencil", + "zh": "铅笔" + }, + { + "id": "A1-U12-R34", + "en": "bookstore", + "zh": "书店" + }, + { + "id": "A1-U12-R35", + "en": "kid", + "zh": "小孩" + } + ], + "segments": [ + { + "id": "A1-U12-S1", + "title": "逛店和找衣服", + "minutes": 12, + "itemIds": [ + "A1-U12-P01", + "A1-U12-W01", + "A1-U12-W02", + "A1-U12-W03", + "A1-U12-P02" + ], + "listening": { + "text": "Can I help you? No, thanks. I'm just looking. OK. The shirts are over there, and the jackets are next to the mirror.", + "question": "夹克在哪里?", + "options": [ + "镜子旁边", + "门口", + "楼上" + ] + }, + "speaking": [ + { + "text": "Just looking, thanks." + }, + { + "text": "I need some new clothes.", + "tip": "clothes 读 /kləʊðz/,不要读成两个音节" + }, + { + "text": "I'm looking for a white shirt." + }, + { + "text": "This jacket is very nice." + }, + { + "text": "I want a pair of black shoes." + } + ], + "reading": { + "text": "City Store\nFloor 1: shoes, bags, jewelry and caps\nFloor 2: lady's clothes: dresses, skirts and T-shirts\nFloor 3: men's clothes: shirts, jackets, coats and jeans\nFloor 4: kids' clothes and toys\nFloor 5: bookstore: books, notebooks and pencils", + "question": "买男士夹克去几楼?", + "options": [ + "三楼", + "二楼", + "四楼" + ] + }, + "writing": { + "prompt": "写两句话:你在找什么衣服、想要一双什么颜色的鞋。", + "example": "I'm looking for a jacket. I want a pair of black shoes.", + "itemIds": [ + "A1-U12-W03", + "A1-U12-P02" + ] + }, + "independent": { + "prompt": "用英语说说你今天想买的两件衣服。", + "itemIds": [ + "A1-U12-W01", + "A1-U12-W02", + "A1-U12-W03" + ] + } + }, + { + "id": "A1-U12-S2", + "title": "试穿与尺码", + "minutes": 13, + "itemIds": [ + "A1-U12-P03", + "A1-U12-P04", + "A1-U12-P05", + "A1-U12-P06", + "A1-U12-P07" + ], + "listening": { + "text": "Can I try it on? Sure. The changing room is over there. ... Oh, it's too small. It doesn't fit. Do you have a bigger size? Yes, here you are.", + "question": "顾客遇到什么问题?", + "options": [ + "衣服太小", + "衣服太贵", + "试衣间有人" + ] + }, + "speaking": [ + { + "text": "Can I try it on?" + }, + { + "text": "Where is the changing room?" + }, + { + "text": "It's too small." + }, + { + "text": "Do you have a bigger size?", + "tip": "bigger 重音在前:BIG-ger" + }, + { + "text": "It doesn't fit." + } + ], + "reading": { + "text": "Size help\nS = small L = large\nTry this: Is your T-shirt tight? Then try a bigger size. Is it too long? Then try a smaller size.\nPants and jeans: sit down in the changing room. Are they OK?", + "question": "衣服太紧应该怎么办?", + "options": [ + "换大一号", + "换小一号", + "换一种颜色" + ] + }, + "writing": { + "prompt": "写两句话:这件太小了,问有没有大一号。", + "example": "It's too small. Do you have a bigger size?", + "itemIds": [ + "A1-U12-P05", + "A1-U12-P06" + ] + }, + "independent": { + "prompt": "你试穿的鞋太大,用英语告诉店员并要小一号。", + "itemIds": [ + "A1-U12-P07", + "A1-U12-P05", + "A1-U12-P06" + ] + } + }, + { + "id": "A1-U12-S3", + "title": "颜色和决定", + "minutes": 12, + "itemIds": [ + "A1-U12-P08", + "A1-U12-P09", + "A1-U12-P10" + ], + "listening": { + "text": "I like this dress, but do you have it in blue? Sorry, we only have it in red and pink. Oh, it's lovely, but I'll think about it.", + "question": "顾客想要什么颜色?", + "options": [ + "蓝色", + "红色", + "粉色" + ] + }, + "speaking": [ + { + "text": "Do you have it in blue?" + }, + { + "text": "It looks good on you." + }, + { + "text": "I'll think about it." + }, + { + "text": "My favorite color is green." + } + ], + "reading": { + "text": "A present for my girlfriend\nI want a sweater for my girlfriend. Her favorite colors are purple and gray. In the store, there are yellow, green and white sweaters. The style is nice, but the yellow one is ugly. The lady says, \"Sir, we have it in purple. The buttons are lovely.\" It's a little expensive, so I'll think about it. I buy some socks for my boyfriend too. No, I don't have one!", + "question": "女朋友最喜欢什么颜色?", + "options": [ + "紫色和浅灰色", + "黄色和绿色", + "白色和红色" + ] + }, + "writing": { + "prompt": "写两句话:问有没有蓝色的,然后说再考虑一下。", + "example": "Do you have it in blue? I'll think about it.", + "itemIds": [ + "A1-U12-P08", + "A1-U12-P10" + ] + }, + "independent": { + "prompt": "朋友在试衣服,用英语夸他穿着好看,再说说你最喜欢的颜色。", + "itemIds": [ + "A1-U12-P09", + "A1-U12-P08" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U12-C1", + "kind": "main", + "title": "在服装店买夹克", + "learnerRole": "顾客", + "aiRole": "店员", + "setting": "你在商场的服装店想买一件夹克。", + "turns": [ + { + "ai": "Hello! Can I help you?", + "goal": "说你在找一件夹克", + "model": "Yes, I'm looking for a jacket.", + "zh": "是的,我在找一件夹克。", + "itemIds": [ + "A1-U12-W03" + ] + }, + { + "ai": "The jackets are here. What about this one?", + "goal": "问能不能试穿、试衣间在哪", + "model": "Can I try it on? Where is the changing room?", + "zh": "我可以试穿吗?试衣间在哪儿?", + "itemIds": [ + "A1-U12-P03", + "A1-U12-P04" + ] + }, + { + "ai": "Sure. It's over there, next to the mirror. ... How is it?", + "goal": "说太小了、不合身", + "model": "It's too small. It doesn't fit.", + "zh": "太小了,不合身。", + "itemIds": [ + "A1-U12-P05", + "A1-U12-P07" + ] + }, + { + "ai": "OK. Here is a large. Is it better?", + "goal": "说合身了,问有没有蓝色的", + "model": "It fits. Do you have it in blue?", + "zh": "合身了。有蓝色的吗?", + "itemIds": [ + "A1-U12-P07", + "A1-U12-P08" + ] + }, + { + "ai": "Yes, here you are. It looks good on you!", + "goal": "说你要了", + "model": "I'll take it.", + "zh": "我要了。", + "itemIds": [] + } + ] + }, + { + "id": "A1-U12-C2", + "kind": "variant", + "title": "给朋友挑衣服", + "learnerRole": "朋友", + "aiRole": "正在试衣服的朋友", + "setting": "你陪朋友逛街,朋友在试衣服并问你的意见。", + "turns": [ + { + "ai": "What do you think about this shirt?", + "goal": "夸他穿着好看", + "model": "It looks good on you.", + "zh": "你穿着很好看。", + "itemIds": [ + "A1-U12-P09" + ] + }, + { + "ai": "Thanks! But it's a little tight.", + "goal": "让他问店员要大一号", + "model": "Ask for a bigger size.", + "zh": "问问有没有大一号的。", + "itemIds": [ + "A1-U12-P06" + ] + }, + { + "ai": "OK. Do you like the color?", + "goal": "说你更喜欢白色,问店里有没有白色的", + "model": "I like white. Do they have it in white?", + "zh": "我喜欢白色。他们有白色的吗?", + "itemIds": [ + "A1-U12-P08" + ] + }, + { + "ai": "Yes, but it's very expensive.", + "goal": "说那就只买一双鞋", + "model": "Just buy a pair of shoes.", + "zh": "那就买一双鞋吧。", + "itemIds": [ + "A1-U12-P02" + ] + }, + { + "ai": "Hmm. These shoes are nice.", + "goal": "说你再考虑一下", + "model": "OK, I'll think about it too.", + "zh": "好,我也再考虑一下。", + "itemIds": [ + "A1-U12-P10" + ] + } + ] + }, + { + "id": "A1-U12-C3", + "kind": "variant", + "title": "只是逛逛", + "learnerRole": "顾客", + "aiRole": "热情的店员", + "setting": "你随便逛逛,店员一直来推荐,你要礼貌地回应。", + "turns": [ + { + "ai": "Hi! Are you looking for anything?", + "goal": "说只是看看", + "model": "I'm just looking at the clothes, thanks.", + "zh": "我只是看看衣服,谢谢。", + "itemIds": [ + "A1-U12-P01", + "A1-U12-W01" + ] + }, + { + "ai": "We have new clothes. This dress is on sale!", + "goal": "说你需要的是衬衫,不是连衣裙", + "model": "Thanks, but I need a shirt, not a dress.", + "zh": "谢谢,不过我需要衬衫,不是连衣裙。", + "itemIds": [ + "A1-U12-W02" + ] + }, + { + "ai": "Here are the shirts. Try this one!", + "goal": "问能不能试穿", + "model": "Can I try it on?", + "zh": "我可以试穿吗?", + "itemIds": [ + "A1-U12-P03" + ] + }, + { + "ai": "How is it?", + "goal": "说太长了,不合身", + "model": "It's too long. It doesn't fit.", + "zh": "太长了,不合身。", + "itemIds": [ + "A1-U12-P05", + "A1-U12-P07" + ] + }, + { + "ai": "Do you want a smaller size?", + "goal": "说你再考虑一下", + "model": "No, thanks. I'll think about it.", + "zh": "不用了,谢谢。我再考虑一下。", + "itemIds": [ + "A1-U12-P10" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U12-T1", + "sceneId": "A1-U12-C1", + "goal": "找到合适尺码和颜色的夹克并买下", + "itemIds": [ + "A1-U12-W03", + "A1-U12-P03", + "A1-U12-P04", + "A1-U12-P05", + "A1-U12-P07", + "A1-U12-P08" + ], + "slots": [ + "款式", + "尺码", + "颜色" + ] + }, + { + "id": "A1-U12-T2", + "sceneId": "A1-U12-C2", + "goal": "帮朋友挑衣服并给出建议", + "itemIds": [ + "A1-U12-P09", + "A1-U12-P06", + "A1-U12-P08", + "A1-U12-P02", + "A1-U12-P10" + ], + "slots": [ + "好不好看", + "尺码", + "颜色" + ] + }, + { + "id": "A1-U12-T3", + "sceneId": "A1-U12-C3", + "goal": "礼貌应对店员的推荐", + "itemIds": [ + "A1-U12-P01", + "A1-U12-W02", + "A1-U12-W01", + "A1-U12-P03", + "A1-U12-P05", + "A1-U12-P07", + "A1-U12-P10" + ], + "slots": [ + "只是看看", + "试穿", + "拒绝" + ] + } + ], + "materials": [ + { + "id": "A1-U12-M1", + "mode": "listening", + "title": "店员招呼你试衣服", + "text": "Hello! Are you looking for something? These clothes are on sale. What size are you? We have small, medium and large. This white T-shirt is nice, and the gray sweater is lovely. We also have red skirts, blue jeans, black pants, a warm coat and a yellow cap. Do you want to try it on? The mirror is over there. If it's too tight, tell me and I'll get another size. This pink dress is our favorite style. It looks good on you! Are you buying a present? We have socks, toys and jewelry too. Come and see!", + "glosses": { + "medium": "中号", + "tell": "告诉", + "warm": "暖和的" + }, + "questions": [ + { + "type": "gist", + "question": "店员主要在做什么?", + "options": [ + "帮顾客挑衣服、试穿", + "卖水果", + "问路" + ] + }, + { + "type": "detail", + "question": "店员说镜子在哪里?", + "options": [ + "在那边", + "门口", + "楼上" + ] + } + ] + }, + { + "id": "A1-U12-M2", + "mode": "reading", + "title": "读一段对话:试连衣裙", + "text": "Mia: Excuse me, can I try on this dress? I want it as a present.\nStaff: Sure. What size and color?\nMia: Medium, in purple. Do you have that color?\nStaff: Yes. Here you are. The mirror is over there.\nMia: Hmm, it's too small and tight. It doesn't fit. This button is loose too.\nStaff: Sorry! Let me get a bigger size. How is this one?\nMia: Better! It's a lovely style, not ugly at all. I like the color. How much?\nStaff: Forty dollars. It's our favorite dress this year, sir — I mean, lady!\nMia: I'll take it. Do you have a white one too? And a green cap for a kid?\nStaff: Yes, the caps are near the toys and the notebooks.\nMia: Great, thank you!", + "glosses": { + "staff": "员工,服务员", + "medium": "中号", + "loose": "松的" + }, + "questions": [ + { + "type": "detail", + "question": "Mia 第一次试的裙子怎么样?", + "options": [ + "太小太紧,不合身", + "刚刚好", + "太大了" + ] + }, + { + "type": "detail", + "question": "店员后来给她拿了什么?", + "options": [ + "更大的尺码", + "一双鞋", + "一顶帽子" + ] + } + ] + } + ], + "excluded": [ + { + "en": "medium", + "reason": "B1;尺码表里只作为 M 的说明出现,不单独教" + }, + { + "en": "department store", + "reason": "department 为 B1;A1 用 mall 或 store" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U13.json b/kouyu_english/assets/courses/A1/A1-U13.json new file mode 100644 index 0000000..7d56bba --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U13.json @@ -0,0 +1,975 @@ +{ + "schemaVersion": 1, + "id": "A1-U13", + "revision": 1, + "level": "A1", + "title": "日期与约时间", + "categories": [ + "日常" + ], + "canDo": "说日期、约见面、改时间", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "239", + "use": "active" + }, + { + "id": "236", + "use": "active", + "reason": "CEFR-J 未标级别,When 问句是约时间的必需句型" + }, + { + "id": "120", + "use": "active" + }, + { + "id": "21", + "use": "active", + "reason": "日期用 in March、on Friday、at three" + }, + { + "id": "59-2", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "A1-U13-P01", + "type": "phrase", + "en": "What's the date today?", + "zh": "今天几号?", + "sceneWord": false, + "match": [ + [ + "what's the date", + "what is the date" + ] + ], + "example": { + "en": "What's the date tomorrow?", + "zh": "明天几号?" + }, + "review": { + "prompt": "问今天几号。" + } + }, + { + "id": "A1-U13-P02", + "type": "phrase", + "en": "When is your birthday?", + "zh": "你的生日是哪天?", + "sceneWord": false, + "match": [ + [ + "when is your birthday", + "when's your birthday" + ] + ], + "example": { + "en": "When is your birthday, Anna?", + "zh": "安娜,你的生日是哪天?" + }, + "review": { + "prompt": "问新朋友的生日。" + } + }, + { + "id": "A1-U13-P03", + "type": "phrase", + "en": "My birthday is in March.", + "zh": "我的生日在三月。", + "sceneWord": false, + "match": [ + [ + "in january", + "in february", + "in march", + "in april", + "in may", + "in june", + "in july", + "in august", + "in september", + "in october", + "in november", + "in december" + ] + ], + "example": { + "en": "The party is in July.", + "zh": "聚会在七月。" + }, + "review": { + "prompt": "说你的生日在几月。" + } + }, + { + "id": "A1-U13-P04", + "type": "phrase", + "en": "Are you free on Saturday?", + "zh": "你周六有空吗?", + "sceneWord": false, + "match": [ + [ + "are you free" + ] + ], + "example": { + "en": "Are you free tomorrow?", + "zh": "你明天有空吗?" + }, + "review": { + "prompt": "问朋友周六有没有空。" + } + }, + { + "id": "A1-U13-P05", + "type": "phrase", + "en": "Sorry, I'm busy.", + "zh": "抱歉,我没空。", + "sceneWord": false, + "match": [ + [ + "i'm busy", + "i am busy" + ] + ], + "example": { + "en": "Sorry, I'm busy on Friday.", + "zh": "抱歉,我周五没空。" + }, + "review": { + "prompt": "礼貌地说你那天没空。" + } + }, + { + "id": "A1-U13-P06", + "type": "phrase", + "en": "How about Sunday?", + "zh": "周日怎么样?", + "sceneWord": false, + "match": [ + [ + "how about" + ] + ], + "example": { + "en": "How about next week?", + "zh": "下周怎么样?" + }, + "review": { + "prompt": "提议改到周日。" + } + }, + { + "id": "A1-U13-P07", + "type": "phrase", + "en": "Let's meet at three.", + "zh": "我们三点见吧。", + "sceneWord": false, + "match": [ + [ + "let's meet", + "let us meet" + ] + ], + "example": { + "en": "Let's meet at the station.", + "zh": "我们在车站见吧。" + }, + "review": { + "prompt": "约朋友三点见面。" + } + }, + { + "id": "A1-U13-P08", + "type": "phrase", + "en": "What time is good for you?", + "zh": "你几点方便?", + "sceneWord": false, + "match": [ + [ + "good for you" + ] + ], + "example": { + "en": "Is Friday good for you?", + "zh": "周五你方便吗?" + }, + "review": { + "prompt": "问对方几点方便。" + } + }, + { + "id": "A1-U13-P09", + "type": "phrase", + "en": "See you then.", + "zh": "到时见。", + "sceneWord": false, + "match": [ + [ + "see you then" + ] + ], + "example": { + "en": "OK, Saturday at two. See you then.", + "zh": "好,周六两点。到时见。" + }, + "review": { + "prompt": "约好时间后道别。" + } + }, + { + "id": "A1-U13-P10", + "type": "phrase", + "en": "next week", + "zh": "下周", + "sceneWord": false, + "match": [ + [ + "next week", + "next month", + "next monday", + "next friday" + ] + ], + "example": { + "en": "I'm free next week.", + "zh": "我下周有空。" + }, + "review": { + "prompt": "说你下周有空。" + } + }, + { + "id": "A1-U13-P11", + "type": "phrase", + "en": "Can we change the date?", + "zh": "我们能改个日期吗?", + "sceneWord": false, + "match": [ + [ + "change the date", + "change the time" + ] + ], + "example": { + "en": "Sorry, can we change the time?", + "zh": "抱歉,我们能改个时间吗?" + }, + "review": { + "prompt": "请对方改个日期。" + } + }, + { + "id": "A1-U13-W01", + "type": "word", + "en": "tomorrow", + "zh": "明天", + "sceneWord": false, + "match": [ + [ + "tomorrow" + ] + ], + "example": { + "en": "See you tomorrow!", + "zh": "明天见!" + }, + "review": { + "prompt": "说你明天有空。" + } + }, + { + "id": "A1-U13-W02", + "type": "word", + "en": "party", + "zh": "聚会", + "sceneWord": false, + "match": [ + [ + "party", + "parties" + ] + ], + "example": { + "en": "Come to my birthday party!", + "zh": "来参加我的生日聚会吧!" + }, + "review": { + "prompt": "请朋友来你的聚会。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U13-R01", + "en": "January", + "zh": "一月" + }, + { + "id": "A1-U13-R02", + "en": "February", + "zh": "二月" + }, + { + "id": "A1-U13-R03", + "en": "April", + "zh": "四月" + }, + { + "id": "A1-U13-R04", + "en": "June", + "zh": "六月" + }, + { + "id": "A1-U13-R05", + "en": "July", + "zh": "七月" + }, + { + "id": "A1-U13-R06", + "en": "August", + "zh": "八月" + }, + { + "id": "A1-U13-R07", + "en": "September", + "zh": "九月" + }, + { + "id": "A1-U13-R08", + "en": "October", + "zh": "十月" + }, + { + "id": "A1-U13-R09", + "en": "November", + "zh": "十一月" + }, + { + "id": "A1-U13-R10", + "en": "December", + "zh": "十二月" + }, + { + "id": "A1-U13-R11", + "en": "month", + "zh": "月" + }, + { + "id": "A1-U13-R12", + "en": "later", + "zh": "稍后;以后" + }, + { + "id": "A1-U13-R13", + "en": "ago", + "zh": "以前" + }, + { + "id": "A1-U13-R14", + "en": "pm", + "zh": "下午(p.m.)" + }, + { + "id": "A1-U13-R15", + "en": "plan", + "zh": "计划" + }, + { + "id": "A1-U13-R16", + "en": "celebrate", + "zh": "庆祝" + }, + { + "id": "A1-U13-R17", + "en": "remember", + "zh": "记得" + }, + { + "id": "A1-U13-R18", + "en": "forget", + "zh": "忘记" + }, + { + "id": "A1-U13-R19", + "en": "hope", + "zh": "希望" + }, + { + "id": "A1-U13-R20", + "en": "wish", + "zh": "祝愿" + }, + { + "id": "A1-U13-R21", + "en": "dear", + "zh": "亲爱的" + }, + { + "id": "A1-U13-R22", + "en": "luck", + "zh": "运气" + }, + { + "id": "A1-U13-R23", + "en": "age", + "zh": "年龄" + }, + { + "id": "A1-U13-R24", + "en": "invite", + "zh": "邀请" + }, + { + "id": "A1-U13-R25", + "en": "wedding", + "zh": "婚礼" + }, + { + "id": "A1-U13-R26", + "en": "holiday", + "zh": "假日" + }, + { + "id": "A1-U13-R27", + "en": "festival", + "zh": "节日" + }, + { + "id": "A1-U13-R28", + "en": "calendar", + "zh": "日历" + }, + { + "id": "A1-U13-R29", + "en": "bye", + "zh": "再见" + }, + { + "id": "A1-U13-R30", + "en": "cut", + "zh": "切" + }, + { + "id": "A1-U13-R31", + "en": "mom", + "zh": "妈妈" + }, + { + "id": "A1-U13-R32", + "en": "dad", + "zh": "爸爸" + }, + { + "id": "A1-U13-R33", + "en": "maybe", + "zh": "也许" + }, + { + "id": "A1-U13-R34", + "en": "together", + "zh": "一起" + }, + { + "id": "A1-U13-R35", + "en": "know", + "zh": "知道" + } + ], + "segments": [ + { + "id": "A1-U13-S1", + "title": "日期和生日", + "minutes": 12, + "itemIds": [ + "A1-U13-P01", + "A1-U13-P02", + "A1-U13-P03", + "A1-U13-W01" + ], + "listening": { + "text": "What's the date today? It's May 5. And tomorrow is May 6. Oh, tomorrow is my birthday!", + "question": "说话人的生日是几号?", + "options": [ + "五月六日", + "五月五日", + "六月五日" + ] + }, + "speaking": [ + { + "text": "What's the date today?" + }, + { + "text": "When is your birthday?" + }, + { + "text": "My birthday is in March.", + "tip": "March 读 /mɑːtʃ/,月份首字母要大写" + }, + { + "text": "See you tomorrow!" + } + ], + "reading": { + "text": "Our birthdays\nThere are twelve months in a year. Look at our family calendar:\nMom: January 12\nDad: April 3\nMy sister: August 20\nMy brother: October 9\nMe: December 25\nMy grandfather: February, my grandmother: June, my aunt: July, my uncle: September, my cousin: November.\nMy grandmother's age? Eighty! We always celebrate with a big cake, and she cuts it.", + "question": "谁的生日在十月?", + "options": [ + "哥哥", + "妈妈", + "姐姐" + ] + }, + "writing": { + "prompt": "写两句话:问朋友生日是哪天,再说你的生日在几月。", + "example": "When is your birthday? My birthday is in March.", + "itemIds": [ + "A1-U13-P02", + "A1-U13-P03" + ] + }, + "independent": { + "prompt": "用英语说说你家里两个人的生日在几月。", + "itemIds": [ + "A1-U13-P03" + ] + } + }, + { + "id": "A1-U13-S2", + "title": "约时间", + "minutes": 13, + "itemIds": [ + "A1-U13-P04", + "A1-U13-P05", + "A1-U13-P06", + "A1-U13-P07", + "A1-U13-P08", + "A1-U13-P09" + ], + "listening": { + "text": "Are you free on Saturday? Sorry, I'm busy on Saturday. How about Sunday? Sunday is good. Let's meet at three. OK, see you then.", + "question": "他们约在哪天见面?", + "options": [ + "周日", + "周六", + "周五" + ] + }, + "speaking": [ + { + "text": "Are you free on Saturday?" + }, + { + "text": "Sorry, I'm busy." + }, + { + "text": "How about Sunday?" + }, + { + "text": "Let's meet at three." + }, + { + "text": "What time is good for you?" + }, + { + "text": "See you then." + } + ], + "reading": { + "text": "Nina: Hi Leo! Are you free on Friday? Let's have dinner.\nLeo: Sorry, I'm busy on Friday. I work until 9 pm. How about Saturday?\nNina: Saturday is good. What time is good for you?\nLeo: 7 pm? Let's meet at the restaurant.\nNina: OK! See you then. Bye!", + "question": "Leo 为什么周五不行?", + "options": [ + "他要工作到九点", + "他要去生日聚会", + "他忘了时间" + ] + }, + "writing": { + "prompt": "写两句话:问朋友周六有没有空,再约三点见面。", + "example": "Are you free on Saturday? Let's meet at three.", + "itemIds": [ + "A1-U13-P04", + "A1-U13-P07" + ] + }, + "independent": { + "prompt": "朋友约你周五见,你没空,用英语拒绝并提议别的时间。", + "itemIds": [ + "A1-U13-P05", + "A1-U13-P06", + "A1-U13-P08" + ] + } + }, + { + "id": "A1-U13-S3", + "title": "改期和聚会", + "minutes": 12, + "itemIds": [ + "A1-U13-P10", + "A1-U13-P11", + "A1-U13-W02" + ], + "listening": { + "text": "Hi, it's Tom. Sorry, I can't come to the party tomorrow. Can we change the date? Maybe next week?", + "question": "Tom 想把见面改到什么时候?", + "options": [ + "下周", + "明天", + "下个月" + ] + }, + "speaking": [ + { + "text": "Can we change the date?" + }, + { + "text": "I'm free next week." + }, + { + "text": "Come to my birthday party!" + }, + { + "text": "Remember the date!" + } + ], + "reading": { + "text": "Dear friends,\nI want to invite you to my birthday party! It's on Saturday, June 14, at 6 pm. We can eat cake and celebrate together. Please don't forget! We had this plan two months ago!\nIt's a holiday plan too: there's a festival in the park later that night.\nSorry, we can't change the date. My brother's wedding is two days later.\nI hope you can come. Wish me luck with the cake!\nMia", + "question": "聚会是哪一天?", + "options": [ + "六月十四日", + "六月六日", + "六月十六日" + ] + }, + "writing": { + "prompt": "写两句话:说抱歉,然后问能不能改到下周。", + "example": "Sorry, can we change the date? How about next week?", + "itemIds": [ + "A1-U13-P11", + "A1-U13-P10" + ] + }, + "independent": { + "prompt": "用英语邀请朋友来你的聚会,说出日期和时间。", + "itemIds": [ + "A1-U13-W02", + "A1-U13-P07" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U13-C1", + "kind": "main", + "title": "约朋友吃饭", + "learnerRole": "你", + "aiRole": "朋友", + "setting": "你给朋友打电话,想约周末一起吃饭。", + "turns": [ + { + "ai": "Hi! What's up?", + "goal": "问朋友周六有没有空", + "model": "Are you free on Saturday?", + "zh": "你周六有空吗?", + "itemIds": [ + "A1-U13-P04" + ] + }, + { + "ai": "Sorry, I'm busy on Saturday. It's my mom's birthday.", + "goal": "提议周日", + "model": "How about Sunday?", + "zh": "周日怎么样?", + "itemIds": [ + "A1-U13-P06" + ] + }, + { + "ai": "Sunday is OK. What time?", + "goal": "问对方几点方便", + "model": "What time is good for you?", + "zh": "你几点方便?", + "itemIds": [ + "A1-U13-P08" + ] + }, + { + "ai": "Six pm is good for me.", + "goal": "约在饭店六点见", + "model": "Let's meet at six at the restaurant.", + "zh": "我们六点在饭店见吧。", + "itemIds": [ + "A1-U13-P07" + ] + }, + { + "ai": "Great. I can't wait!", + "goal": "说到时见", + "model": "See you then.", + "zh": "到时见。", + "itemIds": [ + "A1-U13-P09" + ] + } + ] + }, + { + "id": "A1-U13-C2", + "kind": "variant", + "title": "邀请同事来生日聚会", + "learnerRole": "过生日的人", + "aiRole": "同事", + "setting": "你下周过生日,想邀请同事来聚会。", + "turns": [ + { + "ai": "Hi! You look happy today.", + "goal": "说你的生日在下周", + "model": "My birthday is next week.", + "zh": "我的生日在下周。", + "itemIds": [ + "A1-U13-P10" + ] + }, + { + "ai": "Oh, nice! What's the date?", + "goal": "说是五月九日,请对方来聚会", + "model": "It's May 9. Come to my party!", + "zh": "是五月九日。来参加我的聚会吧!", + "itemIds": [ + "A1-U13-W02" + ] + }, + { + "ai": "I'd love to. When is it?", + "goal": "说还不知道时间,也许明天知道", + "model": "I don't know the time yet. Maybe tomorrow.", + "zh": "我还不知道时间,也许明天就知道。", + "itemIds": [ + "A1-U13-W01" + ] + }, + { + "ai": "OK. When is your birthday, then?", + "goal": "说你的生日在五月", + "model": "My birthday is in May.", + "zh": "我的生日在五月。", + "itemIds": [ + "A1-U13-P03" + ] + }, + { + "ai": "And when is my birthday? Do you remember?", + "goal": "反问对方生日是哪天", + "model": "No! When is your birthday?", + "zh": "不记得!你的生日是哪天?", + "itemIds": [ + "A1-U13-P02" + ] + } + ] + }, + { + "id": "A1-U13-C3", + "kind": "variant", + "title": "改期", + "learnerRole": "你", + "aiRole": "朋友", + "setting": "你们本来约好明天见,但你临时有事,需要改期。", + "turns": [ + { + "ai": "Hi! Are we OK for tomorrow at three?", + "goal": "说抱歉明天没空", + "model": "Sorry, I'm busy tomorrow.", + "zh": "抱歉,我明天没空。", + "itemIds": [ + "A1-U13-P05", + "A1-U13-W01" + ] + }, + { + "ai": "Oh no. What's the problem?", + "goal": "问能不能改个日期", + "model": "I have to work. Can we change the date?", + "zh": "我要上班。我们能改个日期吗?", + "itemIds": [ + "A1-U13-P11" + ] + }, + { + "ai": "Sure. When are you free?", + "goal": "说下周有空", + "model": "I'm free next week.", + "zh": "我下周有空。", + "itemIds": [ + "A1-U13-P10" + ] + }, + { + "ai": "Next week I'm busy on Monday.", + "goal": "提议下周五", + "model": "How about Friday?", + "zh": "周五怎么样?", + "itemIds": [ + "A1-U13-P06" + ] + }, + { + "ai": "Friday is good.", + "goal": "问今天几号,确认日期", + "model": "Great. What's the date today?", + "zh": "太好了。今天几号?", + "itemIds": [ + "A1-U13-P01" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U13-T1", + "sceneId": "A1-U13-C1", + "goal": "约朋友周末吃饭,定下日子、时间和地点", + "itemIds": [ + "A1-U13-P04", + "A1-U13-P06", + "A1-U13-P08", + "A1-U13-P07", + "A1-U13-P09" + ], + "slots": [ + "哪天", + "几点", + "在哪儿" + ] + }, + { + "id": "A1-U13-T2", + "sceneId": "A1-U13-C2", + "goal": "邀请同事参加你的生日聚会", + "itemIds": [ + "A1-U13-P10", + "A1-U13-W02", + "A1-U13-W01", + "A1-U13-P03", + "A1-U13-P02" + ], + "slots": [ + "日期", + "聚会", + "生日" + ] + }, + { + "id": "A1-U13-T3", + "sceneId": "A1-U13-C3", + "goal": "临时没空,和朋友改约时间", + "itemIds": [ + "A1-U13-P05", + "A1-U13-W01", + "A1-U13-P11", + "A1-U13-P10", + "A1-U13-P06", + "A1-U13-P01" + ], + "slots": [ + "原因", + "新日期" + ] + } + ], + "materials": [ + { + "id": "A1-U13-M1", + "mode": "listening", + "title": "朋友打来约生日聚会", + "text": "Hi, it's me! I want to have a birthday party next month, in April. Are you free? My birthday is on the fifteenth. Please remember the date and write it on your calendar; don't forget! The party is at my home at three pm. My mom and dad will cook, and we will cut a big cake and celebrate together. I hope you can come. Maybe you can bring a small gift. I invited some old friends too. If Saturday is not good, how about later, on Sunday? I wish you a good week. Let me know. Bye!", + "glosses": { + "games": "游戏", + "fifteenth": "(每月)十五号", + "invited": "邀请(过去式)", + "bring": "带来" + }, + "questions": [ + { + "type": "gist", + "question": "这段留言是关于什么的?", + "options": [ + "邀请你参加生日聚会", + "改机票", + "问天气" + ] + }, + { + "type": "detail", + "question": "聚会几点开始?", + "options": [ + "下午三点", + "上午三点", + "晚上七点" + ] + } + ] + }, + { + "id": "A1-U13-M2", + "mode": "reading", + "title": "读一段对话:约见面时间", + "text": "Ben: Are you free on Sunday? Let's meet.\nMia: Sorry, I'm busy on Sunday. My cousin's wedding is that day! How about Monday?\nBen: Monday is good. What time? Do you remember the cafe near the station?\nMia: Yes. Let's meet at ten in the morning. Don't forget!\nBen: I won't. Oh, can we change the time to eleven?\nMia: Sure. Wait, next Monday is a holiday, a big festival. Maybe the cafe is closed.\nBen: Good point. Let me check the calendar. It's open. See you at eleven then.\nMia: Great. I hope the weather is nice. Do you want lunch after that?\nBen: Yes! And happy birthday for last month, by the way.\nMia: Oh, that was months ago! Thank you. See you Monday. Bye!\nBen: Bye, and good luck at the wedding!", + "glosses": { + "sounds": "听起来", + "point": "good point 说得对", + "won't": "不会", + "check": "查看", + "weather": "天气" + }, + "questions": [ + { + "type": "detail", + "question": "他们最后约在星期几?", + "options": [ + "星期一", + "星期天", + "星期六" + ] + }, + { + "type": "detail", + "question": "Mia 星期天为什么没空?", + "options": [ + "要去参加表亲的婚礼", + "要上班", + "要考试" + ] + } + ] + } + ], + "excluded": [ + { + "en": "appointment", + "reason": "A2;A1 先用 meet 表达约见" + }, + { + "en": "fifth", + "reason": "序数词 fourth 以后不在 A1 表里;日期先用数字读法(May 5)" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U14.json b/kouyu_english/assets/courses/A1/A1-U14.json new file mode 100644 index 0000000..bd987dd --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U14.json @@ -0,0 +1,960 @@ +{ + "schemaVersion": 1, + "id": "A1-U14", + "revision": 1, + "level": "A1", + "title": "在机场", + "categories": [ + "旅行" + ], + "canDo": "值机、问登机口、回答入境的简单问题", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "61", + "use": "active", + "reason": "只用 I'm staying / I'm visiting 说行程" + }, + { + "id": "1", + "use": "active" + }, + { + "id": "241", + "use": "active", + "reason": "CEFR-J 未标级别,Which gate 是机场里必需的问句" + }, + { + "id": "245", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A1-U14-P01", + "type": "phrase", + "en": "Here is my passport.", + "zh": "这是我的护照。", + "sceneWord": true, + "sceneReason": "passport 在 CEFR-J 为 B1,但出入境时必须会说", + "match": [ + [ + "my passport" + ] + ], + "example": { + "en": "Here is my passport and ticket.", + "zh": "这是我的护照和机票。" + }, + "review": { + "prompt": "工作人员要看证件,把护照递给他。" + } + }, + { + "id": "A1-U14-W01", + "type": "word", + "en": "flight", + "zh": "航班", + "sceneWord": true, + "sceneReason": "flight 为 A2,是机场里最常听到的词", + "match": [ + [ + "flight", + "flights" + ] + ], + "example": { + "en": "My flight is at ten.", + "zh": "我的航班是十点的。" + }, + "review": { + "prompt": "说你的航班几点。" + } + }, + { + "id": "A1-U14-W02", + "type": "word", + "en": "plane", + "zh": "飞机", + "sceneWord": false, + "match": [ + [ + "plane", + "planes" + ] + ], + "example": { + "en": "The plane is late.", + "zh": "飞机晚点了。" + }, + "review": { + "prompt": "说飞机晚点了。" + } + }, + { + "id": "A1-U14-P02", + "type": "phrase", + "en": "Which gate is it?", + "zh": "在几号登机口?", + "sceneWord": false, + "match": [ + [ + "which gate" + ] + ], + "example": { + "en": "Which gate is my flight?", + "zh": "我的航班在几号登机口?" + }, + "review": { + "prompt": "问你的航班在哪个登机口。" + } + }, + { + "id": "A1-U14-P03", + "type": "phrase", + "en": "I have one bag to check.", + "zh": "我有一件行李要托运。", + "sceneWord": false, + "match": [ + [ + "bag to check", + "bags to check" + ] + ], + "example": { + "en": "I have two bags to check.", + "zh": "我有两件行李要托运。" + }, + "review": { + "prompt": "说你有一件行李要托运。" + } + }, + { + "id": "A1-U14-P04", + "type": "phrase", + "en": "A window seat, please.", + "zh": "请给我靠窗的座位。", + "sceneWord": false, + "match": [ + [ + "window seat", + "aisle seat" + ] + ], + "example": { + "en": "Can I have an aisle seat?", + "zh": "可以给我靠过道的座位吗?" + }, + "review": { + "prompt": "要一个靠窗的座位。" + } + }, + { + "id": "A1-U14-P05", + "type": "phrase", + "en": "Is it on time?", + "zh": "准点吗?", + "sceneWord": false, + "match": [ + [ + "on time" + ] + ], + "example": { + "en": "Is the plane on time?", + "zh": "飞机准点吗?" + }, + "review": { + "prompt": "问航班是否准点。" + } + }, + { + "id": "A1-U14-P06", + "type": "phrase", + "en": "I'm here on holiday.", + "zh": "我来度假。", + "sceneWord": false, + "match": [ + [ + "on holiday", + "on vacation", + "on business" + ] + ], + "example": { + "en": "I'm here on business.", + "zh": "我来出差。" + }, + "review": { + "prompt": "入境时说你来度假。" + } + }, + { + "id": "A1-U14-P07", + "type": "phrase", + "en": "I'm visiting friends.", + "zh": "我来看朋友。", + "sceneWord": false, + "match": [ + [ + "visiting" + ] + ], + "example": { + "en": "I'm visiting my sister.", + "zh": "我来看我姐姐。" + }, + "review": { + "prompt": "说你来看朋友。" + } + }, + { + "id": "A1-U14-P08", + "type": "phrase", + "en": "I'm staying for two weeks.", + "zh": "我待两周。", + "sceneWord": false, + "match": [ + [ + "staying for" + ] + ], + "example": { + "en": "I'm staying for five days.", + "zh": "我待五天。" + }, + "review": { + "prompt": "说你要待一周。" + } + }, + { + "id": "A1-U14-P09", + "type": "phrase", + "en": "I'm staying at a hotel.", + "zh": "我住酒店。", + "sceneWord": false, + "match": [ + [ + "staying at", + "staying with" + ] + ], + "example": { + "en": "I'm staying with a friend.", + "zh": "我住朋友家。" + }, + "review": { + "prompt": "说你住在哪里。" + } + }, + { + "id": "A1-U14-P10", + "type": "phrase", + "en": "It's my first visit.", + "zh": "这是我第一次来。", + "sceneWord": false, + "match": [ + [ + "first visit", + "first time" + ] + ], + "example": { + "en": "It's my first time here.", + "zh": "这是我第一次来这里。" + }, + "review": { + "prompt": "说你第一次来这个国家。" + } + }, + { + "id": "A1-U14-P11", + "type": "phrase", + "en": "Where can I get my bags?", + "zh": "在哪里取行李?", + "sceneWord": false, + "match": [ + [ + "get my bags", + "get my bag" + ] + ], + "example": { + "en": "Where can I get my bag?", + "zh": "我在哪里取行李?" + }, + "review": { + "prompt": "下飞机后问在哪里取行李。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U14-R01", + "en": "airplane", + "zh": "飞机" + }, + { + "id": "A1-U14-R02", + "en": "fly", + "zh": "飞;乘飞机" + }, + { + "id": "A1-U14-R03", + "en": "jet", + "zh": "喷气式飞机" + }, + { + "id": "A1-U14-R04", + "en": "vacation", + "zh": "假期" + }, + { + "id": "A1-U14-R05", + "en": "foreign", + "zh": "外国的" + }, + { + "id": "A1-U14-R06", + "en": "foreigner", + "zh": "外国人" + }, + { + "id": "A1-U14-R07", + "en": "nationality", + "zh": "国籍" + }, + { + "id": "A1-U14-R08", + "en": "information", + "zh": "信息" + }, + { + "id": "A1-U14-R09", + "en": "business", + "zh": "商务;生意" + }, + { + "id": "A1-U14-R10", + "en": "camera", + "zh": "相机" + }, + { + "id": "A1-U14-R11", + "en": "row", + "zh": "排" + }, + { + "id": "A1-U14-R12", + "en": "wheel", + "zh": "轮子" + }, + { + "id": "A1-U14-R13", + "en": "world", + "zh": "世界" + }, + { + "id": "A1-U14-R14", + "en": "language", + "zh": "语言" + }, + { + "id": "A1-U14-R15", + "en": "island", + "zh": "岛" + }, + { + "id": "A1-U14-R16", + "en": "pleasure", + "zh": "荣幸(My pleasure.)" + }, + { + "id": "A1-U14-R17", + "en": "stand", + "zh": "站立" + }, + { + "id": "A1-U14-R18", + "en": "step", + "zh": "迈步" + }, + { + "id": "A1-U14-R19", + "en": "push", + "zh": "推" + }, + { + "id": "A1-U14-R20", + "en": "hold", + "zh": "拿着" + }, + { + "id": "A1-U14-R21", + "en": "drop", + "zh": "掉下" + }, + { + "id": "A1-U14-R22", + "en": "out", + "zh": "出去" + }, + { + "id": "A1-U14-R23", + "en": "away", + "zh": "离开" + }, + { + "id": "A1-U14-R24", + "en": "land", + "zh": "降落" + }, + { + "id": "A1-U14-R25", + "en": "delay", + "zh": "延误" + }, + { + "id": "A1-U14-R26", + "en": "screen", + "zh": "屏幕" + }, + { + "id": "A1-U14-R27", + "en": "move", + "zh": "移动" + }, + { + "id": "A1-U14-R28", + "en": "country", + "zh": "国家" + }, + { + "id": "A1-U14-R29", + "en": "alone", + "zh": "单独地" + }, + { + "id": "A1-U14-R30", + "en": "why", + "zh": "为什么" + }, + { + "id": "A1-U14-R31", + "en": "hand", + "zh": "手" + } + ], + "segments": [ + { + "id": "A1-U14-S1", + "title": "值机", + "minutes": 13, + "itemIds": [ + "A1-U14-P01", + "A1-U14-W01", + "A1-U14-P03", + "A1-U14-P04" + ], + "listening": { + "text": "Good morning. Where are you flying today? To London. Here is my passport. Thank you. Do you have any bags? I have one bag to check. And a window seat, please.", + "question": "乘客要什么座位?", + "options": [ + "靠窗", + "靠过道", + "最前排" + ] + }, + "speaking": [ + { + "text": "Here is my passport." + }, + { + "text": "My flight is at ten." + }, + { + "text": "I have one bag to check." + }, + { + "text": "A window seat, please.", + "tip": "window seat 两个词都要重读" + } + ], + "reading": { + "text": "Check-in information\n1. Have your passport and ticket ready.\n2. Put your bag on the machine. One bag can be 23 kilos.\n3. Take your ticket. It has your gate and seat: Row 15, seat A is a window seat.\n4. Please don't leave your bags alone! Big jets fly from here to every island and country in the world.", + "question": "靠窗座位在哪一排?", + "options": [ + "第十五排", + "第二十三排", + "第一排" + ] + }, + "writing": { + "prompt": "写两句话:说你有一件行李要托运,再要一个靠窗座位。", + "example": "I have one bag to check. A window seat, please.", + "itemIds": [ + "A1-U14-P03", + "A1-U14-P04" + ] + }, + "independent": { + "prompt": "用英语跟值机柜台说你的航班、行李和座位要求。", + "itemIds": [ + "A1-U14-W01", + "A1-U14-P03", + "A1-U14-P04", + "A1-U14-P01" + ] + } + }, + { + "id": "A1-U14-S2", + "title": "登机口与延误", + "minutes": 12, + "itemIds": [ + "A1-U14-W02", + "A1-U14-P02", + "A1-U14-P05" + ], + "listening": { + "text": "Excuse me, which gate is it for the flight to Tokyo? Gate 12. Is it on time? No, sorry. There's a delay. The plane is late. It can leave at 3:30.", + "question": "飞机大概几点出发?", + "options": [ + "三点半", + "十二点", + "两点半" + ] + }, + "speaking": [ + { + "text": "Which gate is it?" + }, + { + "text": "Is it on time?" + }, + { + "text": "The plane is late." + }, + { + "text": "I can see the planes out the window." + } + ], + "reading": { + "text": "The screen at the airport\nFlight 205 to Seoul: Gate 8: ON TIME\nFlight 318 to Bangkok: Gate 14: DELAY: now 16:40\nFlight 422 to Paris: Gate 3: GO TO GATE NOW\nPlease move to your gate. Please don't lose your ticket. The airplane from Singapore can't land now, so it is late.", + "question": "去曼谷的航班怎么了?", + "options": [ + "延误了", + "正在登机", + "准点" + ] + }, + "writing": { + "prompt": "写两句话:问在几号登机口,再问准点吗。", + "example": "Which gate is it? Is it on time?", + "itemIds": [ + "A1-U14-P02", + "A1-U14-P05" + ] + }, + "independent": { + "prompt": "你看不懂屏幕,用英语问工作人员你的航班在哪个登机口、准不准点。", + "itemIds": [ + "A1-U14-W01", + "A1-U14-P02", + "A1-U14-P05" + ] + } + }, + { + "id": "A1-U14-S3", + "title": "入境与取行李", + "minutes": 13, + "itemIds": [ + "A1-U14-P06", + "A1-U14-P07", + "A1-U14-P08", + "A1-U14-P09", + "A1-U14-P10", + "A1-U14-P11" + ], + "listening": { + "text": "Hello. Why are you here? I'm here on holiday. I'm visiting friends. How long are you staying? I'm staying for two weeks. Where are you staying? At a hotel in the city.", + "question": "旅客待多久?", + "options": [ + "两周", + "两天", + "两个月" + ] + }, + "speaking": [ + { + "text": "I'm here on holiday." + }, + { + "text": "I'm visiting friends." + }, + { + "text": "I'm staying for two weeks." + }, + { + "text": "I'm staying at a hotel." + }, + { + "text": "It's my first visit." + }, + { + "text": "Where can I get my bags?" + } + ], + "reading": { + "text": "Welcome to our country: for foreign passports\nForeigners on vacation or business: stand in line and wait. Step up when the light is green.\nHold your passport in your hand. Have your address in this country ready.\nThey may ask about your trip, your nationality or your language.\nThen get your bags and move away to the door. Bags with wheels are easy to push. Please don't drop your camera or phone! Put them in your pocket.", + "question": "外国游客排队时要准备好什么?", + "options": [ + "护照和在当地的地址", + "相机和手机", + "行李和推车" + ] + }, + "writing": { + "prompt": "写三句话:说你来度假、待两周、住酒店。", + "example": "I'm here on holiday. I'm staying for two weeks. I'm staying at a hotel.", + "itemIds": [ + "A1-U14-P06", + "A1-U14-P08", + "A1-U14-P09" + ] + }, + "independent": { + "prompt": "入境官问你为什么来、待多久、住哪儿,用英语回答。", + "itemIds": [ + "A1-U14-P06", + "A1-U14-P07", + "A1-U14-P08", + "A1-U14-P09", + "A1-U14-P10" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U14-C1", + "kind": "main", + "title": "入境检查", + "learnerRole": "旅客", + "aiRole": "入境检查官", + "setting": "你刚下飞机,在入境柜台回答检查官的问题。", + "turns": [ + { + "ai": "Good afternoon. Passport, please.", + "goal": "递上护照", + "model": "Here is my passport.", + "zh": "这是我的护照。", + "itemIds": [ + "A1-U14-P01" + ] + }, + { + "ai": "Thank you. Why are you visiting?", + "goal": "说你来度假,也来看朋友", + "model": "I'm here on holiday. I'm visiting friends.", + "zh": "我来度假,也来看朋友。", + "itemIds": [ + "A1-U14-P06", + "A1-U14-P07" + ] + }, + { + "ai": "How long are you staying?", + "goal": "说待两周", + "model": "I'm staying for two weeks.", + "zh": "我待两周。", + "itemIds": [ + "A1-U14-P08" + ] + }, + { + "ai": "And where are you staying?", + "goal": "说住在一家酒店", + "model": "I'm staying at a hotel in the city.", + "zh": "我住在市里的一家酒店。", + "itemIds": [ + "A1-U14-P09" + ] + }, + { + "ai": "Is this your first time in our country?", + "goal": "说是第一次来,再问在哪取行李", + "model": "Yes, it's my first visit. Where can I get my bags?", + "zh": "是的,第一次来。我在哪里取行李?", + "itemIds": [ + "A1-U14-P10", + "A1-U14-P11" + ] + } + ] + }, + { + "id": "A1-U14-C2", + "kind": "variant", + "title": "值机柜台", + "learnerRole": "乘客", + "aiRole": "值机员", + "setting": "你在机场值机柜台办理登机手续。", + "turns": [ + { + "ai": "Good morning. Where are you flying today?", + "goal": "说去东京,递上护照", + "model": "To Tokyo. Here is my passport.", + "zh": "去东京。这是我的护照。", + "itemIds": [ + "A1-U14-P01" + ] + }, + { + "ai": "Thank you. Do you have any bags?", + "goal": "说有一件行李要托运", + "model": "Yes, I have one bag to check.", + "zh": "是的,我有一件行李要托运。", + "itemIds": [ + "A1-U14-P03" + ] + }, + { + "ai": "OK. Put it here, please. A window or an aisle seat?", + "goal": "要靠窗的座位", + "model": "A window seat, please.", + "zh": "请给我靠窗的座位。", + "itemIds": [ + "A1-U14-P04" + ] + }, + { + "ai": "Here is your ticket.", + "goal": "问在几号登机口", + "model": "Thank you. Which gate is it?", + "zh": "谢谢。在几号登机口?", + "itemIds": [ + "A1-U14-P02" + ] + }, + { + "ai": "Gate 22. Your flight leaves at 11:30.", + "goal": "问航班准不准点", + "model": "Is my flight on time?", + "zh": "我的航班准点吗?", + "itemIds": [ + "A1-U14-W01", + "A1-U14-P05" + ] + } + ] + }, + { + "id": "A1-U14-C3", + "kind": "variant", + "title": "航班延误", + "learnerRole": "乘客", + "aiRole": "登机口工作人员", + "setting": "你在登机口等了很久,飞机还没来。", + "turns": [ + { + "ai": "Hello. Can I help you?", + "goal": "问航班准不准点", + "model": "Is my flight on time?", + "zh": "我的航班准点吗?", + "itemIds": [ + "A1-U14-W01", + "A1-U14-P05" + ] + }, + { + "ai": "Sorry, there's a delay. The plane is late. It can't land now.", + "goal": "问飞机几点到", + "model": "What time is the plane here?", + "zh": "飞机几点到?", + "itemIds": [ + "A1-U14-W02" + ] + }, + { + "ai": "At about four. Are you OK?", + "goal": "说你在酒店住到明天,时间没问题", + "model": "Yes. I'm staying at a hotel until tomorrow.", + "zh": "没事。我在酒店住到明天。", + "itemIds": [ + "A1-U14-P09" + ] + }, + { + "ai": "Good. Is this your first visit?", + "goal": "说是第一次来,来看朋友", + "model": "Yes, it's my first visit. I'm visiting friends.", + "zh": "是的,第一次来。我来看朋友。", + "itemIds": [ + "A1-U14-P10", + "A1-U14-P07" + ] + }, + { + "ai": "My pleasure. Please wait here.", + "goal": "问是不是这个登机口", + "model": "OK. Which gate is it, again?", + "zh": "好的。再问一下,是哪个登机口?", + "itemIds": [ + "A1-U14-P02" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U14-T1", + "sceneId": "A1-U14-C1", + "goal": "回答入境检查官关于来意、停留和住处的问题", + "itemIds": [ + "A1-U14-P01", + "A1-U14-P06", + "A1-U14-P07", + "A1-U14-P08", + "A1-U14-P09", + "A1-U14-P10", + "A1-U14-P11" + ], + "slots": [ + "来意", + "停留时间", + "住处" + ] + }, + { + "id": "A1-U14-T2", + "sceneId": "A1-U14-C2", + "goal": "办理值机:行李、座位和登机口", + "itemIds": [ + "A1-U14-P01", + "A1-U14-P03", + "A1-U14-P04", + "A1-U14-P02", + "A1-U14-W01", + "A1-U14-P05" + ], + "slots": [ + "行李", + "座位", + "登机口" + ] + }, + { + "id": "A1-U14-T3", + "sceneId": "A1-U14-C3", + "goal": "航班延误时向工作人员问清楚情况", + "itemIds": [ + "A1-U14-W01", + "A1-U14-P05", + "A1-U14-W02", + "A1-U14-P09", + "A1-U14-P10", + "A1-U14-P07", + "A1-U14-P02" + ], + "slots": [ + "是否准点", + "到达时间" + ] + } + ], + "materials": [ + { + "id": "A1-U14-M1", + "mode": "listening", + "title": "机场登机广播", + "text": "Good morning. This is a message for flight CA108 to London. Please go to gate twelve now. Have your passport and boarding pass ready, in your hand. Your seat is in row twenty. The flight is on time; it will not be delayed. It's a long flight over the sea to a foreign country, about ten hours. Please do not stand or move in the plane when we fly, land or when the wheels are down. Turn off your phone and look at the screen for information. Please do not push. Have a good vacation, and welcome to the world of flying!", + "glosses": { + "pass": "boarding pass 登机牌", + "message": "留言,信息", + "boarding": "登机", + "delayed": "延误的", + "flying": "飞行", + "off": "关掉", + "sea": "大海" + }, + "questions": [ + { + "type": "gist", + "question": "这段广播主要通知什么?", + "options": [ + "请乘客去登机口登机", + "飞机取消了", + "改坐火车" + ] + }, + { + "type": "detail", + "question": "这个航班去哪里?", + "options": [ + "伦敦", + "东京", + "北京" + ] + } + ] + }, + { + "id": "A1-U14-M2", + "mode": "reading", + "title": "读一段对话:入境问答", + "text": "Officer: Passport, please. What's your nationality, and why are you here?\nBen: Here you are. I'm here on holiday, for a vacation. It's my first visit to your country.\nOfficer: Are you traveling alone or on business?\nBen: Alone, not for business. I'm visiting friends and I want to see the world.\nOfficer: How long are you staying?\nBen: Two weeks. I'll stay at a hotel near the city center, and then fly to an island for some days.\nOfficer: Do you speak our language?\nBen: A little. Please give me some information if I need help.\nOfficer: Of course. Do you have a camera in your bag?\nBen: Yes, one camera. Please don't drop it!\nOfficer: No, I won't. Welcome, and enjoy your holiday.\nBen: Thank you. My pleasure!", + "glosses": { + "reason": "原因", + "officer": "(海关)官员", + "course": "of course 当然", + "won't": "不会", + "give": "给" + }, + "questions": [ + { + "type": "detail", + "question": "Ben 来做什么?", + "options": [ + "度假旅游", + "工作出差", + "上学" + ] + }, + { + "type": "detail", + "question": "他一个人来还是出差?", + "options": [ + "一个人来", + "出差", + "和家人来" + ] + } + ] + } + ], + "excluded": [ + { + "en": "customs", + "reason": "B1;A1 只练入境问答" + }, + { + "en": "luggage", + "reason": "B1;A1 用 bag / bags 表达行李" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U15.json b/kouyu_english/assets/courses/A1/A1-U15.json new file mode 100644 index 0000000..13c3310 --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U15.json @@ -0,0 +1,917 @@ +{ + "schemaVersion": 1, + "id": "A1-U15", + "revision": 1, + "level": "A1", + "title": "入住酒店", + "categories": [ + "旅行" + ], + "canDo": "说明预订信息、办理入住", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "123", + "use": "active" + }, + { + "id": "239", + "use": "active" + }, + { + "id": "146", + "use": "active" + }, + { + "id": "21", + "use": "active" + }, + { + "id": "22", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "A1-U15-P01", + "type": "phrase", + "en": "I have a reservation.", + "zh": "我有预订。", + "sceneWord": true, + "sceneReason": "reservation 为 B1,但入住酒店第一句就要用", + "match": [ + [ + "have a reservation" + ] + ], + "example": { + "en": "Hello, I have a reservation for tonight.", + "zh": "你好,我预订了今晚的房间。" + }, + "review": { + "prompt": "到了前台,说你有预订。" + } + }, + { + "id": "A1-U15-P02", + "type": "phrase", + "en": "It's under the name Chen.", + "zh": "预订名字是陈。", + "sceneWord": false, + "match": [ + [ + "under the name" + ] + ], + "example": { + "en": "The reservation is under the name Wang.", + "zh": "预订用的是王这个名字。" + }, + "review": { + "prompt": "告诉前台预订用的名字。" + } + }, + { + "id": "A1-U15-P03", + "type": "phrase", + "en": "for three nights", + "zh": "住三晚", + "sceneWord": false, + "match": [ + [ + "night", + "nights" + ] + ], + "example": { + "en": "I'm staying for one night.", + "zh": "我住一晚。" + }, + "review": { + "prompt": "说你要住两晚。" + } + }, + { + "id": "A1-U15-P04", + "type": "phrase", + "en": "Can I check in now?", + "zh": "我现在可以入住吗?", + "sceneWord": false, + "match": [ + [ + "check in" + ] + ], + "example": { + "en": "What time can I check in?", + "zh": "我几点可以入住?" + }, + "review": { + "prompt": "问现在能不能入住。" + } + }, + { + "id": "A1-U15-P05", + "type": "phrase", + "en": "What time is check-out?", + "zh": "几点退房?", + "sceneWord": false, + "match": [ + [ + "check-out", + "check out" + ] + ], + "example": { + "en": "Can I check out late?", + "zh": "我可以晚点退房吗?" + }, + "review": { + "prompt": "问几点退房。" + } + }, + { + "id": "A1-U15-P06", + "type": "phrase", + "en": "Do I fill in this form?", + "zh": "我要填这张表吗?", + "sceneWord": false, + "match": [ + [ + "fill in" + ] + ], + "example": { + "en": "Please fill in this form.", + "zh": "请填一下这张表。" + }, + "review": { + "prompt": "问要不要填表。" + } + }, + { + "id": "A1-U15-P07", + "type": "phrase", + "en": "Here is your key.", + "zh": "这是您的钥匙。", + "sceneWord": false, + "match": [ + [ + "key", + "keys" + ] + ], + "example": { + "en": "Can I have two keys?", + "zh": "可以给我两把钥匙吗?" + }, + "review": { + "prompt": "要两把房间钥匙。" + } + }, + { + "id": "A1-U15-P08", + "type": "phrase", + "en": "What's the Wi-Fi password?", + "zh": "Wi-Fi 密码是多少?", + "sceneWord": true, + "sceneReason": "password 为 B1,住酒店时几乎每次都要问", + "match": [ + [ + "password" + ] + ], + "example": { + "en": "What's the password, please?", + "zh": "请问密码是多少?" + }, + "review": { + "prompt": "问 Wi-Fi 密码。" + } + }, + { + "id": "A1-U15-P09", + "type": "phrase", + "en": "What time is breakfast?", + "zh": "早饭几点?", + "sceneWord": false, + "match": [ + [ + "time is breakfast" + ] + ], + "example": { + "en": "What time is breakfast tomorrow?", + "zh": "明天早饭几点?" + }, + "review": { + "prompt": "问早饭时间。" + } + }, + { + "id": "A1-U15-P10", + "type": "phrase", + "en": "Where is the elevator?", + "zh": "电梯在哪里?", + "sceneWord": true, + "sceneReason": "elevator 为 A2,酒店里找路必需", + "match": [ + [ + "elevator" + ] + ], + "example": { + "en": "The elevator is next to the bar.", + "zh": "电梯在酒吧旁边。" + }, + "review": { + "prompt": "问电梯在哪里。" + } + }, + { + "id": "A1-U15-P11", + "type": "phrase", + "en": "Can I have a quiet room?", + "zh": "能给我一间安静的房间吗?", + "sceneWord": false, + "match": [ + [ + "quiet room" + ] + ], + "example": { + "en": "Can I have a quiet room with a view?", + "zh": "能给我一间安静、有景色的房间吗?" + }, + "review": { + "prompt": "要一间安静的房间。" + } + }, + { + "id": "A1-U15-P12", + "type": "phrase", + "en": "Can you keep my bags?", + "zh": "能帮我寄存行李吗?", + "sceneWord": false, + "match": [ + [ + "keep my bags", + "keep my bag" + ] + ], + "example": { + "en": "Can you keep my bags until three?", + "zh": "能帮我寄存行李到三点吗?" + }, + "review": { + "prompt": "退房后请前台寄存行李。" + } + }, + { + "id": "A1-U15-P13", + "type": "phrase", + "en": "Can I pay later?", + "zh": "我可以晚点付钱吗?", + "sceneWord": false, + "match": [ + [ + "pay later" + ] + ], + "example": { + "en": "Can I pay later, at check-out?", + "zh": "我可以退房时再付吗?" + }, + "review": { + "prompt": "问能不能晚点付钱。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U15-R01", + "en": "guest", + "zh": "客人" + }, + { + "id": "A1-U15-R02", + "en": "code", + "zh": "代码;密码" + }, + { + "id": "A1-U15-R03", + "en": "swimming pool", + "zh": "游泳池" + }, + { + "id": "A1-U15-R04", + "en": "bath", + "zh": "浴缸;洗澡" + }, + { + "id": "A1-U15-R05", + "en": "hall", + "zh": "大厅" + }, + { + "id": "A1-U15-R06", + "en": "clock", + "zh": "钟" + }, + { + "id": "A1-U15-R07", + "en": "sea", + "zh": "大海" + }, + { + "id": "A1-U15-R08", + "en": "beach", + "zh": "海滩" + }, + { + "id": "A1-U15-R09", + "en": "tower", + "zh": "塔" + }, + { + "id": "A1-U15-R10", + "en": "garbage", + "zh": "垃圾" + }, + { + "id": "A1-U15-R11", + "en": "note", + "zh": "便条" + }, + { + "id": "A1-U15-R12", + "en": "copy", + "zh": "复印件" + }, + { + "id": "A1-U15-R13", + "en": "rule", + "zh": "规定" + }, + { + "id": "A1-U15-R14", + "en": "smoking", + "zh": "吸烟" + }, + { + "id": "A1-U15-R15", + "en": "bar", + "zh": "酒吧" + }, + { + "id": "A1-U15-R16", + "en": "receptionist", + "zh": "前台接待员" + }, + { + "id": "A1-U15-R17", + "en": "double", + "zh": "双人的" + }, + { + "id": "A1-U15-R18", + "en": "view", + "zh": "景色" + }, + { + "id": "A1-U15-R19", + "en": "balcony", + "zh": "阳台" + }, + { + "id": "A1-U15-R20", + "en": "surname", + "zh": "姓" + }, + { + "id": "A1-U15-R21", + "en": "ID", + "zh": "身份证件" + }, + { + "id": "A1-U15-R22", + "en": "high", + "zh": "高的" + }, + { + "id": "A1-U15-R23", + "en": "star", + "zh": "星级;星星" + }, + { + "id": "A1-U15-R24", + "en": "hill", + "zh": "小山" + }, + { + "id": "A1-U15-R25", + "en": "own", + "zh": "自己的" + } + ], + "segments": [ + { + "id": "A1-U15-S1", + "title": "办理入住", + "minutes": 13, + "itemIds": [ + "A1-U15-P01", + "A1-U15-P02", + "A1-U15-P03", + "A1-U15-P04", + "A1-U15-P06" + ], + "listening": { + "text": "Good afternoon. I have a reservation. It's under the name Chen. For three nights. Yes, a double room. Can I check in now? Sure. Please fill in this form.", + "question": "客人住几晚?", + "options": [ + "三晚", + "两晚", + "一晚" + ] + }, + "speaking": [ + { + "text": "I have a reservation.", + "tip": "reservation 重音在第三个音节:res-er-VA-tion" + }, + { + "text": "It's under the name Chen." + }, + { + "text": "I'm staying for three nights." + }, + { + "text": "Can I check in now?" + }, + { + "text": "Do I fill in this form?" + } + ], + "reading": { + "text": "Guest form\nSurname: ______ First name: ______\nNationality: ______\nID or passport number: ______\nRoom: single / double\nNights: ______\nEach guest must fill in their own form. If you have a child, write his or her name below yours. Please show us a copy of your passport.", + "question": "带孩子的客人要怎么填?", + "options": [ + "把孩子的名字写在自己下面", + "给孩子另填一张", + "不用写孩子" + ] + }, + "writing": { + "prompt": "写两句话:说你有预订,名字是什么。", + "example": "I have a reservation. It's under the name Chen.", + "itemIds": [ + "A1-U15-P01", + "A1-U15-P02" + ] + }, + "independent": { + "prompt": "用英语跟前台说你的预订、住几晚,并问现在能不能入住。", + "itemIds": [ + "A1-U15-P01", + "A1-U15-P02", + "A1-U15-P03", + "A1-U15-P04" + ] + } + }, + { + "id": "A1-U15-S2", + "title": "房间和钥匙", + "minutes": 12, + "itemIds": [ + "A1-U15-P07", + "A1-U15-P08", + "A1-U15-P09", + "A1-U15-P10" + ], + "listening": { + "text": "Here is your key. Your room is 1208, on floor 12. The elevator is over there. Breakfast is from seven to ten. And the Wi-Fi password is on the card.", + "question": "早饭几点开始?", + "options": [ + "七点", + "十点", + "十二点" + ] + }, + "speaking": [ + { + "text": "Here is your key." + }, + { + "text": "What's the Wi-Fi password?" + }, + { + "text": "What time is breakfast?" + }, + { + "text": "Where is the elevator?", + "tip": "elevator 重音在第一个音节:EL-e-va-tor" + } + ], + "reading": { + "text": "Welcome to Sea View Hotel: four stars\nBreakfast: 7:00-10:00, in the hall on the first floor.\nSwimming pool: on the high floor above the bar. It's open to everyone until 9 pm.\nWi-Fi: the password is on your key card. The code for the door is 4471.\nRules: no smoking inside. Please put garbage in the bag beside the door. The clock in the hall is always right.", + "question": "游泳池在哪里?", + "options": [ + "酒吧楼上的高层", + "一楼大厅", + "前台旁边" + ] + }, + "writing": { + "prompt": "写两句话:问 Wi-Fi 密码,再问早饭几点。", + "example": "What's the Wi-Fi password? What time is breakfast?", + "itemIds": [ + "A1-U15-P08", + "A1-U15-P09" + ] + }, + "independent": { + "prompt": "刚拿到钥匙,用英语问电梯在哪、早饭几点。", + "itemIds": [ + "A1-U15-P07", + "A1-U15-P10", + "A1-U15-P09" + ] + } + }, + { + "id": "A1-U15-S3", + "title": "特别需求", + "minutes": 12, + "itemIds": [ + "A1-U15-P05", + "A1-U15-P11", + "A1-U15-P12", + "A1-U15-P13" + ], + "listening": { + "text": "Excuse me, what time is check-out? Twelve. Can you keep my bags? My flight is at six. Yes. And can I pay later? Yes, at check-out.", + "question": "客人为什么要寄存行李?", + "options": [ + "航班在六点", + "房间太吵", + "他要去海滩" + ] + }, + "speaking": [ + { + "text": "What time is check-out?" + }, + { + "text": "Can I have a quiet room?" + }, + { + "text": "Can you keep my bags?" + }, + { + "text": "Can I pay later?" + } + ], + "reading": { + "text": "A note from the receptionist\nDear guest,\nYour room has a bath and a balcony with a view of the sea and the beach. From there, you can see the old tower on the hill. Someone in the room next to yours is not quiet, so we can move you to a quiet room. Check-out is at 11:00. We can keep your bags after that.", + "question": "酒店可以帮客人做什么?", + "options": [ + "换到安静的房间", + "送去海滩", + "免费早饭" + ] + }, + "writing": { + "prompt": "写两句话:问几点退房,再请前台寄存行李。", + "example": "What time is check-out? Can you keep my bags?", + "itemIds": [ + "A1-U15-P05", + "A1-U15-P12" + ] + }, + "independent": { + "prompt": "你的航班很晚,用英语问退房时间并请酒店寄存行李。", + "itemIds": [ + "A1-U15-P05", + "A1-U15-P12", + "A1-U15-P13" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U15-C1", + "kind": "main", + "title": "前台入住", + "learnerRole": "客人", + "aiRole": "前台接待员", + "setting": "你到达酒店前台,办理入住。", + "turns": [ + { + "ai": "Good evening. Welcome to Sea View Hotel.", + "goal": "说你有预订", + "model": "Hi. I have a reservation.", + "zh": "你好,我有预订。", + "itemIds": [ + "A1-U15-P01" + ] + }, + { + "ai": "What's the name, please?", + "goal": "说预订名字是陈", + "model": "It's under the name Chen.", + "zh": "预订名字是陈。", + "itemIds": [ + "A1-U15-P02" + ] + }, + { + "ai": "Yes, Mr Chen. A double room for three nights. Please fill in this form.", + "goal": "确认后问现在能不能入住", + "model": "OK. Can I check in now?", + "zh": "好的。我现在可以入住吗?", + "itemIds": [ + "A1-U15-P04" + ] + }, + { + "ai": "Yes, you can. Here is your key. Your room is on floor 8.", + "goal": "问电梯在哪里", + "model": "Thank you. Where is the elevator?", + "zh": "谢谢。电梯在哪里?", + "itemIds": [ + "A1-U15-P10" + ] + }, + { + "ai": "It's over there, beside the bar.", + "goal": "问 Wi-Fi 密码和早饭时间", + "model": "What's the Wi-Fi password? And what time is breakfast?", + "zh": "Wi-Fi 密码是多少?早饭几点?", + "itemIds": [ + "A1-U15-P08", + "A1-U15-P09" + ] + } + ] + }, + { + "id": "A1-U15-C2", + "kind": "variant", + "title": "提前到达", + "learnerRole": "客人", + "aiRole": "前台接待员", + "setting": "你早上九点就到了酒店,但入住时间是下午两点。", + "turns": [ + { + "ai": "Good morning! How can I help you?", + "goal": "说有预订,问现在能否入住", + "model": "I have a reservation. Can I check in now?", + "zh": "我有预订。现在可以入住吗?", + "itemIds": [ + "A1-U15-P01", + "A1-U15-P04" + ] + }, + { + "ai": "Sorry, check-in is at two pm.", + "goal": "请前台先寄存行李", + "model": "OK. Can you keep my bags?", + "zh": "好的。能帮我寄存行李吗?", + "itemIds": [ + "A1-U15-P12" + ] + }, + { + "ai": "Sure. What's your name?", + "goal": "说名字,住两晚", + "model": "It's under the name Li. For two nights.", + "zh": "名字是李。住两晚。", + "itemIds": [ + "A1-U15-P02", + "A1-U15-P03" + ] + }, + { + "ai": "Thank you. Do you want to pay now?", + "goal": "问能不能晚点付", + "model": "Can I pay later?", + "zh": "我可以晚点付吗?", + "itemIds": [ + "A1-U15-P13" + ] + }, + { + "ai": "Sure. Do you have any questions?", + "goal": "问能不能要一间安静的房间", + "model": "Yes. Can I have a quiet room?", + "zh": "有。能给我一间安静的房间吗?", + "itemIds": [ + "A1-U15-P11" + ] + } + ] + }, + { + "id": "A1-U15-C3", + "kind": "variant", + "title": "退房前", + "learnerRole": "客人", + "aiRole": "前台接待员", + "setting": "你明天要走,来前台问退房的事。", + "turns": [ + { + "ai": "Hello. What can I do for you?", + "goal": "问几点退房", + "model": "What time is check-out?", + "zh": "几点退房?", + "itemIds": [ + "A1-U15-P05" + ] + }, + { + "ai": "It's at eleven.", + "goal": "说航班很晚,请寄存行李", + "model": "My flight is late. Can you keep my bags?", + "zh": "我的航班很晚,能帮我寄存行李吗?", + "itemIds": [ + "A1-U15-P12" + ] + }, + { + "ai": "Yes, no problem. Here is a card for your bags.", + "goal": "问要不要填表", + "model": "Thank you. Do I fill in this form?", + "zh": "谢谢。我要填这张表吗?", + "itemIds": [ + "A1-U15-P06" + ] + }, + { + "ai": "Yes, please. Just your name and room.", + "goal": "问还要不要钥匙", + "model": "OK. Here is my key. Do you want it now?", + "zh": "好的,这是我的钥匙。你现在要吗?", + "itemIds": [ + "A1-U15-P07" + ] + }, + { + "ai": "Tomorrow is OK. Have a good night!", + "goal": "问早饭几点", + "model": "Thanks. What time is breakfast?", + "zh": "谢谢。早饭几点?", + "itemIds": [ + "A1-U15-P09" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U15-T1", + "sceneId": "A1-U15-C1", + "goal": "在前台完成入住并问清楚房间信息", + "itemIds": [ + "A1-U15-P01", + "A1-U15-P02", + "A1-U15-P04", + "A1-U15-P10", + "A1-U15-P08", + "A1-U15-P09", + "A1-U15-P07", + "A1-U15-P03" + ], + "slots": [ + "预订", + "钥匙", + "密码", + "早饭" + ] + }, + { + "id": "A1-U15-T2", + "sceneId": "A1-U15-C2", + "goal": "提前到达时安排寄存和付款", + "itemIds": [ + "A1-U15-P01", + "A1-U15-P04", + "A1-U15-P12", + "A1-U15-P02", + "A1-U15-P03", + "A1-U15-P13", + "A1-U15-P11" + ], + "slots": [ + "入住时间", + "寄存", + "付款" + ] + }, + { + "id": "A1-U15-T3", + "sceneId": "A1-U15-C3", + "goal": "退房前问清时间并寄存行李", + "itemIds": [ + "A1-U15-P05", + "A1-U15-P12", + "A1-U15-P06", + "A1-U15-P07", + "A1-U15-P09" + ], + "slots": [ + "退房", + "行李" + ] + } + ], + "materials": [ + { + "id": "A1-U15-M1", + "mode": "listening", + "title": "酒店前台接待", + "text": "Good evening, and welcome to our hotel — it's a high, five-star tower by the sea. Do you have a reservation? Can I have your surname and your ID? Your room is a double room on the fifth floor, with a balcony and a nice view of the beach. The elevator is in the hall, near the big clock. Breakfast is from seven to nine. There is a swimming pool, a bar, and a small garden on the hill. One rule: no smoking in the room, please. The Wi-Fi code is on this note. Here is your key. Check-out is at twelve. Enjoy your stay!", + "glosses": { + "fifth": "第五", + "desk": "桌子;front desk 前台", + "five-star": "五星级", + "key": "钥匙" + }, + "questions": [ + { + "type": "gist", + "question": "这段话主要在做什么?", + "options": [ + "帮客人办理入住", + "点晚餐", + "问路" + ] + }, + { + "type": "detail", + "question": "早餐几点供应?", + "options": [ + "早上七点到九点", + "中午十二点", + "晚上七点" + ] + } + ] + }, + { + "id": "A1-U15-M2", + "mode": "reading", + "title": "读一段对话:办入住", + "text": "Guest: Hi, I have a reservation. My surname is Chen, for three nights.\nReceptionist: Let me check. Can I see your ID, please? Yes, one double room for three nights.\nGuest: Can I check in now? Can I have a quiet room with a view of the sea?\nReceptionist: Of course. Room 502 has a balcony and a view of the beach and the tower.\nGuest: Lovely. What's the Wi-Fi code?\nReceptionist: It's on this note. Here is a copy of the hotel rules; there is no smoking inside.\nGuest: OK. Is there a swimming pool?\nReceptionist: Yes, near the bar. What time is check-out?\nGuest: At twelve. Can you keep my bags after that? And where do I put the garbage?\nReceptionist: I'll keep your bags in the hall. The garbage goes in the box by the door.\nGuest: Great, thank you!", + "glosses": { + "course": "of course 当然", + "inside": "里面", + "key": "钥匙" + }, + "questions": [ + { + "type": "detail", + "question": "这位客人订了几晚?", + "options": [ + "三晚", + "两晚", + "一晚" + ] + }, + { + "type": "detail", + "question": "客人想要什么样的房间?", + "options": [ + "安静、能看海的房间", + "最便宜的房间", + "楼层最低的房间" + ] + } + ] + } + ], + "excluded": [ + { + "en": "reception", + "reason": "B1;A1 用 front desk 以外的说法,直接对 receptionist 说话" + }, + { + "en": "deposit", + "reason": "B1;押金留到 A2 酒店问题单元" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U16.json b/kouyu_english/assets/courses/A1/A1-U16.json new file mode 100644 index 0000000..da2b324 --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U16.json @@ -0,0 +1,954 @@ +{ + "schemaVersion": 1, + "id": "A1-U16", + "revision": 1, + "level": "A1", + "title": "天气与穿着", + "categories": [ + "日常", + "旅行" + ], + "canDo": "问天气、说该穿什么", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "239", + "use": "active" + }, + { + "id": "61", + "use": "active", + "reason": "用 It's raining 描述眼前的天气" + }, + { + "id": "69", + "use": "active", + "reason": "只用 Is it going to rain? 问天气预报,这是出门前必问的一句" + }, + { + "id": "117", + "use": "active" + }, + { + "id": "161", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "A1-U16-P01", + "type": "phrase", + "en": "What's the weather like today?", + "zh": "今天天气怎么样?", + "sceneWord": false, + "match": [ + [ + "what's the weather like", + "what is the weather like" + ] + ], + "example": { + "en": "What's the weather like in Tokyo?", + "zh": "东京天气怎么样?" + }, + "review": { + "prompt": "问朋友今天天气怎么样。" + } + }, + { + "id": "A1-U16-P02", + "type": "phrase", + "en": "It's sunny.", + "zh": "天气晴朗。", + "sceneWord": false, + "match": [ + [ + "sunny", + "cloudy", + "rainy", + "snowy" + ] + ], + "example": { + "en": "It's cloudy and cool today.", + "zh": "今天多云,挺凉快。" + }, + "review": { + "prompt": "说今天是晴天。" + } + }, + { + "id": "A1-U16-P03", + "type": "phrase", + "en": "It's raining.", + "zh": "正在下雨。", + "sceneWord": false, + "match": [ + [ + "raining", + "snowing" + ] + ], + "example": { + "en": "It's raining outside.", + "zh": "外面在下雨。" + }, + "review": { + "prompt": "说外面正在下雨。" + } + }, + { + "id": "A1-U16-W01", + "type": "word", + "en": "warm", + "zh": "暖和的", + "sceneWord": false, + "match": [ + [ + "warm" + ] + ], + "example": { + "en": "It's warm in spring.", + "zh": "春天很暖和。" + }, + "review": { + "prompt": "说今天很暖和。" + } + }, + { + "id": "A1-U16-W02", + "type": "word", + "en": "cool", + "zh": "凉快的", + "sceneWord": false, + "match": [ + [ + "cool" + ] + ], + "example": { + "en": "The evening is cool.", + "zh": "晚上很凉快。" + }, + "review": { + "prompt": "说早上挺凉快。" + } + }, + { + "id": "A1-U16-P04", + "type": "phrase", + "en": "It's very cold outside.", + "zh": "外面很冷。", + "sceneWord": false, + "match": [ + [ + "cold outside", + "hot outside" + ] + ], + "example": { + "en": "It's very hot outside today.", + "zh": "今天外面很热。" + }, + "review": { + "prompt": "说外面很热。" + } + }, + { + "id": "A1-U16-P05", + "type": "phrase", + "en": "What's the temperature?", + "zh": "气温多少度?", + "sceneWord": true, + "sceneReason": "temperature 为 A2,旅行前查天气时必需", + "match": [ + [ + "temperature" + ] + ], + "example": { + "en": "What's the temperature in London?", + "zh": "伦敦气温多少度?" + }, + "review": { + "prompt": "问现在气温多少度。" + } + }, + { + "id": "A1-U16-P06", + "type": "phrase", + "en": "Take an umbrella.", + "zh": "带把伞。", + "sceneWord": false, + "match": [ + [ + "take an umbrella", + "take your umbrella" + ] + ], + "example": { + "en": "It's raining. Take your umbrella.", + "zh": "下雨了,带上你的伞。" + }, + "review": { + "prompt": "提醒朋友带伞。" + } + }, + { + "id": "A1-U16-P07", + "type": "phrase", + "en": "Put on your coat.", + "zh": "穿上外套。", + "sceneWord": false, + "match": [ + [ + "put on" + ] + ], + "example": { + "en": "Put on your hat. It's cold.", + "zh": "戴上帽子,很冷。" + }, + "review": { + "prompt": "提醒孩子穿上外套。" + } + }, + { + "id": "A1-U16-P08", + "type": "phrase", + "en": "Take off your jacket.", + "zh": "把夹克脱了吧。", + "sceneWord": false, + "match": [ + [ + "take off" + ] + ], + "example": { + "en": "It's hot. Take off your coat.", + "zh": "很热,把外套脱了吧。" + }, + "review": { + "prompt": "屋里很热,让朋友脱掉外套。" + } + }, + { + "id": "A1-U16-P09", + "type": "phrase", + "en": "I like summer.", + "zh": "我喜欢夏天。", + "sceneWord": false, + "match": [ + [ + "summer", + "winter", + "spring", + "autumn" + ] + ], + "example": { + "en": "I don't like winter.", + "zh": "我不喜欢冬天。" + }, + "review": { + "prompt": "说你最喜欢哪个季节。" + } + }, + { + "id": "A1-U16-P10", + "type": "phrase", + "en": "Is it going to rain?", + "zh": "会下雨吗?", + "sceneWord": false, + "match": [ + [ + "going to rain", + "going to snow" + ] + ], + "example": { + "en": "Is it going to snow tomorrow?", + "zh": "明天会下雪吗?" + }, + "review": { + "prompt": "出门前问会不会下雨。" + } + }, + { + "id": "A1-U16-P11", + "type": "phrase", + "en": "The wind is strong.", + "zh": "风很大。", + "sceneWord": false, + "match": [ + [ + "wind" + ] + ], + "example": { + "en": "The wind is strong today. Take a coat.", + "zh": "今天风很大,带件外套。" + }, + "review": { + "prompt": "说今天风很大。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U16-R01", + "en": "rainy", + "zh": "下雨的" + }, + { + "id": "A1-U16-R02", + "en": "cloudy", + "zh": "多云的" + }, + { + "id": "A1-U16-R03", + "en": "snowy", + "zh": "下雪的" + }, + { + "id": "A1-U16-R04", + "en": "foggy", + "zh": "有雾的" + }, + { + "id": "A1-U16-R05", + "en": "snow", + "zh": "雪;下雪" + }, + { + "id": "A1-U16-R06", + "en": "cloud", + "zh": "云" + }, + { + "id": "A1-U16-R07", + "en": "sun", + "zh": "太阳" + }, + { + "id": "A1-U16-R08", + "en": "sunshine", + "zh": "阳光" + }, + { + "id": "A1-U16-R09", + "en": "sky", + "zh": "天空" + }, + { + "id": "A1-U16-R10", + "en": "moon", + "zh": "月亮" + }, + { + "id": "A1-U16-R11", + "en": "dry", + "zh": "干燥的" + }, + { + "id": "A1-U16-R12", + "en": "wet", + "zh": "湿的" + }, + { + "id": "A1-U16-R13", + "en": "storm", + "zh": "暴风雨" + }, + { + "id": "A1-U16-R14", + "en": "degree", + "zh": "度" + }, + { + "id": "A1-U16-R15", + "en": "windy", + "zh": "刮风的" + }, + { + "id": "A1-U16-R16", + "en": "spring", + "zh": "春天" + }, + { + "id": "A1-U16-R17", + "en": "autumn", + "zh": "秋天" + }, + { + "id": "A1-U16-R18", + "en": "winter", + "zh": "冬天" + }, + { + "id": "A1-U16-R19", + "en": "blow", + "zh": "吹" + }, + { + "id": "A1-U16-R20", + "en": "scarf", + "zh": "围巾" + }, + { + "id": "A1-U16-R21", + "en": "sunglasses", + "zh": "墨镜" + }, + { + "id": "A1-U16-R22", + "en": "tree", + "zh": "树" + }, + { + "id": "A1-U16-R23", + "en": "flower", + "zh": "花" + }, + { + "id": "A1-U16-R24", + "en": "bird", + "zh": "鸟" + }, + { + "id": "A1-U16-R25", + "en": "grow", + "zh": "生长" + }, + { + "id": "A1-U16-R26", + "en": "jump", + "zh": "跳" + }, + { + "id": "A1-U16-R27", + "en": "terrible", + "zh": "糟糕的" + }, + { + "id": "A1-U16-R28", + "en": "wonderful", + "zh": "极好的" + }, + { + "id": "A1-U16-R29", + "en": "bright", + "zh": "明亮的" + }, + { + "id": "A1-U16-R30", + "en": "idea", + "zh": "主意" + }, + { + "id": "A1-U16-R31", + "en": "really", + "zh": "真的" + } + ], + "segments": [ + { + "id": "A1-U16-S1", + "title": "今天天气怎么样", + "minutes": 13, + "itemIds": [ + "A1-U16-P01", + "A1-U16-P02", + "A1-U16-P03", + "A1-U16-P05", + "A1-U16-P04" + ], + "listening": { + "text": "What's the weather like today? It's sunny in the morning, but it's cloudy in the afternoon. What's the temperature? Twenty-five degrees.", + "question": "下午天气怎么样?", + "options": [ + "多云", + "晴天", + "下雨" + ] + }, + "speaking": [ + { + "text": "What's the weather like today?" + }, + { + "text": "It's sunny." + }, + { + "text": "It's raining.", + "tip": "raining 的 ai 读 /eɪ/" + }, + { + "text": "What's the temperature?" + }, + { + "text": "It's very cold outside." + } + ], + "reading": { + "text": "Weather in five cities\nLondon: rainy, 12 degrees\nBeijing: sunny and dry, 30 degrees\nTokyo: cloudy and windy, 18 degrees\nSydney: foggy in the morning, then sunshine, 22 degrees\nSeoul: snowy, -3 degrees. There is ice on the roads!", + "question": "哪个城市在下雪?", + "options": [ + "首尔", + "伦敦", + "东京" + ] + }, + "writing": { + "prompt": "写两句话:问今天天气怎么样,再说外面在下雨。", + "example": "What's the weather like today? It's raining.", + "itemIds": [ + "A1-U16-P01", + "A1-U16-P03" + ] + }, + "independent": { + "prompt": "看看窗外,用英语说说今天的天气和气温。", + "itemIds": [ + "A1-U16-P02", + "A1-U16-P04", + "A1-U16-P05" + ] + } + }, + { + "id": "A1-U16-S2", + "title": "出门穿什么", + "minutes": 12, + "itemIds": [ + "A1-U16-W01", + "A1-U16-W02", + "A1-U16-P06", + "A1-U16-P07", + "A1-U16-P08", + "A1-U16-P11" + ], + "listening": { + "text": "Is it cold? No, it's warm today. Take off your jacket. But take an umbrella. It's cloudy. And in the evening it's cool, so put on a coat.", + "question": "晚上天气怎么样?", + "options": [ + "凉快", + "暖和", + "很热" + ] + }, + "speaking": [ + { + "text": "It's warm today." + }, + { + "text": "The evening is cool." + }, + { + "text": "Take an umbrella." + }, + { + "text": "Put on your coat." + }, + { + "text": "Take off your jacket." + }, + { + "text": "The wind is strong." + } + ], + "reading": { + "text": "What to wear\nSunny and hot: wear shorts, a T-shirt and sunglasses. Take water too.\nRainy and wet: take an umbrella and wear a coat.\nCold and snowy: put on a warm coat, a hat and a scarf.\nWindy: the wind can blow your hat away!", + "question": "刮风时要注意什么?", + "options": [ + "帽子会被吹走", + "要戴墨镜", + "要穿短裤" + ] + }, + "writing": { + "prompt": "写两句话:提醒朋友带伞、穿上外套。", + "example": "Take an umbrella. Put on your coat.", + "itemIds": [ + "A1-U16-P06", + "A1-U16-P07" + ] + }, + "independent": { + "prompt": "朋友要出门,今天风很大很冷,用英语提醒他穿什么。", + "itemIds": [ + "A1-U16-P11", + "A1-U16-P07", + "A1-U16-P04" + ] + } + }, + { + "id": "A1-U16-S3", + "title": "季节和天气预报", + "minutes": 12, + "itemIds": [ + "A1-U16-P09", + "A1-U16-P10" + ], + "listening": { + "text": "Is it going to rain tomorrow? No, it's going to be sunny. Great! I like summer because I can swim every day.", + "question": "说话人为什么喜欢夏天?", + "options": [ + "可以每天游泳", + "天气凉快", + "可以看雪" + ] + }, + "speaking": [ + { + "text": "I like summer." + }, + { + "text": "Is it going to rain?" + }, + { + "text": "I don't like winter. It's very cold." + } + ], + "reading": { + "text": "Spring, summer, autumn and winter in my city\nSpring is warm. Trees and flowers grow, and birds sing.\nSummer is very hot. The sun is bright, and there are no clouds in the blue sky.\nAutumn is cool and dry. I love it more than summer.\nWinter is terrible: there are storms and it snows. But children jump in the snow and look at the moon at night. It's wonderful for them!", + "question": "作者更喜欢哪个季节?", + "options": [ + "秋天", + "夏天", + "冬天" + ] + }, + "writing": { + "prompt": "写两句话:说你喜欢哪个季节,再问明天会不会下雨。", + "example": "I like autumn. Is it going to rain tomorrow?", + "itemIds": [ + "A1-U16-P09", + "A1-U16-P10" + ] + }, + "independent": { + "prompt": "用英语说说你最喜欢的季节和那时的天气。", + "itemIds": [ + "A1-U16-P09", + "A1-U16-P02", + "A1-U16-W01" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U16-C1", + "kind": "main", + "title": "出门前问天气", + "learnerRole": "游客", + "aiRole": "酒店前台", + "setting": "你住在酒店,今天要出去玩,先问问前台天气。", + "turns": [ + { + "ai": "Good morning! Going out today?", + "goal": "问今天天气怎么样", + "model": "Yes. What's the weather like today?", + "zh": "是的。今天天气怎么样?", + "itemIds": [ + "A1-U16-P01" + ] + }, + { + "ai": "It's sunny now, but it's cloudy later.", + "goal": "问气温多少度", + "model": "What's the temperature?", + "zh": "气温多少度?", + "itemIds": [ + "A1-U16-P05" + ] + }, + { + "ai": "About twenty degrees. It's warm.", + "goal": "问会不会下雨", + "model": "Is it going to rain?", + "zh": "会下雨吗?", + "itemIds": [ + "A1-U16-P10" + ] + }, + { + "ai": "Maybe in the evening.", + "goal": "说那你带上伞", + "model": "OK. I can take an umbrella.", + "zh": "好的,我带把伞。", + "itemIds": [ + "A1-U16-P06" + ] + }, + { + "ai": "Good idea. And the wind is strong by the sea.", + "goal": "说你穿上外套", + "model": "Thanks. I can put on my coat.", + "zh": "谢谢,我穿上外套。", + "itemIds": [ + "A1-U16-P07" + ] + } + ] + }, + { + "id": "A1-U16-C2", + "kind": "variant", + "title": "和朋友视频聊天气", + "learnerRole": "你", + "aiRole": "在外国的朋友", + "setting": "你和住在国外的朋友视频,互相问天气。", + "turns": [ + { + "ai": "Hi! What's the weather like there?", + "goal": "说外面正在下雨,很冷", + "model": "It's raining. It's very cold outside.", + "zh": "在下雨,外面很冷。", + "itemIds": [ + "A1-U16-P03", + "A1-U16-P04" + ] + }, + { + "ai": "Oh no! Here it's sunny and hot.", + "goal": "问那边气温多少度", + "model": "What's the temperature?", + "zh": "气温多少度?", + "itemIds": [ + "A1-U16-P05" + ] + }, + { + "ai": "Thirty-two degrees! I like summer.", + "goal": "说你喜欢冬天,不喜欢夏天", + "model": "I don't like summer. I like winter. It's cool.", + "zh": "我不喜欢夏天,我喜欢冬天,很凉快。", + "itemIds": [ + "A1-U16-P09", + "A1-U16-W02" + ] + }, + { + "ai": "Really? Is it going to snow there?", + "goal": "说风很大,但是不会下雪", + "model": "No, but the wind is strong.", + "zh": "不会,但是风很大。", + "itemIds": [ + "A1-U16-P11" + ] + }, + { + "ai": "Put on your coat, then!", + "goal": "让朋友脱掉外套", + "model": "And you, take off your jacket!", + "zh": "你呢,把夹克脱了吧!", + "itemIds": [ + "A1-U16-P08" + ] + } + ] + }, + { + "id": "A1-U16-C3", + "kind": "variant", + "title": "带孩子出门", + "learnerRole": "家长", + "aiRole": "孩子", + "setting": "你要带孩子去公园,孩子不想多穿衣服。", + "turns": [ + { + "ai": "Can we go to the park now?", + "goal": "说外面很冷", + "model": "Yes, but it's very cold outside.", + "zh": "可以,但是外面很冷。", + "itemIds": [ + "A1-U16-P04" + ] + }, + { + "ai": "I don't want my coat!", + "goal": "让孩子穿上外套", + "model": "Put on your coat, please.", + "zh": "请穿上外套。", + "itemIds": [ + "A1-U16-P07" + ] + }, + { + "ai": "OK... Is it going to rain?", + "goal": "说会下雨,带把伞", + "model": "Yes, it's going to rain. Take an umbrella.", + "zh": "会下雨,带把伞。", + "itemIds": [ + "A1-U16-P10", + "A1-U16-P06" + ] + }, + { + "ai": "Look! It's sunny now!", + "goal": "说现在暖和了", + "model": "Yes, it's sunny and warm now.", + "zh": "是啊,现在出太阳了,很暖和。", + "itemIds": [ + "A1-U16-W01", + "A1-U16-P02" + ] + }, + { + "ai": "I'm hot!", + "goal": "让孩子把夹克脱了", + "model": "OK, take off your jacket.", + "zh": "好,把夹克脱了吧。", + "itemIds": [ + "A1-U16-P08" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U16-T1", + "sceneId": "A1-U16-C1", + "goal": "出门前问清天气并决定带什么", + "itemIds": [ + "A1-U16-P01", + "A1-U16-P05", + "A1-U16-P10", + "A1-U16-P06", + "A1-U16-P07" + ], + "slots": [ + "天气", + "气温", + "要带的东西" + ] + }, + { + "id": "A1-U16-T2", + "sceneId": "A1-U16-C2", + "goal": "和朋友比较两地的天气和季节", + "itemIds": [ + "A1-U16-P03", + "A1-U16-P04", + "A1-U16-P05", + "A1-U16-P09", + "A1-U16-P11", + "A1-U16-P08", + "A1-U16-W02" + ], + "slots": [ + "天气", + "气温", + "喜欢的季节" + ] + }, + { + "id": "A1-U16-T3", + "sceneId": "A1-U16-C3", + "goal": "根据天气提醒孩子穿什么", + "itemIds": [ + "A1-U16-P04", + "A1-U16-P07", + "A1-U16-P10", + "A1-U16-P06", + "A1-U16-W01", + "A1-U16-P02", + "A1-U16-P08" + ], + "slots": [ + "冷热", + "下雨", + "穿脱" + ] + } + ], + "materials": [ + { + "id": "A1-U16-M1", + "mode": "listening", + "title": "天气预报", + "text": "Good morning! Here is today's weather. In spring the sky is bright and blue, with a warm sun and sunshine. This morning it is dry, about twenty degrees; take your sunglasses. In the afternoon clouds will grow, the wind will blow strong, and it will be a windy, wet day — it is going to rain. Take an umbrella. Tonight a storm will come, so it will be cold; put on your coat and a scarf. Tomorrow the rainy sky will go away and it will be sunny again. The trees, flowers and birds love the sun. Have a wonderful day!", + "glosses": { + "blue": "蓝色的", + "away": "go away 离开、消散" + }, + "questions": [ + { + "type": "gist", + "question": "这是什么内容?", + "options": [ + "今天的天气预报", + "一条新闻", + "一个广告" + ] + }, + { + "type": "detail", + "question": "下午天气怎么样?", + "options": [ + "刮大风,要下雨", + "一直是晴天", + "下雪" + ] + } + ] + }, + { + "id": "A1-U16-M2", + "mode": "reading", + "title": "读一段对话:聊天气和出行", + "text": "Mia: What's the weather like today? I want to go to the park and see the flowers and birds.\nBen: The sky is cloudy now, and it's wet after the rain. It's not a bright day.\nMia: Is a storm coming? Should I take an umbrella?\nBen: Yes. The wind will blow hard — it's windy and cold. Put on a coat and a scarf.\nMia: What a terrible day! What about tomorrow?\nBen: Tomorrow the sun will grow bright and the sky will be blue and dry. A wonderful day for the beach!\nMia: Great idea! In summer I love the sunshine, the sea and the trees.\nBen: Me too. Let's go early, before the clouds come back.\nMia: Really? Then let's jump on the first bus. Perfect!", + "glosses": { + "perfect": "完美的", + "blue": "蓝色的", + "hard": "用力地" + }, + "questions": [ + { + "type": "detail", + "question": "Ben 建议 Mia 今天带什么?", + "options": [ + "雨伞、大衣和围巾", + "相机", + "什么都不用带" + ] + }, + { + "type": "detail", + "question": "明天天气怎么样?", + "options": [ + "晴朗干燥", + "下雨", + "刮大风" + ] + } + ] + } + ], + "excluded": [ + { + "en": "season", + "reason": "B1;A1 直接说 spring、summer、autumn、winter" + }, + { + "en": "forecast", + "reason": "B1;A1 用 Is it going to rain? 表达" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U17.json b/kouyu_english/assets/courses/A1/A1-U17.json new file mode 100644 index 0000000..c445d18 --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U17.json @@ -0,0 +1,910 @@ +{ + "schemaVersion": 1, + "id": "A1-U17", + "revision": 1, + "level": "A1", + "title": "酒店里的需求", + "categories": [ + "旅行" + ], + "canDo": "要物品、报告简单问题", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "16", + "use": "active" + }, + { + "id": "59-2", + "use": "active" + }, + { + "id": "123", + "use": "active" + }, + { + "id": "250", + "use": "active", + "reason": "CEFR-J 未标级别,Could you ...? 是向酒店提要求时最礼貌的说法" + }, + { + "id": "117", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A1-U17-P01", + "type": "phrase", + "en": "There's no hot water.", + "zh": "没有热水。", + "sceneWord": false, + "match": [ + [ + "no hot water" + ] + ], + "example": { + "en": "There's no hot water in the shower.", + "zh": "淋浴没有热水。" + }, + "review": { + "prompt": "告诉前台房间没有热水。" + } + }, + { + "id": "A1-U17-P02", + "type": "phrase", + "en": "The TV doesn't work.", + "zh": "电视坏了。", + "sceneWord": false, + "match": [ + [ + "doesn't work", + "don't work" + ] + ], + "example": { + "en": "The light doesn't work.", + "zh": "灯不亮。" + }, + "review": { + "prompt": "说房间的灯不亮。" + } + }, + { + "id": "A1-U17-W01", + "type": "word", + "en": "broken", + "zh": "坏的", + "sceneWord": false, + "match": [ + [ + "broken" + ] + ], + "example": { + "en": "The chair is broken.", + "zh": "椅子坏了。" + }, + "review": { + "prompt": "说房间的椅子坏了。" + } + }, + { + "id": "A1-U17-W02", + "type": "word", + "en": "dirty", + "zh": "脏的", + "sceneWord": false, + "match": [ + [ + "dirty" + ] + ], + "example": { + "en": "The towels are dirty.", + "zh": "毛巾是脏的。" + }, + "review": { + "prompt": "说床单是脏的。" + } + }, + { + "id": "A1-U17-P03", + "type": "phrase", + "en": "Can I have another towel?", + "zh": "可以再给我一条毛巾吗?", + "sceneWord": false, + "match": [ + [ + "another towel", + "more towels" + ] + ], + "example": { + "en": "Can I have two more towels?", + "zh": "可以再给我两条毛巾吗?" + }, + "review": { + "prompt": "再要一条毛巾。" + } + }, + { + "id": "A1-U17-P04", + "type": "phrase", + "en": "It's too noisy.", + "zh": "太吵了。", + "sceneWord": true, + "sceneReason": "noisy 为 A2,投诉房间时离不开这个词", + "match": [ + [ + "noisy" + ] + ], + "example": { + "en": "My room is too noisy.", + "zh": "我的房间太吵了。" + }, + "review": { + "prompt": "说房间太吵,睡不着。" + } + }, + { + "id": "A1-U17-P05", + "type": "phrase", + "en": "Can you send someone?", + "zh": "能派个人来吗?", + "sceneWord": true, + "sceneReason": "send 为 A2,请酒店派人处理问题时必需", + "match": [ + [ + "send someone" + ] + ], + "example": { + "en": "Can you send someone to my room?", + "zh": "能派个人来我房间吗?" + }, + "review": { + "prompt": "请前台派人来修。" + } + }, + { + "id": "A1-U17-P06", + "type": "phrase", + "en": "Can I change rooms?", + "zh": "我能换个房间吗?", + "sceneWord": false, + "match": [ + [ + "change rooms", + "another room" + ] + ], + "example": { + "en": "Can I have another room?", + "zh": "能给我换一间房吗?" + }, + "review": { + "prompt": "问能不能换房间。" + } + }, + { + "id": "A1-U17-P07", + "type": "phrase", + "en": "Could you bring me some water?", + "zh": "能给我拿点水吗?", + "sceneWord": false, + "match": [ + [ + "bring me" + ] + ], + "example": { + "en": "Could you bring me a blanket?", + "zh": "能给我拿条毛毯吗?" + }, + "review": { + "prompt": "请服务员给你拿点水。" + } + }, + { + "id": "A1-U17-P08", + "type": "phrase", + "en": "My room number is 1206.", + "zh": "我的房间号是 1206。", + "sceneWord": false, + "match": [ + [ + "room number" + ] + ], + "example": { + "en": "What's your room number?", + "zh": "你的房间号是多少?" + }, + "review": { + "prompt": "打电话给前台时先说房间号。" + } + }, + { + "id": "A1-U17-P09", + "type": "phrase", + "en": "I can't open the door.", + "zh": "我打不开门。", + "sceneWord": false, + "match": [ + [ + "can't open" + ] + ], + "example": { + "en": "I can't open the window.", + "zh": "我打不开窗。" + }, + "review": { + "prompt": "说你打不开房门。" + } + }, + { + "id": "A1-U17-P10", + "type": "phrase", + "en": "Please clean my room.", + "zh": "请打扫我的房间。", + "sceneWord": false, + "match": [ + [ + "clean my room", + "clean the room" + ] + ], + "example": { + "en": "Please clean the room at ten.", + "zh": "请十点打扫房间。" + }, + "review": { + "prompt": "请酒店打扫你的房间。" + } + }, + { + "id": "A1-U17-P11", + "type": "phrase", + "en": "Thank you for your help.", + "zh": "谢谢你的帮助。", + "sceneWord": false, + "match": [ + [ + "thank you for", + "thanks for" + ] + ], + "example": { + "en": "Thanks for the towels.", + "zh": "谢谢你送的毛巾。" + }, + "review": { + "prompt": "问题解决后道谢。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U17-R01", + "en": "noise", + "zh": "噪音" + }, + { + "id": "A1-U17-R02", + "en": "paper", + "zh": "纸" + }, + { + "id": "A1-U17-R03", + "en": "wall", + "zh": "墙" + }, + { + "id": "A1-U17-R04", + "en": "desk", + "zh": "书桌" + }, + { + "id": "A1-U17-R05", + "en": "chair", + "zh": "椅子" + }, + { + "id": "A1-U17-R06", + "en": "couch", + "zh": "沙发" + }, + { + "id": "A1-U17-R07", + "en": "blanket", + "zh": "毛毯" + }, + { + "id": "A1-U17-R08", + "en": "shampoo", + "zh": "洗发水" + }, + { + "id": "A1-U17-R09", + "en": "lamp", + "zh": "台灯" + }, + { + "id": "A1-U17-R10", + "en": "repair", + "zh": "修理" + }, + { + "id": "A1-U17-R11", + "en": "moment", + "zh": "片刻" + }, + { + "id": "A1-U17-R12", + "en": "give", + "zh": "给" + }, + { + "id": "A1-U17-R13", + "en": "break", + "zh": "弄坏" + }, + { + "id": "A1-U17-R14", + "en": "hole", + "zh": "洞" + }, + { + "id": "A1-U17-R15", + "en": "hear", + "zh": "听见" + }, + { + "id": "A1-U17-R16", + "en": "matter", + "zh": "事情(What's the matter?)" + }, + { + "id": "A1-U17-R17", + "en": "happen", + "zh": "发生" + }, + { + "id": "A1-U17-R18", + "en": "lock", + "zh": "锁" + }, + { + "id": "A1-U17-R19", + "en": "extra", + "zh": "额外的" + }, + { + "id": "A1-U17-R20", + "en": "rude", + "zh": "粗鲁的" + }, + { + "id": "A1-U17-R21", + "en": "strange", + "zh": "奇怪的" + }, + { + "id": "A1-U17-R22", + "en": "awake", + "zh": "醒着的" + }, + { + "id": "A1-U17-R23", + "en": "hard", + "zh": "硬的" + }, + { + "id": "A1-U17-R24", + "en": "bad", + "zh": "坏的;糟糕的" + }, + { + "id": "A1-U17-R25", + "en": "call", + "zh": "打电话" + } + ], + "segments": [ + { + "id": "A1-U17-S1", + "title": "房间里的问题", + "minutes": 13, + "itemIds": [ + "A1-U17-P01", + "A1-U17-P02", + "A1-U17-W01", + "A1-U17-W02", + "A1-U17-P08" + ], + "listening": { + "text": "Hello, this is room 1206. There's no hot water. And the TV doesn't work. OK, sir. What's your room number again? My room number is 1206.", + "question": "客人房间有什么问题?", + "options": [ + "没有热水,电视坏了", + "太吵,门打不开", + "毛巾脏了" + ] + }, + "speaking": [ + { + "text": "There's no hot water." + }, + { + "text": "The TV doesn't work." + }, + { + "text": "The chair is broken.", + "tip": "broken 读 /ˈbrəʊkən/" + }, + { + "text": "The towels are dirty." + }, + { + "text": "My room number is 1206." + } + ], + "reading": { + "text": "Room problems\nThe lamp on the desk doesn't work.\nThe couch is dirty.\nThere's a hole in the wall.\nThe shower has no hot water.\nThere's no toilet paper and no shampoo.\nCall 0 and give us your room number. We can repair everything soon!", + "question": "客人发现问题时应该怎么做?", + "options": [ + "拨 0 并说房间号", + "自己修理", + "去前台排队" + ] + }, + "writing": { + "prompt": "写两句话:说出房间号,再说没有热水。", + "example": "My room number is 1206. There's no hot water.", + "itemIds": [ + "A1-U17-P08", + "A1-U17-P01" + ] + }, + "independent": { + "prompt": "用英语打电话给前台,说你房间的两个问题。", + "itemIds": [ + "A1-U17-P08", + "A1-U17-P02", + "A1-U17-W01", + "A1-U17-W02" + ] + } + }, + { + "id": "A1-U17-S2", + "title": "请求帮助", + "minutes": 12, + "itemIds": [ + "A1-U17-P03", + "A1-U17-P05", + "A1-U17-P07", + "A1-U17-P10", + "A1-U17-P11" + ], + "listening": { + "text": "Hi, can I have another towel? And could you bring me some water? Sure. Anything else? Can you send someone? The light is broken. Yes, in a moment. Thank you for your help.", + "question": "客人要了哪两样东西?", + "options": [ + "毛巾和水", + "毛毯和水", + "毛巾和洗发水" + ] + }, + "speaking": [ + { + "text": "Can I have another towel?" + }, + { + "text": "Can you send someone?" + }, + { + "text": "Could you bring me some water?", + "tip": "Could you 常连读成 /kʊdʒu/" + }, + { + "text": "Please clean my room." + }, + { + "text": "Thank you for your help." + } + ], + "reading": { + "text": "Hotel help\nNeed something extra? Call 0.\n· Towels, blankets and shampoo: we can bring them to your room.\n· Something is broken? We can send someone.\n· Please clean my room: put this card on your door.\n· Don't break the lock! If you can't open the door, call us.", + "question": "想让酒店打扫房间,应该怎么做?", + "options": [ + "把卡挂在门上", + "拨 0", + "去前台" + ] + }, + "writing": { + "prompt": "写两句话:再要一条毛巾,再请人拿点水。", + "example": "Can I have another towel? Could you bring me some water?", + "itemIds": [ + "A1-U17-P03", + "A1-U17-P07" + ] + }, + "independent": { + "prompt": "用英语请酒店派人来修电视,最后道谢。", + "itemIds": [ + "A1-U17-P05", + "A1-U17-P02", + "A1-U17-P11" + ] + } + }, + { + "id": "A1-U17-S3", + "title": "换房间", + "minutes": 12, + "itemIds": [ + "A1-U17-P04", + "A1-U17-P06", + "A1-U17-P09" + ], + "listening": { + "text": "What's the matter? It's too noisy. I can hear music from the next room. Can I change rooms? Sure. Here is the key to room 1508. ... Hello? I can't open the door.", + "question": "客人为什么要换房间?", + "options": [ + "太吵了", + "门打不开", + "房间太脏" + ] + }, + "speaking": [ + { + "text": "It's too noisy." + }, + { + "text": "Can I change rooms?" + }, + { + "text": "I can't open the door." + } + ], + "reading": { + "text": "A bad night\nWhat happened? I can't sleep. My room is too noisy. There's a strange noise from the wall, and I'm awake at 3 am. The bed is very hard too. I call the front desk, but the man is rude. He says, \"No, you can't change rooms.\" Tomorrow I can ask again.", + "question": "写这段话的人为什么睡不着?", + "options": [ + "房间太吵,床也太硬", + "房间太冷", + "灯坏了" + ] + }, + "writing": { + "prompt": "写两句话:说太吵了,问能不能换房间。", + "example": "It's too noisy. Can I change rooms?", + "itemIds": [ + "A1-U17-P04", + "A1-U17-P06" + ] + }, + "independent": { + "prompt": "你拿到新房卡却打不开门,用英语向前台说明。", + "itemIds": [ + "A1-U17-P09", + "A1-U17-P08", + "A1-U17-P05" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U17-C1", + "kind": "main", + "title": "打电话给前台", + "learnerRole": "客人", + "aiRole": "前台", + "setting": "你刚入住,发现房间有几个问题,打电话给前台。", + "turns": [ + { + "ai": "Front desk. How can I help you?", + "goal": "先说房间号", + "model": "Hello. My room number is 1206.", + "zh": "你好,我的房间号是 1206。", + "itemIds": [ + "A1-U17-P08" + ] + }, + { + "ai": "Yes, Mr Chen. What's the matter?", + "goal": "说没有热水", + "model": "There's no hot water.", + "zh": "没有热水。", + "itemIds": [ + "A1-U17-P01" + ] + }, + { + "ai": "I'm sorry. Anything else?", + "goal": "说电视也坏了", + "model": "And the TV doesn't work.", + "zh": "电视也坏了。", + "itemIds": [ + "A1-U17-P02" + ] + }, + { + "ai": "OK. What can we do for you?", + "goal": "请前台派人来", + "model": "Can you send someone?", + "zh": "能派个人来吗?", + "itemIds": [ + "A1-U17-P05" + ] + }, + { + "ai": "Yes, in ten minutes.", + "goal": "道谢", + "model": "Thank you for your help.", + "zh": "谢谢你的帮助。", + "itemIds": [ + "A1-U17-P11" + ] + } + ] + }, + { + "id": "A1-U17-C2", + "kind": "variant", + "title": "房间太吵要换房", + "learnerRole": "客人", + "aiRole": "前台", + "setting": "半夜房间很吵,你到前台要求换房间。", + "turns": [ + { + "ai": "Good evening. Can I help you?", + "goal": "说房间太吵", + "model": "Yes. My room is too noisy.", + "zh": "是的,我的房间太吵了。", + "itemIds": [ + "A1-U17-P04" + ] + }, + { + "ai": "Oh, I'm sorry. Is it the music?", + "goal": "问能不能换房间", + "model": "Yes. Can I change rooms?", + "zh": "是的。我能换个房间吗?", + "itemIds": [ + "A1-U17-P06" + ] + }, + { + "ai": "Sure. Here is the key to room 815.", + "goal": "说房间也有点脏", + "model": "Thank you. And my room is a little dirty.", + "zh": "谢谢。我的房间也有点脏。", + "itemIds": [ + "A1-U17-W02" + ] + }, + { + "ai": "Sorry about that. We can clean it tomorrow.", + "goal": "请明天早上打扫房间", + "model": "OK. Please clean my room in the morning.", + "zh": "好的。请早上打扫我的房间。", + "itemIds": [ + "A1-U17-P10" + ] + }, + { + "ai": "Yes. Anything else?", + "goal": "请给你拿点水", + "model": "Could you bring me some water?", + "zh": "能给我拿点水吗?", + "itemIds": [ + "A1-U17-P07" + ] + } + ] + }, + { + "id": "A1-U17-C3", + "kind": "variant", + "title": "进不去房间", + "learnerRole": "客人", + "aiRole": "前台", + "setting": "你回到酒店,房门打不开,房间里的东西也有问题。", + "turns": [ + { + "ai": "Hello again! Is everything OK?", + "goal": "说你打不开门", + "model": "No. I can't open the door.", + "zh": "不好。我打不开门。", + "itemIds": [ + "A1-U17-P09" + ] + }, + { + "ai": "Oh, the key card is broken. Here is a new one.", + "goal": "再要一条毛巾", + "model": "Thanks. Can I have another towel?", + "zh": "谢谢。可以再给我一条毛巾吗?", + "itemIds": [ + "A1-U17-P03" + ] + }, + { + "ai": "Yes. Anything else?", + "goal": "说椅子坏了", + "model": "The chair in my room is broken.", + "zh": "我房间的椅子坏了。", + "itemIds": [ + "A1-U17-W01" + ] + }, + { + "ai": "I can send someone. What's your room number?", + "goal": "说房间号", + "model": "My room number is 815.", + "zh": "我的房间号是 815。", + "itemIds": [ + "A1-U17-P08" + ] + }, + { + "ai": "OK, in a moment.", + "goal": "道谢", + "model": "Thank you for your help.", + "zh": "谢谢你的帮助。", + "itemIds": [ + "A1-U17-P11" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U17-T1", + "sceneId": "A1-U17-C1", + "goal": "打电话给前台说明房间问题并请人来修", + "itemIds": [ + "A1-U17-P08", + "A1-U17-P01", + "A1-U17-P02", + "A1-U17-P05", + "A1-U17-P11" + ], + "slots": [ + "房间号", + "问题", + "派人" + ] + }, + { + "id": "A1-U17-T2", + "sceneId": "A1-U17-C2", + "goal": "当面投诉房间太吵并换房", + "itemIds": [ + "A1-U17-P04", + "A1-U17-P06", + "A1-U17-W02", + "A1-U17-P10", + "A1-U17-P07" + ], + "slots": [ + "问题", + "换房", + "其他请求" + ] + }, + { + "id": "A1-U17-T3", + "sceneId": "A1-U17-C3", + "goal": "进不去房间时处理多个小问题", + "itemIds": [ + "A1-U17-P09", + "A1-U17-P03", + "A1-U17-W01", + "A1-U17-P08", + "A1-U17-P11" + ], + "slots": [ + "房门", + "毛巾", + "损坏" + ] + } + ], + "materials": [ + { + "id": "A1-U17-M1", + "mode": "listening", + "title": "打给前台报房间问题", + "text": "Hello, front desk? This is room 1206. I'm sorry, but there are some problems, and I can't sleep. There's no hot water, and the TV is broken; it doesn't work. The lamp on the desk is broken too. The room is a little dirty, and there is a hole in the wall. It's also very noisy — I can hear a strange noise all night, so I'm still awake. Can you send someone to repair these things and clean the room? Could you bring me another blanket, some shampoo and a new chair? Can I change rooms? One moment — sorry, that's a lot. Thank you for your help.", + "glosses": { + "send": "派(人)", + "still": "仍然", + "things": "东西" + }, + "questions": [ + { + "type": "gist", + "question": "客人打电话主要是为了什么?", + "options": [ + "报告房间的问题", + "订早餐", + "问路" + ] + }, + { + "type": "detail", + "question": "下面哪个是客人说的问题?", + "options": [ + "没有热水,电视坏了", + "床太小", + "房间太贵" + ] + } + ] + }, + { + "id": "A1-U17-M2", + "mode": "reading", + "title": "读一段对话:报修", + "text": "Guest: Hi, my room number is 305. The TV doesn't work, and there's no hot water.\nAnna: I'm so sorry. What's the matter? I'll send someone to repair it now.\nGuest: Thank you. There's also a strange noise in the wall. What happened? I can't sleep; I'm still awake.\nAnna: Sorry for the trouble. Can I bring you anything?\nGuest: Yes, please. Can I have another blanket, some shampoo, and paper? And the lamp is broken.\nAnna: Of course. We'll give you a new lamp and repair the door lock too.\nGuest: Thank you. The couch has a hole in it, and the chair is broken. Sorry, that's a lot!\nAnna: No problem. Some guests are rude, but you are very kind. I'll fix everything today.\nGuest: One moment — could you bring an extra towel too?\nAnna: Sure, I'll bring it now.\nGuest: Thank you for your help.", + "glosses": { + "fix": "修理,解决", + "trouble": "麻烦", + "course": "of course 当然", + "still": "仍然" + }, + "questions": [ + { + "type": "detail", + "question": "客人房间里什么坏了?", + "options": [ + "电视和台灯", + "空调", + "窗户" + ] + }, + { + "type": "detail", + "question": "客人还额外要了什么?", + "options": [ + "一条毛巾", + "一双鞋", + "一份报纸" + ] + } + ] + } + ], + "excluded": [ + { + "en": "pillow", + "reason": "B1;A1 用 blanket、towel 这类词" + }, + { + "en": "heater", + "reason": "B1;A1 用 no hot water / it's cold 表达" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U18.json b/kouyu_english/assets/courses/A1/A1-U18.json new file mode 100644 index 0000000..e7b1fed --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U18.json @@ -0,0 +1,935 @@ +{ + "schemaVersion": 1, + "id": "A1-U18", + "revision": 1, + "level": "A1", + "title": "药店与不舒服", + "categories": [ + "日常", + "旅行" + ], + "canDo": "说一个症状、听懂基本建议", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "59-2", + "use": "active" + }, + { + "id": "60", + "use": "active", + "reason": "用 My head hurts 说哪里疼" + }, + { + "id": "246", + "use": "active" + }, + { + "id": "123", + "use": "active" + }, + { + "id": "64", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "A1-U18-P01", + "type": "phrase", + "en": "I don't feel well.", + "zh": "我不舒服。", + "sceneWord": false, + "match": [ + [ + "don't feel well" + ] + ], + "example": { + "en": "I don't feel well today.", + "zh": "我今天不舒服。" + }, + "review": { + "prompt": "告诉朋友你不舒服。" + } + }, + { + "id": "A1-U18-P02", + "type": "phrase", + "en": "I have a headache.", + "zh": "我头疼。", + "sceneWord": false, + "match": [ + [ + "have a headache", + "have a fever", + "have a cold", + "have a stomachache", + "has a headache", + "has a fever", + "has a cold" + ] + ], + "example": { + "en": "I have a cold.", + "zh": "我感冒了。" + }, + "review": { + "prompt": "说你发烧了。" + } + }, + { + "id": "A1-U18-P03", + "type": "phrase", + "en": "My head hurts.", + "zh": "我头疼。", + "sceneWord": false, + "match": [ + [ + "hurts", + "hurt" + ] + ], + "example": { + "en": "My back hurts.", + "zh": "我背疼。" + }, + "review": { + "prompt": "说你的腿疼。" + } + }, + { + "id": "A1-U18-W01", + "type": "word", + "en": "sick", + "zh": "生病的", + "sceneWord": false, + "match": [ + [ + "sick" + ] + ], + "example": { + "en": "I feel sick.", + "zh": "我觉得恶心/不舒服。" + }, + "review": { + "prompt": "说你的孩子生病了。" + } + }, + { + "id": "A1-U18-W02", + "type": "word", + "en": "medicine", + "zh": "药", + "sceneWord": false, + "match": [ + [ + "medicine" + ] + ], + "example": { + "en": "I need some medicine.", + "zh": "我需要一些药。" + }, + "review": { + "prompt": "说你需要买药。" + } + }, + { + "id": "A1-U18-P04", + "type": "phrase", + "en": "Is there a pharmacy near here?", + "zh": "附近有药店吗?", + "sceneWord": true, + "sceneReason": "pharmacy 为 B1,但旅行中找药店时必需", + "match": [ + [ + "pharmacy" + ] + ], + "example": { + "en": "Where is the pharmacy?", + "zh": "药店在哪里?" + }, + "review": { + "prompt": "在街上问附近有没有药店。" + } + }, + { + "id": "A1-U18-P05", + "type": "phrase", + "en": "Do you have something for a headache?", + "zh": "有治头疼的药吗?", + "sceneWord": false, + "match": [ + [ + "something for" + ] + ], + "example": { + "en": "Do you have something for a cold?", + "zh": "有治感冒的药吗?" + }, + "review": { + "prompt": "在药店问有没有治发烧的药。" + } + }, + { + "id": "A1-U18-P06", + "type": "phrase", + "en": "How often do I take it?", + "zh": "这个药多久吃一次?", + "sceneWord": false, + "match": [ + [ + "how often" + ] + ], + "example": { + "en": "How often do I take this medicine?", + "zh": "这个药多久吃一次?" + }, + "review": { + "prompt": "问药怎么吃。" + } + }, + { + "id": "A1-U18-P07", + "type": "phrase", + "en": "Three times a day.", + "zh": "一天三次。", + "sceneWord": false, + "match": [ + [ + "times a day", + "once a day", + "twice a day" + ] + ], + "example": { + "en": "Take it two times a day.", + "zh": "一天吃两次。" + }, + "review": { + "prompt": "说一天吃两次。" + } + }, + { + "id": "A1-U18-P08", + "type": "phrase", + "en": "after meals", + "zh": "饭后", + "sceneWord": false, + "match": [ + [ + "after meals", + "before meals" + ] + ], + "example": { + "en": "Take it after meals.", + "zh": "饭后吃。" + }, + "review": { + "prompt": "说这个药饭前吃。" + } + }, + { + "id": "A1-U18-P09", + "type": "phrase", + "en": "I need to see a doctor.", + "zh": "我需要看医生。", + "sceneWord": false, + "match": [ + [ + "see a doctor" + ] + ], + "example": { + "en": "Can I see a doctor today?", + "zh": "我今天能看医生吗?" + }, + "review": { + "prompt": "说你需要看医生。" + } + }, + { + "id": "A1-U18-P10", + "type": "phrase", + "en": "I feel better now.", + "zh": "我现在好多了。", + "sceneWord": false, + "match": [ + [ + "feel better" + ] + ], + "example": { + "en": "Do you feel better?", + "zh": "你好点了吗?" + }, + "review": { + "prompt": "告诉朋友你好多了。" + } + }, + { + "id": "A1-U18-P11", + "type": "phrase", + "en": "Take care.", + "zh": "保重。", + "sceneWord": false, + "match": [ + [ + "take care" + ] + ], + "example": { + "en": "Take care and drink water.", + "zh": "保重,多喝水。" + }, + "review": { + "prompt": "朋友生病了,跟他说保重。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U18-R01", + "en": "fever", + "zh": "发烧" + }, + { + "id": "A1-U18-R02", + "en": "health", + "zh": "健康" + }, + { + "id": "A1-U18-R03", + "en": "healthy", + "zh": "健康的" + }, + { + "id": "A1-U18-R04", + "en": "body", + "zh": "身体" + }, + { + "id": "A1-U18-R05", + "en": "arm", + "zh": "手臂" + }, + { + "id": "A1-U18-R06", + "en": "leg", + "zh": "腿" + }, + { + "id": "A1-U18-R07", + "en": "ear", + "zh": "耳朵" + }, + { + "id": "A1-U18-R08", + "en": "nose", + "zh": "鼻子" + }, + { + "id": "A1-U18-R09", + "en": "mouth", + "zh": "嘴" + }, + { + "id": "A1-U18-R10", + "en": "neck", + "zh": "脖子" + }, + { + "id": "A1-U18-R11", + "en": "shoulder", + "zh": "肩膀" + }, + { + "id": "A1-U18-R12", + "en": "knee", + "zh": "膝盖" + }, + { + "id": "A1-U18-R13", + "en": "heart", + "zh": "心脏" + }, + { + "id": "A1-U18-R14", + "en": "nurse", + "zh": "护士" + }, + { + "id": "A1-U18-R15", + "en": "breathe", + "zh": "呼吸" + }, + { + "id": "A1-U18-R16", + "en": "once", + "zh": "一次" + }, + { + "id": "A1-U18-R17", + "en": "stomach", + "zh": "胃" + }, + { + "id": "A1-U18-R18", + "en": "pill", + "zh": "药片" + }, + { + "id": "A1-U18-R19", + "en": "ill", + "zh": "生病的" + }, + { + "id": "A1-U18-R20", + "en": "dentist", + "zh": "牙医" + }, + { + "id": "A1-U18-R21", + "en": "toothache", + "zh": "牙疼" + }, + { + "id": "A1-U18-R22", + "en": "blood", + "zh": "血" + }, + { + "id": "A1-U18-R23", + "en": "twice", + "zh": "两次" + }, + { + "id": "A1-U18-R24", + "en": "important", + "zh": "重要的" + }, + { + "id": "A1-U18-R25", + "en": "yesterday", + "zh": "昨天" + }, + { + "id": "A1-U18-R26", + "en": "still", + "zh": "仍然" + } + ], + "segments": [ + { + "id": "A1-U18-S1", + "title": "说哪里不舒服", + "minutes": 13, + "itemIds": [ + "A1-U18-P01", + "A1-U18-P02", + "A1-U18-P03", + "A1-U18-W01", + "A1-U18-P09" + ], + "listening": { + "text": "What's the matter? I don't feel well. I have a headache, and my neck hurts. I think I need to see a doctor.", + "question": "说话人哪里不舒服?", + "options": [ + "头疼和脖子疼", + "发烧和胃疼", + "牙疼" + ] + }, + "speaking": [ + { + "text": "I don't feel well." + }, + { + "text": "I have a headache.", + "tip": "headache 读 /ˈhedeɪk/,ch 读 /k/" + }, + { + "text": "My head hurts." + }, + { + "text": "I feel sick." + }, + { + "text": "I need to see a doctor." + } + ], + "reading": { + "text": "Your body\nHead: eyes, ears, nose and mouth\nNeck and shoulders\nArms and hands\nLegs and knees\nIn your body, your heart is very important. When you run, you breathe fast.\nToothache? See a dentist. A fever or blood? See a doctor or a nurse.", + "question": "牙疼应该看谁?", + "options": [ + "牙医", + "护士", + "医生" + ] + }, + "writing": { + "prompt": "写两句话:说你不舒服,头疼。", + "example": "I don't feel well. I have a headache.", + "itemIds": [ + "A1-U18-P01", + "A1-U18-P02" + ] + }, + "independent": { + "prompt": "用英语说说你哪里疼,并说需要看医生。", + "itemIds": [ + "A1-U18-P03", + "A1-U18-W01", + "A1-U18-P09" + ] + } + }, + { + "id": "A1-U18-S2", + "title": "在药店", + "minutes": 13, + "itemIds": [ + "A1-U18-W02", + "A1-U18-P04", + "A1-U18-P05", + "A1-U18-P06", + "A1-U18-P07", + "A1-U18-P08" + ], + "listening": { + "text": "Excuse me, is there a pharmacy near here? Yes, next to the bank. ... Hello. Do you have something for a headache? Yes, this medicine. How often do I take it? Three times a day, after meals.", + "question": "药怎么吃?", + "options": [ + "一天三次,饭后", + "一天两次,饭前", + "一天一次,睡前" + ] + }, + "speaking": [ + { + "text": "I need some medicine." + }, + { + "text": "Is there a pharmacy near here?" + }, + { + "text": "Do you have something for a headache?" + }, + { + "text": "How often do I take it?" + }, + { + "text": "Three times a day." + }, + { + "text": "Take it after meals." + } + ], + "reading": { + "text": "Medicine box\nFor headaches and fevers\nPeople over 12: take 2 pills three times a day, after meals.\nChildren: take 1 pill twice a day.\nDon't take more than 6 pills a day.\nIll for more than three days? See a doctor.\nFor stomach problems, take it once a day, before meals.", + "question": "大人一天最多吃几片?", + "options": [ + "六片", + "三片", + "两片" + ] + }, + "writing": { + "prompt": "写两句话:问有没有治头疼的药,再问多久吃一次。", + "example": "Do you have something for a headache? How often do I take it?", + "itemIds": [ + "A1-U18-P05", + "A1-U18-P06" + ] + }, + "independent": { + "prompt": "你在药店买感冒药,用英语问清楚怎么吃。", + "itemIds": [ + "A1-U18-W02", + "A1-U18-P05", + "A1-U18-P06", + "A1-U18-P07", + "A1-U18-P08" + ] + } + }, + { + "id": "A1-U18-S3", + "title": "好些了", + "minutes": 11, + "itemIds": [ + "A1-U18-P10", + "A1-U18-P11" + ], + "listening": { + "text": "How are you today? I was sick yesterday, but I feel better now. Good! Take care.", + "question": "说话人今天怎么样?", + "options": [ + "好多了", + "还在发烧", + "要去看医生" + ] + }, + "speaking": [ + { + "text": "I feel better now." + }, + { + "text": "Take care." + }, + { + "text": "I was sick yesterday." + } + ], + "reading": { + "text": "A note to my friend\nHi Sam,\nI was ill yesterday. I had a fever, and my body hurt. Today I feel better now. I drink a lot of water and sleep. Health is important! I want to be healthy, so I run every day.\nTake care,\nLily", + "question": "Lily 昨天怎么了?", + "options": [ + "发烧,全身疼", + "牙疼", + "胃疼" + ] + }, + "writing": { + "prompt": "写两句话:说你昨天病了,现在好多了。", + "example": "I was sick yesterday. I feel better now.", + "itemIds": [ + "A1-U18-P10", + "A1-U18-W01" + ] + }, + "independent": { + "prompt": "朋友生病了,用英语问他好点没有,并说保重。", + "itemIds": [ + "A1-U18-P10", + "A1-U18-P11" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U18-C1", + "kind": "main", + "title": "在药店买药", + "learnerRole": "游客", + "aiRole": "药剂师", + "setting": "你旅行时头疼,走进一家药店。", + "turns": [ + { + "ai": "Hello. How can I help you?", + "goal": "说你不舒服,头疼", + "model": "I don't feel well. I have a headache.", + "zh": "我不舒服,头疼。", + "itemIds": [ + "A1-U18-P01", + "A1-U18-P02" + ] + }, + { + "ai": "Oh, I'm sorry. Do you have a fever?", + "goal": "说没有发烧,问有没有治头疼的药", + "model": "No. Do you have something for a headache?", + "zh": "没有。有治头疼的药吗?", + "itemIds": [ + "A1-U18-P05" + ] + }, + { + "ai": "Yes. This medicine is good.", + "goal": "问多久吃一次", + "model": "How often do I take it?", + "zh": "这个药多久吃一次?", + "itemIds": [ + "A1-U18-P06" + ] + }, + { + "ai": "Three times a day, after meals.", + "goal": "复述:一天三次,饭后", + "model": "Three times a day, after meals. OK.", + "zh": "一天三次,饭后。好的。", + "itemIds": [ + "A1-U18-P07", + "A1-U18-P08" + ] + }, + { + "ai": "Is it very bad?", + "goal": "说如果还疼就去看医生", + "model": "If my head hurts tomorrow, I need to see a doctor.", + "zh": "如果明天头还疼,我需要看医生。", + "itemIds": [ + "A1-U18-P03", + "A1-U18-P09" + ] + } + ] + }, + { + "id": "A1-U18-C2", + "kind": "variant", + "title": "在街上找药店", + "learnerRole": "游客", + "aiRole": "路人", + "setting": "你的孩子生病了,你在街上找药店。", + "turns": [ + { + "ai": "Are you OK?", + "goal": "说孩子生病了", + "model": "My son is sick.", + "zh": "我儿子病了。", + "itemIds": [ + "A1-U18-W01" + ] + }, + { + "ai": "Oh no. What's the matter?", + "goal": "说他发烧了", + "model": "He has a fever.", + "zh": "他发烧了。", + "itemIds": [ + "A1-U18-P02" + ] + }, + { + "ai": "He needs some medicine.", + "goal": "问附近有没有药店", + "model": "Yes, he needs medicine. Is there a pharmacy near here?", + "zh": "是的,他需要药。附近有药店吗?", + "itemIds": [ + "A1-U18-P04", + "A1-U18-W02" + ] + }, + { + "ai": "Yes, it's on the next street.", + "goal": "说也许需要看医生", + "model": "Thank you. Maybe he needs to see a doctor too.", + "zh": "谢谢。也许他还需要看医生。", + "itemIds": [ + "A1-U18-P09" + ] + }, + { + "ai": "There's a hospital near the pharmacy. Take care!", + "goal": "道谢", + "model": "Thanks. You take care too.", + "zh": "谢谢,你也保重。", + "itemIds": [ + "A1-U18-P11" + ] + } + ] + }, + { + "id": "A1-U18-C3", + "kind": "variant", + "title": "朋友来问候", + "learnerRole": "你", + "aiRole": "朋友", + "setting": "你昨天生病了,今天朋友打电话来问候。", + "turns": [ + { + "ai": "Hi! How are you today?", + "goal": "说好多了", + "model": "I feel better now.", + "zh": "我现在好多了。", + "itemIds": [ + "A1-U18-P10" + ] + }, + { + "ai": "Great! Do you still have a headache?", + "goal": "说还是不太舒服,背疼", + "model": "A little. I don't feel well, and my back hurts.", + "zh": "有一点。还是不太舒服,背也疼。", + "itemIds": [ + "A1-U18-P01", + "A1-U18-P03" + ] + }, + { + "ai": "Do you have medicine?", + "goal": "说有药,一天吃两次", + "model": "Yes. I take the medicine two times a day.", + "zh": "有,这个药一天吃两次。", + "itemIds": [ + "A1-U18-W02", + "A1-U18-P07" + ] + }, + { + "ai": "Before meals or after meals?", + "goal": "说饭后吃", + "model": "After meals.", + "zh": "饭后吃。", + "itemIds": [ + "A1-U18-P08" + ] + }, + { + "ai": "OK. Take care!", + "goal": "道谢", + "model": "Thanks. Take care.", + "zh": "谢谢。保重。", + "itemIds": [ + "A1-U18-P11" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U18-T1", + "sceneId": "A1-U18-C1", + "goal": "在药店说明症状并问清楚药怎么吃", + "itemIds": [ + "A1-U18-P01", + "A1-U18-P02", + "A1-U18-P05", + "A1-U18-P06", + "A1-U18-P07", + "A1-U18-P08", + "A1-U18-P03", + "A1-U18-P09" + ], + "slots": [ + "症状", + "药", + "用法" + ] + }, + { + "id": "A1-U18-T2", + "sceneId": "A1-U18-C2", + "goal": "孩子生病时在街上找药店", + "itemIds": [ + "A1-U18-W01", + "A1-U18-P02", + "A1-U18-P04", + "A1-U18-W02", + "A1-U18-P09", + "A1-U18-P11" + ], + "slots": [ + "症状", + "药店" + ] + }, + { + "id": "A1-U18-T3", + "sceneId": "A1-U18-C3", + "goal": "回答朋友的问候,说说病情", + "itemIds": [ + "A1-U18-P10", + "A1-U18-P01", + "A1-U18-P03", + "A1-U18-W02", + "A1-U18-P07", + "A1-U18-P08", + "A1-U18-P11" + ], + "slots": [ + "现在怎么样", + "哪里疼", + "吃药" + ] + } + ], + "materials": [ + { + "id": "A1-U18-M1", + "mode": "listening", + "title": "药店店员给建议", + "text": "Hello. What's the matter? You don't look well; you don't look healthy today. Do you have a fever? OK, you have a headache, your stomach hurts, and your neck and shoulder hurt too. Don't worry. Your health is important. Here is some medicine. Take one pill twice a day, after meals — not once, but two times. Please breathe slowly, drink a lot of water, and rest. If your ear, nose or leg still hurts tomorrow, or if you feel ill, you need to see a doctor. For a toothache, see a dentist. The nurse can help too. The pharmacy is open until ten. Take care!", + "glosses": { + "rest": "休息", + "hurts": "疼", + "hurt": "疼", + "slowly": "慢慢地" + }, + "questions": [ + { + "type": "gist", + "question": "说话人主要在做什么?", + "options": [ + "给生病的人建议和药", + "卖衣服", + "介绍菜单" + ] + }, + { + "type": "detail", + "question": "这个药怎么吃?", + "options": [ + "一天两次,饭后吃", + "一天三次,饭前吃", + "睡前吃" + ] + } + ] + }, + { + "id": "A1-U18-M2", + "mode": "reading", + "title": "读一段对话:说不舒服", + "text": "Ben: I don't feel well. I have a bad headache, and my body hurts everywhere.\nMia: Oh no. Do you have a fever? You don't look healthy.\nBen: A little. My head and my stomach hurt, and my arm and leg are tired.\nMia: Yesterday you were fine. You should rest. It's important. Do you have any medicine?\nBen: No. Is there a pharmacy near here?\nMia: Yes, next to the bank. The nurse there can give you something for a headache.\nBen: Thanks. My tooth hurts too. Maybe I need a dentist for this toothache.\nMia: Take care. Breathe slowly and drink water. I hope you feel better soon.\nBen: Thank you, my friend. I still feel ill, but a little better now.", + "glosses": { + "rest": "休息", + "hurts": "疼", + "hurt": "疼", + "everywhere": "到处", + "slowly": "慢慢地" + }, + "questions": [ + { + "type": "detail", + "question": "Ben 哪里不舒服?", + "options": [ + "头疼、发一点烧、浑身疼", + "只是牙疼", + "只是肚子疼" + ] + }, + { + "type": "detail", + "question": "药店在哪里?", + "options": [ + "银行旁边", + "车站里", + "酒店对面" + ] + } + ] + } + ], + "excluded": [ + { + "en": "sore throat", + "reason": "sore 为 B1、throat 为 B2;A1 用 My throat hurts 以外的说法,先不教" + }, + { + "en": "cough", + "reason": "B1–B2;留到 A2 看病单元" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U19.json b/kouyu_english/assets/courses/A1/A1-U19.json new file mode 100644 index 0000000..c7c89e6 --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U19.json @@ -0,0 +1,912 @@ +{ + "schemaVersion": 1, + "id": "A1-U19", + "revision": 1, + "level": "A1", + "title": "遇到麻烦时求助", + "categories": [ + "日常", + "旅行" + ], + "canDo": "说明遇到的麻烦、请求帮忙、感谢与回应", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "64", + "use": "active", + "reason": "只用 I was / It was 说刚才的情况" + }, + { + "id": "65", + "use": "active", + "reason": "只用 lost、took、happened 几个过去式" + }, + { + "id": "117", + "use": "active" + }, + { + "id": "101", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A1-U19-P01", + "type": "phrase", + "en": "I lost my wallet.", + "zh": "我的钱包丢了。", + "sceneWord": true, + "sceneReason": "wallet 为 A2,旅行中丢东西时最先要说", + "match": [ + [ + "lost my" + ] + ], + "example": { + "en": "I lost my phone.", + "zh": "我的手机丢了。" + }, + "review": { + "prompt": "说你的钱包丢了。" + } + }, + { + "id": "A1-U19-P02", + "type": "phrase", + "en": "Someone took my bag.", + "zh": "有人拿走了我的包。", + "sceneWord": false, + "match": [ + [ + "took my" + ] + ], + "example": { + "en": "Someone took my phone.", + "zh": "有人拿走了我的手机。" + }, + "review": { + "prompt": "说有人拿走了你的包。" + } + }, + { + "id": "A1-U19-P03", + "type": "phrase", + "en": "Call the police!", + "zh": "快报警!", + "sceneWord": true, + "sceneReason": "police 为 A2,遇到偷窃必须会说", + "match": [ + [ + "call the police" + ] + ], + "example": { + "en": "Please call the police.", + "zh": "请报警。" + }, + "review": { + "prompt": "请旁边的人报警。" + } + }, + { + "id": "A1-U19-P04", + "type": "phrase", + "en": "Where is the police station?", + "zh": "警察局在哪里?", + "sceneWord": true, + "sceneReason": "police station 为 A2,报案时要去", + "match": [ + [ + "police station" + ] + ], + "example": { + "en": "Is there a police station near here?", + "zh": "附近有警察局吗?" + }, + "review": { + "prompt": "问警察局在哪里。" + } + }, + { + "id": "A1-U19-P05", + "type": "phrase", + "en": "I can't find my passport.", + "zh": "我找不到我的护照了。", + "sceneWord": false, + "match": [ + [ + "can't find" + ] + ], + "example": { + "en": "I can't find my hotel.", + "zh": "我找不到我的酒店了。" + }, + "review": { + "prompt": "说你找不到护照了。" + } + }, + { + "id": "A1-U19-P06", + "type": "phrase", + "en": "What happened?", + "zh": "发生了什么事?", + "sceneWord": false, + "match": [ + [ + "what happened" + ] + ], + "example": { + "en": "What happened to your bag?", + "zh": "你的包怎么了?" + }, + "review": { + "prompt": "看到有人着急,问发生了什么。" + } + }, + { + "id": "A1-U19-P07", + "type": "phrase", + "en": "I was on the bus.", + "zh": "我当时在公交车上。", + "sceneWord": false, + "match": [ + [ + "i was" + ] + ], + "example": { + "en": "I was in the station.", + "zh": "我当时在车站。" + }, + "review": { + "prompt": "说你当时在出租车上。" + } + }, + { + "id": "A1-U19-P08", + "type": "phrase", + "en": "Does anyone speak Chinese?", + "zh": "有人会说中文吗?", + "sceneWord": false, + "match": [ + [ + "does anyone speak" + ] + ], + "example": { + "en": "Does anyone speak English?", + "zh": "有人会说英语吗?" + }, + "review": { + "prompt": "问有没有人会说中文。" + } + }, + { + "id": "A1-U19-P09", + "type": "phrase", + "en": "Don't worry.", + "zh": "别担心。", + "sceneWord": false, + "match": [ + [ + "don't worry" + ] + ], + "example": { + "en": "Don't worry. We can help you.", + "zh": "别担心,我们能帮你。" + }, + "review": { + "prompt": "安慰着急的朋友。" + } + }, + { + "id": "A1-U19-P10", + "type": "phrase", + "en": "I need help.", + "zh": "我需要帮助。", + "sceneWord": false, + "match": [ + [ + "need help" + ] + ], + "example": { + "en": "I need help, please.", + "zh": "我需要帮助,请帮帮我。" + }, + "review": { + "prompt": "说你需要帮助。" + } + }, + { + "id": "A1-U19-P11", + "type": "phrase", + "en": "It's an emergency.", + "zh": "这是紧急情况。", + "sceneWord": true, + "sceneReason": "emergency 为 A2,求助时要让对方知道情况紧急", + "match": [ + [ + "emergency" + ] + ], + "example": { + "en": "Please help. It's an emergency!", + "zh": "请帮帮忙,这是急事!" + }, + "review": { + "prompt": "告诉别人情况紧急。" + } + }, + { + "id": "A1-U19-W01", + "type": "word", + "en": "quickly", + "zh": "快点", + "sceneWord": false, + "match": [ + [ + "quickly" + ] + ], + "example": { + "en": "Please come quickly!", + "zh": "请快点来!" + }, + "review": { + "prompt": "请别人快点来。" + } + }, + { + "id": "A1-U19-W02", + "type": "word", + "en": "fire", + "zh": "火;火灾", + "sceneWord": false, + "match": [ + [ + "fire" + ] + ], + "example": { + "en": "There's a fire in the kitchen!", + "zh": "厨房着火了!" + }, + "review": { + "prompt": "喊人说着火了。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U19-R01", + "en": "thief", + "zh": "小偷" + }, + { + "id": "A1-U19-R02", + "en": "steal", + "zh": "偷" + }, + { + "id": "A1-U19-R03", + "en": "danger", + "zh": "危险" + }, + { + "id": "A1-U19-R04", + "en": "dangerous", + "zh": "危险的" + }, + { + "id": "A1-U19-R05", + "en": "mistake", + "zh": "错误" + }, + { + "id": "A1-U19-R06", + "en": "trouble", + "zh": "麻烦" + }, + { + "id": "A1-U19-R07", + "en": "report", + "zh": "报告" + }, + { + "id": "A1-U19-R08", + "en": "fall", + "zh": "摔倒" + }, + { + "id": "A1-U19-R09", + "en": "save", + "zh": "救;保存" + }, + { + "id": "A1-U19-R10", + "en": "believe", + "zh": "相信" + }, + { + "id": "A1-U19-R11", + "en": "guess", + "zh": "猜" + }, + { + "id": "A1-U19-R12", + "en": "true", + "zh": "真的" + }, + { + "id": "A1-U19-R13", + "en": "lucky", + "zh": "幸运的" + }, + { + "id": "A1-U19-R14", + "en": "poor", + "zh": "可怜的;穷的" + }, + { + "id": "A1-U19-R15", + "en": "real", + "zh": "真实的" + }, + { + "id": "A1-U19-R16", + "en": "reason", + "zh": "原因" + }, + { + "id": "A1-U19-R17", + "en": "touch", + "zh": "碰" + }, + { + "id": "A1-U19-R18", + "en": "throw", + "zh": "扔" + }, + { + "id": "A1-U19-R19", + "en": "policeman", + "zh": "警察" + }, + { + "id": "A1-U19-R20", + "en": "somebody", + "zh": "某人" + }, + { + "id": "A1-U19-R21", + "en": "safe", + "zh": "安全的" + }, + { + "id": "A1-U19-R22", + "en": "everywhere", + "zh": "到处" + }, + { + "id": "A1-U19-R23", + "en": "tell", + "zh": "告诉" + }, + { + "id": "A1-U19-R24", + "en": "story", + "zh": "故事" + }, + { + "id": "A1-U19-R25", + "en": "thing", + "zh": "东西" + } + ], + "segments": [ + { + "id": "A1-U19-S1", + "title": "丢了东西", + "minutes": 13, + "itemIds": [ + "A1-U19-P01", + "A1-U19-P05", + "A1-U19-P06", + "A1-U19-P07", + "A1-U19-P10" + ], + "listening": { + "text": "What happened? I lost my wallet. Where were you? I was on the bus. And I can't find my passport too. I need help.", + "question": "说话人丢了什么?", + "options": [ + "钱包,也找不到护照", + "手机和包", + "酒店钥匙" + ] + }, + "speaking": [ + { + "text": "What happened?" + }, + { + "text": "I lost my wallet." + }, + { + "text": "I can't find my passport." + }, + { + "text": "I was on the bus." + }, + { + "text": "I need help." + } + ], + "reading": { + "text": "Lost something?\n1. Don't be afraid. Maybe it's your mistake. Look everywhere: in your bag, in your pockets, in the hotel.\n2. Think: where was it? Was it in the taxi or on the bus?\n3. Call the bus or taxi office. Tell them the date and time.\n4. Can't find it? Go to the police station. They can write a report.\n5. You lost your passport? Call your country's office in the city.", + "question": "找不到丢失的东西,最后应该去哪里?", + "options": [ + "警察局", + "出租车公司", + "酒店前台" + ] + }, + "writing": { + "prompt": "写两句话:说你钱包丢了,当时在公交车上。", + "example": "I lost my wallet. I was on the bus.", + "itemIds": [ + "A1-U19-P01", + "A1-U19-P07" + ] + }, + "independent": { + "prompt": "用英语告诉酒店前台你丢了什么、当时在哪里。", + "itemIds": [ + "A1-U19-P01", + "A1-U19-P05", + "A1-U19-P07", + "A1-U19-P10" + ] + } + }, + { + "id": "A1-U19-S2", + "title": "被偷和报警", + "minutes": 13, + "itemIds": [ + "A1-U19-P02", + "A1-U19-P03", + "A1-U19-P04", + "A1-U19-P08", + "A1-U19-P11" + ], + "listening": { + "text": "Help! Someone took my bag! Call the police! It's an emergency. Does anyone speak Chinese? I do. Don't worry. The police station is next to the bank.", + "question": "警察局在哪里?", + "options": [ + "银行旁边", + "公交车站旁边", + "酒店对面" + ] + }, + "speaking": [ + { + "text": "Someone took my bag." + }, + { + "text": "Call the police!", + "tip": "police 重音在第二个音节:po-LICE" + }, + { + "text": "Where is the police station?" + }, + { + "text": "Does anyone speak Chinese?" + }, + { + "text": "It's an emergency." + } + ], + "reading": { + "text": "At the police station\nPoliceman: What happened?\nMia: Somebody took my bag on the train. I believe it was a thief. Thieves can steal bags on trains.\nPoliceman: What was in it?\nMia: My phone and my wallet. There was nothing else.\nPoliceman: Do you remember the man? Guess his age.\nMia: About thirty. He was tall.\nPoliceman: OK. Here is your report. Who should we call?", + "question": "Mia 的包里有什么?", + "options": [ + "手机和钱包", + "护照和钥匙", + "相机和钱" + ] + }, + "writing": { + "prompt": "写两句话:说有人拿走了你的包,请人报警。", + "example": "Someone took my bag. Call the police!", + "itemIds": [ + "A1-U19-P02", + "A1-U19-P03" + ] + }, + "independent": { + "prompt": "你的手机被偷了,用英语向路人求助并问警察局在哪。", + "itemIds": [ + "A1-U19-P02", + "A1-U19-P11", + "A1-U19-P04", + "A1-U19-P08" + ] + } + }, + { + "id": "A1-U19-S3", + "title": "紧急情况", + "minutes": 11, + "itemIds": [ + "A1-U19-P09", + "A1-U19-W01", + "A1-U19-W02" + ], + "listening": { + "text": "Fire! There's a fire in the kitchen! Come quickly! Don't worry, everybody. Go out of the building. Is anyone hurt? No, we're all safe.", + "question": "大家现在怎么样?", + "options": [ + "都很安全", + "有人受伤", + "还在厨房里" + ] + }, + "speaking": [ + { + "text": "Don't worry." + }, + { + "text": "Please come quickly!" + }, + { + "text": "There's a fire!" + } + ], + "reading": { + "text": "Is it true?\nMy friend Ben was lucky. He had a real problem in a big city. He was on a bridge, and a poor old woman was in danger. The road was dangerous. She had a fall. Ben ran to her quickly and helped her. People say he saved her. Now Ben tells this story, and his reason is this: \"Don't touch your phone. Look at the people around you!\" Some people throw things on the road, and some people help.", + "question": "Ben 做了什么?", + "options": [ + "帮了摔倒的老人", + "报了警", + "救了火" + ] + }, + "writing": { + "prompt": "写两句话:喊着火了,请人快点来。", + "example": "There's a fire! Please come quickly!", + "itemIds": [ + "A1-U19-W02", + "A1-U19-W01" + ] + }, + "independent": { + "prompt": "朋友很害怕,用英语安慰他,并说你们要快点出去。", + "itemIds": [ + "A1-U19-P09", + "A1-U19-W01" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U19-C1", + "kind": "main", + "title": "在街上包被抢", + "learnerRole": "游客", + "aiRole": "路人", + "setting": "你在街上,有人抢走了你的包,你向路人求助。", + "turns": [ + { + "ai": "Are you OK? Are you in trouble? What happened?", + "goal": "说有人拿走了你的包", + "model": "Someone took my bag!", + "zh": "有人拿走了我的包!", + "itemIds": [ + "A1-U19-P02" + ] + }, + { + "ai": "Oh no! What was in it?", + "goal": "说钱包在里面,情况紧急", + "model": "My wallet. It's an emergency. I need help.", + "zh": "我的钱包在里面。情况紧急,我需要帮助。", + "itemIds": [ + "A1-U19-P11", + "A1-U19-P10" + ] + }, + { + "ai": "Don't worry. I can help you.", + "goal": "请对方报警", + "model": "Please call the police!", + "zh": "请报警!", + "itemIds": [ + "A1-U19-P03" + ] + }, + { + "ai": "OK. I can call them now.", + "goal": "请他们快点来", + "model": "Can they come quickly?", + "zh": "他们能快点来吗?", + "itemIds": [ + "A1-U19-W01" + ] + }, + { + "ai": "Good idea. Do you know a police station near here?", + "goal": "问警察局在哪", + "model": "No. Where is the police station?", + "zh": "警察局在哪里?", + "itemIds": [ + "A1-U19-P04" + ] + } + ] + }, + { + "id": "A1-U19-C2", + "kind": "variant", + "title": "在酒店前台说丢了护照", + "learnerRole": "客人", + "aiRole": "酒店前台", + "setting": "你回到酒店,发现护照不见了。", + "turns": [ + { + "ai": "Hello. You look worried.", + "goal": "说你找不到护照", + "model": "I can't find my passport.", + "zh": "我找不到我的护照了。", + "itemIds": [ + "A1-U19-P05" + ] + }, + { + "ai": "Oh no! When was the last time you had it?", + "goal": "说当时在出租车上", + "model": "I was in a taxi.", + "zh": "我当时在出租车上。", + "itemIds": [ + "A1-U19-P07" + ] + }, + { + "ai": "Do you remember the taxi?", + "goal": "说不记得,钱包也丢了", + "model": "No. And I lost my wallet.", + "zh": "不记得。而且我的钱包也丢了。", + "itemIds": [ + "A1-U19-P01" + ] + }, + { + "ai": "Don't worry. We can call the taxi office.", + "goal": "问有没有人会说中文", + "model": "Thank you. Does anyone speak Chinese here?", + "zh": "谢谢。这里有人会说中文吗?", + "itemIds": [ + "A1-U19-P08" + ] + }, + { + "ai": "Yes, Mr Wang can help you.", + "goal": "说你需要帮助", + "model": "Great. I need help.", + "zh": "太好了。我需要帮助。", + "itemIds": [ + "A1-U19-P10" + ] + } + ] + }, + { + "id": "A1-U19-C3", + "kind": "variant", + "title": "朋友遇到紧急情况", + "learnerRole": "你", + "aiRole": "慌张的朋友", + "setting": "你和朋友在公寓里,朋友突然跑过来喊你。", + "turns": [ + { + "ai": "Come here! Come here!", + "goal": "问发生了什么", + "model": "What happened?", + "zh": "发生了什么事?", + "itemIds": [ + "A1-U19-P06" + ] + }, + { + "ai": "There's a fire in the kitchen!", + "goal": "说着火了,要快点", + "model": "A fire? Quickly!", + "zh": "着火了?快!", + "itemIds": [ + "A1-U19-W02", + "A1-U19-W01" + ] + }, + { + "ai": "What can we do?", + "goal": "叫朋友别担心,报警", + "model": "Don't worry. Call the police.", + "zh": "别担心。报警。", + "itemIds": [ + "A1-U19-P09", + "A1-U19-P03" + ] + }, + { + "ai": "The number is 110?", + "goal": "说这是紧急情况,要叫他们快点来", + "model": "Yes. Tell them it's an emergency.", + "zh": "对。告诉他们这是紧急情况。", + "itemIds": [ + "A1-U19-P11" + ] + }, + { + "ai": "OK! Are you OK?", + "goal": "说你需要帮助,不会英语的邻居有人会说中文吗", + "model": "I need help. Does anyone speak Chinese?", + "zh": "我需要帮助。有人会说中文吗?", + "itemIds": [ + "A1-U19-P10", + "A1-U19-P08" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U19-T1", + "sceneId": "A1-U19-C1", + "goal": "包被抢后向路人求助并找警察", + "itemIds": [ + "A1-U19-P02", + "A1-U19-P11", + "A1-U19-P10", + "A1-U19-P03", + "A1-U19-W01", + "A1-U19-P04" + ], + "slots": [ + "发生了什么", + "报警", + "警察局" + ] + }, + { + "id": "A1-U19-T2", + "sceneId": "A1-U19-C2", + "goal": "向酒店说明护照和钱包丢失的经过", + "itemIds": [ + "A1-U19-P05", + "A1-U19-P07", + "A1-U19-P01", + "A1-U19-P08", + "A1-U19-P10" + ], + "slots": [ + "丢了什么", + "在哪里丢的", + "求助" + ] + }, + { + "id": "A1-U19-T3", + "sceneId": "A1-U19-C3", + "goal": "家里着火时和朋友应对", + "itemIds": [ + "A1-U19-P06", + "A1-U19-W02", + "A1-U19-W01", + "A1-U19-P09", + "A1-U19-P03", + "A1-U19-P11", + "A1-U19-P10", + "A1-U19-P08" + ], + "slots": [ + "情况", + "报警", + "求助" + ] + } + ], + "materials": [ + { + "id": "A1-U19-M1", + "mode": "listening", + "title": "有人在求助", + "text": "Excuse me! I need help — it's an emergency! A thief took my bag on the bus and ran away. I think somebody wanted to steal my money. My passport and my wallet are in the bag! This is real trouble. Please call the police and report it. Where is the police station? Is it safe here? I was on the bus from the airport. I looked everywhere, but I can't find my phone. I made a big mistake — I didn't hold my bag. It's dangerous here! Does anyone speak Chinese? Please help me quickly. Thank you very much.", + "glosses": { + "ran": "跑(过去式)", + "anyone": "任何人", + "made": "make 的过去式;made a mistake 犯了错" + }, + "questions": [ + { + "type": "gist", + "question": "这个人为什么求助?", + "options": [ + "包被小偷拿走了", + "找不到酒店", + "想问路" + ] + }, + { + "type": "detail", + "question": "他的护照在哪里?", + "options": [ + "在被拿走的包里", + "在酒店", + "在口袋里" + ] + } + ] + }, + { + "id": "A1-U19-M2", + "mode": "reading", + "title": "读一段对话:丢了钱包", + "text": "Anna: What happened? You look worried. Are you in trouble?\nBen: I lost my wallet! I can't find it anywhere. I think a thief took it.\nAnna: Don't worry. Where were you? Try to remember.\nBen: I was in the cafe near the station. I guess I left it on the table. It's a silly mistake.\nAnna: Maybe nobody took it. Was there money in it?\nBen: Yes, and my ID card. Do you believe it's still there?\nAnna: Maybe. It's not a dangerous place; people are kind and honest there. Let's go back and look.\nBen: You're right. I'm lucky you're here. If we can't find it, we'll report it at the police station.\nAnna: Good plan. That's the true way to be safe.\nBen: Thank you so much. You saved me!", + "glosses": { + "anywhere": "任何地方", + "silly": "傻的", + "nobody": "没有人", + "honest": "诚实的" + }, + "questions": [ + { + "type": "detail", + "question": "Ben 觉得钱包丢在哪里了?", + "options": [ + "车站旁边的咖啡店", + "公交车上", + "酒店房间" + ] + }, + { + "type": "detail", + "question": "如果找不到,他们打算怎么办?", + "options": [ + "去派出所报案", + "回家", + "给妈妈打电话" + ] + } + ] + } + ], + "excluded": [ + { + "en": "ambulance", + "reason": "B1;A1 用 call the police / It's an emergency 求助" + }, + { + "en": "embassy", + "reason": "B2;A1 用 your country's office 解释" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U20.json b/kouyu_english/assets/courses/A1/A1-U20.json new file mode 100644 index 0000000..3139ff5 --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U20.json @@ -0,0 +1,857 @@ +{ + "schemaVersion": 1, + "id": "A1-U20", + "revision": 1, + "level": "A1", + "title": "打电话与留言", + "categories": [ + "日常" + ], + "canDo": "留下姓名、号码和简短信息", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "123", + "use": "active" + }, + { + "id": "141", + "use": "active", + "reason": "只用 I'll call again later 表示马上决定的事" + }, + { + "id": "237", + "use": "receptive" + }, + { + "id": "117", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A1-U20-P01", + "type": "phrase", + "en": "Hello, this is Chen.", + "zh": "你好,我是陈。", + "sceneWord": false, + "match": [ + [ + "this is" + ] + ], + "example": { + "en": "Hello, this is Anna from room 305.", + "zh": "你好,我是 305 房间的安娜。" + }, + "review": { + "prompt": "打电话时先说你是谁。" + } + }, + { + "id": "A1-U20-P02", + "type": "phrase", + "en": "Can I speak to Mr Brown?", + "zh": "我能和布朗先生通话吗?", + "sceneWord": false, + "match": [ + [ + "speak to" + ] + ], + "example": { + "en": "Can I speak to Lucy, please?", + "zh": "请问露西在吗?" + }, + "review": { + "prompt": "打电话找你的朋友汤姆。" + } + }, + { + "id": "A1-U20-P03", + "type": "phrase", + "en": "Who's calling, please?", + "zh": "请问您是哪位?", + "sceneWord": false, + "match": [ + [ + "who's calling", + "who is calling" + ] + ], + "example": { + "en": "Hello. Who's calling?", + "zh": "你好,请问是哪位?" + }, + "review": { + "prompt": "接电话时问对方是谁。" + } + }, + { + "id": "A1-U20-P04", + "type": "phrase", + "en": "Hold on, please.", + "zh": "请稍等。", + "sceneWord": false, + "match": [ + [ + "hold on" + ] + ], + "example": { + "en": "Hold on. I can get him.", + "zh": "稍等,我去叫他。" + }, + "review": { + "prompt": "请对方在电话里稍等。" + } + }, + { + "id": "A1-U20-P05", + "type": "phrase", + "en": "He's not here right now.", + "zh": "他现在不在。", + "sceneWord": false, + "match": [ + [ + "not here right now" + ] + ], + "example": { + "en": "Sorry, she's not here right now.", + "zh": "抱歉,她现在不在。" + }, + "review": { + "prompt": "告诉打电话的人你妈妈不在。" + } + }, + { + "id": "A1-U20-P06", + "type": "phrase", + "en": "Can I leave a message?", + "zh": "我可以留个言吗?", + "sceneWord": false, + "match": [ + [ + "leave a message" + ] + ], + "example": { + "en": "Do you want to leave a message?", + "zh": "您要留言吗?" + }, + "review": { + "prompt": "要找的人不在,问能不能留言。" + } + }, + { + "id": "A1-U20-P07", + "type": "phrase", + "en": "Can you call me back?", + "zh": "你能给我回电话吗?", + "sceneWord": false, + "match": [ + [ + "call me back", + "call you back" + ] + ], + "example": { + "en": "I can call you back later.", + "zh": "我晚点给你回电话。" + }, + "review": { + "prompt": "请对方给你回电话。" + } + }, + { + "id": "A1-U20-P08", + "type": "phrase", + "en": "What's your mobile number?", + "zh": "你的手机号是多少?", + "sceneWord": false, + "match": [ + [ + "mobile number", + "phone number" + ] + ], + "example": { + "en": "My mobile number is 138 2046 7751.", + "zh": "我的手机号是 138 2046 7751。" + }, + "review": { + "prompt": "问对方的手机号。" + } + }, + { + "id": "A1-U20-P09", + "type": "phrase", + "en": "Sorry, I can't hear you.", + "zh": "抱歉,我听不见你说话。", + "sceneWord": false, + "match": [ + [ + "can't hear" + ] + ], + "example": { + "en": "I can't hear you. Can you speak slowly?", + "zh": "我听不见,你能慢点说吗?" + }, + "review": { + "prompt": "电话信号不好,说你听不见。" + } + }, + { + "id": "A1-U20-P10", + "type": "phrase", + "en": "Sorry, wrong number.", + "zh": "抱歉,打错了。", + "sceneWord": false, + "match": [ + [ + "wrong number" + ] + ], + "example": { + "en": "I think you have the wrong number.", + "zh": "我想你打错了。" + }, + "review": { + "prompt": "有人打错电话,告诉他打错了。" + } + }, + { + "id": "A1-U20-P11", + "type": "phrase", + "en": "I'll call again later.", + "zh": "我晚点再打。", + "sceneWord": false, + "match": [ + [ + "call again", + "call later" + ] + ], + "example": { + "en": "OK, I'll call later.", + "zh": "好,我晚点再打。" + }, + "review": { + "prompt": "对方忙,说你晚点再打。" + } + }, + { + "id": "A1-U20-P12", + "type": "phrase", + "en": "Please text me.", + "zh": "请给我发短信。", + "sceneWord": true, + "sceneReason": "text 为 A2 动词,旅行中发短信确认地址很常用", + "match": [ + [ + "text me" + ] + ], + "example": { + "en": "Text me the address, please.", + "zh": "请把地址发短信给我。" + }, + "review": { + "prompt": "请朋友把时间发短信给你。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U20-R01", + "en": "telephone", + "zh": "电话" + }, + { + "id": "A1-U20-R02", + "en": "mail", + "zh": "邮件" + }, + { + "id": "A1-U20-R03", + "en": "ring", + "zh": "(电话)响" + }, + { + "id": "A1-U20-R04", + "en": "voice", + "zh": "声音" + }, + { + "id": "A1-U20-R05", + "en": "conversation", + "zh": "对话" + }, + { + "id": "A1-U20-R06", + "en": "talk", + "zh": "说话" + }, + { + "id": "A1-U20-R07", + "en": "mind", + "zh": "介意(Never mind.)" + }, + { + "id": "A1-U20-R08", + "en": "grandma", + "zh": "奶奶;外婆" + }, + { + "id": "A1-U20-R09", + "en": "grandpa", + "zh": "爷爷;外公" + }, + { + "id": "A1-U20-R10", + "en": "mum", + "zh": "妈妈" + }, + { + "id": "A1-U20-R11", + "en": "haircut", + "zh": "理发" + }, + { + "id": "A1-U20-R12", + "en": "class", + "zh": "课;班" + }, + { + "id": "A1-U20-R13", + "en": "lesson", + "zh": "课" + }, + { + "id": "A1-U20-R14", + "en": "course", + "zh": "课程" + }, + { + "id": "A1-U20-R15", + "en": "test", + "zh": "考试" + }, + { + "id": "A1-U20-R16", + "en": "college", + "zh": "学院" + }, + { + "id": "A1-U20-R17", + "en": "club", + "zh": "俱乐部" + }, + { + "id": "A1-U20-R18", + "en": "group", + "zh": "小组" + }, + { + "id": "A1-U20-R19", + "en": "owner", + "zh": "老板;主人" + }, + { + "id": "A1-U20-R20", + "en": "worker", + "zh": "工作人员" + } + ], + "segments": [ + { + "id": "A1-U20-S1", + "title": "打电话找人", + "minutes": 13, + "itemIds": [ + "A1-U20-P01", + "A1-U20-P02", + "A1-U20-P03", + "A1-U20-P04", + "A1-U20-P05" + ], + "listening": { + "text": "Hello? Hello, this is Chen. Can I speak to Mr Brown? Who's calling, please? Chen, from London. Hold on, please. ... Sorry, he's not here right now.", + "question": "布朗先生现在怎么样?", + "options": [ + "不在", + "在开会", + "马上来接电话" + ] + }, + "speaking": [ + { + "text": "Hello, this is Chen." + }, + { + "text": "Can I speak to Mr Brown?" + }, + { + "text": "Who's calling, please?" + }, + { + "text": "Hold on, please.", + "tip": "hold on 连读成 /həʊl dɒn/" + }, + { + "text": "He's not here right now." + } + ], + "reading": { + "text": "Phone talk\nThe phone rings. Grandma answers.\nGrandma: Hello?\nLeo: Hi Grandma, this is Leo. Can I speak to Mum?\nGrandma: Hold on... Sorry, she's not here right now. She's at her dance class. Do you want to talk to Grandpa?\nLeo: Yes, please!\nIt's a short conversation, but Grandma loves Leo's voice.", + "question": "妈妈现在在哪里?", + "options": [ + "在舞蹈课上", + "在上班", + "在家里" + ] + }, + "writing": { + "prompt": "写两句话:说你是谁,再问能不能和汤姆通话。", + "example": "Hello, this is Chen. Can I speak to Tom?", + "itemIds": [ + "A1-U20-P01", + "A1-U20-P02" + ] + }, + "independent": { + "prompt": "你接到电话,要找的人不在,用英语问对方是谁并说那人不在。", + "itemIds": [ + "A1-U20-P03", + "A1-U20-P04", + "A1-U20-P05" + ] + } + }, + { + "id": "A1-U20-S2", + "title": "留言和回电", + "minutes": 13, + "itemIds": [ + "A1-U20-P06", + "A1-U20-P07", + "A1-U20-P08", + "A1-U20-P11", + "A1-U20-P12" + ], + "listening": { + "text": "Can I leave a message? Sure. Can you ask Lucy to call me back? What's your mobile number? It's 139 5520 8864. OK. Or I'll call again later.", + "question": "打电话的人希望露西做什么?", + "options": [ + "给他回电话", + "发邮件", + "去找他" + ] + }, + "speaking": [ + { + "text": "Can I leave a message?" + }, + { + "text": "Can you call me back?" + }, + { + "text": "What's your mobile number?" + }, + { + "text": "I'll call again later." + }, + { + "text": "Please text me." + } + ], + "reading": { + "text": "Phone messages\nFor: Mr Brown\nFrom: Sara, the owner of Sun Hair\nMessage: Your haircut is on Friday at 3 pm. Please call her back.\n-\nFor: Ella\nFrom: Kate, the College English Club\nMessage: The group lesson is on Monday. Your test is next week. Please text her or send an email or mail. Her number is 136 2210 5547.", + "question": "艾拉的考试在什么时候?", + "options": [ + "下周", + "周一", + "周五" + ] + }, + "writing": { + "prompt": "写两句话:问能不能留言,请对方回电话。", + "example": "Can I leave a message? Can you call me back?", + "itemIds": [ + "A1-U20-P06", + "A1-U20-P07" + ] + }, + "independent": { + "prompt": "用英语给不在的朋友留言:说你是谁,请他回电话,并留下手机号。", + "itemIds": [ + "A1-U20-P01", + "A1-U20-P06", + "A1-U20-P07", + "A1-U20-P08" + ] + } + }, + { + "id": "A1-U20-S3", + "title": "电话里的问题", + "minutes": 11, + "itemIds": [ + "A1-U20-P09", + "A1-U20-P10" + ], + "listening": { + "text": "Hello? Is that Max? Sorry, wrong number. Oh, sorry! ... Hello, Max? Sorry, I can't hear you. Can you speak slowly?", + "question": "第一个电话出了什么问题?", + "options": [ + "打错了", + "听不见", + "没人接" + ] + }, + "speaking": [ + { + "text": "Sorry, I can't hear you." + }, + { + "text": "Sorry, wrong number." + }, + { + "text": "Can you spell your name, please?" + } + ], + "reading": { + "text": "Phone help for your trip\nCan't hear the worker on the telephone? Say \"Sorry, I can't hear you.\" Ask them to speak slowly or to spell a word.\nWrong number? Say sorry. Never mind!\nA course or a class on the phone is not easy. Text or email is OK too.", + "question": "电话里听不清时可以怎么做?", + "options": [ + "请对方慢点说或拼出来", + "马上挂电话", + "大声喊" + ] + }, + "writing": { + "prompt": "写两句话:说你听不见,请对方慢点说。", + "example": "Sorry, I can't hear you. Can you speak slowly?", + "itemIds": [ + "A1-U20-P09" + ] + }, + "independent": { + "prompt": "有人打错电话找“Max”,用英语礼貌地告诉他打错了。", + "itemIds": [ + "A1-U20-P10", + "A1-U20-P03" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U20-C1", + "kind": "main", + "title": "打电话到朋友家", + "learnerRole": "你", + "aiRole": "朋友的家人", + "setting": "你打电话找朋友汤姆,接电话的是他的家人。", + "turns": [ + { + "ai": "Hello?", + "goal": "说你是谁", + "model": "Hello, this is Chen.", + "zh": "你好,我是陈。", + "itemIds": [ + "A1-U20-P01" + ] + }, + { + "ai": "Hi, Chen.", + "goal": "问能不能和汤姆通话", + "model": "Can I speak to Tom, please?", + "zh": "请问汤姆在吗?", + "itemIds": [ + "A1-U20-P02" + ] + }, + { + "ai": "Sorry, he's not here right now.", + "goal": "问能不能留言", + "model": "Can I leave a message?", + "zh": "我可以留个言吗?", + "itemIds": [ + "A1-U20-P06" + ] + }, + { + "ai": "Sure.", + "goal": "请他回电话", + "model": "Can you ask him to call me back?", + "zh": "你能让他给我回电话吗?", + "itemIds": [ + "A1-U20-P07" + ] + }, + { + "ai": "OK. What's your mobile number?", + "goal": "留下号码,说晚点再打", + "model": "It's 138 2046 7751. Or I'll call again later.", + "zh": "138 2046 7751。或者我晚点再打。", + "itemIds": [ + "A1-U20-P11" + ] + } + ] + }, + { + "id": "A1-U20-C2", + "kind": "variant", + "title": "接电话", + "learnerRole": "接电话的人", + "aiRole": "打电话来的人", + "setting": "你在朋友家,电话响了,你帮忙接电话。", + "turns": [ + { + "ai": "Hello, can I speak to Lily?", + "goal": "问对方是谁", + "model": "Who's calling, please?", + "zh": "请问您是哪位?", + "itemIds": [ + "A1-U20-P03" + ] + }, + { + "ai": "This is Ben, from her English class.", + "goal": "请对方稍等", + "model": "Hold on, please.", + "zh": "请稍等。", + "itemIds": [ + "A1-U20-P04" + ] + }, + { + "ai": "OK.", + "goal": "说她现在不在", + "model": "Sorry, she's not here right now.", + "zh": "抱歉,她现在不在。", + "itemIds": [ + "A1-U20-P05" + ] + }, + { + "ai": "Oh. Can she call me back?", + "goal": "问对方的手机号", + "model": "Sure. What's your mobile number?", + "zh": "好的。你的手机号是多少?", + "itemIds": [ + "A1-U20-P08" + ] + }, + { + "ai": "It's 136... hello?", + "goal": "说听不见", + "model": "Sorry, I can't hear you.", + "zh": "抱歉,我听不见你说话。", + "itemIds": [ + "A1-U20-P09" + ] + } + ] + }, + { + "id": "A1-U20-C3", + "kind": "variant", + "title": "打错电话和发短信", + "learnerRole": "你", + "aiRole": "陌生人/朋友", + "setting": "你打给酒店想确认地址,结果先打错,再打给朋友。", + "turns": [ + { + "ai": "Hello?", + "goal": "说你是谁,问能不能和 Sam 通话", + "model": "Hello, this is Chen. Can I speak to Sam?", + "zh": "你好,我是陈。能和 Sam 通话吗?", + "itemIds": [ + "A1-U20-P01", + "A1-U20-P02" + ] + }, + { + "ai": "Sam? There's no Sam here.", + "goal": "说抱歉,打错了", + "model": "Oh, sorry. Wrong number.", + "zh": "哦,抱歉,打错了。", + "itemIds": [ + "A1-U20-P10" + ] + }, + { + "ai": "No problem. Bye.", + "goal": "说你晚点再打", + "model": "OK, I'll call again later.", + "zh": "好,我晚点再打。", + "itemIds": [ + "A1-U20-P11" + ] + }, + { + "ai": "(Sam) Hi Chen! Sorry, I'm busy right now.", + "goal": "请他发短信给你地址", + "model": "Please text me the address.", + "zh": "请把地址发短信给我。", + "itemIds": [ + "A1-U20-P12" + ] + }, + { + "ai": "Sure. I can text you in five minutes.", + "goal": "请他之后给你回电话", + "model": "Thanks. Can you call me back tonight?", + "zh": "谢谢。你今晚能给我回电话吗?", + "itemIds": [ + "A1-U20-P07" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U20-T1", + "sceneId": "A1-U20-C1", + "goal": "打电话找人,对方不在时留言", + "itemIds": [ + "A1-U20-P01", + "A1-U20-P02", + "A1-U20-P06", + "A1-U20-P07", + "A1-U20-P11" + ], + "slots": [ + "你是谁", + "找谁", + "留言内容" + ] + }, + { + "id": "A1-U20-T2", + "sceneId": "A1-U20-C2", + "goal": "帮别人接电话并记下对方信息", + "itemIds": [ + "A1-U20-P03", + "A1-U20-P04", + "A1-U20-P05", + "A1-U20-P08", + "A1-U20-P09" + ], + "slots": [ + "对方是谁", + "手机号" + ] + }, + { + "id": "A1-U20-T3", + "sceneId": "A1-U20-C3", + "goal": "处理打错电话,并请朋友发短信", + "itemIds": [ + "A1-U20-P01", + "A1-U20-P02", + "A1-U20-P10", + "A1-U20-P11", + "A1-U20-P12", + "A1-U20-P07" + ], + "slots": [ + "打错", + "短信", + "回电" + ] + } + ], + "materials": [ + { + "id": "A1-U20-M1", + "mode": "listening", + "title": "一条电话留言", + "text": "Hello, this is a telephone message for Mr Brown. This is Chen from the hotel. Your phone rang, but I couldn't reach you, so I'll leave a short message. Sorry if my voice is not clear. I'm calling about your reservation for next week. My grandma and grandpa will visit, so I moved your room. Please call me back for a short conversation, or text me. My mobile number is 138 — let me repeat, one, three, eight. I have an English class and a haircut this afternoon, so if I don't answer, call again later. Never mind if it's late. Thank you. Bye.", + "glosses": { + "reach": "联系到", + "moved": "换了", + "couldn't": "不能(过去式)", + "clear": "清楚的" + }, + "questions": [ + { + "type": "gist", + "question": "这条留言是谁留给谁的?", + "options": [ + "Chen 留给 Mr Brown", + "Mr Brown 留给 Chen", + "Anna 留给 Ben" + ] + }, + { + "type": "detail", + "question": "留言的人希望对方做什么?", + "options": [ + "给他回电话", + "来酒店", + "发邮件" + ] + } + ] + }, + { + "id": "A1-U20-M2", + "mode": "reading", + "title": "读一段对话:打电话留言", + "text": "Chen: Hello, this is Chen. Can I speak to Mr Brown?\nWorker: Hold on, please... Sorry, he's not here right now. This is his co-worker.\nChen: Can I leave a message? I couldn't reach him by mail.\nWorker: Of course. I'm the office worker today.\nChen: Please ask him to call me back. It's about a college course and a club test next week.\nWorker: Sorry, I can't hear you. Your voice is not clear. Can you say the number again?\nChen: Sure. My mobile is 139... I'll text you too. Is Mr Brown the owner?\nWorker: Yes, he owns the group. Never mind, I'll tell him after his class.\nChen: Thank you. When is he back?\nWorker: Maybe this afternoon, after his lesson.\nChen: OK, I'll call again later. Goodbye.", + "glosses": { + "staff": "员工,服务员", + "goodbye": "再见", + "co-worker": "同事", + "owns": "拥有", + "office": "办公室", + "reach": "联系到", + "clear": "清楚的" + }, + "questions": [ + { + "type": "detail", + "question": "Mr Brown 在吗?", + "options": [ + "不在", + "在,正在开会", + "在,马上来" + ] + }, + { + "type": "detail", + "question": "Chen 希望 Mr Brown 做什么?", + "options": [ + "给他回电话", + "来酒店", + "发邮件给他" + ] + } + ] + } + ], + "excluded": [ + { + "en": "voicemail", + "reason": "不在 CEFR-J 表中;A1 用 leave a message 表达" + } + ] +} diff --git a/kouyu_english/assets/courses/A1/A1-U21.json b/kouyu_english/assets/courses/A1/A1-U21.json new file mode 100644 index 0000000..53f0c9d --- /dev/null +++ b/kouyu_english/assets/courses/A1/A1-U21.json @@ -0,0 +1,952 @@ +{ + "schemaVersion": 1, + "id": "A1-U21", + "revision": 1, + "level": "A1", + "title": "周末计划", + "categories": [ + "日常" + ], + "canDo": "说将要做的事、邀请朋友", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "61", + "use": "active", + "reason": "用 What are you doing this weekend? 说已经定好的安排" + }, + { + "id": "142", + "use": "active", + "reason": "Would you like to ...? 是邀请别人时的固定句型" + }, + { + "id": "120", + "use": "active" + }, + { + "id": "123", + "use": "active" + }, + { + "id": "150", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A1-U21-P01", + "type": "phrase", + "en": "What are you doing this weekend?", + "zh": "你这个周末做什么?", + "sceneWord": false, + "match": [ + [ + "what are you doing" + ] + ], + "example": { + "en": "What are you doing on Saturday?", + "zh": "你周六做什么?" + }, + "review": { + "prompt": "问朋友这个周末做什么。" + } + }, + { + "id": "A1-U21-P02", + "type": "phrase", + "en": "I'm going to the beach.", + "zh": "我要去海滩。", + "sceneWord": false, + "match": [ + [ + "going to the" + ] + ], + "example": { + "en": "I'm going to the mountains with my family.", + "zh": "我要和家人去山里。" + }, + "review": { + "prompt": "说你周六要去海滩。" + } + }, + { + "id": "A1-U21-P03", + "type": "phrase", + "en": "Do you want to come?", + "zh": "你想一起来吗?", + "sceneWord": false, + "match": [ + [ + "want to come" + ] + ], + "example": { + "en": "We're going to a concert. Do you want to come?", + "zh": "我们要去听音乐会,你想来吗?" + }, + "review": { + "prompt": "问朋友想不想一起来。" + } + }, + { + "id": "A1-U21-P04", + "type": "phrase", + "en": "Would you like to join us?", + "zh": "你愿意和我们一起吗?", + "sceneWord": false, + "match": [ + [ + "would you like to" + ] + ], + "example": { + "en": "Would you like to play tennis?", + "zh": "你想打网球吗?" + }, + "review": { + "prompt": "礼貌地邀请朋友加入你们。" + } + }, + { + "id": "A1-U21-P05", + "type": "phrase", + "en": "That sounds great!", + "zh": "听起来很棒!", + "sceneWord": true, + "sceneReason": "sound 为 A2 动词,但回应邀请时最自然的说法就是它", + "match": [ + [ + "sounds great", + "sounds good", + "sounds fun" + ] + ], + "example": { + "en": "A picnic? That sounds good!", + "zh": "野餐?听起来不错!" + }, + "review": { + "prompt": "朋友邀请你,你很高兴地回应。" + } + }, + { + "id": "A1-U21-P06", + "type": "phrase", + "en": "I'd love to.", + "zh": "我很乐意。", + "sceneWord": false, + "match": [ + [ + "i'd love to" + ] + ], + "example": { + "en": "I'd love to come!", + "zh": "我很想来!" + }, + "review": { + "prompt": "接受朋友的邀请。" + } + }, + { + "id": "A1-U21-P07", + "type": "phrase", + "en": "Sorry, I can't.", + "zh": "抱歉,我去不了。", + "sceneWord": false, + "match": [ + [ + "sorry, i can't" + ] + ], + "example": { + "en": "Sorry, I can't. I'm busy on Sunday.", + "zh": "抱歉,我去不了,我周日没空。" + }, + "review": { + "prompt": "礼貌地拒绝邀请。" + } + }, + { + "id": "A1-U21-P08", + "type": "phrase", + "en": "Maybe next time.", + "zh": "下次吧。", + "sceneWord": false, + "match": [ + [ + "next time" + ] + ], + "example": { + "en": "OK, maybe next time.", + "zh": "好吧,下次吧。" + }, + "review": { + "prompt": "拒绝邀请后说下次吧。" + } + }, + { + "id": "A1-U21-P09", + "type": "phrase", + "en": "Let's go together.", + "zh": "我们一起去吧。", + "sceneWord": false, + "match": [ + [ + "go together" + ] + ], + "example": { + "en": "Let's go together on Sunday.", + "zh": "我们周日一起去吧。" + }, + "review": { + "prompt": "提议和朋友一起去。" + } + }, + { + "id": "A1-U21-P10", + "type": "phrase", + "en": "Let's play tennis.", + "zh": "我们打网球吧。", + "sceneWord": false, + "match": [ + [ + "play tennis", + "play football", + "play basketball", + "play the guitar", + "play the piano" + ] + ], + "example": { + "en": "I play football on Sundays.", + "zh": "我周日踢足球。" + }, + "review": { + "prompt": "约朋友打篮球。" + } + }, + { + "id": "A1-U21-P11", + "type": "phrase", + "en": "We can have a picnic.", + "zh": "我们可以去野餐。", + "sceneWord": false, + "match": [ + [ + "have a picnic" + ] + ], + "example": { + "en": "We can have a picnic in the park.", + "zh": "我们可以在公园野餐。" + }, + "review": { + "prompt": "提议去野餐。" + } + }, + { + "id": "A1-U21-P12", + "type": "phrase", + "en": "It's fun.", + "zh": "很好玩。", + "sceneWord": false, + "match": [ + [ + "fun" + ] + ], + "example": { + "en": "Dancing is really fun.", + "zh": "跳舞真的很好玩。" + }, + "review": { + "prompt": "说爬山很好玩。" + } + }, + { + "id": "A1-U21-W01", + "type": "word", + "en": "hobby", + "zh": "爱好", + "sceneWord": false, + "match": [ + [ + "hobby", + "hobbies" + ] + ], + "example": { + "en": "My hobby is taking photos.", + "zh": "我的爱好是拍照。" + }, + "review": { + "prompt": "说说你的爱好。" + } + } + ], + "receptiveWords": [ + { + "id": "A1-U21-R01", + "en": "concert", + "zh": "音乐会" + }, + { + "id": "A1-U21-R02", + "en": "football", + "zh": "足球" + }, + { + "id": "A1-U21-R03", + "en": "basketball", + "zh": "篮球" + }, + { + "id": "A1-U21-R04", + "en": "soccer", + "zh": "足球(美式说法)" + }, + { + "id": "A1-U21-R05", + "en": "sport", + "zh": "运动" + }, + { + "id": "A1-U21-R06", + "en": "game", + "zh": "比赛;游戏" + }, + { + "id": "A1-U21-R07", + "en": "team", + "zh": "队" + }, + { + "id": "A1-U21-R08", + "en": "player", + "zh": "选手" + }, + { + "id": "A1-U21-R09", + "en": "ball", + "zh": "球" + }, + { + "id": "A1-U21-R10", + "en": "fan", + "zh": "迷;粉丝" + }, + { + "id": "A1-U21-R11", + "en": "activity", + "zh": "活动" + }, + { + "id": "A1-U21-R12", + "en": "art", + "zh": "艺术" + }, + { + "id": "A1-U21-R13", + "en": "drama", + "zh": "戏剧" + }, + { + "id": "A1-U21-R14", + "en": "theater", + "zh": "剧院" + }, + { + "id": "A1-U21-R15", + "en": "event", + "zh": "活动;项目" + }, + { + "id": "A1-U21-R16", + "en": "painting", + "zh": "画;绘画" + }, + { + "id": "A1-U21-R17", + "en": "photo", + "zh": "照片" + }, + { + "id": "A1-U21-R18", + "en": "piano", + "zh": "钢琴" + }, + { + "id": "A1-U21-R19", + "en": "guitar", + "zh": "吉他" + }, + { + "id": "A1-U21-R20", + "en": "singer", + "zh": "歌手" + }, + { + "id": "A1-U21-R21", + "en": "musician", + "zh": "音乐家" + }, + { + "id": "A1-U21-R22", + "en": "actor", + "zh": "演员" + }, + { + "id": "A1-U21-R23", + "en": "band", + "zh": "乐队" + }, + { + "id": "A1-U21-R24", + "en": "camp", + "zh": "营地;露营" + }, + { + "id": "A1-U21-R25", + "en": "magazine", + "zh": "杂志" + }, + { + "id": "A1-U21-R26", + "en": "mountain", + "zh": "山" + }, + { + "id": "A1-U21-R27", + "en": "climb", + "zh": "爬" + }, + { + "id": "A1-U21-R28", + "en": "exciting", + "zh": "令人兴奋的" + }, + { + "id": "A1-U21-R29", + "en": "excellent", + "zh": "极好的" + }, + { + "id": "A1-U21-R30", + "en": "win", + "zh": "赢" + }, + { + "id": "A1-U21-R31", + "en": "spend", + "zh": "度过;花" + }, + { + "id": "A1-U21-R32", + "en": "choose", + "zh": "选择" + } + ], + "segments": [ + { + "id": "A1-U21-S1", + "title": "问周末安排", + "minutes": 12, + "itemIds": [ + "A1-U21-P01", + "A1-U21-P02", + "A1-U21-P12", + "A1-U21-W01" + ], + "listening": { + "text": "What are you doing this weekend? I'm going to the beach on Saturday. And on Sunday? I'm going to the mountains. I love climbing. It's fun!", + "question": "说话人周日去哪里?", + "options": [ + "山里", + "海滩", + "公园" + ] + }, + "speaking": [ + { + "text": "What are you doing this weekend?" + }, + { + "text": "I'm going to the beach." + }, + { + "text": "It's fun." + }, + { + "text": "My hobby is taking photos.", + "tip": "hobby 读 /ˈhɒbi/" + } + ], + "reading": { + "text": "My hobbies\nMia: I play the piano and the guitar. I'm in a band, and I love music. My favorite singer is from London.\nLeo: I like sports. I play football and basketball. My team wins most games! I'm a big fan of soccer too.\nNina: I'm interested in art. I go to the theater and look at paintings. I read an art magazine every month.\nBen: Fishing and taking photos. I spend both days of the weekend at the river.", + "question": "谁对艺术感兴趣?", + "options": [ + "Nina", + "Mia", + "Leo" + ] + }, + "writing": { + "prompt": "写两句话:问朋友周末做什么,再说你要去海滩。", + "example": "What are you doing this weekend? I'm going to the beach.", + "itemIds": [ + "A1-U21-P01", + "A1-U21-P02" + ] + }, + "independent": { + "prompt": "用英语说说你这个周末的安排和你的爱好。", + "itemIds": [ + "A1-U21-P02", + "A1-U21-W01", + "A1-U21-P12" + ] + } + }, + { + "id": "A1-U21-S2", + "title": "邀请和回应", + "minutes": 13, + "itemIds": [ + "A1-U21-P03", + "A1-U21-P04", + "A1-U21-P05", + "A1-U21-P06", + "A1-U21-P07", + "A1-U21-P08" + ], + "listening": { + "text": "We're going to a concert on Friday. Would you like to join us? That sounds great! I'd love to. And you, Sam? Do you want to come? Sorry, I can't. I'm busy. Maybe next time.", + "question": "Sam 为什么不去?", + "options": [ + "他没空", + "他不喜欢音乐会", + "他生病了" + ] + }, + "speaking": [ + { + "text": "Do you want to come?" + }, + { + "text": "Would you like to join us?", + "tip": "Would you 连读成 /wʊdʒu/" + }, + { + "text": "That sounds great!" + }, + { + "text": "I'd love to." + }, + { + "text": "Sorry, I can't." + }, + { + "text": "Maybe next time." + } + ], + "reading": { + "text": "City events this weekend\nSaturday\n· Excellent music: a band and musicians from ten countries. 7 pm, City Park.\n· Kids' drama: a play by young actors. 3 pm, the theater.\nSunday\n· Football game: our city team and the Tokyo team. Come and watch the players! 2 pm.\n· Camp by the river: fishing and dancing activities. Choose one or do both!\nAn exciting weekend for everyone. Which event would you like to go to?", + "question": "周六下午有什么活动?", + "options": [ + "儿童戏剧", + "足球比赛", + "音乐会" + ] + }, + "writing": { + "prompt": "写两句话:邀请朋友一起来,再替他说“我很乐意”。", + "example": "Would you like to join us? I'd love to.", + "itemIds": [ + "A1-U21-P04", + "A1-U21-P06" + ] + }, + "independent": { + "prompt": "朋友邀请你周日去看足球,你没空,用英语礼貌拒绝。", + "itemIds": [ + "A1-U21-P07", + "A1-U21-P08" + ] + } + }, + { + "id": "A1-U21-S3", + "title": "一起去吧", + "minutes": 12, + "itemIds": [ + "A1-U21-P09", + "A1-U21-P10", + "A1-U21-P11" + ], + "listening": { + "text": "Let's play tennis on Saturday. Hmm, it's going to be sunny. We can have a picnic too. Great idea! Let's go together.", + "question": "他们周六要做什么?", + "options": [ + "打网球和野餐", + "去海滩", + "看音乐会" + ] + }, + "speaking": [ + { + "text": "Let's go together." + }, + { + "text": "Let's play tennis." + }, + { + "text": "We can have a picnic." + }, + { + "text": "Let's play the piano." + } + ], + "reading": { + "text": "A note from Kate\nHi Lucy,\nAre you free on Sunday? Let's go to the river together. We can have a picnic and play ball. Bring your camera: you can take photos for your hobby. My brother is coming, and he's bringing his guitar. We can play the guitar and sing.\nIt's going to be fun! Text me.\nKate", + "question": "Kate 的哥哥要带什么?", + "options": [ + "吉他", + "相机", + "球" + ] + }, + "writing": { + "prompt": "写两句话:提议一起去,并说可以去野餐。", + "example": "Let's go together. We can have a picnic.", + "itemIds": [ + "A1-U21-P09", + "A1-U21-P11" + ] + }, + "independent": { + "prompt": "用英语约朋友周末做一项运动,并说一起去。", + "itemIds": [ + "A1-U21-P10", + "A1-U21-P09" + ] + } + } + ], + "scenes": [ + { + "id": "A1-U21-C1", + "kind": "main", + "title": "约朋友周末出去玩", + "learnerRole": "你", + "aiRole": "朋友", + "setting": "周五下班后,你和朋友聊周末的计划。", + "turns": [ + { + "ai": "So, what are you doing this weekend?", + "goal": "说你要去海滩", + "model": "I'm going to the beach.", + "zh": "我要去海滩。", + "itemIds": [ + "A1-U21-P02" + ] + }, + { + "ai": "The beach? That's nice.", + "goal": "邀请朋友一起来", + "model": "Do you want to come?", + "zh": "你想一起来吗?", + "itemIds": [ + "A1-U21-P03" + ] + }, + { + "ai": "That sounds great! What can we do there?", + "goal": "说可以野餐,很好玩", + "model": "We can have a picnic. It's fun.", + "zh": "我们可以野餐,很好玩。", + "itemIds": [ + "A1-U21-P11", + "A1-U21-P12" + ] + }, + { + "ai": "Can my sister come too?", + "goal": "说当然,一起去吧", + "model": "Sure. Let's go together.", + "zh": "当然。我们一起去吧。", + "itemIds": [ + "A1-U21-P09" + ] + }, + { + "ai": "Great. And after the picnic?", + "goal": "提议打网球", + "model": "Let's play tennis.", + "zh": "我们打网球吧。", + "itemIds": [ + "A1-U21-P10" + ] + } + ] + }, + { + "id": "A1-U21-C2", + "kind": "variant", + "title": "接受和拒绝邀请", + "learnerRole": "你", + "aiRole": "同事", + "setting": "同事邀请你参加周末的活动。", + "turns": [ + { + "ai": "Hi! What are you doing this weekend?", + "goal": "反问对方周末做什么", + "model": "Nothing. What are you doing this weekend?", + "zh": "没什么安排。你这个周末做什么?", + "itemIds": [ + "A1-U21-P01" + ] + }, + { + "ai": "We're going to a concert on Saturday. Would you like to join us?", + "goal": "高兴地接受", + "model": "That sounds great! I'd love to.", + "zh": "听起来很棒!我很乐意。", + "itemIds": [ + "A1-U21-P05", + "A1-U21-P06" + ] + }, + { + "ai": "And on Sunday, we're going to play football.", + "goal": "说抱歉周日去不了", + "model": "Sorry, I can't. I'm busy on Sunday.", + "zh": "抱歉,我周日去不了,我没空。", + "itemIds": [ + "A1-U21-P07" + ] + }, + { + "ai": "Oh, OK.", + "goal": "说下次吧", + "model": "Maybe next time.", + "zh": "下次吧。", + "itemIds": [ + "A1-U21-P08" + ] + }, + { + "ai": "What's your hobby, then?", + "goal": "说你的爱好", + "model": "My hobby is dancing.", + "zh": "我的爱好是跳舞。", + "itemIds": [ + "A1-U21-W01" + ] + } + ] + }, + { + "id": "A1-U21-C3", + "kind": "variant", + "title": "在青年旅舍认识新朋友", + "learnerRole": "游客", + "aiRole": "旅舍里的新朋友", + "setting": "你住在青年旅舍,和另一位游客聊明天的安排。", + "turns": [ + { + "ai": "Hi! Are you here on holiday too?", + "goal": "说是的,问对方周末做什么", + "model": "Yes. What are you doing this weekend?", + "zh": "是的。你这个周末做什么?", + "itemIds": [ + "A1-U21-P01" + ] + }, + { + "ai": "I'm going to the mountains. Would you like to join us?", + "goal": "高兴地接受", + "model": "I'd love to!", + "zh": "我很乐意!", + "itemIds": [ + "A1-U21-P06" + ] + }, + { + "ai": "We can climb and have a picnic.", + "goal": "说听起来很好玩", + "model": "That sounds great! It's fun.", + "zh": "听起来很棒!很好玩。", + "itemIds": [ + "A1-U21-P05", + "A1-U21-P12" + ] + }, + { + "ai": "Do you like sports?", + "goal": "说你的爱好是打网球", + "model": "Yes. My hobby is tennis. Let's play tennis later.", + "zh": "喜欢。我的爱好是网球。之后我们打网球吧。", + "itemIds": [ + "A1-U21-W01", + "A1-U21-P10" + ] + }, + { + "ai": "OK! See you tomorrow at seven.", + "goal": "邀请对方晚上和你们吃饭,并说一起去", + "model": "Great. Would you like to join us for dinner too? Let's go together.", + "zh": "太好了。你也愿意和我们一起吃晚饭吗?我们一起去吧。", + "itemIds": [ + "A1-U21-P04", + "A1-U21-P09" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A1-U21-T1", + "sceneId": "A1-U21-C1", + "goal": "和朋友定下周末去海滩的计划", + "itemIds": [ + "A1-U21-P02", + "A1-U21-P03", + "A1-U21-P11", + "A1-U21-P12", + "A1-U21-P09", + "A1-U21-P10" + ], + "slots": [ + "去哪里", + "做什么", + "谁一起" + ] + }, + { + "id": "A1-U21-T2", + "sceneId": "A1-U21-C2", + "goal": "接受一个邀请,礼貌拒绝另一个邀请", + "itemIds": [ + "A1-U21-P01", + "A1-U21-P05", + "A1-U21-P06", + "A1-U21-P07", + "A1-U21-P08", + "A1-U21-W01" + ], + "slots": [ + "接受", + "拒绝", + "爱好" + ] + }, + { + "id": "A1-U21-T3", + "sceneId": "A1-U21-C3", + "goal": "和新朋友约好一起去山里", + "itemIds": [ + "A1-U21-P01", + "A1-U21-P06", + "A1-U21-P05", + "A1-U21-P12", + "A1-U21-W01", + "A1-U21-P10", + "A1-U21-P09", + "A1-U21-P04" + ], + "slots": [ + "安排", + "爱好", + "约定" + ] + } + ], + "materials": [ + { + "id": "A1-U21-M1", + "mode": "listening", + "title": "朋友发来周末邀请", + "text": "Hi everyone! What are you doing this weekend? There is a big sports event on Saturday. My favorite basketball team has a game, and their best player is excellent. I'm a big fan! We can watch the ball game, and it will be exciting. Do you want to come? On Sunday there is a concert with a band, a singer, a guitar and a piano — a real music activity. Or we can go to the theater for a drama, see some art and paintings, or climb a mountain and camp. Let's choose one and spend the day together. It's fun! Tell me if you'd like to join us.", + "glosses": {}, + "questions": [ + { + "type": "gist", + "question": "这段话主要在做什么?", + "options": [ + "邀请朋友周末一起活动", + "问路", + "报告问题" + ] + }, + { + "type": "detail", + "question": "星期六有什么活动?", + "options": [ + "篮球比赛", + "看电影", + "在家学习" + ] + } + ] + }, + { + "id": "A1-U21-M2", + "mode": "reading", + "title": "读一段对话:约周末踢球", + "text": "Ben: What are you doing this weekend?\nMia: Nothing special. Why?\nBen: We're going to play soccer on Sunday. Our team needs one more player. Do you want to come?\nMia: That sounds great! I'd love to. I'm a big football fan. What time?\nBen: At two in the afternoon, in the park near the mountain.\nMia: I hope we win the game! Can I bring a friend? He plays the guitar in a band.\nBen: Sure! After the game, there's a concert and a drama at the theater. It's an exciting event.\nMia: Perfect. Let's spend the whole day together. I'll bring my camera for some photos.\nBen: Great idea. Choose good shoes — we can climb the hill too. It's an excellent activity!\nMia: Sounds fun. See you on Sunday!\nBen: See you!", + "glosses": { + "perfect": "完美的", + "needs": "需要", + "whole": "整个的" + }, + "questions": [ + { + "type": "detail", + "question": "他们周末打算做什么?", + "options": [ + "踢足球", + "打网球", + "去海边" + ] + }, + { + "type": "inference", + "question": "从对话看,Mia 想不想去?", + "options": [ + "想去,还想带朋友", + "不想去", + "还没决定" + ] + } + ] + } + ], + "excluded": [ + { + "en": "hiking", + "reason": "A2;A1 用 go to the mountains / climb 表达" + }, + { + "en": "camping", + "reason": "A2;A1 只作为 camp 理解" + } + ] +} diff --git a/kouyu_english/assets/courses/A2/A2-U01.json b/kouyu_english/assets/courses/A2/A2-U01.json new file mode 100644 index 0000000..23cf01f --- /dev/null +++ b/kouyu_english/assets/courses/A2/A2-U01.json @@ -0,0 +1,1154 @@ +{ + "schemaVersion": 1, + "id": "A2-U01", + "revision": 1, + "level": "A2", + "title": "上个周末", + "categories": [ + "日常" + ], + "canDo": "用过去时讲做了什么", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "64", + "use": "active" + }, + { + "id": "64-1", + "use": "active" + }, + { + "id": "65", + "use": "active" + }, + { + "id": "65-1", + "use": "active" + }, + { + "id": "65-2", + "use": "active" + }, + { + "id": "150", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A2-U01-P01", + "type": "phrase", + "en": "How was your weekend?", + "zh": "你周末过得怎么样?", + "sceneWord": false, + "match": [ + [ + "how was your weekend" + ] + ], + "example": { + "en": "How was your weekend, Anna?", + "zh": "安娜,你周末过得怎么样?" + }, + "review": { + "prompt": "周一见到同事,问对方周末过得怎么样。" + } + }, + { + "id": "A2-U01-P02", + "type": "phrase", + "en": "What did you do?", + "zh": "你做了什么?", + "sceneWord": false, + "match": [ + [ + "what did you do" + ] + ], + "example": { + "en": "What did you do on Saturday?", + "zh": "你周六做了什么?" + }, + "review": { + "prompt": "问朋友周六做了什么。" + } + }, + { + "id": "A2-U01-P03", + "type": "phrase", + "en": "Did you have a good time?", + "zh": "你玩得开心吗?", + "sceneWord": false, + "match": [ + [ + "did you have a good time", + "had a good time" + ] + ], + "example": { + "en": "We had a good time at the beach.", + "zh": "我们在海滩玩得很开心。" + }, + "review": { + "prompt": "问朋友聚会玩得开心吗。" + } + }, + { + "id": "A2-U01-P04", + "type": "phrase", + "en": "I went to the park.", + "zh": "我去了公园。", + "sceneWord": false, + "match": [ + [ + "went to" + ] + ], + "example": { + "en": "On Sunday I went to my grandma's house.", + "zh": "周日我去了奶奶家。" + }, + "review": { + "prompt": "说你周六去了博物馆。" + } + }, + { + "id": "A2-U01-P05", + "type": "phrase", + "en": "I stayed at home.", + "zh": "我待在家里。", + "sceneWord": false, + "match": [ + [ + "stayed at home", + "stayed home" + ] + ], + "example": { + "en": "It rained, so I stayed at home.", + "zh": "下雨了,所以我待在家里。" + }, + "review": { + "prompt": "说你周末一直待在家。" + } + }, + { + "id": "A2-U01-P06", + "type": "phrase", + "en": "I didn't do much.", + "zh": "我没做什么。", + "sceneWord": false, + "match": [ + [ + "didn't do much", + "didn't do anything" + ] + ], + "example": { + "en": "I was tired, so I didn't do much.", + "zh": "我很累,所以没做什么。" + }, + "review": { + "prompt": "说你周末没做什么事。" + } + }, + { + "id": "A2-U01-P07", + "type": "phrase", + "en": "I watched a film.", + "zh": "我看了一部电影。", + "sceneWord": false, + "match": [ + [ + "watched a film", + "watched a movie", + "watched films" + ] + ], + "example": { + "en": "On Friday night I watched a film with my sister.", + "zh": "周五晚上我和姐姐看了一部电影。" + }, + "review": { + "prompt": "说你昨晚看了一部电影。" + } + }, + { + "id": "A2-U01-P08", + "type": "phrase", + "en": "We had a barbecue.", + "zh": "我们烧烤了。", + "sceneWord": false, + "match": [ + [ + "had a barbecue" + ] + ], + "example": { + "en": "We had a barbecue in the garden.", + "zh": "我们在花园里烧烤。" + }, + "review": { + "prompt": "说你们周日在河边烧烤。" + } + }, + { + "id": "A2-U01-P09", + "type": "phrase", + "en": "I cleaned the house.", + "zh": "我打扫了房子。", + "sceneWord": false, + "match": [ + [ + "cleaned the house", + "cleaned my room", + "cleaned the kitchen" + ] + ], + "example": { + "en": "I cleaned the kitchen after lunch.", + "zh": "午饭后我打扫了厨房。" + }, + "review": { + "prompt": "说你周六上午打扫了房子。" + } + }, + { + "id": "A2-U01-P10", + "type": "phrase", + "en": "It was great.", + "zh": "很棒。", + "sceneWord": false, + "match": [ + [ + "it was great", + "it was fun", + "it was nice", + "it was awful", + "it was boring" + ] + ], + "example": { + "en": "The film was long, but it was great.", + "zh": "电影很长,但很棒。" + }, + "review": { + "prompt": "说周末过得很棒。" + } + }, + { + "id": "A2-U01-P11", + "type": "phrase", + "en": "It wasn't bad.", + "zh": "还不错。", + "sceneWord": false, + "match": [ + [ + "wasn't bad" + ] + ], + "example": { + "en": "The weather was cold, but the trip wasn't bad.", + "zh": "天气很冷,但旅行还不错。" + }, + "review": { + "prompt": "朋友问你电影怎么样,说还不错。" + } + }, + { + "id": "A2-U01-P12", + "type": "phrase", + "en": "last weekend", + "zh": "上个周末", + "sceneWord": false, + "match": [ + [ + "last weekend", + "last saturday", + "last sunday", + "last night", + "last week" + ] + ], + "example": { + "en": "What did you do last weekend?", + "zh": "你上个周末做了什么?" + }, + "review": { + "prompt": "用英语说“上周六”。" + } + }, + { + "id": "A2-U01-W01", + "type": "word", + "en": "relax", + "zh": "放松", + "sceneWord": false, + "match": [ + [ + "relax", + "relaxed", + "relaxing" + ] + ], + "example": { + "en": "I just relaxed on Sunday.", + "zh": "我周日就放松了一下。" + }, + "review": { + "prompt": "说你周日在家放松了一下。" + } + }, + { + "id": "A2-U01-W02", + "type": "word", + "en": "finally", + "zh": "最后;终于", + "sceneWord": false, + "match": [ + [ + "finally" + ] + ], + "example": { + "en": "Finally, we went home.", + "zh": "最后我们回家了。" + }, + "review": { + "prompt": "讲完一天的事,用“最后”收尾。" + } + } + ], + "receptiveWords": [ + { + "id": "A2-U01-R01", + "en": "make", + "zh": "做;制作" + }, + { + "id": "A2-U01-R02", + "en": "bake", + "zh": "烤(面包、蛋糕)" + }, + { + "id": "A2-U01-R03", + "en": "chat", + "zh": "聊天" + }, + { + "id": "A2-U01-R04", + "en": "hiking", + "zh": "徒步" + }, + { + "id": "A2-U01-R05", + "en": "cycling", + "zh": "骑自行车" + }, + { + "id": "A2-U01-R06", + "en": "board game", + "zh": "桌游" + }, + { + "id": "A2-U01-R07", + "en": "chess", + "zh": "国际象棋" + }, + { + "id": "A2-U01-R08", + "en": "tidy", + "zh": "整理;整洁的" + }, + { + "id": "A2-U01-R09", + "en": "washing-up", + "zh": "洗碗" + }, + { + "id": "A2-U01-R10", + "en": "garage", + "zh": "车库" + }, + { + "id": "A2-U01-R11", + "en": "cupboard", + "zh": "橱柜" + }, + { + "id": "A2-U01-R12", + "en": "fridge", + "zh": "冰箱" + }, + { + "id": "A2-U01-R13", + "en": "oven", + "zh": "烤箱" + }, + { + "id": "A2-U01-R14", + "en": "awful", + "zh": "糟糕的" + }, + { + "id": "A2-U01-R15", + "en": "fantastic", + "zh": "极好的" + }, + { + "id": "A2-U01-R16", + "en": "actually", + "zh": "其实" + }, + { + "id": "A2-U01-R17", + "en": "anyway", + "zh": "不管怎样;总之" + }, + { + "id": "A2-U01-R18", + "en": "asleep", + "zh": "睡着的" + }, + { + "id": "A2-U01-R19", + "en": "sleepy", + "zh": "困的" + }, + { + "id": "A2-U01-R20", + "en": "midnight", + "zh": "午夜" + }, + { + "id": "A2-U01-R21", + "en": "lunchtime", + "zh": "午饭时间" + }, + { + "id": "A2-U01-R22", + "en": "supper", + "zh": "晚饭" + }, + { + "id": "A2-U01-R23", + "en": "upstairs", + "zh": "在楼上" + }, + { + "id": "A2-U01-R24", + "en": "downstairs", + "zh": "在楼下" + }, + { + "id": "A2-U01-R25", + "en": "anywhere", + "zh": "任何地方" + }, + { + "id": "A2-U01-R26", + "en": "somewhere", + "zh": "某个地方" + }, + { + "id": "A2-U01-R27", + "en": "instead", + "zh": "代替;反而" + }, + { + "id": "A2-U01-R28", + "en": "quite", + "zh": "相当" + }, + { + "id": "A2-U01-R29", + "en": "yeah", + "zh": "是啊" + }, + { + "id": "A2-U01-R30", + "en": "hey", + "zh": "嘿" + }, + { + "id": "A2-U01-R31", + "en": "lie", + "zh": "躺" + }, + { + "id": "A2-U01-R32", + "en": "hardly", + "zh": "几乎不" + }, + { + "id": "A2-U01-R33", + "en": "mostly", + "zh": "大多;主要" + }, + { + "id": "A2-U01-R34", + "en": "nearly", + "zh": "几乎;差不多" + }, + { + "id": "A2-U01-R35", + "en": "especially", + "zh": "尤其" + }, + { + "id": "A2-U01-R36", + "en": "decide", + "zh": "决定" + }, + { + "id": "A2-U01-R37", + "en": "online", + "zh": "在网上" + }, + { + "id": "A2-U01-R38", + "en": "episode", + "zh": "一集" + }, + { + "id": "A2-U01-R39", + "en": "comic", + "zh": "漫画" + }, + { + "id": "A2-U01-R40", + "en": "novel", + "zh": "小说" + }, + { + "id": "A2-U01-R41", + "en": "plant", + "zh": "植物" + }, + { + "id": "A2-U01-R42", + "en": "fix", + "zh": "修理" + }, + { + "id": "A2-U01-R43", + "en": "lend", + "zh": "借给" + }, + { + "id": "A2-U01-R44", + "en": "share", + "zh": "分享" + }, + { + "id": "A2-U01-R45", + "en": "picture", + "zh": "画;图片" + }, + { + "id": "A2-U01-R46", + "en": "normal", + "zh": "正常的;平常的" + }, + { + "id": "A2-U01-R47", + "en": "usual", + "zh": "平常的" + }, + { + "id": "A2-U01-R48", + "en": "granny", + "zh": "奶奶;外婆" + }, + { + "id": "A2-U01-R49", + "en": "market", + "zh": "市场" + }, + { + "id": "A2-U01-R50", + "en": "bit", + "zh": "一点" + }, + { + "id": "A2-U01-R51", + "en": "exactly", + "zh": "确切地;正是" + }, + { + "id": "A2-U01-R52", + "en": "weekday", + "zh": "工作日" + }, + { + "id": "A2-U01-R53", + "en": "housework", + "zh": "家务" + }, + { + "id": "A2-U01-R54", + "en": "album", + "zh": "相册" + }, + { + "id": "A2-U01-R55", + "en": "memory", + "zh": "回忆" + } + ], + "segments": [ + { + "id": "A2-U01-S1", + "title": "周末去了哪里", + "minutes": 13, + "itemIds": [ + "A2-U01-P01", + "A2-U01-P02", + "A2-U01-P04", + "A2-U01-P05", + "A2-U01-P12" + ], + "listening": { + "text": "Hey Tom, how was your weekend? Not bad. I stayed at home on Saturday. It rained all day. What did you do on Sunday? I went to the market with my granny. We bought vegetables and some plants for her garden.", + "question": "周六汤姆在哪里?", + "options": [ + "在家", + "在市场", + "在奶奶家" + ] + }, + "speaking": [ + { + "text": "How was your weekend?", + "tip": "weekend 重音在前:/ˈwiːkend/" + }, + { + "text": "What did you do last weekend?" + }, + { + "text": "I went to the park on Sunday." + }, + { + "text": "I stayed at home.", + "tip": "stayed at 连读" + } + ], + "reading": { + "text": "Monday morning at the office\nMia: How was your weekend, Ben? What did you do?\nBen: I went to the market on Saturday morning. It was quite busy. In the afternoon I stayed at home and fixed my bike in the garage.\nMia: Did you go anywhere on Sunday?\nBen: No. I played chess with my son and we made a cake. What about you?\nMia: Last weekend I went hiking with my sister. We walked for five hours!", + "question": "周日 Ben 做了什么?", + "options": [ + "下棋和做蛋糕", + "去市场", + "修自行车" + ] + }, + "writing": { + "prompt": "写两句话:问朋友上周末做了什么,再说你周六去了公园。", + "example": "What did you do last weekend? I went to the park on Saturday.", + "itemIds": [ + "A2-U01-P02", + "A2-U01-P04", + "A2-U01-P12" + ] + }, + "independent": { + "prompt": "用英语说说你上个周末去了哪里、哪天待在家。", + "itemIds": [ + "A2-U01-P04", + "A2-U01-P05", + "A2-U01-P12" + ] + } + }, + { + "id": "A2-U01-S2", + "title": "在家做的事", + "minutes": 13, + "itemIds": [ + "A2-U01-P06", + "A2-U01-P07", + "A2-U01-P08", + "A2-U01-P09", + "A2-U01-W01" + ], + "listening": { + "text": "I didn't do much last weekend. On Saturday I cleaned the house and did the washing-up. Then I just relaxed on the sofa and watched a film. On Sunday my friends came, and we had a barbecue in the garden. It was lovely. On weekdays I hardly have time for housework, so I like a quiet weekend.", + "question": "周日说话人做了什么?", + "options": [ + "和朋友烧烤", + "打扫房子", + "看电影" + ] + }, + "speaking": [ + { + "text": "I didn't do much.", + "tip": "didn't 末尾的 t 很轻" + }, + { + "text": "I watched a film." + }, + { + "text": "We had a barbecue." + }, + { + "text": "I cleaned the house." + }, + { + "text": "I just relaxed on Sunday." + } + ], + "reading": { + "text": "A lazy Sunday, by Leo\nI woke up late on Sunday, nearly at lunchtime, and I didn't get dressed until two! First I tidied my bedroom and cleaned the kitchen. The fridge was nearly empty, so I decided to bake some bread instead of going to the shop. It was actually quite good. In the evening I watched three episodes of my favorite show online. I went to bed after midnight. I didn't do much, but I relaxed, and that's OK.", + "question": "Leo 为什么自己烤面包?", + "options": [ + "冰箱快空了", + "他喜欢做饭", + "商店关门了" + ] + }, + "writing": { + "prompt": "写两句话:说你打扫了房子,然后放松了一下,看了部电影。", + "example": "I cleaned the house. Then I relaxed and watched a film.", + "itemIds": [ + "A2-U01-P09", + "A2-U01-W01", + "A2-U01-P07" + ] + }, + "independent": { + "prompt": "用英语说说你周末在家做的三件事。", + "itemIds": [ + "A2-U01-P09", + "A2-U01-P07", + "A2-U01-W01" + ] + } + }, + { + "id": "A2-U01-S3", + "title": "感觉怎么样", + "minutes": 12, + "itemIds": [ + "A2-U01-P03", + "A2-U01-P10", + "A2-U01-P11", + "A2-U01-W02" + ], + "listening": { + "text": "Did you have a good time at the party? Yes, it was great! We danced and chatted until midnight. And the food? Well, it wasn't bad. The pizza was a bit cold. Finally, we went home at one.", + "question": "派对怎么样?", + "options": [ + "很棒", + "很无聊", + "很糟糕" + ] + }, + "speaking": [ + { + "text": "Did you have a good time?", + "tip": "句尾语调上扬" + }, + { + "text": "It was great!" + }, + { + "text": "It wasn't bad." + }, + { + "text": "Finally, we went home." + } + ], + "reading": { + "text": "A weekend in the country\nLast weekend Kate and her husband went to her uncle's house by the river. On Saturday they went cycling and had a picnic. It was fantastic. On Sunday it rained, so they stayed inside and played board games. Kate was bored, especially in the afternoon. Her husband wasn't bored at all: he read a comic and slept on the sofa. Kate took a lot of pictures for her album. It was a nice memory. In the evening they had supper with her uncle. Finally, they drove home late. Kate was so sleepy that she was asleep in the car.", + "question": "周日下午 Kate 感觉怎么样?", + "options": [ + "无聊", + "兴奋", + "生气" + ] + }, + "writing": { + "prompt": "写两句话:问朋友玩得开心吗,再替对方回答“很棒”。", + "example": "Did you have a good time? Yes, it was great.", + "itemIds": [ + "A2-U01-P03", + "A2-U01-P10" + ] + }, + "independent": { + "prompt": "朋友问你周末怎么样,用英语说一件很棒的事、一件还行的事,最后怎么结束。", + "itemIds": [ + "A2-U01-P10", + "A2-U01-P11", + "A2-U01-W02" + ] + } + } + ], + "scenes": [ + { + "id": "A2-U01-C1", + "kind": "main", + "title": "周一和同事聊周末", + "learnerRole": "你", + "aiRole": "同事", + "setting": "周一早上,你在办公室遇到同事。", + "turns": [ + { + "ai": "Good morning! How was your weekend?", + "goal": "说很棒,并反问对方", + "model": "It was great. How was your weekend?", + "zh": "很棒。你周末过得怎么样?", + "itemIds": [ + "A2-U01-P10", + "A2-U01-P01" + ] + }, + { + "ai": "Yeah, it was OK. And you? What did you do?", + "goal": "说你周六和奶奶去了市场", + "model": "On Saturday I went to the market with my granny.", + "zh": "周六我和奶奶去了市场。", + "itemIds": [ + "A2-U01-P04" + ] + }, + { + "ai": "Nice. And on Sunday?", + "goal": "说你们在花园烧烤", + "model": "We had a barbecue in the garden.", + "zh": "我们在花园里烧烤。", + "itemIds": [ + "A2-U01-P08" + ] + }, + { + "ai": "Sounds fun! Did you have a good time?", + "goal": "说玩得开心,最后很晚才睡", + "model": "Yes, we had a good time. Finally, I went to bed at midnight.", + "zh": "是的,我们玩得很开心。最后我半夜才睡。", + "itemIds": [ + "A2-U01-P03", + "A2-U01-W02" + ] + }, + { + "ai": "Me? I stayed at home.", + "goal": "问对方在家做了什么", + "model": "What did you do?", + "zh": "你做了什么?", + "itemIds": [ + "A2-U01-P02" + ] + }, + { + "ai": "I cleaned the house and watched TV.", + "goal": "说那也不错,放松一下挺好", + "model": "That wasn't bad. It's good to relax.", + "zh": "那也不错,放松一下挺好。", + "itemIds": [ + "A2-U01-P11", + "A2-U01-W01" + ] + } + ] + }, + { + "id": "A2-U01-C2", + "kind": "variant", + "title": "懒洋洋的周末", + "learnerRole": "你", + "aiRole": "朋友", + "setting": "周一午饭时,朋友问你周末做了什么。", + "turns": [ + { + "ai": "Hey! What did you do last weekend?", + "goal": "说你没做什么", + "model": "I didn't do much.", + "zh": "我没做什么。", + "itemIds": [ + "A2-U01-P06" + ] + }, + { + "ai": "Really? Did you go anywhere?", + "goal": "说上周末你待在家里", + "model": "No, I stayed at home last weekend.", + "zh": "没有,上周末我待在家里。", + "itemIds": [ + "A2-U01-P05", + "A2-U01-P12" + ] + }, + { + "ai": "So what did you do at home?", + "goal": "说你打扫了房子", + "model": "I cleaned the house.", + "zh": "我打扫了房子。", + "itemIds": [ + "A2-U01-P09" + ] + }, + { + "ai": "That's not fun!", + "goal": "说你还看了电影,放松了一下", + "model": "I watched a film and relaxed.", + "zh": "我还看了部电影,放松了一下。", + "itemIds": [ + "A2-U01-P07", + "A2-U01-W01" + ] + }, + { + "ai": "Was the film good?", + "goal": "说还不错", + "model": "It wasn't bad.", + "zh": "还不错。", + "itemIds": [ + "A2-U01-P11" + ] + } + ] + }, + { + "id": "A2-U01-C3", + "kind": "variant", + "title": "在旅舍聊周末", + "learnerRole": "游客", + "aiRole": "旅舍前台", + "setting": "周一早上,青年旅舍的前台问你周末过得怎么样。", + "turns": [ + { + "ai": "Good morning! How was your weekend in the city?", + "goal": "说很棒", + "model": "It was great, thanks.", + "zh": "很棒,谢谢。", + "itemIds": [ + "A2-U01-P10" + ] + }, + { + "ai": "What did you do?", + "goal": "说你周六去了博物馆", + "model": "On Saturday I went to the museum.", + "zh": "周六我去了博物馆。", + "itemIds": [ + "A2-U01-P04" + ] + }, + { + "ai": "And on Sunday?", + "goal": "说你和新朋友在河边烧烤", + "model": "We had a barbecue by the river.", + "zh": "我们在河边烧烤。", + "itemIds": [ + "A2-U01-P08" + ] + }, + { + "ai": "Did you have a good time?", + "goal": "说玩得开心,并反问对方周末怎么样", + "model": "Yes, we had a good time. How was your weekend?", + "zh": "是的,玩得很开心。你周末过得怎么样?", + "itemIds": [ + "A2-U01-P03", + "A2-U01-P01" + ] + }, + { + "ai": "Oh, I worked all weekend. It was busy.", + "goal": "问对方下班后做了什么", + "model": "Oh no. What did you do after work?", + "zh": "哎呀。那下班后你做了什么?", + "itemIds": [ + "A2-U01-P02" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A2-U01-T1", + "sceneId": "A2-U01-C1", + "goal": "和同事互相聊周末做了什么、感觉怎么样", + "itemIds": [ + "A2-U01-P01", + "A2-U01-P02", + "A2-U01-P04", + "A2-U01-P08", + "A2-U01-P03", + "A2-U01-P10", + "A2-U01-P11", + "A2-U01-W01", + "A2-U01-W02" + ], + "slots": [ + "去了哪里", + "做了什么", + "感觉如何" + ] + }, + { + "id": "A2-U01-T2", + "sceneId": "A2-U01-C2", + "goal": "讲一个待在家里的周末", + "itemIds": [ + "A2-U01-P05", + "A2-U01-P06", + "A2-U01-P07", + "A2-U01-P09", + "A2-U01-P12", + "A2-U01-W01", + "A2-U01-P11" + ], + "slots": [ + "在家做的事", + "看了什么", + "感觉如何" + ] + }, + { + "id": "A2-U01-T3", + "sceneId": "A2-U01-C3", + "goal": "在旅舍和前台聊你的周末", + "itemIds": [ + "A2-U01-P10", + "A2-U01-P04", + "A2-U01-P08", + "A2-U01-P03", + "A2-U01-P01", + "A2-U01-P02" + ], + "slots": [ + "去了哪里", + "做了什么", + "反问对方" + ] + } + ], + "materials": [ + { + "id": "A2-U01-M1", + "mode": "listening", + "title": "语音留言:忙碌的周末", + "text": "Hi Sam, it's Anna. Sorry I didn't call you back on Saturday. It was a busy weekend! On Saturday morning I went to the market with my granny. She wanted some plants for her garden, and we bought a lot of vegetables too. At lunchtime we had soup at a small cafe. In the afternoon I cleaned the house and did the washing-up. Then my brother came, and we played chess downstairs until supper. He always wins! On Sunday it was sunny, so we had a barbecue in the garden with our neighbors. It was fantastic, especially the chicken. In the evening I was really tired, so I didn't do much. I just lay on the sofa, read my novel for a bit and watched a film. Anyway, how was your weekend? Did you go hiking with your friends? Call me back when you're free. Bye!", + "glosses": {}, + "questions": [ + { + "type": "gist", + "question": "Anna 为什么留言?", + "options": [ + "讲周末的事并请 Sam 回电", + "邀请 Sam 来烧烤", + "请 Sam 帮忙打扫" + ] + }, + { + "type": "detail", + "question": "Anna 周六下午做了什么?", + "options": [ + "打扫房子、下棋", + "和奶奶去市场", + "在花园烧烤" + ] + }, + { + "type": "inference", + "question": "关于 Anna 的哥哥,可以知道什么?", + "options": [ + "他下棋很厉害", + "他不喜欢烧烤", + "他住在奶奶家" + ] + } + ] + }, + { + "id": "A2-U01-M2", + "mode": "reading", + "title": "读者来信:不寻常的周末", + "text": "My weekend, by Lucy\nLast weekend was not very normal for my family. On Friday night my dad decided to paint the kitchen, so on Saturday we couldn't cook anything. Instead, we had pizza for lunch and supper! In the morning I helped him. We moved everything out of the kitchen: the fridge, the oven and the cupboards. Actually, I mostly moved the chairs. My little brother was bored, so he read comics upstairs.\nOn Sunday the kitchen was beautiful and yellow, but it smelled awful. We didn't want to stay at home, so we went somewhere quiet and went cycling by the river. We stopped at a park and my mum shared her chocolate with us. Then my brother asked, \"Can you lend me your bike?\" So I walked with Mum. We got home at five. The kitchen smelled a bit better, and Dad made us a big dinner. It wasn't exactly a usual weekend, but I had a good time. Next weekend I want to stay in bed until lunchtime!", + "glosses": {}, + "questions": [ + { + "type": "gist", + "question": "这篇短文主要讲什么?", + "options": [ + "一个因为刷厨房而不寻常的周末", + "一次去河边的旅行", + "一顿丰盛的晚饭" + ] + }, + { + "type": "detail", + "question": "周六一家人午饭吃了什么?", + "options": [ + "披萨", + "爸爸做的大餐", + "河边的野餐" + ] + }, + { + "type": "inference", + "question": "周日他们为什么不想待在家?", + "options": [ + "厨房的味道很难闻", + "天气太热了", + "弟弟觉得无聊" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "内容", + "bands": [ + "只说出一两件事,没有时间", + "说出去了哪里、做了什么,带时间词", + "按顺序讲清做了什么,并说出感受" + ], + "pass": 1 + }, + { + "name": "过去时", + "bands": [ + "大多仍用现在时", + "多数动词用了过去时,偶有错误", + "过去时基本正确,包括否定句和问句" + ], + "pass": 1 + }, + { + "name": "互动", + "bands": [ + "只回答,不反问", + "能反问对方一个问题", + "能自然追问并回应对方的周末" + ], + "pass": 1 + } + ] + }, + "excluded": [ + { + "en": "laundry", + "reason": "B2;用 did the washing-up / cleaned the house 表达" + } + ] +} diff --git a/kouyu_english/assets/courses/A2/A2-U02.json b/kouyu_english/assets/courses/A2/A2-U02.json new file mode 100644 index 0000000..6353926 --- /dev/null +++ b/kouyu_english/assets/courses/A2/A2-U02.json @@ -0,0 +1,1238 @@ +{ + "schemaVersion": 1, + "id": "A2-U02", + "revision": 1, + "level": "A2", + "title": "上一次旅行", + "categories": [ + "旅行" + ], + "canDo": "讲去了哪里、怎么样、感受如何", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "thailand", + "scotland", + "italy", + "kyoto" + ], + "grammar": [ + { + "id": "64", + "use": "active" + }, + { + "id": "65", + "use": "active" + }, + { + "id": "65-2", + "use": "active" + }, + { + "id": "40", + "use": "active" + }, + { + "id": "247", + "use": "active" + }, + { + "id": "142", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A2-U02-P01", + "type": "phrase", + "en": "Where did you go?", + "zh": "你去了哪里?", + "sceneWord": false, + "match": [ + [ + "where did you go" + ] + ], + "example": { + "en": "Where did you go last summer?", + "zh": "你去年夏天去了哪里?" + }, + "review": { + "prompt": "问朋友假期去了哪里。" + } + }, + { + "id": "A2-U02-P02", + "type": "phrase", + "en": "How long did you stay?", + "zh": "你待了多久?", + "sceneWord": false, + "match": [ + [ + "how long did you stay", + "how long were you there" + ] + ], + "example": { + "en": "How long did you stay in Tokyo?", + "zh": "你在东京待了多久?" + }, + "review": { + "prompt": "问朋友在罗马待了多久。" + } + }, + { + "id": "A2-U02-P03", + "type": "phrase", + "en": "We stayed for a week.", + "zh": "我们待了一周。", + "sceneWord": false, + "match": [ + [ + "stayed for", + "stayed there for" + ] + ], + "example": { + "en": "We stayed there for ten days.", + "zh": "我们在那里待了十天。" + }, + "review": { + "prompt": "说你们在曼谷待了五天。" + } + }, + { + "id": "A2-U02-P04", + "type": "phrase", + "en": "How did you get there?", + "zh": "你怎么去的?", + "sceneWord": false, + "match": [ + [ + "how did you get there", + "how did you get to" + ] + ], + "example": { + "en": "How did you get to the island?", + "zh": "你们怎么去的岛上?" + }, + "review": { + "prompt": "问朋友怎么去的那个村子。" + } + }, + { + "id": "A2-U02-P05", + "type": "phrase", + "en": "We flew to Bangkok.", + "zh": "我们飞到了曼谷。", + "sceneWord": false, + "match": [ + [ + "flew to", + "flew from", + "flew back" + ] + ], + "example": { + "en": "We flew to Rome and took a train to the coast.", + "zh": "我们飞到罗马,再坐火车去海边。" + }, + "review": { + "prompt": "说你们坐飞机去了首尔。" + } + }, + { + "id": "A2-U02-P06", + "type": "phrase", + "en": "What was it like?", + "zh": "那里怎么样?", + "sceneWord": false, + "match": [ + [ + "what was it like", + "what was the weather like", + "what was the food like", + "what was the hotel like" + ] + ], + "example": { + "en": "What was the weather like in London?", + "zh": "伦敦天气怎么样?" + }, + "review": { + "prompt": "问朋友那里的酒店怎么样。" + } + }, + { + "id": "A2-U02-P07", + "type": "phrase", + "en": "It was my first time abroad.", + "zh": "那是我第一次出国。", + "sceneWord": false, + "match": [ + [ + "first time abroad", + "first trip abroad" + ] + ], + "example": { + "en": "Italy was my first trip abroad.", + "zh": "意大利是我第一次出国旅行。" + }, + "review": { + "prompt": "说那是你第一次出国。" + } + }, + { + "id": "A2-U02-P08", + "type": "phrase", + "en": "I took lots of photos.", + "zh": "我拍了很多照片。", + "sceneWord": false, + "match": [ + [ + "took lots of photos", + "took a lot of photos", + "took some photos", + "took photos", + "took pictures" + ] + ], + "example": { + "en": "She took a lot of photos of the castle.", + "zh": "她拍了很多城堡的照片。" + }, + "review": { + "prompt": "说你在山上拍了很多照片。" + } + }, + { + "id": "A2-U02-P09", + "type": "phrase", + "en": "The best part was the food.", + "zh": "最棒的是吃的。", + "sceneWord": false, + "match": [ + [ + "the best part was", + "the best thing was" + ] + ], + "example": { + "en": "The best part was the boat trip.", + "zh": "最棒的是坐船游览。" + }, + "review": { + "prompt": "说这次旅行最棒的是海滩。" + } + }, + { + "id": "A2-U02-P10", + "type": "phrase", + "en": "The people were very kind.", + "zh": "那里的人很友善。", + "sceneWord": false, + "match": [ + [ + "were very kind", + "was very kind", + "were really kind" + ] + ], + "example": { + "en": "The hotel staff were really kind.", + "zh": "酒店员工真的很友善。" + }, + "review": { + "prompt": "说那里的人很友善。" + } + }, + { + "id": "A2-U02-P11", + "type": "phrase", + "en": "I'd love to go back.", + "zh": "我很想再去。", + "sceneWord": false, + "match": [ + [ + "love to go back", + "like to go back", + "want to go back" + ] + ], + "example": { + "en": "It was a great trip. I'd love to go back.", + "zh": "那次旅行很棒,我很想再去。" + }, + "review": { + "prompt": "说你很想再去一次。" + } + }, + { + "id": "A2-U02-W01", + "type": "word", + "en": "crowded", + "zh": "拥挤的", + "sceneWord": false, + "match": [ + [ + "crowded" + ] + ], + "example": { + "en": "The beach was very crowded.", + "zh": "海滩上人很多。" + }, + "review": { + "prompt": "说博物馆里人挤人。" + } + }, + { + "id": "A2-U02-W02", + "type": "word", + "en": "unforgettable", + "zh": "难忘的", + "sceneWord": false, + "match": [ + [ + "unforgettable" + ] + ], + "example": { + "en": "It was an unforgettable trip.", + "zh": "那是一次难忘的旅行。" + }, + "review": { + "prompt": "说那次旅行让你终生难忘。" + } + }, + { + "id": "A2-U02-W03", + "type": "word", + "en": "disappointed", + "zh": "失望的", + "sceneWord": false, + "match": [ + [ + "disappointed", + "disappointing" + ] + ], + "example": { + "en": "The hotel was disappointing.", + "zh": "那家酒店令人失望。" + }, + "review": { + "prompt": "说你对那里的天气很失望。" + } + }, + { + "id": "A2-U02-W04", + "type": "word", + "en": "local", + "zh": "当地的", + "sceneWord": false, + "match": [ + [ + "local" + ] + ], + "example": { + "en": "We ate local food every day.", + "zh": "我们每天吃当地的食物。" + }, + "review": { + "prompt": "说你喜欢吃当地的菜。" + } + } + ], + "receptiveWords": [ + { + "id": "A2-U02-R01", + "en": "animal", + "zh": "动物" + }, + { + "id": "A2-U02-R02", + "en": "journey", + "zh": "旅程" + }, + { + "id": "A2-U02-R03", + "en": "tour", + "zh": "游览;旅行团" + }, + { + "id": "A2-U02-R04", + "en": "tourist", + "zh": "游客" + }, + { + "id": "A2-U02-R05", + "en": "traveler", + "zh": "旅行者" + }, + { + "id": "A2-U02-R06", + "en": "sightseeing", + "zh": "观光" + }, + { + "id": "A2-U02-R07", + "en": "guidebook", + "zh": "旅游指南" + }, + { + "id": "A2-U02-R08", + "en": "scenery", + "zh": "风景" + }, + { + "id": "A2-U02-R09", + "en": "landscape", + "zh": "景色;地貌" + }, + { + "id": "A2-U02-R10", + "en": "valley", + "zh": "山谷" + }, + { + "id": "A2-U02-R11", + "en": "coast", + "zh": "海岸" + }, + { + "id": "A2-U02-R12", + "en": "bay", + "zh": "海湾" + }, + { + "id": "A2-U02-R13", + "en": "seaside", + "zh": "海边" + }, + { + "id": "A2-U02-R14", + "en": "sandy", + "zh": "多沙的" + }, + { + "id": "A2-U02-R15", + "en": "forest", + "zh": "森林" + }, + { + "id": "A2-U02-R16", + "en": "lake", + "zh": "湖" + }, + { + "id": "A2-U02-R17", + "en": "countryside", + "zh": "乡村" + }, + { + "id": "A2-U02-R18", + "en": "village", + "zh": "村庄" + }, + { + "id": "A2-U02-R19", + "en": "castle", + "zh": "城堡" + }, + { + "id": "A2-U02-R20", + "en": "statue", + "zh": "雕像" + }, + { + "id": "A2-U02-R21", + "en": "ancient", + "zh": "古老的" + }, + { + "id": "A2-U02-R22", + "en": "experience", + "zh": "经历" + }, + { + "id": "A2-U02-R23", + "en": "explore", + "zh": "探索;到处看看" + }, + { + "id": "A2-U02-R24", + "en": "adventure", + "zh": "冒险" + }, + { + "id": "A2-U02-R25", + "en": "cruise", + "zh": "乘船游览" + }, + { + "id": "A2-U02-R26", + "en": "sailing", + "zh": "帆船运动" + }, + { + "id": "A2-U02-R27", + "en": "surfing", + "zh": "冲浪" + }, + { + "id": "A2-U02-R28", + "en": "skiing", + "zh": "滑雪" + }, + { + "id": "A2-U02-R29", + "en": "photograph", + "zh": "照片" + }, + { + "id": "A2-U02-R30", + "en": "wild", + "zh": "野生的" + }, + { + "id": "A2-U02-R31", + "en": "insect", + "zh": "昆虫" + }, + { + "id": "A2-U02-R32", + "en": "elephant", + "zh": "大象" + }, + { + "id": "A2-U02-R33", + "en": "peaceful", + "zh": "宁静的" + }, + { + "id": "A2-U02-R34", + "en": "fascinating", + "zh": "非常有趣的" + }, + { + "id": "A2-U02-R35", + "en": "enormous", + "zh": "巨大的" + }, + { + "id": "A2-U02-R36", + "en": "unusual", + "zh": "不寻常的" + }, + { + "id": "A2-U02-R37", + "en": "capital", + "zh": "首都" + }, + { + "id": "A2-U02-R38", + "en": "north", + "zh": "北方" + }, + { + "id": "A2-U02-R39", + "en": "south", + "zh": "南方" + }, + { + "id": "A2-U02-R40", + "en": "east", + "zh": "东方" + }, + { + "id": "A2-U02-R41", + "en": "west", + "zh": "西方" + }, + { + "id": "A2-U02-R42", + "en": "kilometer", + "zh": "公里" + }, + { + "id": "A2-U02-R43", + "en": "luckily", + "zh": "幸运地" + }, + { + "id": "A2-U02-R44", + "en": "unfortunately", + "zh": "不幸地;可惜" + }, + { + "id": "A2-U02-R45", + "en": "frightening", + "zh": "吓人的" + }, + { + "id": "A2-U02-R46", + "en": "beauty", + "zh": "美" + }, + { + "id": "A2-U02-R47", + "en": "nature", + "zh": "大自然" + }, + { + "id": "A2-U02-R48", + "en": "wave", + "zh": "海浪" + }, + { + "id": "A2-U02-R49", + "en": "sunlight", + "zh": "阳光" + }, + { + "id": "A2-U02-R50", + "en": "souvenir", + "zh": "纪念品" + }, + { + "id": "A2-U02-R51", + "en": "tent", + "zh": "帐篷" + }, + { + "id": "A2-U02-R52", + "en": "shore", + "zh": "岸边" + }, + { + "id": "A2-U02-R53", + "en": "desert", + "zh": "沙漠" + }, + { + "id": "A2-U02-R54", + "en": "temple", + "zh": "寺庙" + }, + { + "id": "A2-U02-R55", + "en": "marvelous", + "zh": "极好的" + } + ], + "segments": [ + { + "id": "A2-U02-S1", + "title": "去了哪里、待了多久", + "minutes": 13, + "itemIds": [ + "A2-U02-P01", + "A2-U02-P02", + "A2-U02-P03", + "A2-U02-P04", + "A2-U02-P05" + ], + "listening": { + "text": "Where did you go on holiday? We went to Thailand. How did you get there? We flew to Bangkok, and then we took a bus to the south. How long did you stay? We stayed for two weeks.", + "question": "他们怎么去泰国南部的?", + "options": [ + "先坐飞机再坐大巴", + "先坐火车再坐船", + "一直开车" + ] + }, + "speaking": [ + { + "text": "Where did you go?", + "tip": "where did 连读" + }, + { + "text": "How long did you stay?" + }, + { + "text": "We stayed for a week." + }, + { + "text": "How did you get there?" + }, + { + "text": "We flew to Bangkok." + } + ], + "reading": { + "text": "Travelers' stories\nNina: Last spring I went to Scotland. I flew to London and took the train to the north. The journey was long, but the scenery was beautiful: lakes, forests and old castles. I stayed for ten days.\nSam: Where did you go, Leo?\nLeo: I went to Kyoto. How did I get there? We flew to Tokyo and took a fast train. We stayed for a week and visited ancient temples.", + "question": "Nina 在苏格兰待了多久?", + "options": [ + "十天", + "一周", + "两周" + ] + }, + "writing": { + "prompt": "写两句话:问朋友去了哪里、待了多久。", + "example": "Where did you go? How long did you stay?", + "itemIds": [ + "A2-U02-P01", + "A2-U02-P02" + ] + }, + "independent": { + "prompt": "用英语说说你上一次出去玩:去了哪里、怎么去的、待了多久。", + "itemIds": [ + "A2-U02-P03", + "A2-U02-P04", + "A2-U02-P05" + ] + } + }, + { + "id": "A2-U02-S2", + "title": "那里怎么样", + "minutes": 13, + "itemIds": [ + "A2-U02-P06", + "A2-U02-P07", + "A2-U02-P10", + "A2-U02-W01", + "A2-U02-W03" + ], + "listening": { + "text": "What was it like? Well, it was my first time abroad, so it was all new for me. The people were very kind. But the city was very crowded, and the hotel was a bit disappointing. The room was small and noisy.", + "question": "说话人对什么感到失望?", + "options": [ + "酒店", + "当地人", + "城市" + ] + }, + "speaking": [ + { + "text": "What was it like?" + }, + { + "text": "It was my first time abroad.", + "tip": "abroad 重音在后:/əˈbrɔːd/" + }, + { + "text": "The people were very kind." + }, + { + "text": "The beach was crowded." + }, + { + "text": "I was a bit disappointed." + } + ], + "reading": { + "text": "A trip to the coast\nLast summer Emma went to Italy with her friend. It was her first time abroad. They stayed in a small village by the sea. The people were very kind, and the village was peaceful. Unfortunately, the beaches near the capital were very crowded, and Emma was disappointed. Luckily, the tourists didn't know about a small sandy bay in the west. They went there every day, swam in the waves and lay in the sunlight.", + "question": "在意大利,Emma 为什么失望?", + "options": [ + "海滩太挤了", + "当地人不友善", + "村子太吵了" + ] + }, + "writing": { + "prompt": "写两句话:说那是你第一次出国,那里的人很友善。", + "example": "It was my first time abroad. The people were very kind.", + "itemIds": [ + "A2-U02-P07", + "A2-U02-P10" + ] + }, + "independent": { + "prompt": "朋友问你那里怎么样,用英语说一个好的地方和一个让你失望的地方。", + "itemIds": [ + "A2-U02-P06", + "A2-U02-W01", + "A2-U02-W03" + ] + } + }, + { + "id": "A2-U02-S3", + "title": "最难忘的事", + "minutes": 13, + "itemIds": [ + "A2-U02-P08", + "A2-U02-P09", + "A2-U02-P11", + "A2-U02-W02", + "A2-U02-W04" + ], + "listening": { + "text": "I took lots of photos on the trip. The best part was the local food, especially the fish soup. It was an unforgettable trip. I'd love to go back next year.", + "question": "说话人觉得旅行最棒的是什么?", + "options": [ + "当地的食物", + "照片", + "海滩" + ] + }, + "speaking": [ + { + "text": "I took lots of photos." + }, + { + "text": "The best part was the food." + }, + { + "text": "It was unforgettable.", + "tip": "unforgettable 重音在 get" + }, + { + "text": "We ate local food." + }, + { + "text": "I'd love to go back." + } + ], + "reading": { + "text": "Our adventure in the desert\nLast year Mark and his wife went on a tour in the south of the country. They didn't stay in hotels. Instead, they went camping and slept in a tent. The nights were cold, and the wild animals were a bit frightening. But the landscape was enormous and fascinating. Mark took lots of photographs. The best part was the sky at night: it was full of stars. They bought some local souvenirs and went home tired and happy. It was an unforgettable experience, and they'd love to go back.", + "question": "这次旅行最棒的是什么?", + "options": [ + "夜空", + "帐篷", + "纪念品" + ] + }, + "writing": { + "prompt": "写两句话:说你拍了很多照片,最棒的是当地的食物。", + "example": "I took lots of photos. The best part was the local food.", + "itemIds": [ + "A2-U02-P08", + "A2-U02-P09", + "A2-U02-W04" + ] + }, + "independent": { + "prompt": "用英语说说一次难忘的旅行,最棒的是什么,你想不想再去。", + "itemIds": [ + "A2-U02-W02", + "A2-U02-P09", + "A2-U02-P11" + ] + } + } + ], + "scenes": [ + { + "id": "A2-U02-C1", + "kind": "main", + "title": "和朋友聊上一次旅行", + "learnerRole": "你", + "aiRole": "朋友", + "setting": "你刚旅行回来,和朋友在咖啡馆聊天。", + "turns": [ + { + "ai": "Welcome back! Where did you go?", + "goal": "说你们飞到了曼谷", + "model": "We flew to Bangkok.", + "zh": "我们飞到了曼谷。", + "itemIds": [ + "A2-U02-P05" + ] + }, + { + "ai": "Wow! How long did you stay?", + "goal": "说你们待了一周", + "model": "We stayed for a week.", + "zh": "我们待了一周。", + "itemIds": [ + "A2-U02-P03" + ] + }, + { + "ai": "What was it like?", + "goal": "说那是你第一次出国,那里的人很友善", + "model": "It was my first time abroad. The people were very kind.", + "zh": "那是我第一次出国。那里的人很友善。", + "itemIds": [ + "A2-U02-P07", + "A2-U02-P10" + ] + }, + { + "ai": "And the city?", + "goal": "说城市里人很多", + "model": "It was hot and very crowded.", + "zh": "又热又挤。", + "itemIds": [ + "A2-U02-W01" + ] + }, + { + "ai": "What was the best part?", + "goal": "说最棒的是当地的食物,并说你拍了很多照片", + "model": "The best part was the local food. I took lots of photos of it!", + "zh": "最棒的是当地的食物。我拍了好多吃的照片!", + "itemIds": [ + "A2-U02-P09", + "A2-U02-W04", + "A2-U02-P08" + ] + }, + { + "ai": "Would you go there again?", + "goal": "说那次旅行难忘,你很想再去", + "model": "Yes! It was unforgettable. I'd love to go back.", + "zh": "会!太难忘了。我很想再去。", + "itemIds": [ + "A2-U02-W02", + "A2-U02-P11" + ] + } + ] + }, + { + "id": "A2-U02-C2", + "kind": "variant", + "title": "问朋友的旅行", + "learnerRole": "你", + "aiRole": "刚旅行回来的朋友", + "setting": "朋友刚度假回来,你来问问情况。", + "turns": [ + { + "ai": "Hi! I'm back from my holiday.", + "goal": "问对方去了哪里", + "model": "Welcome back! Where did you go?", + "zh": "欢迎回来!你去了哪里?", + "itemIds": [ + "A2-U02-P01" + ] + }, + { + "ai": "I went to the coast in the south.", + "goal": "问对方怎么去的", + "model": "How did you get there?", + "zh": "你怎么去的?", + "itemIds": [ + "A2-U02-P04" + ] + }, + { + "ai": "By train. It took six hours.", + "goal": "问对方待了多久", + "model": "How long did you stay?", + "zh": "你待了多久?", + "itemIds": [ + "A2-U02-P02" + ] + }, + { + "ai": "Five days.", + "goal": "问那里怎么样", + "model": "What was it like?", + "zh": "那里怎么样?", + "itemIds": [ + "A2-U02-P06" + ] + }, + { + "ai": "The beach was nice, but the hotel was dirty.", + "goal": "问对方是不是很失望", + "model": "Oh no. Were you disappointed?", + "zh": "哎呀,你是不是很失望?", + "itemIds": [ + "A2-U02-W03" + ] + } + ] + }, + { + "id": "A2-U02-C3", + "kind": "variant", + "title": "在旅舍和别的游客聊天", + "learnerRole": "游客", + "aiRole": "另一位游客", + "setting": "你在旅舍的厨房里和另一位游客聊之前去过的地方。", + "turns": [ + { + "ai": "Is this your first trip?", + "goal": "说这是你第一次出国", + "model": "Yes, it's my first time abroad.", + "zh": "是的,这是我第一次出国。", + "itemIds": [ + "A2-U02-P07" + ] + }, + { + "ai": "Where did you go before this city?", + "goal": "说你们飞到了东京,待了五天", + "model": "We flew to Tokyo and stayed for five days.", + "zh": "我们飞到东京,待了五天。", + "itemIds": [ + "A2-U02-P05", + "A2-U02-P03" + ] + }, + { + "ai": "Nice! What was the best part?", + "goal": "说最棒的是当地的食物", + "model": "The best part was the local food.", + "zh": "最棒的是当地的食物。", + "itemIds": [ + "A2-U02-P09", + "A2-U02-W04" + ] + }, + { + "ai": "Did you like the people?", + "goal": "说那里的人很友善", + "model": "Yes, the people were very kind.", + "zh": "喜欢,那里的人很友善。", + "itemIds": [ + "A2-U02-P10" + ] + }, + { + "ai": "Would you go there again?", + "goal": "说你拍了很多照片,很想再去", + "model": "I took lots of photos, and I'd love to go back.", + "zh": "我拍了很多照片,很想再去。", + "itemIds": [ + "A2-U02-P08", + "A2-U02-P11" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A2-U02-T1", + "sceneId": "A2-U02-C1", + "goal": "和朋友讲一次出国旅行:去了哪里、待多久、怎么样", + "itemIds": [ + "A2-U02-P05", + "A2-U02-P03", + "A2-U02-P07", + "A2-U02-P10", + "A2-U02-W01", + "A2-U02-P09", + "A2-U02-W04", + "A2-U02-P08", + "A2-U02-W02", + "A2-U02-P11" + ], + "slots": [ + "地点", + "时间", + "感受", + "最棒的部分" + ] + }, + { + "id": "A2-U02-T2", + "sceneId": "A2-U02-C2", + "goal": "追问朋友的旅行经历", + "itemIds": [ + "A2-U02-P01", + "A2-U02-P04", + "A2-U02-P02", + "A2-U02-P06", + "A2-U02-W03" + ], + "slots": [ + "地点", + "交通", + "时长", + "评价" + ] + }, + { + "id": "A2-U02-T3", + "sceneId": "A2-U02-C3", + "goal": "和旅舍里的游客交流旅行经历", + "itemIds": [ + "A2-U02-P07", + "A2-U02-P05", + "A2-U02-P03", + "A2-U02-P09", + "A2-U02-W04", + "A2-U02-P10", + "A2-U02-P08", + "A2-U02-P11" + ], + "slots": [ + "去过哪里", + "最棒的部分", + "以后的打算" + ] + } + ], + "materials": [ + { + "id": "A2-U02-M1", + "mode": "listening", + "title": "电台节目:听众的旅行故事", + "text": "Hello and welcome back to Travel Time. Today Lily from Shanghai tells us about her last holiday. Last October Lily and her brother went to Japan. It was their first time abroad. They flew to Tokyo and stayed there for three days. Tokyo was fascinating but very crowded, especially the trains in the morning. Then they took a fast train to Kyoto. Lily loved the ancient temples and the peaceful gardens. After that they went to the north and went hiking in the mountains. The scenery was beautiful, and they took lots of photos. Unfortunately, it rained for two days, and her brother was a bit disappointed. But the people in the small villages were very kind. One old man gave them hot tea and showed them the way. For Lily, the best part was the local food, especially the noodles. They stayed for two weeks in total. Lily says it was an unforgettable journey, and she'd love to go back in winter and try skiing.", + "glosses": { + "noodles": "面条", + "total": "总共" + }, + "questions": [ + { + "type": "gist", + "question": "这段节目主要讲什么?", + "options": [ + "Lily 第一次出国去日本的经历", + "日本最好的酒店", + "怎样在东京坐火车" + ] + }, + { + "type": "detail", + "question": "他们在东京待了几天?", + "options": [ + "三天", + "两周", + "两天" + ] + }, + { + "type": "inference", + "question": "Lily 为什么想冬天再去?", + "options": [ + "她想去滑雪", + "冬天人少", + "冬天不下雨" + ] + } + ] + }, + { + "id": "A2-U02-M2", + "mode": "reading", + "title": "旅行博客:湖边的一周", + "text": "A week by the lake\nLast August my family went on holiday to the countryside. We didn't fly. Instead, we drove for five hours to a big lake in the west. We stayed for a week in a small house by the shore. The house was old, but it was clean and quiet.\nWhat was it like? It was peaceful and very different from the city. There were no crowds and no traffic. Every morning we walked in the forest and looked for wild birds and insects. My son loved it, but my daughter was bored without the internet. On Wednesday we went sailing on the lake. The waves were small, and the water was clear and blue. On Saturday we took a boat tour to an island with an enormous old statue. The local people told us a lot about it.\nThe best part for me was the nature and the quiet. We didn't do much, and that was perfect. I took lots of photos, and I'd love to go back next summer.", + "glosses": { + "crowds": "人群", + "clear": "清澈的", + "perfect": "完美的" + }, + "questions": [ + { + "type": "gist", + "question": "这篇博客主要讲什么?", + "options": [ + "一家人在湖边乡村安静的一周", + "一次失败的出国旅行", + "怎样在湖上开船" + ] + }, + { + "type": "detail", + "question": "他们是怎么去湖边的?", + "options": [ + "开车", + "坐飞机", + "坐火车" + ] + }, + { + "type": "inference", + "question": "女儿为什么觉得无聊?", + "options": [ + "那里不能上网", + "天气不好", + "她不喜欢坐船" + ] + } + ] + }, + { + "id": "A2-U02-M3", + "mode": "reading", + "title": "旅行社广告:选一个假期", + "text": "Holidays for every traveler\nSeaside fun: Stay in a hotel by the sea in the east. Try surfing, or just lie on the beach and read a book. The hotel is only two kilometers from the airport, and kids love it.\nCity sightseeing: Explore the capital with other tourists. Visit museums, markets and an ancient castle, and eat in local restaurants. Every tourist gets a free guidebook.\nNature and adventure: Go hiking in a green valley and see wild elephants in the forest. Sleep in tents under the stars. It is a really unusual experience!\nRiver cruise: Relax on a boat for three days and enjoy the beauty of the countryside. The food is marvelous, and every room has a big window.\nAll our tours are for one week. The price is for one person and includes the hotel, breakfast and dinner. We can meet you at the airport, and our team can help you in English or Chinese. Call us today and choose your next adventure!", + "glosses": { + "includes": "包括" + }, + "questions": [ + { + "type": "gist", + "question": "这段文字是什么?", + "options": [ + "旅行社的假期广告", + "一篇游记", + "酒店的规定" + ] + }, + { + "type": "detail", + "question": "哪个项目能看到大象?", + "options": [ + "自然探险", + "海边度假", + "乘船游览" + ] + }, + { + "type": "inference", + "question": "喜欢冲浪的人应该选哪个?", + "options": [ + "海边度假", + "城市观光", + "乘船游览" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "内容", + "bands": [ + "只说了去了哪里", + "说出地点、时间、做了什么", + "讲清地点、交通、时长和经历,并说出最喜欢的部分" + ], + "pass": 1 + }, + { + "name": "描述与感受", + "bands": [ + "没有评价", + "用一两个形容词说感受", + "用多个形容词说好的和不好的地方,并说明原因" + ], + "pass": 1 + }, + { + "name": "过去时", + "bands": [ + "大多仍用现在时", + "多数动词用了过去时,偶有错误", + "过去时基本正确,包括不规则动词和问句" + ], + "pass": 1 + } + ] + }, + "excluded": [ + { + "en": "amazing", + "reason": "B1;用 fantastic / wonderful / unforgettable 表达" + }, + { + "en": "friendly", + "reason": "B2;用 kind 表达" + } + ] +} diff --git a/kouyu_english/assets/courses/A2/A2-U03.json b/kouyu_english/assets/courses/A2/A2-U03.json new file mode 100644 index 0000000..372ec8b --- /dev/null +++ b/kouyu_english/assets/courses/A2/A2-U03.json @@ -0,0 +1,1192 @@ +{ + "schemaVersion": 1, + "id": "A2-U03", + "revision": 1, + "level": "A2", + "title": "预订酒店与餐厅", + "categories": [ + "旅行" + ], + "canDo": "电话或当面预订:日期、人数、要求", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "142", + "use": "active" + }, + { + "id": "250", + "use": "active", + "reason": "Could we ...? 是订位时最常用的礼貌请求" + }, + { + "id": "249", + "use": "active" + }, + { + "id": "69", + "use": "active" + }, + { + "id": "247", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A2-U03-P01", + "type": "phrase", + "en": "I'd like to book a room.", + "zh": "我想订一个房间。", + "sceneWord": false, + "match": [ + [ + "book a room", + "book a table" + ] + ], + "example": { + "en": "I'd like to book a table for Friday night.", + "zh": "我想订周五晚上的桌子。" + }, + "review": { + "prompt": "打电话给酒店,说你想订房。" + } + }, + { + "id": "A2-U03-P02", + "type": "phrase", + "en": "How much is it for one night?", + "zh": "一晚多少钱?", + "sceneWord": false, + "match": [ + [ + "how much is it for", + "how much is the room", + "how much is a room" + ] + ], + "example": { + "en": "How much is the room for two nights?", + "zh": "这个房间两晚多少钱?" + }, + "review": { + "prompt": "问前台双人间一晚多少钱。" + } + }, + { + "id": "A2-U03-P03", + "type": "phrase", + "en": "A table for four, please.", + "zh": "请给我们一张四人桌。", + "sceneWord": false, + "match": [ + [ + "table for two", + "table for three", + "table for four", + "table for five", + "table for six" + ] + ], + "example": { + "en": "We'd like a table for two at eight.", + "zh": "我们想要一张八点的两人桌。" + }, + "review": { + "prompt": "在餐厅门口说你们三个人。" + } + }, + { + "id": "A2-U03-P04", + "type": "phrase", + "en": "Do you have a room for Friday?", + "zh": "周五有房间吗?", + "sceneWord": false, + "match": [ + [ + "do you have a room", + "do you have a table", + "do you have anything" + ] + ], + "example": { + "en": "Do you have a table for tonight?", + "zh": "今晚有桌子吗?" + }, + "review": { + "prompt": "问酒店周六晚上还有没有房间。" + } + }, + { + "id": "A2-U03-P05", + "type": "phrase", + "en": "I'd prefer a room with a balcony.", + "zh": "我更想要带阳台的房间。", + "sceneWord": false, + "match": [ + [ + "prefer" + ] + ], + "example": { + "en": "I'd prefer a table in the garden.", + "zh": "我更想坐花园里的桌子。" + }, + "review": { + "prompt": "说你更想要一个安静的房间。" + } + }, + { + "id": "A2-U03-P06", + "type": "phrase", + "en": "Does the price include breakfast?", + "zh": "价格含早餐吗?", + "sceneWord": false, + "match": [ + [ + "include", + "includes", + "included" + ] + ], + "example": { + "en": "Does the price include dinner?", + "zh": "价格含晚餐吗?" + }, + "review": { + "prompt": "问前台房费里有没有早餐。" + } + }, + { + "id": "A2-U03-P07", + "type": "phrase", + "en": "Could we sit by the window?", + "zh": "我们能坐窗边吗?", + "sceneWord": false, + "match": [ + [ + "sit by the window", + "sit outside", + "sit inside", + "sit in the garden" + ] + ], + "example": { + "en": "Could we sit outside? It's a lovely evening.", + "zh": "我们能坐外面吗?今晚天气真好。" + }, + "review": { + "prompt": "问服务员能不能坐在花园里。" + } + }, + { + "id": "A2-U03-P08", + "type": "phrase", + "en": "It's for a birthday dinner.", + "zh": "是生日晚餐。", + "sceneWord": false, + "match": [ + [ + "for a birthday", + "for my birthday", + "for our anniversary" + ] + ], + "example": { + "en": "The table is for our anniversary.", + "zh": "这张桌子是为我们的纪念日订的。" + }, + "review": { + "prompt": "告诉餐厅这次订位是为了庆祝生日。" + } + }, + { + "id": "A2-U03-P09", + "type": "phrase", + "en": "Can you send me an email?", + "zh": "你能给我发封邮件吗?", + "sceneWord": false, + "match": [ + [ + "send me an email", + "by email" + ] + ], + "example": { + "en": "Can you send me the details by email?", + "zh": "你能把详情用邮件发给我吗?" + }, + "review": { + "prompt": "请酒店把确认信息发到你邮箱。" + } + }, + { + "id": "A2-U03-P10", + "type": "phrase", + "en": "We'll arrive at about eight.", + "zh": "我们大约八点到。", + "sceneWord": false, + "match": [ + [ + "arrive at about", + "arrive at around", + "arrive late", + "arrive early" + ] + ], + "example": { + "en": "We'll arrive late, at about eleven.", + "zh": "我们会晚到,大约十一点。" + }, + "review": { + "prompt": "告诉酒店你们大约晚上九点到。" + } + }, + { + "id": "A2-U03-P11", + "type": "phrase", + "en": "Is it possible to check in early?", + "zh": "能早点入住吗?", + "sceneWord": false, + "match": [ + [ + "is it possible to" + ] + ], + "example": { + "en": "Is it possible to have breakfast at six?", + "zh": "六点能吃早餐吗?" + }, + "review": { + "prompt": "问前台能不能晚一点退房。" + } + }, + { + "id": "A2-U03-W01", + "type": "word", + "en": "private", + "zh": "私人的;单独的", + "sceneWord": false, + "match": [ + [ + "private" + ] + ], + "example": { + "en": "Do you have a private room for twenty people?", + "zh": "你们有能坐二十人的包间吗?" + }, + "review": { + "prompt": "问餐厅有没有包间。" + } + }, + { + "id": "A2-U03-W02", + "type": "word", + "en": "request", + "zh": "要求;请求", + "sceneWord": false, + "match": [ + [ + "request", + "requests" + ] + ], + "example": { + "en": "I have a special request.", + "zh": "我有一个特别的要求。" + }, + "review": { + "prompt": "说你还有一个要求。" + } + }, + { + "id": "A2-U03-W03", + "type": "word", + "en": "convenient", + "zh": "方便的", + "sceneWord": false, + "match": [ + [ + "convenient" + ] + ], + "example": { + "en": "The hotel is convenient for the station.", + "zh": "从酒店去车站很方便。" + }, + "review": { + "prompt": "问这家酒店去机场方不方便。" + } + } + ], + "receptiveWords": [ + { + "id": "A2-U03-R01", + "en": "available", + "zh": "可用的;有空房的" + }, + { + "id": "A2-U03-R02", + "en": "confirm", + "zh": "确认" + }, + { + "id": "A2-U03-R03", + "en": "discount", + "zh": "折扣" + }, + { + "id": "A2-U03-R04", + "en": "deposit", + "zh": "订金" + }, + { + "id": "A2-U03-R05", + "en": "anniversary", + "zh": "周年纪念日" + }, + { + "id": "A2-U03-R06", + "en": "additional", + "zh": "额外的" + }, + { + "id": "A2-U03-R07", + "en": "certain", + "zh": "确定的" + }, + { + "id": "A2-U03-R08", + "en": "possibly", + "zh": "可能" + }, + { + "id": "A2-U03-R09", + "en": "necessary", + "zh": "必要的" + }, + { + "id": "A2-U03-R10", + "en": "suitable", + "zh": "合适的" + }, + { + "id": "A2-U03-R11", + "en": "convenience", + "zh": "方便" + }, + { + "id": "A2-U03-R12", + "en": "fairly", + "zh": "相当;还算" + }, + { + "id": "A2-U03-R13", + "en": "rather", + "zh": "相当;有点" + }, + { + "id": "A2-U03-R14", + "en": "reply", + "zh": "回复" + }, + { + "id": "A2-U03-R15", + "en": "receive", + "zh": "收到" + }, + { + "id": "A2-U03-R16", + "en": "contact", + "zh": "联系" + }, + { + "id": "A2-U03-R17", + "en": "celebration", + "zh": "庆祝活动" + }, + { + "id": "A2-U03-R18", + "en": "host", + "zh": "主人;东道主" + }, + { + "id": "A2-U03-R19", + "en": "romantic", + "zh": "浪漫的" + }, + { + "id": "A2-U03-R20", + "en": "customer", + "zh": "顾客" + }, + { + "id": "A2-U03-R21", + "en": "credit", + "zh": "信用" + }, + { + "id": "A2-U03-R22", + "en": "fee", + "zh": "费用" + }, + { + "id": "A2-U03-R23", + "en": "rate", + "zh": "价格;费率" + }, + { + "id": "A2-U03-R24", + "en": "value", + "zh": "价值;划算" + }, + { + "id": "A2-U03-R25", + "en": "offer", + "zh": "优惠;提供" + }, + { + "id": "A2-U03-R26", + "en": "provide", + "zh": "提供" + }, + { + "id": "A2-U03-R27", + "en": "wheelchair", + "zh": "轮椅" + }, + { + "id": "A2-U03-R28", + "en": "stair", + "zh": "楼梯" + }, + { + "id": "A2-U03-R29", + "en": "fully", + "zh": "完全地" + }, + { + "id": "A2-U03-R30", + "en": "mainly", + "zh": "主要地" + }, + { + "id": "A2-U03-R31", + "en": "public", + "zh": "公共的" + }, + { + "id": "A2-U03-R32", + "en": "midday", + "zh": "中午" + }, + { + "id": "A2-U03-R33", + "en": "noon", + "zh": "中午十二点" + }, + { + "id": "A2-U03-R34", + "en": "latest", + "zh": "最晚的;最新的" + }, + { + "id": "A2-U03-R35", + "en": "pleasant", + "zh": "令人愉快的" + }, + { + "id": "A2-U03-R36", + "en": "perfect", + "zh": "完美的" + }, + { + "id": "A2-U03-R37", + "en": "polite", + "zh": "有礼貌的" + }, + { + "id": "A2-U03-R38", + "en": "quick", + "zh": "快的" + }, + { + "id": "A2-U03-R39", + "en": "staff", + "zh": "员工" + }, + { + "id": "A2-U03-R40", + "en": "agent", + "zh": "代理人" + }, + { + "id": "A2-U03-R41", + "en": "budget", + "zh": "预算" + }, + { + "id": "A2-U03-R42", + "en": "account", + "zh": "账户" + }, + { + "id": "A2-U03-R43", + "en": "option", + "zh": "选择" + }, + { + "id": "A2-U03-R44", + "en": "service", + "zh": "服务" + }, + { + "id": "A2-U03-R45", + "en": "lift", + "zh": "电梯" + }, + { + "id": "A2-U03-R46", + "en": "gym", + "zh": "健身房" + }, + { + "id": "A2-U03-R47", + "en": "total", + "zh": "总数" + }, + { + "id": "A2-U03-R48", + "en": "deal", + "zh": "交易;划算的买卖" + }, + { + "id": "A2-U03-R49", + "en": "set", + "zh": "套;一组" + }, + { + "id": "A2-U03-R50", + "en": "cost", + "zh": "花费" + }, + { + "id": "A2-U03-R51", + "en": "website", + "zh": "网站" + }, + { + "id": "A2-U03-R52", + "en": "ground", + "zh": "地面" + }, + { + "id": "A2-U03-R53", + "en": "detail", + "zh": "细节" + }, + { + "id": "A2-U03-R54", + "en": "cancel", + "zh": "取消" + }, + { + "id": "A2-U03-R55", + "en": "serve", + "zh": "供应(饭菜)" + } + ], + "segments": [ + { + "id": "A2-U03-S1", + "title": "打电话订酒店", + "minutes": 14, + "itemIds": [ + "A2-U03-P01", + "A2-U03-P02", + "A2-U03-P04", + "A2-U03-P05", + "A2-U03-P06", + "A2-U03-P10" + ], + "listening": { + "text": "Good afternoon, Sea View Hotel. Hello, I'd like to book a room. Do you have a room for Friday and Saturday? Yes, we have a double room. How much is it for one night? It's 120 dollars. I'd prefer a room with a balcony. Does the price include breakfast? Yes, it does. Great. We'll arrive at about nine in the evening.", + "question": "客人几点到?", + "options": [ + "晚上九点左右", + "下午两点", + "早上九点" + ] + }, + "speaking": [ + { + "text": "I'd like to book a room.", + "tip": "book a 连读" + }, + { + "text": "How much is it for one night?" + }, + { + "text": "Do you have a room for Friday?" + }, + { + "text": "I'd prefer a room with a balcony.", + "tip": "prefer 重音在后:/prɪˈfɜː/" + }, + { + "text": "Does the price include breakfast?" + }, + { + "text": "We'll arrive at about eight." + } + ], + "reading": { + "text": "An email to a hotel\nHello,\nI'd like to book a room for two people from 12 to 14 May. Do you have a room with a balcony? I'd prefer a quiet room, not near the lift. How much is it for one night, and does the price include breakfast? Also, is there parking at the hotel? We'll arrive at about ten at night.\nPlease reply to this email or contact me on my mobile.\nThank you,\nDavid Wang", + "question": "David 想要什么样的房间?", + "options": [ + "安静、带阳台的房间", + "靠近电梯的房间", + "带厨房的房间" + ] + }, + "writing": { + "prompt": "写两句话:说你想订一个房间,问价格含不含早餐。", + "example": "I'd like to book a room. Does the price include breakfast?", + "itemIds": [ + "A2-U03-P01", + "A2-U03-P06" + ] + }, + "independent": { + "prompt": "用英语打电话订酒店:问有没有房、多少钱,说喜欢的房间和几点到。", + "itemIds": [ + "A2-U03-P04", + "A2-U03-P02", + "A2-U03-P05", + "A2-U03-P10" + ] + } + }, + { + "id": "A2-U03-S2", + "title": "订餐厅", + "minutes": 13, + "itemIds": [ + "A2-U03-P03", + "A2-U03-P07", + "A2-U03-P08", + "A2-U03-W01" + ], + "listening": { + "text": "Hello, Green Garden Restaurant. Hi, I'd like to book a table for Saturday. A table for six, please. It's for my mother's birthday. Could we sit by the window? Sure. We also have a private room.", + "question": "这顿饭是为了什么?", + "options": [ + "妈妈的生日", + "结婚纪念日", + "公司聚餐" + ] + }, + "speaking": [ + { + "text": "A table for four, please." + }, + { + "text": "Could we sit by the window?", + "tip": "Could we 连读:/kʊdwi/" + }, + { + "text": "It's for a birthday dinner." + }, + { + "text": "Do you have a private room?", + "tip": "private 读 /ˈpraɪvət/" + } + ], + "reading": { + "text": "Green Garden Restaurant\nOpen every day from midday to 11 pm.\nBook a table online or call us.\n· Private room for 10 to 20 guests: perfect for birthdays and other celebrations.\n· Tables by the window or in the garden.\n· Set menu: 30 dollars for one person. Children under 12: half-price.\n· For groups of eight or more, we take a small deposit.\n· No stairs at the entrance: easy for wheelchairs.", + "question": "八个人以上订位要怎样?", + "options": [ + "付一点订金", + "坐包间", + "提前一周订" + ] + }, + "writing": { + "prompt": "写两句话:订一张四人桌,问能不能坐在窗边。", + "example": "A table for four, please. Could we sit by the window?", + "itemIds": [ + "A2-U03-P03", + "A2-U03-P07" + ] + }, + "independent": { + "prompt": "用英语打电话订餐厅:说人数、原因,问有没有包间。", + "itemIds": [ + "A2-U03-P03", + "A2-U03-P08", + "A2-U03-W01" + ] + } + }, + { + "id": "A2-U03-S3", + "title": "特别要求与确认", + "minutes": 13, + "itemIds": [ + "A2-U03-P09", + "A2-U03-P11", + "A2-U03-W02", + "A2-U03-W03" + ], + "listening": { + "text": "Is it possible to have breakfast at six tomorrow? We need to leave early. I also have a special request: my father uses a wheelchair. And can you send me an email with all the details? Oh, and is the hotel convenient for the station?", + "question": "客人的父亲需要什么?", + "options": [ + "轮椅方便的房间", + "早一点的早餐", + "去车站的车" + ] + }, + "speaking": [ + { + "text": "Is it possible to check in early?" + }, + { + "text": "I have a special request.", + "tip": "request 重音在后" + }, + { + "text": "Can you send me an email?" + }, + { + "text": "Is the hotel convenient for the station?", + "tip": "convenient 读 /kənˈviːniənt/" + } + ], + "reading": { + "text": "Reply from the hotel\nDear Mr Wang,\nThank you for your booking. We are pleased to confirm your room: a double room with a balcony, 12 to 14 May, two nights. The total is 240 dollars, and this includes breakfast. We received your request for a quiet room. Room 508 is on the top floor, far from the lift. Parking is free for our guests. The hotel is very convenient: the station is only five minutes away. If you need to cancel, please contact us before 10 May. There is no fee.\nSee you soon!", + "question": "如果要取消订房,怎么办?", + "options": [ + "5月10日前联系酒店,不收费", + "不能取消", + "取消要付一晚房费" + ] + }, + "writing": { + "prompt": "写两句话:问能不能早点入住,再说你有一个特别要求。", + "example": "Is it possible to check in early? I have a special request.", + "itemIds": [ + "A2-U03-P11", + "A2-U03-W02" + ] + }, + "independent": { + "prompt": "用英语请酒店把确认信息发邮件给你,并问酒店去车站方不方便。", + "itemIds": [ + "A2-U03-P09", + "A2-U03-W03", + "A2-U03-P11" + ] + } + } + ], + "scenes": [ + { + "id": "A2-U03-C1", + "kind": "main", + "title": "打电话订酒店", + "learnerRole": "游客", + "aiRole": "酒店前台", + "setting": "你打电话给海边的一家酒店订房。", + "turns": [ + { + "ai": "Good morning, Sea View Hotel. How can I help you?", + "goal": "说你想订房", + "model": "Hello, I'd like to book a room.", + "zh": "你好,我想订一个房间。", + "itemIds": [ + "A2-U03-P01" + ] + }, + { + "ai": "Sure. For which nights?", + "goal": "问周五和周六有没有房", + "model": "Do you have a room for Friday and Saturday?", + "zh": "周五和周六有房吗?", + "itemIds": [ + "A2-U03-P04" + ] + }, + { + "ai": "Yes, we have a double room and a single room.", + "goal": "说你更想要带阳台的双人间", + "model": "I'd prefer a double room with a balcony.", + "zh": "我更想要带阳台的双人间。", + "itemIds": [ + "A2-U03-P05" + ] + }, + { + "ai": "No problem.", + "goal": "问一晚多少钱,含不含早餐", + "model": "How much is it for one night? Does the price include breakfast?", + "zh": "一晚多少钱?含早餐吗?", + "itemIds": [ + "A2-U03-P02", + "A2-U03-P06" + ] + }, + { + "ai": "It's 120 dollars, and yes, breakfast is included. What time will you arrive?", + "goal": "说大约晚上八点到", + "model": "We'll arrive at about eight in the evening.", + "zh": "我们大约晚上八点到。", + "itemIds": [ + "A2-U03-P10" + ] + }, + { + "ai": "Great. Can I have your email address?", + "goal": "说好的,请对方把详情发邮件给你", + "model": "Sure. Can you send me an email with the details?", + "zh": "好的。你能把详情发邮件给我吗?", + "itemIds": [ + "A2-U03-P09" + ] + } + ] + }, + { + "id": "A2-U03-C2", + "kind": "variant", + "title": "为妈妈的生日订餐厅", + "learnerRole": "顾客", + "aiRole": "餐厅服务员", + "setting": "你打电话给餐厅,为妈妈的生日订位。", + "turns": [ + { + "ai": "Hello, Green Garden Restaurant.", + "goal": "说想订周六的桌子", + "model": "Hi, I'd like to book a table for Saturday.", + "zh": "你好,我想订周六的桌子。", + "itemIds": [ + "A2-U03-P01" + ] + }, + { + "ai": "For how many people?", + "goal": "说六个人", + "model": "A table for six, please.", + "zh": "六个人的桌子。", + "itemIds": [ + "A2-U03-P03" + ] + }, + { + "ai": "And what time?", + "goal": "说七点,并说是生日晚餐", + "model": "At seven. It's for a birthday dinner.", + "zh": "七点。是生日晚餐。", + "itemIds": [ + "A2-U03-P08" + ] + }, + { + "ai": "Lovely! Would you like a table in the garden?", + "goal": "问能不能坐窗边", + "model": "Could we sit by the window?", + "zh": "我们能坐窗边吗?", + "itemIds": [ + "A2-U03-P07" + ] + }, + { + "ai": "Sure. We also have a private room for groups.", + "goal": "说包间很好,问要不要额外付费", + "model": "A private room is perfect. Is there a fee?", + "zh": "包间太好了。要额外付费吗?", + "itemIds": [ + "A2-U03-W01" + ] + }, + { + "ai": "No, it's free for six people or more.", + "goal": "说你们有一个要求:最后上一个蛋糕", + "model": "Great. We have one request: can you bring a cake at the end?", + "zh": "太好了。我们有个要求:最后能上个蛋糕吗?", + "itemIds": [ + "A2-U03-W02" + ] + } + ] + }, + { + "id": "A2-U03-C3", + "kind": "variant", + "title": "在前台提要求", + "learnerRole": "客人", + "aiRole": "酒店前台", + "setting": "你住进酒店后,在前台提出几个要求。", + "turns": [ + { + "ai": "Good evening. How can I help?", + "goal": "问明天早上六点能不能吃早餐", + "model": "Is it possible to have breakfast at six tomorrow?", + "zh": "明天早上六点能吃早餐吗?", + "itemIds": [ + "A2-U03-P11" + ] + }, + { + "ai": "Yes, that's OK. Anything else?", + "goal": "说你还有一个要求:更想要安静的房间", + "model": "I have one more request. I'd prefer a quiet room.", + "zh": "我还有个要求,我更想要安静的房间。", + "itemIds": [ + "A2-U03-W02", + "A2-U03-P05" + ] + }, + { + "ai": "I can give you a room on the top floor.", + "goal": "问从酒店去机场方不方便", + "model": "Great. Is the hotel convenient for the airport?", + "zh": "太好了。从酒店去机场方便吗?", + "itemIds": [ + "A2-U03-W03" + ] + }, + { + "ai": "Yes, the airport bus stops outside. Would you like dinner in our restaurant tonight?", + "goal": "说要一张两人桌", + "model": "Yes. A table for two, please.", + "zh": "要,一张两人桌。", + "itemIds": [ + "A2-U03-P03" + ] + }, + { + "ai": "No problem. Your table is at eight.", + "goal": "请对方把账单发到你邮箱", + "model": "Thanks. Can you send me an email with the bill?", + "zh": "谢谢。能把账单发到我邮箱吗?", + "itemIds": [ + "A2-U03-P09" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A2-U03-T1", + "sceneId": "A2-U03-C1", + "goal": "打电话订一间合适的酒店房间", + "itemIds": [ + "A2-U03-P01", + "A2-U03-P04", + "A2-U03-P05", + "A2-U03-P02", + "A2-U03-P06", + "A2-U03-P10", + "A2-U03-P09" + ], + "slots": [ + "日期", + "房型", + "价格和早餐", + "到达时间" + ] + }, + { + "id": "A2-U03-T2", + "sceneId": "A2-U03-C2", + "goal": "为家人生日订餐厅", + "itemIds": [ + "A2-U03-P01", + "A2-U03-P03", + "A2-U03-P08", + "A2-U03-P07", + "A2-U03-W01", + "A2-U03-W02" + ], + "slots": [ + "人数", + "时间", + "座位", + "特别要求" + ] + }, + { + "id": "A2-U03-T3", + "sceneId": "A2-U03-C3", + "goal": "在酒店前台提出几个要求", + "itemIds": [ + "A2-U03-P11", + "A2-U03-W02", + "A2-U03-P05", + "A2-U03-W03", + "A2-U03-P03", + "A2-U03-P09" + ], + "slots": [ + "早餐", + "房间", + "交通" + ] + } + ], + "materials": [ + { + "id": "A2-U03-M1", + "mode": "listening", + "title": "电话:为父母订纪念日房间", + "text": "Lake Hotel, Anna speaking. How can I help you? Hi, I'd like to book a room for my parents' anniversary. They'd like a romantic weekend. How lovely! Which weekend? The 20th of June, for two nights. Let me look. Yes, we have two rooms available. The first option is a double room with a balcony and a view of the lake. It's 150 dollars a night. The second is a bit smaller, with a garden view, for 110 dollars. My parents would prefer the lake view, but my budget is fairly small. Is there a discount for two nights? Our weekend offer takes 20 dollars off every night. And for anniversaries, our staff provide flowers and a cake in the room at no additional cost. Perfect. Does the price include breakfast? Breakfast is included, but dinner isn't. Great, the room with the balcony, please. Can I pay a deposit now? Sure. I'll send you an email to confirm your booking.", + "glosses": {}, + "questions": [ + { + "type": "gist", + "question": "打电话的人想做什么?", + "options": [ + "为父母的纪念日订房", + "为自己订生日晚餐", + "取消一个预订" + ] + }, + { + "type": "detail", + "question": "周末优惠是什么?", + "options": [ + "每晚便宜20美元", + "送一顿晚餐", + "免费停车" + ] + }, + { + "type": "inference", + "question": "打电话的人为什么问有没有折扣?", + "options": [ + "预算不多", + "想要小房间", + "父母不喜欢湖景" + ] + } + ] + }, + { + "id": "A2-U03-M2", + "mode": "reading", + "title": "餐厅网站:常见问题", + "text": "Questions from our customers\nCan I book a table online? Yes. You can book on our website up to two months before your visit. You will receive an email to confirm your booking. Please reply if you want to change anything.\nIs there a fee for booking? No. But for groups of ten or more, we take a deposit of 50 dollars. We return it on the night.\nDo you have a private room? Yes. Our private room is suitable for 12 to 25 guests. It is perfect for birthdays, anniversaries and other celebrations. The host of the party can choose a set menu.\nIs the restaurant good for wheelchairs? Yes. There are no stairs at the entrance, and our toilets are on the ground floor.\nWhen are you open? We are open from midday to 11 pm, Tuesday to Sunday. At lunch we mainly serve quick meals, and the kitchen closes at 3 pm. The latest time to book a table for dinner is 9:30 pm.\nIs there parking? There is a public car park behind the restaurant. It is fully free after 6 pm.\nCan I pay by credit card? Yes, and you can also pay by phone.", + "glosses": {}, + "questions": [ + { + "type": "gist", + "question": "这段文字是什么?", + "options": [ + "餐厅网站上的常见问题", + "餐厅的菜单", + "顾客的评价" + ] + }, + { + "type": "detail", + "question": "几点以后停车完全免费?", + "options": [ + "晚上6点以后", + "下午3点以后", + "中午以后" + ] + }, + { + "type": "inference", + "question": "一个12人的聚会订位时要注意什么?", + "options": [ + "要付50美元订金", + "不能订包间", + "只能中午来" + ] + } + ] + }, + { + "id": "A2-U03-M3", + "mode": "reading", + "title": "客人评价:河边酒店", + "text": "Guest reviews: River Hotel\nGreat value, by Mark\nWe booked through a travel agent and got a really good deal. The rate was only 80 dollars a night, and the staff were very polite. There is a small gym and a pleasant garden. Breakfast is served until noon, so you don't need to get up early!\nOK, but not perfect, by Sara\nThe room was clean, but rather small. For a family with two kids, a bigger room is necessary. Room service was slow, and I'm not certain I'd stay again.\nGood for the convenience, by Leo\nThe hotel is close to the station, so it's very convenient for travelers. It's possibly the best place for a short stay. And you don't need an account on the website to book: you can just call them. The only problem: the walls are thin, so ask for a room away from the street if you want a quiet night.", + "glosses": { + "reviews": "评价" + }, + "questions": [ + { + "type": "gist", + "question": "这段文字是什么?", + "options": [ + "三位客人对酒店的评价", + "酒店的入住规定", + "旅行社的广告" + ] + }, + { + "type": "detail", + "question": "早餐供应到几点?", + "options": [ + "中午12点", + "早上9点", + "下午3点" + ] + }, + { + "type": "inference", + "question": "Sara 可能是和谁一起住的?", + "options": [ + "家人", + "同事", + "自己一个人" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "任务完成", + "bands": [ + "没说清要订什么", + "说清日期或人数和主要要求", + "日期、人数、房型或座位、特别要求都说清,并确认结果" + ], + "pass": 1 + }, + { + "name": "礼貌用语", + "bands": [ + "只会直接说要什么", + "能用 I'd like / Could we 等礼貌说法", + "礼貌说法自然,会追问细节并致谢" + ], + "pass": 1 + } + ] + }, + "excluded": [ + { + "en": "terrace", + "reason": "B2;用 sit outside / in the garden 表达" + } + ] +} diff --git a/kouyu_english/assets/courses/A2/A2-U04.json b/kouyu_english/assets/courses/A2/A2-U04.json new file mode 100644 index 0000000..7e7d5bc --- /dev/null +++ b/kouyu_english/assets/courses/A2/A2-U04.json @@ -0,0 +1,1228 @@ +{ + "schemaVersion": 1, + "id": "A2-U04", + "revision": 1, + "level": "A2", + "title": "改期与取消", + "categories": [ + "日常", + "旅行" + ], + "canDo": "说明原因、提出新时间", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "69", + "use": "active" + }, + { + "id": "61", + "use": "active" + }, + { + "id": "142", + "use": "active" + }, + { + "id": "161", + "use": "active" + }, + { + "id": "123", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A2-U04-P01", + "type": "phrase", + "en": "I'm afraid I can't come.", + "zh": "恐怕我来不了。", + "sceneWord": false, + "match": [ + [ + "afraid i can't", + "afraid we can't" + ] + ], + "example": { + "en": "I'm afraid we can't come on Friday.", + "zh": "恐怕我们周五来不了。" + }, + "review": { + "prompt": "礼貌地告诉朋友你去不了聚会。" + } + }, + { + "id": "A2-U04-P02", + "type": "phrase", + "en": "Something came up.", + "zh": "突然有点事。", + "sceneWord": false, + "match": [ + [ + "something came up" + ] + ], + "example": { + "en": "Sorry, something came up at work.", + "zh": "抱歉,工作上突然有点事。" + }, + "review": { + "prompt": "说你突然有事,去不了了。" + } + }, + { + "id": "A2-U04-P03", + "type": "phrase", + "en": "Can we move it to Thursday?", + "zh": "能改到周四吗?", + "sceneWord": false, + "match": [ + [ + "move it to", + "change it to" + ] + ], + "example": { + "en": "Can we change it to next week?", + "zh": "能改到下周吗?" + }, + "review": { + "prompt": "问医生能不能把预约改到周五。" + } + }, + { + "id": "A2-U04-P04", + "type": "phrase", + "en": "I need to cancel my booking.", + "zh": "我需要取消预订。", + "sceneWord": true, + "sceneReason": "cancel 为 B1,但改期与取消单元离不开这个词", + "match": [ + [ + "cancel" + ] + ], + "example": { + "en": "We have to cancel the trip.", + "zh": "我们得取消这次旅行。" + }, + "review": { + "prompt": "打电话给餐厅取消订位。" + } + }, + { + "id": "A2-U04-P05", + "type": "phrase", + "en": "Is Friday OK for you?", + "zh": "周五你可以吗?", + "sceneWord": false, + "match": [ + [ + "ok for you", + "all right for you" + ] + ], + "example": { + "en": "Is ten o'clock OK for you?", + "zh": "十点你可以吗?" + }, + "review": { + "prompt": "问对方周六行不行。" + } + }, + { + "id": "A2-U04-P06", + "type": "phrase", + "en": "Sorry for the short notice.", + "zh": "抱歉这么晚才通知。", + "sceneWord": false, + "match": [ + [ + "short notice" + ] + ], + "example": { + "en": "Sorry for the short notice, but I can't come tomorrow.", + "zh": "抱歉这么晚才说,我明天来不了。" + }, + "review": { + "prompt": "临时取消约会时,先为太晚通知道歉。" + } + }, + { + "id": "A2-U04-P07", + "type": "phrase", + "en": "I'm running late.", + "zh": "我要迟到了。", + "sceneWord": false, + "match": [ + [ + "running late" + ] + ], + "example": { + "en": "Sorry, I'm running late. The traffic is terrible.", + "zh": "抱歉,我要迟到了,路上太堵。" + }, + "review": { + "prompt": "发消息告诉朋友你要迟到了。" + } + }, + { + "id": "A2-U04-P08", + "type": "phrase", + "en": "I'll be there in twenty minutes.", + "zh": "我二十分钟后到。", + "sceneWord": false, + "match": [ + [ + "be there in" + ] + ], + "example": { + "en": "I'll be there in ten minutes.", + "zh": "我十分钟后到。" + }, + "review": { + "prompt": "告诉朋友你半小时后到。" + } + }, + { + "id": "A2-U04-P09", + "type": "phrase", + "en": "Let's meet another day.", + "zh": "我们改天再见吧。", + "sceneWord": false, + "match": [ + [ + "another day", + "another time" + ] + ], + "example": { + "en": "Let's have dinner another day.", + "zh": "我们改天再吃饭吧。" + }, + "review": { + "prompt": "提议改天再见面。" + } + }, + { + "id": "A2-U04-P10", + "type": "phrase", + "en": "I have to work late.", + "zh": "我得加班。", + "sceneWord": false, + "match": [ + [ + "have to work late", + "have to work", + "have to stay at work" + ] + ], + "example": { + "en": "I have to work on Saturday.", + "zh": "我周六得上班。" + }, + "review": { + "prompt": "说明你今晚要加班,去不了。" + } + }, + { + "id": "A2-U04-P11", + "type": "phrase", + "en": "I'll let you know.", + "zh": "我会告诉你。", + "sceneWord": false, + "match": [ + [ + "let you know" + ] + ], + "example": { + "en": "I'll let you know tomorrow.", + "zh": "我明天告诉你。" + }, + "review": { + "prompt": "说你确定时间后会告诉对方。" + } + }, + { + "id": "A2-U04-P12", + "type": "phrase", + "en": "Thanks for letting me know.", + "zh": "谢谢你告诉我。", + "sceneWord": false, + "match": [ + [ + "thanks for letting me know", + "thank you for letting me know" + ] + ], + "example": { + "en": "OK, thanks for letting me know.", + "zh": "好的,谢谢你告诉我。" + }, + "review": { + "prompt": "朋友说要迟到,你谢谢对方告知。" + } + }, + { + "id": "A2-U04-W01", + "type": "word", + "en": "appointment", + "zh": "预约", + "sceneWord": false, + "match": [ + [ + "appointment" + ] + ], + "example": { + "en": "I have a dentist appointment at three.", + "zh": "我三点约了牙医。" + }, + "review": { + "prompt": "说你明天约了医生。" + } + }, + { + "id": "A2-U04-W02", + "type": "word", + "en": "remind", + "zh": "提醒", + "sceneWord": false, + "match": [ + [ + "remind", + "reminds", + "reminded" + ] + ], + "example": { + "en": "Can you remind me tomorrow?", + "zh": "你明天能提醒我吗?" + }, + "review": { + "prompt": "请朋友明天提醒你。" + } + }, + { + "id": "A2-U04-W03", + "type": "word", + "en": "probably", + "zh": "大概", + "sceneWord": false, + "match": [ + [ + "probably" + ] + ], + "example": { + "en": "I'll probably be late.", + "zh": "我大概会迟到。" + }, + "review": { + "prompt": "说你大概会晚到一会儿。" + } + } + ], + "receptiveWords": [ + { + "id": "A2-U04-R01", + "en": "schedule", + "zh": "日程" + }, + { + "id": "A2-U04-R02", + "en": "timetable", + "zh": "时刻表" + }, + { + "id": "A2-U04-R03", + "en": "apologize", + "zh": "道歉" + }, + { + "id": "A2-U04-R04", + "en": "regret", + "zh": "后悔" + }, + { + "id": "A2-U04-R05", + "en": "mention", + "zh": "提到" + }, + { + "id": "A2-U04-R06", + "en": "expect", + "zh": "预计;期待" + }, + { + "id": "A2-U04-R07", + "en": "manage", + "zh": "设法做到;应付" + }, + { + "id": "A2-U04-R08", + "en": "situation", + "zh": "情况" + }, + { + "id": "A2-U04-R09", + "en": "sudden", + "zh": "突然的" + }, + { + "id": "A2-U04-R10", + "en": "pity", + "zh": "遗憾" + }, + { + "id": "A2-U04-R11", + "en": "perhaps", + "zh": "也许" + }, + { + "id": "A2-U04-R12", + "en": "likely", + "zh": "可能的" + }, + { + "id": "A2-U04-R13", + "en": "uncertain", + "zh": "不确定的" + }, + { + "id": "A2-U04-R14", + "en": "certainly", + "zh": "当然;一定" + }, + { + "id": "A2-U04-R15", + "en": "impossible", + "zh": "不可能的" + }, + { + "id": "A2-U04-R16", + "en": "rush", + "zh": "匆忙" + }, + { + "id": "A2-U04-R17", + "en": "alarm", + "zh": "闹钟;警报" + }, + { + "id": "A2-U04-R18", + "en": "daylight", + "zh": "白天;日光" + }, + { + "id": "A2-U04-R19", + "en": "sleepless", + "zh": "失眠的" + }, + { + "id": "A2-U04-R20", + "en": "sadly", + "zh": "遗憾地" + }, + { + "id": "A2-U04-R21", + "en": "badly", + "zh": "糟糕地" + }, + { + "id": "A2-U04-R22", + "en": "seriously", + "zh": "认真地;严重地" + }, + { + "id": "A2-U04-R23", + "en": "fault", + "zh": "过错" + }, + { + "id": "A2-U04-R24", + "en": "blame", + "zh": "责怪" + }, + { + "id": "A2-U04-R25", + "en": "explain", + "zh": "解释" + }, + { + "id": "A2-U04-R26", + "en": "explanation", + "zh": "解释" + }, + { + "id": "A2-U04-R27", + "en": "chance", + "zh": "机会" + }, + { + "id": "A2-U04-R28", + "en": "choice", + "zh": "选择" + }, + { + "id": "A2-U04-R29", + "en": "allow", + "zh": "允许" + }, + { + "id": "A2-U04-R30", + "en": "permission", + "zh": "许可" + }, + { + "id": "A2-U04-R31", + "en": "accept", + "zh": "接受" + }, + { + "id": "A2-U04-R32", + "en": "acceptable", + "zh": "可以接受的" + }, + { + "id": "A2-U04-R33", + "en": "appreciate", + "zh": "感激" + }, + { + "id": "A2-U04-R34", + "en": "trust", + "zh": "信任" + }, + { + "id": "A2-U04-R35", + "en": "unfair", + "zh": "不公平的" + }, + { + "id": "A2-U04-R36", + "en": "upset", + "zh": "难过的;不高兴的" + }, + { + "id": "A2-U04-R37", + "en": "uneasy", + "zh": "不安的" + }, + { + "id": "A2-U04-R38", + "en": "anxious", + "zh": "焦虑的" + }, + { + "id": "A2-U04-R39", + "en": "impatient", + "zh": "不耐烦的" + }, + { + "id": "A2-U04-R40", + "en": "annoy", + "zh": "使恼火" + }, + { + "id": "A2-U04-R41", + "en": "annoying", + "zh": "恼人的" + }, + { + "id": "A2-U04-R42", + "en": "bother", + "zh": "打扰;使烦恼" + }, + { + "id": "A2-U04-R43", + "en": "reunion", + "zh": "聚会;重聚" + }, + { + "id": "A2-U04-R44", + "en": "retire", + "zh": "退休" + }, + { + "id": "A2-U04-R45", + "en": "weekly", + "zh": "每周的" + }, + { + "id": "A2-U04-R46", + "en": "anymore", + "zh": "不再" + }, + { + "id": "A2-U04-R47", + "en": "alright", + "zh": "好的;没问题" + }, + { + "id": "A2-U04-R48", + "en": "ahead", + "zh": "提前;在前面" + }, + { + "id": "A2-U04-R49", + "en": "cause", + "zh": "导致" + }, + { + "id": "A2-U04-R50", + "en": "exam", + "zh": "考试" + }, + { + "id": "A2-U04-R51", + "en": "boss", + "zh": "老板" + }, + { + "id": "A2-U04-R52", + "en": "arrange", + "zh": "安排" + }, + { + "id": "A2-U04-R53", + "en": "deadline", + "zh": "截止日期" + }, + { + "id": "A2-U04-R54", + "en": "honest", + "zh": "诚实的" + }, + { + "id": "A2-U04-R55", + "en": "stuck", + "zh": "卡住的" + }, + { + "id": "A2-U04-R56", + "en": "attend", + "zh": "参加" + }, + { + "id": "A2-U04-R57", + "en": "promise", + "zh": "答应;承诺" + }, + { + "id": "A2-U04-R58", + "en": "frank", + "zh": "坦率的" + }, + { + "id": "A2-U04-R59", + "en": "case", + "zh": "情况" + }, + { + "id": "A2-U04-R60", + "en": "completely", + "zh": "完全地" + }, + { + "id": "A2-U04-R61", + "en": "final", + "zh": "最终的" + } + ], + "segments": [ + { + "id": "A2-U04-S1", + "title": "取消并说明原因", + "minutes": 13, + "itemIds": [ + "A2-U04-P01", + "A2-U04-P02", + "A2-U04-P04", + "A2-U04-P06", + "A2-U04-P10" + ], + "listening": { + "text": "Hi Mark, it's Lucy. I'm afraid I can't come to dinner tonight. Something came up. My boss called, and I have to work late. Sorry for the short notice.", + "question": "Lucy 为什么去不了?", + "options": [ + "要加班", + "生病了", + "家里有事" + ] + }, + "speaking": [ + { + "text": "I'm afraid I can't come.", + "tip": "afraid 重音在后:/əˈfreɪd/" + }, + { + "text": "Something came up." + }, + { + "text": "I need to cancel my booking." + }, + { + "text": "Sorry for the short notice." + }, + { + "text": "I have to work late.", + "tip": "have to 读作 /ˈhæftə/" + } + ], + "reading": { + "text": "A message to the restaurant\nHello,\nI'm afraid I need to cancel my booking for Saturday, a table for four at eight. Something came up: my daughter has an important exam on Monday, and she has to study all weekend. Sorry for the short notice. Is there a fee? Perhaps we can come another weekend.\nThank you,\nKate", + "question": "Kate 为什么取消订位?", + "options": [ + "女儿周一要考试", + "她要加班", + "餐厅太远" + ] + }, + "writing": { + "prompt": "写两句话:说恐怕你来不了,因为突然有事。", + "example": "I'm afraid I can't come. Something came up.", + "itemIds": [ + "A2-U04-P01", + "A2-U04-P02" + ] + }, + "independent": { + "prompt": "用英语给朋友打电话取消今晚的晚饭:说明原因,为太晚通知道歉,并说你会取消订位。", + "itemIds": [ + "A2-U04-P10", + "A2-U04-P06", + "A2-U04-P04" + ] + } + }, + { + "id": "A2-U04-S2", + "title": "提出新时间", + "minutes": 13, + "itemIds": [ + "A2-U04-P03", + "A2-U04-P05", + "A2-U04-P09", + "A2-U04-P11", + "A2-U04-W01" + ], + "listening": { + "text": "Hello, this is Tom Li. I have an appointment with the dentist on Tuesday, but I have to go on a work trip. Can we move it to Thursday? I'm sorry, Thursday is full. Is Friday OK for you? Friday morning is fine.", + "question": "预约改到了哪天?", + "options": [ + "周五", + "周四", + "周二" + ] + }, + "speaking": [ + { + "text": "Can we move it to Thursday?" + }, + { + "text": "Is Friday OK for you?" + }, + { + "text": "Let's meet another day." + }, + { + "text": "I'll let you know." + }, + { + "text": "I have an appointment at ten.", + "tip": "appointment 重音在 point" + } + ], + "reading": { + "text": "Chat messages\nSam: Hi Ella! Are we still OK for lunch on Wednesday?\nElla: Oh no, I'm really sorry. I forgot about my doctor's appointment. Can we move it to Thursday?\nSam: Thursday is impossible for me. I have a meeting all day. Is Friday OK for you?\nElla: Perhaps. My schedule is uncertain this week. I'll let you know tonight.\nSam: Alright. If Friday doesn't work, let's meet another day next week.\nElla: Thanks for understanding!", + "question": "Sam 为什么周四不行?", + "options": [ + "他整天开会", + "他要看医生", + "他出差" + ] + }, + "writing": { + "prompt": "写两句话:问能不能改到周四,再问周五对方行不行。", + "example": "Can we move it to Thursday? Is Friday OK for you?", + "itemIds": [ + "A2-U04-P03", + "A2-U04-P05" + ] + }, + "independent": { + "prompt": "你的医生预约时间不合适,用英语打电话提出新时间,并说之后再告诉对方。", + "itemIds": [ + "A2-U04-W01", + "A2-U04-P03", + "A2-U04-P11" + ] + } + }, + { + "id": "A2-U04-S3", + "title": "要迟到了", + "minutes": 12, + "itemIds": [ + "A2-U04-P07", + "A2-U04-P08", + "A2-U04-P12", + "A2-U04-W02", + "A2-U04-W03" + ], + "listening": { + "text": "Hi, it's me. I'm running late. I slept badly, and my alarm didn't ring. Now the bus is stuck in traffic. I'll probably be there in twenty minutes. Can you remind the others? That's OK. Thanks for letting me know.", + "question": "说话人为什么迟到?", + "options": [ + "闹钟没响,又堵车", + "走错路了", + "公交车坏了" + ] + }, + "speaking": [ + { + "text": "I'm running late." + }, + { + "text": "I'll be there in twenty minutes." + }, + { + "text": "Thanks for letting me know." + }, + { + "text": "Can you remind me?" + }, + { + "text": "I'll probably be late.", + "tip": "probably 常读成 /ˈprɒbli/" + } + ], + "reading": { + "text": "Running late: what to do\nWe all run late sometimes. The alarm doesn't ring, the train is late or the traffic is bad. It's not always your fault, but people wait for you, and it can annoy them. So what should you do? First, don't rush. Accidents happen when people rush. Second, send a message quickly: \"I'm running late. I'll be there in ten minutes.\" Explain the situation in a few words. Most people accept an honest explanation. Finally, when you get there, apologize. People appreciate it.", + "question": "短文说迟到时第一件事是什么?", + "options": [ + "不要慌忙赶路", + "马上道歉", + "找个借口" + ] + }, + "writing": { + "prompt": "写两句话:告诉朋友你要迟到了,大概二十分钟后到。", + "example": "I'm running late. I'll probably be there in twenty minutes.", + "itemIds": [ + "A2-U04-P07", + "A2-U04-P08", + "A2-U04-W03" + ] + }, + "independent": { + "prompt": "朋友发消息说会晚到,用英语回复谢谢对方告知,并请对方提醒你带票。", + "itemIds": [ + "A2-U04-P12", + "A2-U04-W02" + ] + } + } + ], + "scenes": [ + { + "id": "A2-U04-C1", + "kind": "main", + "title": "取消晚饭并约新时间", + "learnerRole": "你", + "aiRole": "朋友", + "setting": "你今晚本来要和朋友吃饭,但突然要加班。", + "turns": [ + { + "ai": "Hi! See you at seven tonight?", + "goal": "说恐怕你来不了", + "model": "I'm afraid I can't come tonight.", + "zh": "恐怕我今晚来不了。", + "itemIds": [ + "A2-U04-P01" + ] + }, + { + "ai": "Oh no. What happened?", + "goal": "说突然有事,你得加班", + "model": "Something came up. I have to work late.", + "zh": "突然有事,我得加班。", + "itemIds": [ + "A2-U04-P02", + "A2-U04-P10" + ] + }, + { + "ai": "That's a pity.", + "goal": "为太晚通知道歉,并提议改天", + "model": "Sorry for the short notice. Let's meet another day.", + "zh": "抱歉这么晚才说。我们改天吧。", + "itemIds": [ + "A2-U04-P06", + "A2-U04-P09" + ] + }, + { + "ai": "Sure. When are you free?", + "goal": "问周五对方行不行", + "model": "Is Friday OK for you?", + "zh": "周五你可以吗?", + "itemIds": [ + "A2-U04-P05" + ] + }, + { + "ai": "Hmm, I'm not sure about Friday.", + "goal": "说你明天再告诉对方", + "model": "OK, I'll let you know tomorrow.", + "zh": "好的,我明天再告诉你。", + "itemIds": [ + "A2-U04-P11" + ] + }, + { + "ai": "And the restaurant? We booked a table.", + "goal": "说别担心,你来取消订位", + "model": "Don't worry. I'll cancel the booking.", + "zh": "别担心,我来取消订位。", + "itemIds": [ + "A2-U04-P04" + ] + } + ] + }, + { + "id": "A2-U04-C2", + "kind": "variant", + "title": "改医生预约", + "learnerRole": "病人", + "aiRole": "诊所前台", + "setting": "你约了周二看牙,但那天要出差。", + "turns": [ + { + "ai": "Good morning, Dr Wang's office.", + "goal": "说你周二十点有个预约", + "model": "Hello, I have an appointment on Tuesday at ten.", + "zh": "你好,我周二十点有个预约。", + "itemIds": [ + "A2-U04-W01" + ] + }, + { + "ai": "Yes, I can see it here.", + "goal": "说恐怕你来不了,问能不能改到周四", + "model": "I'm afraid I can't come. Can we move it to Thursday?", + "zh": "恐怕我来不了。能改到周四吗?", + "itemIds": [ + "A2-U04-P01", + "A2-U04-P03" + ] + }, + { + "ai": "Sorry, Thursday is full.", + "goal": "问周五对方行不行", + "model": "Is Friday OK for you?", + "zh": "周五可以吗?", + "itemIds": [ + "A2-U04-P05" + ] + }, + { + "ai": "Yes, Friday at eleven.", + "goal": "说好,请对方周四提醒你", + "model": "Great. Can you remind me on Thursday?", + "zh": "好的。周四能提醒我一下吗?", + "itemIds": [ + "A2-U04-W02" + ] + }, + { + "ai": "Sure, we'll send you a message.", + "goal": "道谢,并为太晚通知道歉", + "model": "Thank you. Sorry for the short notice.", + "zh": "谢谢。抱歉这么晚才通知。", + "itemIds": [ + "A2-U04-P06" + ] + } + ] + }, + { + "id": "A2-U04-C3", + "kind": "variant", + "title": "看电影要迟到了", + "learnerRole": "你", + "aiRole": "等你的朋友", + "setting": "你约了朋友八点在电影院看电影,但你迟到了。", + "turns": [ + { + "ai": "Hi! Where are you? The film starts at eight.", + "goal": "说你要迟到了,公交车堵在路上", + "model": "Sorry, I'm running late. The bus is stuck in traffic.", + "zh": "抱歉,我要迟到了,公交车堵在路上。", + "itemIds": [ + "A2-U04-P07" + ] + }, + { + "ai": "Oh no. When can you get here?", + "goal": "说你二十分钟后到", + "model": "I'll be there in twenty minutes.", + "zh": "我二十分钟后到。", + "itemIds": [ + "A2-U04-P08" + ] + }, + { + "ai": "OK. Should I buy the tickets?", + "goal": "说好,你大概会错过开头一点", + "model": "Yes, please. I'll probably be a bit late for the start.", + "zh": "好的,麻烦了。我大概会错过开头一点。", + "itemIds": [ + "A2-U04-W03" + ] + }, + { + "ai": "No problem. I'll send you the seat numbers.", + "goal": "请对方提醒你是几号厅", + "model": "Great. Can you remind me which cinema it is?", + "zh": "太好了。能提醒我是几号厅吗?", + "itemIds": [ + "A2-U04-W02" + ] + }, + { + "ai": "It's Cinema 3, on the second floor.", + "goal": "谢谢对方告诉你", + "model": "Thanks for letting me know. See you soon!", + "zh": "谢谢你告诉我。一会儿见!", + "itemIds": [ + "A2-U04-P12" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A2-U04-T1", + "sceneId": "A2-U04-C1", + "goal": "取消和朋友的晚饭,说明原因并约新时间", + "itemIds": [ + "A2-U04-P01", + "A2-U04-P02", + "A2-U04-P10", + "A2-U04-P06", + "A2-U04-P09", + "A2-U04-P05", + "A2-U04-P11", + "A2-U04-P04" + ], + "slots": [ + "原因", + "道歉", + "新时间" + ] + }, + { + "id": "A2-U04-T2", + "sceneId": "A2-U04-C2", + "goal": "打电话改医生预约", + "itemIds": [ + "A2-U04-W01", + "A2-U04-P01", + "A2-U04-P03", + "A2-U04-P05", + "A2-U04-W02", + "A2-U04-P06" + ], + "slots": [ + "原来的时间", + "新时间", + "提醒" + ] + }, + { + "id": "A2-U04-T3", + "sceneId": "A2-U04-C3", + "goal": "告诉朋友你要迟到了", + "itemIds": [ + "A2-U04-P07", + "A2-U04-P08", + "A2-U04-W03", + "A2-U04-W02", + "A2-U04-P12" + ], + "slots": [ + "原因", + "多久到", + "安排" + ] + } + ], + "materials": [ + { + "id": "A2-U04-M1", + "mode": "listening", + "title": "旅行社留言:航班变了", + "text": "Hello, this is Nina from Sun Travel. I'm calling about your trip to Rome next month. I'm afraid we have a problem. The airport changed its timetable, and it doesn't allow night flights anymore, so your flight on the 3rd of May is cancelled. I'm really sorry about this situation. It's not our fault, but we can help. You have two choices. The first choice is a flight on the 2nd of May, one day earlier. There is no additional fee, and we can arrange an extra night at the hotel. The second choice is to cancel the trip. In that case, we will return all your money. Please don't worry: this is completely acceptable, and nobody will blame you. We expect the new timetable to be final, but it's possible they will change it again. So please call us back before Friday and tell us your choice. If we don't hear from you, I'm afraid we can't hold your seats. Thank you, and sorry again for the short notice.", + "glosses": {}, + "questions": [ + { + "type": "gist", + "question": "旅行社为什么打电话?", + "options": [ + "航班取消了,请客人选择改期或取消", + "提醒客人明天出发", + "推荐一个新的旅行团" + ] + }, + { + "type": "detail", + "question": "如果改坐早一天的航班,会怎样?", + "options": [ + "不加钱,还多住一晚酒店", + "要付额外费用", + "换一家酒店住" + ] + }, + { + "type": "inference", + "question": "如果客人周五以前不回电,可能会怎样?", + "options": [ + "失去座位", + "自动改到早一天", + "拿回所有的钱" + ] + } + ] + }, + { + "id": "A2-U04-M2", + "mode": "reading", + "title": "邮件:同学聚会改期", + "text": "Class reunion: new date\nHi everyone,\nI'm sorry to write with bad news. Our class reunion was on Saturday 14 June, but I'm afraid we need to move it. The restaurant called me yesterday. Their kitchen had a fire (nobody was hurt!), and it will probably be closed for a month. Unfortunately, the other restaurants in town are fully booked that weekend.\nSo here is my plan. Can we move it to Saturday 12 July? The restaurant can give us the same private room, and they gave us permission to bring our own cake. It's a pity about June, but perhaps it's a good thing: more people can attend in July, especially our teachers. Mr Chen retired last year, and he wants to come!\nI know some of you arranged trips and hotels. If the change is a problem for you, please tell me. I don't want anyone to feel upset or anxious about it. I'll try to find a date that works for most people.\nPlease reply by Friday. I'll let you know the final plan next week.\nThanks,\nEmma", + "glosses": {}, + "questions": [ + { + "type": "gist", + "question": "这封邮件的主要目的是什么?", + "options": [ + "通知同学聚会改期", + "邀请大家去一家新餐厅", + "为餐厅失火道歉" + ] + }, + { + "type": "detail", + "question": "聚会为什么要改期?", + "options": [ + "餐厅厨房着火,要关一个月", + "陈老师七月才有空", + "大家都想七月去旅行" + ] + }, + { + "type": "inference", + "question": "Emma 为什么说改期“也许是好事”?", + "options": [ + "七月能来的人更多", + "新餐厅更好", + "七月天气更好" + ] + } + ] + }, + { + "id": "A2-U04-M3", + "mode": "reading", + "title": "读者来信:朋友总是取消约会", + "text": "Ask Anna: My friend always cancels\nDear Anna,\nMy best friend and I have a weekly dinner on Wednesdays. But in the last two months she cancelled five times, usually with a sudden message an hour before. She says her boss gives her a lot of work and she has deadlines. I believe her, but it's really annoying. She promised to come last night, but sadly she cancelled again. I feel uneasy when I ask her now, and I can't trust our plans anymore. I had a sleepless night about it. Am I being unfair?\nBen\nDear Ben,\nNo, you're not unfair. It's normal to feel impatient when this happens again and again. But don't let it bother you and just stay quiet: be frank with your friend. Mention how you feel, but don't blame her. Her job is likely causing the problem, not you. Perhaps a weekly dinner is too much for her at the moment, so don't take it too seriously. Plan ahead: ask her, \"Can we meet every two weeks instead?\" Or plan a walk on Saturday morning, in daylight, when she isn't tired. Give her a chance. Good friends can manage a difficult situation together, and you will certainly not regret talking to her.\nAnna", + "glosses": {}, + "questions": [ + { + "type": "gist", + "question": "Ben 写信是为了什么?", + "options": [ + "朋友总取消约会,他不知道怎么办", + "他想取消每周的晚饭", + "他想换一份工作" + ] + }, + { + "type": "detail", + "question": "Anna 建议 Ben 怎么做?", + "options": [ + "坦率地跟朋友说出感受", + "不再约朋友吃饭", + "让朋友换工作" + ] + }, + { + "type": "inference", + "question": "Anna 认为朋友取消约会的主要原因是什么?", + "options": [ + "工作太忙", + "不想见 Ben", + "身体不好" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "说明原因", + "bands": [ + "没有说原因", + "简单说了原因", + "原因清楚,并为改期或取消道歉" + ], + "pass": 1 + }, + { + "name": "提出新安排", + "bands": [ + "没有提出新时间", + "提出一个新时间", + "提出新时间,并确认或说明之后会告知对方" + ], + "pass": 1 + }, + { + "name": "语气", + "bands": [ + "语气生硬", + "用了 sorry / I'm afraid 等缓和语气", + "礼貌自然,会感谢对方理解" + ], + "pass": 1 + } + ] + }, + "excluded": [ + { + "en": "postpone", + "reason": "B2;用 move it to / change it to 表达" + } + ] +} diff --git a/kouyu_english/assets/courses/A2/A2-U05.json b/kouyu_english/assets/courses/A2/A2-U05.json new file mode 100644 index 0000000..6e38784 --- /dev/null +++ b/kouyu_english/assets/courses/A2/A2-U05.json @@ -0,0 +1,1213 @@ +{ + "schemaVersion": 1, + "id": "A2-U05", + "revision": 1, + "level": "A2", + "title": "餐厅里的问题", + "categories": [ + "旅行" + ], + "canDo": "说明忌口或过敏、菜品有问题、分开结账", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "142", + "use": "active" + }, + { + "id": "250", + "use": "active", + "reason": "Could you take it back? 是在餐厅提要求的礼貌说法" + }, + { + "id": "146", + "use": "active" + }, + { + "id": "65", + "use": "active" + }, + { + "id": "61", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A2-U05-P01", + "type": "phrase", + "en": "I'm allergic to nuts.", + "zh": "我对坚果过敏。", + "sceneWord": true, + "sceneReason": "allergic 为 B1,但说明过敏关系到用餐安全", + "match": [ + [ + "allergic to" + ] + ], + "example": { + "en": "I'm allergic to seafood.", + "zh": "我对海鲜过敏。" + }, + "review": { + "prompt": "告诉服务员你对牛奶过敏。" + } + }, + { + "id": "A2-U05-P02", + "type": "phrase", + "en": "I don't eat meat.", + "zh": "我不吃肉。", + "sceneWord": false, + "match": [ + [ + "don't eat meat", + "doesn't eat meat", + "don't eat fish", + "don't eat beef" + ] + ], + "example": { + "en": "My wife doesn't eat meat.", + "zh": "我妻子不吃肉。" + }, + "review": { + "prompt": "告诉服务员你不吃牛肉。" + } + }, + { + "id": "A2-U05-P03", + "type": "phrase", + "en": "Can I have it without onions?", + "zh": "能不放洋葱吗?", + "sceneWord": false, + "match": [ + [ + "without" + ] + ], + "example": { + "en": "Can I have the salad without cheese?", + "zh": "沙拉能不放奶酪吗?" + }, + "review": { + "prompt": "问能不能不放糖。" + } + }, + { + "id": "A2-U05-P04", + "type": "phrase", + "en": "This isn't what I ordered.", + "zh": "这不是我点的。", + "sceneWord": false, + "match": [ + [ + "isn't what i ordered", + "not what i ordered" + ] + ], + "example": { + "en": "Excuse me, this isn't what I ordered.", + "zh": "打扰一下,这不是我点的。" + }, + "review": { + "prompt": "服务员上错了菜,你指出来。" + } + }, + { + "id": "A2-U05-P05", + "type": "phrase", + "en": "I ordered the chicken.", + "zh": "我点的是鸡肉。", + "sceneWord": false, + "match": [ + [ + "i ordered", + "we ordered" + ] + ], + "example": { + "en": "We ordered two coffees, not tea.", + "zh": "我们点的是两杯咖啡,不是茶。" + }, + "review": { + "prompt": "说你点的是鱼,不是牛排。" + } + }, + { + "id": "A2-U05-P06", + "type": "phrase", + "en": "My soup is cold.", + "zh": "我的汤是凉的。", + "sceneWord": false, + "match": [ + [ + "is cold", + "is a bit cold", + "is too cold" + ] + ], + "example": { + "en": "The coffee is a bit cold.", + "zh": "咖啡有点凉。" + }, + "review": { + "prompt": "说你的披萨是凉的。" + } + }, + { + "id": "A2-U05-P07", + "type": "phrase", + "en": "The meat isn't cooked.", + "zh": "肉没熟。", + "sceneWord": false, + "match": [ + [ + "isn't cooked", + "not cooked" + ] + ], + "example": { + "en": "The chicken isn't cooked in the middle.", + "zh": "鸡肉中间没熟。" + }, + "review": { + "prompt": "说鱼没熟。" + } + }, + { + "id": "A2-U05-P08", + "type": "phrase", + "en": "Could you take it back?", + "zh": "能拿回去吗?", + "sceneWord": false, + "match": [ + [ + "take it back" + ] + ], + "example": { + "en": "The soup is cold. Could you take it back, please?", + "zh": "汤凉了,能拿回去吗?" + }, + "review": { + "prompt": "请服务员把凉了的菜拿回去。" + } + }, + { + "id": "A2-U05-P09", + "type": "phrase", + "en": "Can we split the bill?", + "zh": "我们能分开付吗?", + "sceneWord": false, + "match": [ + [ + "split the bill" + ] + ], + "example": { + "en": "There are four of us. Can we split the bill?", + "zh": "我们四个人,能分开付吗?" + }, + "review": { + "prompt": "问服务员能不能分开结账。" + } + }, + { + "id": "A2-U05-P10", + "type": "phrase", + "en": "There's a mistake in the bill.", + "zh": "账单有错。", + "sceneWord": false, + "match": [ + [ + "mistake in the bill", + "mistake on the bill" + ] + ], + "example": { + "en": "I think there's a mistake on the bill.", + "zh": "我觉得账单上有错。" + }, + "review": { + "prompt": "告诉服务员账单算错了。" + } + }, + { + "id": "A2-U05-P11", + "type": "phrase", + "en": "We're still waiting for our food.", + "zh": "我们的菜还没上。", + "sceneWord": false, + "match": [ + [ + "still waiting for", + "waiting for our food" + ] + ], + "example": { + "en": "We're still waiting for our drinks.", + "zh": "我们的饮料还没上。" + }, + "review": { + "prompt": "告诉服务员你们的甜点还没上。" + } + }, + { + "id": "A2-U05-P12", + "type": "phrase", + "en": "Could I speak to the manager?", + "zh": "我能和经理谈谈吗?", + "sceneWord": false, + "match": [ + [ + "speak to the manager" + ] + ], + "example": { + "en": "I'm not happy. Could I speak to the manager?", + "zh": "我不满意,能和经理谈谈吗?" + }, + "review": { + "prompt": "要求见餐厅经理。" + } + }, + { + "id": "A2-U05-W01", + "type": "word", + "en": "complain", + "zh": "投诉;抱怨", + "sceneWord": false, + "match": [ + [ + "complain", + "complained", + "complaining" + ] + ], + "example": { + "en": "I'd like to complain about the service.", + "zh": "我想投诉服务。" + }, + "review": { + "prompt": "说你想投诉。" + } + }, + { + "id": "A2-U05-W02", + "type": "word", + "en": "vegetarian", + "zh": "素食者;素食的", + "sceneWord": true, + "sceneReason": "vegetarian 为 B1,但点菜时说明忌口离不开这个词", + "match": [ + [ + "vegetarian" + ] + ], + "example": { + "en": "My friend is vegetarian.", + "zh": "我朋友吃素。" + }, + "review": { + "prompt": "说你吃素。" + } + }, + { + "id": "A2-U05-W03", + "type": "word", + "en": "raw", + "zh": "生的", + "sceneWord": false, + "match": [ + [ + "raw" + ] + ], + "example": { + "en": "Is the fish raw?", + "zh": "这鱼是生的吗?" + }, + "review": { + "prompt": "问服务员这道菜的肉是不是生的。" + } + } + ], + "receptiveWords": [ + { + "id": "A2-U05-R01", + "en": "sauce", + "zh": "酱汁" + }, + { + "id": "A2-U05-R02", + "en": "pepper", + "zh": "胡椒;辣椒" + }, + { + "id": "A2-U05-R03", + "en": "garlic", + "zh": "大蒜" + }, + { + "id": "A2-U05-R04", + "en": "mushroom", + "zh": "蘑菇" + }, + { + "id": "A2-U05-R05", + "en": "pea", + "zh": "豌豆" + }, + { + "id": "A2-U05-R06", + "en": "curry", + "zh": "咖喱" + }, + { + "id": "A2-U05-R07", + "en": "pasta", + "zh": "意大利面食" + }, + { + "id": "A2-U05-R08", + "en": "spaghetti", + "zh": "意大利面" + }, + { + "id": "A2-U05-R09", + "en": "seafood", + "zh": "海鲜" + }, + { + "id": "A2-U05-R10", + "en": "sausage", + "zh": "香肠" + }, + { + "id": "A2-U05-R11", + "en": "ham", + "zh": "火腿" + }, + { + "id": "A2-U05-R12", + "en": "omelet", + "zh": "煎蛋卷" + }, + { + "id": "A2-U05-R13", + "en": "toast", + "zh": "烤面包片" + }, + { + "id": "A2-U05-R14", + "en": "cereal", + "zh": "麦片" + }, + { + "id": "A2-U05-R15", + "en": "honey", + "zh": "蜂蜜" + }, + { + "id": "A2-U05-R16", + "en": "lemon", + "zh": "柠檬" + }, + { + "id": "A2-U05-R17", + "en": "lemonade", + "zh": "柠檬水" + }, + { + "id": "A2-U05-R18", + "en": "cola", + "zh": "可乐" + }, + { + "id": "A2-U05-R19", + "en": "soda", + "zh": "汽水" + }, + { + "id": "A2-U05-R20", + "en": "soft drink", + "zh": "软饮料" + }, + { + "id": "A2-U05-R21", + "en": "mineral water", + "zh": "矿泉水" + }, + { + "id": "A2-U05-R22", + "en": "beer", + "zh": "啤酒" + }, + { + "id": "A2-U05-R23", + "en": "wine", + "zh": "葡萄酒" + }, + { + "id": "A2-U05-R24", + "en": "champagne", + "zh": "香槟" + }, + { + "id": "A2-U05-R25", + "en": "flour", + "zh": "面粉" + }, + { + "id": "A2-U05-R26", + "en": "melon", + "zh": "甜瓜" + }, + { + "id": "A2-U05-R27", + "en": "pear", + "zh": "梨" + }, + { + "id": "A2-U05-R28", + "en": "slice", + "zh": "片" + }, + { + "id": "A2-U05-R29", + "en": "plate", + "zh": "盘子" + }, + { + "id": "A2-U05-R30", + "en": "napkin", + "zh": "餐巾" + }, + { + "id": "A2-U05-R31", + "en": "chili", + "zh": "辣椒" + }, + { + "id": "A2-U05-R32", + "en": "jelly", + "zh": "果冻" + }, + { + "id": "A2-U05-R33", + "en": "cafeteria", + "zh": "自助餐厅" + }, + { + "id": "A2-U05-R34", + "en": "steak", + "zh": "牛排" + }, + { + "id": "A2-U05-R35", + "en": "main course", + "zh": "主菜" + }, + { + "id": "A2-U05-R36", + "en": "olive oil", + "zh": "橄榄油" + }, + { + "id": "A2-U05-R37", + "en": "grilled", + "zh": "烤的" + }, + { + "id": "A2-U05-R38", + "en": "fried", + "zh": "油炸的;煎的" + }, + { + "id": "A2-U05-R39", + "en": "boiled", + "zh": "煮的" + }, + { + "id": "A2-U05-R40", + "en": "roast", + "zh": "烤" + }, + { + "id": "A2-U05-R41", + "en": "crisp", + "zh": "薯片" + }, + { + "id": "A2-U05-R42", + "en": "swallow", + "zh": "吞下" + }, + { + "id": "A2-U05-R43", + "en": "pour", + "zh": "倒" + }, + { + "id": "A2-U05-R44", + "en": "spill", + "zh": "洒出" + }, + { + "id": "A2-U05-R45", + "en": "mix", + "zh": "混合" + }, + { + "id": "A2-U05-R46", + "en": "heat", + "zh": "炎热;热" + }, + { + "id": "A2-U05-R47", + "en": "diet", + "zh": "节食;饮食" + }, + { + "id": "A2-U05-R48", + "en": "junk", + "zh": "垃圾(食品)" + }, + { + "id": "A2-U05-R49", + "en": "unhealthy", + "zh": "不健康的" + }, + { + "id": "A2-U05-R50", + "en": "overweight", + "zh": "超重的" + }, + { + "id": "A2-U05-R51", + "en": "thirsty", + "zh": "口渴的" + }, + { + "id": "A2-U05-R52", + "en": "chef", + "zh": "厨师" + }, + { + "id": "A2-U05-R53", + "en": "complaint", + "zh": "投诉" + }, + { + "id": "A2-U05-R54", + "en": "container", + "zh": "容器" + }, + { + "id": "A2-U05-R55", + "en": "replace", + "zh": "更换" + }, + { + "id": "A2-U05-R56", + "en": "peanut", + "zh": "花生" + }, + { + "id": "A2-U05-R57", + "en": "taste", + "zh": "尝起来" + }, + { + "id": "A2-U05-R58", + "en": "sour", + "zh": "酸的" + }, + { + "id": "A2-U05-R59", + "en": "bitter", + "zh": "苦的" + }, + { + "id": "A2-U05-R60", + "en": "flavor", + "zh": "味道" + }, + { + "id": "A2-U05-R61", + "en": "middle", + "zh": "中间" + } + ], + "segments": [ + { + "id": "A2-U05-S1", + "title": "忌口与过敏", + "minutes": 13, + "itemIds": [ + "A2-U05-P01", + "A2-U05-P02", + "A2-U05-P03", + "A2-U05-W02", + "A2-U05-W03" + ], + "listening": { + "text": "Excuse me, I'm allergic to nuts. Is there anything with nuts in the curry? No, but the sauce on the chicken has peanuts. OK. My friend is vegetarian. She doesn't eat meat. Then the mushroom pasta is good. Can I have it without garlic? Sure.", + "question": "鸡肉的酱汁里有什么?", + "options": [ + "花生", + "大蒜", + "蘑菇" + ] + }, + "speaking": [ + { + "text": "I'm allergic to nuts.", + "tip": "allergic 重音在 ler:/əˈlɜːdʒɪk/" + }, + { + "text": "I don't eat meat." + }, + { + "text": "Can I have it without onions?" + }, + { + "text": "I'm vegetarian." + }, + { + "text": "Is the fish raw?" + } + ], + "reading": { + "text": "Lake Cafe menu\nMain courses\n· Grilled steak with fried potatoes\n· Chicken curry with rice (spicy, with peanuts)\n· Mushroom spaghetti (V)\n· Roast vegetables with honey and lemon (V)\n· Seafood salad (raw fish)\nDesserts\n· Melon and pear with jelly\nDrinks\n· Cola, lemonade, beer, wine\nV = vegetarian. Please tell us if you are allergic to anything.", + "question": "吃素的人可以点哪道主菜?", + "options": [ + "蘑菇意面", + "烤牛排", + "咖喱鸡" + ] + }, + "writing": { + "prompt": "写两句话:说你对坚果过敏,问能不能不放洋葱。", + "example": "I'm allergic to nuts. Can I have it without onions?", + "itemIds": [ + "A2-U05-P01", + "A2-U05-P03" + ] + }, + "independent": { + "prompt": "用英语告诉服务员你的朋友吃素、不吃肉,并问哪道菜是生的。", + "itemIds": [ + "A2-U05-W02", + "A2-U05-P02", + "A2-U05-W03" + ] + } + }, + { + "id": "A2-U05-S2", + "title": "菜有问题", + "minutes": 13, + "itemIds": [ + "A2-U05-P04", + "A2-U05-P05", + "A2-U05-P06", + "A2-U05-P07", + "A2-U05-P08" + ], + "listening": { + "text": "Excuse me. This isn't what I ordered. I ordered the chicken, not the fish. And my friend's soup is cold. Also, the meat isn't cooked. It's still red in the middle. Could you take it back, please? I'm so sorry. I'll talk to the chef.", + "question": "客人点的是什么?", + "options": [ + "鸡肉", + "鱼", + "汤" + ] + }, + "speaking": [ + { + "text": "This isn't what I ordered." + }, + { + "text": "I ordered the chicken." + }, + { + "text": "My soup is cold." + }, + { + "text": "The meat isn't cooked." + }, + { + "text": "Could you take it back?", + "tip": "take it back 连读" + } + ], + "reading": { + "text": "A customer writes: Pasta House\nWe went to Pasta House on Friday. The place was nice, but the food was a problem. My husband ordered the spaghetti with ham, but the waiter brought seafood pasta. \"This isn't what I ordered,\" he said. The waiter took it back, but the new plate came after forty minutes. My steak wasn't cooked in the middle, and the fried potatoes were cold. Also, the waiter spilled wine on my dress. The chef came and said sorry, and we didn't pay for the wine. Two stars.", + "question": "丈夫点的是什么?", + "options": [ + "火腿意面", + "海鲜意面", + "牛排" + ] + }, + "writing": { + "prompt": "写两句话:说这不是你点的菜,你点的是鸡肉。", + "example": "This isn't what I ordered. I ordered the chicken.", + "itemIds": [ + "A2-U05-P04", + "A2-U05-P05" + ] + }, + "independent": { + "prompt": "你的汤是凉的,肉也没熟,用英语请服务员拿回去。", + "itemIds": [ + "A2-U05-P06", + "A2-U05-P07", + "A2-U05-P08" + ] + } + }, + { + "id": "A2-U05-S3", + "title": "结账与投诉", + "minutes": 13, + "itemIds": [ + "A2-U05-P09", + "A2-U05-P10", + "A2-U05-P11", + "A2-U05-P12", + "A2-U05-W01" + ], + "listening": { + "text": "We're still waiting for our food. It's been an hour. Later: Can we split the bill, please? Sure. Here you are. Hmm, I think there's a mistake in the bill. We didn't have two beers. Could I speak to the manager? I'd like to complain.", + "question": "账单有什么问题?", + "options": [ + "多算了两杯啤酒", + "少算了一道菜", + "算成了别桌的" + ] + }, + "speaking": [ + { + "text": "We're still waiting for our food." + }, + { + "text": "Can we split the bill?" + }, + { + "text": "There's a mistake in the bill." + }, + { + "text": "Could I speak to the manager?" + }, + { + "text": "I'd like to complain.", + "tip": "complain 重音在后" + } + ], + "reading": { + "text": "How to complain in a restaurant\n1. Be polite. The waiter didn't cook your food, so don't be angry with him.\n2. Complain at the table, not after you go home. Say what the problem is: the food is cold, the order is wrong or there's a mistake in the bill.\n3. If the waiter can't help, ask, \"Could I speak to the manager?\"\n4. Most restaurants replace the dish or take it off the bill. They don't want an angry customer, and a good manager listens to a complaint.", + "question": "短文建议什么时候投诉?", + "options": [ + "在餐桌上当场说", + "回家以后写评价", + "付完钱以后" + ] + }, + "writing": { + "prompt": "写两句话:说账单有错,你想和经理谈谈。", + "example": "There's a mistake in the bill. Could I speak to the manager?", + "itemIds": [ + "A2-U05-P10", + "A2-U05-P12" + ] + }, + "independent": { + "prompt": "用英语说你们的菜还没上,你想投诉,最后要求分开付。", + "itemIds": [ + "A2-U05-P11", + "A2-U05-W01", + "A2-U05-P09" + ] + } + } + ], + "scenes": [ + { + "id": "A2-U05-C1", + "kind": "main", + "title": "带着过敏去点菜", + "learnerRole": "顾客", + "aiRole": "服务员", + "setting": "你和一位吃素的朋友在餐厅点菜,你对坚果过敏。", + "turns": [ + { + "ai": "Hello! Are you ready to order?", + "goal": "说你对坚果过敏", + "model": "Yes, but first, I'm allergic to nuts.", + "zh": "好的,不过先说一下,我对坚果过敏。", + "itemIds": [ + "A2-U05-P01" + ] + }, + { + "ai": "OK. The curry has nuts, but the chicken is fine.", + "goal": "说你要鸡肉,但不放洋葱", + "model": "I'll have the chicken. Can I have it without onions?", + "zh": "我要鸡肉,能不放洋葱吗?", + "itemIds": [ + "A2-U05-P03" + ] + }, + { + "ai": "Sure. And for your friend?", + "goal": "说朋友吃素,不吃肉", + "model": "She's vegetarian. She doesn't eat meat.", + "zh": "她吃素,不吃肉。", + "itemIds": [ + "A2-U05-W02", + "A2-U05-P02" + ] + }, + { + "ai": "The mushroom pasta is very good.", + "goal": "说好,再问沙拉里的鱼是不是生的", + "model": "Great. And is the fish in the salad raw?", + "zh": "好的。沙拉里的鱼是生的吗?", + "itemIds": [ + "A2-U05-W03" + ] + }, + { + "ai": "Yes, it is.", + "goal": "说那你们不要沙拉", + "model": "Then no salad for us, thanks.", + "zh": "那我们不要沙拉了,谢谢。", + "itemIds": [] + } + ] + }, + { + "id": "A2-U05-C2", + "kind": "variant", + "title": "上错菜", + "learnerRole": "顾客", + "aiRole": "服务员", + "setting": "服务员给你上了菜,但有好几个问题。", + "turns": [ + { + "ai": "Here you are, the fish.", + "goal": "说这不是你点的,你点的是鸡肉", + "model": "Sorry, this isn't what I ordered. I ordered the chicken.", + "zh": "抱歉,这不是我点的。我点的是鸡肉。", + "itemIds": [ + "A2-U05-P04", + "A2-U05-P05" + ] + }, + { + "ai": "Oh, I'm sorry. I'll bring the chicken.", + "goal": "说朋友的汤是凉的", + "model": "Thanks. Also, my friend's soup is cold.", + "zh": "谢谢。还有,我朋友的汤是凉的。", + "itemIds": [ + "A2-U05-P06" + ] + }, + { + "ai": "Let me see.", + "goal": "说肉也没熟,请对方拿回去", + "model": "And the meat isn't cooked. Could you take it back?", + "zh": "还有肉没熟。能拿回去吗?", + "itemIds": [ + "A2-U05-P07", + "A2-U05-P08" + ] + }, + { + "ai": "Sure. I'm really sorry. Here's a new napkin too.", + "goal": "说你们的饮料也还没上", + "model": "We're still waiting for our drinks too.", + "zh": "我们的饮料也还没上。", + "itemIds": [ + "A2-U05-P11" + ] + }, + { + "ai": "I'll bring them right now.", + "goal": "道谢", + "model": "Thank you.", + "zh": "谢谢。", + "itemIds": [] + } + ] + }, + { + "id": "A2-U05-C3", + "kind": "variant", + "title": "结账出了问题", + "learnerRole": "顾客", + "aiRole": "服务员和经理", + "setting": "吃完饭要结账,你和朋友想分开付。", + "turns": [ + { + "ai": "Did you enjoy your meal?", + "goal": "说还不错,问能不能分开付", + "model": "It was nice, thanks. Can we split the bill?", + "zh": "挺好的,谢谢。我们能分开付吗?", + "itemIds": [ + "A2-U05-P09" + ] + }, + { + "ai": "Sure. Here's the bill.", + "goal": "说账单有错,你们没点葡萄酒", + "model": "I think there's a mistake in the bill. We didn't have any wine.", + "zh": "我觉得账单有错,我们没点葡萄酒。", + "itemIds": [ + "A2-U05-P10" + ] + }, + { + "ai": "Let me check. No, it's right.", + "goal": "说你们没点,要和经理谈谈", + "model": "We didn't order it. Could I speak to the manager?", + "zh": "我们没点。我能和经理谈谈吗?", + "itemIds": [ + "A2-U05-P12" + ] + }, + { + "ai": "Hello, I'm the manager. What's the problem?", + "goal": "说你想投诉:账单错了,还等了一个小时", + "model": "I'd like to complain. The bill is wrong, and we waited for an hour.", + "zh": "我想投诉。账单错了,我们还等了一个小时。", + "itemIds": [ + "A2-U05-W01" + ] + }, + { + "ai": "I'm very sorry. We'll take the wine off the bill.", + "goal": "道谢,并再问能不能分开付", + "model": "Thank you. Can we split the bill now?", + "zh": "谢谢。现在可以分开付吗?", + "itemIds": [ + "A2-U05-P09" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A2-U05-T1", + "sceneId": "A2-U05-C1", + "goal": "点菜时说明过敏和忌口", + "itemIds": [ + "A2-U05-P01", + "A2-U05-P03", + "A2-U05-P02", + "A2-U05-W02", + "A2-U05-W03" + ], + "slots": [ + "过敏", + "忌口", + "点菜" + ] + }, + { + "id": "A2-U05-T2", + "sceneId": "A2-U05-C2", + "goal": "上错菜、菜有问题时请服务员处理", + "itemIds": [ + "A2-U05-P04", + "A2-U05-P05", + "A2-U05-P06", + "A2-U05-P07", + "A2-U05-P08", + "A2-U05-P11" + ], + "slots": [ + "问题", + "请求" + ] + }, + { + "id": "A2-U05-T3", + "sceneId": "A2-U05-C3", + "goal": "结账时处理错账并投诉", + "itemIds": [ + "A2-U05-P09", + "A2-U05-P10", + "A2-U05-P12", + "A2-U05-W01" + ], + "slots": [ + "分账", + "错账", + "投诉" + ] + } + ], + "materials": [ + { + "id": "A2-U05-M1", + "mode": "listening", + "title": "广播节目:带着过敏在外吃饭", + "text": "Welcome to Food Talk. Today we're talking about eating out with food allergies. Many people are allergic to nuts, seafood or milk, and for them a restaurant meal can be dangerous. Dr Liu has some advice. First, always tell the waiter before you order. Don't just say, \"I don't like peanuts.\" Say, \"I'm allergic to nuts.\" Then the waiter knows it's important. Ask about the sauces too. Many sauces have nuts, butter or flour in them, and chili sauce and curry can be a problem. If you are vegetarian, ask about the soup. A lot of vegetable soups are cooked with chicken or ham. Some cafeterias and fast food places don't know what is in their food, so be careful there. Dr Liu also says: carry your medicine with you, and eat with a friend who knows what to do. Finally, don't be shy. Good chefs are happy to change a dish for you. They don't want a sick customer.", + "glosses": { + "allergies": "过敏", + "advice": "建议" + }, + "questions": [ + { + "type": "gist", + "question": "节目主要讲什么?", + "options": [ + "有食物过敏的人怎样安全地在外吃饭", + "怎样做咖喱", + "吃素的好处" + ] + }, + { + "type": "detail", + "question": "刘医生说很多酱汁里可能有什么?", + "options": [ + "坚果、黄油或面粉", + "糖和盐", + "牛奶和鸡蛋" + ] + }, + { + "type": "inference", + "question": "为什么吃素的人要问一问汤?", + "options": [ + "蔬菜汤可能是用鸡肉或火腿煮的", + "汤通常很辣", + "汤里常有坚果" + ] + } + ] + }, + { + "id": "A2-U05-M2", + "mode": "reading", + "title": "投诉邮件和经理的回复", + "text": "To Seaside Restaurant\nHello,\nI had dinner at your restaurant last Saturday with three friends, and I'm afraid I need to complain. We waited forty minutes for our main courses. When the food came, it was not what we ordered. My friend ordered the grilled fish, but she got fried sausages. My steak was nearly raw in the middle, and the omelet was cold. The waiter took two plates back, but the new ones took another thirty minutes. We were hungry and thirsty, and nobody brought us water.\nWhen we asked for the bill, there was a mistake: we paid for two bottles of wine, but we only had one. We wanted to split the bill, but the waiter said it was impossible.\nI usually love your seafood, and I don't often write complaints. But I think we need an explanation.\nMark Chen\nDear Mr Chen,\nThank you for your email, and I'm very sorry. Saturday was very busy, and two of our cooks were ill. That is not an excuse. I would like to invite you and your friends for a free dinner.\nBest wishes,\nAnna, manager", + "glosses": {}, + "questions": [ + { + "type": "gist", + "question": "Mark 写邮件的目的是什么?", + "options": [ + "投诉餐厅的服务和饭菜", + "预订周六的桌子", + "感谢餐厅的海鲜" + ] + }, + { + "type": "detail", + "question": "账单错在哪里?", + "options": [ + "多算了一瓶酒", + "多算了一份牛排", + "少算了鱼" + ] + }, + { + "type": "inference", + "question": "经理为什么请他们免费吃饭?", + "options": [ + "想为糟糕的服务道歉", + "餐厅有新菜", + "那天是 Mark 的生日" + ] + } + ] + }, + { + "id": "A2-U05-M3", + "mode": "reading", + "title": "旅行时怎样吃得健康", + "text": "Eating well when you travel\nWhen we travel, we often eat badly. We have junk food at the airport, crisps on the train and a lot of soft drinks. A can of cola or soda has about ten tablespoons of sugar! After a long trip, many people feel tired, and some are a bit overweight.\nHere are some easy ideas. For breakfast, choose cereal or toast with honey, not sweet cakes made with white flour. At lunch, find a cafeteria with salads, peas and boiled or roast vegetables. Mix olive oil, lemon and pepper for your salad. Take a small container of fruit with you: a pear or some slices of melon. Drink a lot of water, especially in the heat. Buy mineral water, or pour water into your own bottle.\nAnd try new flavors! Local food can taste sour, bitter or very hot, but it's often very healthy. Eat slowly, and don't swallow big pieces quickly. You don't need to be on a diet, but an unhealthy trip is not a happy trip. Save the champagne for the last night!", + "glosses": { + "tablespoons": "汤匙" + }, + "questions": [ + { + "type": "gist", + "question": "这篇文章主要讲什么?", + "options": [ + "旅行时怎样吃得健康", + "怎样在国外点菜", + "当地最好吃的菜" + ] + }, + { + "type": "detail", + "question": "一罐可乐大约有多少糖?", + "options": [ + "大约十勺", + "大约两勺", + "大约一勺" + ] + }, + { + "type": "inference", + "question": "作者为什么说“把香槟留到最后一晚”?", + "options": [ + "旅行中要少喝酒和含糖饮料", + "香槟很贵", + "最后一晚有派对" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "说清问题", + "bands": [ + "只说有问题", + "说清是什么问题", + "说清问题并提出具体要求(换菜、拿回去、改账单)" + ], + "pass": 1 + }, + { + "name": "礼貌与坚持", + "bands": [ + "语气生硬或轻易放弃", + "礼貌地说明问题", + "礼貌而坚持,必要时要求见经理" + ], + "pass": 1 + } + ] + }, + "excluded": [ + { + "en": "salty", + "reason": "B2;用 too much salt 表达" + }, + { + "en": "separately", + "reason": "B2;用 split the bill 表达" + } + ] +} diff --git a/kouyu_english/assets/courses/A2/A2-U06.json b/kouyu_english/assets/courses/A2/A2-U06.json new file mode 100644 index 0000000..a4f3e9e --- /dev/null +++ b/kouyu_english/assets/courses/A2/A2-U06.json @@ -0,0 +1,1200 @@ +{ + "schemaVersion": 1, + "id": "A2-U06", + "revision": 1, + "level": "A2", + "title": "比较与选择", + "categories": [ + "日常", + "旅行" + ], + "canDo": "比较商品、房间或路线并做选择", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "38", + "use": "active" + }, + { + "id": "39", + "use": "active" + }, + { + "id": "40", + "use": "active" + }, + { + "id": "41", + "use": "active" + }, + { + "id": "241", + "use": "active", + "reason": "Which one ...? 是做选择时最直接的问法" + }, + { + "id": "33", + "use": "active" + }, + { + "id": "69", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A2-U06-P01", + "type": "phrase", + "en": "Which one is better?", + "zh": "哪一个更好?", + "sceneWord": false, + "match": [ + [ + "which one" + ] + ], + "example": { + "en": "Which one is better for travel?", + "zh": "哪一个更适合旅行?" + }, + "review": { + "prompt": "问朋友两个包里哪个更好。" + } + }, + { + "id": "A2-U06-P02", + "type": "phrase", + "en": "It's cheaper than the other one.", + "zh": "它比另一个便宜。", + "sceneWord": false, + "match": [ + [ + "cheaper than" + ] + ], + "example": { + "en": "The bus is cheaper than the train.", + "zh": "公交车比火车便宜。" + }, + "review": { + "prompt": "说这个房间比另一个便宜。" + } + }, + { + "id": "A2-U06-P03", + "type": "phrase", + "en": "This one is the most comfortable.", + "zh": "这个最舒服。", + "sceneWord": false, + "match": [ + [ + "the most comfortable" + ] + ], + "example": { + "en": "These are the most comfortable shoes in the shop.", + "zh": "这是店里最舒服的鞋。" + }, + "review": { + "prompt": "说这张床最舒服。" + } + }, + { + "id": "A2-U06-P04", + "type": "phrase", + "en": "What's the difference?", + "zh": "有什么区别?", + "sceneWord": false, + "match": [ + [ + "difference" + ] + ], + "example": { + "en": "What's the difference between these two phones?", + "zh": "这两部手机有什么区别?" + }, + "review": { + "prompt": "问店员两个房间有什么区别。" + } + }, + { + "id": "A2-U06-P05", + "type": "phrase", + "en": "It depends.", + "zh": "看情况。", + "sceneWord": false, + "match": [ + [ + "depends", + "depend on" + ] + ], + "example": { + "en": "It depends on the weather.", + "zh": "要看天气。" + }, + "review": { + "prompt": "朋友问坐车还是走路好,你说要看情况。" + } + }, + { + "id": "A2-U06-P06", + "type": "phrase", + "en": "It's too expensive for me.", + "zh": "对我来说太贵了。", + "sceneWord": false, + "match": [ + [ + "too expensive" + ] + ], + "example": { + "en": "This hotel is too expensive for us.", + "zh": "这家酒店对我们来说太贵了。" + }, + "review": { + "prompt": "说这件外套对你来说太贵了。" + } + }, + { + "id": "A2-U06-P07", + "type": "phrase", + "en": "Do you have anything cheaper?", + "zh": "有便宜一点的吗?", + "sceneWord": false, + "match": [ + [ + "anything cheaper", + "anything smaller", + "anything bigger" + ] + ], + "example": { + "en": "Do you have anything smaller?", + "zh": "有小一点的吗?" + }, + "review": { + "prompt": "问店员有没有大一点的。" + } + }, + { + "id": "A2-U06-P08", + "type": "phrase", + "en": "I'll take this one.", + "zh": "我要这个。", + "sceneWord": false, + "match": [ + [ + "i'll take" + ] + ], + "example": { + "en": "I'll take the blue one, please.", + "zh": "我要蓝色的那个。" + }, + "review": { + "prompt": "告诉店员你决定买这个。" + } + }, + { + "id": "A2-U06-P09", + "type": "phrase", + "en": "Which do you like better?", + "zh": "你更喜欢哪一个?", + "sceneWord": false, + "match": [ + [ + "like better", + "like best" + ] + ], + "example": { + "en": "Which city do you like best?", + "zh": "你最喜欢哪个城市?" + }, + "review": { + "prompt": "问朋友两个颜色更喜欢哪个。" + } + }, + { + "id": "A2-U06-P10", + "type": "phrase", + "en": "Let's take the train instead.", + "zh": "我们改坐火车吧。", + "sceneWord": false, + "match": [ + [ + "instead" + ] + ], + "example": { + "en": "The taxi is too expensive. Let's walk instead.", + "zh": "出租车太贵了,我们走路去吧。" + }, + "review": { + "prompt": "建议改坐公交车。" + } + }, + { + "id": "A2-U06-P11", + "type": "phrase", + "en": "It's good value.", + "zh": "很划算。", + "sceneWord": false, + "match": [ + [ + "good value" + ] + ], + "example": { + "en": "The room is small, but it's good value.", + "zh": "房间小,但很划算。" + }, + "review": { + "prompt": "说这家酒店很划算。" + } + }, + { + "id": "A2-U06-W01", + "type": "word", + "en": "compare", + "zh": "比较", + "sceneWord": false, + "match": [ + [ + "compare", + "compared", + "comparing" + ] + ], + "example": { + "en": "Let's compare the prices.", + "zh": "我们比较一下价格吧。" + }, + "review": { + "prompt": "说你想比较两个房间。" + } + }, + { + "id": "A2-U06-W02", + "type": "word", + "en": "similar", + "zh": "相似的", + "sceneWord": false, + "match": [ + [ + "similar" + ] + ], + "example": { + "en": "The two phones are very similar.", + "zh": "这两部手机很像。" + }, + "review": { + "prompt": "说这两个包差不多。" + } + }, + { + "id": "A2-U06-W03", + "type": "word", + "en": "quality", + "zh": "质量", + "sceneWord": false, + "match": [ + [ + "quality" + ] + ], + "example": { + "en": "The quality is very good.", + "zh": "质量很好。" + }, + "review": { + "prompt": "说这双鞋质量不好。" + } + }, + { + "id": "A2-U06-W04", + "type": "word", + "en": "popular", + "zh": "受欢迎的", + "sceneWord": false, + "match": [ + [ + "popular" + ] + ], + "example": { + "en": "This is our most popular room.", + "zh": "这是我们最受欢迎的房间。" + }, + "review": { + "prompt": "说这家餐厅很受欢迎。" + } + } + ], + "receptiveWords": [ + { + "id": "A2-U06-R01", + "en": "product", + "zh": "产品" + }, + { + "id": "A2-U06-R02", + "en": "brand", + "zh": "品牌" + }, + { + "id": "A2-U06-R03", + "en": "bargain", + "zh": "便宜货" + }, + { + "id": "A2-U06-R04", + "en": "modern", + "zh": "现代的" + }, + { + "id": "A2-U06-R05", + "en": "traditional", + "zh": "传统的" + }, + { + "id": "A2-U06-R06", + "en": "average", + "zh": "平均的;一般的" + }, + { + "id": "A2-U06-R07", + "en": "material", + "zh": "材料" + }, + { + "id": "A2-U06-R08", + "en": "leather", + "zh": "皮革" + }, + { + "id": "A2-U06-R09", + "en": "metal", + "zh": "金属" + }, + { + "id": "A2-U06-R10", + "en": "wooden", + "zh": "木制的" + }, + { + "id": "A2-U06-R11", + "en": "wool", + "zh": "羊毛" + }, + { + "id": "A2-U06-R12", + "en": "silver", + "zh": "银色的;银" + }, + { + "id": "A2-U06-R13", + "en": "golden", + "zh": "金色的" + }, + { + "id": "A2-U06-R14", + "en": "weight", + "zh": "重量" + }, + { + "id": "A2-U06-R15", + "en": "weigh", + "zh": "重" + }, + { + "id": "A2-U06-R16", + "en": "kilogram", + "zh": "公斤" + }, + { + "id": "A2-U06-R17", + "en": "gram", + "zh": "克" + }, + { + "id": "A2-U06-R18", + "en": "centimeter", + "zh": "厘米" + }, + { + "id": "A2-U06-R19", + "en": "feature", + "zh": "特点;功能" + }, + { + "id": "A2-U06-R20", + "en": "model", + "zh": "型号" + }, + { + "id": "A2-U06-R21", + "en": "advantage", + "zh": "优点" + }, + { + "id": "A2-U06-R22", + "en": "disadvantage", + "zh": "缺点" + }, + { + "id": "A2-U06-R23", + "en": "useful", + "zh": "有用的" + }, + { + "id": "A2-U06-R24", + "en": "automatic", + "zh": "自动的" + }, + { + "id": "A2-U06-R25", + "en": "electric", + "zh": "电动的" + }, + { + "id": "A2-U06-R26", + "en": "powerful", + "zh": "强大的" + }, + { + "id": "A2-U06-R27", + "en": "speed", + "zh": "速度" + }, + { + "id": "A2-U06-R28", + "en": "simple", + "zh": "简单的" + }, + { + "id": "A2-U06-R29", + "en": "basic", + "zh": "基本的" + }, + { + "id": "A2-U06-R30", + "en": "advanced", + "zh": "先进的;高级的" + }, + { + "id": "A2-U06-R31", + "en": "however", + "zh": "然而" + }, + { + "id": "A2-U06-R32", + "en": "printer", + "zh": "打印机" + }, + { + "id": "A2-U06-R33", + "en": "software", + "zh": "软件" + }, + { + "id": "A2-U06-R34", + "en": "download", + "zh": "下载" + }, + { + "id": "A2-U06-R35", + "en": "department store", + "zh": "百货商店" + }, + { + "id": "A2-U06-R36", + "en": "mall", + "zh": "购物中心" + }, + { + "id": "A2-U06-R37", + "en": "handbag", + "zh": "手提包" + }, + { + "id": "A2-U06-R38", + "en": "suit", + "zh": "西装" + }, + { + "id": "A2-U06-R39", + "en": "glove", + "zh": "手套" + }, + { + "id": "A2-U06-R40", + "en": "raincoat", + "zh": "雨衣" + }, + { + "id": "A2-U06-R41", + "en": "swimsuit", + "zh": "泳衣" + }, + { + "id": "A2-U06-R42", + "en": "diamond", + "zh": "钻石" + }, + { + "id": "A2-U06-R43", + "en": "mug", + "zh": "马克杯" + }, + { + "id": "A2-U06-R44", + "en": "pan", + "zh": "平底锅" + }, + { + "id": "A2-U06-R45", + "en": "toothbrush", + "zh": "牙刷" + }, + { + "id": "A2-U06-R46", + "en": "scissors", + "zh": "剪刀" + }, + { + "id": "A2-U06-R47", + "en": "perfume", + "zh": "香水" + }, + { + "id": "A2-U06-R48", + "en": "space", + "zh": "空间" + }, + { + "id": "A2-U06-R49", + "en": "weak", + "zh": "弱的" + }, + { + "id": "A2-U06-R50", + "en": "cab", + "zh": "出租车" + }, + { + "id": "A2-U06-R51", + "en": "lane", + "zh": "小路;车道" + }, + { + "id": "A2-U06-R52", + "en": "motorway", + "zh": "高速公路" + }, + { + "id": "A2-U06-R53", + "en": "direct", + "zh": "直达的" + }, + { + "id": "A2-U06-R54", + "en": "fashion", + "zh": "时尚" + }, + { + "id": "A2-U06-R55", + "en": "digital camera", + "zh": "数码相机" + } + ], + "segments": [ + { + "id": "A2-U06-S1", + "title": "比较商品", + "minutes": 13, + "itemIds": [ + "A2-U06-P01", + "A2-U06-P02", + "A2-U06-P04", + "A2-U06-P07", + "A2-U06-W03", + "A2-U06-W02" + ], + "listening": { + "text": "Which one is better, the black bag or the brown one? The brown one is leather, so the quality is better. What's the difference in price? The black one is cheaper than the brown one. They look similar. Do you have anything cheaper? Yes, this one is only thirty dollars.", + "question": "为什么棕色的包质量更好?", + "options": [ + "是皮的", + "更便宜", + "更大" + ] + }, + "speaking": [ + { + "text": "Which one is better?", + "tip": "better 重读" + }, + { + "text": "It's cheaper than the other one.", + "tip": "than 弱读 /ðən/" + }, + { + "text": "What's the difference?" + }, + { + "text": "Do you have anything cheaper?" + }, + { + "text": "The quality is very good." + }, + { + "text": "They're very similar." + } + ], + "reading": { + "text": "Two travel bags\nBag A: brown leather, 45 cm, 1.5 kilograms, 89 dollars. Rating: 4.8.\nBag B: black material, 50 cm, 900 grams, 39 dollars. Rating: 4.1.\nBag A is heavier, but the quality is better. Bag B is cheaper than Bag A and it weighs less, plus it has more space. Both bags look similar, although Bag A is more modern.", + "question": "哪个包更轻?", + "options": [ + "B 包", + "A 包", + "一样重" + ] + }, + "writing": { + "prompt": "写两句话:问哪个更好,并说这个比另一个便宜。", + "example": "Which one is better? This one is cheaper than the other one.", + "itemIds": [ + "A2-U06-P01", + "A2-U06-P02" + ] + }, + "independent": { + "prompt": "用英语问两个手机有什么区别,说它们看起来差不多,再问有没有便宜一点的。", + "itemIds": [ + "A2-U06-P04", + "A2-U06-W02", + "A2-U06-P07", + "A2-U06-W03" + ] + } + }, + { + "id": "A2-U06-S2", + "title": "选房间", + "minutes": 13, + "itemIds": [ + "A2-U06-P03", + "A2-U06-P06", + "A2-U06-P11", + "A2-U06-W04", + "A2-U06-W01", + "A2-U06-P08" + ], + "listening": { + "text": "We have two rooms. The garden room is our most popular room. It's the most comfortable, but it's 150 dollars. Hmm, that's too expensive for me. Then the city room is 90 dollars. It's smaller, but it's good value. Let me compare them. OK, I'll take the city room.", + "question": "客人最后选了哪个房间?", + "options": [ + "城市房", + "花园房", + "两个都没选" + ] + }, + "speaking": [ + { + "text": "This one is the most comfortable.", + "tip": "most 重读" + }, + { + "text": "It's too expensive for me." + }, + { + "text": "It's good value." + }, + { + "text": "It's very popular." + }, + { + "text": "Let me compare them." + }, + { + "text": "I'll take this one." + } + ], + "reading": { + "text": "Hotel rooms\nBasic room: 60 dollars. Small, no window, but clean. Good value.\nGarden room: 150 dollars. Our most popular room. Big bed, wooden floor, the most comfortable room in the hotel.\nCity room: 90 dollars. Modern, with a view of the city. Less space than the garden room.\nAll rooms: free Wi-Fi, breakfast plus 10 dollars.", + "question": "哪个房间最受欢迎?", + "options": [ + "花园房", + "基本房", + "城市房" + ] + }, + "writing": { + "prompt": "写两句话:说花园房最舒服,但对你来说太贵了。", + "example": "The garden room is the most comfortable, but it's too expensive for me.", + "itemIds": [ + "A2-U06-P03", + "A2-U06-P06" + ] + }, + "independent": { + "prompt": "用英语说城市房很受欢迎、很划算,你比较过以后决定要这个。", + "itemIds": [ + "A2-U06-W04", + "A2-U06-P11", + "A2-U06-W01", + "A2-U06-P08" + ] + } + }, + { + "id": "A2-U06-S3", + "title": "选路线", + "minutes": 12, + "itemIds": [ + "A2-U06-P05", + "A2-U06-P09", + "A2-U06-P10" + ], + "listening": { + "text": "How do we get to the old town? We can take a cab or the bus. Which do you like better? It depends. The cab is faster, but it's expensive. The bus is slow in this traffic. Let's take the train instead. It's direct and cheap. Good idea.", + "question": "他们最后决定怎么去?", + "options": [ + "坐火车", + "坐出租车", + "坐公交车" + ] + }, + "speaking": [ + { + "text": "It depends.", + "tip": "depends 重音在后" + }, + { + "text": "Which do you like better?" + }, + { + "text": "Let's take the train instead." + } + ], + "reading": { + "text": "Getting to the airport\nBy cab: 40 minutes, 55 dollars. Fast at night, but the traffic in the morning is the worst in the city.\nBy bus: 70 minutes, 5 dollars. The cheapest way, but it's slow.\nBy train: 30 minutes, 12 dollars. A direct train every 15 minutes. However, the station is a ten-minute walk from the hotel.", + "question": "早上去机场,哪种方式交通最堵?", + "options": [ + "出租车", + "公交车", + "火车" + ] + }, + "writing": { + "prompt": "写两句话:问朋友更喜欢哪个,然后建议改坐火车。", + "example": "Which do you like better? Let's take the train instead.", + "itemIds": [ + "A2-U06-P09", + "A2-U06-P10" + ] + }, + "independent": { + "prompt": "朋友问去机场坐出租车好还是坐火车好,用英语说要看情况,并建议改坐火车。", + "itemIds": [ + "A2-U06-P05", + "A2-U06-P10" + ] + } + } + ], + "scenes": [ + { + "id": "A2-U06-C1", + "kind": "main", + "title": "在店里挑选", + "learnerRole": "顾客", + "aiRole": "店员", + "setting": "你在商店想买一个旅行用的包,正在两个包之间做选择。", + "turns": [ + { + "ai": "Hi! Can I help you?", + "goal": "问这两个包哪个更好", + "model": "Yes. Which one is better for travel?", + "zh": "你好。哪个更适合旅行?", + "itemIds": [ + "A2-U06-P01" + ] + }, + { + "ai": "Both are good. This one is leather, that one isn't.", + "goal": "问两者有什么区别", + "model": "What's the difference in quality?", + "zh": "质量上有什么区别?", + "itemIds": [ + "A2-U06-P04", + "A2-U06-W03" + ] + }, + { + "ai": "The leather one is stronger, but it's 89 dollars.", + "goal": "说太贵了,问有没有便宜一点的", + "model": "That's too expensive for me. Do you have anything cheaper?", + "zh": "对我来说太贵了。有便宜点的吗?", + "itemIds": [ + "A2-U06-P06", + "A2-U06-P07" + ] + }, + { + "ai": "This black one is 39 dollars. It's our most popular bag.", + "goal": "说它比皮包便宜,也很划算", + "model": "It's cheaper than the leather one. It's good value.", + "zh": "它比皮包便宜,很划算。", + "itemIds": [ + "A2-U06-P02", + "A2-U06-P11" + ] + }, + { + "ai": "Yes, and it's very light.", + "goal": "说你要这个", + "model": "Great, I'll take this one.", + "zh": "好,我要这个。", + "itemIds": [ + "A2-U06-P08" + ] + } + ] + }, + { + "id": "A2-U06-C2", + "kind": "variant", + "title": "选酒店房间", + "learnerRole": "游客", + "aiRole": "酒店前台", + "setting": "你到了酒店,前台给你两种房间选择。", + "turns": [ + { + "ai": "We have a garden room and a city room tonight.", + "goal": "问有什么区别", + "model": "What's the difference?", + "zh": "有什么区别?", + "itemIds": [ + "A2-U06-P04" + ] + }, + { + "ai": "The garden room is bigger, and it's the most comfortable.", + "goal": "问哪个更受欢迎", + "model": "Which one is more popular?", + "zh": "哪个更受欢迎?", + "itemIds": [ + "A2-U06-W04", + "A2-U06-P01" + ] + }, + { + "ai": "The garden room. But the rooms are very similar.", + "goal": "说两个房间看起来差不多,你想比较一下价格", + "model": "They look similar. Can I compare the prices?", + "zh": "它们看起来差不多。我能比较一下价格吗?", + "itemIds": [ + "A2-U06-W02", + "A2-U06-W01" + ] + }, + { + "ai": "Sure. The garden room is 150, and the city room is 90.", + "goal": "说花园房最舒服但太贵,你要城市房", + "model": "The garden room is the most comfortable, but it's too expensive for me. I'll take the city room.", + "zh": "花园房最舒服,但对我来说太贵了。我要城市房。", + "itemIds": [ + "A2-U06-P03", + "A2-U06-P06", + "A2-U06-P08" + ] + }, + { + "ai": "Good choice. It's good value.", + "goal": "道谢", + "model": "Thanks.", + "zh": "谢谢。", + "itemIds": [] + } + ] + }, + { + "id": "A2-U06-C3", + "kind": "variant", + "title": "和朋友商量路线", + "learnerRole": "游客", + "aiRole": "朋友", + "setting": "你和朋友要去机场,正在商量怎么去。", + "turns": [ + { + "ai": "Should we take a cab or the bus to the airport?", + "goal": "问朋友更喜欢哪个", + "model": "Which do you like better?", + "zh": "你更喜欢哪个?", + "itemIds": [ + "A2-U06-P09" + ] + }, + { + "ai": "I don't know. What do you think?", + "goal": "说要看时间", + "model": "It depends on the time.", + "zh": "要看时间。", + "itemIds": [ + "A2-U06-P05" + ] + }, + { + "ai": "We leave at eight in the morning.", + "goal": "说早上出租车很慢,比公交车贵", + "model": "The cab is slow in the morning, and the bus is cheaper than the cab.", + "zh": "早上出租车很慢,而且公交车比出租车便宜。", + "itemIds": [ + "A2-U06-P02" + ] + }, + { + "ai": "The bus is slow too.", + "goal": "建议改坐火车", + "model": "Let's take the train instead.", + "zh": "那我们改坐火车吧。", + "itemIds": [ + "A2-U06-P10" + ] + }, + { + "ai": "Good idea. It's direct.", + "goal": "同意", + "model": "OK, great.", + "zh": "好的。", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "A2-U06-T1", + "sceneId": "A2-U06-C1", + "goal": "在店里比较两个商品并买下一个", + "itemIds": [ + "A2-U06-P01", + "A2-U06-P04", + "A2-U06-W03", + "A2-U06-P06", + "A2-U06-P07", + "A2-U06-P02", + "A2-U06-P11", + "A2-U06-W04", + "A2-U06-P08" + ], + "slots": [ + "比较", + "价格", + "决定" + ] + }, + { + "id": "A2-U06-T2", + "sceneId": "A2-U06-C2", + "goal": "比较两种酒店房间后做出选择", + "itemIds": [ + "A2-U06-P04", + "A2-U06-W04", + "A2-U06-P01", + "A2-U06-W01", + "A2-U06-W02", + "A2-U06-P03", + "A2-U06-P06", + "A2-U06-P08" + ], + "slots": [ + "区别", + "价格", + "决定" + ] + }, + { + "id": "A2-U06-T3", + "sceneId": "A2-U06-C3", + "goal": "和朋友商量去机场的交通方式", + "itemIds": [ + "A2-U06-P09", + "A2-U06-P05", + "A2-U06-P02", + "A2-U06-P10" + ], + "slots": [ + "选项", + "理由", + "决定" + ] + } + ], + "materials": [ + { + "id": "A2-U06-M1", + "mode": "listening", + "title": "购物节目:怎样挑选旅行用品", + "text": "Hello and welcome to Smart Shopping. This week we're comparing products for travel. First, suitcases. The cheapest suitcases are often the worst. They weigh less, but the wheels often break. The average price of a good suitcase is about one hundred dollars. Metal suitcases are strong, but they're heavy. My favorite is a light model with basic features. Next, cameras. Many people still take a digital camera on holiday, although phones are more popular now. A phone is simple and useful, but a good camera has more advanced features and a more powerful battery. Then clothes. Take a raincoat, a wool sweater and some gloves if you go somewhere cold, and a swimsuit for the beach. Don't take your best suit or your diamond rings. And finally, a small tip: buy your electric toothbrush and scissors when you arrive. They are cheap everywhere, and scissors can be a problem at the airport. That's all for today. Happy shopping!", + "glosses": { + "suitcases": "行李箱", + "wheels": "轮子" + }, + "questions": [ + { + "type": "gist", + "question": "节目主要讲什么?", + "options": [ + "比较和挑选旅行用品", + "怎样便宜地买机票", + "机场的安检规定" + ] + }, + { + "type": "detail", + "question": "主持人说好行李箱的平均价格大约是多少?", + "options": [ + "一百美元", + "三十美元", + "三百美元" + ] + }, + { + "type": "inference", + "question": "为什么建议到了再买剪刀?", + "options": [ + "带剪刀过机场可能有麻烦", + "当地剪刀质量更好", + "剪刀太重了" + ] + } + ] + }, + { + "id": "A2-U06-M2", + "mode": "reading", + "title": "网购评价:两款电动牙刷", + "text": "Toothbrush 1: Home Basic (19 dollars)\nRating: 3.2\n\"It's cheap, and it looks modern. However, the material is thin, and after two months the automatic timer stopped working. The quality is not good. The weight is fine, only 100 grams, but the battery is weak. Buy it only if you need a toothbrush for a short time.\"\nToothbrush 2: Silver Star (45 dollars)\nRating: 4.7\n\"This is the best product I bought this year. It's silver metal, and it's much better than my old electric toothbrush. It's 20 centimeters long and a bit heavier, but it's powerful and quiet, and the speed is great. The battery lasts for three weeks, so it's useful when you travel. Although it's more expensive, it's good value.\"\nOur tip: Compare the advantages and disadvantages. The first toothbrush is fine for a short trip, but the second one is the better choice for most people. A cheap product is not always a bargain.", + "glosses": { + "timer": "定时器", + "lasts": "持续" + }, + "questions": [ + { + "type": "gist", + "question": "这篇文章主要做什么?", + "options": [ + "比较两款电动牙刷", + "介绍怎样刷牙", + "讲一家商店的促销" + ] + }, + { + "type": "detail", + "question": "第二款牙刷的电池能用多久?", + "options": [ + "三周", + "两个月", + "三天" + ] + }, + { + "type": "inference", + "question": "“便宜的东西不一定划算”是什么意思?", + "options": [ + "便宜的质量可能差,很快就坏", + "便宜的东西都不能买", + "贵的东西一定质量好" + ] + } + ] + }, + { + "id": "A2-U06-M3", + "mode": "reading", + "title": "城里哪里买东西", + "text": "Shopping in the city: where to go?\nThe department store on Main Street is the most traditional place to shop. It's old and beautiful, with wooden stairs and golden lights. You can find fashion brands, leather handbags, perfume and nice suits there. The prices are high, but the quality is excellent.\nThe new mall near the motorway is very different. It's bigger and more modern, and it has more shops, a cinema and lots of places to eat. It's the most popular place for young people at the weekend. You can find bargains there, but it's the least convenient place to get to without a car.\nIf you want something cheap and useful, like a mug, a pan or a printer, try the small shops in the lane behind the station. They're the cheapest in town, but some of their products are the same as in the mall. Some of them also sell software, and they can help you download it.\nSo which one is better? It depends on what you want to buy.", + "glosses": { + "stairs": "楼梯" + }, + "questions": [ + { + "type": "gist", + "question": "这篇文章主要介绍什么?", + "options": [ + "城里几个买东西的地方各有什么特点", + "怎样买到名牌", + "购物中心的电影院" + ] + }, + { + "type": "detail", + "question": "哪里最受年轻人欢迎?", + "options": [ + "新的购物中心", + "百货商店", + "车站后面的小店" + ] + }, + { + "type": "inference", + "question": "没车的人去购物中心会怎样?", + "options": [ + "去那里不太方便", + "能买到更便宜的东西", + "不能进去" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "比较清楚", + "bands": [ + "只说喜欢或不喜欢", + "用比较级或最高级说出一个区别", + "说出两个以上区别并给出理由" + ], + "pass": 1 + }, + { + "name": "做出决定", + "bands": [ + "没有做出选择", + "做出选择", + "做出选择并说明为什么" + ], + "pass": 1 + } + ] + }, + "excluded": [ + { + "en": "route", + "reason": "B2;用 way 表达" + }, + { + "en": "option", + "reason": "B1;用 choice 表达" + } + ] +} diff --git a/kouyu_english/assets/courses/A2/A2-U07.json b/kouyu_english/assets/courses/A2/A2-U07.json new file mode 100644 index 0000000..f722f88 --- /dev/null +++ b/kouyu_english/assets/courses/A2/A2-U07.json @@ -0,0 +1,1231 @@ +{ + "schemaVersion": 1, + "id": "A2-U07", + "revision": 1, + "level": "A2", + "title": "退换货", + "categories": [ + "日常" + ], + "canDo": "说明问题、要求退换", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "65", + "use": "active" + }, + { + "id": "65-2", + "use": "active" + }, + { + "id": "142", + "use": "active" + }, + { + "id": "249", + "use": "active" + }, + { + "id": "64", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A2-U07-P01", + "type": "phrase", + "en": "I'd like to return this.", + "zh": "我想退这个。", + "sceneWord": false, + "match": [ + [ + "return this", + "return it", + "return these" + ] + ], + "example": { + "en": "I'd like to return these shoes.", + "zh": "我想退这双鞋。" + }, + "review": { + "prompt": "告诉店员你想退这件外套。" + } + }, + { + "id": "A2-U07-P02", + "type": "phrase", + "en": "Can I exchange it for a bigger size?", + "zh": "能换大一号的吗?", + "sceneWord": false, + "match": [ + [ + "exchange it", + "exchange them" + ] + ], + "example": { + "en": "Can I exchange them for a smaller size?", + "zh": "能换小一号的吗?" + }, + "review": { + "prompt": "问店员能不能换小一号。" + } + }, + { + "id": "A2-U07-P03", + "type": "phrase", + "en": "Can I get my money back?", + "zh": "能退钱吗?", + "sceneWord": false, + "match": [ + [ + "money back" + ] + ], + "example": { + "en": "If it doesn't work, can I get my money back?", + "zh": "如果不好用,能退钱吗?" + }, + "review": { + "prompt": "问店员能不能退钱。" + } + }, + { + "id": "A2-U07-P04", + "type": "phrase", + "en": "There's a hole in it.", + "zh": "上面有个洞。", + "sceneWord": false, + "match": [ + [ + "a hole in" + ] + ], + "example": { + "en": "There's a hole in the pocket.", + "zh": "口袋上有个洞。" + }, + "review": { + "prompt": "说这件衬衫上有个洞。" + } + }, + { + "id": "A2-U07-P05", + "type": "phrase", + "en": "A button is missing.", + "zh": "少了一颗扣子。", + "sceneWord": false, + "match": [ + [ + "is missing", + "are missing" + ] + ], + "example": { + "en": "Two pieces are missing.", + "zh": "少了两个零件。" + }, + "review": { + "prompt": "说盒子里少了一样东西。" + } + }, + { + "id": "A2-U07-P06", + "type": "phrase", + "en": "It stopped working after two days.", + "zh": "用了两天就坏了。", + "sceneWord": false, + "match": [ + [ + "stopped working" + ] + ], + "example": { + "en": "My phone stopped working last night.", + "zh": "我的手机昨晚坏了。" + }, + "review": { + "prompt": "说你的耳机用了一周就不响了。" + } + }, + { + "id": "A2-U07-P07", + "type": "phrase", + "en": "I bought it here last week.", + "zh": "我上周在这里买的。", + "sceneWord": false, + "match": [ + [ + "bought it", + "bought them" + ] + ], + "example": { + "en": "I bought them online on Monday.", + "zh": "我周一在网上买的。" + }, + "review": { + "prompt": "说你昨天在这里买的。" + } + }, + { + "id": "A2-U07-P08", + "type": "phrase", + "en": "Here's my receipt.", + "zh": "这是我的小票。", + "sceneWord": false, + "match": [ + [ + "my receipt" + ] + ], + "example": { + "en": "Sorry, I lost my receipt.", + "zh": "抱歉,我把小票弄丢了。" + }, + "review": { + "prompt": "把小票递给店员时说一句。" + } + }, + { + "id": "A2-U07-P09", + "type": "phrase", + "en": "Can you repair it?", + "zh": "能修吗?", + "sceneWord": false, + "match": [ + [ + "repair it", + "repair them" + ] + ], + "example": { + "en": "If you can't repair it, can I have a new one?", + "zh": "如果修不好,能给我换个新的吗?" + }, + "review": { + "prompt": "问店员这台机器能不能修。" + } + }, + { + "id": "A2-U07-P10", + "type": "phrase", + "en": "Can I have a new one instead?", + "zh": "能换个新的吗?", + "sceneWord": false, + "match": [ + [ + "a new one" + ] + ], + "example": { + "en": "This one is broken. Can I have a new one?", + "zh": "这个坏了,能换个新的吗?" + }, + "review": { + "prompt": "要求换一个新的。" + } + }, + { + "id": "A2-U07-P11", + "type": "phrase", + "en": "It was a present.", + "zh": "这是别人送的礼物。", + "sceneWord": false, + "match": [ + [ + "present", + "gift" + ] + ], + "example": { + "en": "It was a birthday present from my aunt.", + "zh": "这是我阿姨送的生日礼物。" + }, + "review": { + "prompt": "说这件东西是朋友送的礼物。" + } + }, + { + "id": "A2-U07-P12", + "type": "phrase", + "en": "What's wrong with it?", + "zh": "它有什么问题?", + "sceneWord": false, + "match": [ + [ + "wrong with" + ] + ], + "example": { + "en": "What's wrong with your computer?", + "zh": "你的电脑怎么了?" + }, + "review": { + "prompt": "问朋友手机怎么了。" + } + }, + { + "id": "A2-U07-W01", + "type": "word", + "en": "refund", + "zh": "退款", + "sceneWord": true, + "sceneReason": "refund 为 B1,但退货时离不开这个词", + "match": [ + [ + "refund" + ] + ], + "example": { + "en": "I'd like a refund, please.", + "zh": "我想要退款。" + }, + "review": { + "prompt": "说你想退款。" + } + }, + { + "id": "A2-U07-W02", + "type": "word", + "en": "unfortunately", + "zh": "不巧;遗憾地", + "sceneWord": false, + "match": [ + [ + "unfortunately" + ] + ], + "example": { + "en": "Unfortunately, it's the last one.", + "zh": "很遗憾,这是最后一个了。" + }, + "review": { + "prompt": "用“遗憾的是”开头,说东西卖完了。" + } + }, + { + "id": "A2-U07-W03", + "type": "word", + "en": "fault", + "zh": "过错;毛病", + "sceneWord": false, + "match": [ + [ + "fault" + ] + ], + "example": { + "en": "It's not my fault.", + "zh": "这不是我的错。" + }, + "review": { + "prompt": "说这不是你的错。" + } + } + ], + "receptiveWords": [ + { + "id": "A2-U07-R01", + "en": "loose", + "zh": "松的" + }, + { + "id": "A2-U07-R02", + "en": "damage", + "zh": "损坏" + }, + { + "id": "A2-U07-R03", + "en": "guarantee", + "zh": "保修;保证" + }, + { + "id": "A2-U07-R04", + "en": "policy", + "zh": "规定;政策" + }, + { + "id": "A2-U07-R05", + "en": "scratch", + "zh": "划痕" + }, + { + "id": "A2-U07-R06", + "en": "tear", + "zh": "撕破的口子" + }, + { + "id": "A2-U07-R07", + "en": "handle", + "zh": "把手" + }, + { + "id": "A2-U07-R08", + "en": "shut", + "zh": "关上" + }, + { + "id": "A2-U07-R09", + "en": "screw", + "zh": "螺丝" + }, + { + "id": "A2-U07-R10", + "en": "bend", + "zh": "弯曲" + }, + { + "id": "A2-U07-R11", + "en": "burn", + "zh": "烧坏" + }, + { + "id": "A2-U07-R12", + "en": "dust", + "zh": "灰尘" + }, + { + "id": "A2-U07-R13", + "en": "smooth", + "zh": "光滑的" + }, + { + "id": "A2-U07-R14", + "en": "shape", + "zh": "形状" + }, + { + "id": "A2-U07-R15", + "en": "satisfy", + "zh": "使满意" + }, + { + "id": "A2-U07-R16", + "en": "claim", + "zh": "声称" + }, + { + "id": "A2-U07-R17", + "en": "admit", + "zh": "承认" + }, + { + "id": "A2-U07-R18", + "en": "apparently", + "zh": "看来;据说" + }, + { + "id": "A2-U07-R19", + "en": "fail", + "zh": "失败;出故障" + }, + { + "id": "A2-U07-R20", + "en": "error", + "zh": "错误" + }, + { + "id": "A2-U07-R21", + "en": "correctly", + "zh": "正确地" + }, + { + "id": "A2-U07-R22", + "en": "click", + "zh": "点击" + }, + { + "id": "A2-U07-R23", + "en": "folder", + "zh": "文件夹" + }, + { + "id": "A2-U07-R24", + "en": "bug", + "zh": "程序错误" + }, + { + "id": "A2-U07-R25", + "en": "bulb", + "zh": "灯泡" + }, + { + "id": "A2-U07-R26", + "en": "chain", + "zh": "链子" + }, + { + "id": "A2-U07-R27", + "en": "frame", + "zh": "框架" + }, + { + "id": "A2-U07-R28", + "en": "instant", + "zh": "立即的" + }, + { + "id": "A2-U07-R29", + "en": "delivery", + "zh": "送货" + }, + { + "id": "A2-U07-R30", + "en": "package", + "zh": "包裹" + }, + { + "id": "A2-U07-R31", + "en": "parcel", + "zh": "包裹" + }, + { + "id": "A2-U07-R32", + "en": "tie", + "zh": "领带" + }, + { + "id": "A2-U07-R33", + "en": "uniform", + "zh": "制服" + }, + { + "id": "A2-U07-R34", + "en": "tape", + "zh": "胶带" + }, + { + "id": "A2-U07-R35", + "en": "rope", + "zh": "绳子" + }, + { + "id": "A2-U07-R36", + "en": "comb", + "zh": "梳子" + }, + { + "id": "A2-U07-R37", + "en": "pack", + "zh": "包;一包" + }, + { + "id": "A2-U07-R38", + "en": "bookcase", + "zh": "书柜" + }, + { + "id": "A2-U07-R39", + "en": "bookshop", + "zh": "书店" + }, + { + "id": "A2-U07-R40", + "en": "drugstore", + "zh": "药妆店" + }, + { + "id": "A2-U07-R41", + "en": "armchair", + "zh": "扶手椅" + }, + { + "id": "A2-U07-R42", + "en": "bookshelf", + "zh": "书架" + }, + { + "id": "A2-U07-R43", + "en": "cooker", + "zh": "炉灶" + }, + { + "id": "A2-U07-R44", + "en": "drawer", + "zh": "抽屉" + }, + { + "id": "A2-U07-R45", + "en": "furniture", + "zh": "家具" + }, + { + "id": "A2-U07-R46", + "en": "refrigerator", + "zh": "冰箱" + }, + { + "id": "A2-U07-R47", + "en": "sink", + "zh": "水槽" + }, + { + "id": "A2-U07-R48", + "en": "stove", + "zh": "炉子" + }, + { + "id": "A2-U07-R49", + "en": "tap", + "zh": "水龙头" + }, + { + "id": "A2-U07-R50", + "en": "wood", + "zh": "木头" + }, + { + "id": "A2-U07-R51", + "en": "cleaner", + "zh": "清洁工;清洁剂" + }, + { + "id": "A2-U07-R52", + "en": "assistant", + "zh": "助手;店员" + }, + { + "id": "A2-U07-R53", + "en": "clerk", + "zh": "职员" + }, + { + "id": "A2-U07-R54", + "en": "member", + "zh": "会员" + }, + { + "id": "A2-U07-R55", + "en": "sample", + "zh": "样品" + }, + { + "id": "A2-U07-R56", + "en": "original", + "zh": "原来的" + }, + { + "id": "A2-U07-R57", + "en": "used", + "zh": "用过的;二手的" + }, + { + "id": "A2-U07-R58", + "en": "unhappy", + "zh": "不高兴的" + }, + { + "id": "A2-U07-R59", + "en": "perfectly", + "zh": "完全地" + }, + { + "id": "A2-U07-R60", + "en": "proper", + "zh": "合适的" + }, + { + "id": "A2-U07-R61", + "en": "headphones", + "zh": "耳机" + }, + { + "id": "A2-U07-R62", + "en": "trousers", + "zh": "裤子" + } + ], + "segments": [ + { + "id": "A2-U07-S1", + "title": "说明问题", + "minutes": 13, + "itemIds": [ + "A2-U07-P04", + "A2-U07-P05", + "A2-U07-P06", + "A2-U07-P12" + ], + "listening": { + "text": "Hello. What's wrong with it? I bought this shirt on Saturday, and there's a hole in it. Also, a button is missing. And these headphones stopped working after two days. Oh, I'm sorry. Let me see. Yes, the handle on this bag is loose too.", + "question": "衬衫有什么问题?", + "options": [ + "有个洞,还少了扣子", + "太紧了", + "颜色不对" + ] + }, + "speaking": [ + { + "text": "What's wrong with it?" + }, + { + "text": "There's a hole in it." + }, + { + "text": "A button is missing.", + "tip": "missing 重音在前" + }, + { + "text": "It stopped working after two days." + }, + { + "text": "The handle is loose.", + "tip": "loose 末尾是 /s/,不是 /z/" + } + ], + "reading": { + "text": "Hi Lily,\nI need your help! I bought an armchair online, and it arrived today. Apparently it's new, but there's a scratch on the wood, and one screw is missing. The shape is fine, but one leg is loose, so I can't sit on it. Also, the drawer in my new bookcase doesn't shut. What's wrong with this shop? What should I do?\nAnna", + "question": "Anna 的扶手椅有什么问题?", + "options": [ + "木头上有划痕,少了一颗螺丝", + "颜色不对", + "太大了" + ] + }, + "writing": { + "prompt": "写两句话:说衬衫上有个洞,还少了一颗扣子。", + "example": "There's a hole in it. A button is missing.", + "itemIds": [ + "A2-U07-P04", + "A2-U07-P05" + ] + }, + "independent": { + "prompt": "用英语说你的耳机用了两天就坏了,而且线松了,再问店员能不能看看是什么问题。", + "itemIds": [ + "A2-U07-P06", + "A2-U07-P12" + ] + } + }, + { + "id": "A2-U07-S2", + "title": "要求退换", + "minutes": 13, + "itemIds": [ + "A2-U07-P01", + "A2-U07-P02", + "A2-U07-P03", + "A2-U07-P07", + "A2-U07-P08", + "A2-U07-W01" + ], + "listening": { + "text": "Hi. I'd like to return this jacket. I bought it here last week. Here's my receipt. What's the problem? It's too tight. Can I exchange it for a bigger size? Sorry, we don't have a bigger size. Then can I get my money back? Sure, we can give you a refund.", + "question": "顾客为什么最后要退钱?", + "options": [ + "没有大一号的", + "外套坏了", + "颜色不喜欢" + ] + }, + "speaking": [ + { + "text": "I'd like to return this." + }, + { + "text": "I bought it here last week." + }, + { + "text": "Here's my receipt." + }, + { + "text": "Can I exchange it for a bigger size?" + }, + { + "text": "Can I get my money back?" + }, + { + "text": "I'd like a refund, please.", + "tip": "refund 重音在前" + } + ], + "reading": { + "text": "Our return policy\n· You can return or exchange products within 30 days.\n· Please bring your receipt. Without a receipt, we can only give you store credit.\n· Items must be in their original package. We can't take back used tights or swimsuits.\n· For online orders, you can send the parcel back for free. We give you your money back within 5 days of delivery.\n· Sale items: exchange only, no refund.", + "question": "没有小票会怎样?", + "options": [ + "只能换店内积分", + "可以全额退款", + "不能退换" + ] + }, + "writing": { + "prompt": "写两句话:说你想退这个,这是你的小票。", + "example": "I'd like to return this. Here's my receipt.", + "itemIds": [ + "A2-U07-P01", + "A2-U07-P08" + ] + }, + "independent": { + "prompt": "用英语说你上周在这里买的外套太小,问能不能换大一号,不行的话能不能退钱。", + "itemIds": [ + "A2-U07-P07", + "A2-U07-P02", + "A2-U07-P03", + "A2-U07-W01" + ] + } + }, + { + "id": "A2-U07-S3", + "title": "没有小票怎么办", + "minutes": 12, + "itemIds": [ + "A2-U07-P09", + "A2-U07-P10", + "A2-U07-P11", + "A2-U07-W02", + "A2-U07-W03" + ], + "listening": { + "text": "This coffee machine stopped working. It was a present, so I don't have the receipt. Unfortunately, without a receipt we can't give you a refund. But it's not my fault! Can you repair it? We can send it for repair. It takes two weeks. Can I have a new one instead? OK, because it's under guarantee.", + "question": "为什么店员最后同意换新的?", + "options": [ + "还在保修期内", + "顾客找到了小票", + "店员弄坏的" + ] + }, + "speaking": [ + { + "text": "Can you repair it?" + }, + { + "text": "Can I have a new one instead?" + }, + { + "text": "It was a present." + }, + { + "text": "Unfortunately, I don't have the receipt." + }, + { + "text": "It's not my fault." + } + ], + "reading": { + "text": "Dear Customer Service,\nLast month my sister gave me a lamp. It was a present, so I don't have the receipt. Yesterday it stopped working, and there was a smell of burning. It's not my fault: I used it correctly. The box says there is a two-year guarantee. Can you repair it, or can I have a new one instead? Unfortunately, I can't send you the original box.\nBen Wang", + "question": "Ben 为什么没有小票?", + "options": [ + "吹风机是姐姐送的", + "小票丢了", + "在网上买的" + ] + }, + "writing": { + "prompt": "写两句话:说这是别人送的礼物,问能不能换个新的。", + "example": "It was a present. Can I have a new one instead?", + "itemIds": [ + "A2-U07-P11", + "A2-U07-P10" + ] + }, + "independent": { + "prompt": "用英语说很遗憾你没有小票,但这不是你的错,并问店员能不能修。", + "itemIds": [ + "A2-U07-W02", + "A2-U07-W03", + "A2-U07-P09" + ] + } + } + ], + "scenes": [ + { + "id": "A2-U07-C1", + "kind": "main", + "title": "退换衣服", + "learnerRole": "顾客", + "aiRole": "服装店店员", + "setting": "你上周买的外套有问题,你带着小票回到商店。", + "turns": [ + { + "ai": "Hello. How can I help you?", + "goal": "说你想退这件外套,是上周在这里买的", + "model": "I'd like to return this jacket. I bought it here last week.", + "zh": "我想退这件外套,是上周在这里买的。", + "itemIds": [ + "A2-U07-P01", + "A2-U07-P07" + ] + }, + { + "ai": "What's wrong with it?", + "goal": "说上面有个洞,还少了一颗扣子", + "model": "There's a hole in it, and a button is missing.", + "zh": "上面有个洞,还少了一颗扣子。", + "itemIds": [ + "A2-U07-P04", + "A2-U07-P05" + ] + }, + { + "ai": "Oh, I'm sorry. Do you have the receipt?", + "goal": "递上小票", + "model": "Yes, here's my receipt.", + "zh": "有,这是我的小票。", + "itemIds": [ + "A2-U07-P08" + ] + }, + { + "ai": "We can give you a new jacket.", + "goal": "问能不能换大一号,因为原来的也有点松", + "model": "Can I exchange it for a bigger size? This one is a bit loose, but the arms are short.", + "zh": "能换大一号的吗?这件有点松,但袖子短。", + "itemIds": [ + "A2-U07-P02" + ] + }, + { + "ai": "Sorry, we don't have a bigger size.", + "goal": "问能不能退钱", + "model": "Then can I get my money back?", + "zh": "那能退钱吗?", + "itemIds": [ + "A2-U07-P03" + ] + }, + { + "ai": "Yes, of course. I can give you a refund.", + "goal": "道谢", + "model": "Great, thank you.", + "zh": "太好了,谢谢。", + "itemIds": [] + } + ] + }, + { + "id": "A2-U07-C2", + "kind": "variant", + "title": "没有小票的礼物", + "learnerRole": "顾客", + "aiRole": "电器店店员", + "setting": "朋友送你的咖啡机坏了,你没有小票。", + "turns": [ + { + "ai": "Hi there. What's the problem?", + "goal": "说咖啡机用了两天就坏了", + "model": "This coffee machine stopped working after two days.", + "zh": "这台咖啡机用了两天就坏了。", + "itemIds": [ + "A2-U07-P06" + ] + }, + { + "ai": "Do you have the receipt?", + "goal": "说这是礼物,很遗憾没有小票", + "model": "It was a present, so unfortunately I don't have the receipt.", + "zh": "这是礼物,所以很遗憾,我没有小票。", + "itemIds": [ + "A2-U07-P11", + "A2-U07-W02" + ] + }, + { + "ai": "Hmm. Did you drop it?", + "goal": "说不是你的错", + "model": "No, it's not my fault. I used it correctly.", + "zh": "没有,这不是我的错。我是按说明用的。", + "itemIds": [ + "A2-U07-W03" + ] + }, + { + "ai": "OK. We can't give you a refund without a receipt.", + "goal": "问能不能修", + "model": "Can you repair it?", + "zh": "能修吗?", + "itemIds": [ + "A2-U07-P09" + ] + }, + { + "ai": "Yes, but it takes two weeks.", + "goal": "问能不能直接换个新的", + "model": "Can I have a new one instead?", + "zh": "能换个新的吗?", + "itemIds": [ + "A2-U07-P10" + ] + }, + { + "ai": "OK, it's still under guarantee, so that's fine.", + "goal": "道谢", + "model": "Thank you so much.", + "zh": "太感谢了。", + "itemIds": [] + } + ] + }, + { + "id": "A2-U07-C3", + "kind": "variant", + "title": "帮朋友问东西怎么了", + "learnerRole": "朋友", + "aiRole": "朋友", + "setting": "朋友网购的台灯坏了,你帮他想办法。", + "turns": [ + { + "ai": "My new lamp doesn't work.", + "goal": "问台灯怎么了", + "model": "Oh no. What's wrong with it?", + "zh": "哦不,它怎么了?", + "itemIds": [ + "A2-U07-P12" + ] + }, + { + "ai": "The bulb is fine, but it doesn't turn on. And one screw is missing.", + "goal": "问是在哪里买的", + "model": "Where did you buy it?", + "zh": "你在哪里买的?", + "itemIds": [] + }, + { + "ai": "I bought it online last week.", + "goal": "建议他退货或要求退款", + "model": "Send it back. You can ask for a refund.", + "zh": "退回去吧。你可以要求退款。", + "itemIds": [ + "A2-U07-W01" + ] + }, + { + "ai": "Can I just ask for a new one?", + "goal": "说可以,教他说“能换个新的吗”", + "model": "Sure. Say, \"Can I have a new one instead?\"", + "zh": "当然,就说“能换个新的吗?”", + "itemIds": [ + "A2-U07-P10" + ] + }, + { + "ai": "Good idea. And I still have the receipt.", + "goal": "说那就好办了", + "model": "Great, then it's easy.", + "zh": "太好了,那就好办了。", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "A2-U07-T1", + "sceneId": "A2-U07-C1", + "goal": "带着小票退换有问题的衣服", + "itemIds": [ + "A2-U07-P01", + "A2-U07-P07", + "A2-U07-P04", + "A2-U07-P05", + "A2-U07-P08", + "A2-U07-P02", + "A2-U07-P03" + ], + "slots": [ + "问题", + "要求", + "结果" + ] + }, + { + "id": "A2-U07-T2", + "sceneId": "A2-U07-C2", + "goal": "没有小票时要求维修或换新", + "itemIds": [ + "A2-U07-P06", + "A2-U07-P11", + "A2-U07-W02", + "A2-U07-W03", + "A2-U07-P09", + "A2-U07-P10" + ], + "slots": [ + "问题", + "理由", + "要求" + ] + }, + { + "id": "A2-U07-T3", + "sceneId": "A2-U07-C3", + "goal": "帮朋友处理网购坏掉的东西", + "itemIds": [ + "A2-U07-P12", + "A2-U07-W01", + "A2-U07-P10" + ], + "slots": [ + "问题", + "建议" + ] + } + ], + "materials": [ + { + "id": "A2-U07-M1", + "mode": "listening", + "title": "电台节目:退货的小窍门", + "text": "Welcome back to Money Talk. Today, returns. Several people asked us: what can you do if a product fails? First, don't throw away your receipt. Keep it in a drawer or take a photo of it. Many shops only give store credit without one, and some shops don't satisfy their customers at all. Second, check the guarantee. Most electric products, like cookers, stoves and refrigerators, have a guarantee of one or two years. If the product fails during this time, the shop must repair it or give you a new one. Also, don't use the product if it's damaged. If your new furniture has a scratch, or the heating in your new flat doesn't work, call the shop and send photos. Sam bought a used bookshelf online. The seller claimed it was perfectly fine, but the wood was broken. Sam sent the photos, and the seller admitted his error and gave Sam a full refund. Finally, be polite but strong. Shop assistants and clerks are there to help you. Ask to speak to the manager if you need to.", + "glosses": { + "seller": "卖家" + }, + "questions": [ + { + "type": "gist", + "question": "节目主要讲什么?", + "options": [ + "退货和维修时要注意什么", + "怎样便宜地买家具", + "怎样修电器" + ] + }, + { + "type": "detail", + "question": "主持人建议怎样保存小票?", + "options": [ + "放在抽屉里或拍照", + "交给店员", + "贴在产品上" + ] + }, + { + "type": "inference", + "question": "Sam 为什么拿到了全额退款?", + "options": [ + "他有照片证明东西是坏的", + "他找了经理", + "卖家是他的朋友" + ] + } + ] + }, + { + "id": "A2-U07-M2", + "mode": "reading", + "title": "论坛:网购的东西坏了", + "text": "Help! My online order is a mess\nPosted by Mia\nI ordered a pack of kitchen things from a website: a cleaner for the sink, a new tap, some tape, a rope and a comb (don't ask!). The delivery was late, and when the package came, the box was wet. The tap was bent, there was dust on the tape, and the rope was missing. I clicked \"return\" on the website, but there was an error, and nothing happened. What should I do?\nReply from Tom\nThat happened to me too. Apparently their website has a bug. Don't click again. Send them an email with photos. Keep the photos in a folder on your computer. Say what is missing and what is damaged.\nReply from Nina\nBe careful: some websites have a strange policy. You can return things only in the original package. Keep the box, even if it's wet!\nReply from Mia\nThanks, both of you! I sent an email, and they gave me an instant refund. Unfortunately, I still don't have a rope.", + "glosses": { + "website": "网站", + "mess": "一团糟" + }, + "questions": [ + { + "type": "gist", + "question": "Mia 为什么发帖?", + "options": [ + "网购的东西有问题,退货也不成功", + "想买一条绳子", + "想推荐一个网站" + ] + }, + { + "type": "detail", + "question": "水龙头有什么问题?", + "options": [ + "弯了", + "丢了", + "脏了" + ] + }, + { + "type": "inference", + "question": "Nina 为什么让 Mia 留着湿盒子?", + "options": [ + "有的网站只收原包装的退货", + "盒子很贵", + "盒子可以再用" + ] + } + ] + }, + { + "id": "A2-U07-M3", + "mode": "reading", + "title": "小店的故事", + "text": "The little repair shop\nMr Chen has a small shop near the bookshop on Green Street. He's not a clerk in a big store; he repairs things. People bring him broken chairs, lamps with a bad bulb, bags with a broken chain, and picture frames. Last week a woman brought him an old tie. \"It was my father's,\" she said. \"There's a tear in it.\" Mr Chen fixed it in one hour. The next day, a man from the drugstore brought a pair of trousers.\n\"Today people don't repair things,\" he says. \"If a drawer doesn't shut, they buy new furniture. If there's a problem with a school uniform or a pair of tights, they throw it away. But a lot of things only need a new screw or a little glue.\"\nHis shop is not big, but he has many members in his \"repair club\". They pay ten dollars a year, and he fixes their things for half the price. He also has samples of wood in the window, so you can see how smooth they are. Some customers are unhappy when a repair takes a long time, but he says a proper repair needs time. \"It's not only about money,\" he says. \"When I give people back their original things, they're so happy. I love that.\"", + "glosses": { + "glue": "胶水" + }, + "questions": [ + { + "type": "gist", + "question": "这篇文章主要讲什么?", + "options": [ + "一位修东西的师傅和他的小店", + "怎样开一家书店", + "怎样买便宜家具" + ] + }, + { + "type": "detail", + "question": "修理俱乐部的会员一年交多少钱?", + "options": [ + "10 美元", + "30 美元", + "60 美元" + ] + }, + { + "type": "inference", + "question": "陈师傅为什么喜欢这份工作?", + "options": [ + "看到别人拿回原来的东西很开心", + "能赚很多钱", + "工作很轻松" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "说清问题", + "bands": [ + "只说东西坏了", + "说清是什么问题、什么时候买的", + "说清问题、购买时间并出示凭证" + ], + "pass": 1 + }, + { + "name": "提出要求", + "bands": [ + "没有提出要求", + "提出退、换或修中的一种", + "提出要求,被拒后能换一种方案" + ], + "pass": 1 + } + ] + }, + "excluded": [ + { + "en": "warranty", + "reason": "B1;用 guarantee 表达" + }, + { + "en": "faulty", + "reason": "B2;用 doesn't work 表达" + } + ] +} diff --git a/kouyu_english/assets/courses/A2/A2-U08.json b/kouyu_english/assets/courses/A2/A2-U08.json new file mode 100644 index 0000000..cb0a619 --- /dev/null +++ b/kouyu_english/assets/courses/A2/A2-U08.json @@ -0,0 +1,1176 @@ +{ + "schemaVersion": 1, + "id": "A2-U08", + "revision": 1, + "level": "A2", + "title": "行程出问题", + "categories": [ + "旅行" + ], + "canDo": "误车、延误、换乘、改票", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "oxford", + "brighton", + "florence", + "milan", + "lakeside" + ], + "grammar": [ + { + "id": "65", + "use": "active" + }, + { + "id": "64", + "use": "active" + }, + { + "id": "69", + "use": "active" + }, + { + "id": "61", + "use": "active" + }, + { + "id": "241", + "use": "active", + "reason": "Which gate ...? 是在车站机场问信息的常用问法" + }, + { + "id": "150", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A2-U08-P01", + "type": "phrase", + "en": "I missed my train.", + "zh": "我误了火车。", + "sceneWord": false, + "match": [ + [ + "missed my", + "missed the" + ] + ], + "example": { + "en": "We missed the last bus.", + "zh": "我们没赶上末班车。" + }, + "review": { + "prompt": "说你误了飞机。" + } + }, + { + "id": "A2-U08-P02", + "type": "phrase", + "en": "My flight is delayed.", + "zh": "我的航班延误了。", + "sceneWord": true, + "sceneReason": "delay 作动词为 B1,但 delayed 是出行广播里最常听到的词", + "match": [ + [ + "is delayed", + "was delayed" + ] + ], + "example": { + "en": "The train was delayed because of the snow.", + "zh": "火车因为下雪晚点了。" + }, + "review": { + "prompt": "说你的火车晚点了。" + } + }, + { + "id": "A2-U08-P03", + "type": "phrase", + "en": "How long is the delay?", + "zh": "要晚多久?", + "sceneWord": false, + "match": [ + [ + "how long is the delay" + ] + ], + "example": { + "en": "Excuse me, how long is the delay?", + "zh": "打扰一下,要晚多久?" + }, + "review": { + "prompt": "问工作人员飞机要延误多久。" + } + }, + { + "id": "A2-U08-P04", + "type": "phrase", + "en": "When is the next train?", + "zh": "下一班火车是什么时候?", + "sceneWord": false, + "match": [ + [ + "the next train", + "the next bus", + "the next flight" + ] + ], + "example": { + "en": "When is the next bus to the airport?", + "zh": "下一班去机场的公交车是几点?" + }, + "review": { + "prompt": "问下一班飞机什么时候起飞。" + } + }, + { + "id": "A2-U08-P05", + "type": "phrase", + "en": "Can I change my ticket?", + "zh": "我能改票吗?", + "sceneWord": false, + "match": [ + [ + "change my ticket", + "change our tickets" + ] + ], + "example": { + "en": "Can we change our tickets to Friday?", + "zh": "我们能把票改到周五吗?" + }, + "review": { + "prompt": "问能不能把票改到明天。" + } + }, + { + "id": "A2-U08-P06", + "type": "phrase", + "en": "Do I have to pay extra?", + "zh": "要另外加钱吗?", + "sceneWord": false, + "match": [ + [ + "pay extra", + "dollars extra" + ] + ], + "example": { + "en": "You have to pay ten dollars extra.", + "zh": "你得另付十美元。" + }, + "review": { + "prompt": "问改票要不要加钱。" + } + }, + { + "id": "A2-U08-P07", + "type": "phrase", + "en": "Where do I change trains?", + "zh": "我在哪里换乘?", + "sceneWord": false, + "match": [ + [ + "change trains", + "change buses" + ] + ], + "example": { + "en": "You change trains at Central Station.", + "zh": "你在中央车站换乘。" + }, + "review": { + "prompt": "问在哪里换公交车。" + } + }, + { + "id": "A2-U08-P08", + "type": "phrase", + "en": "I'm on the wrong train.", + "zh": "我坐错车了。", + "sceneWord": false, + "match": [ + [ + "the wrong train", + "the wrong bus" + ] + ], + "example": { + "en": "Oh no, we're on the wrong bus!", + "zh": "哦不,我们坐错公交车了!" + }, + "review": { + "prompt": "说你坐错公交车了。" + } + }, + { + "id": "A2-U08-P09", + "type": "phrase", + "en": "Will I get there in time?", + "zh": "我能按时到吗?", + "sceneWord": false, + "match": [ + [ + "in time" + ] + ], + "example": { + "en": "Don't worry. You'll get there in time.", + "zh": "别担心,你能按时到。" + }, + "review": { + "prompt": "问朋友你们能不能赶上。" + } + }, + { + "id": "A2-U08-P10", + "type": "phrase", + "en": "What should I do now?", + "zh": "我现在该怎么办?", + "sceneWord": false, + "match": [ + [ + "what should i do", + "what should we do" + ] + ], + "example": { + "en": "The last train is gone. What should we do?", + "zh": "末班车走了,我们该怎么办?" + }, + "review": { + "prompt": "问工作人员你们现在该怎么办。" + } + }, + { + "id": "A2-U08-P11", + "type": "phrase", + "en": "Which gate does it leave from?", + "zh": "从哪个登机口出发?", + "sceneWord": false, + "match": [ + [ + "leave from", + "leaves from" + ] + ], + "example": { + "en": "The train leaves from platform 4.", + "zh": "火车从 4 号站台出发。" + }, + "review": { + "prompt": "问火车从哪个站台出发。" + } + }, + { + "id": "A2-U08-W01", + "type": "word", + "en": "passenger", + "zh": "乘客", + "sceneWord": false, + "match": [ + [ + "passenger", + "passengers" + ] + ], + "example": { + "en": "All passengers, please go to gate 12.", + "zh": "请所有乘客前往 12 号登机口。" + }, + "review": { + "prompt": "说车上有很多乘客。" + } + }, + { + "id": "A2-U08-W02", + "type": "word", + "en": "journey", + "zh": "旅程", + "sceneWord": false, + "match": [ + [ + "journey" + ] + ], + "example": { + "en": "The journey takes three hours.", + "zh": "这段路程要三个小时。" + }, + "review": { + "prompt": "说这段旅程很长。" + } + }, + { + "id": "A2-U08-W03", + "type": "word", + "en": "strike", + "zh": "罢工", + "sceneWord": false, + "match": [ + [ + "strike" + ] + ], + "example": { + "en": "There's a train strike today.", + "zh": "今天火车罢工。" + }, + "review": { + "prompt": "说明天公交车罢工。" + } + } + ], + "receptiveWords": [ + { + "id": "A2-U08-R01", + "en": "fog", + "zh": "雾" + }, + { + "id": "A2-U08-R02", + "en": "pilot", + "zh": "飞行员" + }, + { + "id": "A2-U08-R03", + "en": "captain", + "zh": "机长" + }, + { + "id": "A2-U08-R04", + "en": "guard", + "zh": "列车员;警卫" + }, + { + "id": "A2-U08-R05", + "en": "visitor", + "zh": "游客;访客" + }, + { + "id": "A2-U08-R06", + "en": "roundabout", + "zh": "环岛" + }, + { + "id": "A2-U08-R07", + "en": "float", + "zh": "漂浮" + }, + { + "id": "A2-U08-R08", + "en": "breeze", + "zh": "微风" + }, + { + "id": "A2-U08-R09", + "en": "earthquake", + "zh": "地震" + }, + { + "id": "A2-U08-R10", + "en": "flood", + "zh": "洪水" + }, + { + "id": "A2-U08-R11", + "en": "thunderstorm", + "zh": "雷暴" + }, + { + "id": "A2-U08-R12", + "en": "apart", + "zh": "相隔;分开" + }, + { + "id": "A2-U08-R13", + "en": "appear", + "zh": "出现" + }, + { + "id": "A2-U08-R14", + "en": "area", + "zh": "地区" + }, + { + "id": "A2-U08-R15", + "en": "attempt", + "zh": "尝试" + }, + { + "id": "A2-U08-R16", + "en": "attention", + "zh": "注意" + }, + { + "id": "A2-U08-R17", + "en": "automatically", + "zh": "自动地" + }, + { + "id": "A2-U08-R18", + "en": "avoid", + "zh": "避免" + }, + { + "id": "A2-U08-R19", + "en": "brake", + "zh": "刹车" + }, + { + "id": "A2-U08-R20", + "en": "continue", + "zh": "继续" + }, + { + "id": "A2-U08-R21", + "en": "control", + "zh": "控制" + }, + { + "id": "A2-U08-R22", + "en": "cross", + "zh": "穿过" + }, + { + "id": "A2-U08-R23", + "en": "disappear", + "zh": "消失" + }, + { + "id": "A2-U08-R24", + "en": "enter", + "zh": "进入" + }, + { + "id": "A2-U08-R25", + "en": "escape", + "zh": "逃离" + }, + { + "id": "A2-U08-R26", + "en": "express", + "zh": "快车" + }, + { + "id": "A2-U08-R27", + "en": "forward", + "zh": "向前" + }, + { + "id": "A2-U08-R28", + "en": "gradually", + "zh": "逐渐地" + }, + { + "id": "A2-U08-R29", + "en": "heavily", + "zh": "大量地;猛烈地" + }, + { + "id": "A2-U08-R30", + "en": "international", + "zh": "国际的" + }, + { + "id": "A2-U08-R31", + "en": "lead", + "zh": "带领" + }, + { + "id": "A2-U08-R32", + "en": "low", + "zh": "低的" + }, + { + "id": "A2-U08-R33", + "en": "major", + "zh": "主要的" + }, + { + "id": "A2-U08-R34", + "en": "national", + "zh": "国家的" + }, + { + "id": "A2-U08-R35", + "en": "official", + "zh": "官方的" + }, + { + "id": "A2-U08-R36", + "en": "pass", + "zh": "通行证;经过" + }, + { + "id": "A2-U08-R37", + "en": "position", + "zh": "位置" + }, + { + "id": "A2-U08-R38", + "en": "reach", + "zh": "到达" + }, + { + "id": "A2-U08-R39", + "en": "recently", + "zh": "最近" + }, + { + "id": "A2-U08-R40", + "en": "remain", + "zh": "保持;留下" + }, + { + "id": "A2-U08-R41", + "en": "roughly", + "zh": "大约" + }, + { + "id": "A2-U08-R42", + "en": "stranger", + "zh": "陌生人" + }, + { + "id": "A2-U08-R43", + "en": "panic", + "zh": "惊慌" + }, + { + "id": "A2-U08-R44", + "en": "system", + "zh": "系统" + }, + { + "id": "A2-U08-R45", + "en": "track", + "zh": "轨道" + }, + { + "id": "A2-U08-R46", + "en": "wander", + "zh": "闲逛" + }, + { + "id": "A2-U08-R47", + "en": "wide", + "zh": "宽的" + }, + { + "id": "A2-U08-R48", + "en": "connection", + "zh": "联运;换乘" + }, + { + "id": "A2-U08-R49", + "en": "announcement", + "zh": "广播;通知" + }, + { + "id": "A2-U08-R50", + "en": "coach", + "zh": "长途汽车" + }, + { + "id": "A2-U08-R51", + "en": "counter", + "zh": "柜台" + }, + { + "id": "A2-U08-R52", + "en": "suddenly", + "zh": "突然" + }, + { + "id": "A2-U08-R53", + "en": "airline", + "zh": "航空公司" + } + ], + "segments": [ + { + "id": "A2-U08-S1", + "title": "误车与延误", + "minutes": 13, + "itemIds": [ + "A2-U08-P01", + "A2-U08-P02", + "A2-U08-P03", + "A2-U08-P04", + "A2-U08-W03" + ], + "listening": { + "text": "Excuse me. I missed my train to Rome. When is the next train? The next one is at two. But there's a strike today, so it's delayed. How long is the delay? Roughly one hour. So it leaves at about three. OK, thanks.", + "question": "下一班火车大约几点出发?", + "options": [ + "三点左右", + "两点", + "一点" + ] + }, + "speaking": [ + { + "text": "I missed my train." + }, + { + "text": "My flight is delayed.", + "tip": "delayed 读作 /dɪˈleɪd/" + }, + { + "text": "How long is the delay?" + }, + { + "text": "When is the next train?" + }, + { + "text": "There's a train strike today.", + "tip": "strike 里的 str 连在一起读" + } + ], + "reading": { + "text": "Attention, please. This is an announcement for all passengers. Because of the national train strike, the 10:15 express train to Paris is delayed. The next train leaves at 12:30. Passengers for the international connection to London, please go to the counter in the main hall. We are sorry for any problems on your journey.", + "question": "去伦敦的乘客应该去哪里?", + "options": [ + "大厅里的柜台", + "12 号站台", + "售票机" + ] + }, + "writing": { + "prompt": "写两句话:说你误了火车,问下一班是什么时候。", + "example": "I missed my train. When is the next train?", + "itemIds": [ + "A2-U08-P01", + "A2-U08-P04" + ] + }, + "independent": { + "prompt": "用英语说今天罢工,你的航班延误了,并问要延误多久。", + "itemIds": [ + "A2-U08-W03", + "A2-U08-P02", + "A2-U08-P03" + ] + } + }, + { + "id": "A2-U08-S2", + "title": "改票与换乘", + "minutes": 13, + "itemIds": [ + "A2-U08-P05", + "A2-U08-P06", + "A2-U08-P07", + "A2-U08-P11", + "A2-U08-W01", + "A2-U08-W02" + ], + "listening": { + "text": "Hello. Can I change my ticket to tomorrow? Yes, you can. Do I have to pay extra? Yes, fifteen dollars. OK. And where do I change trains? You change at Green Park. The journey is about four hours. Which platform does it leave from? Platform six.", + "question": "改票要另付多少钱?", + "options": [ + "十五美元", + "五十美元", + "不用付钱" + ] + }, + "speaking": [ + { + "text": "Can I change my ticket?" + }, + { + "text": "Do I have to pay extra?" + }, + { + "text": "Where do I change trains?" + }, + { + "text": "Which gate does it leave from?" + }, + { + "text": "The journey takes three hours.", + "tip": "journey 的 jour 读 /dʒɜː/" + }, + { + "text": "There are a lot of passengers." + } + ], + "reading": { + "text": "Train ticket\nFrom: Beijing To: Shanghai\nDate: 18 May Time: 09:00\nSeat: Car 5, Seat 12A\nChange trains at: no change. This is a direct train.\nThe journey takes roughly 5 hours.\nYou can change your ticket before the train leaves. You have to pay 5% extra. Passengers must enter the station 20 minutes before the train leaves.", + "question": "改票要另付多少?", + "options": [ + "票价的 5%", + "5 元", + "不用加钱" + ] + }, + "writing": { + "prompt": "写两句话:问能不能改票,要不要另外加钱。", + "example": "Can I change my ticket? Do I have to pay extra?", + "itemIds": [ + "A2-U08-P05", + "A2-U08-P06" + ] + }, + "independent": { + "prompt": "用英语问在哪里换乘、从哪个站台出发,并说这段旅程很长、乘客很多。", + "itemIds": [ + "A2-U08-P07", + "A2-U08-P11", + "A2-U08-W02", + "A2-U08-W01" + ] + } + }, + { + "id": "A2-U08-S3", + "title": "坐错车了", + "minutes": 12, + "itemIds": [ + "A2-U08-P08", + "A2-U08-P09", + "A2-U08-P10" + ], + "listening": { + "text": "Excuse me, is this the train to Oxford? No, this train goes to Brighton. Oh no! I'm on the wrong train. What should I do now? Get off at the next station and cross the bridge. The Oxford train leaves from the other side. Will I get there in time? Yes, if you're quick.", + "question": "乘客下车后应该怎么做?", + "options": [ + "过桥去另一边坐车", + "在车站等两小时", + "坐出租车" + ] + }, + "speaking": [ + { + "text": "I'm on the wrong train." + }, + { + "text": "What should I do now?" + }, + { + "text": "Will I get there in time?" + } + ], + "reading": { + "text": "Hi Mia,\nI'm so sorry, I'm going to be late. I got on the wrong bus this morning, and it took me to the other side of the city! A kind stranger helped me. She said, \"Get off, cross the road and take the number 5.\" I'm on the number 5 now, but the traffic is heavy. Will I get there in time for lunch? Maybe not. What should I do? Start without me!\nSam", + "question": "Sam 为什么会迟到?", + "options": [ + "坐错了公交车", + "误了火车", + "起晚了" + ] + }, + "writing": { + "prompt": "写两句话:说你坐错车了,问现在该怎么办。", + "example": "I'm on the wrong train. What should I do now?", + "itemIds": [ + "A2-U08-P08", + "A2-U08-P10" + ] + }, + "independent": { + "prompt": "用英语说你坐错了公交车,问司机你还能不能按时到。", + "itemIds": [ + "A2-U08-P08", + "A2-U08-P09" + ] + } + } + ], + "scenes": [ + { + "id": "A2-U08-C1", + "kind": "main", + "title": "误了火车去改票", + "learnerRole": "旅客", + "aiRole": "车站工作人员", + "setting": "你因为堵车误了火车,现在在售票处想办法。", + "turns": [ + { + "ai": "Hello. How can I help you?", + "goal": "说你误了火车", + "model": "Hi. I missed my train to Rome.", + "zh": "你好,我误了去罗马的火车。", + "itemIds": [ + "A2-U08-P01" + ] + }, + { + "ai": "Oh, I'm sorry. Do you have your ticket?", + "goal": "问能不能改票", + "model": "Yes, here it is. Can I change my ticket?", + "zh": "在这里。我能改票吗?", + "itemIds": [ + "A2-U08-P05" + ] + }, + { + "ai": "Yes. There's a train at four.", + "goal": "问要不要另外加钱", + "model": "Do I have to pay extra?", + "zh": "要另外加钱吗?", + "itemIds": [ + "A2-U08-P06" + ] + }, + { + "ai": "Ten dollars. And the journey is a bit longer. You change trains at Florence.", + "goal": "问在哪里换乘、从哪个站台出发", + "model": "OK, it's a long journey. Where do I change trains, and which platform does it leave from?", + "zh": "好的,旅程挺长的。在哪里换乘?从哪个站台出发?", + "itemIds": [ + "A2-U08-P07", + "A2-U08-P11", + "A2-U08-W02" + ] + }, + { + "ai": "You change at Florence, and it leaves from platform 3.", + "goal": "问能不能按时到晚上的晚餐", + "model": "Will I get there in time for dinner?", + "zh": "我能赶上晚饭吗?", + "itemIds": [ + "A2-U08-P09" + ] + }, + { + "ai": "Yes, you'll arrive at eight.", + "goal": "道谢", + "model": "Great, thank you.", + "zh": "太好了,谢谢。", + "itemIds": [] + } + ] + }, + { + "id": "A2-U08-C2", + "kind": "variant", + "title": "航班延误", + "learnerRole": "旅客", + "aiRole": "航空公司柜台工作人员", + "setting": "机场广播说你的航班延误了,你去柜台问情况。", + "turns": [ + { + "ai": "Good afternoon. Can I help you?", + "goal": "说你的航班延误了,问要晚多久", + "model": "My flight is delayed. How long is the delay?", + "zh": "我的航班延误了,要晚多久?", + "itemIds": [ + "A2-U08-P02", + "A2-U08-P03" + ] + }, + { + "ai": "About three hours. There's a strike in Paris.", + "goal": "说你会误了在巴黎的换乘,问现在该怎么办", + "model": "Because of the strike? I'm going to miss my connection in Paris. What should I do now?", + "zh": "因为罢工吗?我会错过在巴黎的转机,现在该怎么办?", + "itemIds": [ + "A2-U08-W03", + "A2-U08-P10" + ] + }, + { + "ai": "I can put you on the next flight.", + "goal": "问下一班飞机什么时候", + "model": "When is the next flight?", + "zh": "下一班飞机是什么时候?", + "itemIds": [ + "A2-U08-P04" + ] + }, + { + "ai": "At 6 p.m. All passengers from your flight can take it.", + "goal": "问从哪个登机口出发", + "model": "OK. There are a lot of passengers. Which gate does it leave from?", + "zh": "好的,乘客很多。从哪个登机口出发?", + "itemIds": [ + "A2-U08-P11", + "A2-U08-W01" + ] + }, + { + "ai": "Gate 22.", + "goal": "道谢", + "model": "Thanks for your help.", + "zh": "谢谢你的帮忙。", + "itemIds": [] + } + ] + }, + { + "id": "A2-U08-C3", + "kind": "variant", + "title": "坐错了车", + "learnerRole": "乘客", + "aiRole": "公交司机", + "setting": "你发现车开的方向不对,去问司机。", + "turns": [ + { + "ai": "Next stop, City Park.", + "goal": "问这车是不是去机场的", + "model": "Excuse me, does this bus go to the airport?", + "zh": "打扰一下,这车去机场吗?", + "itemIds": [] + }, + { + "ai": "No, the airport bus is number 8.", + "goal": "说你坐错车了,问现在该怎么办", + "model": "Oh no, I'm on the wrong bus. What should I do now?", + "zh": "哦不,我坐错车了。现在该怎么办?", + "itemIds": [ + "A2-U08-P08", + "A2-U08-P10" + ] + }, + { + "ai": "Get off here and cross the road.", + "goal": "问下一班8路车什么时候来", + "model": "When is the next bus?", + "zh": "下一班车什么时候来?", + "itemIds": [ + "A2-U08-P04" + ] + }, + { + "ai": "Every ten minutes.", + "goal": "问能不能按时赶上飞机", + "model": "Will I get there in time? My flight is at three.", + "zh": "我能按时到吗?我的飞机三点起飞。", + "itemIds": [ + "A2-U08-P09" + ] + }, + { + "ai": "Yes, don't worry. It's only thirty minutes.", + "goal": "道谢", + "model": "Thank you so much.", + "zh": "太感谢了。", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "A2-U08-T1", + "sceneId": "A2-U08-C1", + "goal": "误车后改票并问清换乘", + "itemIds": [ + "A2-U08-P01", + "A2-U08-P05", + "A2-U08-P06", + "A2-U08-P07", + "A2-U08-P11", + "A2-U08-W02", + "A2-U08-P09" + ], + "slots": [ + "问题", + "改票", + "换乘" + ] + }, + { + "id": "A2-U08-T2", + "sceneId": "A2-U08-C2", + "goal": "航班延误时问清情况并改航班", + "itemIds": [ + "A2-U08-P02", + "A2-U08-P03", + "A2-U08-W03", + "A2-U08-P10", + "A2-U08-P04", + "A2-U08-P11", + "A2-U08-W01" + ], + "slots": [ + "延误", + "办法", + "登机口" + ] + }, + { + "id": "A2-U08-T3", + "sceneId": "A2-U08-C3", + "goal": "发现坐错车后问司机怎么办", + "itemIds": [ + "A2-U08-P08", + "A2-U08-P10", + "A2-U08-P04", + "A2-U08-P09" + ], + "slots": [ + "问题", + "办法" + ] + } + ], + "materials": [ + { + "id": "A2-U08-M1", + "mode": "listening", + "title": "机场广播与机长广播", + "text": "Attention, please. This is an announcement for passengers on flight 204 to Sydney. Because of a thunderstorm in the area, this flight is delayed. We expect it to leave at roughly 7 p.m. Please remain in the waiting area near gate 18. Passengers with international connections, please go to the airline counter. Later, on the plane: Good evening, ladies and gentlemen. This is your captain speaking. The storm is gradually moving away, and we're now in position for take-off. The pilot and I are sorry for the long wait. The weather in Sydney is low cloud and a light breeze. There may be some fog when we reach the city, but it will disappear by the morning. Please pay attention to the safety video, and keep your seat belt on. The guards on the ground are checking the tracks for the airport express train, so it continues to run tonight. We wish you a pleasant journey.", + "glosses": { + "expect": "预计", + "ladies": "女士们", + "gentlemen": "先生们", + "take-off": "起飞", + "safety": "安全", + "pleasant": "愉快的" + }, + "questions": [ + { + "type": "gist", + "question": "这两段广播主要说什么?", + "options": [ + "航班因雷暴延误,现在准备起飞", + "航班被取消了", + "悉尼发生了地震" + ] + }, + { + "type": "detail", + "question": "有国际联运的乘客应该去哪里?", + "options": [ + "航空公司柜台", + "18 号登机口", + "机场快线车站" + ] + }, + { + "type": "inference", + "question": "到达悉尼时天气可能怎样?", + "options": [ + "云低、有雾,但不会太糟", + "有暴风雨", + "下大雪" + ] + } + ] + }, + { + "id": "A2-U08-M2", + "mode": "reading", + "title": "旅行博客:一段不顺的旅程", + "text": "The worst journey of my life\nLast summer I wanted to travel from Milan to a small town in the mountains, roughly 200 kilometers apart. It was a simple plan: take the express train, then the local bus.\nFirst, there was a strike, so the express was delayed. When it finally left, it moved slowly because it was raining heavily. Then, suddenly, an official announcement said there was a flood near the track. Everyone had to get off and wait. Some visitors wandered around the station; I made an attempt to call my hotel, but my phone had no signal.\nAfter three hours, a coach took us further. The driver had to avoid several roads, so we crossed a wide river and went around a lot of roundabouts. Once, he used the brake so hard that my bag flew forward.\nWhen I reached the town, it was midnight. The hotel was closed. A stranger saw me and let me stay at her house. I didn't escape the rain that night, but I learned something: people are kind.", + "glosses": { + "kilometers": "公里", + "signal": "信号" + }, + "questions": [ + { + "type": "gist", + "question": "这篇博客主要讲什么?", + "options": [ + "作者一次困难重重的旅程", + "米兰的火车系统", + "怎样在山里找酒店" + ] + }, + { + "type": "detail", + "question": "大家为什么必须下火车?", + "options": [ + "铁轨附近发洪水了", + "司机罢工了", + "火车坏了" + ] + }, + { + "type": "inference", + "question": "作者最后学到了什么?", + "options": [ + "人们是善良的", + "不要坐火车旅行", + "一定要提前订酒店" + ] + } + ] + }, + { + "id": "A2-U08-M3", + "mode": "reading", + "title": "城市交通系统说明", + "text": "Getting around Lakeside City\nLakeside has a major bus and tram system, under computer control. Recently, the city also started a river boat. With a City Pass, you can use all of them. The pass costs 8 dollars a day and works automatically when you enter a bus or tram.\nThe tram is the fastest way to cross the city. It runs every 5 minutes during the day. At night, it runs less often, so check the times. The number 3 tram goes from the national museum toward the old town and continues to the international airport.\nIf you like slow travel, take the river boat. It floats past the old town, and it's perfect on a warm day with a light breeze.\nPlease note: when there's a storm or heavy snow, some lines may close. Official news appears on the screens at every stop. If there is an earthquake, the trams stop at once. Don't panic. Listen to the driver: he will lead you to a safe place.", + "glosses": { + "trams": "电车" + }, + "questions": [ + { + "type": "gist", + "question": "这篇文章主要介绍什么?", + "options": [ + "一座城市的公共交通怎么用", + "怎样开车游览城市", + "城市的历史" + ] + }, + { + "type": "detail", + "question": "城市通票一天多少钱?", + "options": [ + "8 美元", + "5 美元", + "3 美元" + ] + }, + { + "type": "inference", + "question": "为什么晚上要查看电车时间?", + "options": [ + "晚上车次比白天少", + "晚上票价更贵", + "晚上电车不停老城" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "说清情况", + "bands": [ + "只说“有问题”", + "说清误车、延误或坐错车", + "说清情况并说明自己的时间要求" + ], + "pass": 1 + }, + { + "name": "找到办法", + "bands": [ + "没有提出问题", + "问到下一班或改票办法", + "问清下一班、费用和换乘信息" + ], + "pass": 1 + } + ] + }, + "excluded": [ + { + "en": "cancelled", + "reason": "cancel 已在 A2-U04 教过" + }, + { + "en": "tunnel", + "reason": "B2;本单元不用" + } + ] +} diff --git a/kouyu_english/assets/courses/A2/A2-U09.json b/kouyu_english/assets/courses/A2/A2-U09.json new file mode 100644 index 0000000..76773dd --- /dev/null +++ b/kouyu_english/assets/courses/A2/A2-U09.json @@ -0,0 +1,1197 @@ +{ + "schemaVersion": 1, + "id": "A2-U09", + "revision": 1, + "level": "A2", + "title": "住宿里的问题", + "categories": [ + "旅行" + ], + "canDo": "报修、换房、提出要求", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "62", + "use": "active" + }, + { + "id": "61", + "use": "active" + }, + { + "id": "65", + "use": "active" + }, + { + "id": "250", + "use": "active", + "reason": "Could you/Could I 是向酒店提要求的礼貌说法" + }, + { + "id": "142", + "use": "active" + }, + { + "id": "39", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A2-U09-P01", + "type": "phrase", + "en": "The air conditioning isn't working.", + "zh": "空调坏了。", + "sceneWord": false, + "match": [ + [ + "isn't working", + "is not working", + "aren't working" + ] + ], + "example": { + "en": "The shower isn't working.", + "zh": "淋浴不出水了。" + }, + "review": { + "prompt": "告诉前台房间的暖气坏了。" + } + }, + { + "id": "A2-U09-P02", + "type": "phrase", + "en": "It's been like this since yesterday.", + "zh": "从昨天起就这样了。", + "sceneWord": false, + "match": [ + [ + "since yesterday", + "since last night", + "since this morning" + ] + ], + "example": { + "en": "The Wi-Fi has been slow since this morning.", + "zh": "网络从今天早上起就很慢。" + }, + "review": { + "prompt": "说灯从昨晚起就不亮了。" + } + }, + { + "id": "A2-U09-P03", + "type": "phrase", + "en": "Could someone come and fix it?", + "zh": "能派人来修一下吗?", + "sceneWord": false, + "match": [ + [ + "come and fix", + "come and look" + ] + ], + "example": { + "en": "Could someone come and look at the TV?", + "zh": "能派人来看看电视吗?" + }, + "review": { + "prompt": "请前台派人来修淋浴。" + } + }, + { + "id": "A2-U09-P04", + "type": "phrase", + "en": "There's a smell of smoke.", + "zh": "有一股烟味。", + "sceneWord": false, + "match": [ + [ + "smell of", + "strange smell" + ] + ], + "example": { + "en": "There's a strange smell in the bathroom.", + "zh": "浴室里有股怪味。" + }, + "review": { + "prompt": "说房间里有烟味。" + } + }, + { + "id": "A2-U09-P05", + "type": "phrase", + "en": "The people next door are having a party.", + "zh": "隔壁的人在开派对。", + "sceneWord": false, + "match": [ + [ + "next door" + ] + ], + "example": { + "en": "The room next door is very noisy.", + "zh": "隔壁房间很吵。" + }, + "review": { + "prompt": "说隔壁的人很吵。" + } + }, + { + "id": "A2-U09-P06", + "type": "phrase", + "en": "I couldn't sleep last night.", + "zh": "我昨晚没睡着。", + "sceneWord": false, + "match": [ + [ + "couldn't sleep" + ] + ], + "example": { + "en": "We couldn't sleep because of the noise.", + "zh": "因为吵,我们睡不着。" + }, + "review": { + "prompt": "说你昨晚因为太热没睡着。" + } + }, + { + "id": "A2-U09-P07", + "type": "phrase", + "en": "Could I move to a quieter room?", + "zh": "能换一个安静点的房间吗?", + "sceneWord": false, + "match": [ + [ + "quieter room", + "move to another room" + ] + ], + "example": { + "en": "Could we move to another room, please?", + "zh": "我们能换个房间吗?" + }, + "review": { + "prompt": "问能不能换一个安静点的房间。" + } + }, + { + "id": "A2-U09-P08", + "type": "phrase", + "en": "Could I have an extra blanket?", + "zh": "能再给我一条毯子吗?", + "sceneWord": false, + "match": [ + [ + "an extra", + "extra" + ] + ], + "example": { + "en": "Could we have two extra towels?", + "zh": "能再给我们两条毛巾吗?" + }, + "review": { + "prompt": "要一个多的枕头。" + } + }, + { + "id": "A2-U09-P09", + "type": "phrase", + "en": "Can I check out late?", + "zh": "我能晚点退房吗?", + "sceneWord": false, + "match": [ + [ + "check out late" + ] + ], + "example": { + "en": "Can we check out late tomorrow?", + "zh": "我们明天能晚点退房吗?" + }, + "review": { + "prompt": "问前台能不能晚点退房。" + } + }, + { + "id": "A2-U09-P10", + "type": "phrase", + "en": "The Wi-Fi is really slow.", + "zh": "网络特别慢。", + "sceneWord": false, + "match": [ + [ + "really slow", + "very slow" + ] + ], + "example": { + "en": "The lift is very slow.", + "zh": "电梯特别慢。" + }, + "review": { + "prompt": "说房间的网络特别慢。" + } + }, + { + "id": "A2-U09-P11", + "type": "phrase", + "en": "I called the front desk twice.", + "zh": "我给前台打了两次电话。", + "sceneWord": false, + "match": [ + [ + "front desk" + ] + ], + "example": { + "en": "Please call the front desk if you need anything.", + "zh": "需要什么请给前台打电话。" + }, + "review": { + "prompt": "说你给前台打了三次电话。" + } + }, + { + "id": "A2-U09-W01", + "type": "word", + "en": "disturb", + "zh": "打扰", + "sceneWord": false, + "match": [ + [ + "disturb", + "disturbed" + ] + ], + "example": { + "en": "Please do not disturb.", + "zh": "请勿打扰。" + }, + "review": { + "prompt": "说不想被打扰。" + } + }, + { + "id": "A2-U09-W02", + "type": "word", + "en": "uncomfortable", + "zh": "不舒服的", + "sceneWord": false, + "match": [ + [ + "uncomfortable" + ] + ], + "example": { + "en": "The bed is very uncomfortable.", + "zh": "床很不舒服。" + }, + "review": { + "prompt": "说枕头很不舒服。" + } + }, + { + "id": "A2-U09-W03", + "type": "word", + "en": "helpful", + "zh": "乐于助人的", + "sceneWord": false, + "match": [ + [ + "helpful" + ] + ], + "example": { + "en": "The staff were very helpful.", + "zh": "工作人员很热心。" + }, + "review": { + "prompt": "说前台的人很热心。" + } + } + ], + "receptiveWords": [ + { + "id": "A2-U09-R01", + "en": "air", + "zh": "空气" + }, + { + "id": "A2-U09-R02", + "en": "pillow", + "zh": "枕头" + }, + { + "id": "A2-U09-R03", + "en": "curtain", + "zh": "窗帘" + }, + { + "id": "A2-U09-R04", + "en": "sheet", + "zh": "床单" + }, + { + "id": "A2-U09-R05", + "en": "plug", + "zh": "插头" + }, + { + "id": "A2-U09-R06", + "en": "reception", + "zh": "前台" + }, + { + "id": "A2-U09-R07", + "en": "condition", + "zh": "状况" + }, + { + "id": "A2-U09-R08", + "en": "unpleasant", + "zh": "令人不快的" + }, + { + "id": "A2-U09-R09", + "en": "freeze", + "zh": "冻;冻僵" + }, + { + "id": "A2-U09-R10", + "en": "sweat", + "zh": "出汗" + }, + { + "id": "A2-U09-R11", + "en": "shade", + "zh": "阴凉处" + }, + { + "id": "A2-U09-R12", + "en": "dead", + "zh": "没电的;死的" + }, + { + "id": "A2-U09-R13", + "en": "knock", + "zh": "敲" + }, + { + "id": "A2-U09-R14", + "en": "load", + "zh": "负载;一堆" + }, + { + "id": "A2-U09-R15", + "en": "pull", + "zh": "拉" + }, + { + "id": "A2-U09-R16", + "en": "roll", + "zh": "卷;一卷" + }, + { + "id": "A2-U09-R17", + "en": "elsewhere", + "zh": "别处" + }, + { + "id": "A2-U09-R18", + "en": "extremely", + "zh": "极其" + }, + { + "id": "A2-U09-R19", + "en": "deeply", + "zh": "深深地" + }, + { + "id": "A2-U09-R20", + "en": "silence", + "zh": "安静" + }, + { + "id": "A2-U09-R21", + "en": "quietly", + "zh": "安静地" + }, + { + "id": "A2-U09-R22", + "en": "loudly", + "zh": "大声地" + }, + { + "id": "A2-U09-R23", + "en": "softly", + "zh": "轻轻地" + }, + { + "id": "A2-U09-R24", + "en": "shout", + "zh": "喊叫" + }, + { + "id": "A2-U09-R25", + "en": "scream", + "zh": "尖叫" + }, + { + "id": "A2-U09-R26", + "en": "smoothly", + "zh": "顺利地" + }, + { + "id": "A2-U09-R27", + "en": "regular", + "zh": "常规的" + }, + { + "id": "A2-U09-R28", + "en": "regularly", + "zh": "定期地" + }, + { + "id": "A2-U09-R29", + "en": "daily", + "zh": "每天的" + }, + { + "id": "A2-U09-R30", + "en": "fortunately", + "zh": "幸运的是" + }, + { + "id": "A2-U09-R31", + "en": "grateful", + "zh": "感激的" + }, + { + "id": "A2-U09-R32", + "en": "kindly", + "zh": "亲切的" + }, + { + "id": "A2-U09-R33", + "en": "appropriate", + "zh": "合适的" + }, + { + "id": "A2-U09-R34", + "en": "separate", + "zh": "单独的" + }, + { + "id": "A2-U09-R35", + "en": "left-hand", + "zh": "左边的" + }, + { + "id": "A2-U09-R36", + "en": "right-hand", + "zh": "右边的" + }, + { + "id": "A2-U09-R37", + "en": "square", + "zh": "方形的;广场" + }, + { + "id": "A2-U09-R38", + "en": "remote", + "zh": "遥控的;偏远的" + }, + { + "id": "A2-U09-R39", + "en": "audio", + "zh": "音频的" + }, + { + "id": "A2-U09-R40", + "en": "image", + "zh": "图像" + }, + { + "id": "A2-U09-R41", + "en": "display", + "zh": "显示" + }, + { + "id": "A2-U09-R42", + "en": "search", + "zh": "搜索" + }, + { + "id": "A2-U09-R43", + "en": "print", + "zh": "打印" + }, + { + "id": "A2-U09-R44", + "en": "record", + "zh": "录制" + }, + { + "id": "A2-U09-R45", + "en": "level", + "zh": "层;楼层" + }, + { + "id": "A2-U09-R46", + "en": "operate", + "zh": "操作" + }, + { + "id": "A2-U09-R47", + "en": "power", + "zh": "电力" + }, + { + "id": "A2-U09-R48", + "en": "stuff", + "zh": "东西" + }, + { + "id": "A2-U09-R49", + "en": "kit", + "zh": "一套用品" + }, + { + "id": "A2-U09-R50", + "en": "shell", + "zh": "贝壳" + }, + { + "id": "A2-U09-R51", + "en": "shadow", + "zh": "影子" + }, + { + "id": "A2-U09-R52", + "en": "cigarette", + "zh": "香烟" + }, + { + "id": "A2-U09-R53", + "en": "gas", + "zh": "煤气" + }, + { + "id": "A2-U09-R54", + "en": "bench", + "zh": "长椅" + }, + { + "id": "A2-U09-R55", + "en": "escalator", + "zh": "自动扶梯" + }, + { + "id": "A2-U09-R56", + "en": "fence", + "zh": "栅栏" + }, + { + "id": "A2-U09-R57", + "en": "roof", + "zh": "屋顶" + }, + { + "id": "A2-U09-R58", + "en": "common", + "zh": "常见的" + }, + { + "id": "A2-U09-R59", + "en": "third", + "zh": "第三" + }, + { + "id": "A2-U09-R60", + "en": "suggest", + "zh": "建议" + } + ], + "segments": [ + { + "id": "A2-U09-S1", + "title": "报修", + "minutes": 13, + "itemIds": [ + "A2-U09-P01", + "A2-U09-P02", + "A2-U09-P03", + "A2-U09-P10", + "A2-U09-P11" + ], + "listening": { + "text": "Front desk, how can I help you? Hi, this is room 508. The air conditioning isn't working, and the room is extremely hot. It's been like this since yesterday. Also, the Wi-Fi is really slow. I called the front desk twice. I'm sorry. Could someone come and fix it? Yes, someone is coming in ten minutes.", + "question": "客人第几次打电话给前台?", + "options": [ + "第三次", + "第一次", + "第二次" + ] + }, + "speaking": [ + { + "text": "The air conditioning isn't working." + }, + { + "text": "It's been like this since yesterday.", + "tip": "It's been 连读" + }, + { + "text": "Could someone come and fix it?" + }, + { + "text": "The Wi-Fi is really slow." + }, + { + "text": "I called the front desk twice." + } + ], + "reading": { + "text": "Guest notes: Room 312\n· The power in the bathroom isn't working. The mirror light is dead.\n· The shower is fine, but there's no soap or shampoo.\n· The TV remote isn't working, and the image on the display is dark.\n· The guest called the front desk twice. Please send someone before 6 p.m.", + "question": "电视有什么问题?", + "options": [ + "遥控器不好用,画面很暗", + "没有声音", + "没有电视" + ] + }, + "writing": { + "prompt": "写两句话:说空调坏了,从昨天起就这样了。", + "example": "The air conditioning isn't working. It's been like this since yesterday.", + "itemIds": [ + "A2-U09-P01", + "A2-U09-P02" + ] + }, + "independent": { + "prompt": "用英语说网络特别慢,你已经给前台打了两次电话,请他们派人来修。", + "itemIds": [ + "A2-U09-P10", + "A2-U09-P11", + "A2-U09-P03" + ] + } + }, + { + "id": "A2-U09-S2", + "title": "太吵睡不着", + "minutes": 13, + "itemIds": [ + "A2-U09-P04", + "A2-U09-P05", + "A2-U09-P06", + "A2-U09-P07", + "A2-U09-W01" + ], + "listening": { + "text": "Good morning. I'd like to change rooms. What's the problem? The people next door are having a party. They were shouting and screaming till two. I couldn't sleep last night. And there's a smell of smoke. I'm very sorry. Could I move to a quieter room? Yes, there's a room on level 5.", + "question": "客人为什么昨晚没睡好?", + "options": [ + "隔壁在开派对,很吵", + "空调坏了", + "床不舒服" + ] + }, + "speaking": [ + { + "text": "There's a smell of smoke." + }, + { + "text": "The people next door are having a party." + }, + { + "text": "I couldn't sleep last night." + }, + { + "text": "Could I move to a quieter room?", + "tip": "quieter 读作 /ˈkwaɪətə/" + }, + { + "text": "Please do not disturb." + } + ], + "reading": { + "text": "Dear Guest,\nWelcome to the Sea View Hotel. Please remember:\n· No cigarettes in the rooms. If there is a smell of smoke, we have to clean the room, and you have to pay 200 dollars.\n· Please be quiet after 10 p.m. Talk quietly in the halls. Other guests are asleep.\n· If you don't want us to disturb you, put the \"Do not disturb\" card on your door.\n· If your neighbors are noisy, call the front desk. Don't knock on their door.", + "question": "如果邻居太吵,酒店建议你怎么做?", + "options": [ + "给前台打电话", + "去敲他们的门", + "换一家酒店" + ] + }, + "writing": { + "prompt": "写两句话:说隔壁在开派对,你昨晚没睡着。", + "example": "The people next door are having a party. I couldn't sleep last night.", + "itemIds": [ + "A2-U09-P05", + "A2-U09-P06" + ] + }, + "independent": { + "prompt": "用英语说房间有烟味,你不想被打扰,并问能不能换个安静点的房间。", + "itemIds": [ + "A2-U09-P04", + "A2-U09-W01", + "A2-U09-P07" + ] + } + }, + { + "id": "A2-U09-S3", + "title": "提出要求", + "minutes": 12, + "itemIds": [ + "A2-U09-P08", + "A2-U09-P09", + "A2-U09-W02", + "A2-U09-W03" + ], + "listening": { + "text": "Hello, could I have an extra blanket? The room is cold, and the bed is a bit uncomfortable. Of course. Anything else? Yes, can I check out late tomorrow? My flight is in the evening. You can stay until two. Thank you, you're very helpful.", + "question": "客人可以待到几点?", + "options": [ + "两点", + "十二点", + "晚上" + ] + }, + "speaking": [ + { + "text": "Could I have an extra blanket?" + }, + { + "text": "Can I check out late?", + "tip": "check out 连读" + }, + { + "text": "The bed is very uncomfortable.", + "tip": "uncomfortable 重音在 com" + }, + { + "text": "You're very helpful." + } + ], + "reading": { + "text": "Hotel services\n· Extra pillows and blankets: call the front desk.\n· Late check-out: until 2 p.m. for 20 dollars. Ask at reception.\n· Print your ticket: the computer is on level 1, on the right-hand side of the elevator.\n· Our staff are here 24 hours a day, and we are always happy to be helpful.", + "question": "在哪里可以打印车票?", + "options": [ + "一楼电梯右边的电脑", + "前台", + "房间里" + ] + }, + "writing": { + "prompt": "写两句话:要一条多的毯子,并问能不能晚点退房。", + "example": "Could I have an extra blanket? Can I check out late?", + "itemIds": [ + "A2-U09-P08", + "A2-U09-P09" + ] + }, + "independent": { + "prompt": "用英语说床不舒服,前台的人很热心,你想再要一条毯子。", + "itemIds": [ + "A2-U09-W02", + "A2-U09-W03", + "A2-U09-P08" + ] + } + } + ], + "scenes": [ + { + "id": "A2-U09-C1", + "kind": "main", + "title": "打电话给前台报修", + "learnerRole": "住客", + "aiRole": "酒店前台", + "setting": "你住的酒店房间空调坏了,网络也很慢。", + "turns": [ + { + "ai": "Front desk. How can I help you?", + "goal": "说空调坏了", + "model": "Hi, this is room 508. The air conditioning isn't working.", + "zh": "你好,这里是 508 房间。空调坏了。", + "itemIds": [ + "A2-U09-P01" + ] + }, + { + "ai": "Oh, I'm sorry. When did it stop?", + "goal": "说从昨天起就这样了,你打过两次电话", + "model": "It's been like this since yesterday. I called the front desk twice.", + "zh": "从昨天起就这样了。我给前台打了两次电话。", + "itemIds": [ + "A2-U09-P02", + "A2-U09-P11" + ] + }, + { + "ai": "I'm very sorry about that.", + "goal": "请对方派人来修", + "model": "Could someone come and fix it, please?", + "zh": "能派人来修一下吗?", + "itemIds": [ + "A2-U09-P03" + ] + }, + { + "ai": "Yes, in ten minutes. Anything else?", + "goal": "说网络也特别慢", + "model": "Yes, the Wi-Fi is really slow too.", + "zh": "有,网络也特别慢。", + "itemIds": [ + "A2-U09-P10" + ] + }, + { + "ai": "I'll ask him to check that too.", + "goal": "说床不舒服,再要一条毯子", + "model": "Thanks. And the bed is uncomfortable. Could I have an extra blanket?", + "zh": "谢谢。另外床不舒服,能再给我一条毯子吗?", + "itemIds": [ + "A2-U09-W02", + "A2-U09-P08" + ] + }, + { + "ai": "No problem.", + "goal": "道谢,说对方很热心", + "model": "Thank you. You're very helpful.", + "zh": "谢谢,你真热心。", + "itemIds": [ + "A2-U09-W03" + ] + } + ] + }, + { + "id": "A2-U09-C2", + "kind": "variant", + "title": "太吵要求换房", + "learnerRole": "住客", + "aiRole": "酒店前台", + "setting": "你昨晚被隔壁吵得睡不着,早上到前台要求换房。", + "turns": [ + { + "ai": "Good morning. Did you sleep well?", + "goal": "说昨晚没睡着", + "model": "Not really. I couldn't sleep last night.", + "zh": "不太好。我昨晚没睡着。", + "itemIds": [ + "A2-U09-P06" + ] + }, + { + "ai": "Oh no. What happened?", + "goal": "说隔壁在开派对,还有烟味", + "model": "The people next door were having a party, and there's a smell of smoke.", + "zh": "隔壁在开派对,还有一股烟味。", + "itemIds": [ + "A2-U09-P05", + "A2-U09-P04" + ] + }, + { + "ai": "I'm so sorry. We don't allow smoking.", + "goal": "问能不能换一个安静点的房间", + "model": "Could I move to a quieter room?", + "zh": "能换一个安静点的房间吗?", + "itemIds": [ + "A2-U09-P07" + ] + }, + { + "ai": "Yes. Room 815 is very quiet.", + "goal": "说你下午想休息,不希望被打扰", + "model": "Great. I want to sleep this afternoon, so please don't disturb me.", + "zh": "太好了。我下午想睡觉,请不要打扰我。", + "itemIds": [ + "A2-U09-W01" + ] + }, + { + "ai": "Of course.", + "goal": "问能不能晚点退房", + "model": "And can I check out late tomorrow?", + "zh": "我明天能晚点退房吗?", + "itemIds": [ + "A2-U09-P09" + ] + } + ] + }, + { + "id": "A2-U09-C3", + "kind": "variant", + "title": "帮朋友找前台说话", + "learnerRole": "朋友", + "aiRole": "朋友", + "setting": "你和朋友住在同一家酒店,朋友的房间有问题,问你该怎么说。", + "turns": [ + { + "ai": "My shower isn't working, and I don't know what to say.", + "goal": "教他说“淋浴坏了”", + "model": "Say, \"The shower isn't working.\"", + "zh": "就说“淋浴坏了”。", + "itemIds": [ + "A2-U09-P01" + ] + }, + { + "ai": "OK. It's been like this since this morning.", + "goal": "教他请人来修", + "model": "Then ask, \"Could someone come and fix it?\"", + "zh": "然后问“能派人来修吗?”", + "itemIds": [ + "A2-U09-P03" + ] + }, + { + "ai": "And the room is cold.", + "goal": "教他要多一条毯子", + "model": "Say, \"Could I have an extra blanket?\"", + "zh": "就说“能再给我一条毯子吗?”", + "itemIds": [ + "A2-U09-P08" + ] + }, + { + "ai": "Good. The staff here are nice.", + "goal": "说是的,他们很热心", + "model": "Yes, they're very helpful.", + "zh": "是啊,他们很热心。", + "itemIds": [ + "A2-U09-W03" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A2-U09-T1", + "sceneId": "A2-U09-C1", + "goal": "打电话报修并提出需要", + "itemIds": [ + "A2-U09-P01", + "A2-U09-P02", + "A2-U09-P11", + "A2-U09-P03", + "A2-U09-P10", + "A2-U09-W02", + "A2-U09-P08", + "A2-U09-W03" + ], + "slots": [ + "问题", + "时间", + "要求" + ] + }, + { + "id": "A2-U09-T2", + "sceneId": "A2-U09-C2", + "goal": "因为太吵要求换房间", + "itemIds": [ + "A2-U09-P06", + "A2-U09-P05", + "A2-U09-P04", + "A2-U09-P07", + "A2-U09-W01", + "A2-U09-P09" + ], + "slots": [ + "问题", + "要求" + ] + }, + { + "id": "A2-U09-T3", + "sceneId": "A2-U09-C3", + "goal": "教朋友怎样向前台报修", + "itemIds": [ + "A2-U09-P01", + "A2-U09-P03", + "A2-U09-P08", + "A2-U09-W03" + ], + "slots": [ + "问题", + "说法" + ] + } + ], + "materials": [ + { + "id": "A2-U09-M1", + "mode": "listening", + "title": "酒店经理谈住客常见的投诉", + "text": "Hello, I'm Emma, and I'm the manager of a hotel near the beach. Every day, guests come to reception with problems, and the receptionist sends them to me. The most common complaint? Noise. People shout in the halls, doors close loudly, and some guests play music till late. We ask people to speak softly after ten, although not everyone listens. The second problem is the air conditioning. In summer, guests sweat in their rooms if it isn't working, and in winter some of them freeze. We check every machine regularly, but it still happens. Third, smells. Cigarettes are not allowed, but some guests smoke anyway, and then the next guest complains. Fortunately, most problems are easy to solve. We move people to a separate room, or we send someone to fix things. Guests are usually grateful. And sometimes they surprise me. Last month a family gave us a box of shells from the beach to say thank you. A hotel is like a small town: things go wrong, but people are kind.", + "glosses": { + "complaint": "投诉", + "anyway": "还是;无论如何", + "solve": "解决" + }, + "questions": [ + { + "type": "gist", + "question": "经理主要讲什么?", + "options": [ + "住客常见的投诉和酒店怎么处理", + "怎样订便宜的酒店", + "海边有什么好玩的" + ] + }, + { + "type": "detail", + "question": "住客最常投诉什么?", + "options": [ + "噪音", + "空调", + "烟味" + ] + }, + { + "type": "inference", + "question": "那家人为什么送贝壳?", + "options": [ + "为了表示感谢", + "想卖给酒店", + "他们要投诉" + ] + } + ] + }, + { + "id": "A2-U09-M2", + "mode": "reading", + "title": "住客评价:山里的小旅馆", + "text": "A night at Mountain House\nMy husband and I stayed at Mountain House last weekend. It's in a remote area, beyond the last village, and there is nothing else there except trees, a fence and a small garden with a bench in the shade. In the evening, the trees made long shadows, and we loved the silence.\nHowever, the room was not in good condition. The curtains didn't close, so the sun woke us at five. There was only one thin sheet on the bed, and the pillows were uncomfortable. The shower had no hot water, because the gas was off. There was a strange smell, and when my husband pulled the curtain, it fell on his head.\nWe called reception, and fortunately the owner was kind and helpful. He came himself, and he fixed the gas quickly. He also brought us a roll of toilet paper, some soap and a first aid kit for my husband's head. That night we slept deeply. The next day he kindly gave us breakfast for free.\nWould we go back? Maybe. The first night was unpleasant, and they need to fix a load of stuff. But the place itself is beautiful, and you can't find such silence elsewhere. Three stars.", + "glosses": { + "owner": "老板", + "aid": "救助", + "thin": "薄的" + }, + "questions": [ + { + "type": "gist", + "question": "这篇评价的总体意思是什么?", + "options": [ + "地方很美,但房间状况不好", + "服务很差,再也不去了", + "一切都很完美" + ] + }, + { + "type": "detail", + "question": "为什么淋浴没有热水?", + "options": [ + "煤气关了", + "电坏了", + "水管坏了" + ] + }, + { + "type": "inference", + "question": "作者为什么说“也许会再去”?", + "options": [ + "喜欢这个地方和老板,但房间需要修", + "房费很便宜", + "丈夫很喜欢" + ] + } + ] + }, + { + "id": "A2-U09-M3", + "mode": "reading", + "title": "酒店房间使用说明", + "text": "Welcome to your room\nPower: Put your key card in the box on the left-hand side of the door. The lights come on automatically.\nAir conditioning: Use the remote on the desk. We suggest 24°C. It's easy to operate. Please close the windows while it's on.\nTV: Use the red button. To search for films, choose \"Movies\". For audio only, choose \"Music\".\nPhone: Call 0 for reception, 9 for an outside line.\nElevators and escalators: The elevators are opposite your room. The escalator on level 2 goes to the restaurant.\nPlease don't smoke in the room. If you want a cigarette, go to the roof garden on the top floor. Please don't record or take photos of other guests. Please wear appropriate clothes in the restaurant: no swimsuits. Regular guests get a free drink at the bar on the square. Our staff clean rooms daily. If you don't want us to come in, put the card on the door handle. Put your wet towels on the floor, and we'll replace them. If you need anything else, such as an extra pillow, a phone charger or a plug for other countries, just call us. We want your stay to go smoothly, and we're happy to help at any time.", + "glosses": { + "charger": "充电器" + }, + "questions": [ + { + "type": "gist", + "question": "这份说明主要讲什么?", + "options": [ + "怎样使用房间里的设施", + "怎样预订房间", + "酒店的历史" + ] + }, + { + "type": "detail", + "question": "想打电话给前台要拨几号?", + "options": [ + "0", + "9", + "24" + ] + }, + { + "type": "inference", + "question": "为什么要把钥匙卡放进门边的盒子里?", + "options": [ + "这样房间才会通电", + "这样才能锁门", + "这样才能看电视" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "说清问题", + "bands": [ + "只说房间不好", + "说清什么坏了或有什么问题", + "说清问题和持续时间,并提到已经反映过" + ], + "pass": 1 + }, + { + "name": "提出要求", + "bands": [ + "没有提出要求", + "礼貌地提出一个要求", + "提出要求,并在需要时追加或改变要求" + ], + "pass": 1 + } + ] + }, + "excluded": [ + { + "en": "upgrade", + "reason": "B2;用 move to a better room 表达" + }, + { + "en": "leak", + "reason": "B2;本单元不用" + } + ] +} diff --git a/kouyu_english/assets/courses/A2/A2-U10.json b/kouyu_english/assets/courses/A2/A2-U10.json new file mode 100644 index 0000000..bf23dcd --- /dev/null +++ b/kouyu_english/assets/courses/A2/A2-U10.json @@ -0,0 +1,1215 @@ +{ + "schemaVersion": 1, + "id": "A2-U10", + "revision": 1, + "level": "A2", + "title": "看病", + "categories": [ + "日常", + "旅行" + ], + "canDo": "说症状和持续时间、听懂用药说明", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "62", + "use": "active" + }, + { + "id": "65", + "use": "active" + }, + { + "id": "61", + "use": "active" + }, + { + "id": "139", + "use": "active" + }, + { + "id": "258", + "use": "active", + "reason": "Should I ...? 是问医生怎么做时最常用的问法" + }, + { + "id": "127", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A2-U10-P01", + "type": "phrase", + "en": "I've had a fever for two days.", + "zh": "我发烧两天了。", + "sceneWord": false, + "match": [ + [ + "for two days", + "for three days", + "for a week" + ] + ], + "example": { + "en": "I've had a stomachache for three days.", + "zh": "我肚子疼了三天了。" + }, + "review": { + "prompt": "说你发烧三天了。" + } + }, + { + "id": "A2-U10-P02", + "type": "phrase", + "en": "It hurts when I walk.", + "zh": "我走路的时候疼。", + "sceneWord": false, + "match": [ + [ + "hurts when" + ] + ], + "example": { + "en": "My back hurts when I sit down.", + "zh": "我坐下的时候背疼。" + }, + "review": { + "prompt": "说你吃东西的时候牙疼。" + } + }, + { + "id": "A2-U10-P03", + "type": "phrase", + "en": "I feel dizzy.", + "zh": "我头晕。", + "sceneWord": false, + "match": [ + [ + "feel dizzy", + "feels dizzy" + ] + ], + "example": { + "en": "She feels dizzy when she stands up.", + "zh": "她站起来的时候头晕。" + }, + "review": { + "prompt": "告诉医生你早上起床时头晕。" + } + }, + { + "id": "A2-U10-P04", + "type": "phrase", + "en": "I've got a stomachache.", + "zh": "我肚子疼。", + "sceneWord": false, + "match": [ + [ + "stomachache" + ] + ], + "example": { + "en": "My son has a stomachache.", + "zh": "我儿子肚子疼。" + }, + "review": { + "prompt": "说你吃完饭后肚子疼。" + } + }, + { + "id": "A2-U10-P05", + "type": "phrase", + "en": "It started yesterday.", + "zh": "昨天开始的。", + "sceneWord": false, + "match": [ + [ + "started yesterday", + "started last night", + "started this morning" + ] + ], + "example": { + "en": "The pain started last night.", + "zh": "昨晚开始疼的。" + }, + "review": { + "prompt": "说是今天早上开始的。" + } + }, + { + "id": "A2-U10-P06", + "type": "phrase", + "en": "It's getting worse.", + "zh": "越来越严重了。", + "sceneWord": false, + "match": [ + [ + "getting worse", + "getting better" + ] + ], + "example": { + "en": "My leg is getting better.", + "zh": "我的腿好点了。" + }, + "review": { + "prompt": "说你的头疼越来越厉害。" + } + }, + { + "id": "A2-U10-P07", + "type": "phrase", + "en": "I hurt my ankle.", + "zh": "我把脚踝弄伤了。", + "sceneWord": false, + "match": [ + [ + "hurt my" + ] + ], + "example": { + "en": "I fell and hurt my knee.", + "zh": "我摔倒伤了膝盖。" + }, + "review": { + "prompt": "说你打球时伤了手臂。" + } + }, + { + "id": "A2-U10-P08", + "type": "phrase", + "en": "I can't move my arm.", + "zh": "我的胳膊动不了。", + "sceneWord": false, + "match": [ + [ + "can't move" + ] + ], + "example": { + "en": "I can't move my fingers.", + "zh": "我的手指动不了。" + }, + "review": { + "prompt": "说你的腿动不了。" + } + }, + { + "id": "A2-U10-P09", + "type": "phrase", + "en": "How many should I take?", + "zh": "我该吃几片?", + "sceneWord": false, + "match": [ + [ + "how many should", + "how many pills should" + ] + ], + "example": { + "en": "How many pills should I take a day?", + "zh": "我一天该吃几片药?" + }, + "review": { + "prompt": "问药剂师这药一次吃几片。" + } + }, + { + "id": "A2-U10-P10", + "type": "phrase", + "en": "Take one before bed.", + "zh": "睡前吃一片。", + "sceneWord": false, + "match": [ + [ + "before bed" + ] + ], + "example": { + "en": "Take two pills before bed.", + "zh": "睡前吃两片。" + }, + "review": { + "prompt": "告诉朋友药要睡前吃。" + } + }, + { + "id": "A2-U10-P11", + "type": "phrase", + "en": "Should I stay in bed?", + "zh": "我需要卧床吗?", + "sceneWord": false, + "match": [ + [ + "stay in bed" + ] + ], + "example": { + "en": "You should stay in bed for two days.", + "zh": "你应该卧床两天。" + }, + "review": { + "prompt": "问医生需不需要卧床休息。" + } + }, + { + "id": "A2-U10-P12", + "type": "phrase", + "en": "Do I have to come back?", + "zh": "我还要再来吗?", + "sceneWord": false, + "match": [ + [ + "come back" + ] + ], + "example": { + "en": "You have to come back next week.", + "zh": "你下周得再来一次。" + }, + "review": { + "prompt": "问医生需不需要复诊。" + } + }, + { + "id": "A2-U10-W01", + "type": "word", + "en": "temperature", + "zh": "体温;温度", + "sceneWord": false, + "match": [ + [ + "temperature" + ] + ], + "example": { + "en": "Let me take your temperature.", + "zh": "我给你量一下体温。" + }, + "review": { + "prompt": "说你体温很高。" + } + }, + { + "id": "A2-U10-W02", + "type": "word", + "en": "emergency", + "zh": "紧急情况", + "sceneWord": false, + "match": [ + [ + "emergency" + ] + ], + "example": { + "en": "Is it an emergency?", + "zh": "情况紧急吗?" + }, + "review": { + "prompt": "问这是不是紧急情况。" + } + } + ], + "receptiveWords": [ + { + "id": "A2-U10-R01", + "en": "cheek", + "zh": "脸颊" + }, + { + "id": "A2-U10-R02", + "en": "chest", + "zh": "胸口" + }, + { + "id": "A2-U10-R03", + "en": "chin", + "zh": "下巴" + }, + { + "id": "A2-U10-R04", + "en": "lip", + "zh": "嘴唇" + }, + { + "id": "A2-U10-R05", + "en": "toe", + "zh": "脚趾" + }, + { + "id": "A2-U10-R06", + "en": "belly", + "zh": "肚子" + }, + { + "id": "A2-U10-R07", + "en": "patient", + "zh": "病人" + }, + { + "id": "A2-U10-R08", + "en": "pressure", + "zh": "压力;血压" + }, + { + "id": "A2-U10-R09", + "en": "effect", + "zh": "效果;影响" + }, + { + "id": "A2-U10-R10", + "en": "medical", + "zh": "医疗的" + }, + { + "id": "A2-U10-R11", + "en": "physical", + "zh": "身体的" + }, + { + "id": "A2-U10-R12", + "en": "physically", + "zh": "身体上" + }, + { + "id": "A2-U10-R13", + "en": "injure", + "zh": "使受伤" + }, + { + "id": "A2-U10-R14", + "en": "advise", + "zh": "建议" + }, + { + "id": "A2-U10-R15", + "en": "improve", + "zh": "改善" + }, + { + "id": "A2-U10-R16", + "en": "prevent", + "zh": "预防" + }, + { + "id": "A2-U10-R17", + "en": "symptom", + "zh": "症状" + }, + { + "id": "A2-U10-R18", + "en": "cough", + "zh": "咳嗽" + }, + { + "id": "A2-U10-R19", + "en": "sore", + "zh": "疼痛的" + }, + { + "id": "A2-U10-R20", + "en": "pain", + "zh": "疼痛" + }, + { + "id": "A2-U10-R21", + "en": "tablet", + "zh": "药片" + }, + { + "id": "A2-U10-R22", + "en": "clinic", + "zh": "诊所" + }, + { + "id": "A2-U10-R23", + "en": "flu", + "zh": "流感" + }, + { + "id": "A2-U10-R24", + "en": "rest", + "zh": "休息" + }, + { + "id": "A2-U10-R25", + "en": "breath", + "zh": "呼吸" + }, + { + "id": "A2-U10-R26", + "en": "sneeze", + "zh": "打喷嚏" + }, + { + "id": "A2-U10-R27", + "en": "prescription", + "zh": "处方" + }, + { + "id": "A2-U10-R28", + "en": "swollen", + "zh": "肿的" + }, + { + "id": "A2-U10-R29", + "en": "twist", + "zh": "扭伤" + }, + { + "id": "A2-U10-R30", + "en": "recover", + "zh": "恢复" + }, + { + "id": "A2-U10-R31", + "en": "alive", + "zh": "活着的" + }, + { + "id": "A2-U10-R32", + "en": "deep", + "zh": "深的" + }, + { + "id": "A2-U10-R33", + "en": "doubt", + "zh": "怀疑" + }, + { + "id": "A2-U10-R34", + "en": "fear", + "zh": "害怕" + }, + { + "id": "A2-U10-R35", + "en": "shock", + "zh": "震惊" + }, + { + "id": "A2-U10-R36", + "en": "gentle", + "zh": "温和的" + }, + { + "id": "A2-U10-R37", + "en": "lifestyle", + "zh": "生活方式" + }, + { + "id": "A2-U10-R38", + "en": "lack", + "zh": "缺乏" + }, + { + "id": "A2-U10-R39", + "en": "strength", + "zh": "力气" + }, + { + "id": "A2-U10-R40", + "en": "survive", + "zh": "活下来" + }, + { + "id": "A2-U10-R41", + "en": "seem", + "zh": "似乎" + }, + { + "id": "A2-U10-R42", + "en": "elderly", + "zh": "年长的" + }, + { + "id": "A2-U10-R43", + "en": "adult", + "zh": "成年人" + }, + { + "id": "A2-U10-R44", + "en": "teenager", + "zh": "青少年" + }, + { + "id": "A2-U10-R45", + "en": "human", + "zh": "人类的" + }, + { + "id": "A2-U10-R46", + "en": "natural", + "zh": "自然的" + }, + { + "id": "A2-U10-R47", + "en": "mood", + "zh": "心情" + }, + { + "id": "A2-U10-R48", + "en": "energetic", + "zh": "精力充沛的" + }, + { + "id": "A2-U10-R49", + "en": "concern", + "zh": "担心" + }, + { + "id": "A2-U10-R50", + "en": "specific", + "zh": "具体的" + }, + { + "id": "A2-U10-R51", + "en": "increase", + "zh": "增加" + }, + { + "id": "A2-U10-R52", + "en": "support", + "zh": "支持" + }, + { + "id": "A2-U10-R53", + "en": "therefore", + "zh": "因此" + }, + { + "id": "A2-U10-R54", + "en": "clearly", + "zh": "清楚地" + }, + { + "id": "A2-U10-R55", + "en": "simply", + "zh": "简单地" + }, + { + "id": "A2-U10-R56", + "en": "harmful", + "zh": "有害的" + }, + { + "id": "A2-U10-R57", + "en": "method", + "zh": "方法" + }, + { + "id": "A2-U10-R58", + "en": "serious", + "zh": "严重的" + }, + { + "id": "A2-U10-R59", + "en": "foot", + "zh": "脚" + }, + { + "id": "A2-U10-R60", + "en": "plenty", + "zh": "大量" + }, + { + "id": "A2-U10-R61", + "en": "die", + "zh": "死" + } + ], + "segments": [ + { + "id": "A2-U10-S1", + "title": "说症状", + "minutes": 13, + "itemIds": [ + "A2-U10-P01", + "A2-U10-P03", + "A2-U10-P04", + "A2-U10-P05", + "A2-U10-P06", + "A2-U10-W01" + ], + "listening": { + "text": "Good morning. What seems to be the problem? I've had a fever for two days. I feel dizzy, and I've got a stomachache. When did it start? It started yesterday. It's getting worse. OK, let me take your temperature. Hmm, it's 39 degrees.", + "question": "病人的体温是多少?", + "options": [ + "39 度", + "37 度", + "38 度" + ] + }, + "speaking": [ + { + "text": "I've had a fever for two days.", + "tip": "I've had 连读" + }, + { + "text": "I feel dizzy." + }, + { + "text": "I've got a stomachache.", + "tip": "stomachache 读作 /ˈstʌməkeɪk/" + }, + { + "text": "It started yesterday." + }, + { + "text": "It's getting worse." + }, + { + "text": "Let me take your temperature.", + "tip": "temperature 重音在前" + } + ], + "reading": { + "text": "Patient form\nName: Anna Li Age: 34\nSymptoms: fever, cough, headache, feels dizzy\nWhen did they start? Two days ago. Getting worse.\nTemperature: 38.5\nAny medicine? Yes, one tablet for pain, last night.\nAllergic to any medicine? No.", + "question": "Anna 的症状是从什么时候开始的?", + "options": [ + "两天前", + "昨天晚上", + "今天早上" + ] + }, + "writing": { + "prompt": "写两句话:说你发烧两天了,而且越来越严重。", + "example": "I've had a fever for two days. It's getting worse.", + "itemIds": [ + "A2-U10-P01", + "A2-U10-P06" + ] + }, + "independent": { + "prompt": "用英语说你头晕、肚子疼,是昨天开始的,并说体温很高。", + "itemIds": [ + "A2-U10-P03", + "A2-U10-P04", + "A2-U10-P05", + "A2-U10-W01" + ] + } + }, + { + "id": "A2-U10-S2", + "title": "受伤", + "minutes": 13, + "itemIds": [ + "A2-U10-P02", + "A2-U10-P07", + "A2-U10-P08", + "A2-U10-W02" + ], + "listening": { + "text": "Hello, is it an emergency? Not really. I fell and hurt my ankle while I was running. It hurts when I walk. Can you move your foot? Yes, but I can't move my arm very well either. It's a bit swollen. OK, let's have a look.", + "question": "病人是怎么受伤的?", + "options": [ + "跑步时摔倒了", + "骑车时摔倒了", + "打球时撞到了" + ] + }, + "speaking": [ + { + "text": "I hurt my ankle." + }, + { + "text": "It hurts when I walk." + }, + { + "text": "I can't move my arm." + }, + { + "text": "Is it an emergency?", + "tip": "emergency 重音在 mer" + } + ], + "reading": { + "text": "When to go to the emergency room\nGo at once if:\n· a person can't breathe or has chest pain\n· a person can't move an arm or a leg after an accident\n· there is a lot of blood\nIf you hurt your ankle or toe and it's a bit swollen, it's not an emergency. Put something cold on it and rest. If it hurts when you walk for more than three days, see a doctor.", + "question": "脚踝扭伤、有点肿时,文章建议怎么做?", + "options": [ + "冷敷并休息", + "马上去急诊", + "继续跑步" + ] + }, + "writing": { + "prompt": "写两句话:说你伤了脚踝,走路时疼。", + "example": "I hurt my ankle. It hurts when I walk.", + "itemIds": [ + "A2-U10-P07", + "A2-U10-P02" + ] + }, + "independent": { + "prompt": "用英语说你的胳膊动不了,问护士这算不算紧急情况。", + "itemIds": [ + "A2-U10-P08", + "A2-U10-W02" + ] + } + }, + { + "id": "A2-U10-S3", + "title": "听医嘱", + "minutes": 12, + "itemIds": [ + "A2-U10-P09", + "A2-U10-P10", + "A2-U10-P11", + "A2-U10-P12" + ], + "listening": { + "text": "Here's your medicine. How many should I take? Take one tablet in the morning and one before bed. Should I stay in bed? Yes, rest for two days and drink a lot of water. Do I have to come back? Only if you don't feel better after a week.", + "question": "什么情况下需要复诊?", + "options": [ + "一周后还没好", + "两天后", + "吃完药以后" + ] + }, + "speaking": [ + { + "text": "How many should I take?" + }, + { + "text": "Take one before bed." + }, + { + "text": "Should I stay in bed?" + }, + { + "text": "Do I have to come back?" + } + ], + "reading": { + "text": "Pain Away tablets\nAdults: Take one or two tablets every 4 to 6 hours. Don't take more than 8 tablets in 24 hours.\nChildren under 12: Ask a doctor.\nTake with water, after meals.\nDo not take with other pain medicine.\nIf you don't feel better after 3 days, see a doctor.", + "question": "成年人一天最多能吃几片?", + "options": [ + "8 片", + "6 片", + "4 片" + ] + }, + "writing": { + "prompt": "写两句话:问该吃几片药,问需不需要卧床。", + "example": "How many should I take? Should I stay in bed?", + "itemIds": [ + "A2-U10-P09", + "A2-U10-P11" + ] + }, + "independent": { + "prompt": "用英语告诉朋友药要睡前吃,并问医生你还需不需要再来。", + "itemIds": [ + "A2-U10-P10", + "A2-U10-P12" + ] + } + } + ], + "scenes": [ + { + "id": "A2-U10-C1", + "kind": "main", + "title": "在诊所看病", + "learnerRole": "病人", + "aiRole": "医生", + "setting": "你在旅行时生病了,来到当地的诊所。", + "turns": [ + { + "ai": "Hello. What's the problem?", + "goal": "说你发烧两天了", + "model": "I've had a fever for two days.", + "zh": "我发烧两天了。", + "itemIds": [ + "A2-U10-P01" + ] + }, + { + "ai": "Any other symptoms?", + "goal": "说你头晕、肚子疼", + "model": "I feel dizzy, and I've got a stomachache.", + "zh": "我头晕,肚子也疼。", + "itemIds": [ + "A2-U10-P03", + "A2-U10-P04" + ] + }, + { + "ai": "When did the stomachache start?", + "goal": "说昨天开始的,越来越严重", + "model": "It started yesterday, and it's getting worse.", + "zh": "昨天开始的,越来越严重了。", + "itemIds": [ + "A2-U10-P05", + "A2-U10-P06" + ] + }, + { + "ai": "Let me take your temperature. It's 38.5. I'll give you some medicine.", + "goal": "问该吃几片", + "model": "How many should I take?", + "zh": "我该吃几片?", + "itemIds": [ + "A2-U10-P09" + ] + }, + { + "ai": "One in the morning and one before bed.", + "goal": "问需不需要卧床", + "model": "One before bed. OK. Should I stay in bed?", + "zh": "睡前一片,好的。我需要卧床吗?", + "itemIds": [ + "A2-U10-P10", + "A2-U10-P11" + ] + }, + { + "ai": "Yes, for two days.", + "goal": "问要不要再来", + "model": "Do I have to come back?", + "zh": "我还要再来吗?", + "itemIds": [ + "A2-U10-P12" + ] + }, + { + "ai": "Only if your temperature is still high after three days.", + "goal": "道谢", + "model": "OK, I'll check my temperature. Thank you, doctor.", + "zh": "好的,我会量体温的。谢谢医生。", + "itemIds": [ + "A2-U10-W01" + ] + } + ] + }, + { + "id": "A2-U10-C2", + "kind": "variant", + "title": "运动受伤", + "learnerRole": "病人", + "aiRole": "急诊护士", + "setting": "你跑步时摔倒了,到医院急诊处。", + "turns": [ + { + "ai": "Hi. Is it an emergency?", + "goal": "说不算紧急,但你伤了脚踝", + "model": "I don't think it's an emergency, but I hurt my ankle.", + "zh": "我觉得不算紧急,但我伤了脚踝。", + "itemIds": [ + "A2-U10-W02", + "A2-U10-P07" + ] + }, + { + "ai": "How did it happen?", + "goal": "说跑步时摔倒了,走路时疼", + "model": "I fell when I was running. It hurts when I walk.", + "zh": "我跑步时摔倒了。走路时疼。", + "itemIds": [ + "A2-U10-P02" + ] + }, + { + "ai": "Can you move your foot?", + "goal": "说脚能动,但胳膊动不了", + "model": "Yes, but I can't move my arm.", + "zh": "能,但我的胳膊动不了。", + "itemIds": [ + "A2-U10-P08" + ] + }, + { + "ai": "OK. The doctor can see you in twenty minutes.", + "goal": "问需不需要卧床", + "model": "Should I stay in bed after this?", + "zh": "看完以后需要卧床吗?", + "itemIds": [ + "A2-U10-P11" + ] + }, + { + "ai": "The doctor will tell you.", + "goal": "道谢", + "model": "OK, thank you.", + "zh": "好的,谢谢。", + "itemIds": [] + } + ] + }, + { + "id": "A2-U10-C3", + "kind": "variant", + "title": "在药店问用法", + "learnerRole": "顾客", + "aiRole": "药剂师", + "setting": "医生给你开了药,你在药店问清楚怎么吃。", + "turns": [ + { + "ai": "Here's your medicine.", + "goal": "问该吃几片", + "model": "Thanks. How many should I take?", + "zh": "谢谢。我该吃几片?", + "itemIds": [ + "A2-U10-P09" + ] + }, + { + "ai": "One tablet, three times a day. And one more before bed.", + "goal": "确认睡前再吃一片", + "model": "One before bed, too?", + "zh": "睡前也吃一片?", + "itemIds": [ + "A2-U10-P10" + ] + }, + { + "ai": "Yes. How do you feel?", + "goal": "说头晕,越来越严重", + "model": "I feel dizzy, and it's getting worse.", + "zh": "我头晕,越来越严重了。", + "itemIds": [ + "A2-U10-P03", + "A2-U10-P06" + ] + }, + { + "ai": "If it's still bad tomorrow, see the doctor again.", + "goal": "问是不是一定得回去复诊", + "model": "Do I have to come back to the doctor?", + "zh": "我一定得再去看医生吗?", + "itemIds": [ + "A2-U10-P12" + ] + }, + { + "ai": "Only if you don't feel better.", + "goal": "道谢", + "model": "OK. Thanks for your help.", + "zh": "好的,谢谢你的帮助。", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "A2-U10-T1", + "sceneId": "A2-U10-C1", + "goal": "向医生说清症状并问清医嘱", + "itemIds": [ + "A2-U10-P01", + "A2-U10-P03", + "A2-U10-P04", + "A2-U10-P05", + "A2-U10-P06", + "A2-U10-W01", + "A2-U10-P09", + "A2-U10-P10", + "A2-U10-P11", + "A2-U10-P12" + ], + "slots": [ + "症状", + "时间", + "医嘱" + ] + }, + { + "id": "A2-U10-T2", + "sceneId": "A2-U10-C2", + "goal": "受伤后向护士说明情况", + "itemIds": [ + "A2-U10-W02", + "A2-U10-P07", + "A2-U10-P02", + "A2-U10-P08", + "A2-U10-P11" + ], + "slots": [ + "受伤经过", + "部位", + "问题" + ] + }, + { + "id": "A2-U10-T3", + "sceneId": "A2-U10-C3", + "goal": "在药店问清楚药怎么吃", + "itemIds": [ + "A2-U10-P09", + "A2-U10-P10", + "A2-U10-P03", + "A2-U10-P06", + "A2-U10-P12" + ], + "slots": [ + "用法", + "症状" + ] + } + ], + "materials": [ + { + "id": "A2-U10-M1", + "mode": "listening", + "title": "健康节目:感冒还是流感?", + "text": "Hello and welcome to Health Today. This week, lots of people asked us a question: do I have a cold or the flu? Dr Chen is here to help. Dr Chen, what's the difference? Well, the symptoms can seem similar. With a cold, your nose runs, your eyes are sore, and you sneeze and cough, and you feel a bit tired. With the flu, the symptoms are much stronger. You have a high temperature, pain in your body, and you feel very weak. Some people also have a pain in their belly. Some people can't even get out of bed. So what should we do? For a cold, simply rest, drink plenty of water and eat well. Most people recover in a week. For the flu, stay at home for a few days. Don't go to work, don't do physical exercise, and don't go among lots of people. Elderly people, very young children and people with heart problems should see a doctor. And is there a way to prevent it? Yes. Wash your hands, get some sleep, and think about a flu vaccine every autumn. Thank you, Dr Chen.", + "glosses": { + "vaccine": "疫苗" + }, + "questions": [ + { + "type": "gist", + "question": "这期节目主要讲什么?", + "options": [ + "感冒和流感的区别以及怎么处理", + "怎样治疗心脏病", + "秋天怎样运动" + ] + }, + { + "type": "detail", + "question": "得了流感通常有什么症状?", + "options": [ + "高烧、全身疼、非常虚弱", + "只是打喷嚏", + "只是嗓子有点疼" + ] + }, + { + "type": "inference", + "question": "为什么得了流感不要去人多的地方?", + "options": [ + "会传染给别人", + "人多的地方太吵", + "会让自己更累" + ] + } + ] + }, + { + "id": "A2-U10-M2", + "mode": "reading", + "title": "一位老人的健康故事", + "text": "A new lifestyle at 70\nLast year, Mr Wang, an elderly man from Beijing, had a shock. He felt pressure in his chest and couldn't take a deep breath. At the clinic, the doctor said, \"Your heart is not strong. You need to change your lifestyle.\"\nMr Wang was frightened. \"I had no doubt I was going to die,\" he says. \"But the doctor was gentle, and she advised me clearly.\" She gave him a prescription, but she also told him to stop smoking, eat more natural food and walk every day. \"Cigarettes are harmful, and a lack of exercise is bad for your heart,\" she said.\nAt first, walking was hard for him. He had no strength, and his mood was bad. But his daughter supported him, and they walked together every evening. Slowly his health started to improve. Now he goes to a training class for older adults in the park twice a week.\n\"I survived. I'm alive, and I feel energetic,\" he says. \"Teenagers in the park say I walk faster than them!\" Physically, he's much stronger. His doctor says the effect of his new habits is easy to see: his blood pressure is better, and there's less concern about his heart.", + "glosses": { + "habits": "习惯" + }, + "questions": [ + { + "type": "gist", + "question": "这篇文章主要讲什么?", + "options": [ + "一位老人改变生活方式后身体变好了", + "怎样治疗心脏病", + "公园里的运动课" + ] + }, + { + "type": "detail", + "question": "医生建议王先生做什么?", + "options": [ + "戒烟、吃天然的食物、每天走路", + "住院休息", + "每天跑步" + ] + }, + { + "type": "inference", + "question": "王先生一开始为什么觉得走路很难?", + "options": [ + "身体没力气,心情也不好", + "公园太远", + "女儿不支持他" + ] + } + ] + }, + { + "id": "A2-U10-M3", + "mode": "reading", + "title": "旅行急救小知识", + "text": "Health tips for your trip\nMost health problems on a trip are not serious, though some can be. Here are some specific tips.\nStomach problems: These are the most common. Drink bottled water and wash fruit. If you get a stomachache, drink lots of water and rest. See a doctor if you can't keep water down for a day.\nFeet: If you injure your foot, twist your ankle or hurt a toe, take off your shoe and put something cold on it. Keep your foot up. If it's very swollen, or you can't walk, go to a medical center.\nSun: Put sun cream on your face, lips, cheeks and chin. Too much sun is harmful, and heat can increase your temperature. If you feel dizzy and hot, go into the shade and drink water.\nBites: Some insect bites can make your arm red. Humans are strong, and the body has natural ways to deal with them, so usually the bite gets better by itself.\nIn an emergency, don't panic. Your fear is normal, but you need to think clearly. Find the local emergency number before your trip. Medical care can be expensive, therefore travel insurance is a good method to avoid big bills.", + "glosses": { + "insect": "昆虫", + "insurance": "保险" + }, + "questions": [ + { + "type": "gist", + "question": "这篇文章主要讲什么?", + "options": [ + "旅行中常见的健康问题怎么处理", + "怎样买旅行保险", + "哪些国家最危险" + ] + }, + { + "type": "detail", + "question": "如果扭伤了脚踝,文章建议先做什么?", + "options": [ + "脱鞋、冷敷、把脚抬高", + "马上去医院", + "继续走路" + ] + }, + { + "type": "inference", + "question": "为什么建议出发前查好当地急救电话?", + "options": [ + "紧急时能马上找到帮助", + "电话很贵", + "当地人不会说英语" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "说清症状", + "bands": [ + "只说不舒服", + "说出症状和部位", + "说出症状、部位、开始时间和变化" + ], + "pass": 1 + }, + { + "name": "问清医嘱", + "bands": [ + "没有提问", + "问了一个用药或休息的问题", + "问清怎么吃药、要不要休息和复诊" + ], + "pass": 1 + } + ] + }, + "excluded": [ + { + "en": "sprain", + "reason": "不在词表中;用 hurt my ankle 表达" + }, + { + "en": "throat", + "reason": "B2;只在理解中出现" + } + ] +} diff --git a/kouyu_english/assets/courses/A2/A2-U11.json b/kouyu_english/assets/courses/A2/A2-U11.json new file mode 100644 index 0000000..0bd0124 --- /dev/null +++ b/kouyu_english/assets/courses/A2/A2-U11.json @@ -0,0 +1,1235 @@ +{ + "schemaVersion": 1, + "id": "A2-U11", + "revision": 1, + "level": "A2", + "title": "聊兴趣与家乡", + "categories": [ + "日常" + ], + "canDo": "围绕一个话题连续聊几轮", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "lijiang", + "hangzhou", + "canada", + "weihai", + "chile", + "kim" + ], + "grammar": [ + { + "id": "62", + "use": "active" + }, + { + "id": "62-2", + "use": "active", + "reason": "Have you ever ...? 是聊经历时最自然的问法" + }, + { + "id": "65", + "use": "active" + }, + { + "id": "65-2", + "use": "active" + }, + { + "id": "40", + "use": "active" + }, + { + "id": "161", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A2-U11-P01", + "type": "phrase", + "en": "I'm really into photography.", + "zh": "我特别喜欢摄影。", + "sceneWord": false, + "match": [ + [ + "really into", + "i'm into" + ] + ], + "example": { + "en": "My son is really into football.", + "zh": "我儿子特别喜欢足球。" + }, + "review": { + "prompt": "说你特别喜欢做饭。" + } + }, + { + "id": "A2-U11-P02", + "type": "phrase", + "en": "How did you get into it?", + "zh": "你是怎么喜欢上的?", + "sceneWord": false, + "match": [ + [ + "get into", + "got into" + ] + ], + "example": { + "en": "I got into running last year.", + "zh": "我去年喜欢上了跑步。" + }, + "review": { + "prompt": "问朋友是怎么喜欢上画画的。" + } + }, + { + "id": "A2-U11-P03", + "type": "phrase", + "en": "I've played the violin since I was ten.", + "zh": "我从十岁起就拉小提琴。", + "sceneWord": false, + "match": [ + [ + "since i was" + ] + ], + "example": { + "en": "I've lived here since I was five.", + "zh": "我五岁起就住在这里。" + }, + "review": { + "prompt": "说你从八岁起就会游泳。" + } + }, + { + "id": "A2-U11-P04", + "type": "phrase", + "en": "I'm not very good at it.", + "zh": "我不太擅长。", + "sceneWord": false, + "match": [ + [ + "good at" + ] + ], + "example": { + "en": "She's very good at singing.", + "zh": "她很擅长唱歌。" + }, + "review": { + "prompt": "说你不太擅长打篮球。" + } + }, + { + "id": "A2-U11-P05", + "type": "phrase", + "en": "Where did you grow up?", + "zh": "你在哪里长大?", + "sceneWord": false, + "match": [ + [ + "grow up", + "grew up" + ] + ], + "example": { + "en": "I grew up in a small village.", + "zh": "我在一个小村子里长大。" + }, + "review": { + "prompt": "说你在上海长大。" + } + }, + { + "id": "A2-U11-P06", + "type": "phrase", + "en": "My hometown is famous for its food.", + "zh": "我的家乡以美食出名。", + "sceneWord": false, + "match": [ + [ + "famous for" + ] + ], + "example": { + "en": "The city is famous for its old buildings.", + "zh": "这座城市以老建筑出名。" + }, + "review": { + "prompt": "说你家乡以茶出名。" + } + }, + { + "id": "A2-U11-P07", + "type": "phrase", + "en": "There isn't much to do there.", + "zh": "那里没什么可玩的。", + "sceneWord": false, + "match": [ + [ + "much to do", + "lot to do" + ] + ], + "example": { + "en": "There's a lot to do in the city.", + "zh": "城里有很多可玩的。" + }, + "review": { + "prompt": "说你的小镇没什么可玩的。" + } + }, + { + "id": "A2-U11-P08", + "type": "phrase", + "en": "The best thing about it is the people.", + "zh": "那里最好的是人。", + "sceneWord": false, + "match": [ + [ + "best thing about" + ] + ], + "example": { + "en": "The best thing about my job is the travel.", + "zh": "我工作最好的一点是能出差。" + }, + "review": { + "prompt": "说家乡最好的是食物。" + } + }, + { + "id": "A2-U11-P09", + "type": "phrase", + "en": "How about you?", + "zh": "你呢?", + "sceneWord": false, + "match": [ + [ + "how about you", + "what about you" + ] + ], + "example": { + "en": "I like jazz. What about you?", + "zh": "我喜欢爵士乐,你呢?" + }, + "review": { + "prompt": "说完自己的爱好后反问对方。" + } + }, + { + "id": "A2-U11-P10", + "type": "phrase", + "en": "That sounds interesting.", + "zh": "听起来很有意思。", + "sceneWord": false, + "match": [ + [ + "sounds interesting", + "sounds fun", + "sounds great" + ] + ], + "example": { + "en": "A cooking class? That sounds fun.", + "zh": "烹饪课?听起来很好玩。" + }, + "review": { + "prompt": "朋友说他在学跳舞,你回应一句。" + } + }, + { + "id": "A2-U11-P11", + "type": "phrase", + "en": "Have you ever been there?", + "zh": "你去过那里吗?", + "sceneWord": false, + "match": [ + [ + "have you ever" + ] + ], + "example": { + "en": "Have you ever tried Chinese tea?", + "zh": "你喝过中国茶吗?" + }, + "review": { + "prompt": "问朋友有没有去过北京。" + } + }, + { + "id": "A2-U11-W01", + "type": "word", + "en": "beginner", + "zh": "初学者", + "sceneWord": false, + "match": [ + [ + "beginner", + "beginners" + ] + ], + "example": { + "en": "This class is for beginners.", + "zh": "这个班是给初学者的。" + }, + "review": { + "prompt": "说你还是个初学者。" + } + }, + { + "id": "A2-U11-W02", + "type": "word", + "en": "childhood", + "zh": "童年", + "sceneWord": false, + "match": [ + [ + "childhood" + ] + ], + "example": { + "en": "I spent my childhood by the sea.", + "zh": "我的童年是在海边度过的。" + }, + "review": { + "prompt": "说你童年住在农村。" + } + }, + { + "id": "A2-U11-W03", + "type": "word", + "en": "lively", + "zh": "热闹的;活泼的", + "sceneWord": false, + "match": [ + [ + "lively" + ] + ], + "example": { + "en": "The market is very lively at night.", + "zh": "夜市很热闹。" + }, + "review": { + "prompt": "说你的家乡很热闹。" + } + } + ], + "receptiveWords": [ + { + "id": "A2-U11-R01", + "en": "photography", + "zh": "摄影" + }, + { + "id": "A2-U11-R02", + "en": "differently", + "zh": "不同地" + }, + { + "id": "A2-U11-R03", + "en": "million", + "zh": "百万" + }, + { + "id": "A2-U11-R04", + "en": "talent", + "zh": "天赋" + }, + { + "id": "A2-U11-R05", + "en": "ability", + "zh": "能力" + }, + { + "id": "A2-U11-R06", + "en": "achieve", + "zh": "实现" + }, + { + "id": "A2-U11-R07", + "en": "admire", + "zh": "钦佩" + }, + { + "id": "A2-U11-R08", + "en": "ambition", + "zh": "抱负" + }, + { + "id": "A2-U11-R09", + "en": "classic", + "zh": "经典的" + }, + { + "id": "A2-U11-R10", + "en": "colorful", + "zh": "色彩丰富的" + }, + { + "id": "A2-U11-R11", + "en": "competition", + "zh": "比赛" + }, + { + "id": "A2-U11-R12", + "en": "creative", + "zh": "有创造力的" + }, + { + "id": "A2-U11-R13", + "en": "creativity", + "zh": "创造力" + }, + { + "id": "A2-U11-R14", + "en": "familiar", + "zh": "熟悉的" + }, + { + "id": "A2-U11-R15", + "en": "hate", + "zh": "讨厌" + }, + { + "id": "A2-U11-R16", + "en": "native", + "zh": "本地的;土生土长的" + }, + { + "id": "A2-U11-R17", + "en": "population", + "zh": "人口" + }, + { + "id": "A2-U11-R18", + "en": "pride", + "zh": "自豪" + }, + { + "id": "A2-U11-R19", + "en": "tradition", + "zh": "传统" + }, + { + "id": "A2-U11-R20", + "en": "well-known", + "zh": "有名的" + }, + { + "id": "A2-U11-R21", + "en": "century", + "zh": "世纪" + }, + { + "id": "A2-U11-R22", + "en": "generation", + "zh": "一代人" + }, + { + "id": "A2-U11-R23", + "en": "youth", + "zh": "青年时期" + }, + { + "id": "A2-U11-R24", + "en": "downtown", + "zh": "市中心" + }, + { + "id": "A2-U11-R25", + "en": "act", + "zh": "表演" + }, + { + "id": "A2-U11-R26", + "en": "amusement", + "zh": "娱乐" + }, + { + "id": "A2-U11-R27", + "en": "audience", + "zh": "观众" + }, + { + "id": "A2-U11-R28", + "en": "author", + "zh": "作者" + }, + { + "id": "A2-U11-R29", + "en": "award", + "zh": "奖项" + }, + { + "id": "A2-U11-R30", + "en": "badminton", + "zh": "羽毛球" + }, + { + "id": "A2-U11-R31", + "en": "disco", + "zh": "迪斯科舞厅" + }, + { + "id": "A2-U11-R32", + "en": "entertainment", + "zh": "娱乐" + }, + { + "id": "A2-U11-R33", + "en": "exhibition", + "zh": "展览" + }, + { + "id": "A2-U11-R34", + "en": "fiction", + "zh": "小说" + }, + { + "id": "A2-U11-R35", + "en": "golf", + "zh": "高尔夫球" + }, + { + "id": "A2-U11-R36", + "en": "instrument", + "zh": "乐器" + }, + { + "id": "A2-U11-R37", + "en": "leisure", + "zh": "空闲" + }, + { + "id": "A2-U11-R38", + "en": "portrait", + "zh": "肖像" + }, + { + "id": "A2-U11-R39", + "en": "racket", + "zh": "球拍" + }, + { + "id": "A2-U11-R40", + "en": "rhythm", + "zh": "节奏" + }, + { + "id": "A2-U11-R41", + "en": "scene", + "zh": "场景;圈子" + }, + { + "id": "A2-U11-R42", + "en": "snowboarding", + "zh": "单板滑雪" + }, + { + "id": "A2-U11-R43", + "en": "title", + "zh": "标题" + }, + { + "id": "A2-U11-R44", + "en": "tune", + "zh": "曲调" + }, + { + "id": "A2-U11-R45", + "en": "violin", + "zh": "小提琴" + }, + { + "id": "A2-U11-R46", + "en": "dancer", + "zh": "舞者" + }, + { + "id": "A2-U11-R47", + "en": "footballer", + "zh": "足球运动员" + }, + { + "id": "A2-U11-R48", + "en": "painter", + "zh": "画家" + }, + { + "id": "A2-U11-R49", + "en": "photographer", + "zh": "摄影师" + }, + { + "id": "A2-U11-R50", + "en": "winner", + "zh": "获胜者" + }, + { + "id": "A2-U11-R51", + "en": "expert", + "zh": "专家" + }, + { + "id": "A2-U11-R52", + "en": "personality", + "zh": "性格" + }, + { + "id": "A2-U11-R53", + "en": "dislike", + "zh": "不喜欢" + }, + { + "id": "A2-U11-R54", + "en": "fisherman", + "zh": "渔民" + }, + { + "id": "A2-U11-R55", + "en": "bush", + "zh": "灌木" + }, + { + "id": "A2-U11-R56", + "en": "custom", + "zh": "风俗" + }, + { + "id": "A2-U11-R57", + "en": "earth", + "zh": "地球" + }, + { + "id": "A2-U11-R58", + "en": "path", + "zh": "小路" + }, + { + "id": "A2-U11-R59", + "en": "planet", + "zh": "星球" + }, + { + "id": "A2-U11-R60", + "en": "society", + "zh": "社会" + }, + { + "id": "A2-U11-R61", + "en": "architecture", + "zh": "建筑" + }, + { + "id": "A2-U11-R62", + "en": "mosque", + "zh": "清真寺" + }, + { + "id": "A2-U11-R63", + "en": "playground", + "zh": "操场" + }, + { + "id": "A2-U11-R64", + "en": "stadium", + "zh": "体育场" + }, + { + "id": "A2-U11-R65", + "en": "practice", + "zh": "练习" + } + ], + "segments": [ + { + "id": "A2-U11-S1", + "title": "聊爱好", + "minutes": 13, + "itemIds": [ + "A2-U11-P01", + "A2-U11-P02", + "A2-U11-P03", + "A2-U11-P04", + "A2-U11-W01" + ], + "listening": { + "text": "What do you do in your free time? I'm really into photography. Oh, how did you get into it? My grandfather was a photographer. What about music? I've played the violin since I was ten, but I'm not very good at it. I'm still a beginner at the piano too.", + "question": "说话人的爷爷是做什么的?", + "options": [ + "摄影师", + "小提琴老师", + "画家" + ] + }, + "speaking": [ + { + "text": "I'm really into photography.", + "tip": "photography 重音在 tog" + }, + { + "text": "How did you get into it?" + }, + { + "text": "I've played the violin since I was ten." + }, + { + "text": "I'm not very good at it." + }, + { + "text": "I'm a beginner." + } + ], + "reading": { + "text": "Hi, I'm Leo!\nI'm really into badminton. I got into it at school, and I've played since I was twelve. I practice three times a week, and last year I was the winner of a small competition. I'm also learning the guitar, but I'm not very good at it. I'm a beginner, and I have no rhythm! I just bought a new racket, so I'm playing badminton this weekend.", + "question": "Leo 在吉他上的水平怎样?", + "options": [ + "初学者,不太会", + "很厉害", + "得过奖" + ] + }, + "writing": { + "prompt": "写两句话:说你特别喜欢摄影,但不太擅长。", + "example": "I'm really into photography, but I'm not very good at it.", + "itemIds": [ + "A2-U11-P01", + "A2-U11-P04" + ] + }, + "independent": { + "prompt": "用英语问朋友怎么喜欢上一个爱好的,再说你从十岁起就学一种乐器,但还是初学者。", + "itemIds": [ + "A2-U11-P02", + "A2-U11-P03", + "A2-U11-W01" + ] + } + }, + { + "id": "A2-U11-S2", + "title": "聊家乡", + "minutes": 13, + "itemIds": [ + "A2-U11-P05", + "A2-U11-P06", + "A2-U11-P07", + "A2-U11-P08", + "A2-U11-W02", + "A2-U11-W03" + ], + "listening": { + "text": "Where did you grow up? In a small town near the sea. I spent my childhood there. My hometown is famous for its fish. Is it lively? Not really. There isn't much to do there. But the best thing about it is the people. Everyone is very kind.", + "question": "说话人觉得家乡最好的是什么?", + "options": [ + "人", + "鱼", + "海" + ] + }, + "speaking": [ + { + "text": "Where did you grow up?" + }, + { + "text": "My hometown is famous for its food." + }, + { + "text": "There isn't much to do there." + }, + { + "text": "The best thing about it is the people." + }, + { + "text": "I spent my childhood there.", + "tip": "childhood 重音在前" + }, + { + "text": "It's very lively.", + "tip": "lively 读作 /ˈlaɪvli/" + } + ], + "reading": { + "text": "My hometown\nI grew up in Lijiang, a small city in the south-west of China. It's famous for its old town, with small streets, colorful houses and a lot of old customs. The population is small, and the native people have a lot of pride in their traditions. The downtown area is lively at night, but there isn't much to do in the villages. The best thing about it is the mountains.", + "question": "丽江以什么出名?", + "options": [ + "古城", + "大海", + "高楼" + ] + }, + "writing": { + "prompt": "写两句话:说你在一个小镇长大,家乡以食物出名。", + "example": "I grew up in a small town. My hometown is famous for its food.", + "itemIds": [ + "A2-U11-P05", + "A2-U11-P06" + ] + }, + "independent": { + "prompt": "用英语说你的童年是在家乡度过的,那里很热闹,但没什么可玩的,最好的是那里的人。", + "itemIds": [ + "A2-U11-W02", + "A2-U11-W03", + "A2-U11-P07", + "A2-U11-P08" + ] + } + }, + { + "id": "A2-U11-S3", + "title": "把话接下去", + "minutes": 12, + "itemIds": [ + "A2-U11-P09", + "A2-U11-P10", + "A2-U11-P11" + ], + "listening": { + "text": "I love hiking. How about you? I'm into golf. That sounds interesting. Where do you play? There's a club near the stadium. Have you ever played? No, never. But I'd love to try.", + "question": "说话人在哪里打高尔夫?", + "options": [ + "体育场附近的俱乐部", + "学校", + "公园" + ] + }, + "speaking": [ + { + "text": "How about you?" + }, + { + "text": "That sounds interesting." + }, + { + "text": "Have you ever been there?", + "tip": "ever 轻读" + } + ], + "reading": { + "text": "Tips for a good conversation\n1. Don't just answer. Ask a question back: \"How about you?\"\n2. Show interest: \"That sounds interesting!\" or \"Really?\"\n3. Ask about experiences: \"Have you ever been there?\" \"Have you ever tried it?\"\n4. Listen, and ask more about the things the other person says.\nPeople love to talk about themselves, so good questions make a good conversation.", + "question": "要表现出对对方的话感兴趣,可以怎么说?", + "options": [ + "That sounds interesting!", + "How about you?", + "Have you ever been there?" + ] + }, + "writing": { + "prompt": "写两句话:说完你的爱好后反问对方,并回应“听起来很有意思”。", + "example": "I love cooking. How about you? That sounds interesting.", + "itemIds": [ + "A2-U11-P09", + "A2-U11-P10" + ] + }, + "independent": { + "prompt": "用英语问朋友有没有去过你的家乡,再问他呢。", + "itemIds": [ + "A2-U11-P11", + "A2-U11-P09" + ] + } + } + ], + "scenes": [ + { + "id": "A2-U11-C1", + "kind": "main", + "title": "和新朋友聊爱好", + "learnerRole": "自己", + "aiRole": "在聚会上认识的新朋友", + "setting": "你在朋友的聚会上认识了一个人,你们聊起了各自的爱好。", + "turns": [ + { + "ai": "So what do you do in your free time?", + "goal": "说你特别喜欢摄影,再反问对方", + "model": "I'm really into photography. How about you?", + "zh": "我特别喜欢摄影。你呢?", + "itemIds": [ + "A2-U11-P01", + "A2-U11-P09" + ] + }, + { + "ai": "I play the violin.", + "goal": "说听起来很有意思,问他怎么喜欢上的", + "model": "That sounds interesting. How did you get into it?", + "zh": "听起来很有意思。你是怎么喜欢上的?", + "itemIds": [ + "A2-U11-P10", + "A2-U11-P02" + ] + }, + { + "ai": "My mother is a music teacher. I've played since I was six. Do you play an instrument?", + "goal": "说你从十岁起弹钢琴,但不太擅长", + "model": "I've played the piano since I was ten, but I'm not very good at it.", + "zh": "我从十岁起弹钢琴,但不太擅长。", + "itemIds": [ + "A2-U11-P03", + "A2-U11-P04" + ] + }, + { + "ai": "That's OK. I'm a beginner at photography.", + "goal": "说你也还是初学者", + "model": "Me too. I'm still a beginner.", + "zh": "我也是,我还是个初学者。", + "itemIds": [ + "A2-U11-W01" + ] + }, + { + "ai": "Have you ever taken photos at the music festival?", + "goal": "说没有,但很想去", + "model": "No, never. That sounds fun.", + "zh": "没有,从来没有。听起来很好玩。", + "itemIds": [ + "A2-U11-P10" + ] + } + ] + }, + { + "id": "A2-U11-C2", + "kind": "variant", + "title": "聊彼此的家乡", + "learnerRole": "自己", + "aiRole": "外国同事", + "setting": "午饭时,外国同事问起你的家乡。", + "turns": [ + { + "ai": "Where did you grow up?", + "goal": "说你在杭州长大", + "model": "I grew up in Hangzhou. Have you ever been there?", + "zh": "我在杭州长大。你去过吗?", + "itemIds": [ + "A2-U11-P05", + "A2-U11-P11" + ] + }, + { + "ai": "No, never. What's it like?", + "goal": "说家乡以湖和茶出名", + "model": "It's famous for its lake and its tea.", + "zh": "那里以湖和茶出名。", + "itemIds": [ + "A2-U11-P06" + ] + }, + { + "ai": "Is it a big city?", + "goal": "说很热闹,最好的是食物", + "model": "Yes, and it's very lively. The best thing about it is the food.", + "zh": "是的,很热闹。那里最好的是食物。", + "itemIds": [ + "A2-U11-W03", + "A2-U11-P08" + ] + }, + { + "ai": "That sounds great.", + "goal": "说你童年在那里度过,但现在住在北京,再反问他", + "model": "I spent my childhood there, but I live in Beijing now. How about you?", + "zh": "我的童年是在那里度过的,但现在住在北京。你呢?", + "itemIds": [ + "A2-U11-W02", + "A2-U11-P09" + ] + }, + { + "ai": "I'm from a small village in Canada.", + "goal": "问那里怎么样,并猜那里没什么可玩的", + "model": "Nice! Is there much to do there?", + "zh": "不错!那里好玩吗?", + "itemIds": [ + "A2-U11-P07" + ] + }, + { + "ai": "Not really. There isn't much to do there.", + "goal": "回应", + "model": "But it sounds very quiet and beautiful.", + "zh": "但听起来很安静很美。", + "itemIds": [] + } + ] + }, + { + "id": "A2-U11-C3", + "kind": "variant", + "title": "聊运动", + "learnerRole": "自己", + "aiRole": "健身房里认识的人", + "setting": "你在健身房和一个常见面的人聊起运动。", + "turns": [ + { + "ai": "Are you into sport?", + "goal": "说你特别喜欢羽毛球", + "model": "Yes, I'm really into badminton.", + "zh": "是的,我特别喜欢羽毛球。", + "itemIds": [ + "A2-U11-P01" + ] + }, + { + "ai": "How did you get into it?", + "goal": "说上学时喜欢上的,从十二岁起就打", + "model": "I got into it at school. I've played since I was twelve.", + "zh": "上学时喜欢上的。我十二岁起就打。", + "itemIds": [ + "A2-U11-P02", + "A2-U11-P03" + ] + }, + { + "ai": "Are you good?", + "goal": "说不太擅长,然后反问", + "model": "Not really. I'm not very good at it. What about you?", + "zh": "不太好,我不太擅长。你呢?", + "itemIds": [ + "A2-U11-P04", + "A2-U11-P09" + ] + }, + { + "ai": "I play golf. Have you ever played?", + "goal": "说没打过,听起来很有意思", + "model": "No, I haven't. That sounds interesting.", + "zh": "没打过。听起来很有意思。", + "itemIds": [ + "A2-U11-P10" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A2-U11-T1", + "sceneId": "A2-U11-C1", + "goal": "和新朋友聊爱好并把话接下去", + "itemIds": [ + "A2-U11-P01", + "A2-U11-P09", + "A2-U11-P10", + "A2-U11-P02", + "A2-U11-P03", + "A2-U11-P04", + "A2-U11-W01" + ], + "slots": [ + "爱好", + "经历", + "反问" + ] + }, + { + "id": "A2-U11-T2", + "sceneId": "A2-U11-C2", + "goal": "向外国同事介绍家乡", + "itemIds": [ + "A2-U11-P05", + "A2-U11-P11", + "A2-U11-P06", + "A2-U11-W03", + "A2-U11-P08", + "A2-U11-W02", + "A2-U11-P09", + "A2-U11-P07" + ], + "slots": [ + "家乡", + "特点", + "反问" + ] + }, + { + "id": "A2-U11-T3", + "sceneId": "A2-U11-C3", + "goal": "和人聊运动", + "itemIds": [ + "A2-U11-P01", + "A2-U11-P02", + "A2-U11-P03", + "A2-U11-P04", + "A2-U11-P09", + "A2-U11-P10" + ], + "slots": [ + "运动", + "水平", + "反问" + ] + } + ], + "materials": [ + { + "id": "A2-U11-M1", + "mode": "listening", + "title": "电台访谈:一位摄影师的爱好", + "text": "Welcome to Leisure Time. My guest today is Sara Kim, a well-known photographer. Sara, how did you get into photography? Well, in my childhood I didn't have much talent for art. I couldn't paint, and my pictures were terrible. Then, when I was fifteen, my uncle gave me an old camera. I took photos of everything: bushes, paths, a fisherman by the river. And now you've won several awards. Yes, I was the winner of a national competition last year, which was amazing. What do you like to photograph most? People. I love portraits. Every face shows a personality. I also admire the dancers in the street dance scene. Their creativity and rhythm are wonderful. Do you have any other hobbies? I play the violin, badly! And I love fiction. My favorite author is a woman from Chile. What's your advice for beginners? Don't worry about expensive equipment. Just go out and practice. You can achieve a lot with a phone. Every generation sees the world differently, so show us yours. Thank you, Sara.", + "glosses": { + "amazing": "了不起的", + "equipment": "设备", + "advice": "建议" + }, + "questions": [ + { + "type": "gist", + "question": "这段访谈主要讲什么?", + "options": [ + "一位摄影师怎样爱上摄影以及她的爱好", + "怎样买一台好相机", + "街舞比赛" + ] + }, + { + "type": "detail", + "question": "Sara 最喜欢拍什么?", + "options": [ + "人物肖像", + "风景", + "动物" + ] + }, + { + "type": "inference", + "question": "Sara 为什么说初学者不用担心贵的设备?", + "options": [ + "多练习比好设备更重要", + "相机都很便宜", + "她想卖旧相机" + ] + } + ] + }, + { + "id": "A2-U11-M2", + "mode": "reading", + "title": "家乡介绍:海边小城", + "text": "My hometown: Weihai\nI grew up in Weihai, a city by the sea in the east of China. It's not very big: the population is about three million. People say it's one of the cleanest cities in China, and I feel a lot of pride when I hear that.\nThe city is famous for its seafood and its beaches. In summer, the downtown area is lively, with lots of visitors. There are amusement parks, a big stadium and an exhibition about the city's past. A famous footballer also comes from here. The architecture is a mix of old and new: you can see a mosque, a church and a century-old Chinese house in the same street.\nMy grandfather was a fisherman, like many men of his generation. Every morning in my youth, I walked with him along the path to the sea. He taught me the old customs of the sea, and I admired him a lot.\nToday, the city is changing. Young people want entertainment, and many of them leave for big cities. But the best thing about Weihai is still the same: the sea, the fresh air and the kind people.", + "glosses": { + "church": "教堂" + }, + "questions": [ + { + "type": "gist", + "question": "这篇文章主要讲什么?", + "options": [ + "作者介绍自己的家乡威海", + "怎样当渔民", + "中国的大城市" + ] + }, + { + "type": "detail", + "question": "作者的爷爷是做什么的?", + "options": [ + "渔民", + "厨师", + "司机" + ] + }, + { + "type": "inference", + "question": "为什么很多年轻人离开威海?", + "options": [ + "他们想要更多娱乐,去了大城市", + "城市太脏", + "找不到海鲜" + ] + } + ] + }, + { + "id": "A2-U11-M3", + "mode": "reading", + "title": "网上的兴趣小组", + "text": "Find your people!\nOur website helps people with the same interests meet each other. Here are some of this month's popular groups:\nThe Creative Club: For painters and anyone who likes drawing or making things. No talent needed, just creativity. We meet at the old playground on Saturdays.\nBook Club: We read one book a month, fiction or not, and then discuss it. This month's title is a classic about a boy who wants to travel to another planet. The author comes to our last meeting!\nMusic for All: Do you play an instrument? Do you have a favorite tune? Beginners are welcome. Last year we played for an audience of 200 people.\nSnow and Hills: Snowboarding in winter, hiking in summer. Our members are from 18 to 70. Don't worry about your ability; we just want to have fun.\nWorld Society: A group for people who love learning about life on Earth, and about customs and traditions from different countries. If you have ambition to travel the world, join us.\nWe hate boring weekends. You don't have to be an expert. Join a group, act a little, and meet people with familiar dreams. Please note: if you dislike a group, you can leave at any time. Our website is free, and so is the disco night on Fridays!", + "glosses": { + "website": "网站", + "discuss": "讨论", + "dreams": "梦想" + }, + "questions": [ + { + "type": "gist", + "question": "这篇文章主要介绍什么?", + "options": [ + "网站上几个受欢迎的兴趣小组", + "一本经典小说", + "怎样学乐器" + ] + }, + { + "type": "detail", + "question": "读书小组这个月读的书讲什么?", + "options": [ + "一个想去另一个星球的男孩", + "一个渔民", + "一位画家" + ] + }, + { + "type": "inference", + "question": "文章为什么说“不用是专家”?", + "options": [ + "小组欢迎各种水平的人", + "专家不能参加", + "小组很难进" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "聊得下去", + "bands": [ + "只回答对方的问题", + "回答后能反问或回应一句", + "能回应、反问并追问细节,连续聊几轮" + ], + "pass": 1 + }, + { + "name": "说得具体", + "bands": [ + "只说喜欢或不喜欢", + "说出爱好或家乡的一个特点", + "说出特点、时间或原因等具体信息" + ], + "pass": 1 + } + ] + }, + "excluded": [ + { + "en": "originally", + "reason": "B2;用 Where did you grow up? 表达" + }, + { + "en": "used to", + "reason": "B1;到 B1 再学" + } + ] +} diff --git a/kouyu_english/assets/courses/A2/A2-U12.json b/kouyu_english/assets/courses/A2/A2-U12.json new file mode 100644 index 0000000..af0e50e --- /dev/null +++ b/kouyu_english/assets/courses/A2/A2-U12.json @@ -0,0 +1,1154 @@ +{ + "schemaVersion": 1, + "id": "A2-U12", + "revision": 1, + "level": "A2", + "title": "建议与意见", + "categories": [ + "日常", + "旅行" + ], + "canDo": "给建议、征求意见", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [], + "grammar": [ + { + "id": "139", + "use": "active" + }, + { + "id": "142", + "use": "active" + }, + { + "id": "258", + "use": "receptive", + "reason": "Should I ...? 在本单元只用于理解" + }, + { + "id": "161", + "use": "active" + }, + { + "id": "150", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A2-U12-P01", + "type": "phrase", + "en": "What do you think?", + "zh": "你怎么看?", + "sceneWord": false, + "match": [ + [ + "what do you think" + ] + ], + "example": { + "en": "What do you think of this hotel?", + "zh": "你觉得这家酒店怎么样?" + }, + "review": { + "prompt": "问朋友对这个计划怎么看。" + } + }, + { + "id": "A2-U12-P02", + "type": "phrase", + "en": "In my opinion, it's too expensive.", + "zh": "我觉得太贵了。", + "sceneWord": false, + "match": [ + [ + "in my opinion" + ] + ], + "example": { + "en": "In my opinion, the train is better.", + "zh": "我觉得坐火车更好。" + }, + "review": { + "prompt": "用“在我看来”说这家餐厅很好。" + } + }, + { + "id": "A2-U12-P03", + "type": "phrase", + "en": "I agree with you.", + "zh": "我同意你的看法。", + "sceneWord": false, + "match": [ + [ + "agree with" + ] + ], + "example": { + "en": "I don't agree with him.", + "zh": "我不同意他的看法。" + }, + "review": { + "prompt": "说你同意朋友的看法。" + } + }, + { + "id": "A2-U12-P04", + "type": "phrase", + "en": "I'm not sure about that.", + "zh": "这个我不太确定。", + "sceneWord": false, + "match": [ + [ + "not sure about" + ] + ], + "example": { + "en": "I'm not sure about the date.", + "zh": "日期我不太确定。" + }, + "review": { + "prompt": "委婉地说你对这个主意不太确定。" + } + }, + { + "id": "A2-U12-P05", + "type": "phrase", + "en": "You should try it.", + "zh": "你应该试试。", + "sceneWord": false, + "match": [ + [ + "you should" + ] + ], + "example": { + "en": "You should see a doctor.", + "zh": "你应该去看医生。" + }, + "review": { + "prompt": "建议朋友早点睡。" + } + }, + { + "id": "A2-U12-P06", + "type": "phrase", + "en": "Why don't you ask your manager?", + "zh": "你为什么不问问你的经理?", + "sceneWord": false, + "match": [ + [ + "why don't you" + ] + ], + "example": { + "en": "Why don't you take a taxi?", + "zh": "你为什么不打个车?" + }, + "review": { + "prompt": "建议朋友去问问老师。" + } + }, + { + "id": "A2-U12-P07", + "type": "phrase", + "en": "It's a good idea to book early.", + "zh": "早点订是个好主意。", + "sceneWord": false, + "match": [ + [ + "a good idea to" + ] + ], + "example": { + "en": "It's a good idea to take a jacket.", + "zh": "带件外套是个好主意。" + }, + "review": { + "prompt": "说带雨伞是个好主意。" + } + }, + { + "id": "A2-U12-P08", + "type": "phrase", + "en": "Maybe you could take the bus.", + "zh": "也许你可以坐公交车。", + "sceneWord": false, + "match": [ + [ + "you could" + ] + ], + "example": { + "en": "Maybe you could ask at the front desk.", + "zh": "也许你可以去前台问问。" + }, + "review": { + "prompt": "委婉地建议朋友换个时间。" + } + }, + { + "id": "A2-U12-P09", + "type": "phrase", + "en": "Can I ask your advice?", + "zh": "我能听听你的建议吗?", + "sceneWord": false, + "match": [ + [ + "your advice", + "some advice" + ] + ], + "example": { + "en": "I need some advice about my trip.", + "zh": "我的旅行需要一些建议。" + }, + "review": { + "prompt": "向同事请教意见。" + } + }, + { + "id": "A2-U12-P10", + "type": "phrase", + "en": "What would you do?", + "zh": "换作你会怎么做?", + "sceneWord": false, + "match": [ + [ + "what would you do" + ] + ], + "example": { + "en": "I have two job offers. What would you do?", + "zh": "我有两个工作机会,换作你会怎么做?" + }, + "review": { + "prompt": "问朋友如果是他会怎么做。" + } + }, + { + "id": "A2-U12-P11", + "type": "phrase", + "en": "That's true, but it's far.", + "zh": "没错,不过很远。", + "sceneWord": false, + "match": [ + [ + "that's true" + ] + ], + "example": { + "en": "That's true, but it's very cheap.", + "zh": "没错,不过它很便宜。" + }, + "review": { + "prompt": "先同意对方,再说出不同的看法。" + } + }, + { + "id": "A2-U12-W01", + "type": "word", + "en": "disagree", + "zh": "不同意", + "sceneWord": false, + "match": [ + [ + "disagree" + ] + ], + "example": { + "en": "I'm sorry, but I disagree.", + "zh": "抱歉,我不同意。" + }, + "review": { + "prompt": "礼貌地说你不同意。" + } + }, + { + "id": "A2-U12-W02", + "type": "word", + "en": "confident", + "zh": "自信的", + "sceneWord": false, + "match": [ + [ + "confident" + ] + ], + "example": { + "en": "I'm not very confident about it.", + "zh": "我对此不太有信心。" + }, + "review": { + "prompt": "说你对考试很有信心。" + } + }, + { + "id": "A2-U12-W03", + "type": "word", + "en": "solution", + "zh": "解决办法", + "sceneWord": false, + "match": [ + [ + "solution" + ] + ], + "example": { + "en": "That's a good solution.", + "zh": "这是个好办法。" + }, + "review": { + "prompt": "说你有一个解决办法。" + } + } + ], + "receptiveWords": [ + { + "id": "A2-U12-R01", + "en": "argue", + "zh": "争论" + }, + { + "id": "A2-U12-R02", + "en": "argument", + "zh": "争吵;论点" + }, + { + "id": "A2-U12-R03", + "en": "discussion", + "zh": "讨论" + }, + { + "id": "A2-U12-R04", + "en": "consider", + "zh": "考虑" + }, + { + "id": "A2-U12-R05", + "en": "issue", + "zh": "问题" + }, + { + "id": "A2-U12-R06", + "en": "truly", + "zh": "真正地" + }, + { + "id": "A2-U12-R07", + "en": "indeed", + "zh": "的确" + }, + { + "id": "A2-U12-R08", + "en": "fact", + "zh": "事实" + }, + { + "id": "A2-U12-R09", + "en": "truth", + "zh": "真相" + }, + { + "id": "A2-U12-R10", + "en": "rumor", + "zh": "传言" + }, + { + "id": "A2-U12-R11", + "en": "secret", + "zh": "秘密" + }, + { + "id": "A2-U12-R12", + "en": "wise", + "zh": "明智的" + }, + { + "id": "A2-U12-R13", + "en": "silly", + "zh": "傻的" + }, + { + "id": "A2-U12-R14", + "en": "crazy", + "zh": "疯狂的" + }, + { + "id": "A2-U12-R15", + "en": "mad", + "zh": "生气的;疯的" + }, + { + "id": "A2-U12-R16", + "en": "fool", + "zh": "傻瓜" + }, + { + "id": "A2-U12-R17", + "en": "trick", + "zh": "窍门;把戏" + }, + { + "id": "A2-U12-R18", + "en": "joke", + "zh": "玩笑" + }, + { + "id": "A2-U12-R19", + "en": "encourage", + "zh": "鼓励" + }, + { + "id": "A2-U12-R20", + "en": "consequence", + "zh": "后果" + }, + { + "id": "A2-U12-R21", + "en": "purpose", + "zh": "目的" + }, + { + "id": "A2-U12-R22", + "en": "prepare", + "zh": "准备" + }, + { + "id": "A2-U12-R23", + "en": "realize", + "zh": "意识到" + }, + { + "id": "A2-U12-R24", + "en": "wonder", + "zh": "想知道" + }, + { + "id": "A2-U12-R25", + "en": "confuse", + "zh": "使困惑" + }, + { + "id": "A2-U12-R26", + "en": "effort", + "zh": "努力" + }, + { + "id": "A2-U12-R27", + "en": "success", + "zh": "成功" + }, + { + "id": "A2-U12-R28", + "en": "succeed", + "zh": "成功" + }, + { + "id": "A2-U12-R29", + "en": "challenge", + "zh": "挑战" + }, + { + "id": "A2-U12-R30", + "en": "opportunity", + "zh": "机会" + }, + { + "id": "A2-U12-R31", + "en": "importance", + "zh": "重要性" + }, + { + "id": "A2-U12-R32", + "en": "importantly", + "zh": "重要的是" + }, + { + "id": "A2-U12-R33", + "en": "negative", + "zh": "消极的" + }, + { + "id": "A2-U12-R34", + "en": "response", + "zh": "回应" + }, + { + "id": "A2-U12-R35", + "en": "positive", + "zh": "积极的" + }, + { + "id": "A2-U12-R36", + "en": "attitude", + "zh": "态度" + }, + { + "id": "A2-U12-R37", + "en": "strongly", + "zh": "强烈地" + }, + { + "id": "A2-U12-R38", + "en": "commitment", + "zh": "承诺;投入" + }, + { + "id": "A2-U12-R39", + "en": "criticize", + "zh": "批评" + }, + { + "id": "A2-U12-R40", + "en": "impress", + "zh": "给人留下好印象" + }, + { + "id": "A2-U12-R41", + "en": "influence", + "zh": "影响" + }, + { + "id": "A2-U12-R42", + "en": "impact", + "zh": "影响" + }, + { + "id": "A2-U12-R43", + "en": "significant", + "zh": "重大的" + }, + { + "id": "A2-U12-R44", + "en": "company", + "zh": "公司" + }, + { + "id": "A2-U12-R45", + "en": "communicate", + "zh": "沟通" + }, + { + "id": "A2-U12-R46", + "en": "communication", + "zh": "沟通" + }, + { + "id": "A2-U12-R47", + "en": "concentrate", + "zh": "集中注意力" + }, + { + "id": "A2-U12-R48", + "en": "difficulty", + "zh": "困难" + }, + { + "id": "A2-U12-R49", + "en": "easily", + "zh": "容易地" + }, + { + "id": "A2-U12-R50", + "en": "happiness", + "zh": "幸福" + }, + { + "id": "A2-U12-R51", + "en": "professional", + "zh": "专业的" + }, + { + "id": "A2-U12-R52", + "en": "quit", + "zh": "辞职;放弃" + }, + { + "id": "A2-U12-R53", + "en": "task", + "zh": "任务" + }, + { + "id": "A2-U12-R54", + "en": "unnecessary", + "zh": "不必要的" + }, + { + "id": "A2-U12-R55", + "en": "apply", + "zh": "申请" + }, + { + "id": "A2-U12-R56", + "en": "earn", + "zh": "挣钱" + }, + { + "id": "A2-U12-R57", + "en": "predict", + "zh": "预测" + } + ], + "segments": [ + { + "id": "A2-U12-S1", + "title": "问看法", + "minutes": 13, + "itemIds": [ + "A2-U12-P01", + "A2-U12-P02", + "A2-U12-P03", + "A2-U12-P04", + "A2-U12-P11", + "A2-U12-W01" + ], + "listening": { + "text": "What do you think of this hotel? In my opinion, it's too expensive. I agree with you. But the other one is far from the beach. That's true, but it's cheap. Hmm, I'm not sure about that. The rooms look old. OK, I disagree, but let's look at some more.", + "question": "他们最后怎么决定?", + "options": [ + "再看看其他酒店", + "订了贵的酒店", + "订了便宜的酒店" + ] + }, + "speaking": [ + { + "text": "What do you think?" + }, + { + "text": "In my opinion, it's too expensive.", + "tip": "opinion 重音在 pin" + }, + { + "text": "I agree with you." + }, + { + "text": "I'm not sure about that." + }, + { + "text": "That's true, but it's far." + }, + { + "text": "I'm sorry, but I disagree.", + "tip": "disagree 重音在最后" + } + ], + "reading": { + "text": "Online discussion: Is it better to travel alone?\nMia: In my opinion, yes. You can go anywhere you want.\nBen: I disagree. It's more fun with friends.\nLucy: I agree with Ben. And it's safer.\nMia: That's true, but friends always argue about money!\nSam: I'm not sure about that. My friends and I never argue.", + "question": "谁同意 Ben 的看法?", + "options": [ + "Lucy", + "Mia", + "Sam" + ] + }, + "writing": { + "prompt": "写两句话:问对方怎么看,然后说在你看来太贵了。", + "example": "What do you think? In my opinion, it's too expensive.", + "itemIds": [ + "A2-U12-P01", + "A2-U12-P02" + ] + }, + "independent": { + "prompt": "用英语先说“没错,不过太远了”,再说你不确定,最后礼貌地说你不同意。", + "itemIds": [ + "A2-U12-P11", + "A2-U12-P04", + "A2-U12-W01", + "A2-U12-P03" + ] + } + }, + { + "id": "A2-U12-S2", + "title": "给建议", + "minutes": 13, + "itemIds": [ + "A2-U12-P05", + "A2-U12-P06", + "A2-U12-P07", + "A2-U12-P08" + ], + "listening": { + "text": "I want to visit Japan, but I don't speak the language. You should try it anyway. Why don't you learn some easy words? It's a good idea to book your hotel early, too. And maybe you could take a tour for the first few days. Thanks, that's really good advice.", + "question": "朋友建议旅行前几天怎么做?", + "options": [ + "跟团游", + "自己开车", + "住在朋友家" + ] + }, + "speaking": [ + { + "text": "You should try it." + }, + { + "text": "Why don't you ask your manager?", + "tip": "don't you 连读成 /dəʊntʃu/" + }, + { + "text": "It's a good idea to book early." + }, + { + "text": "Maybe you could take the bus." + } + ], + "reading": { + "text": "Tips for your first trip abroad\n· You should check your passport a month before you go.\n· It's a good idea to book early. Hotels are cheaper.\n· Why don't you learn a few words of the local language? People love it.\n· Maybe you could carry some cash, not only cards.\n· Don't try to see everything. Rather, choose a few places and enjoy them.", + "question": "为什么建议早点订酒店?", + "options": [ + "酒店更便宜", + "酒店会客满", + "可以选好房间" + ] + }, + "writing": { + "prompt": "写两句话:建议朋友应该试一试,并说早点订是个好主意。", + "example": "You should try it. It's a good idea to book early.", + "itemIds": [ + "A2-U12-P05", + "A2-U12-P07" + ] + }, + "independent": { + "prompt": "朋友找不到住的地方,用英语建议他问问经理,或者也许可以换一家酒店。", + "itemIds": [ + "A2-U12-P06", + "A2-U12-P08" + ] + } + }, + { + "id": "A2-U12-S3", + "title": "征求意见", + "minutes": 12, + "itemIds": [ + "A2-U12-P09", + "A2-U12-P10", + "A2-U12-W02", + "A2-U12-W03" + ], + "listening": { + "text": "Can I ask your advice? Sure. I have a job offer in Shanghai, but my family is here. What would you do? That's hard. Are you confident about the job? Yes, very. Then why don't you try it for a year? That's a good solution. Thanks.", + "question": "朋友给出的办法是什么?", + "options": [ + "先去试一年", + "拒绝这份工作", + "带家人一起去" + ] + }, + "speaking": [ + { + "text": "Can I ask your advice?" + }, + { + "text": "What would you do?" + }, + { + "text": "I'm not very confident about it.", + "tip": "confident 重音在前" + }, + { + "text": "That's a good solution.", + "tip": "solution 读作 /səˈluːʃn/" + } + ], + "reading": { + "text": "Dear Nina,\nCan I ask your advice? My company wants me to work in London for two years. It's a great opportunity, but I'm not confident about my English, and my wife doesn't want to move. What would you do? Is there a solution that works for both of us?\nDavid", + "question": "David 为什么犹豫?", + "options": [ + "对英语没信心,妻子也不想搬", + "工资太低", + "不喜欢伦敦" + ] + }, + "writing": { + "prompt": "写两句话:请对方给点建议,并问换作他会怎么做。", + "example": "Can I ask your advice? What would you do?", + "itemIds": [ + "A2-U12-P09", + "A2-U12-P10" + ] + }, + "independent": { + "prompt": "用英语说你对面试没什么信心,并问朋友有没有解决办法。", + "itemIds": [ + "A2-U12-W02", + "A2-U12-W03" + ] + } + } + ], + "scenes": [ + { + "id": "A2-U12-C1", + "kind": "main", + "title": "帮朋友出主意", + "learnerRole": "朋友", + "aiRole": "朋友", + "setting": "朋友想辞职去旅行一年,来问你的意见。", + "turns": [ + { + "ai": "Can I ask your advice?", + "goal": "说当然可以", + "model": "Sure. What's the problem?", + "zh": "当然,什么事?", + "itemIds": [] + }, + { + "ai": "I want to quit my job and travel for a year. What do you think?", + "goal": "先问对方有没有信心,再说出你的看法", + "model": "Are you confident about it? In my opinion, it's a big step.", + "zh": "你有把握吗?我觉得这一步挺大的。", + "itemIds": [ + "A2-U12-W02", + "A2-U12-P02" + ] + }, + { + "ai": "I have enough money. What would you do?", + "goal": "说你会先请假试一试", + "model": "I'm not sure about quitting. Why don't you ask your manager for a long holiday?", + "zh": "辞职我不太确定。你为什么不向经理请个长假?", + "itemIds": [ + "A2-U12-P04", + "A2-U12-P06" + ] + }, + { + "ai": "That's true, but a month is not enough.", + "goal": "说那也许可以先去三个月", + "model": "Maybe you could go for three months first.", + "zh": "也许你可以先去三个月。", + "itemIds": [ + "A2-U12-P08" + ] + }, + { + "ai": "Hmm. That's a good solution.", + "goal": "说早点问经理是个好主意,你应该试试", + "model": "Yes, it's a good solution. It's a good idea to ask early. You should try it.", + "zh": "是个好办法。早点问是个好主意,你应该试试。", + "itemIds": [ + "A2-U12-P07", + "A2-U12-P05", + "A2-U12-W03" + ] + } + ] + }, + { + "id": "A2-U12-C2", + "kind": "variant", + "title": "和同事讨论选哪家酒店", + "learnerRole": "同事", + "aiRole": "同事", + "setting": "你和同事在为出差挑酒店,看法不一样。", + "turns": [ + { + "ai": "I like the City Hotel. What do you think?", + "goal": "说你觉得太贵了", + "model": "In my opinion, it's too expensive.", + "zh": "我觉得太贵了。", + "itemIds": [ + "A2-U12-P02" + ] + }, + { + "ai": "But it's near the office.", + "goal": "先同意,再说它很贵", + "model": "That's true, but it's 200 dollars a night.", + "zh": "没错,不过一晚要两百美元。", + "itemIds": [ + "A2-U12-P11" + ] + }, + { + "ai": "The cheaper one is far. I don't want to take a taxi every day.", + "goal": "说你不同意,可以坐地铁", + "model": "I disagree. We could take the subway.", + "zh": "我不同意。我们可以坐地铁。", + "itemIds": [ + "A2-U12-W01" + ] + }, + { + "ai": "OK, I agree with you. Let's ask the boss.", + "goal": "同意,并问换作她会怎么做", + "model": "I agree with you. What would you do if you were the boss?", + "zh": "我同意。如果你是老板你会怎么做?", + "itemIds": [ + "A2-U12-P03", + "A2-U12-P10" + ] + } + ] + }, + { + "id": "A2-U12-C3", + "kind": "variant", + "title": "听取旅行建议", + "learnerRole": "游客", + "aiRole": "本地朋友", + "setting": "你第一次来这座城市,问本地朋友有什么建议。", + "turns": [ + { + "ai": "Welcome! How can I help?", + "goal": "请朋友给点建议", + "model": "Can I ask your advice about the city?", + "zh": "我能请你给点这座城市的建议吗?", + "itemIds": [ + "A2-U12-P09" + ] + }, + { + "ai": "Sure. You should visit the old market.", + "goal": "问他怎么看去博物馆", + "model": "What do you think of the museum?", + "zh": "你觉得博物馆怎么样?", + "itemIds": [ + "A2-U12-P01" + ] + }, + { + "ai": "It's OK, but it's busy on weekends.", + "goal": "说你不太确定,周末只能去", + "model": "I'm not sure about that. I'm only free on the weekend.", + "zh": "这我不太确定。我只有周末有空。", + "itemIds": [ + "A2-U12-P04" + ] + }, + { + "ai": "Then it's a good idea to go early.", + "goal": "同意并感谢", + "model": "I agree with you. Thanks for the advice.", + "zh": "我同意。谢谢你的建议。", + "itemIds": [ + "A2-U12-P03" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A2-U12-T1", + "sceneId": "A2-U12-C1", + "goal": "听朋友的想法并给出建议", + "itemIds": [ + "A2-U12-W02", + "A2-U12-P02", + "A2-U12-P04", + "A2-U12-P06", + "A2-U12-P08", + "A2-U12-P07", + "A2-U12-P05", + "A2-U12-W03" + ], + "slots": [ + "看法", + "建议", + "办法" + ] + }, + { + "id": "A2-U12-T2", + "sceneId": "A2-U12-C2", + "goal": "和同事讨论并表达不同意见", + "itemIds": [ + "A2-U12-P02", + "A2-U12-P11", + "A2-U12-W01", + "A2-U12-P03", + "A2-U12-P10" + ], + "slots": [ + "看法", + "理由", + "结论" + ] + }, + { + "id": "A2-U12-T3", + "sceneId": "A2-U12-C3", + "goal": "向本地朋友征求旅行建议", + "itemIds": [ + "A2-U12-P09", + "A2-U12-P01", + "A2-U12-P04", + "A2-U12-P03" + ], + "slots": [ + "请求", + "看法", + "回应" + ] + } + ], + "materials": [ + { + "id": "A2-U12-M1", + "mode": "listening", + "title": "电台热线:该不该辞职?", + "text": "Hello, you're on Ask Kate. Today's caller is Jack. Hi Jack. What's the issue? Hi Kate. I work for a big company. The job is fine, and I earn good money, but I'm not happy. I want to quit and start my own business, making furniture. Everyone thinks I'm crazy. My father is mad at me, and my friends think it's a joke. What would you do? OK. First, it's not a silly idea, and you're not a fool. Many people feel like this. But consider the consequences. Do you have savings? A little. Then my advice is this: don't quit yet. Why don't you make furniture at the weekends first? It's a good way to test the idea. If people buy it, you can realize how big the opportunity is. Importantly, talk to your wife. Communication is the key, so communicate often. It will be a challenge for both of you. And don't listen to negative people. Their response is often just fear. Your attitude matters more. Success needs effort and commitment, and some difficulty is normal. Is that a wise plan? I think it is. Thanks, Kate. I truly feel more positive now. Good luck, Jack.", + "glosses": { + "caller": "来电者", + "business": "生意", + "savings": "积蓄", + "matters": "重要" + }, + "questions": [ + { + "type": "gist", + "question": "这段节目主要讲什么?", + "options": [ + "主持人给想辞职创业的听众提建议", + "怎样做家具", + "怎样找好工作" + ] + }, + { + "type": "detail", + "question": "Kate 建议 Jack 先怎么做?", + "options": [ + "周末先做家具试试", + "马上辞职", + "找银行贷款" + ] + }, + { + "type": "inference", + "question": "Kate 为什么让 Jack 别听消极的人的话?", + "options": [ + "他们的反应常常只是出于害怕", + "他们不懂家具", + "他们想要他的工作" + ] + } + ] + }, + { + "id": "A2-U12-M2", + "mode": "reading", + "title": "怎样给别人提建议", + "text": "How to give good advice\nFriends often come to us with a problem. We want to help, but sometimes our advice doesn't work. Here are some tricks.\n1. Listen first. Never forget the importance of listening. You don't need to impress anyone. Don't start with \"You should...\" Ask questions and try to understand the whole issue. What is the real purpose of their question? Maybe they just want to talk.\n2. Don't criticize, and don't start an argument. If a friend made a mistake, they already know it. Saying \"That was a silly thing to do\" has a negative impact.\n3. Encourage, don't order. \"Why don't you...?\" or \"Maybe you could...\" sounds kinder than \"Do this!\"\n4. Tell the truth, even if it's hard. A friend who only says nice things is not a wise friend.\n5. Respect their choice. You might strongly disagree, but it's their life. Whatever they choose, support them.\nGood advice can have a significant influence on someone's happiness. Indeed, the fact is that people rarely remember what you said, but they always remember how you made them feel.", + "glosses": { + "whole": "整个的", + "respect": "尊重", + "rarely": "很少" + }, + "questions": [ + { + "type": "gist", + "question": "这篇文章主要讲什么?", + "options": [ + "怎样给别人提好的建议", + "怎样交朋友", + "怎样解决工作问题" + ] + }, + { + "type": "detail", + "question": "文章建议给建议之前先做什么?", + "options": [ + "先听并提问", + "先批评", + "先讲自己的经历" + ] + }, + { + "type": "inference", + "question": "为什么“Why don't you...?”比“Do this!”好?", + "options": [ + "听起来更友好,不像命令", + "说得更快", + "更容易记" + ] + } + ] + }, + { + "id": "A2-U12-M3", + "mode": "reading", + "title": "学习小组的讨论记录", + "text": "Notes from our study group\nToday: How can we prepare better for the English test?\nEmma: I find it hard to concentrate at home. In my opinion, we should meet at the library.\nLeo: I agree with Emma. Also, it's a good idea to do one small task every day. A little effort each day is easier than a lot on Sunday night.\nNina: That's true, but I'm not confident about speaking. Maybe we could practice with a professional teacher once a month?\nMax: I'm not sure about that. A teacher is expensive. Why don't we speak English with each other? It's free.\nNina: I wonder if that really works. We make the same mistakes, and we can confuse each other.\nLeo: There's a rumor that the test is easier this year, but I don't believe it. Don't try to predict the questions. Just study.\nMax: Here's a thought: we could do both. One teacher lesson a month, and our own practice every week. Then no one pays too much, and nobody feels it's unnecessary.\nEmma: That's a great solution. It's no secret that I love a good plan! Let's apply it from next week. We can easily succeed.", + "glosses": { + "library": "图书馆" + }, + "questions": [ + { + "type": "gist", + "question": "这份记录主要讲什么?", + "options": [ + "学习小组讨论怎样准备英语考试", + "怎样找英语老师", + "考试的题目" + ] + }, + { + "type": "detail", + "question": "Max 最后提出了什么办法?", + "options": [ + "每月一次老师课,每周自己练习", + "只请老师", + "只在图书馆学习" + ] + }, + { + "type": "inference", + "question": "Nina 为什么担心只和组员练英语?", + "options": [ + "大家会犯同样的错误,互相搞混", + "组员不愿意", + "太花钱" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "表达看法", + "bands": [ + "只说好或不好", + "说出看法并给一个理由", + "说出看法和理由,并能礼貌地表示同意或不同意" + ], + "pass": 1 + }, + { + "name": "给出建议", + "bands": [ + "没有建议", + "给出一个建议", + "用不同说法给出具体建议并回应对方的顾虑" + ], + "pass": 1 + } + ] + }, + "excluded": [ + { + "en": "if I were you", + "reason": "虚拟条件句为 B1;用 Why don't you ...? 表达" + }, + { + "en": "recommend", + "reason": "B1;用 You should ... 表达" + } + ] +} diff --git a/kouyu_english/assets/courses/A2/A2-U13.json b/kouyu_english/assets/courses/A2/A2-U13.json new file mode 100644 index 0000000..4cb3bc3 --- /dev/null +++ b/kouyu_english/assets/courses/A2/A2-U13.json @@ -0,0 +1,1205 @@ +{ + "schemaVersion": 1, + "id": "A2-U13", + "revision": 1, + "level": "A2", + "title": "介绍城市与景点", + "categories": [ + "旅行" + ], + "canDo": "描述地方、推荐去处", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "xi'an", + "mardin" + ], + "grammar": [ + { + "id": "76", + "use": "active" + }, + { + "id": "40", + "use": "active" + }, + { + "id": "41", + "use": "active" + }, + { + "id": "139", + "use": "active" + }, + { + "id": "150", + "use": "active" + } + ], + "coreItems": [ + { + "id": "A2-U13-P01", + "type": "phrase", + "en": "You can't miss it.", + "zh": "你一定能看到,很好找。", + "sceneWord": false, + "match": [ + [ + "can't miss" + ] + ], + "example": { + "en": "The tower is very tall. You can't miss it.", + "zh": "塔很高,一眼就能看到。" + }, + "review": { + "prompt": "告诉游客那座桥很好找。" + } + }, + { + "id": "A2-U13-P02", + "type": "phrase", + "en": "It's one of the oldest temples in China.", + "zh": "它是中国最古老的寺庙之一。", + "sceneWord": false, + "match": [ + [ + "one of the" + ] + ], + "example": { + "en": "It's one of the best markets in the city.", + "zh": "这是城里最好的市场之一。" + }, + "review": { + "prompt": "说这是城里最大的公园之一。" + } + }, + { + "id": "A2-U13-P03", + "type": "phrase", + "en": "It was built 600 years ago.", + "zh": "它建于六百年前。", + "sceneWord": false, + "match": [ + [ + "was built", + "were built" + ] + ], + "example": { + "en": "The bridge was built in 1890.", + "zh": "这座桥建于 1890 年。" + }, + "review": { + "prompt": "说这座塔建于两百年前。" + } + }, + { + "id": "A2-U13-P04", + "type": "phrase", + "en": "It's about an hour from here.", + "zh": "离这里大约一小时。", + "sceneWord": false, + "match": [ + [ + "from here" + ] + ], + "example": { + "en": "The beach is ten minutes from here.", + "zh": "海滩离这里十分钟。" + }, + "review": { + "prompt": "说博物馆离这里走路二十分钟。" + } + }, + { + "id": "A2-U13-P05", + "type": "phrase", + "en": "The best time to go is in spring.", + "zh": "最好的时间是春天去。", + "sceneWord": false, + "match": [ + [ + "best time to" + ] + ], + "example": { + "en": "The best time to visit is early morning.", + "zh": "最好早上去参观。" + }, + "review": { + "prompt": "说去那里最好是秋天。" + } + }, + { + "id": "A2-U13-P06", + "type": "phrase", + "en": "There's a lot to see.", + "zh": "有很多可看的。", + "sceneWord": false, + "match": [ + [ + "lot to see" + ] + ], + "example": { + "en": "There's a lot to see in the old town.", + "zh": "老城里有很多可看的。" + }, + "review": { + "prompt": "说那个博物馆有很多可看的。" + } + }, + { + "id": "A2-U13-P07", + "type": "phrase", + "en": "It gets very crowded.", + "zh": "人会很多。", + "sceneWord": false, + "match": [ + [ + "gets crowded", + "gets very crowded", + "get crowded" + ] + ], + "example": { + "en": "The market gets crowded at the weekend.", + "zh": "周末市场人很多。" + }, + "review": { + "prompt": "说夏天海滩人很多。" + } + }, + { + "id": "A2-U13-P08", + "type": "phrase", + "en": "Don't miss the view from the top.", + "zh": "别错过山顶的风景。", + "sceneWord": false, + "match": [ + [ + "from the top" + ] + ], + "example": { + "en": "You can see the whole city from the top.", + "zh": "从顶上能看到整座城市。" + }, + "review": { + "prompt": "建议游客从塔顶看风景。" + } + }, + { + "id": "A2-U13-P09", + "type": "phrase", + "en": "Is it worth it?", + "zh": "值得去吗?", + "sceneWord": true, + "sceneReason": "worth 为 B1,但问景点值不值得去是旅行中很常用的", + "match": [ + [ + "worth it" + ] + ], + "example": { + "en": "It's expensive, but it's worth it.", + "zh": "很贵,但很值。" + }, + "review": { + "prompt": "问朋友那个景点值不值得去。" + } + }, + { + "id": "A2-U13-P10", + "type": "phrase", + "en": "It's a great place for families.", + "zh": "很适合带家人去。", + "sceneWord": false, + "match": [ + [ + "great place for", + "good place for" + ] + ], + "example": { + "en": "The park is a good place for a picnic.", + "zh": "这个公园很适合野餐。" + }, + "review": { + "prompt": "说这个海滩很适合孩子。" + } + }, + { + "id": "A2-U13-W01", + "type": "word", + "en": "attractive", + "zh": "有吸引力的;好看的", + "sceneWord": false, + "match": [ + [ + "attractive" + ] + ], + "example": { + "en": "The old town is very attractive.", + "zh": "老城很有魅力。" + }, + "review": { + "prompt": "说这个小镇很漂亮。" + } + }, + { + "id": "A2-U13-W02", + "type": "word", + "en": "performance", + "zh": "演出", + "sceneWord": false, + "match": [ + [ + "performance" + ] + ], + "example": { + "en": "There's a performance every evening.", + "zh": "每天晚上都有演出。" + }, + "review": { + "prompt": "说周末有一场演出。" + } + }, + { + "id": "A2-U13-W03", + "type": "word", + "en": "gallery", + "zh": "美术馆", + "sceneWord": false, + "match": [ + [ + "gallery" + ] + ], + "example": { + "en": "The gallery is free on Sundays.", + "zh": "美术馆周日免费。" + }, + "review": { + "prompt": "问美术馆几点开门。" + } + }, + { + "id": "A2-U13-W04", + "type": "word", + "en": "mysterious", + "zh": "神秘的", + "sceneWord": false, + "match": [ + [ + "mysterious" + ] + ], + "example": { + "en": "The old castle looks mysterious.", + "zh": "那座老城堡看起来很神秘。" + }, + "review": { + "prompt": "说那个山洞很神秘。" + } + } + ], + "receptiveWords": [ + { + "id": "A2-U13-R01", + "en": "palace", + "zh": "宫殿" + }, + { + "id": "A2-U13-R02", + "en": "sunset", + "zh": "日落" + }, + { + "id": "A2-U13-R03", + "en": "background", + "zh": "背景" + }, + { + "id": "A2-U13-R04", + "en": "base", + "zh": "底部;基地" + }, + { + "id": "A2-U13-R05", + "en": "brilliant", + "zh": "很棒的" + }, + { + "id": "A2-U13-R06", + "en": "classical music", + "zh": "古典音乐" + }, + { + "id": "A2-U13-R07", + "en": "create", + "zh": "创造" + }, + { + "id": "A2-U13-R08", + "en": "creature", + "zh": "生物" + }, + { + "id": "A2-U13-R09", + "en": "destroy", + "zh": "摧毁" + }, + { + "id": "A2-U13-R10", + "en": "develop", + "zh": "发展" + }, + { + "id": "A2-U13-R11", + "en": "discover", + "zh": "发现" + }, + { + "id": "A2-U13-R12", + "en": "exist", + "zh": "存在" + }, + { + "id": "A2-U13-R13", + "en": "freedom", + "zh": "自由" + }, + { + "id": "A2-U13-R14", + "en": "harmony", + "zh": "和谐" + }, + { + "id": "A2-U13-R15", + "en": "hero", + "zh": "英雄" + }, + { + "id": "A2-U13-R16", + "en": "magic", + "zh": "魔法;魔力" + }, + { + "id": "A2-U13-R17", + "en": "musical", + "zh": "音乐剧" + }, + { + "id": "A2-U13-R18", + "en": "mystery", + "zh": "谜" + }, + { + "id": "A2-U13-R19", + "en": "overseas", + "zh": "海外的" + }, + { + "id": "A2-U13-R20", + "en": "perform", + "zh": "表演" + }, + { + "id": "A2-U13-R21", + "en": "produce", + "zh": "生产" + }, + { + "id": "A2-U13-R22", + "en": "production", + "zh": "制作;出品" + }, + { + "id": "A2-U13-R23", + "en": "publish", + "zh": "出版" + }, + { + "id": "A2-U13-R24", + "en": "recent", + "zh": "最近的" + }, + { + "id": "A2-U13-R25", + "en": "reveal", + "zh": "揭示" + }, + { + "id": "A2-U13-R26", + "en": "rock", + "zh": "岩石;摇滚" + }, + { + "id": "A2-U13-R27", + "en": "round", + "zh": "圆的" + }, + { + "id": "A2-U13-R28", + "en": "shine", + "zh": "照耀" + }, + { + "id": "A2-U13-R29", + "en": "spread", + "zh": "分布;传播" + }, + { + "id": "A2-U13-R30", + "en": "state", + "zh": "州;国家" + }, + { + "id": "A2-U13-R31", + "en": "farm", + "zh": "农场" + }, + { + "id": "A2-U13-R32", + "en": "stone", + "zh": "石头" + }, + { + "id": "A2-U13-R33", + "en": "rich", + "zh": "富有的" + }, + { + "id": "A2-U13-R34", + "en": "science", + "zh": "科学" + }, + { + "id": "A2-U13-R35", + "en": "trade", + "zh": "贸易" + }, + { + "id": "A2-U13-R36", + "en": "underwater", + "zh": "水下的" + }, + { + "id": "A2-U13-R37", + "en": "unknown", + "zh": "未知的" + }, + { + "id": "A2-U13-R38", + "en": "wealth", + "zh": "财富" + }, + { + "id": "A2-U13-R39", + "en": "widely", + "zh": "广泛地" + }, + { + "id": "A2-U13-R40", + "en": "worldwide", + "zh": "全世界的" + }, + { + "id": "A2-U13-R41", + "en": "sunflower", + "zh": "向日葵" + }, + { + "id": "A2-U13-R42", + "en": "seed", + "zh": "种子" + }, + { + "id": "A2-U13-R43", + "en": "splash", + "zh": "溅起水花" + }, + { + "id": "A2-U13-R44", + "en": "slide", + "zh": "滑梯" + }, + { + "id": "A2-U13-R45", + "en": "balloon", + "zh": "气球" + }, + { + "id": "A2-U13-R46", + "en": "gather", + "zh": "聚集" + }, + { + "id": "A2-U13-R47", + "en": "indoor", + "zh": "室内的" + }, + { + "id": "A2-U13-R48", + "en": "fancy", + "zh": "花哨的;高档的" + }, + { + "id": "A2-U13-R49", + "en": "figure", + "zh": "人像;数字" + }, + { + "id": "A2-U13-R50", + "en": "pollute", + "zh": "污染" + }, + { + "id": "A2-U13-R51", + "en": "recycle", + "zh": "回收" + }, + { + "id": "A2-U13-R52", + "en": "tour guide", + "zh": "导游" + }, + { + "id": "A2-U13-R53", + "en": "couple", + "zh": "夫妻;一对" + }, + { + "id": "A2-U13-R54", + "en": "director", + "zh": "导演" + }, + { + "id": "A2-U13-R55", + "en": "speaker", + "zh": "演讲者;音箱" + }, + { + "id": "A2-U13-R56", + "en": "advertisement", + "zh": "广告" + }, + { + "id": "A2-U13-R57", + "en": "branch", + "zh": "分店" + }, + { + "id": "A2-U13-R58", + "en": "rent", + "zh": "租" + }, + { + "id": "A2-U13-R59", + "en": "duck", + "zh": "鸭子" + }, + { + "id": "A2-U13-R60", + "en": "envelope", + "zh": "信封" + }, + { + "id": "A2-U13-R61", + "en": "stamp", + "zh": "邮票" + }, + { + "id": "A2-U13-R62", + "en": "superstar", + "zh": "超级明星" + }, + { + "id": "A2-U13-R63", + "en": "forever", + "zh": "永远" + }, + { + "id": "A2-U13-R64", + "en": "beginning", + "zh": "开始" + }, + { + "id": "A2-U13-R65", + "en": "belong", + "zh": "属于" + } + ], + "segments": [ + { + "id": "A2-U13-S1", + "title": "介绍景点", + "minutes": 13, + "itemIds": [ + "A2-U13-P01", + "A2-U13-P02", + "A2-U13-P03", + "A2-U13-P08", + "A2-U13-W04" + ], + "listening": { + "text": "Welcome to the Old Tower. It's one of the oldest buildings in the city. It was built 600 years ago. It's very tall, so you can't miss it. Some people say it looks mysterious at night. Don't miss the view from the top. You can see the river and the whole old town.", + "question": "从塔顶能看到什么?", + "options": [ + "河和整个老城", + "大海", + "新城区" + ] + }, + "speaking": [ + { + "text": "You can't miss it." + }, + { + "text": "It's one of the oldest temples in China." + }, + { + "text": "It was built 600 years ago.", + "tip": "was built 连读" + }, + { + "text": "Don't miss the view from the top." + }, + { + "text": "It looks mysterious.", + "tip": "mysterious 重音在 ste" + } + ], + "reading": { + "text": "Stone Palace\nThe Stone Palace is one of the most famous buildings in the state. It was built in 1620 for a rich family. Later, the family lost their wealth, and the palace was nearly destroyed in a storm. Today it's a museum. The round tower looks mysterious, and people say a mystery still exists inside. Don't miss the view from the top at sunset.", + "question": "宫殿最初是为谁建的?", + "options": [ + "一个富有的家庭", + "国王", + "博物馆" + ] + }, + "writing": { + "prompt": "写两句话:说这是中国最古老的寺庙之一,建于六百年前。", + "example": "It's one of the oldest temples in China. It was built 600 years ago.", + "itemIds": [ + "A2-U13-P02", + "A2-U13-P03" + ] + }, + "independent": { + "prompt": "用英语说那座城堡看起来很神秘、一眼就能看到,并建议别错过顶上的风景。", + "itemIds": [ + "A2-U13-W04", + "A2-U13-P01", + "A2-U13-P08" + ] + } + }, + { + "id": "A2-U13-S2", + "title": "实用信息", + "minutes": 13, + "itemIds": [ + "A2-U13-P04", + "A2-U13-P05", + "A2-U13-P06", + "A2-U13-P07", + "A2-U13-P09" + ], + "listening": { + "text": "Is the lake far? It's about an hour from here by bus. Is it worth it? Yes. There's a lot to see: gardens, a small island and old bridges. The best time to go is in spring. But it gets very crowded at the weekend, so go on a weekday.", + "question": "为什么建议工作日去?", + "options": [ + "周末人很多", + "周末不开门", + "周末车票贵" + ] + }, + "speaking": [ + { + "text": "It's about an hour from here." + }, + { + "text": "The best time to go is in spring." + }, + { + "text": "There's a lot to see." + }, + { + "text": "It gets very crowded." + }, + { + "text": "Is it worth it?", + "tip": "worth 的 th 要咬舌" + } + ], + "reading": { + "text": "Sunflower Farm\nWhere: 40 minutes from here by car\nThe best time to go: August, when the sunflowers are open\nThere's a lot to see: sunflowers everywhere, a duck lake, balloon rides\nTickets: 15 dollars. Is it worth it? Yes!\nNote: It gets very crowded on Saturdays. Try to come before 10 a.m.", + "question": "去向日葵农场最好是什么时候?", + "options": [ + "八月", + "周六", + "早上十点以后" + ] + }, + "writing": { + "prompt": "写两句话:说离这里大约一小时,最好的时间是春天。", + "example": "It's about an hour from here. The best time to go is in spring.", + "itemIds": [ + "A2-U13-P04", + "A2-U13-P05" + ] + }, + "independent": { + "prompt": "用英语问朋友值不值得去,并说那里有很多可看的,但周末人很多。", + "itemIds": [ + "A2-U13-P09", + "A2-U13-P06", + "A2-U13-P07" + ] + } + }, + { + "id": "A2-U13-S3", + "title": "推荐去处", + "minutes": 12, + "itemIds": [ + "A2-U13-P10", + "A2-U13-W01", + "A2-U13-W02", + "A2-U13-W03" + ], + "listening": { + "text": "What can we do with the kids this weekend? The science museum is a great place for families. There's also a small gallery near the river. The old town is very attractive at night, and there's a free performance in the square every Saturday. The kids will love it.", + "question": "周六晚上广场上有什么?", + "options": [ + "免费演出", + "夜市", + "电影" + ] + }, + "speaking": [ + { + "text": "It's a great place for families." + }, + { + "text": "The old town is very attractive.", + "tip": "attractive 重音在 trac" + }, + { + "text": "There's a performance every evening." + }, + { + "text": "The gallery is free on Sundays." + } + ], + "reading": { + "text": "This weekend in the city\n· City Gallery: new photo show. Free on Sundays.\n· River Park: a great place for families, with a big slide and a splash area for kids.\n· The Square: a music performance every Saturday at 7 p.m., rock and classical music.\n· Old Street: very attractive at night, with colorful lights and fancy shops.", + "question": "哪里有适合孩子玩水的地方?", + "options": [ + "河边公园", + "美术馆", + "老街" + ] + }, + "writing": { + "prompt": "写两句话:说这个公园很适合带家人去,周六有演出。", + "example": "It's a great place for families. There's a performance on Saturday.", + "itemIds": [ + "A2-U13-P10", + "A2-U13-W02" + ] + }, + "independent": { + "prompt": "用英语向朋友推荐美术馆和老城,说老城晚上很有魅力。", + "itemIds": [ + "A2-U13-W03", + "A2-U13-W01" + ] + } + } + ], + "scenes": [ + { + "id": "A2-U13-C1", + "kind": "main", + "title": "向外国朋友介绍你的城市", + "learnerRole": "本地人", + "aiRole": "第一次来的外国朋友", + "setting": "外国朋友第一次来你的城市,问你应该去哪里看看。", + "turns": [ + { + "ai": "What should I see in your city?", + "goal": "推荐老塔,说它是城里最古老的建筑之一", + "model": "The Old Tower. It's one of the oldest buildings in the city.", + "zh": "老塔。它是城里最古老的建筑之一。", + "itemIds": [ + "A2-U13-P02" + ] + }, + { + "ai": "How old is it?", + "goal": "说建于六百年前,很好找", + "model": "It was built 600 years ago. It's very tall, so you can't miss it.", + "zh": "建于六百年前。它很高,你一眼就能看到。", + "itemIds": [ + "A2-U13-P03", + "A2-U13-P01" + ] + }, + { + "ai": "Great. Anything else?", + "goal": "说别错过顶上的风景,晚上看起来很神秘", + "model": "Don't miss the view from the top. And it looks mysterious at night.", + "zh": "别错过顶上的风景。而且晚上看起来很神秘。", + "itemIds": [ + "A2-U13-P08", + "A2-U13-W04" + ] + }, + { + "ai": "What about the lake?", + "goal": "说离这里一小时,有很多可看的", + "model": "It's about an hour from here, and there's a lot to see.", + "zh": "离这里大约一小时,有很多可看的。", + "itemIds": [ + "A2-U13-P04", + "A2-U13-P06" + ] + }, + { + "ai": "When should I go?", + "goal": "说春天最好,但周末人很多", + "model": "The best time to go is in spring, but it gets very crowded at the weekend.", + "zh": "春天去最好,但周末人很多。", + "itemIds": [ + "A2-U13-P05", + "A2-U13-P07" + ] + } + ] + }, + { + "id": "A2-U13-C2", + "kind": "variant", + "title": "在游客中心问景点", + "learnerRole": "游客", + "aiRole": "游客中心工作人员", + "setting": "你在一个小城的游客中心,想了解景点。", + "turns": [ + { + "ai": "Hi! Can I help you?", + "goal": "问附近有没有适合家庭的地方", + "model": "Yes. Is there a good place for families near here?", + "zh": "是的。附近有适合带家人去的地方吗?", + "itemIds": [ + "A2-U13-P10" + ] + }, + { + "ai": "The Sunflower Farm is great. There's also a small gallery.", + "goal": "问农场值不值得去", + "model": "Is the farm worth it?", + "zh": "农场值得去吗?", + "itemIds": [ + "A2-U13-P09" + ] + }, + { + "ai": "Yes, the kids love it. And the gallery is very attractive.", + "goal": "问美术馆有没有演出", + "model": "Is there a performance at the gallery?", + "zh": "美术馆有演出吗?", + "itemIds": [ + "A2-U13-W03", + "A2-U13-W02" + ] + }, + { + "ai": "Yes, every Sunday afternoon.", + "goal": "道谢", + "model": "Great, thank you.", + "zh": "太好了,谢谢。", + "itemIds": [] + } + ] + }, + { + "id": "A2-U13-C3", + "kind": "variant", + "title": "给朋友推荐旅行地", + "learnerRole": "朋友", + "aiRole": "朋友", + "setting": "朋友下个月要去你去过的城市旅行,问你的建议。", + "turns": [ + { + "ai": "I'm going to Xi'an next month. Is it worth it?", + "goal": "说很值,那里有很多可看的", + "model": "Yes, it's worth it. There's a lot to see.", + "zh": "很值得,那里有很多可看的。", + "itemIds": [ + "A2-U13-P09", + "A2-U13-P06" + ] + }, + { + "ai": "What's the best thing to see?", + "goal": "说城墙是中国最古老的之一,别错过上面的风景", + "model": "The city wall. It's one of the oldest in China. Don't miss the view from the top.", + "zh": "城墙。它是中国最古老的之一。别错过上面的风景。", + "itemIds": [ + "A2-U13-P02", + "A2-U13-P08" + ] + }, + { + "ai": "Is it good for kids?", + "goal": "说那里很适合家庭,晚上很有魅力", + "model": "Yes, it's a great place for families, and it's very attractive at night.", + "zh": "是的,很适合带家人去,而且晚上很有魅力。", + "itemIds": [ + "A2-U13-P10", + "A2-U13-W01" + ] + }, + { + "ai": "Is it busy?", + "goal": "说人很多,最好春天去", + "model": "It gets very crowded. The best time to go is in spring.", + "zh": "人会很多。最好春天去。", + "itemIds": [ + "A2-U13-P07", + "A2-U13-P05" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A2-U13-T1", + "sceneId": "A2-U13-C1", + "goal": "向外国朋友介绍一个景点和实用信息", + "itemIds": [ + "A2-U13-P02", + "A2-U13-P03", + "A2-U13-P01", + "A2-U13-P08", + "A2-U13-W04", + "A2-U13-P04", + "A2-U13-P06", + "A2-U13-P05", + "A2-U13-P07" + ], + "slots": [ + "景点", + "历史", + "实用信息" + ] + }, + { + "id": "A2-U13-T2", + "sceneId": "A2-U13-C2", + "goal": "在游客中心打听适合家庭的去处", + "itemIds": [ + "A2-U13-P10", + "A2-U13-P09", + "A2-U13-W03", + "A2-U13-W01", + "A2-U13-W02" + ], + "slots": [ + "地点", + "值不值得", + "活动" + ] + }, + { + "id": "A2-U13-T3", + "sceneId": "A2-U13-C3", + "goal": "给朋友推荐旅行地", + "itemIds": [ + "A2-U13-P09", + "A2-U13-P06", + "A2-U13-P02", + "A2-U13-P08", + "A2-U13-P10", + "A2-U13-W01", + "A2-U13-P07", + "A2-U13-P05" + ], + "slots": [ + "推荐", + "理由", + "建议" + ] + } + ], + "materials": [ + { + "id": "A2-U13-M1", + "mode": "listening", + "title": "导游讲解:海边小城一日游", + "text": "Good morning, everyone, and welcome. I'm Lucy, your tour guide today. Our town has a long history of trade. In the beginning, it was a small fishing village, but in the 18th century, ships came from overseas, and the town developed quickly. You can still see the wealth of those days in the fancy houses along the river. Our first stop is the harbor. Many visitors think it's the most attractive part of town. Then we'll walk to the old church, one of the oldest in the state. It was built in 1705. Inside, there are figures of local heroes. After lunch, you're free. There's a lot to see: a small gallery, a shop that sells old stamps and envelopes, and an underwater museum where you can discover strange sea creatures. Some of them were unknown until recent years. In the evening, there's a musical performance in the square. The director is a local woman, and the production is widely loved and now known worldwide. The stage is at the base of the old tower. Please remember: don't pollute the beach, and recycle your bottles. Let's go!", + "glosses": { + "history": "历史", + "harbor": "港口", + "church": "教堂", + "stage": "舞台" + }, + "questions": [ + { + "type": "gist", + "question": "这段讲解主要内容是什么?", + "options": [ + "小城的历史和今天的游览安排", + "怎样坐船出海", + "海洋生物知识" + ] + }, + { + "type": "detail", + "question": "老教堂建于哪一年?", + "options": [ + "1705 年", + "1805 年", + "1750 年" + ] + }, + { + "type": "inference", + "question": "为什么小城有很多漂亮的大房子?", + "options": [ + "过去靠海外贸易变得富有", + "现在的游客很多", + "渔民很有钱" + ] + } + ] + }, + { + "id": "A2-U13-M2", + "mode": "reading", + "title": "旅行杂志:一座被遗忘的城市", + "text": "The city that time forgot\nFew people outside the country know Mardin, but it's one of the most surprising places I have ever visited. The city was built on a hill, and its stone houses spread down the hill like steps. The houses look different all day: in the morning they're white, and when the sun shines in the evening, they turn yellow.\nMardin has a rich background. For centuries, different peoples lived here in harmony: you can see churches and mosques side by side. Some buildings were nearly destroyed long ago, but the town has a special magic that still exists.\nIs it worth it? Yes, it is. The best time to go is in spring, when it's not too hot. There's a lot to see, and it doesn't get very crowded. Walk through the markets, gather with the locals for tea in the evening, and feel the freedom of a place far from the modern world.\nOne more thing: the hotels are small, so book early. And bring a good camera. You'll want to keep these views forever.", + "glosses": { + "mosques": "清真寺", + "churches": "教堂" + }, + "questions": [ + { + "type": "gist", + "question": "这篇文章主要讲什么?", + "options": [ + "作者推荐一座很少人知道的美丽古城", + "怎样拍好风景照", + "土耳其的历史" + ] + }, + { + "type": "detail", + "question": "为什么建议春天去?", + "options": [ + "天气不太热", + "花开了", + "酒店便宜" + ] + }, + { + "type": "inference", + "question": "作者为什么说要早点订酒店?", + "options": [ + "酒店小,房间少", + "游客太多", + "酒店很贵" + ] + } + ] + }, + { + "id": "A2-U13-M3", + "mode": "reading", + "title": "城市指南:雨天去哪里", + "text": "Rainy day? No problem!\nOur city is a great place for families, even when it rains. Here are some indoor ideas.\nThe Science Museum: Kids can create their own robots and learn how the earth began. The museum also reveals how factories produce everyday things. It's about 20 minutes from here by bus, and you can't miss it: the building looks like a big silver ball. It gets very crowded in the holidays, so go early.\nThe Film House: Watch a classic film or meet a superstar. Last month a famous director and a couple of actors came to speak. The speakers were brilliant, and some local bands perform there at the weekend.\nThe Book House: A shop that belongs to a young couple who publish children's books. You can read for free, and the kids can draw on the walls.\nPaint and Play: A branch of a well-known art shop. Kids make seed pictures and paper balloons. You can rent a room for a birthday party.\nIs it all worth it? We think so. There's a lot to see, and it will show your children that a rainy day can have its own magic. Don't forget to look at the advertisements in the station for discount tickets.", + "glosses": { + "robots": "机器人", + "factories": "工厂", + "everyday": "日常的", + "actors": "演员" + }, + "questions": [ + { + "type": "gist", + "question": "这篇文章主要讲什么?", + "options": [ + "下雨天适合带孩子去的室内地方", + "城里最好的书店", + "怎样开生日派对" + ] + }, + { + "type": "detail", + "question": "科学中心的建筑是什么样子?", + "options": [ + "像一个巨大的银色球", + "像一本书", + "像一艘船" + ] + }, + { + "type": "inference", + "question": "为什么建议去车站看广告?", + "options": [ + "可以找到打折票", + "广告很有趣", + "车站有演出" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "介绍清楚", + "bands": [ + "只说地名", + "说出地点的一两个特点", + "说出特点、历史或位置等多方面信息" + ], + "pass": 1 + }, + { + "name": "给出实用建议", + "bands": [ + "没有建议", + "给出时间或交通中的一项建议", + "给出时间、交通、人流等具体建议" + ], + "pass": 1 + } + ] + }, + "excluded": [ + { + "en": "recommend", + "reason": "B1;用 You should see ... 和 It's a great place for ... 表达" + } + ] +} diff --git a/kouyu_english/assets/courses/A2/A2-U14.json b/kouyu_english/assets/courses/A2/A2-U14.json new file mode 100644 index 0000000..986e94e --- /dev/null +++ b/kouyu_english/assets/courses/A2/A2-U14.json @@ -0,0 +1,1192 @@ +{ + "schemaVersion": 1, + "id": "A2-U14", + "revision": 1, + "level": "A2", + "title": "丢东西与求助", + "categories": [ + "旅行" + ], + "canDo": "在服务台说明丢了什么、在哪里丢的", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "oxford", + "tom", + "kim", + "sarah", + "brown" + ], + "grammar": [ + { + "id": "76", + "use": "active" + }, + { + "id": "65", + "use": "active" + }, + { + "id": "64", + "use": "active" + }, + { + "id": "62", + "use": "active" + }, + { + "id": "250", + "use": "active", + "reason": "Could you ...? 是向工作人员请求帮忙时最礼貌常用的问法" + } + ], + "coreItems": [ + { + "id": "A2-U14-P01", + "type": "phrase", + "en": "I think I left it on the train.", + "zh": "我想我把它落在火车上了。", + "sceneWord": false, + "match": [ + [ + "left it", + "left my" + ] + ], + "example": { + "en": "I think I left my umbrella in the taxi.", + "zh": "我想我把伞落在出租车上了。" + }, + "review": { + "prompt": "说你觉得把包落在公交车上了。" + } + }, + { + "id": "A2-U14-P02", + "type": "phrase", + "en": "What does it look like?", + "zh": "它是什么样子的?", + "sceneWord": false, + "match": [ + [ + "look like" + ] + ], + "example": { + "en": "What does your bag look like?", + "zh": "你的包是什么样子的?" + }, + "review": { + "prompt": "问朋友丢的伞是什么样子的。" + } + }, + { + "id": "A2-U14-P03", + "type": "phrase", + "en": "It's made of brown leather.", + "zh": "它是棕色皮的。", + "sceneWord": false, + "match": [ + [ + "made of" + ] + ], + "example": { + "en": "The wallet is made of black leather.", + "zh": "钱包是黑色皮的。" + }, + "review": { + "prompt": "说你的包是黑色皮的。" + } + }, + { + "id": "A2-U14-P04", + "type": "phrase", + "en": "There was some money in it.", + "zh": "里面有些钱。", + "sceneWord": false, + "match": [ + [ + "in it" + ] + ], + "example": { + "en": "There were two keys in it.", + "zh": "里面有两把钥匙。" + }, + "review": { + "prompt": "说包里有你的护照。" + } + }, + { + "id": "A2-U14-P05", + "type": "phrase", + "en": "I last saw it at the station.", + "zh": "我最后一次看到它是在车站。", + "sceneWord": false, + "match": [ + [ + "last saw" + ] + ], + "example": { + "en": "I last saw my phone in the restaurant.", + "zh": "我最后一次看到手机是在餐厅。" + }, + "review": { + "prompt": "说你最后一次看到钱包是在咖啡馆。" + } + }, + { + "id": "A2-U14-P06", + "type": "phrase", + "en": "Has anyone handed in a bag?", + "zh": "有人交来一个包吗?", + "sceneWord": false, + "match": [ + [ + "handed in", + "hand in" + ] + ], + "example": { + "en": "Has anyone handed in a black phone?", + "zh": "有人交来一部黑色手机吗?" + }, + "review": { + "prompt": "问服务台有没有人交来一把伞。" + } + }, + { + "id": "A2-U14-P07", + "type": "phrase", + "en": "My phone was stolen.", + "zh": "我的手机被偷了。", + "sceneWord": false, + "match": [ + [ + "was stolen", + "were stolen" + ] + ], + "example": { + "en": "My bag was stolen on the bus.", + "zh": "我的包在公交车上被偷了。" + }, + "review": { + "prompt": "说你的钱包被偷了。" + } + }, + { + "id": "A2-U14-P08", + "type": "phrase", + "en": "Can you describe it?", + "zh": "你能描述一下吗?", + "sceneWord": false, + "match": [ + [ + "describe" + ] + ], + "example": { + "en": "Can you describe the man?", + "zh": "你能描述一下那个男人吗?" + }, + "review": { + "prompt": "请对方描述一下丢的东西。" + } + }, + { + "id": "A2-U14-P09", + "type": "phrase", + "en": "Could you call me if you find it?", + "zh": "如果找到了能给我打电话吗?", + "sceneWord": false, + "match": [ + [ + "if you find" + ] + ], + "example": { + "en": "Could you email me if you find it?", + "zh": "如果找到了能给我发邮件吗?" + }, + "review": { + "prompt": "请工作人员找到后给你打电话。" + } + }, + { + "id": "A2-U14-P10", + "type": "phrase", + "en": "I need to report it.", + "zh": "我需要报案。", + "sceneWord": false, + "match": [ + [ + "report it", + "report a" + ] + ], + "example": { + "en": "I need to report a robbery.", + "zh": "我要报一起抢劫案。" + }, + "review": { + "prompt": "告诉警察你需要报案。" + } + }, + { + "id": "A2-U14-P11", + "type": "phrase", + "en": "Where's the lost property office?", + "zh": "失物招领处在哪里?", + "sceneWord": true, + "sceneReason": "property 为 B1,但 lost property office 是车站机场找失物时必须认识的标牌", + "match": [ + [ + "lost property" + ] + ], + "example": { + "en": "The lost property office is next to Gate 3.", + "zh": "失物招领处在 3 号门旁边。" + }, + "review": { + "prompt": "问车站工作人员失物招领处在哪里。" + } + }, + { + "id": "A2-U14-P12", + "type": "phrase", + "en": "It belongs to my friend.", + "zh": "这是我朋友的。", + "sceneWord": false, + "match": [ + [ + "belongs to", + "belong to" + ] + ], + "example": { + "en": "This camera belongs to my sister.", + "zh": "这台相机是我姐姐的。" + }, + "review": { + "prompt": "说这个包是你妈妈的。" + } + }, + { + "id": "A2-U14-W01", + "type": "word", + "en": "description", + "zh": "描述", + "sceneWord": false, + "match": [ + [ + "description" + ] + ], + "example": { + "en": "Can you give me a description of the bag?", + "zh": "你能描述一下那个包吗?" + }, + "review": { + "prompt": "说警察需要一份描述。" + } + }, + { + "id": "A2-U14-W02", + "type": "word", + "en": "police officer", + "zh": "警察", + "sceneWord": false, + "match": [ + [ + "police officer", + "police officers" + ] + ], + "example": { + "en": "A police officer helped me.", + "zh": "一位警察帮了我。" + }, + "review": { + "prompt": "说一位警察会给你打电话。" + } + }, + { + "id": "A2-U14-W03", + "type": "word", + "en": "robbery", + "zh": "抢劫", + "sceneWord": false, + "match": [ + [ + "robbery" + ] + ], + "example": { + "en": "There was a robbery at the bank.", + "zh": "银行发生了一起抢劫。" + }, + "review": { + "prompt": "说那不是抢劫。" + } + } + ], + "receptiveWords": [ + { + "id": "A2-U14-R01", + "en": "crime", + "zh": "犯罪" + }, + { + "id": "A2-U14-R02", + "en": "rob", + "zh": "抢劫" + }, + { + "id": "A2-U14-R03", + "en": "policewoman", + "zh": "女警察" + }, + { + "id": "A2-U14-R04", + "en": "attack", + "zh": "袭击" + }, + { + "id": "A2-U14-R05", + "en": "law", + "zh": "法律" + }, + { + "id": "A2-U14-R06", + "en": "illegal", + "zh": "违法的" + }, + { + "id": "A2-U14-R07", + "en": "harm", + "zh": "伤害" + }, + { + "id": "A2-U14-R08", + "en": "follow", + "zh": "跟着" + }, + { + "id": "A2-U14-R09", + "en": "pretend", + "zh": "假装" + }, + { + "id": "A2-U14-R10", + "en": "force", + "zh": "暴力" + }, + { + "id": "A2-U14-R11", + "en": "count", + "zh": "数" + }, + { + "id": "A2-U14-R12", + "en": "euro", + "zh": "欧元" + }, + { + "id": "A2-U14-R13", + "en": "thousand", + "zh": "一千" + }, + { + "id": "A2-U14-R14", + "en": "careless", + "zh": "粗心的" + }, + { + "id": "A2-U14-R15", + "en": "calm", + "zh": "冷静的" + }, + { + "id": "A2-U14-R16", + "en": "theft", + "zh": "盗窃" + }, + { + "id": "A2-U14-R17", + "en": "backpack", + "zh": "双肩包" + }, + { + "id": "A2-U14-R18", + "en": "purse", + "zh": "钱包(女式)" + }, + { + "id": "A2-U14-R19", + "en": "grandson", + "zh": "孙子" + }, + { + "id": "A2-U14-R20", + "en": "granddaughter", + "zh": "孙女" + }, + { + "id": "A2-U14-R21", + "en": "grandchild", + "zh": "孙辈" + }, + { + "id": "A2-U14-R22", + "en": "granddad", + "zh": "爷爷" + }, + { + "id": "A2-U14-R23", + "en": "diary", + "zh": "日记本" + }, + { + "id": "A2-U14-R24", + "en": "make-up", + "zh": "化妆品" + }, + { + "id": "A2-U14-R25", + "en": "happily", + "zh": "高兴地" + }, + { + "id": "A2-U14-R26", + "en": "successfully", + "zh": "成功地" + }, + { + "id": "A2-U14-R27", + "en": "joy", + "zh": "喜悦" + }, + { + "id": "A2-U14-R28", + "en": "hug", + "zh": "拥抱" + }, + { + "id": "A2-U14-R29", + "en": "cheer", + "zh": "欢呼" + }, + { + "id": "A2-U14-R30", + "en": "fortune", + "zh": "一大笔钱" + }, + { + "id": "A2-U14-R31", + "en": "brave", + "zh": "勇敢的" + }, + { + "id": "A2-U14-R32", + "en": "greedy", + "zh": "贪婪的" + }, + { + "id": "A2-U14-R33", + "en": "swimming costume", + "zh": "泳衣" + }, + { + "id": "A2-U14-R34", + "en": "string", + "zh": "细绳" + }, + { + "id": "A2-U14-R35", + "en": "pile", + "zh": "一堆" + }, + { + "id": "A2-U14-R36", + "en": "appearance", + "zh": "外表" + }, + { + "id": "A2-U14-R37", + "en": "blonde", + "zh": "金发的" + }, + { + "id": "A2-U14-R38", + "en": "slim", + "zh": "苗条的" + }, + { + "id": "A2-U14-R39", + "en": "good-looking", + "zh": "好看的" + }, + { + "id": "A2-U14-R40", + "en": "aged", + "zh": "……岁的" + }, + { + "id": "A2-U14-R41", + "en": "male", + "zh": "男性" + }, + { + "id": "A2-U14-R42", + "en": "female", + "zh": "女性" + }, + { + "id": "A2-U14-R43", + "en": "teenage", + "zh": "十几岁的" + }, + { + "id": "A2-U14-R44", + "en": "senior", + "zh": "年长的" + }, + { + "id": "A2-U14-R45", + "en": "runner", + "zh": "跑步者" + }, + { + "id": "A2-U14-R46", + "en": "embarrassing", + "zh": "令人尴尬的" + }, + { + "id": "A2-U14-R47", + "en": "silently", + "zh": "默默地" + }, + { + "id": "A2-U14-R48", + "en": "angrily", + "zh": "生气地" + }, + { + "id": "A2-U14-R49", + "en": "court", + "zh": "法庭" + }, + { + "id": "A2-U14-R50", + "en": "lawyer", + "zh": "律师" + }, + { + "id": "A2-U14-R51", + "en": "release", + "zh": "释放" + }, + { + "id": "A2-U14-R52", + "en": "complete", + "zh": "完整的" + }, + { + "id": "A2-U14-R53", + "en": "seek", + "zh": "寻找" + }, + { + "id": "A2-U14-R54", + "en": "expression", + "zh": "表情" + } + ], + "segments": [ + { + "id": "A2-U14-S1", + "title": "说明丢了什么", + "minutes": 13, + "itemIds": [ + "A2-U14-P01", + "A2-U14-P02", + "A2-U14-P03", + "A2-U14-P04", + "A2-U14-P05", + "A2-U14-P12" + ], + "listening": { + "text": "Excuse me. I think I left my bag on the train. I last saw it at the station in Oxford. What does it look like? It's small, and it's made of brown leather. There was some money in it and a camera. The camera belongs to my friend, so I really need to find it.", + "question": "相机是谁的?", + "options": [ + "说话人的朋友", + "说话人自己", + "火车站" + ] + }, + "speaking": [ + { + "text": "I think I left it on the train." + }, + { + "text": "What does it look like?", + "tip": "look like 连读" + }, + { + "text": "It's made of brown leather." + }, + { + "text": "There was some money in it." + }, + { + "text": "I last saw it at the station." + }, + { + "text": "It belongs to my friend." + } + ], + "reading": { + "text": "Lost: backpack\nI think I left it on the number 12 bus on Monday. I last saw it at the station. What does it look like? It's blue, and the bottom is made of black leather. There was a diary and some make-up in it. The diary belongs to my granddaughter. Please call Tom: 07700 900123.", + "question": "日记本是谁的?", + "options": [ + "发帖人的孙女", + "汤姆", + "公交司机" + ] + }, + "writing": { + "prompt": "写两句话:说你把包落在火车上了,包是棕色皮的。", + "example": "I think I left it on the train. It's made of brown leather.", + "itemIds": [ + "A2-U14-P01", + "A2-U14-P03" + ] + }, + "independent": { + "prompt": "用英语说你最后一次看到钱包是在车站,里面有些钱,而且钱包是朋友的。", + "itemIds": [ + "A2-U14-P05", + "A2-U14-P04", + "A2-U14-P12" + ] + } + }, + { + "id": "A2-U14-S2", + "title": "在失物招领处", + "minutes": 12, + "itemIds": [ + "A2-U14-P06", + "A2-U14-P08", + "A2-U14-P09", + "A2-U14-P11", + "A2-U14-W01" + ], + "listening": { + "text": "Where's the lost property office? It's next to Gate 2. Hello, has anyone handed in a bag today? Two bags, yes. Can you describe it? It's a black backpack. Can you give me a better description? It has a red string on it. Sorry, not yet. Could you call me if you find it? Of course.", + "question": "工作人员最后答应做什么?", + "options": [ + "找到后打电话", + "马上去找", + "给一个新包" + ] + }, + "speaking": [ + { + "text": "Where's the lost property office?" + }, + { + "text": "Has anyone handed in a bag?", + "tip": "handed in 连读" + }, + { + "text": "Can you describe it?" + }, + { + "text": "Could you call me if you find it?" + }, + { + "text": "description", + "tip": "重音在 scrip" + } + ], + "reading": { + "text": "Lost Property Office\nOpen: 8 a.m. to 8 p.m.\nHas anyone handed in your things? Please ask at the desk.\n1. We need a description: color, size and what was in it.\n2. Can you describe it well? Then we can find it more quickly.\n3. We keep things for 30 days.\n4. Please leave your phone number. We will call you if we find it.", + "question": "失物招领处会把东西保留多久?", + "options": [ + "30 天", + "8 天", + "一年" + ] + }, + "writing": { + "prompt": "写两句话:问失物招领处在哪里,并问有没有人交来一个包。", + "example": "Where's the lost property office? Has anyone handed in a bag?", + "itemIds": [ + "A2-U14-P11", + "A2-U14-P06" + ] + }, + "independent": { + "prompt": "用英语请工作人员描述一下细节,并请对方找到后给你打电话。", + "itemIds": [ + "A2-U14-P08", + "A2-U14-W01", + "A2-U14-P09" + ] + } + }, + { + "id": "A2-U14-S3", + "title": "东西被偷了", + "minutes": 12, + "itemIds": [ + "A2-U14-P07", + "A2-U14-P10", + "A2-U14-W02", + "A2-U14-W03" + ], + "listening": { + "text": "Hello, police. What happened? My phone was stolen. I need to report it. Was it a robbery? No, nobody attacked me. I was on a busy bus, and a man took it from my pocket. OK, please wait here. A police officer will talk to you in a minute.", + "question": "手机是怎么丢的?", + "options": [ + "在公交车上被人从口袋里偷走", + "有人抢了", + "落在出租车上" + ] + }, + "speaking": [ + { + "text": "My phone was stolen." + }, + { + "text": "I need to report it." + }, + { + "text": "A police officer helped me." + }, + { + "text": "robbery", + "tip": "重音在 rob" + } + ], + "reading": { + "text": "City Police: Tips for visitors\n· Is it a theft or a robbery? A theft is when someone takes your things quietly. A robbery is when someone uses force or attacks you.\n· Stay calm. Don't follow the thief.\n· Go to a police station and say: \"I need to report it.\"\n· When you seek help, give a complete description of the thief's appearance: male or female, tall or slim, blonde or dark hair.\n· A police officer or policewoman will write a report for you.", + "question": "按照提示,东西被偷后不应该做什么?", + "options": [ + "去追小偷", + "去警察局", + "保持冷静" + ] + }, + "writing": { + "prompt": "写两句话:告诉警察你的手机被偷了,你需要报案。", + "example": "My phone was stolen. I need to report it.", + "itemIds": [ + "A2-U14-P07", + "A2-U14-P10" + ] + }, + "independent": { + "prompt": "用英语说那不是抢劫,并说一位警察帮了你。", + "itemIds": [ + "A2-U14-W03", + "A2-U14-W02" + ] + } + } + ], + "scenes": [ + { + "id": "A2-U14-C1", + "kind": "main", + "title": "在车站失物招领处", + "learnerRole": "旅客", + "aiRole": "车站工作人员", + "setting": "你下了火车才发现包不见了,来到车站服务台求助。", + "turns": [ + { + "ai": "Hi, can I help you?", + "goal": "说包落在火车上了,问失物招领处在哪里", + "model": "Yes. I think I left my bag on the train. Where's the lost property office?", + "zh": "是的。我想我把包落在火车上了。失物招领处在哪里?", + "itemIds": [ + "A2-U14-P01", + "A2-U14-P11" + ] + }, + { + "ai": "It's right here. I can help you.", + "goal": "问有没有人交来一个包", + "model": "Great. Has anyone handed in a bag?", + "zh": "太好了。有人交来一个包吗?", + "itemIds": [ + "A2-U14-P06" + ] + }, + { + "ai": "A few. Where did you lose it?", + "goal": "说最后一次看到是在牛津车站", + "model": "I last saw it at the station in Oxford.", + "zh": "我最后一次看到它是在牛津车站。", + "itemIds": [ + "A2-U14-P05" + ] + }, + { + "ai": "OK. Can you describe it?", + "goal": "描述包的材质", + "model": "Sure, I can describe it. It's small, and it's made of brown leather.", + "zh": "当然可以描述。它很小,是棕色皮的。", + "itemIds": [ + "A2-U14-P08", + "A2-U14-P03" + ] + }, + { + "ai": "Was there anything in it?", + "goal": "说里面有钱,相机是朋友的", + "model": "There was some money in it, and a camera. The camera belongs to my friend.", + "zh": "里面有些钱,还有一台相机。相机是我朋友的。", + "itemIds": [ + "A2-U14-P04", + "A2-U14-P12" + ] + }, + { + "ai": "I'm sorry, it isn't here yet.", + "goal": "请对方找到后给你打电话", + "model": "Could you call me if you find it?", + "zh": "如果找到了能给我打电话吗?", + "itemIds": [ + "A2-U14-P09" + ] + } + ] + }, + { + "id": "A2-U14-C2", + "kind": "variant", + "title": "去警察局报案", + "learnerRole": "游客", + "aiRole": "警察", + "setting": "你的手机在公交车上被偷了,你来到警察局。", + "turns": [ + { + "ai": "Good afternoon. What happened?", + "goal": "说手机被偷了,需要报案", + "model": "My phone was stolen. I need to report it.", + "zh": "我的手机被偷了。我需要报案。", + "itemIds": [ + "A2-U14-P07", + "A2-U14-P10" + ] + }, + { + "ai": "Was it a robbery?", + "goal": "说不是抢劫,是有人从口袋里拿走的", + "model": "No, it wasn't a robbery. A man took it from my pocket.", + "zh": "不,不是抢劫。一个男人从我口袋里拿走的。", + "itemIds": [ + "A2-U14-W03" + ] + }, + { + "ai": "Can you remember the man?", + "goal": "给出简单的描述", + "model": "I can give you a short description. He was tall, with short black hair.", + "zh": "我可以简单描述一下。他很高,黑色短发。", + "itemIds": [ + "A2-U14-W01" + ] + }, + { + "ai": "Thank you. Please wait here.", + "goal": "问会不会有警察来谈", + "model": "OK. Will a police officer talk to me?", + "zh": "好的。会有警察来跟我谈吗?", + "itemIds": [ + "A2-U14-W02" + ] + }, + { + "ai": "Yes, in five minutes.", + "goal": "道谢", + "model": "Thank you very much.", + "zh": "非常感谢。", + "itemIds": [] + } + ] + }, + { + "id": "A2-U14-C3", + "kind": "variant", + "title": "帮朋友找伞", + "learnerRole": "朋友", + "aiRole": "丢了伞的朋友", + "setting": "你和朋友在酒店大堂,朋友发现伞不见了。", + "turns": [ + { + "ai": "Oh no! I can't find my umbrella!", + "goal": "问伞是什么样子的", + "model": "Don't worry. What does it look like?", + "zh": "别担心。它是什么样子的?", + "itemIds": [ + "A2-U14-P02" + ] + }, + { + "ai": "It's big and blue. It's my mother's.", + "goal": "确认伞是她妈妈的,请她再描述一下", + "model": "So it belongs to your mother. Can you describe it more?", + "zh": "所以伞是你妈妈的。你能再描述一下吗?", + "itemIds": [ + "A2-U14-P12", + "A2-U14-P08" + ] + }, + { + "ai": "It has a white handle.", + "goal": "去前台问有没有人交来伞", + "model": "Let's ask at the front desk. Has anyone handed in an umbrella?", + "zh": "我们去前台问问。有人交来一把伞吗?", + "itemIds": [ + "A2-U14-P06" + ] + }, + { + "ai": "No, sorry. Nothing today.", + "goal": "请前台找到后打电话", + "model": "Could you call us if you find it? Could you call me if you find it?", + "zh": "如果找到了能给我们打电话吗?", + "itemIds": [ + "A2-U14-P09" + ] + } + ] + } + ], + "tasks": [ + { + "id": "A2-U14-T1", + "sceneId": "A2-U14-C1", + "goal": "在失物招领处说明丢了什么、在哪里丢的", + "itemIds": [ + "A2-U14-P01", + "A2-U14-P11", + "A2-U14-P06", + "A2-U14-P05", + "A2-U14-P08", + "A2-U14-P03", + "A2-U14-P04", + "A2-U14-P12", + "A2-U14-P09" + ], + "slots": [ + "丢了什么", + "在哪里丢的", + "样子", + "联系方式" + ] + }, + { + "id": "A2-U14-T2", + "sceneId": "A2-U14-C2", + "goal": "去警察局报告手机被偷", + "itemIds": [ + "A2-U14-P07", + "A2-U14-P10", + "A2-U14-W03", + "A2-U14-W01", + "A2-U14-W02" + ], + "slots": [ + "发生了什么", + "描述", + "下一步" + ] + }, + { + "id": "A2-U14-T3", + "sceneId": "A2-U14-C3", + "goal": "帮朋友找丢了的伞", + "itemIds": [ + "A2-U14-P02", + "A2-U14-P12", + "A2-U14-P08", + "A2-U14-P06", + "A2-U14-P09" + ], + "slots": [ + "样子", + "询问", + "联系方式" + ] + } + ], + "materials": [ + { + "id": "A2-U14-M1", + "mode": "listening", + "title": "广播:警察给游客的安全提示", + "text": "Good morning. This is Officer Sarah Brown from the City Police. Our city is safe, but every summer, we see more crime against visitors. Most of it is not robbery. Nobody attacks you or wants to harm you. It's theft. Here's how it happens. One person pretends to be confused and asks you for help with a map. Besides him, there's a second person. While you're looking at the map, the second person takes your purse or phone. Then they walk across the street and are gone in a second. So please, keep your bag in front of you, and count your money in your hotel, not on the street. Don't be careless with your passport. If someone takes your things, stay calm and don't follow them. It isn't brave, it's dangerous. Go to a police station and say, \"I need to report it.\" A police officer will help you. Remember, it's illegal to sell stolen phones, and the law is strong here. Last year, we successfully found over a thousand phones. Two men who robbed visitors went to court, and their lawyer couldn't get them released. Have a good day!", + "glosses": { + "officer": "警官", + "safe": "安全的", + "dangerous": "危险的" + }, + "questions": [ + { + "type": "gist", + "question": "这段广播主要讲什么?", + "options": [ + "怎样防止东西被偷、被偷后怎么办", + "城市里的抢劫案越来越多", + "怎样买手机" + ] + }, + { + "type": "detail", + "question": "第一个人通常会做什么?", + "options": [ + "假装困惑,请你帮忙看地图", + "从你口袋里拿手机", + "攻击你" + ] + }, + { + "type": "inference", + "question": "为什么建议在酒店里数钱?", + "options": [ + "在街上数钱容易被小偷注意到", + "酒店里有保险箱", + "街上太吵" + ] + } + ] + }, + { + "id": "A2-U14-M2", + "mode": "reading", + "title": "新闻:诚实的司机", + "text": "Honest driver returns a fortune\nLast Tuesday, a senior man aged 78 got out of a taxi in the city and left his backpack on the back seat. Inside there was a fortune: 5,000 euros, his diary, and a ring for his granddaughter's wedding.\n\"I only noticed it when I got home,\" he said. \"I sat silently for a minute. I was so angry with myself. Then I called my grandson.\"\nThe taxi driver, Mr. Kim, found the backpack at the end of the day. \"Some people are greedy, but I'm not,\" he said. \"It doesn't belong to me.\" He took it to the police. A policewoman looked at the diary and found the man's address.\nThe next morning, Mr. Kim came to the man's house with the police. The whole family was there: the granddad, his grandson and his granddaughter. Every grandchild wanted to meet the driver. Everyone cheered, and the old man hugged the driver happily. \"I can't describe my joy,\" he said.", + "glosses": { + "honest": "诚实的", + "ring": "戒指", + "wedding": "婚礼" + }, + "questions": [ + { + "type": "gist", + "question": "这篇新闻主要讲什么?", + "options": [ + "出租车司机归还了乘客落下的一大笔钱", + "一位老人的钱被偷了", + "一场婚礼" + ] + }, + { + "type": "detail", + "question": "警察是怎么找到老人的地址的?", + "options": [ + "看了日记本", + "问了出租车公司", + "老人打了电话" + ] + }, + { + "type": "inference", + "question": "老人为什么对自己很生气?", + "options": [ + "他把背包落在出租车上了", + "司机拿走了钱", + "孙子没有来" + ] + } + ] + }, + { + "id": "A2-U14-M3", + "mode": "reading", + "title": "博客:失物招领处的一天", + "text": "A day at the lost property office\nI work at the lost property office at the main station. People leave the strangest things on trains.\nToday someone handed in a swimming costume, a pile of old newspapers and a guitar with no strings. Last week, it was a false leg. The runner, a good-looking young man, came back for it and was very embarrassed.\nMost people come to us worried. First, I ask, \"Can you describe it?\" A good description is really important. Some people say, \"It's a black bag.\" But we have fifty black bags! Others remember every detail.\nWe also find people's things. Once, a teenage girl came in angrily. \"My phone was stolen!\" she said. I looked at her face. She had the expression of someone who is very, very angry. Then I found her phone in our box. It wasn't a theft. She just left it on her seat. She said sorry, and we both laughed.\nMy job isn't only about things. It's about people and their joy when they find something they love.", + "glosses": { + "strangest": "最奇怪的", + "guitar": "吉他", + "false": "假的", + "detail": "细节", + "embarrassed": "尴尬的" + }, + "questions": [ + { + "type": "gist", + "question": "这篇博客主要讲什么?", + "options": [ + "在失物招领处工作的经历", + "怎样找到被偷的手机", + "火车上的趣事" + ] + }, + { + "type": "detail", + "question": "为什么说“一个黑色的包”不够?", + "options": [ + "招领处有五十个黑色的包", + "黑包太常见,没人丢", + "工作人员看不清颜色" + ] + }, + { + "type": "inference", + "question": "那个女孩为什么最后说对不起?", + "options": [ + "手机其实是她自己落下的", + "她对工作人员很凶,后来被批评了", + "她拿错了手机" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "说明清楚", + "bands": [ + "只说丢了东西", + "说出丢了什么和大概在哪里", + "说出东西的样子、里面有什么、在哪里丢的" + ], + "pass": 1 + }, + { + "name": "请求帮助", + "bands": [ + "没有请求", + "提出请求但不完整", + "礼貌请求并留下联系方式" + ], + "pass": 1 + } + ] + }, + "excluded": [ + { + "en": "passport", + "reason": "已在 A1-U19 教过" + } + ] +} diff --git a/kouyu_english/assets/courses/A2/A2-U15.json b/kouyu_english/assets/courses/A2/A2-U15.json new file mode 100644 index 0000000..c6635c4 --- /dev/null +++ b/kouyu_english/assets/courses/A2/A2-U15.json @@ -0,0 +1,1113 @@ +{ + "schemaVersion": 1, + "id": "A2-U15", + "revision": 1, + "level": "A2", + "title": "消息与短邮件", + "categories": [ + "日常" + ], + "canDo": "写邀请、感谢、说明迟到", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "anna", + "leo", + "mia", + "tom", + "sam", + "jones" + ], + "grammar": [ + { + "id": "69", + "use": "active" + }, + { + "id": "61", + "use": "active" + }, + { + "id": "65", + "use": "active" + }, + { + "id": "161", + "use": "active" + }, + { + "id": "139", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "A2-U15-P01", + "type": "phrase", + "en": "Thanks for inviting me.", + "zh": "谢谢你邀请我。", + "sceneWord": false, + "match": [ + [ + "thanks for inviting", + "thank you for inviting" + ] + ], + "example": { + "en": "Thanks for inviting me to your party.", + "zh": "谢谢你邀请我参加你的派对。" + }, + "review": { + "prompt": "在短信里谢谢朋友邀请你。" + } + }, + { + "id": "A2-U15-P02", + "type": "phrase", + "en": "I really enjoyed the dinner.", + "zh": "晚饭我吃得很开心。", + "sceneWord": false, + "match": [ + [ + "really enjoyed" + ] + ], + "example": { + "en": "We really enjoyed the trip.", + "zh": "我们这次旅行玩得很开心。" + }, + "review": { + "prompt": "告诉朋友你很喜欢昨天的派对。" + } + }, + { + "id": "A2-U15-P03", + "type": "phrase", + "en": "We're having a party on Saturday.", + "zh": "我们周六要办个派对。", + "sceneWord": false, + "match": [ + [ + "we're having", + "we are having" + ] + ], + "example": { + "en": "We're having a barbecue next Sunday.", + "zh": "我们下周日要烧烤。" + }, + "review": { + "prompt": "写一句话说你们周五晚上要聚餐。" + } + }, + { + "id": "A2-U15-P04", + "type": "phrase", + "en": "I hope you can come.", + "zh": "希望你能来。", + "sceneWord": true, + "sceneReason": "hope 作动词为 B1,但写邀请时几乎一定会用到", + "match": [ + [ + "hope you can" + ] + ], + "example": { + "en": "It's on Friday. I hope you can come.", + "zh": "在周五。希望你能来。" + }, + "review": { + "prompt": "在邀请里说希望对方能来。" + } + }, + { + "id": "A2-U15-P05", + "type": "phrase", + "en": "Please let me know by Friday.", + "zh": "请在周五前告诉我。", + "sceneWord": false, + "match": [ + [ + "let me know" + ] + ], + "example": { + "en": "Let me know if you need a lift.", + "zh": "需要搭车就告诉我。" + }, + "review": { + "prompt": "请朋友周三前回复你。" + } + }, + { + "id": "A2-U15-P06", + "type": "phrase", + "en": "Sorry I didn't reply sooner.", + "zh": "抱歉没早点回复。", + "sceneWord": false, + "match": [ + [ + "reply sooner", + "didn't reply" + ] + ], + "example": { + "en": "Sorry I didn't reply sooner. I was on a plane.", + "zh": "抱歉没早点回复,我在飞机上。" + }, + "review": { + "prompt": "为没有早点回复消息道歉。" + } + }, + { + "id": "A2-U15-P07", + "type": "phrase", + "en": "I'm going to be ten minutes late.", + "zh": "我会晚到十分钟。", + "sceneWord": false, + "match": [ + [ + "minutes late" + ] + ], + "example": { + "en": "I'm going to be twenty minutes late.", + "zh": "我会晚到二十分钟。" + }, + "review": { + "prompt": "发消息说你会晚到十五分钟。" + } + }, + { + "id": "A2-U15-P08", + "type": "phrase", + "en": "It's because of the traffic.", + "zh": "是因为堵车。", + "sceneWord": false, + "match": [ + [ + "because of" + ] + ], + "example": { + "en": "The train is late because of the snow.", + "zh": "火车因为下雪晚点了。" + }, + "review": { + "prompt": "说晚到是因为下雨。" + } + }, + { + "id": "A2-U15-P09", + "type": "phrase", + "en": "Could you bring something to drink?", + "zh": "你能带点喝的来吗?", + "sceneWord": false, + "match": [ + [ + "bring something" + ] + ], + "example": { + "en": "Could you bring something to eat?", + "zh": "你能带点吃的来吗?" + }, + "review": { + "prompt": "请朋友带点甜点来。" + } + }, + { + "id": "A2-U15-P10", + "type": "phrase", + "en": "Looking forward to seeing you.", + "zh": "期待见到你。", + "sceneWord": false, + "match": [ + [ + "looking forward", + "look forward" + ] + ], + "example": { + "en": "Looking forward to seeing you on Saturday.", + "zh": "期待周六见到你。" + }, + "review": { + "prompt": "在邮件结尾写期待见面。" + } + }, + { + "id": "A2-U15-P11", + "type": "phrase", + "en": "Best wishes,", + "zh": "祝好,", + "sceneWord": false, + "match": [ + [ + "best wishes" + ] + ], + "example": { + "en": "Best wishes, Anna", + "zh": "祝好,安娜" + }, + "review": { + "prompt": "用一个常见的结尾给老师写邮件落款。" + } + }, + { + "id": "A2-U15-P12", + "type": "phrase", + "en": "Just a quick message to say thank you.", + "zh": "只是发个短消息说声谢谢。", + "sceneWord": false, + "match": [ + [ + "quick message" + ] + ], + "example": { + "en": "Just a quick message to say I'm home.", + "zh": "发个短消息说我到家了。" + }, + "review": { + "prompt": "发个短消息告诉朋友你到酒店了。" + } + }, + { + "id": "A2-U15-W01", + "type": "word", + "en": "invitation", + "zh": "邀请", + "sceneWord": true, + "sceneReason": "invitation 为 B1,但写回复和感谢时很常用", + "match": [ + [ + "invitation", + "invitations" + ] + ], + "example": { + "en": "Thanks for the invitation.", + "zh": "谢谢你的邀请。" + }, + "review": { + "prompt": "谢谢对方的邀请。" + } + }, + { + "id": "A2-U15-W02", + "type": "word", + "en": "grateful", + "zh": "感激的", + "sceneWord": false, + "match": [ + [ + "grateful" + ] + ], + "example": { + "en": "I'm very grateful for your help.", + "zh": "非常感激你的帮助。" + }, + "review": { + "prompt": "说你很感激朋友的帮助。" + } + }, + { + "id": "A2-U15-W03", + "type": "word", + "en": "organize", + "zh": "组织;安排", + "sceneWord": false, + "match": [ + [ + "organize", + "organized", + "organizing", + "organise", + "organised", + "organising" + ] + ], + "example": { + "en": "Thanks for organizing the trip.", + "zh": "谢谢你安排这次旅行。" + }, + "review": { + "prompt": "说是你朋友安排了这次聚会。" + } + } + ], + "receptiveWords": [ + { + "id": "A2-U15-R01", + "en": "adjust", + "zh": "调整" + }, + { + "id": "A2-U15-R02", + "en": "amused", + "zh": "被逗乐的" + }, + { + "id": "A2-U15-R03", + "en": "artificial", + "zh": "人工的" + }, + { + "id": "A2-U15-R04", + "en": "basically", + "zh": "基本上" + }, + { + "id": "A2-U15-R05", + "en": "consist", + "zh": "由……组成" + }, + { + "id": "A2-U15-R06", + "en": "cooler", + "zh": "冷藏箱" + }, + { + "id": "A2-U15-R07", + "en": "divide", + "zh": "分开" + }, + { + "id": "A2-U15-R08", + "en": "favor", + "zh": "帮忙" + }, + { + "id": "A2-U15-R09", + "en": "greatly", + "zh": "非常" + }, + { + "id": "A2-U15-R10", + "en": "grocery store", + "zh": "杂货店" + }, + { + "id": "A2-U15-R11", + "en": "hit", + "zh": "撞" + }, + { + "id": "A2-U15-R12", + "en": "inexpensive", + "zh": "不贵的" + }, + { + "id": "A2-U15-R13", + "en": "intelligent", + "zh": "聪明的" + }, + { + "id": "A2-U15-R14", + "en": "license", + "zh": "执照" + }, + { + "id": "A2-U15-R15", + "en": "manner", + "zh": "方式" + }, + { + "id": "A2-U15-R16", + "en": "nowadays", + "zh": "如今" + }, + { + "id": "A2-U15-R17", + "en": "partly", + "zh": "部分地" + }, + { + "id": "A2-U15-R18", + "en": "playful", + "zh": "爱玩的;俏皮的" + }, + { + "id": "A2-U15-R19", + "en": "raise", + "zh": "举起" + }, + { + "id": "A2-U15-R20", + "en": "refer", + "zh": "提到" + }, + { + "id": "A2-U15-R21", + "en": "reflect", + "zh": "反映" + }, + { + "id": "A2-U15-R22", + "en": "ruin", + "zh": "毁掉" + }, + { + "id": "A2-U15-R23", + "en": "sense", + "zh": "感觉" + }, + { + "id": "A2-U15-R24", + "en": "sew", + "zh": "缝" + }, + { + "id": "A2-U15-R25", + "en": "someday", + "zh": "将来某天" + }, + { + "id": "A2-U15-R26", + "en": "tone", + "zh": "语气" + }, + { + "id": "A2-U15-R27", + "en": "unimportant", + "zh": "不重要的" + }, + { + "id": "A2-U15-R28", + "en": "unlike", + "zh": "不像" + }, + { + "id": "A2-U15-R29", + "en": "hip hop", + "zh": "嘻哈" + }, + { + "id": "A2-U15-R30", + "en": "skating", + "zh": "滑冰" + }, + { + "id": "A2-U15-R31", + "en": "bride", + "zh": "新娘" + }, + { + "id": "A2-U15-R32", + "en": "editor", + "zh": "编辑" + }, + { + "id": "A2-U15-R33", + "en": "psychologist", + "zh": "心理学家" + }, + { + "id": "A2-U15-R34", + "en": "carrot", + "zh": "胡萝卜" + }, + { + "id": "A2-U15-R35", + "en": "university", + "zh": "大学" + }, + { + "id": "A2-U15-R36", + "en": "pronunciation", + "zh": "发音" + }, + { + "id": "A2-U15-R37", + "en": "barber", + "zh": "理发师" + }, + { + "id": "A2-U15-R38", + "en": "petrol", + "zh": "汽油" + }, + { + "id": "A2-U15-R39", + "en": "petrol station", + "zh": "加油站" + }, + { + "id": "A2-U15-R40", + "en": "envy", + "zh": "羡慕" + }, + { + "id": "A2-U15-R41", + "en": "friendship", + "zh": "友谊" + }, + { + "id": "A2-U15-R42", + "en": "apartment", + "zh": "公寓" + }, + { + "id": "A2-U15-R43", + "en": "driver's license", + "zh": "驾照" + } + ], + "segments": [ + { + "id": "A2-U15-S1", + "title": "写邀请", + "minutes": 13, + "itemIds": [ + "A2-U15-P03", + "A2-U15-P04", + "A2-U15-P05", + "A2-U15-P09", + "A2-U15-P10", + "A2-U15-W03" + ], + "listening": { + "text": "Hi Leo! We're having a party on Saturday at our new apartment. My sister is organizing the food. I hope you can come. Could you bring something to drink? Please let me know by Friday. Looking forward to seeing you!", + "question": "利奥需要做什么?", + "options": [ + "带点喝的,周五前回复", + "做饭", + "周六前回复" + ] + }, + "speaking": [ + { + "text": "We're having a party on Saturday." + }, + { + "text": "I hope you can come." + }, + { + "text": "Please let me know by Friday." + }, + { + "text": "Could you bring something to drink?" + }, + { + "text": "Looking forward to seeing you.", + "tip": "forward 弱读" + } + ], + "reading": { + "text": "Hi everyone,\nWe're having a small party in our sitting room next Sunday for Mia's birthday. Sam is organizing the games. I hope you can come! Could you bring something to eat? Please let me know by Thursday. Looking forward to seeing you all.\nTom", + "question": "请大家带什么?", + "options": [ + "吃的东西", + "喝的东西", + "游戏" + ] + }, + "writing": { + "prompt": "写一条邀请:说你们周六办派对,希望对方能来。", + "example": "We're having a party on Saturday. I hope you can come.", + "itemIds": [ + "A2-U15-P03", + "A2-U15-P04" + ] + }, + "independent": { + "prompt": "用英语写:你朋友在安排这次聚会,请对方带点喝的,周五前告诉你,期待见面。", + "itemIds": [ + "A2-U15-W03", + "A2-U15-P09", + "A2-U15-P05", + "A2-U15-P10" + ] + } + }, + { + "id": "A2-U15-S2", + "title": "写感谢", + "minutes": 12, + "itemIds": [ + "A2-U15-P01", + "A2-U15-P02", + "A2-U15-P12", + "A2-U15-P11", + "A2-U15-W01", + "A2-U15-W02" + ], + "listening": { + "text": "Hi Anna, just a quick message to say thank you. Thanks for inviting me last night. I really enjoyed the dinner, and your friends were lovely. I'm very grateful for the invitation. Best wishes, Mia.", + "question": "米娅为什么写这条消息?", + "options": [ + "感谢安娜昨晚的邀请", + "邀请安娜吃饭", + "说自己会晚到" + ] + }, + "speaking": [ + { + "text": "Just a quick message to say thank you." + }, + { + "text": "Thanks for inviting me." + }, + { + "text": "I really enjoyed the dinner." + }, + { + "text": "Thanks for the invitation.", + "tip": "invitation 重音在 ta" + }, + { + "text": "I'm very grateful for your help." + }, + { + "text": "Best wishes," + } + ], + "reading": { + "text": "Dear Mrs Jones,\nJust a quick message to say thank you for the invitation to your home. I really enjoyed the dinner, especially the carrot cake! Thanks for inviting me. I'm very grateful for your help with my writing, too.\nBest wishes,\nLeo", + "question": "利奥还感谢琼斯太太帮他做什么?", + "options": [ + "帮他提高写作", + "帮他做蛋糕", + "帮他找工作" + ] + }, + "writing": { + "prompt": "写一条短消息:谢谢朋友邀请你,说你晚饭吃得很开心。", + "example": "Thanks for inviting me. I really enjoyed the dinner.", + "itemIds": [ + "A2-U15-P01", + "A2-U15-P02" + ] + }, + "independent": { + "prompt": "用英语写一条感谢短信:说只是发个短消息道谢,谢谢对方的邀请,说你很感激,并用常见结尾落款。", + "itemIds": [ + "A2-U15-P12", + "A2-U15-W01", + "A2-U15-W02", + "A2-U15-P11" + ] + } + }, + { + "id": "A2-U15-S3", + "title": "说明迟到", + "minutes": 12, + "itemIds": [ + "A2-U15-P06", + "A2-U15-P07", + "A2-U15-P08" + ], + "listening": { + "text": "Sorry I didn't reply sooner. I was driving. I'm going to be ten minutes late. It's because of the traffic. There was an accident near the petrol station. See you at the restaurant.", + "question": "为什么会晚到?", + "options": [ + "堵车", + "车坏了", + "忘了时间" + ] + }, + "speaking": [ + { + "text": "Sorry I didn't reply sooner." + }, + { + "text": "I'm going to be ten minutes late." + }, + { + "text": "It's because of the traffic." + } + ], + "reading": { + "text": "Tom: Where are you? The film starts at 7!\nSam: Sorry I didn't reply sooner. I'm on the bus. I'm going to be ten minutes late. It's because of the traffic. Go in and I'll find you.\nTom: OK. I'll keep your ticket.", + "question": "萨姆让汤姆怎么做?", + "options": [ + "先进去", + "在门口等", + "退票" + ] + }, + "writing": { + "prompt": "写一条短信:为没早点回复道歉,说你会晚到十分钟。", + "example": "Sorry I didn't reply sooner. I'm going to be ten minutes late.", + "itemIds": [ + "A2-U15-P06", + "A2-U15-P07" + ] + }, + "independent": { + "prompt": "用英语发消息说晚到是因为堵车。", + "itemIds": [ + "A2-U15-P08" + ] + } + } + ], + "scenes": [ + { + "id": "A2-U15-C1", + "kind": "main", + "title": "用短信邀请朋友", + "learnerRole": "发起聚会的人", + "aiRole": "朋友", + "setting": "你周六要在家办聚会,在聊天软件里邀请朋友。", + "turns": [ + { + "ai": "Hi! What's up?", + "goal": "说周六要办派对,希望对方能来", + "model": "We're having a party on Saturday. I hope you can come.", + "zh": "我们周六要办派对,希望你能来。", + "itemIds": [ + "A2-U15-P03", + "A2-U15-P04" + ] + }, + { + "ai": "Sounds fun! Who's organizing it?", + "goal": "说是你和妹妹安排的", + "model": "My sister and I are organizing it.", + "zh": "是我和我妹妹安排的。", + "itemIds": [ + "A2-U15-W03" + ] + }, + { + "ai": "Great. Should I bring anything?", + "goal": "请对方带点喝的", + "model": "Could you bring something to drink?", + "zh": "你能带点喝的来吗?", + "itemIds": [ + "A2-U15-P09" + ] + }, + { + "ai": "Sure. I need to check my plans first.", + "goal": "请对方周五前告诉你", + "model": "No problem. Please let me know by Friday.", + "zh": "没问题。请在周五前告诉我。", + "itemIds": [ + "A2-U15-P05" + ] + }, + { + "ai": "OK, I'll text you tomorrow.", + "goal": "说期待见面", + "model": "Great. Looking forward to seeing you.", + "zh": "太好了,期待见到你。", + "itemIds": [ + "A2-U15-P10" + ] + } + ] + }, + { + "id": "A2-U15-C2", + "kind": "variant", + "title": "发消息表示感谢", + "learnerRole": "客人", + "aiRole": "朋友", + "setting": "昨晚你去朋友家吃饭,今天发消息感谢。", + "turns": [ + { + "ai": "Hi! Did you get home OK?", + "goal": "说只是发个短消息道谢,谢谢邀请", + "model": "Yes, thanks. Just a quick message to say thank you. Thanks for inviting me.", + "zh": "到了,谢谢。只是发个短消息说声谢谢。谢谢你邀请我。", + "itemIds": [ + "A2-U15-P12", + "A2-U15-P01" + ] + }, + { + "ai": "You're welcome! Did you like the food?", + "goal": "说晚饭吃得很开心", + "model": "Yes, I really enjoyed the dinner.", + "zh": "是的,晚饭我吃得很开心。", + "itemIds": [ + "A2-U15-P02" + ] + }, + { + "ai": "I'm happy to hear that.", + "goal": "说很感激对方的邀请", + "model": "I'm very grateful for the invitation.", + "zh": "非常感激你的邀请。", + "itemIds": [ + "A2-U15-W02", + "A2-U15-W01" + ] + }, + { + "ai": "Come again soon!", + "goal": "用常见结尾结束", + "model": "I will! Best wishes, and see you soon.", + "zh": "一定!祝好,回头见。", + "itemIds": [ + "A2-U15-P11" + ] + } + ] + }, + { + "id": "A2-U15-C3", + "kind": "variant", + "title": "说明会迟到", + "learnerRole": "迟到的人", + "aiRole": "在餐厅等你的朋友", + "setting": "你和朋友约好七点吃饭,你还在路上。", + "turns": [ + { + "ai": "Hey, where are you? I'm at the restaurant.", + "goal": "为没早点回复道歉,说会晚到十分钟", + "model": "Sorry I didn't reply sooner. I'm going to be ten minutes late.", + "zh": "抱歉没早点回复。我会晚到十分钟。", + "itemIds": [ + "A2-U15-P06", + "A2-U15-P07" + ] + }, + { + "ai": "Oh no. What happened?", + "goal": "说是因为堵车", + "model": "It's because of the traffic.", + "zh": "是因为堵车。", + "itemIds": [ + "A2-U15-P08" + ] + }, + { + "ai": "No problem. I'll order drinks.", + "goal": "道谢", + "model": "Thanks. See you soon.", + "zh": "谢谢,一会儿见。", + "itemIds": [] + }, + { + "ai": "I can order your food, too. The fish or the chicken?", + "goal": "请朋友帮你点鱼", + "model": "The fish, please. Thanks!", + "zh": "鱼,谢谢!", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "A2-U15-T1", + "sceneId": "A2-U15-C1", + "goal": "用短信邀请朋友来派对", + "itemIds": [ + "A2-U15-P03", + "A2-U15-P04", + "A2-U15-W03", + "A2-U15-P09", + "A2-U15-P05", + "A2-U15-P10" + ], + "slots": [ + "活动", + "时间", + "请求", + "回复期限" + ] + }, + { + "id": "A2-U15-T2", + "sceneId": "A2-U15-C2", + "goal": "发消息感谢朋友的晚餐", + "itemIds": [ + "A2-U15-P12", + "A2-U15-P01", + "A2-U15-P02", + "A2-U15-W02", + "A2-U15-W01", + "A2-U15-P11" + ], + "slots": [ + "感谢", + "具体内容", + "结尾" + ] + }, + { + "id": "A2-U15-T3", + "sceneId": "A2-U15-C3", + "goal": "发消息说明会迟到", + "itemIds": [ + "A2-U15-P06", + "A2-U15-P07", + "A2-U15-P08" + ], + "slots": [ + "道歉", + "晚多久", + "原因" + ] + } + ], + "materials": [ + { + "id": "A2-U15-M1", + "mode": "listening", + "title": "三条语音留言", + "text": "Message one. Hi, it's Anna. Sorry I didn't reply sooner. I'm going to be about twenty minutes late. It's partly because of the traffic, and partly my fault. I had to stop at a petrol station, and then I went to the grocery store for a cooler of drinks for the party. See you soon!\nMessage two. Hello, this is Tom from the university skating club. We're having a party on Friday for the end of the season. There will be singing, hip hop dancing and food. I hope you can come. It's inexpensive, just five pounds. Please let me know by Wednesday. And please don't forget your student card.\nMessage three. Hi Mia, it's Leo. Just a quick message to say thank you. Thanks for inviting me to your apartment on Sunday. I really enjoyed the dinner. I was amused by your playful dog. He tried to take my shoe! I'm so grateful for our friendship. Oh, and I've got my driver's license now, so next time, I can drive us to the beach. Best wishes!", + "glosses": { + "fault": "错", + "season": "季节", + "pounds": "英镑" + }, + "questions": [ + { + "type": "gist", + "question": "这三条留言分别是什么?", + "options": [ + "一条说迟到,一条邀请,一条感谢", + "三条都是邀请", + "一条道歉,两条问路" + ] + }, + { + "type": "detail", + "question": "滑冰俱乐部的派对多少钱?", + "options": [ + "五英镑", + "免费", + "二十英镑" + ] + }, + { + "type": "inference", + "question": "利奥为什么提到他有驾照了?", + "options": [ + "下次可以开车带米娅去海边", + "他想买车", + "他开车来的晚饭" + ] + } + ] + }, + { + "id": "A2-U15-M2", + "mode": "reading", + "title": "邮件:婚礼邀请与回复", + "text": "Subject: Our wedding!\nDear friends,\nWe're getting married! We're having a small party on 12 June, in the garden of Anna's parents' house. We hope you can come. The party consists of two parts: lunch in the garden, and dancing in the evening. Please let us know by 1 May. If you like, you can bring something to eat, but it isn't necessary.\nLooking forward to seeing you!\nAnna and Sam\n\nSubject: Re: Our wedding!\nDear Anna and Sam,\nThanks so much for the invitation. Sorry I didn't reply sooner. I was on holiday, and I only read my emails today.\nOf course we will come! Anna, you'll be a beautiful bride. My sister can sew, so she's making a dress for my daughter. I also want to ask you a favor: could I bring my friend Mia? She's a psychologist and works as an editor for a small magazine. You met her once at my barber's, I think.\nI'm very grateful that you thought of us, and I envy your weather. We'll raise a glass to you both. It's always raining here!\nBest wishes,\nLeo", + "glosses": { + "necessary": "必要的", + "married": "结婚", + "subject": "主题", + "re": "回复" + }, + "questions": [ + { + "type": "gist", + "question": "这两封邮件是关于什么的?", + "options": [ + "一封婚礼邀请和一封回复", + "两个人在讨论假期", + "利奥在找工作" + ] + }, + { + "type": "detail", + "question": "为什么利奥没有早点回复?", + "options": [ + "他在度假,今天才看邮件", + "他忘了", + "他在生病" + ] + }, + { + "type": "inference", + "question": "利奥请他们帮什么忙?", + "options": [ + "允许他带朋友米娅来", + "帮他做裙子", + "送他去理发店" + ] + } + ] + }, + { + "id": "A2-U15-M3", + "mode": "reading", + "title": "文章:怎样写好一条短消息", + "text": "How to write a good message\nNowadays, most of us write more messages than letters. Unlike a letter, a message is short, but it still reflects your manner. Here are some tips from a writing teacher.\n1. Think about the tone, and adjust it for the person. A playful message with lots of pictures is fine for friends, but not for your boss. The latter may think it's unimportant to you.\n2. Say the main thing first. \"I'm going to be ten minutes late\" is better than a long story about the bus that hit a car.\n3. Refer to the time and place clearly. If there are two parts, divide them into two short lines.\n4. End well. For friends, \"See you soon\" is fine. For others, \"Best wishes\" is basically always right.\n5. Read it again. A missing word can ruin the meaning. Artificial intelligence can help you check your writing, but it can't make your message warm. Even very intelligent people make mistakes, so use common sense. And unlike speaking, writing doesn't need good pronunciation! That is your job.\nOne more thing: a quick \"thanks\" is always pleasing. Small messages can greatly help a friendship. Someday, people will remember your kind words.", + "glosses": { + "tips": "提示", + "boss": "老板", + "clearly": "清楚地", + "intelligence": "智能" + }, + "questions": [ + { + "type": "gist", + "question": "这篇文章主要讲什么?", + "options": [ + "写好短消息的几个建议", + "怎样写一封长信", + "人工智能怎样写作" + ] + }, + { + "type": "detail", + "question": "给不熟悉的人发消息,用什么结尾基本不会错?", + "options": [ + "Best wishes", + "See you soon", + "很多图片" + ] + }, + { + "type": "inference", + "question": "作者为什么说人工智能不能代替你?", + "options": [ + "它不能让消息有温度", + "它经常写错字", + "它太贵了" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "内容完整", + "bands": [ + "缺少主要信息", + "有主要信息,但缺时间或请求等细节", + "目的、时间地点、请求或原因都写清楚" + ], + "pass": 1 + }, + { + "name": "语气与格式", + "bands": [ + "没有开头或结尾", + "有开头结尾,但语气不合适", + "开头、结尾和语气都适合对象" + ], + "pass": 1 + } + ] + }, + "excluded": [ + { + "en": "Kind regards", + "reason": "regards 不在 CEFR-J 词表中;A2 阶段用 Best wishes 代替" + } + ] +} diff --git a/kouyu_english/assets/courses/B1/B1-U01.json b/kouyu_english/assets/courses/B1/B1-U01.json new file mode 100644 index 0000000..7871f00 --- /dev/null +++ b/kouyu_english/assets/courses/B1/B1-U01.json @@ -0,0 +1,1421 @@ +{ + "schemaVersion": 1, + "id": "B1-U01", + "revision": 1, + "level": "B1", + "title": "讲一段完整的旅行经历", + "categories": [ + "旅行" + ], + "canDo": "按顺序叙述,加入背景和感受", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "yunnan", + "lin", + "emma", + "borneo", + "adi", + "norway", + "morocco", + "kinabalu", + "aisha", + "kenji", + "tom" + ], + "grammar": [ + { + "id": "66", + "use": "active" + }, + { + "id": "67", + "use": "active" + }, + { + "id": "140", + "use": "active" + }, + { + "id": "155", + "use": "active" + }, + { + "id": "161", + "use": "active" + } + ], + "coreItems": [ + { + "id": "B1-U01-P01", + "type": "phrase", + "en": "It all started when we missed the last bus.", + "zh": "一切都是从我们错过末班车开始的。", + "sceneWord": false, + "match": [ + [ + "it all started" + ] + ], + "example": { + "en": "It all started when I lost my passport.", + "zh": "一切都是从我丢了护照开始的。" + }, + "review": { + "prompt": "用“一切都是从……开始的”讲你们迷路的故事开头。" + } + }, + { + "id": "B1-U01-P02", + "type": "phrase", + "en": "We were walking along the beach when it started to rain.", + "zh": "我们正沿着海滩走,突然下起了雨。", + "sceneWord": false, + "match": [ + [ + "were walking", + "was walking", + "were driving", + "was driving" + ] + ], + "example": { + "en": "I was driving to the airport when my phone rang.", + "zh": "我正开车去机场,电话响了。" + }, + "review": { + "prompt": "说你们正在爬山的时候天黑了。" + } + }, + { + "id": "B1-U01-P03", + "type": "phrase", + "en": "At first, we didn't know what to do.", + "zh": "一开始,我们不知道该怎么办。", + "sceneWord": false, + "match": [ + [ + "at first" + ] + ], + "example": { + "en": "At first, I didn't like the food.", + "zh": "一开始我不喜欢那里的食物。" + }, + "review": { + "prompt": "说一开始你很紧张。" + } + }, + { + "id": "B1-U01-P04", + "type": "phrase", + "en": "After a while, a car stopped next to us.", + "zh": "过了一会儿,一辆车停在我们旁边。", + "sceneWord": false, + "match": [ + [ + "after a while" + ] + ], + "example": { + "en": "After a while, the rain stopped.", + "zh": "过了一会儿,雨停了。" + }, + "review": { + "prompt": "说过了一会儿,你们找到了一条小路。" + } + }, + { + "id": "B1-U01-P05", + "type": "phrase", + "en": "By the time we got there, the restaurant had closed.", + "zh": "等我们到那儿时,餐厅已经关门了。", + "sceneWord": false, + "match": [ + [ + "by the time" + ] + ], + "example": { + "en": "By the time we got to the station, the train had left.", + "zh": "等我们到车站时,火车已经开走了。" + }, + "review": { + "prompt": "说等你们到博物馆时,它已经关门了。" + } + }, + { + "id": "B1-U01-P06", + "type": "phrase", + "en": "It turned out that he owned the hotel.", + "zh": "原来他是那家酒店的老板。", + "sceneWord": false, + "match": [ + [ + "turned out" + ] + ], + "example": { + "en": "It turned out that the museum was free.", + "zh": "原来博物馆是免费的。" + }, + "review": { + "prompt": "说原来那条路是错的。" + } + }, + { + "id": "B1-U01-P07", + "type": "phrase", + "en": "What happened next?", + "zh": "接下来发生了什么?", + "sceneWord": false, + "match": [ + [ + "happened next" + ] + ], + "example": { + "en": "That's crazy! What happened next?", + "zh": "太疯狂了!接下来呢?" + }, + "review": { + "prompt": "听朋友讲故事时追问后来怎样了。" + } + }, + { + "id": "B1-U01-P08", + "type": "phrase", + "en": "In the end, we had a great time.", + "zh": "最后,我们玩得很开心。", + "sceneWord": false, + "match": [ + [ + "in the end" + ] + ], + "example": { + "en": "In the end, we found a nice hotel.", + "zh": "最后我们找到了一家不错的酒店。" + }, + "review": { + "prompt": "说最后你们还是赶上了飞机。" + } + }, + { + "id": "B1-U01-P09", + "type": "phrase", + "en": "The best part was the sunrise.", + "zh": "最棒的部分是日出。", + "sceneWord": false, + "match": [ + [ + "best part" + ] + ], + "example": { + "en": "The best part was the food.", + "zh": "最棒的是吃的。" + }, + "review": { + "prompt": "说这次旅行最棒的是那里的人。" + } + }, + { + "id": "B1-U01-P10", + "type": "phrase", + "en": "I'll never forget that night.", + "zh": "我永远不会忘记那个夜晚。", + "sceneWord": false, + "match": [ + [ + "never forget" + ] + ], + "example": { + "en": "I'll never forget my first trip abroad.", + "zh": "我永远不会忘记第一次出国旅行。" + }, + "review": { + "prompt": "说你永远不会忘记那次旅行。" + } + }, + { + "id": "B1-U01-P11", + "type": "phrase", + "en": "To be honest, I was a bit scared.", + "zh": "说实话,我有点害怕。", + "sceneWord": false, + "match": [ + [ + "to be honest" + ] + ], + "example": { + "en": "To be honest, the hotel wasn't very clean.", + "zh": "说实话,酒店不太干净。" + }, + "review": { + "prompt": "说实话,你不太喜欢那个城市。" + } + }, + { + "id": "B1-U01-P12", + "type": "phrase", + "en": "I used to think camping was boring.", + "zh": "我以前觉得露营很无聊。", + "sceneWord": false, + "match": [ + [ + "used to" + ] + ], + "example": { + "en": "I used to travel with my parents.", + "zh": "我以前都是跟父母一起旅行。" + }, + "review": { + "prompt": "说你以前不喜欢坐飞机。" + } + }, + { + "id": "B1-U01-W01", + "type": "word", + "en": "exhausted", + "zh": "精疲力尽的", + "sceneWord": false, + "match": [ + [ + "exhausted" + ] + ], + "example": { + "en": "We were exhausted after the long walk.", + "zh": "走了那么远,我们累坏了。" + }, + "review": { + "prompt": "说爬完山你累坏了。" + } + }, + { + "id": "B1-U01-W02", + "type": "word", + "en": "memorable", + "zh": "难忘的", + "sceneWord": false, + "match": [ + [ + "memorable" + ] + ], + "example": { + "en": "It was a memorable trip.", + "zh": "那是一次难忘的旅行。" + }, + "review": { + "prompt": "说那是一个难忘的夜晚。" + } + }, + { + "id": "B1-U01-W03", + "type": "word", + "en": "unexpected", + "zh": "出乎意料的", + "sceneWord": false, + "match": [ + [ + "unexpected", + "unexpectedly" + ] + ], + "example": { + "en": "The storm was completely unexpected.", + "zh": "那场暴风雨完全出乎意料。" + }, + "review": { + "prompt": "说那个结果很出乎意料。" + } + } + ], + "receptiveWords": [ + { + "id": "B1-U01-R01", + "en": "aboard", + "zh": "在船上;登上" + }, + { + "id": "B1-U01-R02", + "en": "amazed", + "zh": "惊讶的" + }, + { + "id": "B1-U01-R03", + "en": "boot", + "zh": "靴子" + }, + { + "id": "B1-U01-R04", + "en": "breathless", + "zh": "喘不过气的" + }, + { + "id": "B1-U01-R05", + "en": "camel", + "zh": "骆驼" + }, + { + "id": "B1-U01-R06", + "en": "campsite", + "zh": "露营地" + }, + { + "id": "B1-U01-R07", + "en": "cave", + "zh": "山洞" + }, + { + "id": "B1-U01-R08", + "en": "central", + "zh": "中部的;中心的" + }, + { + "id": "B1-U01-R09", + "en": "cliff", + "zh": "悬崖" + }, + { + "id": "B1-U01-R10", + "en": "climate", + "zh": "气候" + }, + { + "id": "B1-U01-R11", + "en": "climber", + "zh": "登山者" + }, + { + "id": "B1-U01-R12", + "en": "darkness", + "zh": "黑暗" + }, + { + "id": "B1-U01-R13", + "en": "delight", + "zh": "欣喜" + }, + { + "id": "B1-U01-R14", + "en": "disaster", + "zh": "灾难;彻底失败" + }, + { + "id": "B1-U01-R15", + "en": "dive", + "zh": "潜水" + }, + { + "id": "B1-U01-R16", + "en": "diving", + "zh": "潜水运动" + }, + { + "id": "B1-U01-R17", + "en": "dolphin", + "zh": "海豚" + }, + { + "id": "B1-U01-R18", + "en": "dramatic", + "zh": "充满戏剧性的" + }, + { + "id": "B1-U01-R19", + "en": "dusty", + "zh": "满是灰尘的" + }, + { + "id": "B1-U01-R20", + "en": "edge", + "zh": "边缘" + }, + { + "id": "B1-U01-R21", + "en": "endless", + "zh": "无边无际的" + }, + { + "id": "B1-U01-R22", + "en": "extraordinary", + "zh": "非凡的" + }, + { + "id": "B1-U01-R23", + "en": "extreme", + "zh": "极端的" + }, + { + "id": "B1-U01-R24", + "en": "fade", + "zh": "逐渐消失" + }, + { + "id": "B1-U01-R25", + "en": "faraway", + "zh": "遥远的" + }, + { + "id": "B1-U01-R26", + "en": "ferry", + "zh": "渡轮" + }, + { + "id": "B1-U01-R27", + "en": "fortunate", + "zh": "幸运的" + }, + { + "id": "B1-U01-R28", + "en": "frost", + "zh": "霜" + }, + { + "id": "B1-U01-R29", + "en": "glance", + "zh": "一瞥" + }, + { + "id": "B1-U01-R30", + "en": "glimpse", + "zh": "瞥见" + }, + { + "id": "B1-U01-R31", + "en": "gorgeous", + "zh": "非常美的" + }, + { + "id": "B1-U01-R32", + "en": "horizon", + "zh": "地平线" + }, + { + "id": "B1-U01-R33", + "en": "hostel", + "zh": "青年旅舍" + }, + { + "id": "B1-U01-R34", + "en": "huge", + "zh": "巨大的" + }, + { + "id": "B1-U01-R35", + "en": "humid", + "zh": "潮湿的" + }, + { + "id": "B1-U01-R36", + "en": "hut", + "zh": "小屋" + }, + { + "id": "B1-U01-R37", + "en": "incredible", + "zh": "难以置信的" + }, + { + "id": "B1-U01-R38", + "en": "jungle", + "zh": "丛林" + }, + { + "id": "B1-U01-R39", + "en": "lifelong", + "zh": "终生的" + }, + { + "id": "B1-U01-R40", + "en": "loud", + "zh": "响亮的" + }, + { + "id": "B1-U01-R41", + "en": "magnificent", + "zh": "壮丽的" + }, + { + "id": "B1-U01-R42", + "en": "meanwhile", + "zh": "与此同时" + }, + { + "id": "B1-U01-R43", + "en": "misty", + "zh": "有雾的" + }, + { + "id": "B1-U01-R44", + "en": "mountaintop", + "zh": "山顶" + }, + { + "id": "B1-U01-R45", + "en": "mud", + "zh": "泥" + }, + { + "id": "B1-U01-R46", + "en": "narrow", + "zh": "窄的" + }, + { + "id": "B1-U01-R47", + "en": "northern", + "zh": "北方的" + }, + { + "id": "B1-U01-R48", + "en": "nowhere", + "zh": "无处;偏僻处" + }, + { + "id": "B1-U01-R49", + "en": "ocean", + "zh": "海洋" + }, + { + "id": "B1-U01-R50", + "en": "out-of-date", + "zh": "过时的" + }, + { + "id": "B1-U01-R51", + "en": "overjoyed", + "zh": "欣喜若狂的" + }, + { + "id": "B1-U01-R52", + "en": "pace", + "zh": "速度;步伐" + }, + { + "id": "B1-U01-R53", + "en": "paradise", + "zh": "天堂" + }, + { + "id": "B1-U01-R54", + "en": "port", + "zh": "港口" + }, + { + "id": "B1-U01-R55", + "en": "rainfall", + "zh": "降雨量" + }, + { + "id": "B1-U01-R56", + "en": "rainforest", + "zh": "热带雨林" + }, + { + "id": "B1-U01-R57", + "en": "recall", + "zh": "回想起" + }, + { + "id": "B1-U01-R58", + "en": "retell", + "zh": "复述" + }, + { + "id": "B1-U01-R59", + "en": "sand", + "zh": "沙子" + }, + { + "id": "B1-U01-R60", + "en": "scare", + "zh": "使害怕" + }, + { + "id": "B1-U01-R61", + "en": "scared", + "zh": "害怕的" + }, + { + "id": "B1-U01-R62", + "en": "shallow", + "zh": "浅的" + }, + { + "id": "B1-U01-R63", + "en": "shiny", + "zh": "闪亮的" + }, + { + "id": "B1-U01-R64", + "en": "shiver", + "zh": "发抖" + }, + { + "id": "B1-U01-R65", + "en": "silent", + "zh": "寂静的" + }, + { + "id": "B1-U01-R66", + "en": "slip", + "zh": "滑倒" + }, + { + "id": "B1-U01-R67", + "en": "spectacular", + "zh": "壮观的" + }, + { + "id": "B1-U01-R68", + "en": "stare", + "zh": "盯着看" + }, + { + "id": "B1-U01-R69", + "en": "steep", + "zh": "陡峭的" + }, + { + "id": "B1-U01-R70", + "en": "strangely", + "zh": "奇怪地" + }, + { + "id": "B1-U01-R71", + "en": "stumble", + "zh": "绊倒" + }, + { + "id": "B1-U01-R72", + "en": "summit", + "zh": "山顶;顶峰" + }, + { + "id": "B1-U01-R73", + "en": "sunrise", + "zh": "日出" + }, + { + "id": "B1-U01-R74", + "en": "surprisingly", + "zh": "出人意料地" + }, + { + "id": "B1-U01-R75", + "en": "tale", + "zh": "故事" + }, + { + "id": "B1-U01-R76", + "en": "terribly", + "zh": "非常;很糟地" + }, + { + "id": "B1-U01-R77", + "en": "thirst", + "zh": "口渴" + }, + { + "id": "B1-U01-R78", + "en": "tiny", + "zh": "很小的" + }, + { + "id": "B1-U01-R79", + "en": "trail", + "zh": "小路" + }, + { + "id": "B1-U01-R80", + "en": "tremendous", + "zh": "巨大的;极好的" + }, + { + "id": "B1-U01-R81", + "en": "tropical", + "zh": "热带的" + }, + { + "id": "B1-U01-R82", + "en": "turtle", + "zh": "海龟" + }, + { + "id": "B1-U01-R83", + "en": "unlucky", + "zh": "不幸的" + }, + { + "id": "B1-U01-R84", + "en": "vast", + "zh": "广阔的" + }, + { + "id": "B1-U01-R85", + "en": "vivid", + "zh": "生动的" + }, + { + "id": "B1-U01-R86", + "en": "volcano", + "zh": "火山" + }, + { + "id": "B1-U01-R87", + "en": "voyage", + "zh": "航行" + }, + { + "id": "B1-U01-R88", + "en": "warmth", + "zh": "温暖" + }, + { + "id": "B1-U01-R89", + "en": "waterfall", + "zh": "瀑布" + }, + { + "id": "B1-U01-R90", + "en": "whale", + "zh": "鲸" + }, + { + "id": "B1-U01-R91", + "en": "whistle", + "zh": "吹口哨" + }, + { + "id": "B1-U01-R92", + "en": "windsurfing", + "zh": "帆板运动" + }, + { + "id": "B1-U01-R93", + "en": "wing", + "zh": "翅膀" + } + ], + "segments": [ + { + "id": "B1-U01-S1", + "title": "故事的开头", + "minutes": 13, + "itemIds": [ + "B1-U01-P01", + "B1-U01-P02", + "B1-U01-P03", + "B1-U01-P12" + ], + "listening": { + "text": "It all started when we missed the last bus home. We were walking along the road when it started to rain. At first, we didn't know what to do. I used to think travel was always fun, but that night I wasn't so sure.", + "question": "下雨时他们在做什么?", + "options": [ + "沿着路走", + "等公交车", + "在饭店吃饭" + ] + }, + "speaking": [ + { + "text": "It all started when we missed the last bus." + }, + { + "text": "We were walking along the beach when it started to rain.", + "tip": "were walking 连读,when 前稍停" + }, + { + "text": "At first, we didn't know what to do." + }, + { + "text": "I used to think camping was boring.", + "tip": "used to 读作 /ˈjuːstə/" + } + ], + "reading": { + "text": "My first trip alone\nIt all started when my friend got sick and couldn't come with me. At first, I was very nervous. I used to travel with my family, so I didn't know how to plan anything. I was waiting at the station when a woman asked me for help with her ticket. We started talking, and now we are good friends.", + "question": "作者一开始为什么很紧张?", + "options": [ + "以前总跟家人旅行,不会安排", + "朋友病得很重", + "车票丢了" + ] + }, + "writing": { + "prompt": "写两句话:说一切是从错过末班车开始的,一开始你们不知道怎么办。", + "example": "It all started when we missed the last bus. At first, we didn't know what to do.", + "itemIds": [ + "B1-U01-P01", + "B1-U01-P03" + ] + }, + "independent": { + "prompt": "用英语说你们沿着海滩走的时候下起了雨,再说你以前觉得露营很无聊。", + "itemIds": [ + "B1-U01-P02", + "B1-U01-P12" + ] + } + }, + { + "id": "B1-U01-S2", + "title": "经过与转折", + "minutes": 13, + "itemIds": [ + "B1-U01-P04", + "B1-U01-P05", + "B1-U01-P06", + "B1-U01-P07", + "B1-U01-W03" + ], + "listening": { + "text": "After a while, a car stopped next to us. What happened next? The driver took us to a small village. By the time we got there, the restaurant had closed. But it turned out that the driver owned the hotel, and he cooked dinner for us. It was so unexpected!", + "question": "司机原来是什么人?", + "options": [ + "酒店老板", + "餐厅厨师", + "公交车司机" + ] + }, + "speaking": [ + { + "text": "After a while, a car stopped next to us." + }, + { + "text": "By the time we got there, the restaurant had closed.", + "tip": "had closed 中 had 弱读" + }, + { + "text": "It turned out that he owned the hotel." + }, + { + "text": "What happened next?" + }, + { + "text": "It was so unexpected.", + "tip": "重音在 pec" + } + ], + "reading": { + "text": "Message from Lin\nGuess what happened yesterday! We went to see the old castle. By the time we got there, it had closed. We were so sad. After a while, a man came out. It turned out that he was a friend of our guide! He let us in for ten minutes. It was completely unexpected. What happened next? I'll tell you tomorrow!", + "question": "他们为什么最后能进城堡?", + "options": [ + "出来的人是导游的朋友", + "城堡还没关门", + "他们买到了票" + ] + }, + "writing": { + "prompt": "写两句话:说过了一会儿有辆车停下了,等你们到那儿时餐厅已经关门了。", + "example": "After a while, a car stopped next to us. By the time we got there, the restaurant had closed.", + "itemIds": [ + "B1-U01-P04", + "B1-U01-P05" + ] + }, + "independent": { + "prompt": "用英语说原来司机是酒店老板,这很出乎意料,然后问朋友接下来发生了什么。", + "itemIds": [ + "B1-U01-P06", + "B1-U01-W03", + "B1-U01-P07" + ] + } + }, + { + "id": "B1-U01-S3", + "title": "结局与感受", + "minutes": 13, + "itemIds": [ + "B1-U01-P08", + "B1-U01-P09", + "B1-U01-P10", + "B1-U01-P11", + "B1-U01-W01", + "B1-U01-W02" + ], + "listening": { + "text": "In the end, we had a great time. We were exhausted after the long day, but the best part was the sunrise the next morning. To be honest, it was the most memorable trip of my life. I'll never forget that night.", + "question": "说话人觉得最棒的是什么?", + "options": [ + "第二天早上的日出", + "司机做的晚饭", + "坐车的经历" + ] + }, + "speaking": [ + { + "text": "In the end, we had a great time." + }, + { + "text": "The best part was the sunrise." + }, + { + "text": "I'll never forget that night." + }, + { + "text": "To be honest, I was a bit scared." + }, + { + "text": "We were exhausted.", + "tip": "exhausted 中 h 不发音" + }, + { + "text": "It was a memorable trip." + } + ], + "reading": { + "text": "Our stay ★★★★★\nOur car broke down, and we were exhausted when we arrived. To be honest, we didn't expect much. But the owner made us feel at home. The best part was breakfast on the roof. In the end, we stayed three nights instead of one. A memorable place. We'll never forget it!", + "question": "他们最后住了几晚?", + "options": [ + "三晚", + "一晚", + "两晚" + ] + }, + "writing": { + "prompt": "写两句话:说最后你们玩得很开心,你永远不会忘记那个夜晚。", + "example": "In the end, we had a great time. I'll never forget that night.", + "itemIds": [ + "B1-U01-P08", + "B1-U01-P10" + ] + }, + "independent": { + "prompt": "用英语说你累坏了,但说实话,最棒的是日出,这是一次难忘的旅行。", + "itemIds": [ + "B1-U01-W01", + "B1-U01-P11", + "B1-U01-P09", + "B1-U01-W02" + ] + } + } + ], + "scenes": [ + { + "id": "B1-U01-C1", + "kind": "main", + "title": "给朋友讲一次旅行经历", + "learnerRole": "刚旅行回来的人", + "aiRole": "好奇的朋友", + "setting": "你刚从云南旅行回来,朋友问你旅途怎么样。", + "turns": [ + { + "ai": "Hey, you're back! How was your trip to Yunnan?", + "goal": "说很难忘,交代故事的开头", + "model": "It was memorable. It all started when we missed the last bus.", + "zh": "很难忘。一切都是从我们错过末班车开始的。", + "itemIds": [ + "B1-U01-W02", + "B1-U01-P01" + ] + }, + { + "ai": "Oh no! What did you do?", + "goal": "说一开始不知道怎么办,老实说有点怕", + "model": "At first, we didn't know what to do. To be honest, I was a bit scared.", + "zh": "一开始我们不知道怎么办。说实话,我有点怕。", + "itemIds": [ + "B1-U01-P03", + "B1-U01-P11" + ] + }, + { + "ai": "I can understand that. Where were you?", + "goal": "用过去进行时交代背景", + "model": "We were walking along a mountain road when it started to rain.", + "zh": "我们正沿着山路走,突然下起了雨。", + "itemIds": [ + "B1-U01-P02" + ] + }, + { + "ai": "That sounds terrible.", + "goal": "说过了一会儿有车停下", + "model": "After a while, a car stopped next to us, and the driver offered to help.", + "zh": "过了一会儿,一辆车停在我们旁边,司机说可以帮忙。", + "itemIds": [ + "B1-U01-P04" + ] + }, + { + "ai": "Lucky you! Did you find a place to stay?", + "goal": "说到的时候餐厅关了,但原来司机是酒店老板", + "model": "By the time we got to the village, the restaurant had closed. But it turned out that he owned the hotel!", + "zh": "等我们到村子时,餐厅已经关门了。但原来他就是酒店老板!", + "itemIds": [ + "B1-U01-P05", + "B1-U01-P06" + ] + }, + { + "ai": "No way! So how was the rest of the trip?", + "goal": "说结局,并说永远不会忘记那个晚上", + "model": "He cooked for us, and in the end, we had a great time. I'll never forget that night.", + "zh": "他给我们做了饭,最后我们玩得很开心。我永远不会忘记那个晚上。", + "itemIds": [ + "B1-U01-P08", + "B1-U01-P10" + ] + }, + { + "ai": "You must be tired now.", + "goal": "说累坏了,但最棒的是日出", + "model": "We were exhausted, but the best part was the sunrise the next morning.", + "zh": "我们累坏了,但最棒的是第二天早上的日出。", + "itemIds": [ + "B1-U01-W01", + "B1-U01-P09" + ] + } + ] + }, + { + "id": "B1-U01-C2", + "kind": "variant", + "title": "听同事讲周末经历", + "learnerRole": "听故事的同事", + "aiRole": "讲故事的同事", + "setting": "周一上班,同事说周末去山里出了点状况。", + "turns": [ + { + "ai": "I had a crazy weekend in the mountains.", + "goal": "表示好奇,问发生了什么", + "model": "Really? What happened?", + "zh": "真的吗?发生什么了?", + "itemIds": [] + }, + { + "ai": "Our car stopped working in the middle of nowhere.", + "goal": "追问接下来发生了什么", + "model": "Oh no. What happened next?", + "zh": "哎呀。接下来怎样了?", + "itemIds": [ + "B1-U01-P07" + ] + }, + { + "ai": "A man from a farm took us to his house, and we stayed there for two days!", + "goal": "说真是出乎意料", + "model": "That's so unexpected!", + "zh": "真是太出乎意料了!", + "itemIds": [ + "B1-U01-W03" + ] + }, + { + "ai": "It was great. He showed us how to make cheese.", + "goal": "说听起来是一次难忘的旅行,并说你以前觉得山里没意思", + "model": "It sounds like a memorable trip. I used to think the mountains were boring.", + "zh": "听起来是一次难忘的旅行。我以前觉得山里很无聊。", + "itemIds": [ + "B1-U01-W02", + "B1-U01-P12" + ] + }, + { + "ai": "Not at all! You should go.", + "goal": "同意并结束", + "model": "Maybe I will. Thanks for telling me.", + "zh": "也许我会去的。谢谢你讲给我听。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U01-C3", + "kind": "variant", + "title": "在青旅和背包客聊天", + "learnerRole": "背包客", + "aiRole": "另一个背包客", + "setting": "晚上在青年旅舍的公共区,一个外国背包客跟你聊起旅行故事。", + "turns": [ + { + "ai": "So, how long have you been traveling?", + "goal": "说你以前跟团,这次一个人背包旅行", + "model": "Two weeks. I used to travel with tour groups, but this time I'm alone.", + "zh": "两周了。我以前都跟旅行团,这次是一个人。", + "itemIds": [ + "B1-U01-P12" + ] + }, + { + "ai": "Cool. Any good stories?", + "goal": "讲故事的开头", + "model": "Yes! It all started when I lost my map on a mountain.", + "zh": "有!一切是从我在山上丢了地图开始的。", + "itemIds": [ + "B1-U01-P01" + ] + }, + { + "ai": "Oh no. Were you scared?", + "goal": "说一开始怕,过了一会儿找到了小路", + "model": "At first, yes. But after a while, I found a small path.", + "zh": "一开始是怕的。但过了一会儿,我找到了一条小路。", + "itemIds": [ + "B1-U01-P03", + "B1-U01-P04" + ] + }, + { + "ai": "And where did it go?", + "goal": "说原来小路通向一个美丽的湖,很意外", + "model": "It turned out that it went down to a beautiful lake. It was so unexpected.", + "zh": "原来小路通到一个美丽的湖边。太意外了。", + "itemIds": [ + "B1-U01-P06", + "B1-U01-W03" + ] + }, + { + "ai": "Wow, lucky!", + "goal": "说最棒的是游泳,最后那是最好的一天", + "model": "The best part was the swim. In the end, it was the best day of the trip.", + "zh": "最棒的是在湖里游泳。最后,那成了整个旅行中最好的一天。", + "itemIds": [ + "B1-U01-P09", + "B1-U01-P08" + ] + } + ] + } + ], + "tasks": [ + { + "id": "B1-U01-T1", + "sceneId": "B1-U01-C1", + "goal": "给朋友完整地讲一次旅行经历", + "itemIds": [ + "B1-U01-W02", + "B1-U01-P01", + "B1-U01-P03", + "B1-U01-P11", + "B1-U01-P02", + "B1-U01-P04", + "B1-U01-P05", + "B1-U01-P06", + "B1-U01-P08", + "B1-U01-P10", + "B1-U01-W01", + "B1-U01-P09" + ], + "slots": [ + "开头", + "背景", + "转折", + "结局", + "感受" + ] + }, + { + "id": "B1-U01-T2", + "sceneId": "B1-U01-C2", + "goal": "听同事讲经历并追问、回应", + "itemIds": [ + "B1-U01-P07", + "B1-U01-W03", + "B1-U01-W02", + "B1-U01-P12" + ], + "slots": [ + "追问", + "回应感受" + ] + }, + { + "id": "B1-U01-T3", + "sceneId": "B1-U01-C3", + "goal": "和背包客交换旅行故事", + "itemIds": [ + "B1-U01-P12", + "B1-U01-P01", + "B1-U01-P03", + "B1-U01-P04", + "B1-U01-P06", + "B1-U01-W03", + "B1-U01-P09", + "B1-U01-P08" + ], + "slots": [ + "开头", + "经过", + "结局" + ] + } + ], + "materials": [ + { + "id": "B1-U01-M1", + "mode": "listening", + "title": "播客:错过渡轮之后", + "text": "Welcome back to Travel Tales, the show where listeners retell their most memorable journeys. Today's story comes from Emma, who went backpacking in Central America last year. Emma, over to you.\nThanks. So, it all started when I missed my ferry. I had planned a short voyage along the coast to a small island. But by the time I got to the port, the boat had left. At first, I was really upset. Meanwhile, the weather was getting worse. It was humid, and the sky was dark. Then a local fisherman offered to take me in his tiny boat. To be honest, I wasn't sure. But he seemed kind, so I went aboard.\nAfter a while, the sea became calm, and the rain stopped. We were moving slowly past cliffs and caves when suddenly he pointed at the water. A whale! Then two dolphins came up next to the boat. I was amazed. I just stared at them. I had seen whales on TV, but this was incredible.\nBy the time we reached the island, it was dark. It turned out that there was no hostel there at all. The website was out-of-date. So the fisherman's family let me sleep in a small hut near the beach. I was exhausted, but I couldn't sleep. The waves were so loud, and the stars were so bright.\nThe next morning, I watched the sunrise from the top of a steep hill. The view was spectacular: the endless ocean, white sand, and a faraway volcano on the horizon. I stayed for five days instead of one. I went diving in shallow water and saw turtles. I even tried windsurfing, which was a disaster, but fun.\nIn the end, missing that ferry was the best thing that happened on the whole trip. I used to plan every day of my travels. Now I leave some space for the unexpected. And I'll never forget that family. We still send each other messages.\nThank you, Emma. What a story!", + "glosses": { + "listeners": "听众", + "became": "变得", + "pointed": "指" + }, + "questions": [ + { + "type": "gist", + "question": "艾玛讲的主要是什么?", + "options": [ + "错过渡轮反而带来了一段难忘的经历", + "怎样在中美洲订渡轮", + "渔民一家的生活" + ] + }, + { + "type": "detail", + "question": "艾玛到了岛上发现了什么问题?", + "options": [ + "岛上根本没有青年旅舍", + "渡轮取消了", + "渔民不肯收钱" + ] + }, + { + "type": "inference", + "question": "艾玛现在旅行时和以前有什么不同?", + "options": [ + "不再把每天都安排满", + "只坐渡轮", + "总是一个人住小屋" + ] + } + ] + }, + { + "id": "B1-U01-M2", + "mode": "reading", + "title": "博客:雨林三日", + "text": "Three days in the jungle\nI've been on many trips, but my three days in the Borneo rainforest were the most dramatic. Even now, I can recall every detail. It's a vivid, lasting memory.\nOur group of six met our guide, Adi, at a small campsite by the river. It was hot and humid, and the rainfall there is among the highest in the world. Surprisingly, I didn't mind the heat. I was too excited.\nOn the first morning, we followed a narrow trail into the forest. The air was misty, and it was strangely silent, apart from the birds. Adi could whistle like them, and sometimes they answered! After a while, he stopped and pointed up. We caught a glimpse of an orangutan high in the trees. It gave us a quick glance and then disappeared. We were fortunate. Adi said many visitors are unlucky and never see one.\nThe second day was harder. It rained all night, and the trail turned into deep mud. I kept slipping and stumbling. By lunchtime, my boots were full of water, and I was shivering even in that tropical weather. Then we ran out of drinking water, and thirst became a real problem. To be honest, I started to feel scared.\nLuckily, Adi knew the forest like his own home. He found a small waterfall with clean water. We sat at the edge of the pool and watched shiny blue butterflies with huge wings. It was like paradise. All my worries faded away.\nThat night, in the darkness, the forest was full of sounds. I lay awake for hours, just listening.\nOn the last day, we reached the top of a hill and saw the rainforest below us, green and gorgeous, all the way to the horizon.\nI used to think adventure meant danger. Now I think it means being open to whatever happens. This trip gave me a lifelong love of wild places. I'll never forget it.", + "glosses": { + "pointed": "指", + "orangutan": "红毛猩猩", + "became": "变成", + "butterflies": "蝴蝶" + }, + "questions": [ + { + "type": "gist", + "question": "这篇博客主要讲什么?", + "options": [ + "作者在雨林里三天的经历和感受", + "怎样在雨林里找到干净的水", + "雨林里有哪些动物" + ] + }, + { + "type": "detail", + "question": "第二天遇到的最大问题是什么?", + "options": [ + "喝的水用完了", + "向导迷路了", + "看不到猩猩" + ] + }, + { + "type": "inference", + "question": "为什么说他们看到猩猩很幸运?", + "options": [ + "很多游客根本看不到", + "猩猩很危险", + "向导也是第一次看到" + ] + } + ] + }, + { + "id": "B1-U01-M3", + "mode": "reading", + "title": "读者来信:最难忘的旅程", + "text": "Your most memorable journeys\nLast month, we asked readers to tell us about a journey they will never forget. We received hundreds of letters. Here are three of our favourites.\nTom, 64: Sailing north\nLast spring, I joined a two-week voyage along the northern coast of Norway. I used to hate the cold, but this trip changed my mind. The climate there is extreme, and some nights were freezing. In the mornings, there was frost on the boat. But the warmth of the people aboard was wonderful, and every evening we sat together and told stories. One night, the sky suddenly turned green: the northern lights! Everyone ran outside in their pyjamas. It was a magnificent sight, and I'll never forget the delight on everyone's faces.\nAisha, 29: Across the desert\nMy sister and I went on a camel trip in Morocco. At first, it was fun, but the camels moved at a very slow pace, and after a few hours, I was exhausted. It was dusty and hot, and the sand got everywhere. By the time we reached our camp, I just wanted to sleep. But then I looked up. The desert is vast and silent, and in the total darkness, the stars were extraordinary. My sister and I lay on the sand for hours, overjoyed, like two children.\nKenji, 41: To the top\nMount Kinabalu was my first real mountain. I'm not a natural climber, and the last part of the path to the summit is very steep. We started at 2 a.m. to see the sunrise from the mountaintop. I was breathless, and my legs hurt terribly. To be honest, I almost gave up twice. But I kept going at my own pace. When I finally reached the top, the sun came up over the clouds. It was a tremendous feeling. It turned out that the hardest part of the trip was also the best part.\nDo you have a memorable journey to share? Write to us!", + "glosses": { + "readers": "读者", + "favourites": "最喜欢的", + "pyjamas": "睡衣", + "sight": "景象", + "mount": "山" + }, + "questions": [ + { + "type": "gist", + "question": "这篇文章主要是什么?", + "options": [ + "三位读者讲自己最难忘的旅程", + "三条旅行路线的介绍", + "怎样给杂志写信" + ] + }, + { + "type": "detail", + "question": "爱莎为什么一到营地就想睡觉?", + "options": [ + "骑骆驼太久,累坏了", + "沙漠里太冷", + "星星太亮" + ] + }, + { + "type": "inference", + "question": "健二说“最难的部分也是最棒的部分”,指的是什么?", + "options": [ + "艰难爬上山顶后看到日出", + "半夜两点起床", + "腿很疼" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "叙述顺序", + "bands": [ + "只有零散句子", + "有开头和结尾,但经过不清楚", + "开头、背景、经过、转折、结局清楚连贯" + ], + "pass": 2 + }, + { + "name": "细节与感受", + "bands": [ + "没有细节或感受", + "有一些细节或感受", + "细节具体,感受真实,能引起听者兴趣" + ], + "pass": 1 + }, + { + "name": "时态使用", + "bands": [ + "时态混乱,影响理解", + "过去时基本正确,偶有错误", + "能正确使用过去时、过去进行时和过去完成时" + ], + "pass": 1 + } + ] + }, + "excluded": [] +} diff --git a/kouyu_english/assets/courses/B1/B1-U02.json b/kouyu_english/assets/courses/B1/B1-U02.json new file mode 100644 index 0000000..18e11a7 --- /dev/null +++ b/kouyu_english/assets/courses/B1/B1-U02.json @@ -0,0 +1,1383 @@ +{ + "schemaVersion": 1, + "id": "B1-U02", + "revision": 1, + "level": "B1", + "title": "规划行程", + "categories": [ + "旅行" + ], + "canDo": "比较交通和住宿方案,说明理由和预算", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "edinburgh", + "london", + "glasgow", + "ben", + "chloe", + "inverness", + "scotland", + "highlands", + "england", + "lakeside" + ], + "grammar": [ + { + "id": "156", + "use": "active" + }, + { + "id": "39", + "use": "active" + }, + { + "id": "40", + "use": "active" + }, + { + "id": "139", + "use": "active" + }, + { + "id": "142", + "use": "active" + }, + { + "id": "69", + "use": "active" + } + ], + "coreItems": [ + { + "id": "B1-U02-P01", + "type": "phrase", + "en": "What's the cheapest way to get there?", + "zh": "去那里最便宜的方式是什么?", + "sceneWord": false, + "match": [ + [ + "cheapest way" + ] + ], + "example": { + "en": "What's the cheapest way to get to the airport?", + "zh": "去机场最便宜的方式是什么?" + }, + "review": { + "prompt": "问去海边最便宜的方式。" + } + }, + { + "id": "B1-U02-P02", + "type": "phrase", + "en": "The train is faster, but the bus is much cheaper.", + "zh": "火车更快,但大巴便宜得多。", + "sceneWord": false, + "match": [ + [ + "much cheaper", + "much faster" + ] + ], + "example": { + "en": "The plane is much faster, but it's expensive.", + "zh": "飞机快得多,但是贵。" + }, + "review": { + "prompt": "比较一下:坐飞机快得多,但坐火车便宜。" + } + }, + { + "id": "B1-U02-P03", + "type": "phrase", + "en": "There's a direct train, so we don't need to change.", + "zh": "有直达火车,我们不用换乘。", + "sceneWord": false, + "match": [ + [ + "direct train", + "direct flight", + "direct bus" + ] + ], + "example": { + "en": "Is there a direct flight to Rome?", + "zh": "有去罗马的直飞航班吗?" + }, + "review": { + "prompt": "问有没有直达的大巴。" + } + }, + { + "id": "B1-U02-P04", + "type": "phrase", + "en": "It's not worth the extra money.", + "zh": "不值得多花这笔钱。", + "sceneWord": false, + "match": [ + [ + "worth the extra", + "worth the money" + ] + ], + "example": { + "en": "The fast train is nice, but it's not worth the extra money.", + "zh": "快车不错,但不值得多花钱。" + }, + "review": { + "prompt": "说贵的酒店不值得多花钱。" + } + }, + { + "id": "B1-U02-P05", + "type": "phrase", + "en": "We have a budget of about 500 dollars each.", + "zh": "我们每人预算大约 500 美元。", + "sceneWord": false, + "match": [ + [ + "budget of" + ] + ], + "example": { + "en": "I have a budget of 300 euros for the hotel.", + "zh": "我住酒店的预算是 300 欧元。" + }, + "review": { + "prompt": "说你们这次旅行每人预算大约两千元。" + } + }, + { + "id": "B1-U02-P06", + "type": "phrase", + "en": "Does that include accommodation?", + "zh": "这个包括住宿吗?", + "sceneWord": true, + "sceneReason": "accommodation 为 B2,但订行程时几乎每份价格说明都会出现", + "match": [ + [ + "include accommodation", + "includes accommodation" + ] + ], + "example": { + "en": "The price includes accommodation and breakfast.", + "zh": "价格包括住宿和早餐。" + }, + "review": { + "prompt": "问旅行团的价格包不包括住宿。" + } + }, + { + "id": "B1-U02-P07", + "type": "phrase", + "en": "It makes more sense to stay near the station.", + "zh": "住在车站附近更合理。", + "sceneWord": false, + "match": [ + [ + "makes more sense", + "makes sense" + ] + ], + "example": { + "en": "It makes sense to buy a travel card.", + "zh": "买一张交通卡比较合理。" + }, + "review": { + "prompt": "说租车更合理。" + } + }, + { + "id": "B1-U02-P08", + "type": "phrase", + "en": "If we leave early, we'll avoid the traffic.", + "zh": "如果我们早点走,就能避开堵车。", + "sceneWord": false, + "match": [ + [ + "we'll avoid", + "will avoid" + ] + ], + "example": { + "en": "If we go on a weekday, we'll avoid the crowds.", + "zh": "如果工作日去,就能避开人群。" + }, + "review": { + "prompt": "说如果坐早班车,就能避开高峰。" + } + }, + { + "id": "B1-U02-P09", + "type": "phrase", + "en": "I'd rather take the night train.", + "zh": "我宁愿坐夜车。", + "sceneWord": false, + "match": [ + [ + "I'd rather", + "would rather" + ] + ], + "example": { + "en": "I'd rather stay in the city center.", + "zh": "我宁愿住在市中心。" + }, + "review": { + "prompt": "说你宁愿坐大巴。" + } + }, + { + "id": "B1-U02-P10", + "type": "phrase", + "en": "We should book it in advance.", + "zh": "我们应该提前预订。", + "sceneWord": true, + "sceneReason": "advance 作名词为 B2,但 in advance 是订票订房时的固定说法", + "match": [ + [ + "in advance" + ] + ], + "example": { + "en": "Tickets are cheaper if you buy them in advance.", + "zh": "提前买票更便宜。" + }, + "review": { + "prompt": "建议朋友提前订酒店。" + } + }, + { + "id": "B1-U02-P11", + "type": "phrase", + "en": "How about splitting the cost?", + "zh": "我们平摊费用怎么样?", + "sceneWord": false, + "match": [ + [ + "split the cost", + "splitting the cost" + ] + ], + "example": { + "en": "Let's split the cost of the car.", + "zh": "我们平摊租车的费用吧。" + }, + "review": { + "prompt": "提议和朋友平摊房费。" + } + }, + { + "id": "B1-U02-P12", + "type": "phrase", + "en": "The main reason is the location.", + "zh": "主要原因是位置。", + "sceneWord": false, + "match": [ + [ + "main reason" + ] + ], + "example": { + "en": "The main reason is the price.", + "zh": "主要原因是价格。" + }, + "review": { + "prompt": "说你选这家酒店主要是因为早餐。" + } + }, + { + "id": "B1-U02-W01", + "type": "word", + "en": "option", + "zh": "选择", + "sceneWord": false, + "match": [ + [ + "option", + "options" + ] + ], + "example": { + "en": "We have three options.", + "zh": "我们有三个选择。" + }, + "review": { + "prompt": "说还有另一个选择。" + } + }, + { + "id": "B1-U02-W02", + "type": "word", + "en": "alternative", + "zh": "替代方案", + "sceneWord": false, + "match": [ + [ + "alternative", + "alternatives" + ] + ], + "example": { + "en": "If the train is full, the bus is a good alternative.", + "zh": "如果火车满了,大巴是个不错的替代方案。" + }, + "review": { + "prompt": "说坐渡轮是个替代方案。" + } + }, + { + "id": "B1-U02-W03", + "type": "word", + "en": "distance", + "zh": "距离", + "sceneWord": false, + "match": [ + [ + "distance" + ] + ], + "example": { + "en": "What's the distance from the airport to the hotel?", + "zh": "从机场到酒店有多远?" + }, + "review": { + "prompt": "问两个城市之间的距离。" + } + } + ], + "receptiveWords": [ + { + "id": "B1-U02-R01", + "en": "access", + "zh": "进入;使用权" + }, + { + "id": "B1-U02-R02", + "en": "pound", + "zh": "英镑" + }, + { + "id": "B1-U02-R03", + "en": "accessible", + "zh": "可到达的" + }, + { + "id": "B1-U02-R04", + "en": "afford", + "zh": "负担得起" + }, + { + "id": "B1-U02-R05", + "en": "approximately", + "zh": "大约" + }, + { + "id": "B1-U02-R06", + "en": "arrangement", + "zh": "安排" + }, + { + "id": "B1-U02-R07", + "en": "arrival", + "zh": "到达" + }, + { + "id": "B1-U02-R08", + "en": "backpacker", + "zh": "背包客" + }, + { + "id": "B1-U02-R09", + "en": "cabin", + "zh": "小隔间;小木屋" + }, + { + "id": "B1-U02-R10", + "en": "calculate", + "zh": "计算" + }, + { + "id": "B1-U02-R11", + "en": "canal", + "zh": "运河" + }, + { + "id": "B1-U02-R12", + "en": "carriage", + "zh": "车厢" + }, + { + "id": "B1-U02-R13", + "en": "cashpoint", + "zh": "自动取款机" + }, + { + "id": "B1-U02-R14", + "en": "coastal", + "zh": "沿海的" + }, + { + "id": "B1-U02-R15", + "en": "combination", + "zh": "组合" + }, + { + "id": "B1-U02-R16", + "en": "comparison", + "zh": "比较" + }, + { + "id": "B1-U02-R17", + "en": "connect", + "zh": "连接" + }, + { + "id": "B1-U02-R18", + "en": "crossroads", + "zh": "十字路口" + }, + { + "id": "B1-U02-R19", + "en": "currency", + "zh": "货币" + }, + { + "id": "B1-U02-R20", + "en": "decision", + "zh": "决定" + }, + { + "id": "B1-U02-R21", + "en": "definitely", + "zh": "肯定" + }, + { + "id": "B1-U02-R22", + "en": "depart", + "zh": "出发" + }, + { + "id": "B1-U02-R23", + "en": "departure", + "zh": "出发" + }, + { + "id": "B1-U02-R24", + "en": "destination", + "zh": "目的地" + }, + { + "id": "B1-U02-R25", + "en": "district", + "zh": "地区;街区" + }, + { + "id": "B1-U02-R26", + "en": "eastern", + "zh": "东部的" + }, + { + "id": "B1-U02-R27", + "en": "efficient", + "zh": "高效的" + }, + { + "id": "B1-U02-R28", + "en": "estimate", + "zh": "估计" + }, + { + "id": "B1-U02-R29", + "en": "exact", + "zh": "准确的" + }, + { + "id": "B1-U02-R30", + "en": "expense", + "zh": "花费" + }, + { + "id": "B1-U02-R31", + "en": "extend", + "zh": "延长" + }, + { + "id": "B1-U02-R32", + "en": "forecast", + "zh": "预报" + }, + { + "id": "B1-U02-R33", + "en": "fortnight", + "zh": "两周" + }, + { + "id": "B1-U02-R34", + "en": "freely", + "zh": "自由地" + }, + { + "id": "B1-U02-R35", + "en": "frequent", + "zh": "频繁的" + }, + { + "id": "B1-U02-R36", + "en": "frequently", + "zh": "经常" + }, + { + "id": "B1-U02-R37", + "en": "fuel", + "zh": "燃料;油费" + }, + { + "id": "B1-U02-R38", + "en": "generally", + "zh": "通常" + }, + { + "id": "B1-U02-R39", + "en": "hire", + "zh": "租用" + }, + { + "id": "B1-U02-R40", + "en": "hopefully", + "zh": "但愿" + }, + { + "id": "B1-U02-R41", + "en": "inconvenient", + "zh": "不方便的" + }, + { + "id": "B1-U02-R42", + "en": "intend", + "zh": "打算" + }, + { + "id": "B1-U02-R43", + "en": "limit", + "zh": "限制" + }, + { + "id": "B1-U02-R44", + "en": "limited", + "zh": "有限的" + }, + { + "id": "B1-U02-R45", + "en": "location", + "zh": "位置" + }, + { + "id": "B1-U02-R46", + "en": "luggage", + "zh": "行李" + }, + { + "id": "B1-U02-R47", + "en": "luxury", + "zh": "奢华" + }, + { + "id": "B1-U02-R48", + "en": "maximum", + "zh": "最多;最大值" + }, + { + "id": "B1-U02-R49", + "en": "mile", + "zh": "英里" + }, + { + "id": "B1-U02-R50", + "en": "minimum", + "zh": "最少;最小值" + }, + { + "id": "B1-U02-R51", + "en": "nearby", + "zh": "附近" + }, + { + "id": "B1-U02-R52", + "en": "otherwise", + "zh": "否则" + }, + { + "id": "B1-U02-R53", + "en": "overnight", + "zh": "过夜的" + }, + { + "id": "B1-U02-R54", + "en": "percent", + "zh": "百分之……" + }, + { + "id": "B1-U02-R55", + "en": "practical", + "zh": "实用的" + }, + { + "id": "B1-U02-R56", + "en": "preference", + "zh": "偏好" + }, + { + "id": "B1-U02-R57", + "en": "public transport", + "zh": "公共交通" + }, + { + "id": "B1-U02-R58", + "en": "rail", + "zh": "铁路" + }, + { + "id": "B1-U02-R59", + "en": "railway", + "zh": "铁路" + }, + { + "id": "B1-U02-R60", + "en": "realistic", + "zh": "现实的" + }, + { + "id": "B1-U02-R61", + "en": "reasonable", + "zh": "合理的" + }, + { + "id": "B1-U02-R62", + "en": "region", + "zh": "地区" + }, + { + "id": "B1-U02-R63", + "en": "regional", + "zh": "地区的" + }, + { + "id": "B1-U02-R64", + "en": "relatively", + "zh": "相对地" + }, + { + "id": "B1-U02-R65", + "en": "reserve", + "zh": "预订" + }, + { + "id": "B1-U02-R66", + "en": "resort", + "zh": "度假地" + }, + { + "id": "B1-U02-R67", + "en": "rough", + "zh": "粗略的" + }, + { + "id": "B1-U02-R68", + "en": "security", + "zh": "安检" + }, + { + "id": "B1-U02-R69", + "en": "select", + "zh": "挑选" + }, + { + "id": "B1-U02-R70", + "en": "selection", + "zh": "可选的种类" + }, + { + "id": "B1-U02-R71", + "en": "self-service", + "zh": "自助的" + }, + { + "id": "B1-U02-R72", + "en": "signpost", + "zh": "路标" + }, + { + "id": "B1-U02-R73", + "en": "suppose", + "zh": "假设" + }, + { + "id": "B1-U02-R74", + "en": "tend", + "zh": "往往" + }, + { + "id": "B1-U02-R75", + "en": "totally", + "zh": "完全" + }, + { + "id": "B1-U02-R76", + "en": "tourism", + "zh": "旅游业" + }, + { + "id": "B1-U02-R77", + "en": "transfer", + "zh": "接驳;换乘" + }, + { + "id": "B1-U02-R78", + "en": "transport", + "zh": "交通" + }, + { + "id": "B1-U02-R79", + "en": "typically", + "zh": "通常" + }, + { + "id": "B1-U02-R80", + "en": "unlikely", + "zh": "不太可能的" + }, + { + "id": "B1-U02-R81", + "en": "unpredictable", + "zh": "难以预测的" + }, + { + "id": "B1-U02-R82", + "en": "van", + "zh": "面包车" + }, + { + "id": "B1-U02-R83", + "en": "variety", + "zh": "多种多样" + }, + { + "id": "B1-U02-R84", + "en": "vary", + "zh": "变化;不同" + }, + { + "id": "B1-U02-R85", + "en": "vehicle", + "zh": "车辆" + }, + { + "id": "B1-U02-R86", + "en": "worthwhile", + "zh": "值得的" + } + ], + "segments": [ + { + "id": "B1-U02-S1", + "title": "比较交通方式", + "minutes": 13, + "itemIds": [ + "B1-U02-P01", + "B1-U02-P02", + "B1-U02-P03", + "B1-U02-P08", + "B1-U02-P09", + "B1-U02-W03" + ], + "listening": { + "text": "What's the cheapest way to get to Edinburgh? The distance from London is about 650 kilometers. The train is faster, but the bus is much cheaper. There's a direct train, so we don't need to change. If we leave early, we'll avoid the traffic. But to be honest, I'd rather take the night train. We can sleep on the way.", + "question": "说话人最想怎么去?", + "options": [ + "坐夜车", + "坐大巴", + "自己开车" + ] + }, + "speaking": [ + { + "text": "What's the cheapest way to get there?" + }, + { + "text": "The train is faster, but the bus is much cheaper.", + "tip": "but 前稍停" + }, + { + "text": "There's a direct train, so we don't need to change." + }, + { + "text": "If we leave early, we'll avoid the traffic." + }, + { + "text": "I'd rather take the night train.", + "tip": "I'd rather 连读" + }, + { + "text": "What's the distance from the airport?", + "tip": "distance 重音在 dis" + } + ], + "reading": { + "text": "Getting from the airport to the city\nThe distance is about 40 kilometers.\n· Taxi: 45 minutes. The fastest way, but it's the most expensive.\n· Airport bus: 60 minutes. Much cheaper, and it's a direct bus to the main station.\n· Train: 35 minutes, but you need to change once.\nTip: If you leave before 7 a.m., you'll avoid the traffic.", + "question": "哪种方式最快?", + "options": [ + "出租车", + "机场大巴", + "火车" + ] + }, + "writing": { + "prompt": "写两句话:说火车更快但大巴便宜得多,你宁愿坐夜车。", + "example": "The train is faster, but the bus is much cheaper. I'd rather take the night train.", + "itemIds": [ + "B1-U02-P02", + "B1-U02-P09" + ] + }, + "independent": { + "prompt": "用英语问去那里最便宜的方式和两地之间的距离,说有直达车,并说早点走能避开堵车。", + "itemIds": [ + "B1-U02-P01", + "B1-U02-W03", + "B1-U02-P03", + "B1-U02-P08" + ] + } + }, + { + "id": "B1-U02-S2", + "title": "住宿与预算", + "minutes": 13, + "itemIds": [ + "B1-U02-P05", + "B1-U02-P06", + "B1-U02-P07", + "B1-U02-P12", + "B1-U02-W01" + ], + "listening": { + "text": "OK, we have a budget of about 500 dollars each. We have three options. The hotel in the center costs 150 dollars a night. Does that include accommodation and breakfast? Yes. The apartment is cheaper, but it's far from the station. I think it makes more sense to stay near the station. The main reason is the location. We'll take the train every day.", + "question": "说话人为什么想住车站附近?", + "options": [ + "每天都要坐火车", + "那里最便宜", + "那里有早餐" + ] + }, + "speaking": [ + { + "text": "We have a budget of about 500 dollars each." + }, + { + "text": "Does that include accommodation?", + "tip": "accommodation 重音在 da" + }, + { + "text": "It makes more sense to stay near the station." + }, + { + "text": "The main reason is the location." + }, + { + "text": "We have three options." + } + ], + "reading": { + "text": "Message from Chloe\nI've found three options for our weekend. Our budget is about 200 dollars each. The hotel near the beach is lovely, but it's 180 dollars a night. The small hotel in the old town is 90 dollars, and that includes breakfast. The apartment is the cheapest, but it's an hour from the town. I think the small hotel makes more sense. The main reason is the location: it's five minutes from everything.", + "question": "克洛伊选择老城小酒店的主要原因是什么?", + "options": [ + "位置好", + "包早餐", + "最便宜" + ] + }, + "writing": { + "prompt": "写两句话:说你们每人预算大约 500 美元,并问价格包不包括住宿。", + "example": "We have a budget of about 500 dollars each. Does that include accommodation?", + "itemIds": [ + "B1-U02-P05", + "B1-U02-P06" + ] + }, + "independent": { + "prompt": "用英语说你们有两个选择,住车站附近更合理,主要原因是位置。", + "itemIds": [ + "B1-U02-W01", + "B1-U02-P07", + "B1-U02-P12" + ] + } + }, + { + "id": "B1-U02-S3", + "title": "做出决定", + "minutes": 12, + "itemIds": [ + "B1-U02-P04", + "B1-U02-P10", + "B1-U02-P11", + "B1-U02-W02" + ], + "listening": { + "text": "The first-class ticket is 90 dollars more. It's not worth the extra money. If the night train is full, the bus is a good alternative. Let's decide today. We should book it in advance, because prices go up. And how about splitting the cost of the car at the other end?", + "question": "说话人为什么想今天就决定?", + "options": [ + "票价会涨", + "夜车快满了", + "车要还了" + ] + }, + "speaking": [ + { + "text": "It's not worth the extra money." + }, + { + "text": "We should book it in advance.", + "tip": "in advance 连读" + }, + { + "text": "How about splitting the cost?" + }, + { + "text": "The bus is a good alternative.", + "tip": "alternative 重音在 ter" + } + ], + "reading": { + "text": "Trip plan: final decisions\n1. Train: normal seats. First class is not worth the extra money.\n2. If the train is full, the bus is a good alternative.\n3. Book everything in advance. Prices go up in July.\n4. Car for two days: we'll split the cost.\n5. Total: about 460 dollars each.", + "question": "如果火车票卖完了怎么办?", + "options": [ + "坐大巴", + "坐头等舱", + "租车" + ] + }, + "writing": { + "prompt": "写两句话:说头等舱不值得多花钱,你们应该提前预订。", + "example": "It's not worth the extra money. We should book it in advance.", + "itemIds": [ + "B1-U02-P04", + "B1-U02-P10" + ] + }, + "independent": { + "prompt": "用英语提议平摊费用,并说如果飞机太贵,火车是个不错的替代方案。", + "itemIds": [ + "B1-U02-P11", + "B1-U02-W02" + ] + } + } + ], + "scenes": [ + { + "id": "B1-U02-C1", + "kind": "main", + "title": "和朋友商量旅行方案", + "learnerRole": "旅伴", + "aiRole": "一起旅行的朋友", + "setting": "你和朋友下个月要从伦敦去爱丁堡玩四天,一起商量交通和住宿。", + "turns": [ + { + "ai": "So, how should we get to Edinburgh?", + "goal": "问最便宜的方式,并比较火车和大巴", + "model": "What's the cheapest way to get there? The train is faster, but the bus is much cheaper.", + "zh": "去那里最便宜的是哪种?火车更快,但大巴便宜得多。", + "itemIds": [ + "B1-U02-P01", + "B1-U02-P02" + ] + }, + { + "ai": "The bus takes nine hours!", + "goal": "说你宁愿坐夜车,而且有直达车", + "model": "I'd rather take the night train. There's a direct train, so we don't need to change.", + "zh": "我宁愿坐夜车。有直达的,我们不用换乘。", + "itemIds": [ + "B1-U02-P09", + "B1-U02-P03" + ] + }, + { + "ai": "OK. What about the hotel?", + "goal": "说预算,并问价格是否包括住宿", + "model": "We have a budget of about 500 pounds each. Does that price include accommodation?", + "zh": "我们每人预算大约 500 英镑。那个价格包括住宿吗?", + "itemIds": [ + "B1-U02-P05", + "B1-U02-P06" + ] + }, + { + "ai": "No, it's only the train. I found an apartment outside the city. It's cheap.", + "goal": "说住车站附近更合理,主要原因是位置", + "model": "It makes more sense to stay near the station. The main reason is the location.", + "zh": "住在车站附近更合理。主要原因是位置。", + "itemIds": [ + "B1-U02-P07", + "B1-U02-P12" + ] + }, + { + "ai": "But hotels there are expensive.", + "goal": "提出平摊费用,并建议提前订", + "model": "How about splitting the cost of a room? And we should book it in advance.", + "zh": "我们平摊一间房的费用怎么样?而且应该提前订。", + "itemIds": [ + "B1-U02-P11", + "B1-U02-P10" + ] + }, + { + "ai": "Good idea. Should we get the first-class tickets?", + "goal": "说不值得多花钱", + "model": "No, it's not worth the extra money.", + "zh": "不用,不值得多花这笔钱。", + "itemIds": [ + "B1-U02-P04" + ] + } + ] + }, + { + "id": "B1-U02-C2", + "kind": "variant", + "title": "在旅行社比较方案", + "learnerRole": "顾客", + "aiRole": "旅行社工作人员", + "setting": "你想去苏格兰高地玩三天,在旅行社咨询。", + "turns": [ + { + "ai": "Good morning. We have two options for the Highlands.", + "goal": "问两个选择的区别和距离", + "model": "What's the difference between the two options? And what's the distance from Glasgow?", + "zh": "这两个选择有什么区别?离格拉斯哥有多远?", + "itemIds": [ + "B1-U02-W01", + "B1-U02-W03" + ] + }, + { + "ai": "About 250 kilometers. The tour bus leaves at 9, or you can hire a car.", + "goal": "说早点出发能避开堵车", + "model": "If we leave early, we'll avoid the traffic.", + "zh": "如果我们早点出发,就能避开堵车。", + "itemIds": [ + "B1-U02-P08" + ] + }, + { + "ai": "True. The car is 60 pounds a day.", + "goal": "问有没有替代方案", + "model": "Is there a cheaper alternative?", + "zh": "有更便宜的替代方案吗?", + "itemIds": [ + "B1-U02-W02" + ] + }, + { + "ai": "There's a train, but it's slow.", + "goal": "说宁愿坐火车,因为便宜", + "model": "I'd rather take the train. It's much cheaper.", + "zh": "我宁愿坐火车。便宜得多。", + "itemIds": [ + "B1-U02-P09", + "B1-U02-P02" + ] + }, + { + "ai": "No problem. I can book it for you.", + "goal": "道谢", + "model": "Great, thank you.", + "zh": "太好了,谢谢。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U02-C3", + "kind": "variant", + "title": "帮朋友做决定", + "learnerRole": "有经验的朋友", + "aiRole": "拿不定主意的朋友", + "setting": "朋友要去海边度假,拿不定主意,问你的意见。", + "turns": [ + { + "ai": "The beach hotel is 200 dollars a night, and the small hotel in town is 90. What do you think?", + "goal": "说贵酒店不值得多花钱", + "model": "I think the hotel isn't worth the extra money.", + "zh": "我觉得那家酒店不值得多花钱。", + "itemIds": [ + "B1-U02-P04" + ] + }, + { + "ai": "But the small hotel is far from the beach.", + "goal": "说哪个选择位置更好更合理", + "model": "Then it makes more sense to choose a place near the beach. The main reason is the location.", + "zh": "那选海边附近的更合理。主要原因是位置。", + "itemIds": [ + "B1-U02-P07", + "B1-U02-P12" + ] + }, + { + "ai": "OK. And how do I get there?", + "goal": "告诉朋友最便宜的方式", + "model": "The cheapest way to get there is the bus. There's a direct bus from the city.", + "zh": "去那里最便宜的是大巴。市里有直达车。", + "itemIds": [ + "B1-U02-P01", + "B1-U02-P03" + ] + }, + { + "ai": "Should I buy the ticket now?", + "goal": "建议提前买", + "model": "Yes, you should book it in advance.", + "zh": "是的,你应该提前订。", + "itemIds": [ + "B1-U02-P10" + ] + } + ] + } + ], + "tasks": [ + { + "id": "B1-U02-T1", + "sceneId": "B1-U02-C1", + "goal": "和朋友商量交通、住宿和预算", + "itemIds": [ + "B1-U02-P01", + "B1-U02-P02", + "B1-U02-P09", + "B1-U02-P03", + "B1-U02-P05", + "B1-U02-P06", + "B1-U02-P07", + "B1-U02-P12", + "B1-U02-P11", + "B1-U02-P10", + "B1-U02-P04" + ], + "slots": [ + "交通", + "住宿", + "预算", + "决定" + ] + }, + { + "id": "B1-U02-T2", + "sceneId": "B1-U02-C2", + "goal": "在旅行社比较方案", + "itemIds": [ + "B1-U02-W01", + "B1-U02-W03", + "B1-U02-P08", + "B1-U02-W02", + "B1-U02-P09", + "B1-U02-P02" + ], + "slots": [ + "比较", + "问距离", + "替代方案" + ] + }, + { + "id": "B1-U02-T3", + "sceneId": "B1-U02-C3", + "goal": "帮朋友选住宿和交通", + "itemIds": [ + "B1-U02-P04", + "B1-U02-P07", + "B1-U02-P12", + "B1-U02-P01", + "B1-U02-P03", + "B1-U02-P10" + ], + "slots": [ + "建议", + "理由" + ] + } + ], + "materials": [ + { + "id": "B1-U02-M1", + "mode": "listening", + "title": "对话:去苏格兰怎么玩最划算", + "text": "Ben: OK, Chloe, let's plan this carefully. We have a fortnight in August, and a budget of about fifteen hundred pounds each. That has to pay for transport, accommodation, food, everything.\nChloe: Right. First, getting from London to Edinburgh. I've compared three options. Flying is the fastest, only about an hour, but you have to get to the airport and go through security. The train takes four and a half hours, but it's a direct train, and the views along the eastern coast are lovely. The bus is much cheaper, about thirty pounds, but it takes nearly ten hours.\nBen: Ten hours on a bus? I'd rather not. What about the price of the train?\nChloe: It varies a lot. If we book in advance, it's about fifty pounds. On the day, it can be a hundred and fifty.\nBen: Then let's book now. What about getting around Scotland? Should we hire a car?\nChloe: I've been thinking about that. Public transport is fine between the cities, but the trains to the Highlands aren't very frequent. Some villages have only two buses a day. So for the second week, a car makes more sense. We can split the cost. With fuel, it's approximately forty pounds a day each.\nBen: That's reasonable. And accommodation?\nChloe: In Edinburgh, hotels in the old town are a luxury. They're over two hundred pounds a night in August because of the festival. The alternative is a hostel near the station. It's basic, but the location is perfect. The main reason I like it is we can walk everywhere.\nBen: Fine by me. In the Highlands, I'd rather stay somewhere quiet, maybe a cabin by a lake.\nChloe: I've seen a few. There's one in a regional park, about thirty miles from Inverness. It's not luxury, but it has a kitchen, so we'll save money on food.\nBen: Perfect. Let's write it all down. What's the total?\nChloe: Let me calculate. My rough estimate is about thirteen hundred pounds each, so we can definitely afford it. Hopefully, we could even extend the trip by a day.\nBen: But suppose it rains all week? The weather in the Highlands is totally unpredictable.\nChloe: Then we'll change our arrangements. I'll check the forecast before we depart. Oh, and let's bring some cash. There's often no cashpoint in the small villages, and some places don't take cards, even though the currency is the same.\nBen: Good idea. I'll send you my preference for the dates tonight.", + "glosses": { + "festival": "节日", + "basic": "简单的" + }, + "questions": [ + { + "type": "gist", + "question": "两人主要在讨论什么?", + "options": [ + "去苏格兰两周的交通和住宿方案", + "爱丁堡的节日活动", + "怎样在高地开车" + ] + }, + { + "type": "detail", + "question": "为什么第二周要租车?", + "options": [ + "去高地的火车和大巴班次很少", + "租车比火车便宜", + "他们要去很多城市" + ] + }, + { + "type": "inference", + "question": "克洛伊为什么喜欢车站附近的青年旅舍?", + "options": [ + "位置方便,哪里都能走路去", + "房间很豪华", + "可以自己做饭" + ] + } + ] + }, + { + "id": "B1-U02-M2", + "mode": "reading", + "title": "文章:穷游也能玩得好", + "text": "Travelling well on a small budget\nMany people think travel is only for the rich. It isn't. With some careful planning, you can see the world without spending a fortune. Here are our top tips.\n1. Be flexible with dates. Prices vary a lot. Flights on Tuesdays and Wednesdays are typically cheaper than at weekends, and hotels by the sea can cost fifty percent less outside the summer. Unless you have school-age children, avoid the holidays.\n2. Book in advance, but not too early. For trains and flights, two or three months before departure is generally the best time. For some low-cost airlines, prices go up sharply in the last few weeks.\n3. Compare transport options. The fastest way isn't always the best. A night bus or train saves you the cost of a hotel. In many countries, the railway is comfortable and relatively cheap, and you arrive in the city center, not at an airport forty minutes away.\n4. Think about location. A cheap room is not a bargain if it's far from everything. If you spend two hours and twenty dollars a day on transport, it makes more sense to pay a little more and stay in a central district.\n5. Try self-service accommodation. Apartments and hostels with kitchens let you cook your own meals. Buy food at local markets. It's cheaper, and you'll meet local people.\n6. Use a travel card. Most big cities have a card that gives you unlimited public transport, and sometimes free access to museums, for a fixed price per day.\n7. Plan a realistic budget. Write down every expense: transport, accommodation, food, tickets, and a little extra for emergencies. Then check it every few days.\n8. Choose your destination carefully. Some coastal resorts depend on tourism and have high prices all year. A nearby town in the same region can be half the price, with a better selection of local restaurants.\n9. Check airport transfers. A cheap flight is not worthwhile if the arrival time is 2 a.m. and the only way into the city is an expensive taxi. Whenever possible, choose flights that arrive during the day.\n10. Pack light. Packing a small bag means you don't pay extra for luggage, and you can move freely wherever you go.\nFinally, remember that the most memorable parts of a trip are often free: a walk along a canal, a sunset from a hill, or a long conversation with a stranger.", + "glosses": { + "flexible": "灵活的", + "sharply": "急剧地", + "bargain": "便宜货", + "unlimited": "无限的", + "fixed": "固定的", + "stranger": "陌生人" + }, + "questions": [ + { + "type": "gist", + "question": "这篇文章主要讲什么?", + "options": [ + "花钱少也能玩好的建议", + "怎样找到最便宜的机票", + "住青年旅舍的好处" + ] + }, + { + "type": "detail", + "question": "文章说一般提前多久订火车和机票比较好?", + "options": [ + "两三个月", + "两三周", + "一年" + ] + }, + { + "type": "inference", + "question": "为什么说离什么都远的便宜房间不划算?", + "options": [ + "每天花在交通上的时间和钱太多", + "那里不安全", + "房间太小" + ] + } + ] + }, + { + "id": "B1-U02-M3", + "mode": "reading", + "title": "指南:去湖区的交通和住宿", + "text": "The Lake District: getting there and where to stay\nThe Lake District is one of the most popular areas in northern England, and it gets very busy in summer. Here's a comparison of your main options.\nGetting there\nBy rail: There are frequent trains from London to Oxenholme, about three hours. From there, change for Windermere. Book in advance for the best prices. There's also an overnight option: a sleeper train with small cabins in each carriage. It's popular with backpackers, and it saves you a night in a hotel.\nBy car: The distance from London is about 270 miles, around five hours. A vehicle gives you freedom, and if you intend to visit several villages, it's the most efficient choice. Otherwise, you'll tend to spend a lot of time waiting for buses. Big groups can hire a van. But parking in the villages is limited, roads are narrow, and phone maps don't always work, so follow the signposts at every crossroads.\nBy bus: The cheapest way, but the journey takes over seven hours, and you usually need to change twice.\nGetting around\nLocal buses connect most towns. They run frequently in summer, but they are less frequent in winter. There's also a lake ferry, which is slow but relaxing. Many visitors hire bikes. Whichever you choose, check the timetable before you go.\nWhere to stay\nThere's a variety of places to stay, from luxury hotels to simple farms, so select one that fits your preference.\nThe Lakeside Hotel: Luxury rooms with lake views, a spa and a restaurant. From £240 per night, breakfast included. Minimum stay: two nights at weekends. Guests can also reserve a table at the restaurant.\nFell End Farm: A family-run farm with four rooms. From £95 per night. Accessible by bus, but the nearest stop is a mile away, and there are no shops nearby, which some guests find inconvenient. Maximum four guests per room.\nWindermere Hostel: Dorm beds from £28, private rooms from £70. Self-service kitchen. Five minutes from the station, so it's a practical choice if you don't have a car.\nOur advice: If you're travelling without a car, stay near a station or a bus stop. You'll save time and money, and you won't miss the last bus home. Check the exact time before you go out. It's unlikely you'll find a room on the day in August, so book early. Whether you choose a hotel or a hostel, a combination of train and bus is the cheapest way to see the whole region.", + "glosses": { + "oxenholme": "奥克森霍姆(车站名)", + "windermere": "温德米尔(地名)", + "spa": "水疗", + "dorm": "宿舍间", + "fell": "山丘", + "timetable": "时刻表" + }, + "questions": [ + { + "type": "gist", + "question": "这份指南主要提供什么信息?", + "options": [ + "去湖区的交通方式和住宿选择", + "湖区的历史", + "湖区的徒步路线" + ] + }, + { + "type": "detail", + "question": "住青年旅舍的好处是什么?", + "options": [ + "离车站只有五分钟", + "有湖景和水疗", + "可以骑自行车" + ] + }, + { + "type": "inference", + "question": "为什么建议没有车的人住车站或公交线路附近?", + "options": [ + "当地公交不多,住远了不方便", + "那里风景更好", + "那里更安静" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "比较方案", + "bands": [ + "只提一个方案", + "比较两个方案,但缺少具体信息", + "从时间、价格、位置等方面比较多个方案" + ], + "pass": 1 + }, + { + "name": "说明理由与预算", + "bands": [ + "没有理由", + "有理由,但不具体", + "理由清楚,预算合理,能回应对方意见" + ], + "pass": 1 + }, + { + "name": "语言准确", + "bands": [ + "错误多,影响理解", + "比较级和条件句基本正确", + "能准确使用比较级、条件句和建议表达" + ], + "pass": 1 + } + ] + }, + "excluded": [] +} diff --git a/kouyu_english/assets/courses/B1/B1-U03.json b/kouyu_english/assets/courses/B1/B1-U03.json new file mode 100644 index 0000000..c074217 --- /dev/null +++ b/kouyu_english/assets/courses/B1/B1-U03.json @@ -0,0 +1,1410 @@ +{ + "schemaVersion": 1, + "id": "B1-U03", + "revision": 1, + "level": "B1", + "title": "入境与行李", + "categories": [ + "旅行" + ], + "canDo": "回答入境问题,报告行李延误或丢失", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "sydney", + "beijing", + "ca173", + "ba038", + "lucy", + "chen", + "wang", + "australia", + "australian", + "heathrow", + "singapore" + ], + "grammar": [ + { + "id": "61", + "use": "active" + }, + { + "id": "76", + "use": "active" + }, + { + "id": "65", + "use": "active" + }, + { + "id": "69", + "use": "active" + }, + { + "id": "82", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "B1-U03-P01", + "type": "phrase", + "en": "I'm here on holiday.", + "zh": "我是来度假的。", + "sceneWord": false, + "match": [ + [ + "here on holiday", + "here on business" + ] + ], + "example": { + "en": "I'm here on business for a week.", + "zh": "我来出差一周。" + }, + "review": { + "prompt": "回答入境官员:你是来度假的。" + } + }, + { + "id": "B1-U03-P02", + "type": "phrase", + "en": "I'm staying for ten days.", + "zh": "我待十天。", + "sceneWord": false, + "match": [ + [ + "staying for" + ] + ], + "example": { + "en": "I'm staying for two weeks with my cousin.", + "zh": "我在表哥家待两周。" + }, + "review": { + "prompt": "回答你要待三周。" + } + }, + { + "id": "B1-U03-P03", + "type": "phrase", + "en": "I have a return ticket.", + "zh": "我有返程票。", + "sceneWord": false, + "match": [ + [ + "return ticket" + ] + ], + "example": { + "en": "Here's my return ticket for the 20th.", + "zh": "这是我 20 号的返程票。" + }, + "review": { + "prompt": "告诉官员你已经买了返程票。" + } + }, + { + "id": "B1-U03-P04", + "type": "phrase", + "en": "I have nothing to declare.", + "zh": "我没有需要申报的东西。", + "sceneWord": false, + "match": [ + [ + "nothing to declare" + ] + ], + "example": { + "en": "I don't have any food. I have nothing to declare.", + "zh": "我没带食物,没有要申报的。" + }, + "review": { + "prompt": "在海关说你没有需要申报的物品。" + } + }, + { + "id": "B1-U03-P05", + "type": "phrase", + "en": "It's for my own use.", + "zh": "这是我自己用的。", + "sceneWord": false, + "match": [ + [ + "own use" + ] + ], + "example": { + "en": "These are gifts, and this medicine is for my own use.", + "zh": "这些是礼物,这个药是我自己用的。" + }, + "review": { + "prompt": "说这些化妆品是自己用的。" + } + }, + { + "id": "B1-U03-P06", + "type": "phrase", + "en": "My suitcase didn't arrive.", + "zh": "我的行李箱没到。", + "sceneWord": false, + "match": [ + [ + "didn't arrive" + ] + ], + "example": { + "en": "My bag didn't arrive on the belt.", + "zh": "我的包没出现在传送带上。" + }, + "review": { + "prompt": "在服务台说你的包没到。" + } + }, + { + "id": "B1-U03-P07", + "type": "phrase", + "en": "I was on flight CA173 from Beijing.", + "zh": "我坐的是从北京来的 CA173 航班。", + "sceneWord": false, + "match": [ + [ + "on flight" + ] + ], + "example": { + "en": "I was on flight BA038 from Singapore.", + "zh": "我坐的是从新加坡来的 BA038 航班。" + }, + "review": { + "prompt": "说你坐的是从上海来的航班。" + } + }, + { + "id": "B1-U03-P08", + "type": "phrase", + "en": "It has my name on it.", + "zh": "上面有我的名字。", + "sceneWord": false, + "match": [ + [ + "name on it" + ] + ], + "example": { + "en": "It's a large silver suitcase, and it has my name on it.", + "zh": "是一个银色的大箱子,上面有我的名字。" + }, + "review": { + "prompt": "描述行李时说上面有你的名字。" + } + }, + { + "id": "B1-U03-P09", + "type": "phrase", + "en": "My suitcase is damaged.", + "zh": "我的行李箱损坏了。", + "sceneWord": false, + "match": [ + [ + "is damaged", + "was damaged" + ] + ], + "example": { + "en": "My bag was damaged during the flight.", + "zh": "我的包在飞行中被弄坏了。" + }, + "review": { + "prompt": "说你的箱子被弄坏了。" + } + }, + { + "id": "B1-U03-P10", + "type": "phrase", + "en": "One of the wheels is broken.", + "zh": "一个轮子坏了。", + "sceneWord": false, + "match": [ + [ + "one of the wheels", + "wheels is broken", + "wheel is broken" + ] + ], + "example": { + "en": "One of the wheels is broken, and the handle doesn't work.", + "zh": "一个轮子坏了,拉杆也不好用了。" + }, + "review": { + "prompt": "说箱子一个轮子坏了。" + } + }, + { + "id": "B1-U03-P11", + "type": "phrase", + "en": "How long will it take to deliver it?", + "zh": "送到要多久?", + "sceneWord": false, + "match": [ + [ + "deliver it", + "deliver my", + "deliver the" + ] + ], + "example": { + "en": "How long will it take to deliver my bag?", + "zh": "把我的包送来要多久?" + }, + "review": { + "prompt": "问行李多久能送到。" + } + }, + { + "id": "B1-U03-P12", + "type": "phrase", + "en": "Can you send it to my hotel?", + "zh": "能送到我的酒店吗?", + "sceneWord": false, + "match": [ + [ + "send it to" + ] + ], + "example": { + "en": "Can you send it to this address?", + "zh": "能送到这个地址吗?" + }, + "review": { + "prompt": "请工作人员把包送到你住的地方。" + } + }, + { + "id": "B1-U03-W01", + "type": "word", + "en": "customs", + "zh": "海关", + "sceneWord": false, + "match": [ + [ + "customs" + ] + ], + "example": { + "en": "We went through customs quickly.", + "zh": "我们很快过了海关。" + }, + "review": { + "prompt": "说你正在排队过海关。" + } + }, + { + "id": "B1-U03-W02", + "type": "word", + "en": "baggage", + "zh": "行李", + "sceneWord": false, + "match": [ + [ + "baggage" + ] + ], + "example": { + "en": "Where is the baggage desk?", + "zh": "行李服务台在哪里?" + }, + "review": { + "prompt": "问行李服务台在哪里。" + } + }, + { + "id": "B1-U03-W03", + "type": "word", + "en": "visa", + "zh": "签证", + "sceneWord": false, + "match": [ + [ + "visa", + "visas" + ] + ], + "example": { + "en": "Do I need a visa for Australia?", + "zh": "去澳大利亚需要签证吗?" + }, + "review": { + "prompt": "问去那个国家需不需要签证。" + } + } + ], + "receptiveWords": [ + { + "id": "B1-U03-R01", + "en": "alcohol", + "zh": "酒精;酒" + }, + { + "id": "B1-U03-R02", + "en": "amount", + "zh": "数量;金额" + }, + { + "id": "B1-U03-R03", + "en": "border", + "zh": "边境" + }, + { + "id": "B1-U03-R04", + "en": "brand-new", + "zh": "全新的" + }, + { + "id": "B1-U03-R05", + "en": "cotton", + "zh": "棉的" + }, + { + "id": "B1-U03-R06", + "en": "device", + "zh": "设备" + }, + { + "id": "B1-U03-R07", + "en": "document", + "zh": "文件;证件" + }, + { + "id": "B1-U03-R08", + "en": "duty-free", + "zh": "免税的" + }, + { + "id": "B1-U03-R09", + "en": "electronic", + "zh": "电子的" + }, + { + "id": "B1-U03-R10", + "en": "entry", + "zh": "入境;进入" + }, + { + "id": "B1-U03-R11", + "en": "essential", + "zh": "必需的" + }, + { + "id": "B1-U03-R12", + "en": "fasten", + "zh": "系紧" + }, + { + "id": "B1-U03-R13", + "en": "forbidden", + "zh": "被禁止的" + }, + { + "id": "B1-U03-R14", + "en": "identity", + "zh": "身份" + }, + { + "id": "B1-U03-R15", + "en": "immediately", + "zh": "立即" + }, + { + "id": "B1-U03-R16", + "en": "immigration", + "zh": "入境检查" + }, + { + "id": "B1-U03-R17", + "en": "jar", + "zh": "罐子" + }, + { + "id": "B1-U03-R18", + "en": "legal", + "zh": "法律允许的" + }, + { + "id": "B1-U03-R19", + "en": "legally", + "zh": "合法地" + }, + { + "id": "B1-U03-R20", + "en": "illegally", + "zh": "非法地" + }, + { + "id": "B1-U03-R21", + "en": "lighter", + "zh": "打火机" + }, + { + "id": "B1-U03-R22", + "en": "liquid", + "zh": "液体" + }, + { + "id": "B1-U03-R23", + "en": "object", + "zh": "物品" + }, + { + "id": "B1-U03-R24", + "en": "officially", + "zh": "正式地" + }, + { + "id": "B1-U03-R25", + "en": "permit", + "zh": "允许" + }, + { + "id": "B1-U03-R26", + "en": "politely", + "zh": "礼貌地" + }, + { + "id": "B1-U03-R27", + "en": "powder", + "zh": "粉末" + }, + { + "id": "B1-U03-R28", + "en": "precious", + "zh": "珍贵的" + }, + { + "id": "B1-U03-R29", + "en": "process", + "zh": "过程;流程" + }, + { + "id": "B1-U03-R30", + "en": "protect", + "zh": "保护" + }, + { + "id": "B1-U03-R31", + "en": "quantity", + "zh": "数量" + }, + { + "id": "B1-U03-R32", + "en": "razor", + "zh": "剃须刀" + }, + { + "id": "B1-U03-R33", + "en": "refuse", + "zh": "拒绝" + }, + { + "id": "B1-U03-R34", + "en": "regulation", + "zh": "规定" + }, + { + "id": "B1-U03-R35", + "en": "relative", + "zh": "亲戚" + }, + { + "id": "B1-U03-R36", + "en": "requirement", + "zh": "要求" + }, + { + "id": "B1-U03-R37", + "en": "require", + "zh": "需要" + }, + { + "id": "B1-U03-R38", + "en": "resident", + "zh": "居民" + }, + { + "id": "B1-U03-R39", + "en": "residential", + "zh": "居住的" + }, + { + "id": "B1-U03-R40", + "en": "responsible", + "zh": "负责的" + }, + { + "id": "B1-U03-R41", + "en": "restrict", + "zh": "限制" + }, + { + "id": "B1-U03-R42", + "en": "scan", + "zh": "扫描" + }, + { + "id": "B1-U03-R43", + "en": "silk", + "zh": "丝绸" + }, + { + "id": "B1-U03-R44", + "en": "status", + "zh": "状态;身份" + }, + { + "id": "B1-U03-R45", + "en": "switch", + "zh": "开关;切换" + }, + { + "id": "B1-U03-R46", + "en": "tax", + "zh": "税" + }, + { + "id": "B1-U03-R47", + "en": "temporary", + "zh": "临时的" + }, + { + "id": "B1-U03-R48", + "en": "permanent", + "zh": "永久的" + }, + { + "id": "B1-U03-R49", + "en": "liter", + "zh": "升" + }, + { + "id": "B1-U03-R50", + "en": "instance", + "zh": "例子" + }, + { + "id": "B1-U03-R51", + "en": "reference", + "zh": "参考;编号" + }, + { + "id": "B1-U03-R52", + "en": "belongings", + "zh": "随身物品" + }, + { + "id": "B1-U03-R53", + "en": "compensation", + "zh": "赔偿" + }, + { + "id": "B1-U03-R54", + "en": "zip", + "zh": "拉链" + }, + { + "id": "B1-U03-R55", + "en": "tick", + "zh": "打勾" + }, + { + "id": "B1-U03-R56", + "en": "tin", + "zh": "罐头盒" + }, + { + "id": "B1-U03-R57", + "en": "tobacco", + "zh": "烟草" + }, + { + "id": "B1-U03-R58", + "en": "toothpaste", + "zh": "牙膏" + }, + { + "id": "B1-U03-R59", + "en": "turbulence", + "zh": "气流颠簸" + }, + { + "id": "B1-U03-R60", + "en": "valuable", + "zh": "贵重的" + }, + { + "id": "B1-U03-R61", + "en": "wrap", + "zh": "包裹" + }, + { + "id": "B1-U03-R62", + "en": "wrapping", + "zh": "包装" + }, + { + "id": "B1-U03-R63", + "en": "wristwatch", + "zh": "手表" + }, + { + "id": "B1-U03-R64", + "en": "contain", + "zh": "包含" + }, + { + "id": "B1-U03-R65", + "en": "signature", + "zh": "签名" + }, + { + "id": "B1-U03-R66", + "en": "terminal", + "zh": "航站楼" + }, + { + "id": "B1-U03-R67", + "en": "runway", + "zh": "跑道" + }, + { + "id": "B1-U03-R68", + "en": "exit", + "zh": "出口" + }, + { + "id": "B1-U03-R69", + "en": "bracelet", + "zh": "手镯" + }, + { + "id": "B1-U03-R70", + "en": "necklace", + "zh": "项链" + }, + { + "id": "B1-U03-R71", + "en": "jewel", + "zh": "珠宝" + }, + { + "id": "B1-U03-R72", + "en": "possession", + "zh": "财物" + }, + { + "id": "B1-U03-R73", + "en": "tissue", + "zh": "纸巾" + }, + { + "id": "B1-U03-R74", + "en": "underpants", + "zh": "内裤" + }, + { + "id": "B1-U03-R75", + "en": "sandal", + "zh": "凉鞋" + }, + { + "id": "B1-U03-R76", + "en": "accessory", + "zh": "配饰" + }, + { + "id": "B1-U03-R77", + "en": "inform", + "zh": "通知" + }, + { + "id": "B1-U03-R78", + "en": "apology", + "zh": "道歉" + }, + { + "id": "B1-U03-R79", + "en": "respond", + "zh": "回应" + }, + { + "id": "B1-U03-R80", + "en": "sticker", + "zh": "贴纸" + } + ], + "segments": [ + { + "id": "B1-U03-S1", + "title": "回答入境问题", + "minutes": 12, + "itemIds": [ + "B1-U03-P01", + "B1-U03-P02", + "B1-U03-P03", + "B1-U03-W03" + ], + "listening": { + "text": "Good morning. Passport, please. What's the purpose of your visit? I'm here on holiday. How long are you staying? I'm staying for ten days. Do you have a return ticket? Yes, I have a return ticket for the 20th. And you have a tourist visa. OK, enjoy your stay.", + "question": "旅客有什么签证?", + "options": [ + "旅游签证", + "工作签证", + "学生签证" + ] + }, + "speaking": [ + { + "text": "I'm here on holiday." + }, + { + "text": "I'm staying for ten days." + }, + { + "text": "I have a return ticket." + }, + { + "text": "Here's my visa.", + "tip": "visa 读作 /ˈviːzə/" + } + ], + "reading": { + "text": "Arrival card\nPurpose of visit: holiday / business / study / other\nHow long are you staying? ____ days\nAddress in the country: ____\nDo you have a return ticket? Yes / No\nVisa number (if you need a visa): ____\nPlease fill in this card before you reach the passport desk.", + "question": "这张卡应该什么时候填?", + "options": [ + "到护照检查台之前", + "下飞机以后第二天", + "过完海关以后" + ] + }, + "writing": { + "prompt": "写两句话:告诉官员你是来度假的,待十天。", + "example": "I'm here on holiday. I'm staying for ten days.", + "itemIds": [ + "B1-U03-P01", + "B1-U03-P02" + ] + }, + "independent": { + "prompt": "用英语说你有返程票,并出示签证。", + "itemIds": [ + "B1-U03-P03", + "B1-U03-W03" + ] + } + }, + { + "id": "B1-U03-S2", + "title": "过海关", + "minutes": 10, + "itemIds": [ + "B1-U03-P04", + "B1-U03-P05", + "B1-U03-W01" + ], + "listening": { + "text": "Do you have anything to declare? No, I have nothing to declare. What's in this bag? Some clothes and some medicine. The medicine is for my own use. OK. You can go through customs now.", + "question": "旅客说药是做什么用的?", + "options": [ + "自己用的", + "送人的", + "卖的" + ] + }, + "speaking": [ + { + "text": "I have nothing to declare." + }, + { + "text": "It's for my own use." + }, + { + "text": "We went through customs quickly.", + "tip": "customs 读 /ˈkʌstəmz/" + } + ], + "reading": { + "text": "Customs: green or red?\nGreen: You have nothing to declare.\nRed: You have food, plants, a lot of cash, or more than the free amount of wine or cigarettes.\nMedicine for your own use is usually OK, but bring the doctor's note.\nIf you are not sure, go to the red desk and ask.", + "question": "不确定该走哪个通道时怎么办?", + "options": [ + "走红色通道去问", + "走绿色通道", + "把东西扔掉" + ] + }, + "writing": { + "prompt": "写两句话:说你没有需要申报的东西,药是你自己用的。", + "example": "I have nothing to declare. The medicine is for my own use.", + "itemIds": [ + "B1-U03-P04", + "B1-U03-P05" + ] + }, + "independent": { + "prompt": "用英语说你们很快过了海关。", + "itemIds": [ + "B1-U03-W01" + ] + } + }, + { + "id": "B1-U03-S3", + "title": "行李没到", + "minutes": 13, + "itemIds": [ + "B1-U03-P06", + "B1-U03-P07", + "B1-U03-P08", + "B1-U03-W02" + ], + "listening": { + "text": "Excuse me, is this the baggage desk? My suitcase didn't arrive. I was on flight CA173 from Beijing. It's a large silver suitcase with four wheels, and it has my name on it. Can you check where it is?", + "question": "旅客的行李箱是什么样子的?", + "options": [ + "银色大箱子,上面有名字", + "黑色小包", + "红色箱子,两个轮子" + ] + }, + "speaking": [ + { + "text": "My suitcase didn't arrive." + }, + { + "text": "I was on flight CA173 from Beijing." + }, + { + "text": "It has my name on it." + }, + { + "text": "Where is the baggage desk?", + "tip": "baggage 读 /ˈbæɡɪdʒ/" + } + ], + "reading": { + "text": "Missing baggage?\nIf your bag didn't arrive, please do not leave the airport.\n1. Go to the baggage desk in the arrivals hall.\n2. Tell us your flight number: \"I was on flight BA038.\"\n3. Describe your bag: size, color, and if it has your name on it.\n4. Keep your bag receipt from check-in.", + "question": "发现行李没到时首先应该怎么做?", + "options": [ + "别离开机场,去行李服务台", + "回家等电话", + "在网上填表" + ] + }, + "writing": { + "prompt": "写两句话:说你的箱子没到,你坐的是从北京来的 CA173 航班。", + "example": "My suitcase didn't arrive. I was on flight CA173 from Beijing.", + "itemIds": [ + "B1-U03-P06", + "B1-U03-P07" + ] + }, + "independent": { + "prompt": "用英语问行李服务台在哪里,并说箱子上有你的名字。", + "itemIds": [ + "B1-U03-W02", + "B1-U03-P08" + ] + } + }, + { + "id": "B1-U03-S4", + "title": "行李损坏与送回", + "minutes": 12, + "itemIds": [ + "B1-U03-P09", + "B1-U03-P10", + "B1-U03-P11", + "B1-U03-P12" + ], + "listening": { + "text": "Hello, my suitcase is damaged. One of the wheels is broken. We can repair it or pay for a new one. OK. And my other bag is still missing. How long will it take to deliver it? Usually one or two days. Can you send it to my hotel? Of course.", + "question": "工作人员说丢的包多久能送到?", + "options": [ + "一两天", + "一周", + "当天晚上" + ] + }, + "speaking": [ + { + "text": "My suitcase is damaged." + }, + { + "text": "One of the wheels is broken." + }, + { + "text": "How long will it take to deliver it?" + }, + { + "text": "Can you send it to my hotel?" + } + ], + "reading": { + "text": "Message from the airline\nDear Ms Chen, we have found your bag. It was sent to the wrong airport. We will deliver it tomorrow between 10 a.m. and 2 p.m. We will send it to your hotel. If your bag is damaged, please tell us within 7 days.", + "question": "如果包坏了要在多长时间内告诉航空公司?", + "options": [ + "7 天内", + "当天", + "一个月内" + ] + }, + "writing": { + "prompt": "写两句话:说你的箱子坏了,一个轮子坏了。", + "example": "My suitcase is damaged. One of the wheels is broken.", + "itemIds": [ + "B1-U03-P09", + "B1-U03-P10" + ] + }, + "independent": { + "prompt": "用英语问多久能送到,并请对方送到你的酒店。", + "itemIds": [ + "B1-U03-P11", + "B1-U03-P12" + ] + } + } + ], + "scenes": [ + { + "id": "B1-U03-C1", + "kind": "main", + "title": "在行李服务台报告行李没到", + "learnerRole": "旅客", + "aiRole": "机场行李服务台工作人员", + "setting": "你刚到悉尼,在传送带旁等了很久,行李箱一直没出来。", + "turns": [ + { + "ai": "Good evening. How can I help you?", + "goal": "说行李箱没到", + "model": "Hi. My suitcase didn't arrive. Is this the baggage desk?", + "zh": "你好。我的行李箱没到。这里是行李服务台吗?", + "itemIds": [ + "B1-U03-P06", + "B1-U03-W02" + ] + }, + { + "ai": "Yes, it is. Which flight were you on?", + "goal": "说航班号", + "model": "I was on flight CA173 from Beijing.", + "zh": "我坐的是从北京来的 CA173 航班。", + "itemIds": [ + "B1-U03-P07" + ] + }, + { + "ai": "Can you describe your suitcase?", + "goal": "描述箱子,说上面有名字", + "model": "It's a large silver suitcase, and it has my name on it.", + "zh": "是一个银色的大箱子,上面有我的名字。", + "itemIds": [ + "B1-U03-P08" + ] + }, + { + "ai": "OK. It looks like it's still in Beijing. It'll come on the next flight.", + "goal": "问多久能送到", + "model": "How long will it take to deliver it?", + "zh": "送到要多久?", + "itemIds": [ + "B1-U03-P11" + ] + }, + { + "ai": "About 24 hours.", + "goal": "请对方送到酒店", + "model": "Can you send it to my hotel? Here's the address.", + "zh": "能送到我的酒店吗?这是地址。", + "itemIds": [ + "B1-U03-P12" + ] + }, + { + "ai": "No problem. Please sign here.", + "goal": "道谢", + "model": "Thank you for your help.", + "zh": "谢谢你的帮助。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U03-C2", + "kind": "variant", + "title": "回答入境官员的问题", + "learnerRole": "入境旅客", + "aiRole": "入境检查官员", + "setting": "你在澳大利亚机场的护照检查台。", + "turns": [ + { + "ai": "Passport, please. What's the purpose of your visit?", + "goal": "说来度假", + "model": "I'm here on holiday.", + "zh": "我是来度假的。", + "itemIds": [ + "B1-U03-P01" + ] + }, + { + "ai": "How long are you staying?", + "goal": "说待十天", + "model": "I'm staying for ten days.", + "zh": "我待十天。", + "itemIds": [ + "B1-U03-P02" + ] + }, + { + "ai": "Do you have a return ticket?", + "goal": "说有返程票", + "model": "Yes, I have a return ticket for the 20th.", + "zh": "有,我有 20 号的返程票。", + "itemIds": [ + "B1-U03-P03" + ] + }, + { + "ai": "And do you have a visa?", + "goal": "说有签证并出示", + "model": "Yes, here's my visa.", + "zh": "有,这是我的签证。", + "itemIds": [ + "B1-U03-W03" + ] + }, + { + "ai": "Thank you. Enjoy your stay.", + "goal": "道谢", + "model": "Thank you.", + "zh": "谢谢。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U03-C3", + "kind": "variant", + "title": "过海关", + "learnerRole": "旅客", + "aiRole": "海关工作人员", + "setting": "你拿了行李走向出口,被海关工作人员叫住。", + "turns": [ + { + "ai": "Excuse me. Is this your bag? Do you have anything to declare?", + "goal": "说没有要申报的", + "model": "Yes, it's mine. I have nothing to declare.", + "zh": "是我的。我没有需要申报的东西。", + "itemIds": [ + "B1-U03-P04" + ] + }, + { + "ai": "What's this medicine?", + "goal": "说是自己用的", + "model": "It's for my own use. I have a doctor's note.", + "zh": "是我自己用的。我有医生开的证明。", + "itemIds": [ + "B1-U03-P05" + ] + }, + { + "ai": "Fine. And the tea?", + "goal": "说是礼物", + "model": "They're gifts for my friends.", + "zh": "是给朋友的礼物。", + "itemIds": [] + }, + { + "ai": "OK, you can go.", + "goal": "问出口在哪,顺便说过海关很快", + "model": "Thanks. That was quick. I didn't know customs was so easy here.", + "zh": "谢谢。真快。没想到这里过海关这么容易。", + "itemIds": [ + "B1-U03-W01" + ] + } + ] + }, + { + "id": "B1-U03-C4", + "kind": "variant", + "title": "报告行李损坏", + "learnerRole": "旅客", + "aiRole": "行李服务台工作人员", + "setting": "你的行李箱到了,但坏了。", + "turns": [ + { + "ai": "Hello. Can I help you?", + "goal": "说箱子坏了,一个轮子坏了", + "model": "Yes. My suitcase is damaged. One of the wheels is broken.", + "zh": "是的。我的箱子坏了。一个轮子坏了。", + "itemIds": [ + "B1-U03-P09", + "B1-U03-P10" + ] + }, + { + "ai": "I'm sorry. Can I see your baggage receipt?", + "goal": "出示行李收据", + "model": "Sure. Here's my baggage receipt.", + "zh": "好的,这是我的行李收据。", + "itemIds": [ + "B1-U03-W02" + ] + }, + { + "ai": "Thank you. We can repair it and send it back to you.", + "goal": "请对方送到酒店", + "model": "Can you send it to my hotel?", + "zh": "能送到我的酒店吗?", + "itemIds": [ + "B1-U03-P12" + ] + }, + { + "ai": "Yes. It'll be there in three days.", + "goal": "同意", + "model": "That's fine. Thank you.", + "zh": "可以,谢谢。", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "B1-U03-T1", + "sceneId": "B1-U03-C1", + "goal": "在行李服务台报告行李没到并安排送达", + "itemIds": [ + "B1-U03-P06", + "B1-U03-W02", + "B1-U03-P07", + "B1-U03-P08", + "B1-U03-P11", + "B1-U03-P12" + ], + "slots": [ + "问题", + "航班", + "描述", + "送达" + ] + }, + { + "id": "B1-U03-T2", + "sceneId": "B1-U03-C2", + "goal": "回答入境问题", + "itemIds": [ + "B1-U03-P01", + "B1-U03-P02", + "B1-U03-P03", + "B1-U03-W03" + ], + "slots": [ + "目的", + "时长", + "证件" + ] + }, + { + "id": "B1-U03-T3", + "sceneId": "B1-U03-C3", + "goal": "过海关时回答问题", + "itemIds": [ + "B1-U03-P04", + "B1-U03-P05", + "B1-U03-W01" + ], + "slots": [ + "申报", + "说明物品" + ] + }, + { + "id": "B1-U03-T4", + "sceneId": "B1-U03-C4", + "goal": "报告行李损坏", + "itemIds": [ + "B1-U03-P09", + "B1-U03-P10", + "B1-U03-W02", + "B1-U03-P12" + ], + "slots": [ + "问题", + "证明", + "解决办法" + ] + } + ], + "materials": [ + { + "id": "B1-U03-M1", + "mode": "listening", + "title": "对话:在悉尼入境", + "text": "Officer: Good afternoon. Passport and arrival card, please.\nLucy: Here you are.\nOfficer: Thank you. What's the purpose of your visit to Australia?\nLucy: I'm here on holiday. I'm visiting some relatives in Sydney, and then I'm travelling along the coast.\nOfficer: How long are you staying?\nLucy: I'm staying for three weeks.\nOfficer: And you're on a tourist visa. Have you been to Australia before?\nLucy: No, this is my first time.\nOfficer: Do you have a return ticket?\nLucy: Yes, I have a return ticket for the 28th. Here's a printed copy.\nOfficer: That's fine. Where are you staying?\nLucy: With my aunt for the first week. Her address is on the card. After that, hostels.\nOfficer: OK. Please look at the camera. Thank you. Enjoy your stay.\nLucy: Thanks.\n\nCustoms officer: Hello. Can you put your bags on the table? You ticked \"no\" on the card. So you have nothing to declare?\nLucy: That's right.\nCustoms officer: No food, plants or seeds? We have very strict regulations here. Even a small quantity of fruit is forbidden.\nLucy: No. Oh, wait. I have some tea and a tin of biscuits. They're gifts for my aunt.\nCustoms officer: Canned or packed food like that is usually fine, but you must declare it. Next time, tick \"yes\". What's in this jar?\nLucy: It's face cream. It's for my own use.\nCustoms officer: And this white powder?\nLucy: That's milk powder for my aunt's baby. It's still in the original wrapping.\nCustoms officer: OK. Any alcohol or tobacco?\nLucy: Just one bottle of wine from the duty-free shop.\nCustoms officer: That's under the limit. And do you have more than ten thousand dollars in cash?\nLucy: I wish!\nCustoms officer: Right. Please scan your bags again over there, and then you can go. Remember, the rules exist to protect our plants and animals, so please declare everything next time.\nLucy: I will. Sorry about that.", + "glosses": { + "strict": "严格的", + "biscuits": "饼干", + "original": "原来的" + }, + "questions": [ + { + "type": "gist", + "question": "这段对话主要是什么内容?", + "options": [ + "露西入境和过海关时回答问题", + "露西在机场找丢失的行李", + "露西在免税店买东西" + ] + }, + { + "type": "detail", + "question": "露西为什么被海关提醒?", + "options": [ + "她带了食物却在卡上勾了“否”", + "她带了太多现金", + "她的酒超过了限额" + ] + }, + { + "type": "inference", + "question": "从海关人员的话可以推断出什么?", + "options": [ + "澳大利亚对带入食物和植物管得很严", + "牛奶粉不能带入澳大利亚", + "露西要交罚款" + ] + } + ] + }, + { + "id": "B1-U03-M2", + "mode": "reading", + "title": "指南:入境须知", + "text": "Entering the country: what you need to know\nBefore you travel, check the entry requirements carefully. Rules change, and airlines can refuse to let you board if your documents are not in order.\nYour documents\nYour passport must be valid for at least six months after your arrival date, it must contain space for your visa, and it must have your signature. Most visitors also require a visa. Some can apply online, and the process takes about three days. Others need to visit an embassy. A tourist visa is temporary: it usually permits you to stay for a maximum of 90 days, and officially, you cannot work. If you are a permanent resident, you need to show your resident card as well as your passport. Keep a copy of your identity documents in a separate bag, and write down the phone number of your embassy.\nAt the border\nWhen you land at the terminal, stay in your seat until the plane has left the runway and stopped. Then follow the signs to immigration. An officer will check your passport and visa and may ask about the purpose of your visit, your residential address and whether you have a return ticket. Answer politely and clearly. In some airports, you can use an electronic gate, which scans your passport and takes your photo. Your status as a visitor will be printed on your entry stamp.\nCustoms\nNext, pick up your baggage and go through customs. Some objects are completely forbidden, such as weapons and certain medicines. Others are restricted: you must declare them, and officers may check them. These include fresh food, plants, seeds, and cash over a certain amount.\nThere are also legal limits on duty-free goods. Adults can legally bring in one liter of alcohol and 200 cigarettes or 250 grams of tobacco without paying tax. It is illegal to bring in more without declaring it, and you could pay a large fine. Goods that are brought in illegally will be taken away.\nOn the plane\nRemember, liquids in your hand luggage must be in containers of 100 ml or less, and you cannot carry razors or lighters. Electronic devices must be switched off during landing. Fasten your seat belt, especially if there is turbulence.\nIf you are not sure about something, ask. Officers are there to help, and it's always better to declare an item than to lose it. When you have finished, follow the signs to the exit.", + "glosses": { + "board": "登机", + "valid": "有效的", + "embassy": "大使馆", + "weapons": "武器", + "containers": "容器", + "ml": "毫升", + "grams": "克", + "cigarettes": "香烟" + }, + "questions": [ + { + "type": "gist", + "question": "这份指南主要讲什么?", + "options": [ + "入境时需要的证件和规定", + "怎样申请工作签证", + "在免税店买东西的技巧" + ] + }, + { + "type": "detail", + "question": "旅游签证一般最多能待多久?", + "options": [ + "90 天", + "6 个月", + "3 天" + ] + }, + { + "type": "inference", + "question": "为什么建议有疑问就申报?", + "options": [ + "申报了最多东西被拿走,不申报可能被罚款", + "海关人员会送你礼物", + "申报可以更快出机场" + ] + } + ] + }, + { + "id": "B1-U03-M3", + "mode": "reading", + "title": "常见问题:行李延误或损坏", + "text": "Delayed, lost or damaged baggage: your questions answered\nMy bag didn't arrive. What should I do?\nDon't leave the baggage hall. Go straight to our baggage desk and fill in a report. You'll need your boarding pass, your baggage receipt and a description of your bag: its size, color, brand and anything special, for instance if it has your name on it. Tell us what your bag contains, too. We'll give you a reference number and inform you by text message when we find it. Keep it safe, because you'll need it every time you contact us.\nHow long will it take to deliver it?\nMost delayed bags are found within 24 hours. They usually went to the wrong airport, or they missed a connecting flight. As soon as your bag arrives, we will send it to your hotel or home at no cost. You can check its status online with your reference number.\nWhat if I need things immediately?\nWe know it's inconvenient to arrive without your belongings. You can buy essential items, such as toothpaste, tissues, underpants, a pair of sandals or a cotton T-shirt, and we will pay you back. Keep all the receipts. Please be reasonable: we cannot pay for luxury items like silk shirts, fashion accessories or a brand-new wristwatch.\nMy suitcase is damaged. Can I get compensation?\nYes, if you report it within 7 days. Take photos of the damage, for instance if one of the wheels is broken or the zip doesn't work. We will repair the suitcase or, if it can't be repaired, offer you a replacement. We are not responsible for normal wear, such as small marks or scratches.\nWhat about valuable things?\nPlease don't put precious or valuable possessions, like jewels, a bracelet or necklace, cash or your laptop, in checked baggage. Keep them in your hand luggage. We cannot pay for them if they are lost.\nWe're very sorry for any trouble. Please accept our apology. Our team responds to every report within 48 hours and will do everything possible to return your bag quickly. Tip: put a sticker with your name and phone number on every bag.", + "glosses": { + "replacement": "替换品", + "wear": "磨损", + "scratches": "划痕", + "laptop": "笔记本电脑" + }, + "questions": [ + { + "type": "gist", + "question": "这篇常见问题主要说明什么?", + "options": [ + "行李延误或损坏时该怎么办", + "怎样打包行李", + "哪些东西不能带上飞机" + ] + }, + { + "type": "detail", + "question": "行李延误时,哪些东西航空公司会报销?", + "options": [ + "牙膏、内衣等必需品", + "丝绸衬衫", + "新手表" + ] + }, + { + "type": "inference", + "question": "为什么建议把贵重物品放在随身行李里?", + "options": [ + "托运中丢了航空公司不赔", + "随身行李更轻", + "安检时要检查" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "回答清楚", + "bands": [ + "答非所问", + "能回答问题,但信息不完整", + "准确回答目的、时长、住处等问题" + ], + "pass": 1 + }, + { + "name": "说明问题并提出要求", + "bands": [ + "说不清问题", + "能说出问题,但缺少航班或描述", + "说清航班、行李特征,并提出具体要求" + ], + "pass": 1 + } + ] + }, + "excluded": [] +} diff --git a/kouyu_english/assets/courses/B1/B1-U04.json b/kouyu_english/assets/courses/B1/B1-U04.json new file mode 100644 index 0000000..f5070d2 --- /dev/null +++ b/kouyu_english/assets/courses/B1/B1-U04.json @@ -0,0 +1,1399 @@ +{ + "schemaVersion": 1, + "id": "B1-U04", + "revision": 1, + "level": "B1", + "title": "听懂广播与讲解", + "categories": [ + "旅行" + ], + "canDo": "抓住车站、机场广播和导览讲解的要点", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "york", + "leeds", + "manchester", + "edinburgh", + "durham", + "kingsbridge", + "paris", + "london", + "rome", + "anna", + "tom", + "hughes", + "ez482", + "ba213", + "england" + ], + "grammar": [ + { + "id": "62", + "use": "active" + }, + { + "id": "73", + "use": "active" + }, + { + "id": "76", + "use": "active" + }, + { + "id": "69", + "use": "active" + }, + { + "id": "181", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "B1-U04-P01", + "type": "phrase", + "en": "The train is delayed.", + "zh": "火车晚点了。", + "sceneWord": false, + "match": [ + [ + "is delayed", + "has been delayed", + "was delayed", + "been delayed", + "are delayed" + ] + ], + "example": { + "en": "The 9:40 train to York has been delayed by twenty minutes.", + "zh": "9:40 去约克的火车晚点二十分钟。" + }, + "review": { + "prompt": "告诉朋友:火车晚点了。" + } + }, + { + "id": "B1-U04-P02", + "type": "phrase", + "en": "The train has been cancelled.", + "zh": "火车取消了。", + "sceneWord": false, + "match": [ + [ + "been cancelled", + "been canceled", + "is cancelled", + "is canceled", + "was cancelled", + "was canceled" + ] + ], + "example": { + "en": "The last bus has been cancelled because of the snow.", + "zh": "末班车因为下雪取消了。" + }, + "review": { + "prompt": "说去利兹的火车取消了。" + } + }, + { + "id": "B1-U04-P03", + "type": "phrase", + "en": "It will now leave from platform 4.", + "zh": "现在改从 4 站台出发。", + "sceneWord": false, + "match": [ + [ + "leave from platform", + "leaves from platform" + ] + ], + "example": { + "en": "The train to Leeds will leave from platform 6 today.", + "zh": "今天去利兹的车从 6 站台出发。" + }, + "review": { + "prompt": "说火车现在改从 4 站台出发。" + } + }, + { + "id": "B1-U04-P04", + "type": "phrase", + "en": "The flight is now boarding.", + "zh": "航班正在登机。", + "sceneWord": false, + "match": [ + [ + "now boarding" + ] + ], + "example": { + "en": "Flight EZ482 to Paris is now boarding at gate 18.", + "zh": "去巴黎的 EZ482 航班正在 18 号登机口登机。" + }, + "review": { + "prompt": "告诉同伴:我们的航班正在登机。" + } + }, + { + "id": "B1-U04-P05", + "type": "phrase", + "en": "This is the final call.", + "zh": "这是最后一次登机广播。", + "sceneWord": false, + "match": [ + [ + "final call" + ] + ], + "example": { + "en": "This is the final call for flight BA213 to London.", + "zh": "这是去伦敦的 BA213 航班最后一次登机广播。" + }, + "review": { + "prompt": "提醒同伴:已经是最后召集了。" + } + }, + { + "id": "B1-U04-P06", + "type": "phrase", + "en": "Did they say gate 12?", + "zh": "他们说的是 12 号登机口吗?", + "sceneWord": false, + "match": [ + [ + "did they say", + "did he say", + "did she say" + ] + ], + "example": { + "en": "Did they say the train is cancelled?", + "zh": "他们说的是火车取消了吗?" + }, + "review": { + "prompt": "向旁边的人确认广播说的是不是 5 站台。" + } + }, + { + "id": "B1-U04-P07", + "type": "phrase", + "en": "Sorry, I didn't catch that.", + "zh": "抱歉,我没听清。", + "sceneWord": false, + "match": [ + [ + "didn't catch", + "did not catch" + ] + ], + "example": { + "en": "Sorry, I didn't catch the gate number.", + "zh": "抱歉,我没听清登机口号码。" + }, + "review": { + "prompt": "告诉工作人员你没听清刚才的广播。" + } + }, + { + "id": "B1-U04-P08", + "type": "phrase", + "en": "On your left, you can see the old town hall.", + "zh": "在你们左边可以看到老市政厅。", + "sceneWord": false, + "match": [ + [ + "on your left", + "on your right", + "on our left", + "on our right" + ] + ], + "example": { + "en": "On your right, you can see the oldest bridge in the city.", + "zh": "在你们右边可以看到城里最古老的桥。" + }, + "review": { + "prompt": "像导游一样说:右边是老教堂。" + } + }, + { + "id": "B1-U04-P09", + "type": "phrase", + "en": "It was designed by a famous man from this town.", + "zh": "它是本城一位名人设计的。", + "sceneWord": false, + "match": [ + [ + "designed by" + ] + ], + "example": { + "en": "The bridge was designed by a young woman from London.", + "zh": "这座桥是一位来自伦敦的年轻女士设计的。" + }, + "review": { + "prompt": "问导游这栋楼是谁设计的。" + } + }, + { + "id": "B1-U04-P10", + "type": "phrase", + "en": "Please stay together.", + "zh": "请大家待在一起。", + "sceneWord": false, + "match": [ + [ + "stay together" + ] + ], + "example": { + "en": "The market is busy, so please stay together.", + "zh": "市场人多,请大家待在一起。" + }, + "review": { + "prompt": "提醒同伴在人多的地方待在一起。" + } + }, + { + "id": "B1-U04-P11", + "type": "phrase", + "en": "We'll meet back here at three.", + "zh": "我们三点回这里集合。", + "sceneWord": false, + "match": [ + [ + "meet back" + ] + ], + "example": { + "en": "We'll meet back at the bus at half past five.", + "zh": "我们五点半回到车上集合。" + }, + "review": { + "prompt": "说大家四点回这里集合。" + } + }, + { + "id": "B1-U04-P12", + "type": "phrase", + "en": "Photos aren't allowed inside.", + "zh": "里面不许拍照。", + "sceneWord": false, + "match": [ + [ + "not allowed", + "isn't allowed", + "aren't allowed" + ] + ], + "example": { + "en": "Food isn't allowed in the museum.", + "zh": "博物馆里不许带食物。" + }, + "review": { + "prompt": "提醒朋友里面不能拍照。" + } + }, + { + "id": "B1-U04-W01", + "type": "word", + "en": "announcement", + "zh": "广播;通知", + "sceneWord": false, + "match": [ + [ + "announcement", + "announcements" + ] + ], + "example": { + "en": "Did you hear that announcement?", + "zh": "你听到那条广播了吗?" + }, + "review": { + "prompt": "问朋友刚才的广播说了什么。" + } + }, + { + "id": "B1-U04-W02", + "type": "word", + "en": "platform", + "zh": "站台", + "sceneWord": false, + "match": [ + [ + "platform", + "platforms" + ] + ], + "example": { + "en": "Which platform does the train leave from?", + "zh": "火车从哪个站台出发?" + }, + "review": { + "prompt": "问火车从哪个站台出发。" + } + }, + { + "id": "B1-U04-W03", + "type": "word", + "en": "guide", + "zh": "导游", + "sceneWord": false, + "match": [ + [ + "guide", + "guides" + ] + ], + "example": { + "en": "Our guide knew a lot about the city.", + "zh": "我们的导游对这座城市很了解。" + }, + "review": { + "prompt": "说你们的导游很友好。" + } + } + ], + "receptiveWords": [ + { + "id": "B1-U04-R01", + "en": "admission", + "zh": "入场;门票" + }, + { + "id": "B1-U04-R02", + "en": "announce", + "zh": "宣布;广播通知" + }, + { + "id": "B1-U04-R03", + "en": "annual", + "zh": "一年一度的" + }, + { + "id": "B1-U04-R04", + "en": "antique", + "zh": "古董;古老的" + }, + { + "id": "B1-U04-R05", + "en": "applaud", + "zh": "鼓掌" + }, + { + "id": "B1-U04-R06", + "en": "applause", + "zh": "掌声" + }, + { + "id": "B1-U04-R07", + "en": "architect", + "zh": "建筑师" + }, + { + "id": "B1-U04-R08", + "en": "artistic", + "zh": "有艺术感的" + }, + { + "id": "B1-U04-R09", + "en": "assist", + "zh": "协助" + }, + { + "id": "B1-U04-R10", + "en": "assistance", + "zh": "帮助;协助" + }, + { + "id": "B1-U04-R11", + "en": "avenue", + "zh": "大街" + }, + { + "id": "B1-U04-R12", + "en": "brick", + "zh": "砖" + }, + { + "id": "B1-U04-R13", + "en": "broadcast", + "zh": "广播" + }, + { + "id": "B1-U04-R14", + "en": "bronze", + "zh": "青铜" + }, + { + "id": "B1-U04-R15", + "en": "ceremony", + "zh": "典礼;仪式" + }, + { + "id": "B1-U04-R16", + "en": "circus", + "zh": "马戏团" + }, + { + "id": "B1-U04-R17", + "en": "closely", + "zh": "仔细地" + }, + { + "id": "B1-U04-R18", + "en": "construction", + "zh": "建造;施工" + }, + { + "id": "B1-U04-R19", + "en": "craft", + "zh": "手工艺品" + }, + { + "id": "B1-U04-R20", + "en": "destruction", + "zh": "毁坏" + }, + { + "id": "B1-U04-R21", + "en": "directly", + "zh": "直接地" + }, + { + "id": "B1-U04-R22", + "en": "disability", + "zh": "残疾" + }, + { + "id": "B1-U04-R23", + "en": "disabled", + "zh": "残疾的" + }, + { + "id": "B1-U04-R24", + "en": "documentary", + "zh": "纪录片" + }, + { + "id": "B1-U04-R25", + "en": "engine", + "zh": "发动机" + }, + { + "id": "B1-U04-R26", + "en": "entertain", + "zh": "娱乐;使快乐" + }, + { + "id": "B1-U04-R27", + "en": "entire", + "zh": "整个的" + }, + { + "id": "B1-U04-R28", + "en": "entirely", + "zh": "完全地" + }, + { + "id": "B1-U04-R29", + "en": "failure", + "zh": "故障;失败" + }, + { + "id": "B1-U04-R30", + "en": "firework", + "zh": "烟花" + }, + { + "id": "B1-U04-R31", + "en": "flash", + "zh": "闪光灯" + }, + { + "id": "B1-U04-R32", + "en": "former", + "zh": "以前的" + }, + { + "id": "B1-U04-R33", + "en": "fountain", + "zh": "喷泉" + }, + { + "id": "B1-U04-R34", + "en": "funeral", + "zh": "葬礼" + }, + { + "id": "B1-U04-R35", + "en": "highlight", + "zh": "最精彩的部分" + }, + { + "id": "B1-U04-R36", + "en": "historic", + "zh": "有历史意义的" + }, + { + "id": "B1-U04-R37", + "en": "impressive", + "zh": "令人印象深刻的" + }, + { + "id": "B1-U04-R38", + "en": "initial", + "zh": "最初的" + }, + { + "id": "B1-U04-R39", + "en": "intermission", + "zh": "中场休息" + }, + { + "id": "B1-U04-R40", + "en": "interval", + "zh": "幕间休息" + }, + { + "id": "B1-U04-R41", + "en": "normally", + "zh": "通常" + }, + { + "id": "B1-U04-R42", + "en": "jazz", + "zh": "爵士乐" + }, + { + "id": "B1-U04-R43", + "en": "latecomer", + "zh": "迟到的人" + }, + { + "id": "B1-U04-R44", + "en": "locate", + "zh": "位于" + }, + { + "id": "B1-U04-R45", + "en": "lorry", + "zh": "卡车" + }, + { + "id": "B1-U04-R46", + "en": "loudspeaker", + "zh": "扬声器" + }, + { + "id": "B1-U04-R47", + "en": "magician", + "zh": "魔术师" + }, + { + "id": "B1-U04-R48", + "en": "majority", + "zh": "大多数" + }, + { + "id": "B1-U04-R49", + "en": "marble", + "zh": "大理石" + }, + { + "id": "B1-U04-R50", + "en": "mayor", + "zh": "市长" + }, + { + "id": "B1-U04-R51", + "en": "monument", + "zh": "纪念碑;纪念建筑" + }, + { + "id": "B1-U04-R52", + "en": "numerous", + "zh": "许多的" + }, + { + "id": "B1-U04-R53", + "en": "onstage", + "zh": "在舞台上" + }, + { + "id": "B1-U04-R54", + "en": "orchestra", + "zh": "管弦乐队" + }, + { + "id": "B1-U04-R55", + "en": "orderly", + "zh": "有秩序的" + }, + { + "id": "B1-U04-R56", + "en": "origin", + "zh": "起源" + }, + { + "id": "B1-U04-R57", + "en": "outdoor", + "zh": "户外的" + }, + { + "id": "B1-U04-R58", + "en": "outdoors", + "zh": "在户外" + }, + { + "id": "B1-U04-R59", + "en": "performer", + "zh": "表演者" + }, + { + "id": "B1-U04-R60", + "en": "pole", + "zh": "柱子" + }, + { + "id": "B1-U04-R61", + "en": "pottery", + "zh": "陶器" + }, + { + "id": "B1-U04-R62", + "en": "prayer", + "zh": "祈祷" + }, + { + "id": "B1-U04-R63", + "en": "preserve", + "zh": "保护;保存" + }, + { + "id": "B1-U04-R64", + "en": "previous", + "zh": "以前的" + }, + { + "id": "B1-U04-R65", + "en": "proceed", + "zh": "前往" + }, + { + "id": "B1-U04-R66", + "en": "queue", + "zh": "队伍;排队" + }, + { + "id": "B1-U04-R67", + "en": "railroad", + "zh": "铁路" + }, + { + "id": "B1-U04-R68", + "en": "rebuild", + "zh": "重建" + }, + { + "id": "B1-U04-R69", + "en": "refreshments", + "zh": "茶点" + }, + { + "id": "B1-U04-R70", + "en": "remainder", + "zh": "其余的人" + }, + { + "id": "B1-U04-R71", + "en": "remarkable", + "zh": "非凡的" + }, + { + "id": "B1-U04-R72", + "en": "restore", + "zh": "修复" + }, + { + "id": "B1-U04-R73", + "en": "sculpture", + "zh": "雕塑" + }, + { + "id": "B1-U04-R74", + "en": "series", + "zh": "一系列" + }, + { + "id": "B1-U04-R75", + "en": "session", + "zh": "一场(活动)" + }, + { + "id": "B1-U04-R76", + "en": "shift", + "zh": "变动" + }, + { + "id": "B1-U04-R77", + "en": "shortly", + "zh": "马上;不久" + }, + { + "id": "B1-U04-R78", + "en": "significance", + "zh": "重要性" + }, + { + "id": "B1-U04-R79", + "en": "solid", + "zh": "结实的" + }, + { + "id": "B1-U04-R80", + "en": "spectator", + "zh": "观众" + }, + { + "id": "B1-U04-R81", + "en": "stall", + "zh": "摊位" + }, + { + "id": "B1-U04-R82", + "en": "steel", + "zh": "钢" + }, + { + "id": "B1-U04-R83", + "en": "substitute", + "zh": "替代的" + }, + { + "id": "B1-U04-R84", + "en": "surface", + "zh": "表面" + }, + { + "id": "B1-U04-R85", + "en": "traditionally", + "zh": "传统上" + }, + { + "id": "B1-U04-R86", + "en": "upper", + "zh": "上面的" + }, + { + "id": "B1-U04-R87", + "en": "visible", + "zh": "看得见的" + } + ], + "segments": [ + { + "id": "B1-U04-S1", + "title": "车站广播:晚点、取消、换站台", + "minutes": 13, + "itemIds": [ + "B1-U04-P01", + "B1-U04-P02", + "B1-U04-P03", + "B1-U04-W02" + ], + "listening": { + "text": "Attention, please. The 9:40 train to York is delayed by twenty minutes. The 10:05 train to Leeds has been cancelled. Passengers for Leeds, please take the 10:30 train. It will leave from platform 4.", + "question": "去利兹的旅客应该坐哪趟车?", + "options": [ + "10:30 从 4 站台出发的车", + "9:40 去约克的车", + "10:05 从 2 站台出发的车" + ] + }, + "speaking": [ + { + "text": "The train is delayed." + }, + { + "text": "The train has been cancelled.", + "tip": "cancelled 读 /ˈkænsəld/" + }, + { + "text": "It will now leave from platform 4." + }, + { + "text": "Which platform does it leave from?", + "tip": "platform 重音在前 /ˈplætfɔːm/" + } + ], + "reading": { + "text": "Departures\n9:40 York: delayed, now 10:00, platform 2\n10:05 Leeds: cancelled\n10:30 Leeds: on time, platform 4\n10:45 Manchester: now leaves from platform 6, not platform 3", + "question": "10:45 去曼彻斯特的车有什么变化?", + "options": [ + "改到 6 站台出发", + "取消了", + "晚点二十分钟" + ] + }, + "writing": { + "prompt": "写两句话:说火车晚点了,现在改从 4 站台出发。", + "example": "The train is delayed. It will now leave from platform 4.", + "itemIds": [ + "B1-U04-P01", + "B1-U04-P03" + ] + }, + "independent": { + "prompt": "用英语说去利兹的火车取消了,并问下一趟从哪个站台出发。", + "itemIds": [ + "B1-U04-P02", + "B1-U04-W02" + ] + } + }, + { + "id": "B1-U04-S2", + "title": "机场广播:登机与最后召集", + "minutes": 10, + "itemIds": [ + "B1-U04-P04", + "B1-U04-P05" + ], + "listening": { + "text": "This is an announcement for passengers on flight EZ482 to Paris. The flight is now boarding at gate 18. And this is the final call for passenger Tom Hughes. Please go to gate 22 now.", + "question": "谁被叫到 22 号登机口?", + "options": [ + "旅客 Tom Hughes", + "去巴黎的所有旅客", + "带小孩的旅客" + ] + }, + "speaking": [ + { + "text": "Flight EZ482 is now boarding at gate 18." + }, + { + "text": "This is the final call.", + "tip": "final call 两个词都要重读" + }, + { + "text": "We need to hurry. It's the final call." + } + ], + "reading": { + "text": "Boarding pass\nFlight: EZ482 to Paris\nGate: 18\nBoarding time: 13:20\nGate closes: 13:40\nPlease be at the gate when boarding starts. After the final call, the gate closes in 10 minutes.", + "question": "最后召集后多久关闭登机口?", + "options": [ + "10 分钟", + "20 分钟", + "40 分钟" + ] + }, + "writing": { + "prompt": "写一句话:说去巴黎的航班正在登机。", + "example": "The flight to Paris is now boarding.", + "itemIds": [ + "B1-U04-P04" + ] + }, + "independent": { + "prompt": "用英语说这是最后一次登机广播,我们得快点。", + "itemIds": [ + "B1-U04-P05" + ] + } + }, + { + "id": "B1-U04-S3", + "title": "没听清时确认", + "minutes": 8, + "itemIds": [ + "B1-U04-P06", + "B1-U04-P07", + "B1-U04-W01" + ], + "listening": { + "text": "Excuse me, I didn't catch that announcement. Did they say gate 12? No, they said gate 20. The gate has changed. Oh, thank you!", + "question": "登机口改成了几号?", + "options": [ + "20 号", + "12 号", + "8 号" + ] + }, + "speaking": [ + { + "text": "Sorry, I didn't catch that." + }, + { + "text": "Did they say gate 12?" + }, + { + "text": "What was that announcement about?", + "tip": "announcement 重音在第二个音节" + } + ], + "reading": { + "text": "Can't hear the announcements?\nAirports and stations are noisy. If you didn't catch an announcement, don't guess. Ask someone near you: \"Did they say gate 12?\" You can also check the screens or ask at the information desk.", + "question": "没听清广播时,文中建议不要做什么?", + "options": [ + "自己猜", + "看屏幕", + "问旁边的人" + ] + }, + "writing": { + "prompt": "写两句话:说你没听清广播,问是不是说 12 号登机口。", + "example": "Sorry, I didn't catch that announcement. Did they say gate 12?", + "itemIds": [ + "B1-U04-P07", + "B1-U04-W01", + "B1-U04-P06" + ] + }, + "independent": { + "prompt": "用英语问旁边的人刚才的广播说的是不是 5 站台。", + "itemIds": [ + "B1-U04-P06" + ] + } + }, + { + "id": "B1-U04-S4", + "title": "跟着导游参观", + "minutes": 14, + "itemIds": [ + "B1-U04-P08", + "B1-U04-P09", + "B1-U04-P10", + "B1-U04-P11", + "B1-U04-P12", + "B1-U04-W03" + ], + "listening": { + "text": "Hello, everyone. I'm your guide, Anna. Please stay together. On your left, you can see the old town hall. It was designed by a famous man from this town. Photos aren't allowed inside the church. We'll meet back here at three o'clock.", + "question": "大家几点在这里集合?", + "options": [ + "三点", + "两点", + "四点" + ] + }, + "speaking": [ + { + "text": "Please stay together." + }, + { + "text": "On your left, you can see the old town hall." + }, + { + "text": "It was designed by a famous man from this town." + }, + { + "text": "Photos aren't allowed inside." + }, + { + "text": "We'll meet back here at three.", + "tip": "meet back 连读" + }, + { + "text": "Our guide was great.", + "tip": "guide 读 /ɡaɪd/" + } + ], + "reading": { + "text": "Walking tour of the old town\nStart: 10 a.m. at the town hall\nYour guide will show you the old market, the town hall and the church.\nPlease stay together in the busy streets.\nPhotos aren't allowed inside the church.\nWe'll meet back at the town hall at 12:30 for lunch.", + "question": "教堂里有什么规定?", + "options": [ + "不能拍照", + "不能说话", + "不能进去" + ] + }, + "writing": { + "prompt": "写两句话:请大家待在一起,并说里面不许拍照。", + "example": "Please stay together. Photos aren't allowed inside.", + "itemIds": [ + "B1-U04-P10", + "B1-U04-P12" + ] + }, + "independent": { + "prompt": "用英语告诉朋友:导游说左边是老市政厅,是一位本城名人设计的,三点回这里集合。", + "itemIds": [ + "B1-U04-P08", + "B1-U04-P09", + "B1-U04-P11", + "B1-U04-W03" + ] + } + } + ], + "scenes": [ + { + "id": "B1-U04-C1", + "kind": "main", + "title": "在车站问清晚点和取消", + "learnerRole": "旅客", + "aiRole": "车站工作人员", + "setting": "你在去约克的车站,刚才的广播没听清,屏幕上显示你的车有变化。", + "turns": [ + { + "ai": "Good morning. Can I help you?", + "goal": "说没听清广播", + "model": "Yes, please. Sorry, I didn't catch that announcement.", + "zh": "是的。抱歉,我没听清刚才的广播。", + "itemIds": [ + "B1-U04-P07", + "B1-U04-W01" + ] + }, + { + "ai": "It said the 10:15 train to York has been cancelled.", + "goal": "确认广播内容", + "model": "Did they say the 10:15 has been cancelled? I thought the train was delayed, not cancelled.", + "zh": "他们说的是 10:15 那趟取消了吗?我以为只是晚点。", + "itemIds": [ + "B1-U04-P06", + "B1-U04-P02", + "B1-U04-P01" + ] + }, + { + "ai": "Yes, I'm afraid it's cancelled. The next train to York is at 10:45.", + "goal": "问从哪个站台出发", + "model": "Will it leave from platform 4, like the 10:15?", + "zh": "它还是从 4 站台出发吗,和 10:15 那趟一样?", + "itemIds": [ + "B1-U04-P03", + "B1-U04-W02" + ] + }, + { + "ai": "No. Today it'll leave from platform 7.", + "goal": "问车是否准时", + "model": "OK, platform 7. Is it on time?", + "zh": "好的,7 站台。它准时吗?", + "itemIds": [] + }, + { + "ai": "Yes, it's on time at the moment.", + "goal": "道谢", + "model": "Great. Thanks for your help.", + "zh": "太好了。谢谢你的帮助。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U04-C2", + "kind": "variant", + "title": "在登机口听到广播", + "learnerRole": "旅客", + "aiRole": "同一航班的另一位旅客", + "setting": "你在机场候机,广播响了,旁边的旅客没听清。", + "turns": [ + { + "ai": "Excuse me, was that announcement for the London flight?", + "goal": "说航班正在登机", + "model": "Yes. Flight BA213 to London is now boarding.", + "zh": "是的。去伦敦的 BA213 航班正在登机。", + "itemIds": [ + "B1-U04-P04" + ] + }, + { + "ai": "Oh no, I didn't hear the gate number.", + "goal": "确认登机口", + "model": "Did they say gate 12? I think so.", + "zh": "他们说的是 12 号登机口吧?我想是的。", + "itemIds": [ + "B1-U04-P06" + ] + }, + { + "ai": "Gate 12 is far from here. Do we have time?", + "goal": "说这是最后召集,得快点", + "model": "Not really. This is the final call, so we need to hurry.", + "zh": "不太够。这是最后一次登机广播,我们得快点。", + "itemIds": [ + "B1-U04-P05" + ] + }, + { + "ai": "OK, let's go!", + "goal": "回应", + "model": "Let's go. Follow me.", + "zh": "走吧,跟我来。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U04-C3", + "kind": "variant", + "title": "跟着导游逛老城", + "learnerRole": "游客", + "aiRole": "导游 Anna", + "setting": "你参加了老城步行游,导游正在介绍景点和规定。", + "turns": [ + { + "ai": "Hello, everyone. I'm Anna, and I'm your guide today.", + "goal": "打招呼并问能不能拍照", + "model": "Hi, Anna. Can we take photos, or are photos not allowed inside?", + "zh": "你好,Anna。可以拍照吗,还是里面不许拍?", + "itemIds": [ + "B1-U04-P12" + ] + }, + { + "ai": "You can take photos outside, but not in the church.", + "goal": "问左边的楼", + "model": "OK. What's that tall building on our left?", + "zh": "好的。我们左边那栋高楼是什么?", + "itemIds": [ + "B1-U04-P08" + ] + }, + { + "ai": "That's the old town hall.", + "goal": "问是不是名人设计的", + "model": "It's beautiful. Was it designed by someone famous?", + "zh": "真漂亮。是名人设计的吗?", + "itemIds": [ + "B1-U04-P09" + ] + }, + { + "ai": "Yes, by a famous man from this town. Now you have free time.", + "goal": "问几点在这里集合", + "model": "Should we meet back here at three?", + "zh": "我们三点回这里集合吗?", + "itemIds": [ + "B1-U04-P11" + ] + }, + { + "ai": "Yes, three o'clock. The market is very busy today.", + "goal": "说会待在一起", + "model": "OK. We'll stay together in the market.", + "zh": "好的。我们在市场里会待在一起。", + "itemIds": [ + "B1-U04-P10" + ] + }, + { + "ai": "Great. See you at three.", + "goal": "感谢导游", + "model": "Thank you, Anna. You're a great guide.", + "zh": "谢谢你,Anna。你是个很棒的导游。", + "itemIds": [ + "B1-U04-W03" + ] + } + ] + } + ], + "tasks": [ + { + "id": "B1-U04-T1", + "sceneId": "B1-U04-C1", + "goal": "在车站问清火车晚点、取消和站台", + "itemIds": [ + "B1-U04-P07", + "B1-U04-W01", + "B1-U04-P06", + "B1-U04-P02", + "B1-U04-P01", + "B1-U04-P03", + "B1-U04-W02" + ], + "slots": [ + "没听清", + "确认", + "站台" + ] + }, + { + "id": "B1-U04-T2", + "sceneId": "B1-U04-C2", + "goal": "在登机口告诉旁人登机信息", + "itemIds": [ + "B1-U04-P04", + "B1-U04-P06", + "B1-U04-P05" + ], + "slots": [ + "登机信息", + "确认", + "催促" + ] + }, + { + "id": "B1-U04-T3", + "sceneId": "B1-U04-C3", + "goal": "跟导游确认规定和集合时间", + "itemIds": [ + "B1-U04-P12", + "B1-U04-P08", + "B1-U04-P09", + "B1-U04-P11", + "B1-U04-P10", + "B1-U04-W03" + ], + "slots": [ + "规定", + "提问", + "集合" + ] + } + ], + "materials": [ + { + "id": "B1-U04-M1", + "mode": "listening", + "title": "广播:车站与机场", + "text": "Station announcements\nGood morning, everyone. This is a broadcast for all passengers at Kingsbridge Station. We are sorry to announce that the 9:40 service to York has been delayed by approximately twenty-five minutes because of a problem on the line near Manchester. The train will now leave from platform 6, not platform 2. Please listen carefully for further announcements.\nAttention, please. The 10:05 train to Edinburgh has been cancelled because of engine failure. We apologize for any trouble this may cause. Passengers for Edinburgh can use the 10:35 service, which will leave from platform 4. Your tickets can be used on this train. A substitute bus service will also run to Durham and the smaller stations along the line. Buses will leave from the car park directly in front of the main entrance.\nPassengers who need assistance, including passengers with a disability, should go to the information desk, where our staff will assist you. The railroad crossing on Station Road is closed for construction work, so drivers and lorry drivers should follow the signs to the avenue behind the station.\nAirport announcements\nThis is an announcement for passengers on flight EZ482 to Paris. The flight is now boarding at gate 18. Passengers with small children and anyone who needs extra time should proceed to the gate now. The remainder of passengers will be called shortly. Please have your passport and boarding pass ready, and please join the queue in an orderly way.\nPassengers for flight BA213 to London, please note that the gate has changed. The flight will now leave from gate 31, not gate 9. Gate 31 is located on the upper level, and it is a ten-minute walk, so please go there directly.\nThis is the final call for passenger Mr Tom Hughes, travelling to Rome. Please go to gate 22 immediately, where your flight is ready to close. Latecomers will not be allowed to board.\nNormally, announcements are made in English and in one other language. Screens are visible throughout the terminal, so check them regularly, because gate numbers and boarding times can shift at short notice.\nFinally, a message from security: please keep your belongings with you at all times. If you see a bag that nobody is watching, please tell a member of staff. Thank you, and have a pleasant flight.", + "glosses": {}, + "questions": [ + { + "type": "gist", + "question": "这些广播主要在通知什么?", + "options": [ + "车站和机场的晚点、取消和登机信息", + "机场免税商品打折", + "城里的旅游景点介绍" + ] + }, + { + "type": "detail", + "question": "去爱丁堡的旅客可以怎么走?", + "options": [ + "坐 10:35 从 4 站台出发的车", + "坐 9:40 去约克的车", + "坐去巴黎的航班" + ] + }, + { + "type": "inference", + "question": "为什么建议去 31 号登机口的旅客直接过去?", + "options": [ + "登机口在上层,走过去要十分钟", + "那里的航班已经取消了", + "那里有免费的食物" + ] + } + ] + }, + { + "id": "B1-U04-M2", + "mode": "listening", + "title": "导览讲解:老城与大教堂", + "text": "Good morning, everyone, and welcome to Kingsbridge. My name is Anna, and I'll be your guide for the next two hours. Before we start, a few quick things. Please stay together, because the streets are narrow and busy. Photos are allowed outside, but flash photos aren't allowed inside the cathedral.\nSo, let's begin. We're standing in the Market Square, which is the historic heart of the town. The origin of the town goes back almost a thousand years, when people from nearby villages came here to sell animals and pottery. Traditionally, the market was held every Saturday, and it still is. The majority of the stalls sell food, but you can also find antiques and local crafts.\nOn your left, you can see the old town hall. It was designed by a local architect in 1740, and it was built entirely of red brick. The previous building, which was made of wood, caught fire in 1731, and the fire caused the destruction of almost the entire square. The town decided to rebuild in brick and stone, so it could never happen again.\nNow look at the fountain in the middle of the square. The bronze statue on top is of a former mayor, who paid for the fountain. If you look closely, you'll notice that the surface of the bronze has turned green. That's completely normal, and it actually helps to preserve the metal. The steel poles around it are new; they were put there last year to protect it from cars.\nLet's walk up to the cathedral. Its construction started in 1120, and it took nearly two hundred years. The initial plan was for a much smaller church, but the town grew rich, and the building was made bigger several times. That's why you can see different styles: the walls at the bottom are solid and simple, and the upper parts are much lighter and more artistic.\nInside, the highlight for most visitors is the marble monument to a famous family, with numerous small sculptures around it. The windows were badly damaged in a big storm, and it took thirty years to restore them. Today they're remarkable: on a sunny day, the colors are visible across the whole floor.\nA word about the cathedral's significance. For centuries it was the most important place of prayer in the region, and important ceremonies, including weddings and funerals, took place here. There are still services every day, so please speak quietly.\nWe'll spend about forty minutes inside. After that, you'll have free time. We'll meet back here at the fountain at twelve o'clock. Please don't be late, because the coach leaves at quarter past twelve. Any questions? No? Great, let's go.", + "glosses": { + "cathedral": "大教堂" + }, + "questions": [ + { + "type": "gist", + "question": "导游主要在介绍什么?", + "options": [ + "老城的市场、市政厅和大教堂", + "城里最好的餐馆", + "去机场的交通" + ] + }, + { + "type": "detail", + "question": "老市政厅为什么用砖建?", + "options": [ + "之前的木房子着过大火", + "砖比木头便宜", + "国王要求用砖" + ] + }, + { + "type": "inference", + "question": "为什么要在大教堂里小声说话?", + "options": [ + "每天仍有人在那里做礼拜", + "里面正在录音", + "声音会损坏窗户" + ] + } + ] + }, + { + "id": "B1-U04-M3", + "mode": "reading", + "title": "指南:城堡夏季活动", + "text": "Castle Hill: summer events guide\nCastle Hill, the former home of the Hughes family, is one of the most impressive historic houses in the north of England. From June to September, we are open every day from 9:30 a.m., with last admission at 4 p.m.\nTickets and admission\nAdult tickets cost 14 pounds, and children under 16 get in free. Tickets include an audio guide in eight languages. We recommend booking online, because there is often a long queue at the gate at weekends. Disabled visitors and one person who comes with them get free admission. Staff are always happy to assist if you need help.\nGuided tours\nFree tours run every hour. Our guides share the story of the house and its people, and each tour ends in the old kitchen, where you can try bread made the old way, as people made it two hundred years ago.\nWhat's on this summer\nThe annual summer festival takes place in the castle gardens from 20 July to 3 August. Highlights include:\nMusic in the garden: Every Friday evening, the town orchestra performs outdoors, followed by a jazz session. There is a twenty-minute interval, when refreshments are sold. Bring a blanket and a picnic! Last year, the applause at the end of the final concert went on for ten minutes.\nThe circus is coming: Performers from the Circus of Stars will entertain spectators with an exciting series of shows, including a magician and a fire act. Children can join the performers onstage at the end. Shows start at 2 p.m. and 5 p.m.\nFilm nights: On Wednesdays, we show a documentary about the castle's past in the great hall, where the walls are full of antique paintings. There is a short intermission in the middle.\nOpening night: The festival opens on 20 July with fireworks at 10 p.m. You can see them from anywhere in the gardens, but the best view is from the top of the hill.\nUseful information\nPlease arrive at least fifteen minutes before shows start. Latecomers can only go in during the interval.\nFlash photos are not allowed during performances.\nIn case of rain, outdoor events will move indoors. Any changes will be announced over the loudspeakers and on our website.\nOur coffee shop and gift shop, which sells local crafts and pottery, are located near the main entrance.\nDogs are welcome in the gardens but not inside the house.\nEnjoy your visit, and don't forget to applaud our wonderful performers!", + "glosses": {}, + "questions": [ + { + "type": "gist", + "question": "这份指南主要介绍什么?", + "options": [ + "城堡的门票和夏季活动", + "城堡的建筑历史", + "怎样在城堡找工作" + ] + }, + { + "type": "detail", + "question": "周五晚上有什么活动?", + "options": [ + "管弦乐队户外演出,之后是爵士乐", + "在大厅放纪录片", + "马戏团下午两场演出" + ] + }, + { + "type": "inference", + "question": "为什么建议在网上订票?", + "options": [ + "周末门口常常排长队", + "网上票价便宜一半", + "门口不卖儿童票" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "听清并确认信息", + "bands": [ + "没听懂也不确认", + "能说出没听清,但不会确认具体信息", + "能说出没听清,并准确确认时间、站台或登机口" + ], + "pass": 1 + }, + { + "name": "向导游提问与回应", + "bands": [ + "不会提问", + "能提出简单问题,但没回应规定或集合时间", + "能问清规定、景点和集合时间,并礼貌回应" + ], + "pass": 1 + } + ] + }, + "excluded": [] +} diff --git a/kouyu_english/assets/courses/B1/B1-U05.json b/kouyu_english/assets/courses/B1/B1-U05.json new file mode 100644 index 0000000..ee782d0 --- /dev/null +++ b/kouyu_english/assets/courses/B1/B1-U05.json @@ -0,0 +1,1372 @@ +{ + "schemaVersion": 1, + "id": "B1-U05", + "revision": 1, + "level": "B1", + "title": "紧急情况", + "categories": [ + "旅行" + ], + "canDo": "证件或钱包丢失、报警、求助", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "mark", + "jones", + "emma", + "rossi", + "rome", + "italy", + "ben", + "park", + "lisa", + "madrid", + "spain", + "europe", + "porto", + "bello" + ], + "grammar": [ + { + "id": "65", + "use": "active" + }, + { + "id": "66", + "use": "active" + }, + { + "id": "62", + "use": "active" + }, + { + "id": "139", + "use": "active" + }, + { + "id": "203", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "B1-U05-P01", + "type": "phrase", + "en": "I'd like to report a theft.", + "zh": "我想报案,东西被偷了。", + "sceneWord": false, + "match": [ + [ + "report a theft", + "report a stolen" + ] + ], + "example": { + "en": "I'd like to report a stolen bag.", + "zh": "我想报案,我的包被偷了。" + }, + "review": { + "prompt": "在警察局说你想报盗窃案。" + } + }, + { + "id": "B1-U05-P02", + "type": "phrase", + "en": "Someone stole my wallet.", + "zh": "有人偷了我的钱包。", + "sceneWord": false, + "match": [ + [ + "stole my", + "stole our", + "stole her", + "stole his" + ] + ], + "example": { + "en": "Someone stole my phone on the train.", + "zh": "有人在火车上偷了我的手机。" + }, + "review": { + "prompt": "说有人偷了你的包。" + } + }, + { + "id": "B1-U05-P03", + "type": "phrase", + "en": "It happened about an hour ago.", + "zh": "大约一个小时前发生的。", + "sceneWord": false, + "match": [ + [ + "it happened" + ] + ], + "example": { + "en": "It happened outside the station at about six.", + "zh": "事情发生在车站外,大约六点。" + }, + "review": { + "prompt": "说事情发生在大约半小时前。" + } + }, + { + "id": "B1-U05-P04", + "type": "phrase", + "en": "I didn't see who took it.", + "zh": "我没看见是谁拿的。", + "sceneWord": false, + "match": [ + [ + "didn't see who", + "did not see who" + ] + ], + "example": { + "en": "It was very crowded, so I didn't see who took it.", + "zh": "当时人很多,我没看见是谁拿的。" + }, + "review": { + "prompt": "说你没看到是谁拿走的。" + } + }, + { + "id": "B1-U05-P05", + "type": "phrase", + "en": "I need a police report.", + "zh": "我需要一份报案证明。", + "sceneWord": false, + "match": [ + [ + "police report" + ] + ], + "example": { + "en": "Can I get a copy of the police report?", + "zh": "我能拿一份报案证明吗?" + }, + "review": { + "prompt": "说你需要一份报案证明。" + } + }, + { + "id": "B1-U05-P06", + "type": "phrase", + "en": "I need to block my card.", + "zh": "我需要冻结我的卡。", + "sceneWord": false, + "match": [ + [ + "block my", + "block the" + ] + ], + "example": { + "en": "Can you block my bank card, please?", + "zh": "请帮我冻结银行卡好吗?" + }, + "review": { + "prompt": "打电话给银行说你要冻结卡。" + } + }, + { + "id": "B1-U05-P07", + "type": "phrase", + "en": "I've lost my passport.", + "zh": "我的护照丢了。", + "sceneWord": false, + "match": [ + [ + "lost my passport", + "lost her passport", + "lost his passport" + ] + ], + "example": { + "en": "I've lost my passport, and I'm flying home on Friday.", + "zh": "我的护照丢了,我周五要坐飞机回家。" + }, + "review": { + "prompt": "告诉工作人员你的护照丢了。" + } + }, + { + "id": "B1-U05-P08", + "type": "phrase", + "en": "Can I get a temporary passport?", + "zh": "我能办一本临时护照吗?", + "sceneWord": false, + "match": [ + [ + "temporary passport" + ] + ], + "example": { + "en": "How long does it take to get a temporary passport?", + "zh": "办临时护照要多久?" + }, + "review": { + "prompt": "问能不能办临时护照。" + } + }, + { + "id": "B1-U05-P09", + "type": "phrase", + "en": "There's been an accident.", + "zh": "出事故了。", + "sceneWord": false, + "match": [ + [ + "been an accident" + ] + ], + "example": { + "en": "There's been an accident on the main road.", + "zh": "大路上出事故了。" + }, + "review": { + "prompt": "打电话说这里出事故了。" + } + }, + { + "id": "B1-U05-P10", + "type": "phrase", + "en": "Someone is hurt.", + "zh": "有人受伤了。", + "sceneWord": false, + "match": [ + [ + "is hurt", + "are hurt", + "was hurt", + "got hurt" + ] + ], + "example": { + "en": "A man on a bike is hurt.", + "zh": "一个骑车的男人受伤了。" + }, + "review": { + "prompt": "说有个女人受伤了。" + } + }, + { + "id": "B1-U05-P11", + "type": "phrase", + "en": "Please stay calm.", + "zh": "请保持冷静。", + "sceneWord": false, + "match": [ + [ + "stay calm", + "keep calm" + ] + ], + "example": { + "en": "Stay calm. The ambulance is coming.", + "zh": "保持冷静,救护车在路上了。" + }, + "review": { + "prompt": "告诉受伤的人保持冷静。" + } + }, + { + "id": "B1-U05-P12", + "type": "phrase", + "en": "He ran away with it.", + "zh": "他拿着东西跑了。", + "sceneWord": false, + "match": [ + [ + "ran away", + "ran off" + ] + ], + "example": { + "en": "He grabbed my bag and ran away.", + "zh": "他抢了我的包就跑了。" + }, + "review": { + "prompt": "说那个人拿着你的手机跑了。" + } + }, + { + "id": "B1-U05-W01", + "type": "word", + "en": "insurance", + "zh": "保险", + "sceneWord": false, + "match": [ + [ + "insurance" + ] + ], + "example": { + "en": "I need the report for my travel insurance.", + "zh": "我需要这份证明来办旅游保险。" + }, + "review": { + "prompt": "说你买了旅游保险。" + } + }, + { + "id": "B1-U05-W02", + "type": "word", + "en": "embassy", + "zh": "大使馆", + "sceneWord": true, + "sceneReason": "护照丢失时必须去大使馆或领事馆,旅行中高频必需", + "match": [ + [ + "embassy", + "embassies" + ] + ], + "example": { + "en": "Where is the Chinese embassy?", + "zh": "中国大使馆在哪里?" + }, + "review": { + "prompt": "问中国大使馆在哪里。" + } + }, + { + "id": "B1-U05-W03", + "type": "word", + "en": "ambulance", + "zh": "救护车", + "sceneWord": false, + "match": [ + [ + "ambulance", + "ambulances" + ] + ], + "example": { + "en": "Please call an ambulance.", + "zh": "请叫救护车。" + }, + "review": { + "prompt": "请旁边的人叫救护车。" + } + } + ], + "receptiveWords": [ + { + "id": "B1-U05-R01", + "en": "arrest", + "zh": "逮捕" + }, + { + "id": "B1-U05-R02", + "en": "aware", + "zh": "意识到的" + }, + { + "id": "B1-U05-R03", + "en": "bald", + "zh": "秃头的" + }, + { + "id": "B1-U05-R04", + "en": "bandage", + "zh": "绷带" + }, + { + "id": "B1-U05-R05", + "en": "bang", + "zh": "砰的一声" + }, + { + "id": "B1-U05-R06", + "en": "beard", + "zh": "胡子" + }, + { + "id": "B1-U05-R07", + "en": "bin", + "zh": "垃圾桶" + }, + { + "id": "B1-U05-R08", + "en": "bleed", + "zh": "流血" + }, + { + "id": "B1-U05-R09", + "en": "bump", + "zh": "撞" + }, + { + "id": "B1-U05-R10", + "en": "burst", + "zh": "爆裂" + }, + { + "id": "B1-U05-R11", + "en": "calmness", + "zh": "镇定" + }, + { + "id": "B1-U05-R12", + "en": "caution", + "zh": "小心;告诫" + }, + { + "id": "B1-U05-R13", + "en": "cautious", + "zh": "谨慎的" + }, + { + "id": "B1-U05-R14", + "en": "chase", + "zh": "追赶" + }, + { + "id": "B1-U05-R15", + "en": "chief", + "zh": "主管;首席的" + }, + { + "id": "B1-U05-R16", + "en": "choke", + "zh": "噎住" + }, + { + "id": "B1-U05-R17", + "en": "crash", + "zh": "撞车" + }, + { + "id": "B1-U05-R18", + "en": "criminal", + "zh": "罪犯" + }, + { + "id": "B1-U05-R19", + "en": "deadly", + "zh": "致命的" + }, + { + "id": "B1-U05-R20", + "en": "disastrous", + "zh": "灾难性的" + }, + { + "id": "B1-U05-R21", + "en": "drown", + "zh": "淹死" + }, + { + "id": "B1-U05-R22", + "en": "explosion", + "zh": "爆炸" + }, + { + "id": "B1-U05-R23", + "en": "faint", + "zh": "晕倒" + }, + { + "id": "B1-U05-R24", + "en": "fetch", + "zh": "拿来" + }, + { + "id": "B1-U05-R25", + "en": "firefighter", + "zh": "消防员" + }, + { + "id": "B1-U05-R26", + "en": "grab", + "zh": "抓住;抢" + }, + { + "id": "B1-U05-R27", + "en": "guilty", + "zh": "有罪的" + }, + { + "id": "B1-U05-R28", + "en": "hazard", + "zh": "危险" + }, + { + "id": "B1-U05-R29", + "en": "helpless", + "zh": "无助的" + }, + { + "id": "B1-U05-R30", + "en": "ignore", + "zh": "无视" + }, + { + "id": "B1-U05-R31", + "en": "incident", + "zh": "事件" + }, + { + "id": "B1-U05-R32", + "en": "injury", + "zh": "伤" + }, + { + "id": "B1-U05-R33", + "en": "investigation", + "zh": "调查" + }, + { + "id": "B1-U05-R34", + "en": "involved", + "zh": "有关联的" + }, + { + "id": "B1-U05-R35", + "en": "motorcycle", + "zh": "摩托车" + }, + { + "id": "B1-U05-R36", + "en": "dial", + "zh": "拨打" + }, + { + "id": "B1-U05-R37", + "en": "lifeguard", + "zh": "救生员" + }, + { + "id": "B1-U05-R38", + "en": "lightning", + "zh": "闪电" + }, + { + "id": "B1-U05-R39", + "en": "loss", + "zh": "丢失" + }, + { + "id": "B1-U05-R40", + "en": "middle-aged", + "zh": "中年的" + }, + { + "id": "B1-U05-R41", + "en": "navy blue", + "zh": "深蓝色" + }, + { + "id": "B1-U05-R42", + "en": "obtain", + "zh": "获得" + }, + { + "id": "B1-U05-R43", + "en": "photocopy", + "zh": "复印件" + }, + { + "id": "B1-U05-R44", + "en": "poisonous", + "zh": "有毒的" + }, + { + "id": "B1-U05-R45", + "en": "preparation", + "zh": "准备" + }, + { + "id": "B1-U05-R46", + "en": "press", + "zh": "按压" + }, + { + "id": "B1-U05-R47", + "en": "prison", + "zh": "监狱" + }, + { + "id": "B1-U05-R48", + "en": "proof", + "zh": "证据" + }, + { + "id": "B1-U05-R49", + "en": "punish", + "zh": "惩罚" + }, + { + "id": "B1-U05-R50", + "en": "react", + "zh": "反应" + }, + { + "id": "B1-U05-R51", + "en": "recovery", + "zh": "康复" + }, + { + "id": "B1-U05-R52", + "en": "register", + "zh": "登记" + }, + { + "id": "B1-U05-R53", + "en": "registration", + "zh": "登记" + }, + { + "id": "B1-U05-R54", + "en": "rescue", + "zh": "救援" + }, + { + "id": "B1-U05-R55", + "en": "safely", + "zh": "安全地" + }, + { + "id": "B1-U05-R56", + "en": "secure", + "zh": "安全的;妥善的" + }, + { + "id": "B1-U05-R57", + "en": "shelter", + "zh": "避难所" + }, + { + "id": "B1-U05-R58", + "en": "stripe", + "zh": "条纹" + }, + { + "id": "B1-U05-R59", + "en": "suspect", + "zh": "嫌疑人" + }, + { + "id": "B1-U05-R60", + "en": "terrified", + "zh": "非常害怕的" + }, + { + "id": "B1-U05-R61", + "en": "thunder", + "zh": "雷" + }, + { + "id": "B1-U05-R62", + "en": "tide", + "zh": "潮水" + }, + { + "id": "B1-U05-R63", + "en": "tornado", + "zh": "龙卷风" + }, + { + "id": "B1-U05-R64", + "en": "trace", + "zh": "追查" + }, + { + "id": "B1-U05-R65", + "en": "tracksuit", + "zh": "运动服" + }, + { + "id": "B1-U05-R66", + "en": "urgent", + "zh": "紧急的" + }, + { + "id": "B1-U05-R67", + "en": "warning", + "zh": "警告" + }, + { + "id": "B1-U05-R68", + "en": "whisper", + "zh": "低声说" + }, + { + "id": "B1-U05-R69", + "en": "witness", + "zh": "目击者" + }, + { + "id": "B1-U05-R70", + "en": "wound", + "zh": "伤口" + }, + { + "id": "B1-U05-R71", + "en": "yell", + "zh": "大喊" + } + ], + "segments": [ + { + "id": "B1-U05-S1", + "title": "报案:说明被偷", + "minutes": 14, + "itemIds": [ + "B1-U05-P01", + "B1-U05-P02", + "B1-U05-P03", + "B1-U05-P04", + "B1-U05-P12" + ], + "listening": { + "text": "Good afternoon. I'd like to report a theft. Someone stole my wallet. It happened about an hour ago on the bus. It was very crowded. A man pushed me, and then he ran away. I didn't see who took it.", + "question": "钱包是在哪里被偷的?", + "options": [ + "在公交车上", + "在酒店里", + "在餐馆里" + ] + }, + "speaking": [ + { + "text": "I'd like to report a theft." + }, + { + "text": "Someone stole my wallet.", + "tip": "stole 读 /stəʊl/" + }, + { + "text": "It happened about an hour ago." + }, + { + "text": "I didn't see who took it." + }, + { + "text": "He ran away with it." + } + ], + "reading": { + "text": "How to report a theft\n1. Go to the nearest police station.\n2. Say \"I'd like to report a theft.\"\n3. Tell the police what happened, when it happened and where.\n4. Describe the person if you saw them.\n5. Ask for a copy of the report.", + "question": "报案时第五步要做什么?", + "options": [ + "要一份报案证明", + "描述那个人", + "去最近的警察局" + ] + }, + "writing": { + "prompt": "写三句话:说你想报案,有人偷了你的钱包,大约一小时前发生的。", + "example": "I'd like to report a theft. Someone stole my wallet. It happened about an hour ago.", + "itemIds": [ + "B1-U05-P01", + "B1-U05-P02", + "B1-U05-P03" + ] + }, + "independent": { + "prompt": "用英语说那个人拿着包跑了,你没看见是谁拿的。", + "itemIds": [ + "B1-U05-P12", + "B1-U05-P04" + ] + } + }, + { + "id": "B1-U05-S2", + "title": "报案证明与冻结银行卡", + "minutes": 10, + "itemIds": [ + "B1-U05-P05", + "B1-U05-P06", + "B1-U05-W01" + ], + "listening": { + "text": "Hello, this is your bank. How can I help? My wallet was stolen, and I need to block my card. OK, I can do that now. Your card is blocked. You should also get a police report for your insurance.", + "question": "银行建议她还要做什么?", + "options": [ + "拿一份报案证明办保险", + "马上换一个钱包", + "去机场问问" + ] + }, + "speaking": [ + { + "text": "I need a police report." + }, + { + "text": "I need to block my card." + }, + { + "text": "I need the report for my insurance.", + "tip": "insurance 读 /ɪnˈʃʊərəns/" + } + ], + "reading": { + "text": "Lost or stolen card?\nCall us 24 hours a day on 0800 123 456. We will block your card at once and send you a new one in 5 to 7 days. If you have travel insurance, ask the police for a police report. You will need it.", + "question": "新卡多久能寄到?", + "options": [ + "5 到 7 天", + "24 小时", + "一个月" + ] + }, + "writing": { + "prompt": "写两句话:说你需要冻结银行卡,还需要一份报案证明。", + "example": "I need to block my card. I also need a police report.", + "itemIds": [ + "B1-U05-P06", + "B1-U05-P05" + ] + }, + "independent": { + "prompt": "用英语说你需要这份证明来办旅游保险。", + "itemIds": [ + "B1-U05-W01" + ] + } + }, + { + "id": "B1-U05-S3", + "title": "护照丢了", + "minutes": 10, + "itemIds": [ + "B1-U05-P07", + "B1-U05-P08", + "B1-U05-W02" + ], + "listening": { + "text": "Excuse me. I've lost my passport, and I'm flying home on Friday. Where is the Chinese embassy? It's on Park Street. They can help you. Can I get a temporary passport there? Yes, but bring two photos and your police report.", + "question": "去大使馆要带什么?", + "options": [ + "两张照片和报案证明", + "机票和银行卡", + "酒店的房卡" + ] + }, + "speaking": [ + { + "text": "I've lost my passport." + }, + { + "text": "Where is the embassy?", + "tip": "embassy 重音在前 /ˈembəsi/" + }, + { + "text": "Can I get a temporary passport?" + } + ], + "reading": { + "text": "Lost your passport abroad?\nFirst, report it to the police and get a police report.\nThen go to your embassy. Bring two passport photos, your police report and a copy of your old passport if you have one.\nThe embassy can give you a temporary passport. It usually takes one to three days.", + "question": "临时护照一般要多久?", + "options": [ + "一到三天", + "两周", + "当天就能拿" + ] + }, + "writing": { + "prompt": "写两句话:说你的护照丢了,问能不能办临时护照。", + "example": "I've lost my passport. Can I get a temporary passport?", + "itemIds": [ + "B1-U05-P07", + "B1-U05-P08" + ] + }, + "independent": { + "prompt": "用英语问中国大使馆在哪里。", + "itemIds": [ + "B1-U05-W02" + ] + } + }, + { + "id": "B1-U05-S4", + "title": "遇到事故", + "minutes": 13, + "itemIds": [ + "B1-U05-P09", + "B1-U05-P10", + "B1-U05-P11", + "B1-U05-W03" + ], + "listening": { + "text": "Emergency. Which service do you need? An ambulance, please. There's been an accident on River Road. A man on a bike is hurt. Is he awake? Yes, he is. OK, the ambulance is coming. Please stay calm and stay with him.", + "question": "受伤的人是谁?", + "options": [ + "一个骑车的男人", + "一个开车的女人", + "一个小孩" + ] + }, + "speaking": [ + { + "text": "There's been an accident." + }, + { + "text": "Someone is hurt." + }, + { + "text": "Please call an ambulance.", + "tip": "ambulance 重音在前 /ˈæmbjələns/" + }, + { + "text": "Please stay calm." + } + ], + "reading": { + "text": "In an emergency\nCall 112 in most of Europe or 911 in the US.\nSay which service you need: police, fire or ambulance.\nSay where you are and what happened, for instance \"There's been an accident.\"\nDon't move a person who is badly hurt.\nStay calm and wait for help.", + "question": "对受重伤的人不应该做什么?", + "options": [ + "移动他", + "陪着他等待", + "打电话求助" + ] + }, + "writing": { + "prompt": "写两句话:说出事故了,有人受伤了。", + "example": "There's been an accident. Someone is hurt.", + "itemIds": [ + "B1-U05-P09", + "B1-U05-P10" + ] + }, + "independent": { + "prompt": "用英语请别人叫救护车,并让伤者保持冷静。", + "itemIds": [ + "B1-U05-W03", + "B1-U05-P11" + ] + } + } + ], + "scenes": [ + { + "id": "B1-U05-C1", + "kind": "main", + "title": "在警察局报案", + "learnerRole": "被偷的游客", + "aiRole": "警察", + "setting": "你在罗马的公交车上钱包被偷了,现在来到警察局。", + "turns": [ + { + "ai": "Good afternoon. How can I help you?", + "goal": "说要报案", + "model": "Hello. I'd like to report a theft.", + "zh": "你好。我想报案,东西被偷了。", + "itemIds": [ + "B1-U05-P01" + ] + }, + { + "ai": "I'm sorry to hear that. What was stolen?", + "goal": "说钱包被偷了", + "model": "Someone stole my wallet. My bank card and some money were in it.", + "zh": "有人偷了我的钱包,里面有银行卡和一些钱。", + "itemIds": [ + "B1-U05-P02" + ] + }, + { + "ai": "When did it happen?", + "goal": "说发生时间和地点", + "model": "It happened about an hour ago, on the number 64 bus.", + "zh": "大约一小时前,在 64 路公交车上。", + "itemIds": [ + "B1-U05-P03" + ] + }, + { + "ai": "Did you see the thief?", + "goal": "说没看见,只知道他跑了", + "model": "No. It was crowded, so I didn't see who took it. I think he ran away at the next stop.", + "zh": "没有。当时人很多,我没看见是谁拿的。我想他在下一站跑了。", + "itemIds": [ + "B1-U05-P04", + "B1-U05-P12" + ] + }, + { + "ai": "OK. Please fill in this form.", + "goal": "要报案证明,说明用途", + "model": "Sure. Can I get a police report? I need it for my insurance.", + "zh": "好的。我能拿一份报案证明吗?我办保险要用。", + "itemIds": [ + "B1-U05-P05", + "B1-U05-W01" + ] + }, + { + "ai": "Yes, of course. It'll be ready in twenty minutes.", + "goal": "道谢", + "model": "Thank you very much.", + "zh": "非常感谢。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U05-C2", + "kind": "variant", + "title": "打电话冻结银行卡", + "learnerRole": "银行卡被偷的客户", + "aiRole": "银行客服", + "setting": "钱包被偷后,你马上给银行打电话。", + "turns": [ + { + "ai": "Good evening, this is the card service. How can I help?", + "goal": "说要冻结卡", + "model": "Hello. Someone stole my wallet, and I need to block my card.", + "zh": "你好。有人偷了我的钱包,我需要冻结卡。", + "itemIds": [ + "B1-U05-P02", + "B1-U05-P06" + ] + }, + { + "ai": "Can you tell me your name and your address?", + "goal": "说出姓名和住址", + "model": "My name is Emma Rossi, and I'm staying at the Park Hotel.", + "zh": "我叫 Emma Rossi,住在 Park 酒店。", + "itemIds": [] + }, + { + "ai": "Thank you. Your card is blocked now. Do you want a new one?", + "goal": "请对方寄新卡到酒店", + "model": "Yes, please. Can you send it to my hotel?", + "zh": "要,请寄到我住的酒店好吗?", + "itemIds": [] + }, + { + "ai": "Sure. It'll take about five days.", + "goal": "道谢", + "model": "That's fine. Thank you for your help.", + "zh": "好的,谢谢你的帮助。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U05-C3", + "kind": "variant", + "title": "在大使馆补办护照", + "learnerRole": "丢了护照的游客", + "aiRole": "大使馆工作人员", + "setting": "你在马德里丢了护照,后天就要回国,现在来到大使馆。", + "turns": [ + { + "ai": "Good morning. Welcome to the embassy. What can I do for you?", + "goal": "说护照丢了", + "model": "Good morning. I've lost my passport, and I'm flying home on Friday.", + "zh": "早上好。我的护照丢了,我周五要坐飞机回家。", + "itemIds": [ + "B1-U05-P07" + ] + }, + { + "ai": "I see. Did you report it to the police?", + "goal": "说已经报案,问能不能办临时护照", + "model": "Yes, here's the police report. Can I get a temporary passport?", + "zh": "报了,这是报案证明。我能办临时护照吗?", + "itemIds": [ + "B1-U05-P05", + "B1-U05-P08" + ] + }, + { + "ai": "Yes. Do you have two photos?", + "goal": "说带了照片", + "model": "Yes, I have two photos here.", + "zh": "带了,这里有两张照片。", + "itemIds": [] + }, + { + "ai": "Good. Please come back on Thursday morning.", + "goal": "确认时间并道谢", + "model": "Thursday morning. Thank you. The embassy was easy to find.", + "zh": "周四上午,谢谢。大使馆很好找。", + "itemIds": [ + "B1-U05-W02" + ] + } + ] + }, + { + "id": "B1-U05-C4", + "kind": "variant", + "title": "打急救电话", + "learnerRole": "看到事故的路人", + "aiRole": "急救电话接线员", + "setting": "你在街上看到一个骑车的人摔倒受伤,你拨打了急救电话。", + "turns": [ + { + "ai": "Emergency. Which service do you need?", + "goal": "要救护车", + "model": "An ambulance, please.", + "zh": "请派救护车。", + "itemIds": [ + "B1-U05-W03" + ] + }, + { + "ai": "What's the problem?", + "goal": "说出了事故", + "model": "There's been an accident on River Road, near the bridge.", + "zh": "River Road 桥边出事故了。", + "itemIds": [ + "B1-U05-P09" + ] + }, + { + "ai": "Is anyone hurt?", + "goal": "说有人受伤", + "model": "Yes. A man on a bike is hurt. His leg is bleeding.", + "zh": "是的,一个骑车的男人受伤了,腿在流血。", + "itemIds": [ + "B1-U05-P10" + ] + }, + { + "ai": "OK. The ambulance is on its way. Is he awake?", + "goal": "说他醒着,你会让他保持冷静", + "model": "Yes, he's awake. I'm telling him to stay calm.", + "zh": "醒着。我正在让他保持冷静。", + "itemIds": [ + "B1-U05-P11" + ] + }, + { + "ai": "Good. Don't move him. Stay with him until help arrives.", + "goal": "答应", + "model": "OK. I'll stay with him.", + "zh": "好的,我会陪着他。", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "B1-U05-T1", + "sceneId": "B1-U05-C1", + "goal": "在警察局报案并拿到报案证明", + "itemIds": [ + "B1-U05-P01", + "B1-U05-P02", + "B1-U05-P03", + "B1-U05-P04", + "B1-U05-P12", + "B1-U05-P05", + "B1-U05-W01" + ], + "slots": [ + "报案", + "经过", + "证明" + ] + }, + { + "id": "B1-U05-T2", + "sceneId": "B1-U05-C2", + "goal": "打电话冻结被偷的银行卡", + "itemIds": [ + "B1-U05-P02", + "B1-U05-P06" + ], + "slots": [ + "情况", + "冻结", + "新卡" + ] + }, + { + "id": "B1-U05-T3", + "sceneId": "B1-U05-C3", + "goal": "在大使馆补办临时护照", + "itemIds": [ + "B1-U05-P07", + "B1-U05-P05", + "B1-U05-P08", + "B1-U05-W02" + ], + "slots": [ + "情况", + "材料", + "时间" + ] + }, + { + "id": "B1-U05-T4", + "sceneId": "B1-U05-C4", + "goal": "打急救电话报告事故", + "itemIds": [ + "B1-U05-W03", + "B1-U05-P09", + "B1-U05-P10", + "B1-U05-P11" + ], + "slots": [ + "服务", + "地点", + "伤情" + ] + } + ], + "materials": [ + { + "id": "B1-U05-M1", + "mode": "listening", + "title": "对话:在警察局报案", + "text": "Officer: Good afternoon. Please take a seat. How can I help you?\nMark: Hi. I'd like to report a theft. Someone stole my wallet about an hour ago, near the fountain in the main square.\nOfficer: I'm sorry. Can you tell me exactly what happened?\nMark: I was taking a photo with my phone, and a young man bumped into me and grabbed my arm for a second. He said sorry, and I didn't think about it. A minute later, I noticed my back pocket was empty. I was shocked.\nOfficer: That's a common trick. Did you see where he went?\nMark: Yes, a woman nearby saw everything. She yelled \"Thief!\", and he ran away down a side street. Two men tried to chase him, but he was too fast.\nOfficer: So there was a witness. Did you get her name?\nMark: Yes, her name is Lisa Park. She gave me her phone number in case you need her.\nOfficer: Great, that's really helpful. Can you describe the man?\nMark: He was middle-aged, maybe forty, not very tall, and bald. He had a beard, and he was wearing a navy blue tracksuit with a white stripe.\nOfficer: That's a good description. We've had several incidents like this in the square this month, and we think the same criminal may be involved. We have a suspect, but so far we don't have any proof.\nMark: Can you trace my wallet? Is there any chance of getting it back?\nOfficer: To be honest, it's not likely. Thieves usually throw away the wallet and keep the cash. But sometimes people find wallets in bins and hand them in, so don't lose hope. Were your cards in it?\nMark: Yes, my bank card and my credit card. I called the bank straight away, and they've blocked both cards.\nOfficer: Good. You reacted quickly. Now I'll write the report. If we arrest him and he's found guilty, he could be punished with up to two years in prison. But first we need to start an investigation.\nMark: I understand. Can I get a copy of the report? I need it for my insurance.\nOfficer: Of course. Here's the reference number. Keep it secure. And a word of caution for the rest of your trip: keep your phone and wallet in a front pocket or in a bag with a zip, and be aware of people who come too close, especially in crowds.\nMark: Thanks for the warning. I'll be more cautious from now on.", + "glosses": { + "trick": "伎俩" + }, + "questions": [ + { + "type": "gist", + "question": "这段对话主要是什么内容?", + "options": [ + "马克在警察局报钱包被偷", + "马克在银行申请新卡", + "马克在广场上找丢了的手机" + ] + }, + { + "type": "detail", + "question": "目击者看到小偷后做了什么?", + "options": [ + "大喊“小偷”并指向他", + "追着小偷跑了两条街", + "马上打了报警电话" + ] + }, + { + "type": "inference", + "question": "警察为什么说拿回钱包的可能性不大?", + "options": [ + "小偷通常拿走现金就把钱包扔掉", + "警察不打算调查这件事", + "马克没有描述小偷的样子" + ] + } + ] + }, + { + "id": "B1-U05-M2", + "mode": "listening", + "title": "广播新闻:暴风雨与救援", + "text": "Good evening. Here is the local news.\nA big storm hit the coast last night, with strong winds, heavy rain, thunder and lightning. Near the town of Porto Bello, a small tornado damaged dozens of houses and pulled trees out of the ground. Nobody died, but it was a disastrous night for many families. One woman told us: \"There was a flash of lightning and a loud bang, and then the windows burst. We were terrified. We stayed under the stairs and waited for it to stop.\" Around two hundred people spent the night in a shelter at the sports hall.\nOn the main road north of the town, a lorry crashed into a car after it slid on the wet road. Firefighters had to cut the driver out of the car. He was taken to hospital with a serious wound to his leg, but doctors say his injury is not deadly and he is expected to make a full recovery. A man on a motorcycle who stopped to help used his scarf as a bandage and kept the driver talking until the ambulance arrived. Police are asking any witnesses to contact them.\nAt the beach, lifeguards carried out a dramatic rescue. Two teenagers ignored the warning signs and went swimming during the storm. The tide was high, and the sea water pulled them away from the beach. One of them managed to hold on to a rock, but his friend was helpless in the rough water. A lifeguard swam out and brought them both back safely. Both boys survived, but one had swallowed a lot of sea water and fainted on the sand. The chief lifeguard said: \"They were lucky. People drown every year on this beach because they don't take the danger seriously. Please, when you see a red flag, stay out of the water.\"\nThere was also an explosion at a restaurant kitchen in the old town this afternoon, caused by a gas leak. The staff heard a strange smell and left the building just in time, so nobody was hurt. It was a shocking experience for everyone in the street.\nThe weather office has issued an urgent warning for tomorrow: more storms are coming, and people should avoid the coast if possible. If you must travel, drive slowly, stay away from the beach and take your phone with you. And if you hear thunder, go inside. Lightning can be a real hazard, even when the rain hasn't started yet.", + "glosses": { + "slid": "滑", + "dramatic": "惊心动魄的", + "flag": "旗子", + "swallowed": "吞下", + "leak": "泄漏" + }, + "questions": [ + { + "type": "gist", + "question": "这段新闻主要报道什么?", + "options": [ + "暴风雨带来的破坏和几起救援", + "一场体育比赛的结果", + "一家新餐厅开业" + ] + }, + { + "type": "detail", + "question": "两个少年为什么会遇险?", + "options": [ + "不顾警示在暴风雨中下海游泳", + "开车时在湿滑路面打滑", + "在厨房里闻到奇怪的气味" + ] + }, + { + "type": "inference", + "question": "救生员主管的话想提醒人们什么?", + "options": [ + "看到红旗就不要下水", + "海滩晚上会关闭", + "救生员人手不够" + ] + } + ] + }, + { + "id": "B1-U05-M3", + "mode": "reading", + "title": "指南:出国遇到紧急情况", + "text": "What to do in an emergency abroad\nNobody plans to have an emergency on holiday, but a little preparation can make a big difference. Here's what you need to know.\nBefore you go\nWrite down the local emergency number: 112 works in most of Europe, and 911 in North America. Save the phone number and address of your embassy. Make a photocopy of your passport and keep it separate from the real one, or save a photo of it on your phone. Buy travel insurance, and check that it pays for hospital costs.\nIf your passport or wallet is stolen\nFirst, don't panic. Go to the police as soon as possible and report the loss. Ask for a police report, because your insurance company will need it. Call your bank to block your cards. Then contact your embassy to obtain a temporary passport. Registration with your embassy is not required, but if you register before your trip, they can contact you quickly in an emergency.\nIf someone is hurt\nDial the emergency number and say clearly where you are. If you don't know the address, describe what you can see. Don't move a person who is badly hurt, unless they are in danger, for instance from traffic or fire. If someone is choking, hit them hard on the back five times. If a wound is bleeding, press a clean cloth on it. If you think someone has eaten something poisonous, fetch the packet so the doctor can see what it was. Stay calm and whisper kind words: your calmness will help the other person too.\nIn bad weather\nListen to local warnings and don't ignore them. In a storm, find shelter in a solid building and stay away from windows. Never try to cross a river when the water is high.\nProtect yourself from crime\nMost cities are safe, but thieves look for tourists who are not paying attention. Keep your bag closed and in front of you in crowds. Don't leave your phone on a restaurant table. Use the hotel safe for your passport and valuables. Avoid dark streets at night, and if someone threatens you, give them what they want. Your safety is more important than your possessions.", + "glosses": { + "panic": "慌张", + "cloth": "布", + "packet": "包装袋", + "threatens": "威胁", + "safety": "安全" + }, + "questions": [ + { + "type": "gist", + "question": "这篇指南主要讲什么?", + "options": [ + "在国外遇到紧急情况怎么办", + "怎样申请旅游签证", + "怎样买便宜的机票" + ] + }, + { + "type": "detail", + "question": "如果有人吃了可能有毒的东西,应该怎么做?", + "options": [ + "把包装拿来给医生看", + "让他躺着别动", + "用干净的布按住" + ] + }, + { + "type": "inference", + "question": "为什么建议遇到抢劫就把东西给对方?", + "options": [ + "人身安全比财物重要", + "警察会马上赶到", + "保险一定会全额赔偿" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "说清经过", + "bands": [ + "说不清发生了什么", + "能说出发生了什么,但缺少时间或地点", + "清楚说明发生了什么、何时、何地和对方特征" + ], + "pass": 1 + }, + { + "name": "提出需要的帮助", + "bands": [ + "没提出要求", + "能提出要求,但不够具体", + "明确提出报案证明、冻结卡、临时护照或救护车等要求" + ], + "pass": 1 + } + ] + }, + "excluded": [] +} diff --git a/kouyu_english/assets/courses/B1/B1-U06.json b/kouyu_english/assets/courses/B1/B1-U06.json new file mode 100644 index 0000000..6dac08b --- /dev/null +++ b/kouyu_english/assets/courses/B1/B1-U06.json @@ -0,0 +1,1320 @@ +{ + "schemaVersion": 1, + "id": "B1-U06", + "revision": 1, + "level": "B1", + "title": "就医", + "categories": [ + "日常", + "旅行" + ], + "canDo": "说明症状变化和病史,理解医嘱要点", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "wang", + "li", + "smith", + "grace", + "patel", + "sam", + "thailand", + "bangkok" + ], + "grammar": [ + { + "id": "62", + "use": "active" + }, + { + "id": "155", + "use": "active" + }, + { + "id": "156", + "use": "active" + }, + { + "id": "139", + "use": "active" + }, + { + "id": "67", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "B1-U06-P01", + "type": "phrase", + "en": "It's not getting any better.", + "zh": "一直没见好。", + "sceneWord": false, + "match": [ + [ + "any better" + ] + ], + "example": { + "en": "I've taken the pills for three days, but it's not getting any better.", + "zh": "药吃了三天,可是一点没见好。" + }, + "review": { + "prompt": "告诉医生你的咳嗽一直没好转。" + } + }, + { + "id": "B1-U06-P02", + "type": "phrase", + "en": "The pain comes and goes.", + "zh": "疼痛时有时无。", + "sceneWord": false, + "match": [ + [ + "comes and goes", + "come and go" + ] + ], + "example": { + "en": "The pain comes and goes, but it's worse at night.", + "zh": "疼痛时有时无,晚上更厉害。" + }, + "review": { + "prompt": "说你的头疼时好时坏。" + } + }, + { + "id": "B1-U06-P03", + "type": "phrase", + "en": "I've had this problem before.", + "zh": "我以前有过这个毛病。", + "sceneWord": false, + "match": [ + [ + "had this before", + "had this problem before", + "had it before" + ] + ], + "example": { + "en": "I've had this problem before, when I was a student.", + "zh": "我上学时有过这个毛病。" + }, + "review": { + "prompt": "告诉医生你以前也出现过这种情况。" + } + }, + { + "id": "B1-U06-P04", + "type": "phrase", + "en": "I'm allergic to some medicines.", + "zh": "我对某些药过敏。", + "sceneWord": false, + "match": [ + [ + "allergic to" + ] + ], + "example": { + "en": "I'm allergic to nuts and some medicines.", + "zh": "我对坚果和某些药过敏。" + }, + "review": { + "prompt": "说你对某种药过敏。" + } + }, + { + "id": "B1-U06-P05", + "type": "phrase", + "en": "I have high blood pressure.", + "zh": "我有高血压。", + "sceneWord": false, + "match": [ + [ + "blood pressure" + ] + ], + "example": { + "en": "I take a pill for high blood pressure every morning.", + "zh": "我每天早上吃一片降压药。" + }, + "review": { + "prompt": "告诉医生你有高血压。" + } + }, + { + "id": "B1-U06-P06", + "type": "phrase", + "en": "I had an operation last year.", + "zh": "我去年做过手术。", + "sceneWord": false, + "match": [ + [ + "an operation" + ] + ], + "example": { + "en": "I had an operation on my knee two years ago.", + "zh": "我两年前膝盖做过手术。" + }, + "review": { + "prompt": "说你三年前做过一次手术。" + } + }, + { + "id": "B1-U06-P07", + "type": "phrase", + "en": "Is it serious?", + "zh": "严重吗?", + "sceneWord": false, + "match": [ + [ + "is it serious", + "is this serious" + ] + ], + "example": { + "en": "Is it serious, or will it get better by itself?", + "zh": "严重吗,还是会自己好?" + }, + "review": { + "prompt": "问医生情况严不严重。" + } + }, + { + "id": "B1-U06-P08", + "type": "phrase", + "en": "How long will it take to get better?", + "zh": "多久能好?", + "sceneWord": false, + "match": [ + [ + "get better" + ] + ], + "example": { + "en": "How long will it take to get better if I rest?", + "zh": "如果我休息,多久能好?" + }, + "review": { + "prompt": "问医生多久能康复。" + } + }, + { + "id": "B1-U06-P09", + "type": "phrase", + "en": "Can I still fly?", + "zh": "我还能坐飞机吗?", + "sceneWord": false, + "match": [ + [ + "still fly", + "still travel" + ] + ], + "example": { + "en": "I'm flying home on Sunday. Can I still fly?", + "zh": "我周日要坐飞机回家,还能坐吗?" + }, + "review": { + "prompt": "问医生你还能不能继续旅行。" + } + }, + { + "id": "B1-U06-P10", + "type": "phrase", + "en": "Take it with food.", + "zh": "随餐服用。", + "sceneWord": false, + "match": [ + [ + "with food" + ] + ], + "example": { + "en": "Take one tablet twice a day with food.", + "zh": "每天两次,每次一片,随餐服用。" + }, + "review": { + "prompt": "说这药要随餐服用。" + } + }, + { + "id": "B1-U06-P11", + "type": "phrase", + "en": "Don't drink alcohol while you're taking it.", + "zh": "服药期间别喝酒。", + "sceneWord": false, + "match": [ + [ + "while you're taking", + "while you are taking", + "while i'm taking", + "while i am taking" + ] + ], + "example": { + "en": "Don't drive while you're taking these pills.", + "zh": "吃这些药期间别开车。" + }, + "review": { + "prompt": "提醒朋友吃药期间不要喝酒。" + } + }, + { + "id": "B1-U06-P12", + "type": "phrase", + "en": "Come back if it gets worse.", + "zh": "如果加重了再来。", + "sceneWord": false, + "match": [ + [ + "if it gets worse", + "if it doesn't get better" + ] + ], + "example": { + "en": "Call me if it gets worse or if you have a high fever.", + "zh": "如果加重或发高烧就给我打电话。" + }, + "review": { + "prompt": "转告朋友:医生说加重了就再去。" + } + }, + { + "id": "B1-U06-W01", + "type": "word", + "en": "appetite", + "zh": "胃口;食欲", + "sceneWord": false, + "match": [ + [ + "appetite" + ] + ], + "example": { + "en": "I've lost my appetite, and I'm always tired.", + "zh": "我没胃口,总是很累。" + }, + "review": { + "prompt": "说你最近没有胃口。" + } + }, + { + "id": "B1-U06-W02", + "type": "word", + "en": "symptom", + "zh": "症状", + "sceneWord": false, + "match": [ + [ + "symptom", + "symptoms" + ] + ], + "example": { + "en": "What are your symptoms?", + "zh": "你有什么症状?" + }, + "review": { + "prompt": "问朋友有什么症状。" + } + }, + { + "id": "B1-U06-W03", + "type": "word", + "en": "prescription", + "zh": "处方", + "sceneWord": false, + "match": [ + [ + "prescription", + "prescriptions" + ] + ], + "example": { + "en": "You need a prescription for this medicine.", + "zh": "这种药要凭处方买。" + }, + "review": { + "prompt": "说这种药需要处方。" + } + } + ], + "receptiveWords": [ + { + "id": "B1-U06-R01", + "en": "ache", + "zh": "疼痛" + }, + { + "id": "B1-U06-R02", + "en": "aerobics", + "zh": "有氧操" + }, + { + "id": "B1-U06-R03", + "en": "affect", + "zh": "影响" + }, + { + "id": "B1-U06-R04", + "en": "anxiety", + "zh": "焦虑" + }, + { + "id": "B1-U06-R05", + "en": "aspirin", + "zh": "阿司匹林" + }, + { + "id": "B1-U06-R06", + "en": "backache", + "zh": "背疼" + }, + { + "id": "B1-U06-R07", + "en": "beat", + "zh": "跳动" + }, + { + "id": "B1-U06-R08", + "en": "courage", + "zh": "勇气" + }, + { + "id": "B1-U06-R09", + "en": "cure", + "zh": "治愈" + }, + { + "id": "B1-U06-R10", + "en": "depressed", + "zh": "抑郁的" + }, + { + "id": "B1-U06-R11", + "en": "discomfort", + "zh": "不适" + }, + { + "id": "B1-U06-R12", + "en": "disease", + "zh": "疾病" + }, + { + "id": "B1-U06-R13", + "en": "effective", + "zh": "有效的" + }, + { + "id": "B1-U06-R14", + "en": "elbow", + "zh": "肘" + }, + { + "id": "B1-U06-R15", + "en": "examine", + "zh": "检查" + }, + { + "id": "B1-U06-R16", + "en": "finger", + "zh": "手指" + }, + { + "id": "B1-U06-R17", + "en": "fitness", + "zh": "健康;体能" + }, + { + "id": "B1-U06-R18", + "en": "heal", + "zh": "愈合;痊愈" + }, + { + "id": "B1-U06-R19", + "en": "illness", + "zh": "疾病" + }, + { + "id": "B1-U06-R20", + "en": "infection", + "zh": "感染" + }, + { + "id": "B1-U06-R21", + "en": "intensive", + "zh": "高强度的" + }, + { + "id": "B1-U06-R22", + "en": "jog", + "zh": "慢跑" + }, + { + "id": "B1-U06-R23", + "en": "jogging", + "zh": "慢跑" + }, + { + "id": "B1-U06-R24", + "en": "lung", + "zh": "肺" + }, + { + "id": "B1-U06-R25", + "en": "meditate", + "zh": "冥想" + }, + { + "id": "B1-U06-R26", + "en": "meditation", + "zh": "冥想" + }, + { + "id": "B1-U06-R27", + "en": "mental", + "zh": "精神的;心理的" + }, + { + "id": "B1-U06-R28", + "en": "mild", + "zh": "轻微的" + }, + { + "id": "B1-U06-R29", + "en": "minor", + "zh": "小的;次要的" + }, + { + "id": "B1-U06-R30", + "en": "mosquito", + "zh": "蚊子" + }, + { + "id": "B1-U06-R31", + "en": "muscle", + "zh": "肌肉" + }, + { + "id": "B1-U06-R32", + "en": "nap", + "zh": "小睡" + }, + { + "id": "B1-U06-R33", + "en": "oily", + "zh": "油腻的" + }, + { + "id": "B1-U06-R34", + "en": "painful", + "zh": "疼痛的" + }, + { + "id": "B1-U06-R35", + "en": "pale", + "zh": "苍白的" + }, + { + "id": "B1-U06-R36", + "en": "pattern", + "zh": "规律;模式" + }, + { + "id": "B1-U06-R37", + "en": "pregnant", + "zh": "怀孕的" + }, + { + "id": "B1-U06-R38", + "en": "properly", + "zh": "好好地;正确地" + }, + { + "id": "B1-U06-R39", + "en": "reduce", + "zh": "减少" + }, + { + "id": "B1-U06-R40", + "en": "rely", + "zh": "依靠" + }, + { + "id": "B1-U06-R41", + "en": "remedy", + "zh": "疗法;办法" + }, + { + "id": "B1-U06-R42", + "en": "severe", + "zh": "严重的" + }, + { + "id": "B1-U06-R43", + "en": "sharp", + "zh": "剧烈的;尖锐的" + }, + { + "id": "B1-U06-R44", + "en": "sickness", + "zh": "疾病;呕吐" + }, + { + "id": "B1-U06-R45", + "en": "skin", + "zh": "皮肤" + }, + { + "id": "B1-U06-R46", + "en": "slight", + "zh": "轻微的" + }, + { + "id": "B1-U06-R47", + "en": "specialist", + "zh": "专科医生" + }, + { + "id": "B1-U06-R48", + "en": "spoil", + "zh": "破坏" + }, + { + "id": "B1-U06-R49", + "en": "stress", + "zh": "压力" + }, + { + "id": "B1-U06-R50", + "en": "stressed", + "zh": "有压力的" + }, + { + "id": "B1-U06-R51", + "en": "stretch", + "zh": "伸展" + }, + { + "id": "B1-U06-R52", + "en": "suffer", + "zh": "受苦;患病" + }, + { + "id": "B1-U06-R53", + "en": "swell", + "zh": "肿胀" + }, + { + "id": "B1-U06-R54", + "en": "thumb", + "zh": "拇指" + }, + { + "id": "B1-U06-R55", + "en": "treat", + "zh": "治疗" + }, + { + "id": "B1-U06-R56", + "en": "treatment", + "zh": "治疗" + }, + { + "id": "B1-U06-R57", + "en": "unwell", + "zh": "不舒服的" + }, + { + "id": "B1-U06-R58", + "en": "virus", + "zh": "病毒" + }, + { + "id": "B1-U06-R59", + "en": "weakness", + "zh": "弱点;软弱" + }, + { + "id": "B1-U06-R60", + "en": "workout", + "zh": "锻炼" + }, + { + "id": "B1-U06-R61", + "en": "wrist", + "zh": "手腕" + }, + { + "id": "B1-U06-R62", + "en": "nutrition", + "zh": "营养" + }, + { + "id": "B1-U06-R63", + "en": "sleeve", + "zh": "袖子" + }, + { + "id": "B1-U06-R64", + "en": "eyesight", + "zh": "视力" + }, + { + "id": "B1-U06-R65", + "en": "deaf", + "zh": "聋的" + }, + { + "id": "B1-U06-R66", + "en": "blind", + "zh": "盲的" + }, + { + "id": "B1-U06-R67", + "en": "surgery", + "zh": "手术" + }, + { + "id": "B1-U06-R68", + "en": "forehead", + "zh": "额头" + }, + { + "id": "B1-U06-R69", + "en": "tongue", + "zh": "舌头" + }, + { + "id": "B1-U06-R70", + "en": "liver", + "zh": "肝" + }, + { + "id": "B1-U06-R71", + "en": "moderate", + "zh": "适度的" + }, + { + "id": "B1-U06-R72", + "en": "regain", + "zh": "恢复" + }, + { + "id": "B1-U06-R73", + "en": "yoga", + "zh": "瑜伽" + } + ], + "segments": [ + { + "id": "B1-U06-S1", + "title": "说明症状变化", + "minutes": 12, + "itemIds": [ + "B1-U06-P01", + "B1-U06-P02", + "B1-U06-W01", + "B1-U06-W02" + ], + "listening": { + "text": "What are your symptoms? I've had a cough for a week, and it's not getting any better. I also have a pain in my chest. The pain comes and goes. And I've lost my appetite.", + "question": "病人没有提到哪个症状?", + "options": [ + "发烧", + "咳嗽", + "胸口疼" + ] + }, + "speaking": [ + { + "text": "It's not getting any better." + }, + { + "text": "The pain comes and goes." + }, + { + "text": "I've lost my appetite.", + "tip": "appetite 重音在前 /ˈæpɪtaɪt/" + }, + { + "text": "My symptoms started a week ago.", + "tip": "symptom 读 /ˈsɪmptəm/" + } + ], + "reading": { + "text": "Before you see the doctor\nThink about these questions:\nWhat are your symptoms?\nWhen did they start?\nIs it getting better or worse?\nDoes the pain stay all the time, or does it come and go?\nHave you lost your appetite?", + "question": "这张提示卡的作用是什么?", + "options": [ + "帮你准备好向医生说明情况", + "教你自己买药", + "告诉你医院在哪里" + ] + }, + "writing": { + "prompt": "写两句话:说你的咳嗽一直没好转,疼痛时有时无。", + "example": "My cough is not getting any better. The pain comes and goes.", + "itemIds": [ + "B1-U06-P01", + "B1-U06-P02" + ] + }, + "independent": { + "prompt": "用英语说你的症状,并说最近没胃口。", + "itemIds": [ + "B1-U06-W02", + "B1-U06-W01" + ] + } + }, + { + "id": "B1-U06-S2", + "title": "说明病史", + "minutes": 12, + "itemIds": [ + "B1-U06-P03", + "B1-U06-P04", + "B1-U06-P05", + "B1-U06-P06" + ], + "listening": { + "text": "Have you had this before? Yes, I've had this problem before. Do you take any medicine? Yes, I have high blood pressure. Are you allergic to anything? I'm allergic to some medicines. And I had an operation on my knee last year.", + "question": "病人去年做过什么手术?", + "options": [ + "膝盖手术", + "心脏手术", + "眼睛手术" + ] + }, + "speaking": [ + { + "text": "I've had this problem before." + }, + { + "text": "I'm allergic to some medicines.", + "tip": "allergic 读 /əˈlɜːdʒɪk/" + }, + { + "text": "I have high blood pressure." + }, + { + "text": "I had an operation last year." + } + ], + "reading": { + "text": "Patient form\nName: Wang Li\nHave you had this problem before? Yes, two years ago\nAre you allergic to any medicine? Yes\nDo you have high blood pressure? Yes\nHave you had an operation? Yes, on my knee, last year\nAre you taking any medicine now? Yes, one pill every morning", + "question": "王丽现在吃药吗?", + "options": [ + "每天早上吃一片", + "不吃任何药", + "每天晚上吃两片" + ] + }, + "writing": { + "prompt": "写两句话:说你有高血压,去年做过手术。", + "example": "I have high blood pressure. I had an operation last year.", + "itemIds": [ + "B1-U06-P05", + "B1-U06-P06" + ] + }, + "independent": { + "prompt": "用英语说你以前有过这个毛病,并且对某些药过敏。", + "itemIds": [ + "B1-U06-P03", + "B1-U06-P04" + ] + } + }, + { + "id": "B1-U06-S3", + "title": "问医生问题", + "minutes": 10, + "itemIds": [ + "B1-U06-P07", + "B1-U06-P08", + "B1-U06-P09" + ], + "listening": { + "text": "Is it serious? No, it's not serious. It's a bad cold. How long will it take to get better? About a week. I'm flying home on Friday. Can I still fly? Yes, you can still fly, but drink lots of water.", + "question": "医生说多久能好?", + "options": [ + "大约一周", + "两三天", + "一个月" + ] + }, + "speaking": [ + { + "text": "Is it serious?" + }, + { + "text": "How long will it take to get better?" + }, + { + "text": "Can I still fly?", + "tip": "still fly 连读" + } + ], + "reading": { + "text": "Questions to ask your doctor\nIs it serious?\nWhat should I do at home?\nHow long will it take to get better?\nCan I still travel or fly?\nWhen should I come back?\nIt is a good idea to write down the answers.", + "question": "文中建议怎么做?", + "options": [ + "把医生的回答写下来", + "只问一个问题", + "回家再上网查" + ] + }, + "writing": { + "prompt": "写两句话:问医生严不严重,多久能好。", + "example": "Is it serious? How long will it take to get better?", + "itemIds": [ + "B1-U06-P07", + "B1-U06-P08" + ] + }, + "independent": { + "prompt": "用英语问医生你还能不能坐飞机。", + "itemIds": [ + "B1-U06-P09" + ] + } + }, + { + "id": "B1-U06-S4", + "title": "理解医嘱", + "minutes": 12, + "itemIds": [ + "B1-U06-P10", + "B1-U06-P11", + "B1-U06-P12", + "B1-U06-W03" + ], + "listening": { + "text": "Here's your prescription. Take one tablet twice a day with food. Don't drink alcohol while you're taking it. You should feel better in three days. Come back if it gets worse.", + "question": "药应该怎么吃?", + "options": [ + "每天两次,随餐服用", + "每天一次,睡前服用", + "每天三次,饭前服用" + ] + }, + "speaking": [ + { + "text": "Take it with food." + }, + { + "text": "Don't drink alcohol while you're taking it." + }, + { + "text": "Come back if it gets worse." + }, + { + "text": "Here's your prescription.", + "tip": "prescription 读 /prɪˈskrɪpʃn/" + } + ], + "reading": { + "text": "On the medicine box\nTake 1 tablet twice a day with food.\nDon't drink alcohol while you're taking it.\nIt can make you sleepy. Don't drive.\nIf it gets worse, or if you feel dizzy, stop taking it and see your doctor.\nYou can only buy this medicine with a prescription.", + "question": "如果感觉头晕应该怎么做?", + "options": [ + "停药并去看医生", + "多吃一片", + "喝点酒再睡" + ] + }, + "writing": { + "prompt": "写两句话:说这药要随餐服用,吃药期间不能喝酒。", + "example": "Take it with food. Don't drink alcohol while you're taking it.", + "itemIds": [ + "B1-U06-P10", + "B1-U06-P11" + ] + }, + "independent": { + "prompt": "用英语说医生开了处方,加重了要再去看。", + "itemIds": [ + "B1-U06-W03", + "B1-U06-P12" + ] + } + } + ], + "scenes": [ + { + "id": "B1-U06-C1", + "kind": "main", + "title": "在诊所说明症状和病史", + "learnerRole": "病人", + "aiRole": "医生", + "setting": "你在泰国旅行时咳嗽胸痛一周了,来到当地诊所看医生。", + "turns": [ + { + "ai": "Hello. Please sit down. What are your symptoms?", + "goal": "说明症状", + "model": "My main symptom is a bad cough. I've had it for a week, and I've lost my appetite.", + "zh": "主要症状是咳嗽得厉害,已经一周了,而且没胃口。", + "itemIds": [ + "B1-U06-W02", + "B1-U06-W01" + ] + }, + { + "ai": "Has it changed at all?", + "goal": "说一直没好转,疼痛时有时无", + "model": "It's not getting any better. I also have a pain in my chest. It comes and goes.", + "zh": "一直没见好。胸口也疼,时有时无。", + "itemIds": [ + "B1-U06-P01", + "B1-U06-P02" + ] + }, + { + "ai": "Have you had this problem before?", + "goal": "说以前有过,并说过敏", + "model": "Yes, I've had this problem before. And I'm allergic to some medicines.", + "zh": "以前有过。另外我对某些药过敏。", + "itemIds": [ + "B1-U06-P03", + "B1-U06-P04" + ] + }, + { + "ai": "Thanks for telling me. Let me check your chest.", + "goal": "问严不严重", + "model": "Is it serious?", + "zh": "严重吗?", + "itemIds": [ + "B1-U06-P07" + ] + }, + { + "ai": "No, it's not serious. It's an infection, and you need to rest.", + "goal": "问还能不能坐飞机", + "model": "I'm flying home on Sunday. Can I still fly?", + "zh": "我周日要坐飞机回家。还能坐吗?", + "itemIds": [ + "B1-U06-P09" + ] + }, + { + "ai": "Yes, but rest for two days first.", + "goal": "道谢", + "model": "OK. Thank you, doctor.", + "zh": "好的,谢谢医生。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U06-C2", + "kind": "variant", + "title": "护士问病史", + "learnerRole": "病人", + "aiRole": "护士", + "setting": "看医生之前,护士先问你的病史。", + "turns": [ + { + "ai": "Good morning. Are you taking any medicine at the moment?", + "goal": "说有高血压并在吃药", + "model": "Yes. I have high blood pressure, so I take a pill every morning.", + "zh": "是的。我有高血压,每天早上吃一片药。", + "itemIds": [ + "B1-U06-P05" + ] + }, + { + "ai": "OK. Have you ever had an operation?", + "goal": "说去年做过手术", + "model": "Yes, I had an operation on my knee last year.", + "zh": "有,我去年膝盖做过手术。", + "itemIds": [ + "B1-U06-P06" + ] + }, + { + "ai": "Are you allergic to anything?", + "goal": "说对某些药过敏", + "model": "Yes, I'm allergic to some medicines. I have the names here.", + "zh": "是的,我对某些药过敏。药名我写在这里。", + "itemIds": [ + "B1-U06-P04" + ] + }, + { + "ai": "Thank you. The doctor will see you soon.", + "goal": "道谢", + "model": "Thank you.", + "zh": "谢谢。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U06-C3", + "kind": "variant", + "title": "在药店理解医嘱", + "learnerRole": "病人", + "aiRole": "药店工作人员", + "setting": "你拿着医生开的处方来到药店拿药。", + "turns": [ + { + "ai": "Hello. Can I help you?", + "goal": "递上处方", + "model": "Hi. Here's my prescription.", + "zh": "你好,这是我的处方。", + "itemIds": [ + "B1-U06-W03" + ] + }, + { + "ai": "Thank you. Take one tablet twice a day.", + "goal": "确认是否随餐服用", + "model": "Should I take it with food?", + "zh": "要随餐吃吗?", + "itemIds": [ + "B1-U06-P10" + ] + }, + { + "ai": "Yes, with food. And don't drink alcohol while you're taking it.", + "goal": "复述并确认", + "model": "OK, so don't drink alcohol while you're taking it. How long will it take to get better?", + "zh": "好的,就是说服药期间别喝酒。多久能好?", + "itemIds": [ + "B1-U06-P11", + "B1-U06-P08" + ] + }, + { + "ai": "You should feel better in three or four days.", + "goal": "确认加重时怎么办", + "model": "And I should go back to the doctor if it gets worse, right?", + "zh": "如果加重了我应该再去看医生,对吧?", + "itemIds": [ + "B1-U06-P12" + ] + }, + { + "ai": "That's right.", + "goal": "道谢", + "model": "Great. Thanks for your help.", + "zh": "好的,谢谢你的帮助。", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "B1-U06-T1", + "sceneId": "B1-U06-C1", + "goal": "在诊所说明症状变化和病史并询问情况", + "itemIds": [ + "B1-U06-W02", + "B1-U06-W01", + "B1-U06-P01", + "B1-U06-P02", + "B1-U06-P03", + "B1-U06-P04", + "B1-U06-P07", + "B1-U06-P09" + ], + "slots": [ + "症状", + "变化", + "病史", + "问题" + ] + }, + { + "id": "B1-U06-T2", + "sceneId": "B1-U06-C2", + "goal": "回答护士关于病史的问题", + "itemIds": [ + "B1-U06-P05", + "B1-U06-P06", + "B1-U06-P04" + ], + "slots": [ + "用药", + "手术", + "过敏" + ] + }, + { + "id": "B1-U06-T3", + "sceneId": "B1-U06-C3", + "goal": "在药店确认服药要求", + "itemIds": [ + "B1-U06-W03", + "B1-U06-P10", + "B1-U06-P11", + "B1-U06-P08", + "B1-U06-P12" + ], + "slots": [ + "处方", + "服法", + "注意事项" + ] + } + ], + "materials": [ + { + "id": "B1-U06-M1", + "mode": "listening", + "title": "对话:在诊所看病", + "text": "Doctor: Good afternoon. I'm Dr Patel. What seems to be the problem?\nSam: Hi. I've had a sore throat and a cough for about five days, and it's not getting any better. Yesterday I had a slight fever, and today I feel very unwell.\nDoctor: I see. Any other symptoms?\nSam: I've got a headache, and my muscles ache all over. I've also lost my appetite. I haven't eaten properly for two days. And there's a pain in my chest when I cough. It comes and goes.\nDoctor: Is the pain sharp, or is it more like discomfort?\nSam: It's quite sharp when I cough, but otherwise it's mild.\nDoctor: OK. Let me examine you. Breathe in deeply... and out. Again. Your lungs sound a bit noisy. You look quite pale too. Have you had this problem before?\nSam: I had a chest infection two years ago, and it was similar.\nDoctor: Do you have any other health problems? Anything like high blood pressure?\nSam: No, but I'm allergic to penicillin. I had a severe reaction once, and my face started to swell.\nDoctor: That's important to know. Thank you. Have you had any operations?\nSam: Just one, on my wrist, after I broke it playing football.\nDoctor: Right. I think this is a virus, not a serious disease. Your body needs time to heal. The good news is that it doesn't usually need any treatment apart from rest. But because you've had chest infections before, I'm going to give you something just in case.\nSam: Is it serious?\nDoctor: No, I don't think so. But if it gets worse, you may need to see a specialist. Here's your prescription. It's not penicillin, so it's safe for you. Take one tablet three times a day with food. Don't drink alcohol while you're taking it. And you can take aspirin for the headache and muscle aches.\nSam: How long will it take to get better?\nDoctor: Most people make a full recovery in about a week. Drink plenty of water, and try to sleep as much as possible. A short nap in the afternoon will help too.\nSam: I'm supposed to go on a trip to the islands next week. Can I still travel?\nDoctor: Let's see how you feel. Don't make any decision now. Come back on Friday, or sooner if your fever goes above 39 degrees or you find it hard to breathe.\nSam: OK. Thanks, doctor.", + "glosses": { + "throat": "喉咙", + "penicillin": "青霉素", + "reaction": "反应", + "supposed": "应该;原定" + }, + "questions": [ + { + "type": "gist", + "question": "这段对话主要是什么内容?", + "options": [ + "山姆向医生说明病情并听取医嘱", + "山姆在药店买感冒药", + "山姆帮朋友预约医生" + ] + }, + { + "type": "detail", + "question": "山姆对什么过敏?", + "options": [ + "青霉素", + "阿司匹林", + "坚果" + ] + }, + { + "type": "inference", + "question": "医生为什么还是给山姆开了药?", + "options": [ + "他以前得过胸部感染", + "他的病是很严重的疾病", + "他马上要做手术" + ] + } + ] + }, + { + "id": "B1-U06-M2", + "mode": "listening", + "title": "电台节目:压力与睡眠", + "text": "Good morning, and welcome to Health Matters. Today we're talking about stress. Stress is part of normal life, and a little stress can even help us. But when it continues for weeks or months, it can affect our physical and mental health.\nSo what are the signs? Many people get headaches or a backache, and some suffer from stomach problems. Others find it hard to sleep, or they wake up at 4 a.m. and can't stop thinking. You may feel tired all the time, lose your appetite, or eat too much. Some people feel anxious or depressed, and they lose interest in things they used to enjoy. Anxiety can also make your heart beat fast and make you feel short of breath.\nThe first step is to notice your stress. Keep a short diary for a week. Write down when you feel stressed and why. You'll probably see a pattern.\nThe second step is to look after your body. Regular, moderate exercise is one of the best remedies. You don't need to join a gym or do an intensive workout every day. Thirty minutes of walking, jogging or cycling is enough. Many people who listen to our show say that yoga or aerobics classes have improved their fitness and helped them relax. Try to stretch for five minutes every morning, especially if you sit at a desk all day.\nNutrition matters too. Eat regular meals with plenty of fresh fruit and vegetables, and don't rely on coffee to keep you going. Reduce sugar and oily food, and don't drink alcohol to help you sleep. Too much alcohol is also bad for your liver. It might help you fall asleep, but you'll wake up more often during the night.\nThe third step is to calm your mind. Meditation doesn't cure stress, but it can reduce it. Just sit quietly for ten minutes, close your eyes and breathe slowly. If you find it hard to meditate, listen to soft music or take a warm bath. And turn off your phone an hour before bed. A short nap after lunch is fine, but don't sleep for more than twenty minutes, or you'll find it harder to sleep at night.\nFinally, talk to someone. Stress can make people feel lonely. Share your worries with a friend or a family member. And if you feel very low for more than two weeks, please see your doctor. Mental illness is not a weakness, and there are effective treatments. Asking for help takes courage, but it's the first step to recovery.", + "glosses": { + "physical": "身体的", + "diary": "日记" + }, + "questions": [ + { + "type": "gist", + "question": "这个节目主要讲什么?", + "options": [ + "压力的表现和应对方法", + "怎样减肥", + "怎样找一个好医生" + ] + }, + { + "type": "detail", + "question": "节目建议午睡不超过多久?", + "options": [ + "二十分钟", + "半小时", + "一个小时" + ] + }, + { + "type": "inference", + "question": "为什么说不要靠喝酒帮助睡觉?", + "options": [ + "夜里更容易醒", + "酒太贵了", + "医生不喜欢" + ] + } + ] + }, + { + "id": "B1-U06-M3", + "mode": "reading", + "title": "指南:旅行中的健康问题", + "text": "Staying healthy when you travel\nMost travel health problems are mild, but some can spoil your trip. Here's how to deal with the most common ones.\nStomach problems\nThis is the most common sickness among travelers, and it can be very tiring. It is usually caused by dirty water or food that has not been cooked properly. Drink bottled water, avoid ice, and be careful with salads and fruit you can't peel. If you get sick, drink plenty of liquids. Rest, and you'll soon regain your strength. Most people feel better in two or three days. See a doctor if you have a high fever, or if it continues for more than three days.\nInsect bites\nIn hot countries, mosquitoes can carry diseases. Wear long sleeves and trousers in the evening and use insect spray. If a bite turns red, painful and starts to swell, it may be an infection, so see a doctor.\nSun and heat\nProtect your skin with sun cream and a hat, especially between 11 a.m. and 3 p.m. Heat can make you feel weak, dizzy or sick. Touch your forehead: if it's very hot, you may have a fever. If this happens, move to a cool place, drink water and rest.\nAccidents\nSmall injuries, like a cut finger or a twisted ankle, can often be treated at a pharmacy. But if you hurt your head, or if you can't move your elbow, wrist or thumb, go to a hospital. You may need a scan.\nBefore you go\nIf you have a health condition, for instance high blood pressure, ask your doctor for advice before you travel, and take enough medicine for the whole trip. Keep it in your hand luggage, with a copy of your prescription. If you are pregnant, check that your insurance will pay if something happens, and ask your doctor if it's safe to fly. If you wear glasses because of poor eyesight, take an extra pair. Travelers who are deaf or blind can ask airlines and hotels for help before they arrive. If you need surgery abroad, call your insurance company first. Some medicine is not allowed in certain countries, so check before you go.\nFinding a doctor\nYour hotel can usually recommend a doctor who speaks English. In many countries, the staff at a pharmacy can examine you and give advice for minor problems, so a pharmacy is often a good first stop. For severe pain, if someone's tongue starts to swell after eating, or if someone faints or has difficulty breathing, call an ambulance immediately.", + "glosses": { + "peel": "剥皮", + "insect": "昆虫", + "spray": "喷雾", + "twisted": "扭伤的" + }, + "questions": [ + { + "type": "gist", + "question": "这篇指南主要讲什么?", + "options": [ + "旅行中常见的健康问题和处理办法", + "怎样买旅游保险", + "热带国家的美食" + ] + }, + { + "type": "detail", + "question": "被蚊子叮后什么情况要看医生?", + "options": [ + "发红、疼并肿起来", + "有一点痒", + "叮在腿上" + ] + }, + { + "type": "inference", + "question": "为什么药店常常是很好的第一站?", + "options": [ + "药剂师可以检查并给出小病建议", + "药店的药都免费", + "药店总是在酒店里面" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "说明病情", + "bands": [ + "说不清哪里不舒服", + "能说出症状,但没说变化或病史", + "清楚说明症状、变化、病史和过敏情况" + ], + "pass": 1 + }, + { + "name": "理解并确认医嘱", + "bands": [ + "没理解医嘱", + "能理解部分医嘱,但没有确认", + "准确复述服法和注意事项,并问清康复时间" + ], + "pass": 1 + } + ] + }, + "excluded": [] +} diff --git a/kouyu_english/assets/courses/B1/B1-U07.json b/kouyu_english/assets/courses/B1/B1-U07.json new file mode 100644 index 0000000..a6af7fd --- /dev/null +++ b/kouyu_english/assets/courses/B1/B1-U07.json @@ -0,0 +1,1307 @@ +{ + "schemaVersion": 1, + "id": "B1-U07", + "revision": 1, + "level": "B1", + "title": "投诉与协商", + "categories": [ + "日常", + "旅行" + ], + "canDo": "要求退款或补偿,谈出解决办法", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "sunny", + "bay", + "helen", + "brown", + "david", + "green", + "jake", + "greenway", + "kate", + "ali" + ], + "grammar": [ + { + "id": "142", + "use": "active" + }, + { + "id": "156", + "use": "active" + }, + { + "id": "139", + "use": "active" + }, + { + "id": "62", + "use": "active" + }, + { + "id": "215", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "B1-U07-P01", + "type": "phrase", + "en": "I'd like to make a complaint.", + "zh": "我想投诉。", + "sceneWord": false, + "match": [ + [ + "make a complaint" + ] + ], + "example": { + "en": "I'd like to make a complaint about my room.", + "zh": "我想投诉我的房间。" + }, + "review": { + "prompt": "在酒店前台说你想投诉。" + } + }, + { + "id": "B1-U07-P02", + "type": "phrase", + "en": "I'm not satisfied with the room.", + "zh": "我对房间不满意。", + "sceneWord": false, + "match": [ + [ + "not satisfied with", + "not happy with" + ] + ], + "example": { + "en": "We're not satisfied with the service.", + "zh": "我们对服务不满意。" + }, + "review": { + "prompt": "说你对这次的维修不满意。" + } + }, + { + "id": "B1-U07-P03", + "type": "phrase", + "en": "It's not what the website said.", + "zh": "和网站上说的不一样。", + "sceneWord": false, + "match": [ + [ + "website said", + "website says", + "what the website" + ] + ], + "example": { + "en": "The website said the room had a sea view.", + "zh": "网站上说房间能看到海。" + }, + "review": { + "prompt": "说实际情况和网站上写的不一样。" + } + }, + { + "id": "B1-U07-P04", + "type": "phrase", + "en": "That doesn't seem fair.", + "zh": "这好像不太公平。", + "sceneWord": false, + "match": [ + [ + "seem fair", + "seems fair" + ] + ], + "example": { + "en": "It doesn't seem fair to pay for a trip we didn't take.", + "zh": "为没去成的行程付钱,好像不公平。" + }, + "review": { + "prompt": "说对方的做法不太公平。" + } + }, + { + "id": "B1-U07-P05", + "type": "phrase", + "en": "What can you offer me?", + "zh": "你们能给我什么补偿?", + "sceneWord": false, + "match": [ + [ + "can you offer" + ] + ], + "example": { + "en": "What can you offer us for the trouble?", + "zh": "给我们添了麻烦,你们能给什么补偿?" + }, + "review": { + "prompt": "问对方能提供什么解决办法。" + } + }, + { + "id": "B1-U07-P06", + "type": "phrase", + "en": "I'm afraid that's not good enough.", + "zh": "恐怕这样还不够。", + "sceneWord": false, + "match": [ + [ + "not good enough" + ] + ], + "example": { + "en": "Ten dollars off? I'm afraid that's not good enough.", + "zh": "只便宜十美元?恐怕这样还不够。" + }, + "review": { + "prompt": "礼貌地说对方给的方案不够。" + } + }, + { + "id": "B1-U07-P07", + "type": "phrase", + "en": "I'd like a partial refund.", + "zh": "我想要部分退款。", + "sceneWord": false, + "match": [ + [ + "partial refund" + ] + ], + "example": { + "en": "We only used the pool for one day, so I'd like a partial refund.", + "zh": "我们只用了一天泳池,所以我想要部分退款。" + }, + "review": { + "prompt": "要求退一部分钱。" + } + }, + { + "id": "B1-U07-P08", + "type": "phrase", + "en": "Could you at least give us a discount?", + "zh": "至少能给我们打个折吗?", + "sceneWord": false, + "match": [ + [ + "at least" + ] + ], + "example": { + "en": "If you can't change the room, could you at least give us a discount?", + "zh": "如果不能换房,至少能打个折吗?" + }, + "review": { + "prompt": "问对方至少能不能打折。" + } + }, + { + "id": "B1-U07-P09", + "type": "phrase", + "en": "How about moving us to a better room?", + "zh": "给我们换个好点的房间怎么样?", + "sceneWord": false, + "match": [ + [ + "how about", + "what about" + ] + ], + "example": { + "en": "How about a free dinner instead?", + "zh": "换成送一顿免费晚餐怎么样?" + }, + "review": { + "prompt": "提议换一个安静点的房间。" + } + }, + { + "id": "B1-U07-P10", + "type": "phrase", + "en": "That sounds reasonable.", + "zh": "这听起来合理。", + "sceneWord": false, + "match": [ + [ + "sounds reasonable", + "sounds fair" + ] + ], + "example": { + "en": "A 30% refund? That sounds reasonable.", + "zh": "退 30%?听起来合理。" + }, + "review": { + "prompt": "接受对方的方案,说听起来合理。" + } + }, + { + "id": "B1-U07-P11", + "type": "phrase", + "en": "Can I speak to someone in charge?", + "zh": "我能和负责人谈谈吗?", + "sceneWord": false, + "match": [ + [ + "in charge" + ] + ], + "example": { + "en": "Who is in charge of the tours?", + "zh": "谁负责这些旅游团?" + }, + "review": { + "prompt": "要求和负责人谈。" + } + }, + { + "id": "B1-U07-P12", + "type": "phrase", + "en": "Could I have that in writing?", + "zh": "能给我书面确认吗?", + "sceneWord": false, + "match": [ + [ + "in writing" + ] + ], + "example": { + "en": "Please send me the offer in writing.", + "zh": "请把方案书面发给我。" + }, + "review": { + "prompt": "请对方把答应的事写下来发给你。" + } + }, + { + "id": "B1-U07-W01", + "type": "word", + "en": "compensation", + "zh": "赔偿;补偿", + "sceneWord": true, + "sceneReason": "投诉协商时要求补偿的核心词,旅行中高频", + "match": [ + [ + "compensation" + ] + ], + "example": { + "en": "We asked for compensation for the delay.", + "zh": "我们因为延误要求赔偿。" + }, + "review": { + "prompt": "说你要求赔偿。" + } + }, + { + "id": "B1-U07-W02", + "type": "word", + "en": "compromise", + "zh": "折中;妥协", + "sceneWord": false, + "match": [ + [ + "compromise", + "compromises" + ] + ], + "example": { + "en": "Let's find a compromise.", + "zh": "我们找个折中的办法吧。" + }, + "review": { + "prompt": "提议双方找个折中办法。" + } + } + ], + "receptiveWords": [ + { + "id": "B1-U07-R01", + "en": "buyer", + "zh": "买家" + }, + { + "id": "B1-U07-R02", + "en": "shopper", + "zh": "购物者" + }, + { + "id": "B1-U07-R03", + "en": "firm", + "zh": "公司" + }, + { + "id": "B1-U07-R04", + "en": "fake", + "zh": "假的" + }, + { + "id": "B1-U07-R05", + "en": "hesitate", + "zh": "犹豫" + }, + { + "id": "B1-U07-R06", + "en": "owe", + "zh": "欠" + }, + { + "id": "B1-U07-R07", + "en": "repay", + "zh": "偿还" + }, + { + "id": "B1-U07-R08", + "en": "patience", + "zh": "耐心" + }, + { + "id": "B1-U07-R09", + "en": "nasty", + "zh": "令人不快的" + }, + { + "id": "B1-U07-R10", + "en": "annoyance", + "zh": "恼怒" + }, + { + "id": "B1-U07-R11", + "en": "ridiculous", + "zh": "荒谬的" + }, + { + "id": "B1-U07-R12", + "en": "proposal", + "zh": "提议" + }, + { + "id": "B1-U07-R13", + "en": "objection", + "zh": "反对" + }, + { + "id": "B1-U07-R14", + "en": "disagreement", + "zh": "分歧" + }, + { + "id": "B1-U07-R15", + "en": "acceptance", + "zh": "接受" + }, + { + "id": "B1-U07-R16", + "en": "reduction", + "zh": "减少" + }, + { + "id": "B1-U07-R17", + "en": "gain", + "zh": "收获" + }, + { + "id": "B1-U07-R18", + "en": "loyal", + "zh": "忠诚的" + }, + { + "id": "B1-U07-R19", + "en": "satisfaction", + "zh": "满意" + }, + { + "id": "B1-U07-R20", + "en": "reward", + "zh": "回报" + }, + { + "id": "B1-U07-R21", + "en": "comment", + "zh": "评论" + }, + { + "id": "B1-U07-R22", + "en": "promotion", + "zh": "促销" + }, + { + "id": "B1-U07-R23", + "en": "unfairly", + "zh": "不公平地" + }, + { + "id": "B1-U07-R24", + "en": "unbelievable", + "zh": "难以置信的" + }, + { + "id": "B1-U07-R25", + "en": "deny", + "zh": "否认" + }, + { + "id": "B1-U07-R26", + "en": "unique", + "zh": "独特的" + }, + { + "id": "B1-U07-R27", + "en": "advertise", + "zh": "做广告" + }, + { + "id": "B1-U07-R28", + "en": "nonsense", + "zh": "胡说" + }, + { + "id": "B1-U07-R29", + "en": "general", + "zh": "总体的" + }, + { + "id": "B1-U07-R30", + "en": "shortage", + "zh": "短缺" + }, + { + "id": "B1-U07-R31", + "en": "supply", + "zh": "提供" + }, + { + "id": "B1-U07-R32", + "en": "unfortunate", + "zh": "不幸的" + }, + { + "id": "B1-U07-R33", + "en": "enquiry", + "zh": "询问" + }, + { + "id": "B1-U07-R34", + "en": "guidance", + "zh": "指导" + }, + { + "id": "B1-U07-R35", + "en": "penny", + "zh": "便士;一分钱" + }, + { + "id": "B1-U07-R36", + "en": "altogether", + "zh": "完全地" + }, + { + "id": "B1-U07-R37", + "en": "promote", + "zh": "推广" + }, + { + "id": "B1-U07-R38", + "en": "advert", + "zh": "广告" + }, + { + "id": "B1-U07-R39", + "en": "agreement", + "zh": "协议" + }, + { + "id": "B1-U07-R40", + "en": "anger", + "zh": "愤怒" + }, + { + "id": "B1-U07-R41", + "en": "approve", + "zh": "批准" + }, + { + "id": "B1-U07-R42", + "en": "behalf", + "zh": "代表" + }, + { + "id": "B1-U07-R43", + "en": "checkout", + "zh": "收银台" + }, + { + "id": "B1-U07-R44", + "en": "consumer", + "zh": "消费者" + }, + { + "id": "B1-U07-R45", + "en": "dealer", + "zh": "经销商" + }, + { + "id": "B1-U07-R46", + "en": "demand", + "zh": "要求" + }, + { + "id": "B1-U07-R47", + "en": "deserve", + "zh": "应得" + }, + { + "id": "B1-U07-R48", + "en": "disappointment", + "zh": "失望;令人失望的事" + }, + { + "id": "B1-U07-R49", + "en": "disgusting", + "zh": "令人恶心的" + }, + { + "id": "B1-U07-R50", + "en": "ensure", + "zh": "确保" + }, + { + "id": "B1-U07-R51", + "en": "eventually", + "zh": "最终" + }, + { + "id": "B1-U07-R52", + "en": "fifth", + "zh": "第五" + }, + { + "id": "B1-U07-R53", + "en": "formal", + "zh": "正式的" + }, + { + "id": "B1-U07-R54", + "en": "frustrated", + "zh": "沮丧的" + }, + { + "id": "B1-U07-R55", + "en": "fuss", + "zh": "小题大做;抱怨" + }, + { + "id": "B1-U07-R56", + "en": "horrible", + "zh": "可怕的;糟糕的" + }, + { + "id": "B1-U07-R57", + "en": "insist", + "zh": "坚持说" + }, + { + "id": "B1-U07-R58", + "en": "negotiate", + "zh": "谈判;协商" + }, + { + "id": "B1-U07-R59", + "en": "negotiation", + "zh": "谈判" + }, + { + "id": "B1-U07-R60", + "en": "obviously", + "zh": "明显地" + }, + { + "id": "B1-U07-R61", + "en": "propose", + "zh": "提议" + }, + { + "id": "B1-U07-R62", + "en": "rarely", + "zh": "很少" + }, + { + "id": "B1-U07-R63", + "en": "reality", + "zh": "现实" + }, + { + "id": "B1-U07-R64", + "en": "refusal", + "zh": "拒绝" + }, + { + "id": "B1-U07-R65", + "en": "reject", + "zh": "拒绝" + }, + { + "id": "B1-U07-R66", + "en": "reputation", + "zh": "名声" + }, + { + "id": "B1-U07-R67", + "en": "resolve", + "zh": "解决" + }, + { + "id": "B1-U07-R68", + "en": "responsibility", + "zh": "责任" + }, + { + "id": "B1-U07-R69", + "en": "rotten", + "zh": "腐烂的" + }, + { + "id": "B1-U07-R70", + "en": "rudely", + "zh": "粗鲁地" + }, + { + "id": "B1-U07-R71", + "en": "salesman", + "zh": "推销员" + }, + { + "id": "B1-U07-R72", + "en": "second-hand", + "zh": "二手的" + }, + { + "id": "B1-U07-R73", + "en": "standard", + "zh": "标准" + }, + { + "id": "B1-U07-R74", + "en": "temper", + "zh": "脾气" + }, + { + "id": "B1-U07-R75", + "en": "useless", + "zh": "没用的" + }, + { + "id": "B1-U07-R76", + "en": "warranty", + "zh": "保修单" + } + ], + "segments": [ + { + "id": "B1-U07-S1", + "title": "提出投诉", + "minutes": 12, + "itemIds": [ + "B1-U07-P01", + "B1-U07-P02", + "B1-U07-P03" + ], + "listening": { + "text": "Good evening. I'd like to make a complaint. I'm not satisfied with our room. It's small and dark, and there's no sea view. It's not what the website said.", + "question": "客人为什么不满意?", + "options": [ + "房间和网站上说的不一样", + "房费太贵", + "前台态度不好" + ] + }, + "speaking": [ + { + "text": "I'd like to make a complaint.", + "tip": "complaint 读 /kəmˈpleɪnt/" + }, + { + "text": "I'm not satisfied with the room." + }, + { + "text": "It's not what the website said." + } + ], + "reading": { + "text": "How to make a complaint\n1. Stay calm and polite.\n2. Say clearly what the problem is.\n3. Compare it with what you booked, for instance \"It's not what the website said.\"\n4. Say what you would like them to do.\n5. Write down the name of the person you spoke to.", + "question": "第五步建议做什么?", + "options": [ + "记下对方的名字", + "大声说出问题", + "马上离开酒店" + ] + }, + "writing": { + "prompt": "写两句话:说你想投诉,你对房间不满意。", + "example": "I'd like to make a complaint. I'm not satisfied with the room.", + "itemIds": [ + "B1-U07-P01", + "B1-U07-P02" + ] + }, + "independent": { + "prompt": "用英语说房间和网站上写的不一样。", + "itemIds": [ + "B1-U07-P03" + ] + } + }, + { + "id": "B1-U07-S2", + "title": "表达不满并提出要求", + "minutes": 12, + "itemIds": [ + "B1-U07-P04", + "B1-U07-P06", + "B1-U07-P07", + "B1-U07-P11" + ], + "listening": { + "text": "We can give you a free drink at the bar. I'm afraid that's not good enough. We paid for a sea view. That doesn't seem fair. I'd like a partial refund. Can I speak to someone in charge?", + "question": "客人最后要求什么?", + "options": [ + "和负责人谈", + "免费喝一杯", + "马上退房" + ] + }, + "speaking": [ + { + "text": "That doesn't seem fair." + }, + { + "text": "I'm afraid that's not good enough.", + "tip": "语气要礼貌,不要生气" + }, + { + "text": "I'd like a partial refund.", + "tip": "partial 读 /ˈpɑːʃl/" + }, + { + "text": "Can I speak to someone in charge?" + } + ], + "reading": { + "text": "Customer service rules\nIf a customer is not happy, listen first.\nIf the problem is small, you can offer a free drink or a free breakfast.\nIf the customer asks for a partial refund, call the manager.\nIf the customer asks to speak to someone in charge, call the manager at once.", + "question": "客人要求部分退款时,员工应该怎么做?", + "options": [ + "叫经理", + "送一杯免费饮料", + "拒绝客人" + ] + }, + "writing": { + "prompt": "写两句话:说这样不公平,你想要部分退款。", + "example": "That doesn't seem fair. I'd like a partial refund.", + "itemIds": [ + "B1-U07-P04", + "B1-U07-P07" + ] + }, + "independent": { + "prompt": "用英语礼貌地说对方的方案不够,并要求和负责人谈。", + "itemIds": [ + "B1-U07-P06", + "B1-U07-P11" + ] + } + }, + { + "id": "B1-U07-S3", + "title": "协商方案", + "minutes": 12, + "itemIds": [ + "B1-U07-P05", + "B1-U07-P08", + "B1-U07-P09", + "B1-U07-W02" + ], + "listening": { + "text": "What can you offer me? We don't have any sea view rooms tonight. Could you at least give us a discount? How about 20% off tonight, and we move you tomorrow? OK, that's a good compromise.", + "question": "双方最后怎么解决的?", + "options": [ + "今晚打八折,明天换房", + "马上换海景房", + "全额退款" + ] + }, + "speaking": [ + { + "text": "What can you offer me?" + }, + { + "text": "Could you at least give us a discount?" + }, + { + "text": "How about moving us to a better room?" + }, + { + "text": "Let's find a compromise.", + "tip": "compromise 读 /ˈkɒmprəmaɪz/" + } + ], + "reading": { + "text": "Message from the hotel\nDear Ms Brown,\nWe're sorry your room was not what the website said. We can't move you tonight, but how about this compromise: we give you 20% off tonight, and tomorrow we move you to a better room with a sea view. We hope you are happy with this.", + "question": "酒店明天会怎么做?", + "options": [ + "给客人换海景房", + "送客人去机场", + "退全部房费" + ] + }, + "writing": { + "prompt": "写两句话:问对方能给什么补偿,至少能不能打折。", + "example": "What can you offer me? Could you at least give us a discount?", + "itemIds": [ + "B1-U07-P05", + "B1-U07-P08" + ] + }, + "independent": { + "prompt": "用英语提议换个好点的房间,并说这是个折中办法。", + "itemIds": [ + "B1-U07-P09", + "B1-U07-W02" + ] + } + }, + { + "id": "B1-U07-S4", + "title": "达成一致", + "minutes": 10, + "itemIds": [ + "B1-U07-P10", + "B1-U07-P12", + "B1-U07-W01" + ], + "listening": { + "text": "We can give you a 30% refund as compensation. That sounds reasonable. Could I have that in writing? Of course. I'll send you an email now.", + "question": "酒店给了多少退款?", + "options": [ + "30%", + "20%", + "全额" + ] + }, + "speaking": [ + { + "text": "That sounds reasonable." + }, + { + "text": "Could I have that in writing?" + }, + { + "text": "We asked for compensation.", + "tip": "compensation 读 /ˌkɒmpenˈseɪʃn/" + } + ], + "reading": { + "text": "Email\nDear Mr Green,\nWe're sorry about the problems with your trip. As compensation, we will give you a 30% refund. You will get the money in 5 to 10 days. This email is our offer in writing.", + "question": "退款多久到账?", + "options": [ + "5 到 10 天", + "30 天", + "马上" + ] + }, + "writing": { + "prompt": "写两句话:说这听起来合理,请对方书面确认。", + "example": "That sounds reasonable. Could I have that in writing?", + "itemIds": [ + "B1-U07-P10", + "B1-U07-P12" + ] + }, + "independent": { + "prompt": "用英语说你们要求赔偿。", + "itemIds": [ + "B1-U07-W01" + ] + } + } + ], + "scenes": [ + { + "id": "B1-U07-C1", + "kind": "main", + "title": "酒店房间与网站不符", + "learnerRole": "住客", + "aiRole": "酒店值班经理", + "setting": "你订的是海景房,到了却是一间又小又暗的房间,你去前台找值班经理。", + "turns": [ + { + "ai": "Good evening. I'm the manager. How can I help?", + "goal": "说要投诉,对房间不满意", + "model": "Good evening. I'd like to make a complaint. I'm not satisfied with our room.", + "zh": "晚上好。我想投诉,我们对房间不满意。", + "itemIds": [ + "B1-U07-P01", + "B1-U07-P02" + ] + }, + { + "ai": "I'm sorry. What's the problem with it?", + "goal": "说和网站不一样", + "model": "It's small and dark, and there's no sea view. It's not what the website said.", + "zh": "又小又暗,还看不到海。和网站上说的不一样。", + "itemIds": [ + "B1-U07-P03" + ] + }, + { + "ai": "I understand. We can give you a free breakfast.", + "goal": "说不够,问能给什么", + "model": "I'm afraid that's not good enough. What can you offer me?", + "zh": "恐怕这样不够。你们还能给什么补偿?", + "itemIds": [ + "B1-U07-P06", + "B1-U07-P05" + ] + }, + { + "ai": "All the sea view rooms are full tonight.", + "goal": "提议明天换房", + "model": "How about moving us to a better room tomorrow?", + "zh": "明天给我们换个好点的房间怎么样?", + "itemIds": [ + "B1-U07-P09" + ] + }, + { + "ai": "Yes, we can do that, and we'll give you 20% off tonight.", + "goal": "接受并要书面确认", + "model": "That sounds reasonable. Could I have that in writing?", + "zh": "听起来合理。能给我书面确认吗?", + "itemIds": [ + "B1-U07-P10", + "B1-U07-P12" + ] + }, + { + "ai": "Of course. I'll write it down for you now.", + "goal": "道谢", + "model": "Thank you. I appreciate your help.", + "zh": "谢谢,感谢你的帮助。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U07-C2", + "kind": "variant", + "title": "打电话要求旅行社赔偿", + "learnerRole": "游客", + "aiRole": "旅行社客服", + "setting": "你报的一日游临时取消了,旅行社只给你一半退款,你打电话过去交涉。", + "turns": [ + { + "ai": "Hello, Sunny Bay Tours. How can I help you?", + "goal": "说被取消的行程只退一半,不公平", + "model": "Hi. Our boat trip was cancelled, but you only gave us half our money back. That doesn't seem fair.", + "zh": "你好。我们的游船行程取消了,可你们只退了一半钱。这好像不公平。", + "itemIds": [ + "B1-U07-P04" + ] + }, + { + "ai": "I'm sorry, but that's our rule for bad weather.", + "goal": "要求和负责人谈", + "model": "I understand, but can I speak to someone in charge?", + "zh": "我明白,但我能和负责人谈谈吗?", + "itemIds": [ + "B1-U07-P11" + ] + }, + { + "ai": "I'm the person in charge today.", + "goal": "要求赔偿", + "model": "OK. We lost a whole day, so we'd like some compensation.", + "zh": "好的。我们浪费了一整天,所以想要一些赔偿。", + "itemIds": [ + "B1-U07-W01" + ] + }, + { + "ai": "I can give you a full refund, but no more than that.", + "goal": "接受", + "model": "A full refund sounds fair. Thank you.", + "zh": "全额退款听起来公平。谢谢。", + "itemIds": [ + "B1-U07-P10" + ] + } + ] + }, + { + "id": "B1-U07-C3", + "kind": "variant", + "title": "和维修公司找折中办法", + "learnerRole": "顾客", + "aiRole": "维修公司员工", + "setting": "你家的洗衣机修了三次还是坏,你给维修公司打电话。", + "turns": [ + { + "ai": "Hello, this is the repair service.", + "goal": "说不满意,想要部分退款", + "model": "Hello. Someone from your company came three times, and the machine still doesn't work. I'd like a partial refund.", + "zh": "你好。你们的师傅来了三次,洗衣机还是不能用。我想要部分退款。", + "itemIds": [ + "B1-U07-P07" + ] + }, + { + "ai": "I'm sorry, but we can't give refunds for repairs.", + "goal": "问至少能不能打折", + "model": "Could you at least give us a discount on a new machine?", + "zh": "那至少买新洗衣机时给我们打个折吗?", + "itemIds": [ + "B1-U07-P08" + ] + }, + { + "ai": "We could give you 15% off a new one.", + "goal": "提议折中", + "model": "How about 25%? That would be a good compromise.", + "zh": "25% 怎么样?这是个不错的折中办法。", + "itemIds": [ + "B1-U07-P09", + "B1-U07-W02" + ] + }, + { + "ai": "OK, 25% it is.", + "goal": "接受", + "model": "That sounds reasonable. Thanks.", + "zh": "听起来合理,谢谢。", + "itemIds": [ + "B1-U07-P10" + ] + } + ] + } + ], + "tasks": [ + { + "id": "B1-U07-T1", + "sceneId": "B1-U07-C1", + "goal": "在酒店投诉房间并谈出解决办法", + "itemIds": [ + "B1-U07-P01", + "B1-U07-P02", + "B1-U07-P03", + "B1-U07-P06", + "B1-U07-P05", + "B1-U07-P09", + "B1-U07-P10", + "B1-U07-P12" + ], + "slots": [ + "问题", + "要求", + "方案", + "确认" + ] + }, + { + "id": "B1-U07-T2", + "sceneId": "B1-U07-C2", + "goal": "打电话要求旅行社赔偿", + "itemIds": [ + "B1-U07-P04", + "B1-U07-P11", + "B1-U07-W01", + "B1-U07-P10" + ], + "slots": [ + "不满", + "负责人", + "赔偿" + ] + }, + { + "id": "B1-U07-T3", + "sceneId": "B1-U07-C3", + "goal": "和维修公司找折中办法", + "itemIds": [ + "B1-U07-P07", + "B1-U07-P08", + "B1-U07-P09", + "B1-U07-W02", + "B1-U07-P10" + ], + "slots": [ + "要求", + "让步", + "折中" + ] + } + ], + "materials": [ + { + "id": "B1-U07-M1", + "mode": "listening", + "title": "电话:和旅行社交涉", + "text": "Agent: Good morning, Greenway Holidays, this is Kate speaking. How can I help?\nHelen: Hi, Kate. My name is Helen Brown. I've just come back from a week at the Sunny Bay Hotel, and I'd like to make a complaint.\nAgent: I'm sorry to hear that. What was the problem?\nHelen: Where do I start? Your advert promised a quiet hotel by the beach with a large pool. In reality, the hotel was next to a building site, so there was noise from seven in the morning. The pool was closed for the first four days, there was a shortage of sunbeds, and the beach was a twenty-minute walk away. It's not what the website said at all.\nAgent: I understand. Did you tell our local representative?\nHelen: Yes, on the first day. She said she would move us, but nothing happened. The food was horrible too. The hotel couldn't even supply clean towels every day. On the third night, the chicken was obviously not cooked, and the fruit was rotten. My son was sick all night. When I told the waiter, he spoke to me very rudely.\nAgent: That's disgusting, and I apologize. We take that kind of thing very seriously, and our guidance for hotels says food must be safe. It's an unfortunate situation, and I'll make an enquiry with the hotel today. What would you like us to do?\nHelen: Frankly, I'm very annoyed and frustrated. We saved for a year for this holiday, and it was a disappointment from beginning to end. I'm not asking for every penny back, but I think we deserve a full refund.\nAgent: I'm afraid I can't offer a full refund, because you did stay at the hotel for seven nights. But I can offer you a voucher for 300 pounds for your next holiday with us.\nHelen: I'm afraid that's not good enough. I don't want to book with you again. I'd like a partial refund in money, not a voucher.\nAgent: I see. Let me speak to my manager. ... OK, Mrs Brown, my manager has approved a refund of 40 percent of the price as compensation.\nHelen: Forty percent? The pool alone was one of the main reasons we chose that hotel. How about fifty percent? I think that's a fair compromise.\nAgent: Fifty percent is more than we normally give. But because of the problem with the food, I'll make an exception. We'll pay you fifty percent, and we'll also report the hotel so that this doesn't happen to other customers. We may stop promoting the hotel altogether.\nHelen: That sounds reasonable. Could I have that in writing?\nAgent: Of course. I'll send you an email today confirming our agreement. The money should reach your account within ten working days.\nHelen: Thank you, Kate. I appreciate your help, and I'm glad we could resolve this.\nAgent: You're welcome. And once again, I'm sorry for everything.", + "glosses": { + "site": "工地", + "sunbeds": "沙滩躺椅", + "representative": "当地代表", + "frankly": "坦白说", + "voucher": "代金券", + "exception": "例外" + }, + "questions": [ + { + "type": "gist", + "question": "这通电话主要在谈什么?", + "options": [ + "海伦投诉糟糕的度假经历并谈赔偿", + "海伦预订下一次度假", + "海伦询问酒店的位置" + ] + }, + { + "type": "detail", + "question": "旅行社最后同意怎么做?", + "options": [ + "退一半的钱并向酒店反映", + "送 300 英镑代金券", + "全额退款" + ] + }, + { + "type": "inference", + "question": "海伦为什么不要代金券?", + "options": [ + "她不想再通过这家旅行社订", + "代金券的钱太多了", + "她马上要再去度假" + ] + } + ] + }, + { + "id": "B1-U07-M2", + "mode": "listening", + "title": "电台节目:怎样有效投诉", + "text": "Welcome back to Money Talk. Today we're talking about something that affects every consumer: how to complain and actually get what you want.\nFirst of all, know your rights. In most countries, if something you buy is broken or not as described, the shop has a responsibility to repair it, replace it or give you a refund. Many products also come with a warranty, so read it before you do anything. It doesn't matter if you bought it in a shop, online or from a dealer. If a salesman made a promise, it counts too. This is true for every buyer and every shopper, whether you buy from a big firm or a small market stall. But be careful with things that seem too cheap: if you buy a fake watch from a stranger, you have no rights at all.\nNext, act quickly. Don't hesitate. The longer you wait, the harder it is. Go back to the shop or contact the company within a few days, and bring your receipt. If a shop owes you money, ask them to repay it by a certain date.\nAfter that, stay calm. Patience is important. I know it's easy to lose your temper when a product is useless or a service is terrible, but anger rarely helps, and a nasty argument only causes annoyance on both sides, even if their answer sounds ridiculous. Staff at the checkout didn't make the product, so don't shout at them. Explain the problem clearly and politely, and say exactly what you want. Don't make a fuss about small details; talk about the main issue.\nNow, what if they say no? Don't accept their first refusal. Ask to speak to someone in charge, and repeat your request. If they still reject it, ask why, and ask for the answer in writing. Many big companies care a lot about their reputation, and they would rather give you a small refund than get bad comments online.\nIt also helps to be ready to negotiate. If you can't get everything you want, propose a compromise. Make a proposal, listen to their objection, and look for a solution that avoids a long disagreement. Their acceptance of a small reduction in price is still a gain for you. For instance, if a shop refuses to replace a jacket, you could suggest a discount instead. Good negotiation means both sides leave with something. Companies want loyal customers, and customer satisfaction is their reward.\nAnd finally, if nothing works, write a formal letter or email to the company's head office. Keep it short, include your order number, and give them a date, for instance fourteen days, to respond. Say that you will take the problem further if necessary.\nA man called Ali, who listens to the show, emailed us last week. He bought a second-hand car from a dealer, and after two weeks the engine stopped. The dealer ignored his calls. Ali followed our advice, wrote a formal letter and gave them ten days. Eventually, they agreed to repair the car for free. He said: \"I was ready to give up, but staying patient paid off.\"\nThat's all for today. Remember: complain politely, explain the problem well, and don't give up too easily.", + "glosses": { + "rights": "权利" + }, + "questions": [ + { + "type": "gist", + "question": "这期节目主要讲什么?", + "options": [ + "怎样有效地投诉", + "怎样买二手车", + "怎样写求职信" + ] + }, + { + "type": "detail", + "question": "如果商家第一次拒绝了你,节目建议怎么做?", + "options": [ + "要求和负责人谈,再次提出要求", + "马上在网上写差评", + "大声和收银员争吵" + ] + }, + { + "type": "inference", + "question": "为什么说大公司常常愿意给小额退款?", + "options": [ + "他们很在乎自己的名声", + "他们的钱很多", + "他们害怕顾客打电话" + ] + } + ] + }, + { + "id": "B1-U07-M3", + "mode": "reading", + "title": "网上评价与酒店回复", + "text": "What our guests say: Sunny Bay Hotel\nOne star: \"Never again\"\nWe booked during a special promotion and stayed here for a week in August, and it was a nightmare. Our room was not what the website said. The photos showed a bright room with a sea view, but ours was dark, and it looked out on the car park. The air conditioning made a horrible noise, and the bathroom was dirty. When we complained, the staff at reception were not interested. We asked for a different room, and they refused, although the hotel wasn't full. We felt we were treated unfairly. I'm not satisfied with the way they dealt with us at all. We had to demand to see the manager, who eventually moved us on the fifth day. Save your money and go somewhere else.\nReply from the hotel manager\nDear guest,\nThank you for your comments, and I apologize sincerely for your experience. You are right: the photos on our website showed our best rooms, and we did not explain that. We have now changed the website to ensure that every kind of room has its own photos. It is unbelievable that nobody noticed this before, and I don't deny that it was our mistake.\nI am also disappointed to hear how our reception team responded. Our standard is to find a solution on the same day, and that did not happen. I have spoken to the team, and we are giving all our staff extra training in how to deal with complaints.\nOn behalf of the hotel, I would like to offer you a partial refund of three nights, and I have already approved this. Please contact me directly regarding your bank details. I hope you will give us another chance.\nFour stars: \"Great location, good service\"\nWe had a small problem on our first night: the shower was not working. We reported it, and within an hour they had fixed it and sent a bottle of wine as an apology. The staff were kind, and the pool was lovely. The price is a bit high for what you get, but in general we were satisfied.\nThree stars: \"OK, but not special\"\nThe hotel is fine, but it's not as luxurious as the adverts suggest. They advertise a unique experience, but it's just a normal hotel. Breakfast was the same every day, and on the last day the bread was stale. We mentioned it, and they insisted it was fresh, which was nonsense. In the end we reached a compromise and they gave us a free lunch, but there was a lot of fuss. I'd only stay here again if the price went down.", + "glosses": { + "nightmare": "噩梦", + "sincerely": "真诚地", + "luxurious": "豪华的", + "stale": "不新鲜的" + }, + "questions": [ + { + "type": "gist", + "question": "这些文字主要是什么?", + "options": [ + "客人对酒店的评价和经理的回复", + "酒店的招聘广告", + "旅游公司的行程介绍" + ] + }, + { + "type": "detail", + "question": "经理给一星评价的客人什么补偿?", + "options": [ + "退三晚的房费", + "送一瓶葡萄酒", + "免费午餐" + ] + }, + { + "type": "inference", + "question": "从经理的回复可以看出什么?", + "options": [ + "他承认网站照片让人误解", + "他认为客人说的都是假的", + "酒店马上要关门" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "清楚说明问题", + "bands": [ + "说不清问题", + "能说出问题,但没对比承诺或说明影响", + "清楚说明问题,并指出与承诺不符之处" + ], + "pass": 1 + }, + { + "name": "礼貌协商", + "bands": [ + "只会接受或发脾气", + "能提出要求,但不会回应对方方案", + "礼貌拒绝不合理方案,提出折中办法并确认结果" + ], + "pass": 1 + } + ] + }, + "excluded": [] +} diff --git a/kouyu_english/assets/courses/B1/B1-U08.json b/kouyu_english/assets/courses/B1/B1-U08.json new file mode 100644 index 0000000..6a5e557 --- /dev/null +++ b/kouyu_english/assets/courses/B1/B1-U08.json @@ -0,0 +1,1307 @@ +{ + "schemaVersion": 1, + "id": "B1-U08", + "revision": 1, + "level": "B1", + "title": "租住与长住", + "categories": [ + "日常" + ], + "canDo": "沟通租房或短租,理解规则要点", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "mike", + "taylor", + "jenny", + "liu", + "hill", + "road", + "elm", + "oak", + "court", + "leo", + "nina" + ], + "grammar": [ + { + "id": "73", + "use": "active" + }, + { + "id": "69", + "use": "active" + }, + { + "id": "156", + "use": "active" + }, + { + "id": "139", + "use": "active" + }, + { + "id": "82", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "B1-U08-P01", + "type": "phrase", + "en": "I'm looking for a place to rent.", + "zh": "我在找房子租。", + "sceneWord": false, + "match": [ + [ + "place to rent", + "flat to rent", + "room to rent" + ] + ], + "example": { + "en": "I'm looking for a room to rent for six months.", + "zh": "我在找一个房间,租六个月。" + }, + "review": { + "prompt": "说你在找房子租。" + } + }, + { + "id": "B1-U08-P02", + "type": "phrase", + "en": "How much is the rent a month?", + "zh": "月租多少?", + "sceneWord": false, + "match": [ + [ + "rent a month", + "rent per month", + "rent each month" + ] + ], + "example": { + "en": "How much is the rent a month for the small room?", + "zh": "小房间月租多少?" + }, + "review": { + "prompt": "问月租是多少。" + } + }, + { + "id": "B1-U08-P03", + "type": "phrase", + "en": "Are bills included?", + "zh": "包含水电等费用吗?", + "sceneWord": false, + "match": [ + [ + "bills included", + "bills are included", + "included in the rent" + ] + ], + "example": { + "en": "Water and internet are included in the rent.", + "zh": "水费和网费包含在房租里。" + }, + "review": { + "prompt": "问房租包不包括水电网费。" + } + }, + { + "id": "B1-U08-P04", + "type": "phrase", + "en": "How much is the deposit?", + "zh": "押金是多少?", + "sceneWord": false, + "match": [ + [ + "the deposit" + ] + ], + "example": { + "en": "The deposit is one month's rent.", + "zh": "押金是一个月的房租。" + }, + "review": { + "prompt": "问押金要交多少。" + } + }, + { + "id": "B1-U08-P05", + "type": "phrase", + "en": "Is it furnished?", + "zh": "带家具吗?", + "sceneWord": false, + "match": [ + [ + "furnished" + ] + ], + "example": { + "en": "The flat is furnished, but there's no desk.", + "zh": "公寓带家具,但没有书桌。" + }, + "review": { + "prompt": "问房子带不带家具。" + } + }, + { + "id": "B1-U08-P06", + "type": "phrase", + "en": "When can I move in?", + "zh": "我什么时候可以搬进来?", + "sceneWord": false, + "match": [ + [ + "move in" + ] + ], + "example": { + "en": "You can move in on the first of May.", + "zh": "你 5 月 1 日可以搬进来。" + }, + "review": { + "prompt": "问最早什么时候能搬进去。" + } + }, + { + "id": "B1-U08-P07", + "type": "phrase", + "en": "How much notice do I need to give?", + "zh": "退租要提前多久通知?", + "sceneWord": false, + "match": [ + [ + "much notice", + "give notice" + ] + ], + "example": { + "en": "How much notice do you need if I leave in June?", + "zh": "如果我六月搬走,你需要提前多久知道?" + }, + "review": { + "prompt": "问退租要提前多久说。" + } + }, + { + "id": "B1-U08-P08", + "type": "phrase", + "en": "Are pets allowed?", + "zh": "可以养宠物吗?", + "sceneWord": false, + "match": [ + [ + "pets allowed", + "pets are allowed" + ] + ], + "example": { + "en": "Are pets allowed in the garden?", + "zh": "花园里可以带宠物吗?" + }, + "review": { + "prompt": "问能不能养猫。" + } + }, + { + "id": "B1-U08-P09", + "type": "phrase", + "en": "Who do I call if something breaks?", + "zh": "东西坏了我该找谁?", + "sceneWord": false, + "match": [ + [ + "if something breaks", + "if anything breaks" + ] + ], + "example": { + "en": "If something breaks, call the landlord.", + "zh": "东西坏了就给房东打电话。" + }, + "review": { + "prompt": "问东西坏了该联系谁。" + } + }, + { + "id": "B1-U08-P10", + "type": "phrase", + "en": "Can I come and see it?", + "zh": "我能过去看看房子吗?", + "sceneWord": false, + "match": [ + [ + "come and see", + "come and look" + ] + ], + "example": { + "en": "Can I come and see the flat on Saturday?", + "zh": "周六我能去看看房子吗?" + }, + "review": { + "prompt": "问明天能不能去看房。" + } + }, + { + "id": "B1-U08-P11", + "type": "phrase", + "en": "The rubbish goes out on Mondays.", + "zh": "周一倒垃圾。", + "sceneWord": false, + "match": [ + [ + "rubbish goes out", + "take out the rubbish", + "put out the rubbish" + ] + ], + "example": { + "en": "Please put out the rubbish on Sunday night.", + "zh": "请周日晚上把垃圾拿出去。" + }, + "review": { + "prompt": "告诉室友垃圾周四拿出去。" + } + }, + { + "id": "B1-U08-P12", + "type": "phrase", + "en": "Please keep the noise down after 10.", + "zh": "十点以后请保持安静。", + "sceneWord": false, + "match": [ + [ + "keep the noise down" + ] + ], + "example": { + "en": "Could you keep the noise down? I'm trying to sleep.", + "zh": "能小声点吗?我在睡觉。" + }, + "review": { + "prompt": "礼貌地请邻居小声点。" + } + }, + { + "id": "B1-U08-W01", + "type": "word", + "en": "landlord", + "zh": "房东", + "sceneWord": false, + "match": [ + [ + "landlord", + "landlords", + "landlady" + ] + ], + "example": { + "en": "My landlord lives downstairs.", + "zh": "我的房东住在楼下。" + }, + "review": { + "prompt": "说你要给房东打电话。" + } + }, + { + "id": "B1-U08-W02", + "type": "word", + "en": "recycling", + "zh": "可回收垃圾;回收", + "sceneWord": false, + "match": [ + [ + "recycling" + ] + ], + "example": { + "en": "The recycling goes in the green bin.", + "zh": "可回收的东西放绿色垃圾桶。" + }, + "review": { + "prompt": "问可回收垃圾放在哪里。" + } + } + ], + "receptiveWords": [ + { + "id": "B1-U08-R01", + "en": "duvet", + "zh": "羽绒被" + }, + { + "id": "B1-U08-R02", + "en": "jug", + "zh": "壶;罐" + }, + { + "id": "B1-U08-R03", + "en": "pot", + "zh": "锅" + }, + { + "id": "B1-U08-R04", + "en": "tighten", + "zh": "拧紧" + }, + { + "id": "B1-U08-R05", + "en": "stable", + "zh": "稳固的" + }, + { + "id": "B1-U08-R06", + "en": "ant", + "zh": "蚂蚁" + }, + { + "id": "B1-U08-R07", + "en": "spider", + "zh": "蜘蛛" + }, + { + "id": "B1-U08-R08", + "en": "nightlife", + "zh": "夜生活" + }, + { + "id": "B1-U08-R09", + "en": "skyscraper", + "zh": "摩天大楼" + }, + { + "id": "B1-U08-R10", + "en": "sticky", + "zh": "黏的" + }, + { + "id": "B1-U08-R11", + "en": "dirt", + "zh": "污垢" + }, + { + "id": "B1-U08-R12", + "en": "filter", + "zh": "过滤网" + }, + { + "id": "B1-U08-R13", + "en": "hang", + "zh": "挂" + }, + { + "id": "B1-U08-R14", + "en": "lightly", + "zh": "轻轻地" + }, + { + "id": "B1-U08-R15", + "en": "noisily", + "zh": "吵闹地" + }, + { + "id": "B1-U08-R16", + "en": "untidy", + "zh": "不整洁的" + }, + { + "id": "B1-U08-R17", + "en": "moisture", + "zh": "湿气" + }, + { + "id": "B1-U08-R18", + "en": "sponge", + "zh": "海绵" + }, + { + "id": "B1-U08-R19", + "en": "layer", + "zh": "层" + }, + { + "id": "B1-U08-R20", + "en": "settle", + "zh": "安顿下来" + }, + { + "id": "B1-U08-R21", + "en": "facility", + "zh": "设施" + }, + { + "id": "B1-U08-R22", + "en": "household", + "zh": "家庭的" + }, + { + "id": "B1-U08-R23", + "en": "attract", + "zh": "吸引" + }, + { + "id": "B1-U08-R24", + "en": "basement", + "zh": "地下室" + }, + { + "id": "B1-U08-R25", + "en": "basin", + "zh": "洗手池" + }, + { + "id": "B1-U08-R26", + "en": "cage", + "zh": "笼子" + }, + { + "id": "B1-U08-R27", + "en": "carelessness", + "zh": "粗心" + }, + { + "id": "B1-U08-R28", + "en": "carpet", + "zh": "地毯" + }, + { + "id": "B1-U08-R29", + "en": "cushion", + "zh": "靠垫" + }, + { + "id": "B1-U08-R30", + "en": "damp", + "zh": "潮湿的" + }, + { + "id": "B1-U08-R31", + "en": "dishwasher", + "zh": "洗碗机" + }, + { + "id": "B1-U08-R32", + "en": "disturbance", + "zh": "打扰" + }, + { + "id": "B1-U08-R33", + "en": "dustbin", + "zh": "垃圾桶" + }, + { + "id": "B1-U08-R34", + "en": "electrical", + "zh": "电的" + }, + { + "id": "B1-U08-R35", + "en": "electricity", + "zh": "电" + }, + { + "id": "B1-U08-R36", + "en": "freezer", + "zh": "冷冻柜" + }, + { + "id": "B1-U08-R37", + "en": "furnish", + "zh": "配备家具" + }, + { + "id": "B1-U08-R38", + "en": "greenhouse", + "zh": "温室" + }, + { + "id": "B1-U08-R39", + "en": "hammer", + "zh": "锤子" + }, + { + "id": "B1-U08-R40", + "en": "heater", + "zh": "取暖器" + }, + { + "id": "B1-U08-R41", + "en": "independent", + "zh": "独立的" + }, + { + "id": "B1-U08-R42", + "en": "install", + "zh": "安装" + }, + { + "id": "B1-U08-R43", + "en": "iron", + "zh": "熨斗" + }, + { + "id": "B1-U08-R44", + "en": "ironing", + "zh": "熨衣服" + }, + { + "id": "B1-U08-R45", + "en": "kettle", + "zh": "水壶" + }, + { + "id": "B1-U08-R46", + "en": "kitten", + "zh": "小猫" + }, + { + "id": "B1-U08-R47", + "en": "ladder", + "zh": "梯子" + }, + { + "id": "B1-U08-R48", + "en": "maintenance", + "zh": "维护;维修" + }, + { + "id": "B1-U08-R49", + "en": "mend", + "zh": "修理" + }, + { + "id": "B1-U08-R50", + "en": "messy", + "zh": "脏乱的" + }, + { + "id": "B1-U08-R51", + "en": "monthly", + "zh": "每月的" + }, + { + "id": "B1-U08-R52", + "en": "nail", + "zh": "钉子" + }, + { + "id": "B1-U08-R53", + "en": "needle", + "zh": "针" + }, + { + "id": "B1-U08-R54", + "en": "neighbourhood", + "zh": "街区;社区" + }, + { + "id": "B1-U08-R55", + "en": "newcomer", + "zh": "新来的人" + }, + { + "id": "B1-U08-R56", + "en": "next-door", + "zh": "隔壁" + }, + { + "id": "B1-U08-R57", + "en": "noticeboard", + "zh": "公告栏" + }, + { + "id": "B1-U08-R58", + "en": "pin", + "zh": "大头针" + }, + { + "id": "B1-U08-R59", + "en": "pipe", + "zh": "管道" + }, + { + "id": "B1-U08-R60", + "en": "pond", + "zh": "池塘" + }, + { + "id": "B1-U08-R61", + "en": "privacy", + "zh": "隐私" + }, + { + "id": "B1-U08-R62", + "en": "puppy", + "zh": "小狗" + }, + { + "id": "B1-U08-R63", + "en": "rearrange", + "zh": "重新布置" + }, + { + "id": "B1-U08-R64", + "en": "remove", + "zh": "移走" + }, + { + "id": "B1-U08-R65", + "en": "renew", + "zh": "续约" + }, + { + "id": "B1-U08-R66", + "en": "saucepan", + "zh": "炖锅" + }, + { + "id": "B1-U08-R67", + "en": "smoker", + "zh": "吸烟者" + }, + { + "id": "B1-U08-R68", + "en": "sort", + "zh": "分类" + }, + { + "id": "B1-U08-R69", + "en": "storage", + "zh": "储藏" + }, + { + "id": "B1-U08-R70", + "en": "term", + "zh": "期限" + }, + { + "id": "B1-U08-R71", + "en": "tile", + "zh": "瓷砖" + }, + { + "id": "B1-U08-R72", + "en": "trash", + "zh": "垃圾" + }, + { + "id": "B1-U08-R73", + "en": "unpack", + "zh": "打开行李" + }, + { + "id": "B1-U08-R74", + "en": "wardrobe", + "zh": "衣柜" + }, + { + "id": "B1-U08-R75", + "en": "waste", + "zh": "废物;垃圾" + }, + { + "id": "B1-U08-R76", + "en": "wire", + "zh": "电线" + } + ], + "segments": [ + { + "id": "B1-U08-S1", + "title": "找房与约看房", + "minutes": 12, + "itemIds": [ + "B1-U08-P01", + "B1-U08-P10", + "B1-U08-P05", + "B1-U08-W01" + ], + "listening": { + "text": "Hello, I saw your flat online. I'm looking for a place to rent. Is the flat on Hill Road still free? Yes, it is. Is it furnished? Yes, it has a bed, a sofa and a desk. Great. Can I come and see it? Sure, how about Saturday at ten?", + "question": "看房时间约在什么时候?", + "options": [ + "周六十点", + "周日十点", + "周六下午" + ] + }, + "speaking": [ + { + "text": "I'm looking for a place to rent." + }, + { + "text": "Is it furnished?", + "tip": "furnished 读 /ˈfɜːnɪʃt/" + }, + { + "text": "Can I come and see it?" + }, + { + "text": "My landlord lives downstairs.", + "tip": "landlord 重音在前" + } + ], + "reading": { + "text": "Flat to rent\nHill Road, near the park\nOne bedroom, furnished: bed, sofa, desk, fridge\n900 pounds a month\nNo pets\nPlease call the landlord, Mike, to come and see it.", + "question": "这套公寓的条件哪一项是对的?", + "options": [ + "带家具", + "可以养宠物", + "有两个卧室" + ] + }, + "writing": { + "prompt": "写两句话:说你在找房子租,问能不能去看房。", + "example": "I'm looking for a place to rent. Can I come and see it?", + "itemIds": [ + "B1-U08-P01", + "B1-U08-P10" + ] + }, + "independent": { + "prompt": "用英语问房子带不带家具,并说你要给房东打电话。", + "itemIds": [ + "B1-U08-P05", + "B1-U08-W01" + ] + } + }, + { + "id": "B1-U08-S2", + "title": "问清费用", + "minutes": 10, + "itemIds": [ + "B1-U08-P02", + "B1-U08-P03", + "B1-U08-P04" + ], + "listening": { + "text": "How much is the rent a month? It's 900 pounds. Are bills included? Water and internet are included, but not gas and electric. How much is the deposit? One month's rent.", + "question": "哪些费用包含在房租里?", + "options": [ + "水费和网费", + "燃气费", + "所有费用" + ] + }, + "speaking": [ + { + "text": "How much is the rent a month?" + }, + { + "text": "Are bills included?", + "tip": "bills 和 included 都要读清楚" + }, + { + "text": "How much is the deposit?", + "tip": "deposit 读 /dɪˈpɒzɪt/" + } + ], + "reading": { + "text": "Costs\nRent: 900 pounds a month\nBills included: water, internet\nNot included: gas, electric\nDeposit: one month's rent. You get it back when you leave, if the flat is clean and nothing is broken.", + "question": "什么情况下能拿回押金?", + "options": [ + "离开时房子干净、没有损坏", + "住满一年", + "每月按时交房租" + ] + }, + "writing": { + "prompt": "写两句话:问月租多少,是否包括水电费。", + "example": "How much is the rent a month? Are bills included?", + "itemIds": [ + "B1-U08-P02", + "B1-U08-P03" + ] + }, + "independent": { + "prompt": "用英语问押金是多少。", + "itemIds": [ + "B1-U08-P04" + ] + } + }, + { + "id": "B1-U08-S3", + "title": "入住与退租", + "minutes": 10, + "itemIds": [ + "B1-U08-P06", + "B1-U08-P07", + "B1-U08-P09" + ], + "listening": { + "text": "When can I move in? On the first of May. And if something breaks? Who do I call if something breaks? Call me, and I'll fix it. How much notice do I need to give? One month.", + "question": "退租要提前多久通知?", + "options": [ + "一个月", + "一周", + "三个月" + ] + }, + "speaking": [ + { + "text": "When can I move in?" + }, + { + "text": "Who do I call if something breaks?" + }, + { + "text": "How much notice do I need to give?", + "tip": "notice 读 /ˈnəʊtɪs/" + } + ], + "reading": { + "text": "Before you move in\nYou can move in on the first of the month.\nIf something breaks, call the landlord. Don't try to fix it yourself.\nYou need to give one month's notice before you leave.\nPlease leave the keys in the kitchen when you go.", + "question": "东西坏了应该怎么做?", + "options": [ + "给房东打电话", + "自己修好", + "去商店买新的" + ] + }, + "writing": { + "prompt": "写两句话:问什么时候能搬进来,退租要提前多久通知。", + "example": "When can I move in? How much notice do I need to give?", + "itemIds": [ + "B1-U08-P06", + "B1-U08-P07" + ] + }, + "independent": { + "prompt": "用英语问东西坏了应该找谁。", + "itemIds": [ + "B1-U08-P09" + ] + } + }, + { + "id": "B1-U08-S4", + "title": "住户规则", + "minutes": 12, + "itemIds": [ + "B1-U08-P08", + "B1-U08-P11", + "B1-U08-P12", + "B1-U08-W02" + ], + "listening": { + "text": "Welcome to the building. A few rules: the rubbish goes out on Mondays, and the recycling goes in the green bin. Please keep the noise down after 10. And sorry, pets aren't allowed.", + "question": "可回收垃圾放在哪里?", + "options": [ + "绿色垃圾桶", + "楼门口", + "厨房里" + ] + }, + "speaking": [ + { + "text": "Are pets allowed?" + }, + { + "text": "The rubbish goes out on Mondays.", + "tip": "rubbish 读 /ˈrʌbɪʃ/" + }, + { + "text": "The recycling goes in the green bin." + }, + { + "text": "Please keep the noise down after 10." + } + ], + "reading": { + "text": "House rules\n1. The rubbish goes out on Monday morning.\n2. The recycling goes in the green bin.\n3. Please keep the noise down after 10 p.m.\n4. Pets are not allowed.\n5. No smoking in the building.", + "question": "哪一条规则是对的?", + "options": [ + "楼里不许吸烟", + "可以养小狗", + "垃圾周五拿出去" + ] + }, + "writing": { + "prompt": "写两句话:说周一倒垃圾,十点以后请保持安静。", + "example": "The rubbish goes out on Mondays. Please keep the noise down after 10.", + "itemIds": [ + "B1-U08-P11", + "B1-U08-P12" + ] + }, + "independent": { + "prompt": "用英语问可不可以养宠物,并问可回收垃圾放在哪里。", + "itemIds": [ + "B1-U08-P08", + "B1-U08-W02" + ] + } + } + ], + "scenes": [ + { + "id": "B1-U08-C1", + "kind": "main", + "title": "打电话问房子并约看房", + "learnerRole": "想租房的人", + "aiRole": "房东", + "setting": "你在网上看到 Hill Road 有一套公寓出租,打电话给房东。", + "turns": [ + { + "ai": "Hello, Mike speaking.", + "goal": "说在找房子,问是不是房东", + "model": "Hi. I'm looking for a place to rent. Are you the landlord of the flat on Hill Road?", + "zh": "你好。我在找房子租。你是 Hill Road 那套公寓的房东吗?", + "itemIds": [ + "B1-U08-P01", + "B1-U08-W01" + ] + }, + { + "ai": "Yes, I am. It's still free.", + "goal": "问月租和费用", + "model": "Great. How much is the rent a month? Are bills included?", + "zh": "太好了。月租多少?包括水电网费吗?", + "itemIds": [ + "B1-U08-P02", + "B1-U08-P03" + ] + }, + { + "ai": "It's 900 pounds, with water and internet included.", + "goal": "问押金和家具", + "model": "How much is the deposit? And is it furnished?", + "zh": "押金多少?带家具吗?", + "itemIds": [ + "B1-U08-P04", + "B1-U08-P05" + ] + }, + { + "ai": "The deposit is one month's rent, and yes, it's furnished.", + "goal": "约看房", + "model": "Can I come and see it this Saturday?", + "zh": "这周六我能去看看吗?", + "itemIds": [ + "B1-U08-P10" + ] + }, + { + "ai": "Sure. Ten o'clock is fine.", + "goal": "问什么时候能搬进去", + "model": "Thanks. And when can I move in?", + "zh": "谢谢。我什么时候能搬进去?", + "itemIds": [ + "B1-U08-P06" + ] + }, + { + "ai": "From the first of May. See you on Saturday.", + "goal": "道别", + "model": "See you on Saturday. Bye.", + "zh": "周六见,再见。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U08-C2", + "kind": "variant", + "title": "看房时问规则", + "learnerRole": "想租房的人", + "aiRole": "房东", + "setting": "你在看 Hill Road 的公寓,想问清几条规定再决定。", + "turns": [ + { + "ai": "So, this is the living room. What do you think?", + "goal": "说喜欢,问能否养宠物", + "model": "It's really nice. Are pets allowed? I have a small cat.", + "zh": "很不错。可以养宠物吗?我有一只小猫。", + "itemIds": [ + "B1-U08-P08" + ] + }, + { + "ai": "A small cat is OK.", + "goal": "问东西坏了找谁", + "model": "Good. Who do I call if something breaks?", + "zh": "好。东西坏了我找谁?", + "itemIds": [ + "B1-U08-P09" + ] + }, + { + "ai": "Just call me. I live nearby.", + "goal": "问退租通知期", + "model": "And how much notice do I need to give if I leave?", + "zh": "如果我要搬走,得提前多久通知?", + "itemIds": [ + "B1-U08-P07" + ] + }, + { + "ai": "One month.", + "goal": "表示满意", + "model": "That's fine. I think I'll take it.", + "zh": "可以。我想我租了。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U08-C3", + "kind": "variant", + "title": "和新室友聊规则", + "learnerRole": "新搬来的租客", + "aiRole": "合租室友", + "setting": "你刚搬进合租公寓,室友 Nina 给你介绍规矩。", + "turns": [ + { + "ai": "Hi, welcome! Let me tell you how things work here.", + "goal": "问垃圾哪天拿出去", + "model": "Thanks. When does the rubbish go out?", + "zh": "谢谢。垃圾哪天拿出去?", + "itemIds": [] + }, + { + "ai": "The rubbish goes out on Mondays.", + "goal": "复述并问可回收垃圾", + "model": "OK, so the rubbish goes out on Mondays. Where does the recycling go?", + "zh": "好,周一倒垃圾。可回收垃圾放哪里?", + "itemIds": [ + "B1-U08-P11", + "B1-U08-W02" + ] + }, + { + "ai": "In the green bin, outside the kitchen door.", + "goal": "问有没有安静时间", + "model": "Got it. Is there a quiet time at night?", + "zh": "明白。晚上有安静时间吗?", + "itemIds": [] + }, + { + "ai": "Yes. The neighbors ask us to keep the noise down after 10.", + "goal": "答应", + "model": "No problem. I'll keep the noise down after 10.", + "zh": "没问题,十点以后我会小声点。", + "itemIds": [ + "B1-U08-P12" + ] + } + ] + } + ], + "tasks": [ + { + "id": "B1-U08-T1", + "sceneId": "B1-U08-C1", + "goal": "打电话问清房子情况并约看房", + "itemIds": [ + "B1-U08-P01", + "B1-U08-W01", + "B1-U08-P02", + "B1-U08-P03", + "B1-U08-P04", + "B1-U08-P05", + "B1-U08-P10", + "B1-U08-P06" + ], + "slots": [ + "找房", + "费用", + "看房", + "入住" + ] + }, + { + "id": "B1-U08-T2", + "sceneId": "B1-U08-C2", + "goal": "看房时问清规则", + "itemIds": [ + "B1-U08-P08", + "B1-U08-P09", + "B1-U08-P07" + ], + "slots": [ + "宠物", + "维修", + "退租" + ] + }, + { + "id": "B1-U08-T3", + "sceneId": "B1-U08-C3", + "goal": "和室友确认住户规则", + "itemIds": [ + "B1-U08-P11", + "B1-U08-W02", + "B1-U08-P12" + ], + "slots": [ + "垃圾", + "回收", + "安静" + ] + } + ], + "materials": [ + { + "id": "B1-U08-M1", + "mode": "listening", + "title": "对话:看房", + "text": "Mike: Hi, you must be Jenny. Come in. I'm Mike, the landlord.\nJenny: Hi, Mike. Thanks for showing me the flat.\nMike: No problem. So, this is the living room. As you can see, it's fully furnished: sofa, carpet, cushions, a new duvet, and there's a big wardrobe and a chest of drawers in the bedroom.\nJenny: It's lovely and bright. Is the heating electric?\nMike: Yes, there's an electric heater in each room. The electricity isn't included in the rent, but the flat is well insulated, so the bills are quite low.\nJenny: And the kitchen?\nMike: It's through here. There's a fridge with a small freezer, a dishwasher, a kettle, a jug, and all the pots and saucepans. The tiles behind the basin are new; I replaced them last year. The kitchen table wasn't very stable, so I had to tighten the legs.\nJenny: Great. I noticed a damp smell in the hall. Is there a problem with the pipes?\nMike: Good question. There was a leak in the basement in the winter, but a plumber mended it, and it's been fine since then. I do all the maintenance quickly. If something breaks, just call me. I don't mind if you do small repairs, like putting up a shelf, but please don't try to change any electrical wires yourself.\nJenny: Of course. What about storage? I have a bike.\nMike: There's a storage room in the basement where you can keep it. It's locked, so it's secure.\nJenny: Perfect. Now, how much is the rent a month?\nMike: It's 950 pounds. That includes water and internet. The deposit is one month's rent, and the term of the agreement is twelve months. After that, you can renew it every six months if you want to.\nJenny: How much notice do I need to give if I want to leave?\nMike: Two months, in writing.\nJenny: And what's the neighbourhood like?\nMike: It's very quiet. The people next door are an older couple, and they're lovely. There's a supermarket at the end of the street, and the bus stop is two minutes away. There's also a small park with a pond. There are lots of shops, but there isn't any noisy nightlife. From the bedroom you can even see a skyscraper in the distance.\nJenny: Are pets allowed? I'm thinking of getting a kitten.\nMike: A cat is fine, but no puppies, please. The last tenant had a dog, and it made the garden very dirty.\nJenny: I understand. Are there any insects?\nMike: In summer you might see a few ants or a spider, but nothing serious.\nJenny: OK. When can I move in?\nMike: From the first of next month. If you want it, I'll need the deposit by Friday, and then we can both sign.\nJenny: I think I'll take it. Can I send you a message tomorrow morning?\nMike: Sure. Take your time.", + "glosses": { + "insulated": "保温的", + "leak": "漏水", + "plumber": "水管工", + "tenant": "租客" + }, + "questions": [ + { + "type": "gist", + "question": "这段对话主要是什么内容?", + "options": [ + "詹妮和房东一起看房并问租房条件", + "詹妮投诉房子漏水", + "詹妮帮房东打扫房子" + ] + }, + { + "type": "detail", + "question": "詹妮的自行车可以放在哪里?", + "options": [ + "地下室的储藏室", + "卧室里", + "门口的花园" + ] + }, + { + "type": "inference", + "question": "房东为什么不欢迎狗?", + "options": [ + "上一个租客的狗把花园弄得一团糟", + "邻居对狗过敏", + "楼里太小放不下狗笼" + ] + } + ] + }, + { + "id": "B1-U08-M2", + "mode": "listening", + "title": "讲话:新住户须知", + "text": "Good evening, everyone, and welcome to Oak Court. My name is Leo, and I'm the building manager. Since many of you are newcomers, I'd like to explain how things work here, so that everyone can live together happily.\nLet's start with rubbish. The rubbish goes out on Monday and Thursday mornings. Please put it in the large dustbins behind the building, not on the street. We try to reduce waste, so please sort your recycling: paper and cardboard go in the blue bin, glass goes in the green bin, and plastic and cans go in the yellow bin. Food waste goes in the small brown bin, and it's used to make compost for the gardening club's greenhouse on the roof. Please don't put anything sticky or full of dirt in the recycling, and don't leave trash in the stairs or in the lift. It's messy and untidy, and it attracts insects.\nNext, noise. The walls here are quite thin, so please be careful. Please keep the noise down after 10 p.m. and before 8 a.m. Walk lightly on the stairs at night, and don't close doors noisily. If you're having a party, it's a good idea to tell your neighbors first. If a neighbor is causing a disturbance, please try talking to them politely before you contact me. Most problems are easy to deal with.\nThird, pets. Cats and small animals in a cage, like birds, are allowed. Dogs are not allowed, because the building doesn't have a garden.\nSmoking isn't allowed inside the building, including on balconies. Smokers can use the area next to the car park.\nNow, maintenance. If something breaks in your flat, fill in a form online or call me. For urgent problems, like a burst pipe or no electricity, call the emergency number on the noticeboard in the entrance hall. Please don't use a ladder to change the lights in the hall yourself; that's my job. And please don't install anything on the outside walls without asking first.\nWe also have a laundry room in the basement with washing machines and dryers. You can book a time on the noticeboard. There's an iron and an ironing board there too. Please clean the filter of the dryer after you use it, and don't hang wet clothes on your balcony.\nFinally, privacy and security. Don't let people you don't know into the building. If a delivery person rings, ask for their name. And please check that the main door is closed behind you.\nIf you have any questions, my office is on the first floor. I'm there every morning from nine to twelve. Thank you, and I hope you'll enjoy living here.", + "glosses": { + "cardboard": "纸板", + "compost": "堆肥", + "laundry": "洗衣", + "dryers": "烘干机" + }, + "questions": [ + { + "type": "gist", + "question": "这段讲话主要讲什么?", + "options": [ + "大楼的住户规则", + "怎样找到便宜的公寓", + "城市的垃圾处理厂" + ] + }, + { + "type": "detail", + "question": "玻璃应该放进什么颜色的垃圾桶?", + "options": [ + "绿色", + "蓝色", + "黄色" + ] + }, + { + "type": "inference", + "question": "为什么大楼不允许养狗?", + "options": [ + "楼里没有花园", + "墙太薄", + "邻居害怕狗" + ] + } + ] + }, + { + "id": "B1-U08-M3", + "mode": "reading", + "title": "租房合同要点与公告栏", + "text": "Your tenancy agreement: the most important things\nThis is a short summary of your agreement with your landlord. Please read the full agreement before you sign.\nRent and deposit\nThe rent is 950 pounds per month, paid on the first day of each month. Your monthly rent includes water and internet. You pay for electricity and gas yourself. Your deposit of 950 pounds is kept safely by an independent company. You will get it back at the end of your stay, minus the cost of any damage.\nLooking after the flat\nYou must keep the flat clean and in good condition. Use a soft sponge on the kitchen surfaces. Small marks on the walls are normal, and so is a thin layer of dust, but damage caused by carelessness is not. Please don't let the flat get damp: moisture from cooking and showers can cause damp, so open the windows and dry your clothes outside or in the laundry room. Don't put nails or pins into the walls without asking the landlord. Don't rearrange the furniture in a way that blocks the heaters.\nRepairs\nThe landlord is responsible for repairs to the building, the pipes, the electrical wires and any furniture that he supplies. Report any problem quickly, because small problems can turn into expensive ones. If you break something, for instance a glass shelf, you will have to pay for it.\nHousehold rules\nShared facilities include the laundry room and the bike storage in the basement.\nNo smoking inside the flat. Pets are allowed only with written permission. Please keep the noise down after 10 p.m. You must not rent the flat, or a room in it, to anyone else.\nLeaving\nThe term of the agreement is twelve months. You can renew it for another six or twelve months. If you want to leave at the end of the term, you must give two months' notice in writing. When you move in, check everything before you unpack, and tell the landlord about any damage. When you leave, remove all your things, clean the flat, and return all keys.\n\nFrom the noticeboard\nLost: a small black and white kitten, next-door to number 12. Please call Nina.\nFor sale: an old sewing machine, a set of needles, a hammer and a ladder. Cheap!\nGardening club: we meet in the greenhouse every Sunday at 10. Newcomers welcome!\nPlease don't leave bikes in the hall. We hope all our newcomers settle in quickly. Thank you, Leo.", + "glosses": { + "tenancy": "租赁", + "summary": "摘要", + "permission": "许可", + "laundry": "洗衣", + "sewing": "缝纫" + }, + "questions": [ + { + "type": "gist", + "question": "这份文字主要是什么?", + "options": [ + "租房合同要点和大楼公告", + "酒店的入住须知", + "家具店的广告" + ] + }, + { + "type": "detail", + "question": "想在合同期满时搬走,需要怎么做?", + "options": [ + "提前两个月书面通知", + "提前一周打电话", + "直接把钥匙留下" + ] + }, + { + "type": "inference", + "question": "为什么要尽快报告小问题?", + "options": [ + "小问题拖久了修起来很贵", + "房东会给奖励", + "不报告就会被赶走" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "问清租房信息", + "bands": [ + "问不出关键信息", + "能问房租或押金,但漏掉重要条件", + "问清房租、费用、押金、入住和退租条件" + ], + "pass": 1 + }, + { + "name": "理解并遵守规则", + "bands": [ + "没听懂规则", + "能理解部分规则", + "准确复述垃圾、噪音和宠物等规则并回应" + ], + "pass": 1 + } + ] + }, + "excluded": [] +} diff --git a/kouyu_english/assets/courses/B1/B1-U09.json b/kouyu_english/assets/courses/B1/B1-U09.json new file mode 100644 index 0000000..e407b54 --- /dev/null +++ b/kouyu_english/assets/courses/B1/B1-U09.json @@ -0,0 +1,1344 @@ +{ + "schemaVersion": 1, + "id": "B1-U09", + "revision": 1, + "level": "B1", + "title": "生活服务", + "categories": [ + "日常" + ], + "canDo": "办银行和手机卡业务、寄收快递、预约维修", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "zhang", + "wei", + "chloe", + "jack", + "citybank", + "quickpost", + "fastfix", + "tom", + "qp" + ], + "grammar": [ + { + "id": "142", + "use": "active" + }, + { + "id": "69", + "use": "active" + }, + { + "id": "73", + "use": "active" + }, + { + "id": "156", + "use": "active" + }, + { + "id": "82", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "B1-U09-P01", + "type": "phrase", + "en": "I'd like to open a bank account.", + "zh": "我想开一个银行账户。", + "sceneWord": false, + "match": [ + [ + "open a bank account", + "open an account" + ] + ], + "example": { + "en": "I'd like to open an account for my salary.", + "zh": "我想开个账户收工资。" + }, + "review": { + "prompt": "在银行说你想开户。" + } + }, + { + "id": "B1-U09-P02", + "type": "phrase", + "en": "What do I need to bring?", + "zh": "我需要带什么?", + "sceneWord": false, + "match": [ + [ + "need to bring" + ] + ], + "example": { + "en": "What do I need to bring to open an account?", + "zh": "开户需要带什么?" + }, + "review": { + "prompt": "问办业务需要带哪些材料。" + } + }, + { + "id": "B1-U09-P03", + "type": "phrase", + "en": "Is there a monthly fee?", + "zh": "有月费吗?", + "sceneWord": false, + "match": [ + [ + "monthly fee" + ] + ], + "example": { + "en": "Is there a monthly fee for this phone plan?", + "zh": "这个手机套餐有月费吗?" + }, + "review": { + "prompt": "问这张卡要不要交月费。" + } + }, + { + "id": "B1-U09-P04", + "type": "phrase", + "en": "I'd like to send money to China.", + "zh": "我想往中国汇款。", + "sceneWord": false, + "match": [ + [ + "send money", + "transfer money" + ] + ], + "example": { + "en": "I'd like to transfer money to my parents' account.", + "zh": "我想转账到我父母的账户。" + }, + "review": { + "prompt": "说你想给家里汇钱。" + } + }, + { + "id": "B1-U09-P05", + "type": "phrase", + "en": "I'd like to top up my phone.", + "zh": "我想给手机充值。", + "sceneWord": false, + "match": [ + [ + "top up" + ] + ], + "example": { + "en": "Can I top up my phone here?", + "zh": "这里可以给手机充值吗?" + }, + "review": { + "prompt": "在便利店说你想充话费。" + } + }, + { + "id": "B1-U09-P06", + "type": "phrase", + "en": "I'd like to send this parcel to China.", + "zh": "我想把这个包裹寄到中国。", + "sceneWord": false, + "match": [ + [ + "send this parcel", + "send this package" + ] + ], + "example": { + "en": "How much does it cost to send this parcel to Shanghai?", + "zh": "把这个包裹寄到上海要多少钱?" + }, + "review": { + "prompt": "在邮局说你要寄包裹回国。" + } + }, + { + "id": "B1-U09-P07", + "type": "phrase", + "en": "When will it arrive?", + "zh": "什么时候能到?", + "sceneWord": false, + "match": [ + [ + "will it arrive" + ] + ], + "example": { + "en": "If I send it today, when will it arrive?", + "zh": "如果今天寄,什么时候到?" + }, + "review": { + "prompt": "问包裹大概什么时候到。" + } + }, + { + "id": "B1-U09-P08", + "type": "phrase", + "en": "Can I track it online?", + "zh": "可以在网上查物流吗?", + "sceneWord": false, + "match": [ + [ + "track it", + "track my", + "track the", + "track your" + ] + ], + "example": { + "en": "You can track your parcel with this number.", + "zh": "你可以用这个号码查包裹物流。" + }, + "review": { + "prompt": "问能不能在网上查包裹。" + } + }, + { + "id": "B1-U09-P09", + "type": "phrase", + "en": "I missed a delivery.", + "zh": "我错过了一次派送。", + "sceneWord": false, + "match": [ + [ + "missed a delivery", + "missed the delivery" + ] + ], + "example": { + "en": "I missed the delivery because I was at work.", + "zh": "我在上班,所以错过了派送。" + }, + "review": { + "prompt": "打电话说你错过了快递派送。" + } + }, + { + "id": "B1-U09-P10", + "type": "phrase", + "en": "I'd like to book a repair.", + "zh": "我想预约维修。", + "sceneWord": false, + "match": [ + [ + "book a repair", + "arrange a repair" + ] + ], + "example": { + "en": "I'd like to book a repair for my washing machine.", + "zh": "我想预约修洗衣机。" + }, + "review": { + "prompt": "打电话说想预约修冰箱。" + } + }, + { + "id": "B1-U09-P11", + "type": "phrase", + "en": "Is anyone free on Thursday?", + "zh": "周四有人有空吗?", + "sceneWord": false, + "match": [ + [ + "anyone free", + "someone free" + ] + ], + "example": { + "en": "Is anyone free to come tomorrow morning?", + "zh": "明天早上有人能来吗?" + }, + "review": { + "prompt": "问维修公司周五有没有人有空。" + } + }, + { + "id": "B1-U09-P12", + "type": "phrase", + "en": "Which time slot is best for you?", + "zh": "哪个时间段对你最合适?", + "sceneWord": false, + "match": [ + [ + "time slot", + "slot" + ] + ], + "example": { + "en": "We have a time slot between 2 and 5 p.m.", + "zh": "我们有下午 2 点到 5 点的时间段。" + }, + "review": { + "prompt": "问对方有哪些时间段可以选。" + } + }, + { + "id": "B1-U09-W01", + "type": "word", + "en": "application", + "zh": "申请;申请表", + "sceneWord": false, + "match": [ + [ + "application", + "applications" + ] + ], + "example": { + "en": "Please fill in this application form.", + "zh": "请填写这张申请表。" + }, + "review": { + "prompt": "说你已经填好了申请表。" + } + }, + { + "id": "B1-U09-W02", + "type": "word", + "en": "postman", + "zh": "邮递员", + "sceneWord": false, + "match": [ + [ + "postman", + "postmen" + ] + ], + "example": { + "en": "The postman left a card under the door.", + "zh": "邮递员在门下留了张卡片。" + }, + "review": { + "prompt": "说邮递员来的时候你不在家。" + } + } + ], + "receptiveWords": [ + { + "id": "B1-U09-R01", + "en": "aim", + "zh": "目标;力求" + }, + { + "id": "B1-U09-R02", + "en": "current account", + "zh": "活期账户" + }, + { + "id": "B1-U09-R03", + "en": "reliable", + "zh": "可靠的" + }, + { + "id": "B1-U09-R04", + "en": "protection", + "zh": "保护" + }, + { + "id": "B1-U09-R05", + "en": "studio", + "zh": "工作室" + }, + { + "id": "B1-U09-R06", + "en": "membership", + "zh": "会员资格" + }, + { + "id": "B1-U09-R07", + "en": "teller", + "zh": "银行柜员" + }, + { + "id": "B1-U09-R08", + "en": "video clip", + "zh": "视频片段" + }, + { + "id": "B1-U09-R09", + "en": "link", + "zh": "链接" + }, + { + "id": "B1-U09-R10", + "en": "log in", + "zh": "登录" + }, + { + "id": "B1-U09-R11", + "en": "network", + "zh": "网络" + }, + { + "id": "B1-U09-R12", + "en": "update", + "zh": "更新" + }, + { + "id": "B1-U09-R13", + "en": "upload", + "zh": "上传" + }, + { + "id": "B1-U09-R14", + "en": "individual", + "zh": "个人的;单独的" + }, + { + "id": "B1-U09-R15", + "en": "enable", + "zh": "使能够" + }, + { + "id": "B1-U09-R16", + "en": "format", + "zh": "格式" + }, + { + "id": "B1-U09-R17", + "en": "income", + "zh": "收入" + }, + { + "id": "B1-U09-R18", + "en": "profession", + "zh": "职业" + }, + { + "id": "B1-U09-R19", + "en": "instructor", + "zh": "教练;指导员" + }, + { + "id": "B1-U09-R20", + "en": "keyboard", + "zh": "键盘" + }, + { + "id": "B1-U09-R21", + "en": "delete", + "zh": "删除" + }, + { + "id": "B1-U09-R22", + "en": "carton", + "zh": "纸箱" + }, + { + "id": "B1-U09-R23", + "en": "attach", + "zh": "附上" + }, + { + "id": "B1-U09-R24", + "en": "mailbox", + "zh": "邮箱;信箱" + }, + { + "id": "B1-U09-R25", + "en": "postcard", + "zh": "明信片" + }, + { + "id": "B1-U09-R26", + "en": "hairdresser", + "zh": "理发师" + }, + { + "id": "B1-U09-R27", + "en": "mechanic", + "zh": "机修工" + }, + { + "id": "B1-U09-R28", + "en": "balance", + "zh": "余额" + }, + { + "id": "B1-U09-R29", + "en": "full-time", + "zh": "全职的" + }, + { + "id": "B1-U09-R30", + "en": "social networking", + "zh": "社交网络" + }, + { + "id": "B1-U09-R31", + "en": "disc", + "zh": "光盘" + }, + { + "id": "B1-U09-R32", + "en": "currently", + "zh": "目前" + }, + { + "id": "B1-U09-R33", + "en": "joint", + "zh": "联合的;共同的" + }, + { + "id": "B1-U09-R34", + "en": "typical", + "zh": "典型的" + }, + { + "id": "B1-U09-R35", + "en": "hand-held", + "zh": "手持的" + }, + { + "id": "B1-U09-R36", + "en": "handy", + "zh": "方便的" + }, + { + "id": "B1-U09-R37", + "en": "accurate", + "zh": "准确的" + }, + { + "id": "B1-U09-R38", + "en": "up-to-date", + "zh": "最新的" + }, + { + "id": "B1-U09-R39", + "en": "incorrect", + "zh": "不正确的" + }, + { + "id": "B1-U09-R40", + "en": "windscreen", + "zh": "挡风玻璃" + }, + { + "id": "B1-U09-R41", + "en": "motor", + "zh": "马达" + }, + { + "id": "B1-U09-R42", + "en": "pump", + "zh": "泵" + }, + { + "id": "B1-U09-R43", + "en": "tank", + "zh": "油箱" + }, + { + "id": "B1-U09-R44", + "en": "gallon", + "zh": "加仑" + }, + { + "id": "B1-U09-R45", + "en": "vacancy", + "zh": "空缺职位" + }, + { + "id": "B1-U09-R46", + "en": "part-time", + "zh": "兼职的" + }, + { + "id": "B1-U09-R47", + "en": "career", + "zh": "职业生涯" + }, + { + "id": "B1-U09-R48", + "en": "industry", + "zh": "行业" + }, + { + "id": "B1-U09-R49", + "en": "monitor", + "zh": "显示器" + }, + { + "id": "B1-U09-R50", + "en": "webcam", + "zh": "网络摄像头" + }, + { + "id": "B1-U09-R51", + "en": "blogger", + "zh": "博主" + }, + { + "id": "B1-U09-R52", + "en": "blog", + "zh": "博客" + }, + { + "id": "B1-U09-R53", + "en": "graphic", + "zh": "图表;图形" + }, + { + "id": "B1-U09-R54", + "en": "rise", + "zh": "上升" + }, + { + "id": "B1-U09-R55", + "en": "decrease", + "zh": "减少" + }, + { + "id": "B1-U09-R56", + "en": "calculator", + "zh": "计算器" + }, + { + "id": "B1-U09-R57", + "en": "debt", + "zh": "债务" + }, + { + "id": "B1-U09-R58", + "en": "invest", + "zh": "投资" + }, + { + "id": "B1-U09-R59", + "en": "adviser", + "zh": "顾问" + }, + { + "id": "B1-U09-R60", + "en": "face-to-face", + "zh": "面对面的" + }, + { + "id": "B1-U09-R61", + "en": "safeguard", + "zh": "保护" + }, + { + "id": "B1-U09-R62", + "en": "server", + "zh": "服务器" + }, + { + "id": "B1-U09-R63", + "en": "organisation", + "zh": "组织;机构" + }, + { + "id": "B1-U09-R64", + "en": "measure", + "zh": "测量" + }, + { + "id": "B1-U09-R65", + "en": "measurement", + "zh": "尺寸" + }, + { + "id": "B1-U09-R66", + "en": "handwriting", + "zh": "笔迹;书写" + }, + { + "id": "B1-U09-R67", + "en": "alphabet", + "zh": "字母表" + }, + { + "id": "B1-U09-R68", + "en": "occasionally", + "zh": "偶尔" + }, + { + "id": "B1-U09-R69", + "en": "unclear", + "zh": "不清楚的" + }, + { + "id": "B1-U09-R70", + "en": "retail park", + "zh": "零售园区" + } + ], + "segments": [ + { + "id": "B1-U09-S1", + "title": "在银行开户", + "minutes": 13, + "itemIds": [ + "B1-U09-P01", + "B1-U09-P02", + "B1-U09-P03", + "B1-U09-W01" + ], + "listening": { + "text": "Good morning. I'd like to open a bank account. What do I need to bring? Your passport and something with your address on it, like a letter from your school. Is there a monthly fee? No, it's free for students. Please fill in this application form.", + "question": "这家银行的学生账户有月费吗?", + "options": [ + "没有,学生免费", + "每月五英镑", + "第一年免费" + ] + }, + "speaking": [ + { + "text": "I'd like to open a bank account." + }, + { + "text": "What do I need to bring?" + }, + { + "text": "Is there a monthly fee?", + "tip": "monthly 读 /ˈmʌnθli/" + }, + { + "text": "Please fill in this application form.", + "tip": "application 重音在第三个音节" + } + ], + "reading": { + "text": "Opening an account\nWhat you need to bring:\n- your passport\n- something with your address on it, for instance a letter from your school or your landlord\nThere is no monthly fee for students.\nFill in the application form, and we will send your card in 7 days.", + "question": "银行卡多久寄到?", + "options": [ + "7 天", + "1 天", + "一个月" + ] + }, + "writing": { + "prompt": "写两句话:说你想开银行账户,问需要带什么。", + "example": "I'd like to open a bank account. What do I need to bring?", + "itemIds": [ + "B1-U09-P01", + "B1-U09-P02" + ] + }, + "independent": { + "prompt": "用英语问有没有月费,并说申请表已经填好了。", + "itemIds": [ + "B1-U09-P03", + "B1-U09-W01" + ] + } + }, + { + "id": "B1-U09-S2", + "title": "汇款与手机充值", + "minutes": 10, + "itemIds": [ + "B1-U09-P04", + "B1-U09-P05" + ], + "listening": { + "text": "Hi. I'd like to send money to China. You can do that online or here at the desk. It costs 10 pounds. OK, I'll do it here. And can I top up my phone here too? Sorry, you need a shop for that.", + "question": "在哪里可以给手机充值?", + "options": [ + "商店里", + "银行柜台", + "邮局" + ] + }, + "speaking": [ + { + "text": "I'd like to send money to China." + }, + { + "text": "I'd like to top up my phone.", + "tip": "top up 连读" + }, + { + "text": "How much does it cost to send money?" + } + ], + "reading": { + "text": "Top up your phone\nYou can top up your phone in most shops, online or by text message.\nChoose 10, 20 or 30 pounds.\nYou will get a message when the money is on your phone.", + "question": "充值成功后会怎样?", + "options": [ + "收到一条短信", + "店员打电话给你", + "手机会关机" + ] + }, + "writing": { + "prompt": "写一句话:说你想往中国汇款。", + "example": "I'd like to send money to China.", + "itemIds": [ + "B1-U09-P04" + ] + }, + "independent": { + "prompt": "用英语说你想给手机充值。", + "itemIds": [ + "B1-U09-P05" + ] + } + }, + { + "id": "B1-U09-S3", + "title": "寄包裹与收快递", + "minutes": 14, + "itemIds": [ + "B1-U09-P06", + "B1-U09-P07", + "B1-U09-P08", + "B1-U09-P09", + "B1-U09-W02" + ], + "listening": { + "text": "I'd like to send this parcel to China. When will it arrive? In about ten days. Can I track it online? Yes, here's your number. Oh, and I missed a delivery yesterday. The postman left this card.", + "question": "包裹大约多久到?", + "options": [ + "十天左右", + "三天左右", + "一个月左右" + ] + }, + "speaking": [ + { + "text": "I'd like to send this parcel to China." + }, + { + "text": "When will it arrive?" + }, + { + "text": "Can I track it online?" + }, + { + "text": "I missed a delivery.", + "tip": "delivery 读 /dɪˈlɪvəri/" + }, + { + "text": "The postman left a card.", + "tip": "postman 读 /ˈpəʊstmən/" + } + ], + "reading": { + "text": "Sorry we missed you!\nThe postman tried to deliver a parcel for you today.\nYou can:\n- pick it up at the post office after 12 p.m. tomorrow. Bring this card and your ID.\n- ask us to deliver it again on another day.\nYou can track it online with this number: QP 4821 7730.", + "question": "取包裹要带什么?", + "options": [ + "这张卡片和身份证件", + "只带手机", + "包裹的照片" + ] + }, + "writing": { + "prompt": "写两句话:说你想寄这个包裹到中国,问什么时候到。", + "example": "I'd like to send this parcel to China. When will it arrive?", + "itemIds": [ + "B1-U09-P06", + "B1-U09-P07" + ] + }, + "independent": { + "prompt": "用英语问能不能网上查物流,并说你错过了派送,邮递员留了卡片。", + "itemIds": [ + "B1-U09-P08", + "B1-U09-P09", + "B1-U09-W02" + ] + } + }, + { + "id": "B1-U09-S4", + "title": "预约维修", + "minutes": 10, + "itemIds": [ + "B1-U09-P10", + "B1-U09-P11", + "B1-U09-P12" + ], + "listening": { + "text": "Hello, FastFix. Hi, I'd like to book a repair. My fridge isn't working. Is anyone free on Thursday? Yes. Which time slot is best for you: morning or afternoon? The morning, please.", + "question": "维修时间定在什么时候?", + "options": [ + "周四上午", + "周四下午", + "周五上午" + ] + }, + "speaking": [ + { + "text": "I'd like to book a repair." + }, + { + "text": "Is anyone free on Thursday?" + }, + { + "text": "Which time slot is best for you?", + "tip": "slot 读 /slɒt/" + } + ], + "reading": { + "text": "FastFix: book a repair\n1. Tell us what is broken.\n2. Choose a day.\n3. Choose a time slot: 8-12 or 12-5.\n4. We will text you when our worker is on the way.\nPlease be at home for the whole time slot.", + "question": "维修人员出发时会怎样通知你?", + "options": [ + "发短信", + "发邮件", + "不通知" + ] + }, + "writing": { + "prompt": "写两句话:说你想预约维修,问周四有没有人有空。", + "example": "I'd like to book a repair. Is anyone free on Thursday?", + "itemIds": [ + "B1-U09-P10", + "B1-U09-P11" + ] + }, + "independent": { + "prompt": "用英语问对方哪个时间段最合适。", + "itemIds": [ + "B1-U09-P12" + ] + } + } + ], + "scenes": [ + { + "id": "B1-U09-C1", + "kind": "main", + "title": "在银行开户和汇款", + "learnerRole": "留学生", + "aiRole": "银行柜员", + "setting": "你刚到英国读书,去银行开户,顺便问问怎么往家里汇款。", + "turns": [ + { + "ai": "Good morning. How can I help you?", + "goal": "说想开户", + "model": "Good morning. I'd like to open a bank account.", + "zh": "早上好。我想开一个银行账户。", + "itemIds": [ + "B1-U09-P01" + ] + }, + { + "ai": "Sure. Are you a student here?", + "goal": "说是学生,问要带什么", + "model": "Yes, I am. What do I need to bring?", + "zh": "是的。我需要带什么?", + "itemIds": [ + "B1-U09-P02" + ] + }, + { + "ai": "Your passport and a letter from your school.", + "goal": "递上材料和申请表", + "model": "Here they are. I've filled in the application form too.", + "zh": "给你。申请表我也填好了。", + "itemIds": [ + "B1-U09-W01" + ] + }, + { + "ai": "Thank you. Everything looks fine.", + "goal": "问月费", + "model": "Is there a monthly fee?", + "zh": "有月费吗?", + "itemIds": [ + "B1-U09-P03" + ] + }, + { + "ai": "No, student accounts are free.", + "goal": "问汇款", + "model": "Great. I'd also like to send money to China sometimes. Can I do that online?", + "zh": "太好了。我有时还想往中国汇款,可以在网上办吗?", + "itemIds": [ + "B1-U09-P04" + ] + }, + { + "ai": "Yes, you can do it online. There's a small fee.", + "goal": "道谢", + "model": "OK. Thank you for your help.", + "zh": "好的,谢谢你的帮助。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U09-C2", + "kind": "variant", + "title": "在便利店充值和寄包裹", + "learnerRole": "顾客", + "aiRole": "便利店店员", + "setting": "你去街角的便利店,那里可以充话费,也可以寄包裹。", + "turns": [ + { + "ai": "Hi there. What can I do for you?", + "goal": "说想充值", + "model": "Hi. I'd like to top up my phone, please. Twenty pounds.", + "zh": "你好。我想给手机充值,二十英镑。", + "itemIds": [ + "B1-U09-P05" + ] + }, + { + "ai": "OK, that's done. Anything else?", + "goal": "说要寄包裹", + "model": "Yes. I'd like to send this parcel to China.", + "zh": "还有,我想把这个包裹寄到中国。", + "itemIds": [ + "B1-U09-P06" + ] + }, + { + "ai": "Let me check the weight. It's 32 pounds.", + "goal": "问什么时候到", + "model": "OK. When will it arrive?", + "zh": "好的。什么时候能到?", + "itemIds": [ + "B1-U09-P07" + ] + }, + { + "ai": "In about ten days.", + "goal": "问能否网上查询", + "model": "Can I track it online?", + "zh": "可以在网上查物流吗?", + "itemIds": [ + "B1-U09-P08" + ] + }, + { + "ai": "Yes. The number is on your receipt.", + "goal": "道谢", + "model": "Great, thanks.", + "zh": "太好了,谢谢。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U09-C3", + "kind": "variant", + "title": "打电话重新安排派送", + "learnerRole": "收件人", + "aiRole": "快递公司客服", + "setting": "你昨天不在家,没收到快递,门下有一张卡片。", + "turns": [ + { + "ai": "QuickPost, how can I help?", + "goal": "说错过了派送", + "model": "Hi. I missed a delivery yesterday. The postman left a card under my door.", + "zh": "你好。我昨天错过了派送,邮递员在门下留了张卡片。", + "itemIds": [ + "B1-U09-P09", + "B1-U09-W02" + ] + }, + { + "ai": "Can you read me the number on the card?", + "goal": "读出号码", + "model": "Sure. It's QP 4821 7730.", + "zh": "好的,是 QP 4821 7730。", + "itemIds": [] + }, + { + "ai": "Thanks. We can deliver it again on Thursday.", + "goal": "问有没有人别的时间有空", + "model": "I'm at work on Thursday. Is anyone free on Saturday?", + "zh": "我周四上班。周六有人能送吗?", + "itemIds": [ + "B1-U09-P11" + ] + }, + { + "ai": "Yes, Saturday morning is fine.", + "goal": "确认", + "model": "Perfect. Thank you.", + "zh": "太好了,谢谢。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U09-C4", + "kind": "variant", + "title": "预约修洗衣机", + "learnerRole": "租客", + "aiRole": "维修公司客服", + "setting": "你家的洗衣机坏了,房东让你自己打电话预约维修。", + "turns": [ + { + "ai": "Hello, FastFix. How can I help you?", + "goal": "说想预约维修", + "model": "Hello. I'd like to book a repair. My washing machine isn't working.", + "zh": "你好。我想预约维修,我的洗衣机坏了。", + "itemIds": [ + "B1-U09-P10" + ] + }, + { + "ai": "OK. When would you like someone to come?", + "goal": "问周四有没有人", + "model": "Is anyone free on Thursday?", + "zh": "周四有人有空吗?", + "itemIds": [ + "B1-U09-P11" + ] + }, + { + "ai": "Yes. Which time slot is best for you: 8 to 12 or 12 to 5?", + "goal": "选时间段", + "model": "The 8 to 12 time slot is best for me.", + "zh": "8 点到 12 点那个时间段最合适。", + "itemIds": [ + "B1-U09-P12" + ] + }, + { + "ai": "Great. We'll text you when our worker is on the way.", + "goal": "道谢", + "model": "Thanks. See you on Thursday.", + "zh": "谢谢,周四见。", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "B1-U09-T1", + "sceneId": "B1-U09-C1", + "goal": "在银行开户并了解汇款", + "itemIds": [ + "B1-U09-P01", + "B1-U09-P02", + "B1-U09-W01", + "B1-U09-P03", + "B1-U09-P04" + ], + "slots": [ + "开户", + "材料", + "费用", + "汇款" + ] + }, + { + "id": "B1-U09-T2", + "sceneId": "B1-U09-C2", + "goal": "在便利店充值并寄包裹", + "itemIds": [ + "B1-U09-P05", + "B1-U09-P06", + "B1-U09-P07", + "B1-U09-P08" + ], + "slots": [ + "充值", + "寄件", + "到达", + "查询" + ] + }, + { + "id": "B1-U09-T3", + "sceneId": "B1-U09-C3", + "goal": "打电话重新安排派送", + "itemIds": [ + "B1-U09-P09", + "B1-U09-W02", + "B1-U09-P11" + ], + "slots": [ + "情况", + "号码", + "时间" + ] + }, + { + "id": "B1-U09-T4", + "sceneId": "B1-U09-C4", + "goal": "打电话预约维修", + "itemIds": [ + "B1-U09-P10", + "B1-U09-P11", + "B1-U09-P12" + ], + "slots": [ + "问题", + "日期", + "时间段" + ] + } + ], + "materials": [ + { + "id": "B1-U09-M1", + "mode": "listening", + "title": "对话:在银行和手机店", + "text": "Teller: Good morning. How can I help you?\nZhang Wei: Hi. I've just moved here to start a full-time job, and I'd like to open a bank account.\nTeller: Of course. Do you have an appointment?\nZhang Wei: No. Is that a problem?\nTeller: Not at all. We're not busy this morning. What do you need the account for? Your salary, bills, that kind of thing?\nZhang Wei: Yes. My income will be paid into it every month, and I'll pay my rent from it.\nTeller: Then I'd recommend our basic current account. There's no monthly fee, and you get a bank card and online banking. What did you bring with you?\nZhang Wei: My passport, my work visa and my job contract. Is that enough?\nTeller: We also need proof of your address, for instance a bill or a letter from your landlord.\nZhang Wei: I have a letter from my landlord here.\nTeller: Perfect. Let me make a photocopy of these. While I do that, could you fill in this application form? Please write your name in capital letters, exactly as it is on your passport.\nZhang Wei: Sure. What should I write under \"profession\"?\nTeller: Just your job. What do you do?\nZhang Wei: I'm a mechanic. I repair cars.\nTeller: Great, write \"mechanic\". Now, once your account is open, you can download our app. You'll need to register with your account number and create a password. The app enables you to check your balance, pay bills and send money abroad.\nZhang Wei: How much does it cost to send money to China?\nTeller: There's a fee of five pounds for each transfer, and the money usually arrives within two working days.\nZhang Wei: OK. When will I get my card?\nTeller: It'll be sent by post to your address within a week. For security, the PIN comes in a separate letter. Never write your PIN down, and don't share it with anyone, even someone who says they're from the bank.\n...\nShop assistant: Hi! Are you looking for a phone plan?\nZhang Wei: Yes. I need a local number. What plans do you have?\nShop assistant: We have two options. You can pay monthly, with a twelve-month contract, or you can pay as you go and top up whenever you want. The monthly plan is 15 pounds, with unlimited calls and texts and 30 gigabytes of internet.\nZhang Wei: Is the network good?\nShop assistant: It's one of the most reliable in the country. And if you use a lot of video, for instance video clips on social networking sites, you can update your plan at any time.\nZhang Wei: I think I'll take the monthly plan. Can I pay with my new bank card?\nShop assistant: Sure. I'll just need to set up a payment from your account.\nShop assistant: One more thing. Currently, if you and a friend sign a joint plan, you both get an extra ten gigabytes. It's a typical offer at this time of year. And this hand-held charger is free with the plan, which is handy when you travel. Just make sure your details are accurate and up-to-date, and check how your name is written, because an incorrect letter can cause problems later.", + "glosses": { + "salary": "工资", + "contract": "合同", + "app": "应用程序", + "payment": "付款", + "capital letters": "大写字母", + "PIN": "密码", + "unlimited": "无限的", + "gigabytes": "吉字节" + }, + "questions": [ + { + "type": "gist", + "question": "这段对话主要是什么内容?", + "options": [ + "张伟在银行开户,然后办手机套餐", + "张伟在银行申请贷款", + "张伟去修车店修车" + ] + }, + { + "type": "detail", + "question": "开户时银行还需要什么证明?", + "options": [ + "住址证明,比如房东的信", + "大学毕业证", + "父母的银行卡" + ] + }, + { + "type": "inference", + "question": "为什么柜员提醒不要把密码告诉任何人?", + "options": [ + "有人可能冒充银行骗钱", + "密码很快就会过期", + "银行会定期改密码" + ] + } + ] + }, + { + "id": "B1-U09-M2", + "mode": "listening", + "title": "电话留言与预约", + "text": "Message one\nHello, this is a message for Chloe Brown from QuickPost. We tried to deliver a parcel to your address this morning, but there was nobody home, and the parcel was too big for your mailbox. The postman left a card. You can pick up your parcel from our office on Station Road after 2 p.m. tomorrow. Please bring the card and a form of ID. If you'd prefer another delivery, please visit our website and choose a new date. You can also ask us to leave it with a neighbor or in a safe place, such as behind your garden gate. Please note that if the parcel isn't picked up within fourteen days, it will be returned to the sender. Occasionally our drivers are delayed, and if the address on a parcel is unclear, delivery may take longer.\nMessage two\nHi Chloe, it's Jack from the garage. We've had a look at your car. The good news is that the engine is fine. The problem is the battery, and one of the lights at the back isn't working because of a broken wire. Our mechanic can fix both today. It'll cost about 120 pounds, including the parts. Please call me back to confirm, and we'll have it ready by five. While it's here, we can also check the windscreen, the motor that moves the windows and the water pump, and fill the tank. That's about twelve gallons.\nMessage three\nHello, this is Anna from Style Studio, the hairdresser's. I'm calling about your appointment on Friday. I'm afraid our hairdresser is unwell that day, so we'll need to move it. We have a free slot on Saturday at 11, or on Monday at 3. Just reply to this message or book online. Sorry for any trouble. And by the way, we have a vacancy for a part-time hairdresser, if you know anyone who wants a career in this industry.\nConversation\nChloe: Hello, FastFix? I'd like to book a repair.\nAgent: Of course. What's the problem?\nChloe: It's my laptop. The keyboard doesn't work, and the screen goes black after a few minutes. I can't even upload my photos or attach a document to an email.\nAgent: OK. It could be an electrical problem, or you may need to update the software. Is it still under guarantee?\nChloe: No, it's three years old. The monitor and the webcam are fine, though. I'm a travel blogger, so I use the webcam for my blog every day.\nAgent: Then there's a fee of 40 pounds for our instructor, sorry, our technician, to look at it. If he can repair it, the fee is included in the price of the repair.\nChloe: That sounds fair. Is anyone free this week?\nAgent: We have a slot on Wednesday between 9 and 12. He can come to your home, or you can bring it to our shop in the retail park.\nChloe: I'll bring it in. Should I delete anything first?\nAgent: No, don't delete anything. But please make a copy of important photos on a disc or online, just in case, and write down your password for him.\nChloe: OK. See you on Wednesday.", + "glosses": { + "laptop": "笔记本电脑", + "software": "软件", + "technician": "技术员", + "sender": "寄件人" + }, + "questions": [ + { + "type": "gist", + "question": "这段录音主要是什么内容?", + "options": [ + "几条生活服务留言和一次维修预约", + "一家商店的促销广告", + "一次工作面试" + ] + }, + { + "type": "detail", + "question": "修车店说车的问题出在哪里?", + "options": [ + "电池和一根断了的电线", + "发动机坏了", + "车窗打不开" + ] + }, + { + "type": "inference", + "question": "为什么维修公司让克洛伊先备份文件?", + "options": [ + "修电脑时文件可能会丢失", + "他们要检查她的文件", + "备份以后电脑会变快" + ] + } + ] + }, + { + "id": "B1-U09-M3", + "mode": "reading", + "title": "帮助页面:网上银行与快递常见问题", + "text": "Online banking: frequently asked questions\nHow do I register for online banking?\nDownload our app or go to our website and click \"Register\". Enter your account number and your card details, and then create a password. For extra security, we will send a code to your mobile phone. You will need this code the first time you log in on a new device.\nI can't log in. What should I do?\nCheck that your password is correct. After three wrong tries, your account will be locked for your protection. Call us on 0800 555 0199 and a member of our team will help you. Never click on a link in an email or text message that asks for your password. We will never ask for it.\nHow do I set up a regular payment?\nChoose \"Pay\" in the app, then \"New regular payment\". This is useful for monthly bills, for instance rent or a gym membership. Make sure there is enough money in your account on the date of the payment.\nHow can I check my balance?\nYour balance is shown on the first page of the app, and a simple graphic shows the rise or decrease in your spending each month. A calculator helps you plan, so you can avoid debt. If you want to invest, you can talk to an adviser by video call or face-to-face.\nHow do you safeguard my money?\nOur server is checked 24 hours a day, and we never share your details with any other organisation.\n\nDelivery: frequently asked questions\nHow can I track my parcel?\nEnter your tracking number on our website. You will see where your parcel is and when it will arrive. We will also send you a text message on the morning of delivery with a one-hour time slot.\nWhat happens if I miss a delivery?\nThe postman will leave a card. You can pick up your parcel from your nearest office, ask for another delivery, or change the address. If the item is valuable, someone must sign for it.\nHow do I send a parcel abroad?\nPack your item carefully in a strong box or carton. Measure your parcel carefully, because the price depends on its measurements. Write the address in good handwriting, using the English alphabet, and fill in a customs form, which you can print in the correct format from our website. For some countries, you also need to attach a photocopy of your identity card or passport. Prices depend on weight, size and speed.\nCan I send a postcard or letter?\nYes, of course. Buy stamps online or at any office, and post it in any of our red mailboxes.\nNot happy with our service?\nIf your parcel arrives damaged, please take a photo and fill in the form on our website within seven days. We aim to reply to every individual complaint within five working days.", + "glosses": { + "frequently": "经常", + "app": "应用程序", + "payment": "付款", + "page": "页面", + "membership": "会员" + }, + "questions": [ + { + "type": "gist", + "question": "这个帮助页面主要讲什么?", + "options": [ + "网上银行和快递的常见问题", + "怎样找工作", + "手机套餐的价格" + ] + }, + { + "type": "detail", + "question": "连续输错三次密码会怎样?", + "options": [ + "账户会被锁住", + "银行会给你打电话", + "密码会自动改掉" + ] + }, + { + "type": "inference", + "question": "为什么不要点邮件或短信里要密码的链接?", + "options": [ + "那可能是骗子发的", + "链接的网速太慢", + "银行不用手机" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "说清要办的事", + "bands": [ + "说不清要办什么", + "能说出要办什么,但缺少重要细节", + "清楚说出要办的业务,并问清材料、费用或时间" + ], + "pass": 1 + }, + { + "name": "确认安排", + "bands": [ + "没有确认", + "能接受安排,但没核对细节", + "核对日期、时间段、号码等细节并确认" + ], + "pass": 1 + } + ] + }, + "excluded": [] +} diff --git a/kouyu_english/assets/courses/B1/B1-U10.json b/kouyu_english/assets/courses/B1/B1-U10.json new file mode 100644 index 0000000..7938aba --- /dev/null +++ b/kouyu_english/assets/courses/B1/B1-U10.json @@ -0,0 +1,1319 @@ +{ + "schemaVersion": 1, + "id": "B1-U10", + "revision": 1, + "level": "B1", + "title": "观点与理由", + "categories": [ + "日常" + ], + "canDo": "推荐并说明理由,回应不同意见", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "lucky", + "ben", + "lily", + "sam", + "emma", + "rosa", + "marco", + "hillside", + "greenhill", + "lisbon", + "porto", + "leeds", + "bristol", + "portugal", + "amsterdam" + ], + "grammar": [ + { + "id": "142", + "use": "active" + }, + { + "id": "156", + "use": "active" + }, + { + "id": "62", + "use": "active" + }, + { + "id": "215", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "B1-U10-P01", + "type": "phrase", + "en": "I'd highly recommend it.", + "zh": "我强烈推荐。", + "sceneWord": false, + "match": [ + [ + "highly recommend" + ] + ], + "example": { + "en": "I'd highly recommend the night market.", + "zh": "我强烈推荐那个夜市。" + }, + "review": { + "prompt": "向朋友强烈推荐一家你喜欢的餐馆。" + } + }, + { + "id": "B1-U10-P02", + "type": "phrase", + "en": "The reason I like it is the atmosphere.", + "zh": "我喜欢它是因为那里的氛围。", + "sceneWord": false, + "match": [ + [ + "the reason i like" + ] + ], + "example": { + "en": "The reason I like this cafe is the quiet atmosphere.", + "zh": "我喜欢这家咖啡馆是因为它安静的氛围。" + }, + "review": { + "prompt": "说说你喜欢一个地方的原因。" + } + }, + { + "id": "B1-U10-P03", + "type": "phrase", + "en": "For one thing, it's close to the station.", + "zh": "首先,它离车站很近。", + "sceneWord": false, + "match": [ + [ + "for one thing" + ] + ], + "example": { + "en": "For one thing, the hotel is close to the beach.", + "zh": "首先,这家酒店离海滩很近。" + }, + "review": { + "prompt": "用“首先”说出推荐的第一个理由。" + } + }, + { + "id": "B1-U10-P04", + "type": "phrase", + "en": "On top of that, it's cheap.", + "zh": "除此之外,它还很便宜。", + "sceneWord": false, + "match": [ + [ + "on top of that" + ] + ], + "example": { + "en": "On top of that, the staff are really helpful.", + "zh": "除此之外,员工也很乐于帮忙。" + }, + "review": { + "prompt": "再补充一个理由。" + } + }, + { + "id": "B1-U10-P05", + "type": "phrase", + "en": "Personally, I prefer the smaller one.", + "zh": "就我个人而言,我更喜欢小一点的那个。", + "sceneWord": false, + "match": [ + [ + "personally" + ] + ], + "example": { + "en": "Personally, I prefer travelling by train.", + "zh": "我个人更喜欢坐火车旅行。" + }, + "review": { + "prompt": "说说你个人更喜欢哪一个。" + } + }, + { + "id": "B1-U10-P06", + "type": "phrase", + "en": "I see what you mean, but it's too far.", + "zh": "我明白你的意思,但它太远了。", + "sceneWord": false, + "match": [ + [ + "see what you mean" + ] + ], + "example": { + "en": "I see what you mean, but the other hotel is cheaper.", + "zh": "我明白你的意思,但另一家酒店更便宜。" + }, + "review": { + "prompt": "先表示理解对方,再说出不同看法。" + } + }, + { + "id": "B1-U10-P07", + "type": "phrase", + "en": "That's a fair point.", + "zh": "说得有道理。", + "sceneWord": false, + "match": [ + [ + "fair point" + ] + ], + "example": { + "en": "That's a fair point. I didn't think about the price.", + "zh": "说得有道理,我没考虑价格。" + }, + "review": { + "prompt": "承认对方说得有道理。" + } + }, + { + "id": "B1-U10-P08", + "type": "phrase", + "en": "I'm still not convinced.", + "zh": "我还是不太信服。", + "sceneWord": true, + "sceneReason": "回应不同意见时最常用的礼貌说法,B1 口语需要", + "match": [ + [ + "not convinced" + ] + ], + "example": { + "en": "I'm still not convinced it's worth the money.", + "zh": "我还是不太相信它值这个价。" + }, + "review": { + "prompt": "礼貌地表示你还是不同意。" + } + }, + { + "id": "B1-U10-P09", + "type": "phrase", + "en": "It depends on what you're looking for.", + "zh": "这要看你想要什么。", + "sceneWord": false, + "match": [ + [ + "depends on what" + ] + ], + "example": { + "en": "It depends on what you're looking for in a hotel.", + "zh": "这要看你对酒店有什么要求。" + }, + "review": { + "prompt": "说“要看情况”,再给出两种建议。" + } + }, + { + "id": "B1-U10-P10", + "type": "phrase", + "en": "Honestly, it was nothing special.", + "zh": "说实话,它没什么特别的。", + "sceneWord": false, + "match": [ + [ + "nothing special" + ] + ], + "example": { + "en": "Honestly, the food was nothing special.", + "zh": "说实话,那里的菜没什么特别的。" + }, + "review": { + "prompt": "诚实地说一个地方一般般。" + } + }, + { + "id": "B1-U10-P11", + "type": "phrase", + "en": "Let's agree to disagree.", + "zh": "我们就各自保留意见吧。", + "sceneWord": false, + "match": [ + [ + "agree to disagree" + ] + ], + "example": { + "en": "We both like different things, so let's agree to disagree.", + "zh": "我们喜好不同,就各自保留意见吧。" + }, + "review": { + "prompt": "讨论没有结果时友好地结束话题。" + } + }, + { + "id": "B1-U10-P12", + "type": "phrase", + "en": "Have you thought about going by bike?", + "zh": "你考虑过骑车去吗?", + "sceneWord": false, + "match": [ + [ + "have you thought about" + ] + ], + "example": { + "en": "Have you thought about staying in a hostel?", + "zh": "你考虑过住青年旅舍吗?" + }, + "review": { + "prompt": "给朋友提出一个他没想到的选择。" + } + }, + { + "id": "B1-U10-W01", + "type": "word", + "en": "absolutely", + "zh": "绝对;完全", + "sceneWord": false, + "match": [ + [ + "absolutely" + ] + ], + "example": { + "en": "The view from the top is absolutely beautiful.", + "zh": "山顶的风景美极了。" + }, + "review": { + "prompt": "用一个副词表示你完全同意朋友的看法。" + } + }, + { + "id": "B1-U10-W02", + "type": "word", + "en": "benefit", + "zh": "好处", + "sceneWord": false, + "match": [ + [ + "benefit", + "benefits" + ] + ], + "example": { + "en": "The main benefit of this hotel is the location.", + "zh": "这家酒店最大的好处是位置。" + }, + "review": { + "prompt": "说说坐火车旅行的一个好处。" + } + }, + { + "id": "B1-U10-W03", + "type": "word", + "en": "persuade", + "zh": "说服", + "sceneWord": false, + "match": [ + [ + "persuade", + "persuaded" + ] + ], + "example": { + "en": "I tried to persuade my friend to come with us.", + "zh": "我想说服朋友和我们一起去。" + }, + "review": { + "prompt": "说你想说服朋友做什么。" + } + } + ], + "receptiveWords": [ + { + "id": "B1-U10-R01", + "en": "honestly", + "zh": "说实话" + }, + { + "id": "B1-U10-R02", + "en": "atmosphere", + "zh": "氛围" + }, + { + "id": "B1-U10-R03", + "en": "convinced", + "zh": "被说服的;信服的" + }, + { + "id": "B1-U10-R04", + "en": "approach", + "zh": "方法" + }, + { + "id": "B1-U10-R05", + "en": "aspect", + "zh": "方面" + }, + { + "id": "B1-U10-R06", + "en": "awkward", + "zh": "尴尬的" + }, + { + "id": "B1-U10-R07", + "en": "basis", + "zh": "基础" + }, + { + "id": "B1-U10-R08", + "en": "calculation", + "zh": "计算" + }, + { + "id": "B1-U10-R09", + "en": "charm", + "zh": "魅力" + }, + { + "id": "B1-U10-R10", + "en": "cheerful", + "zh": "开朗的" + }, + { + "id": "B1-U10-R11", + "en": "conclusion", + "zh": "结论" + }, + { + "id": "B1-U10-R12", + "en": "controversial", + "zh": "有争议的" + }, + { + "id": "B1-U10-R13", + "en": "critic", + "zh": "评论家" + }, + { + "id": "B1-U10-R14", + "en": "critical", + "zh": "批评的" + }, + { + "id": "B1-U10-R15", + "en": "dull", + "zh": "无聊的" + }, + { + "id": "B1-U10-R16", + "en": "easygoing", + "zh": "随和的" + }, + { + "id": "B1-U10-R17", + "en": "enjoyable", + "zh": "令人愉快的" + }, + { + "id": "B1-U10-R18", + "en": "fashionable", + "zh": "时髦的" + }, + { + "id": "B1-U10-R19", + "en": "generous", + "zh": "慷慨的;大份的" + }, + { + "id": "B1-U10-R20", + "en": "impression", + "zh": "印象" + }, + { + "id": "B1-U10-R21", + "en": "informative", + "zh": "信息丰富的" + }, + { + "id": "B1-U10-R22", + "en": "insight", + "zh": "深入了解" + }, + { + "id": "B1-U10-R23", + "en": "juicy", + "zh": "多汁的" + }, + { + "id": "B1-U10-R24", + "en": "meaningful", + "zh": "有意义的" + }, + { + "id": "B1-U10-R25", + "en": "merely", + "zh": "仅仅" + }, + { + "id": "B1-U10-R26", + "en": "moreover", + "zh": "而且" + }, + { + "id": "B1-U10-R27", + "en": "nevertheless", + "zh": "不过;然而" + }, + { + "id": "B1-U10-R28", + "en": "obvious", + "zh": "明显的" + }, + { + "id": "B1-U10-R29", + "en": "old-fashioned", + "zh": "老式的" + }, + { + "id": "B1-U10-R30", + "en": "ordinary", + "zh": "普通的" + }, + { + "id": "B1-U10-R31", + "en": "particularly", + "zh": "特别地" + }, + { + "id": "B1-U10-R32", + "en": "remark", + "zh": "评论" + }, + { + "id": "B1-U10-R33", + "en": "risk", + "zh": "风险" + }, + { + "id": "B1-U10-R34", + "en": "scary", + "zh": "吓人的" + }, + { + "id": "B1-U10-R35", + "en": "scenic", + "zh": "风景优美的" + }, + { + "id": "B1-U10-R36", + "en": "similarly", + "zh": "同样地" + }, + { + "id": "B1-U10-R37", + "en": "slightly", + "zh": "稍微" + }, + { + "id": "B1-U10-R38", + "en": "stressful", + "zh": "压力大的" + }, + { + "id": "B1-U10-R39", + "en": "stunning", + "zh": "令人惊叹的" + }, + { + "id": "B1-U10-R40", + "en": "stylish", + "zh": "时髦的" + }, + { + "id": "B1-U10-R41", + "en": "tasty", + "zh": "美味的" + }, + { + "id": "B1-U10-R42", + "en": "terrific", + "zh": "极好的" + }, + { + "id": "B1-U10-R43", + "en": "trend", + "zh": "趋势" + }, + { + "id": "B1-U10-R44", + "en": "viewpoint", + "zh": "观点" + }, + { + "id": "B1-U10-R45", + "en": "weird", + "zh": "奇怪的" + }, + { + "id": "B1-U10-R46", + "en": "foolish", + "zh": "愚蠢的" + }, + { + "id": "B1-U10-R47", + "en": "differ", + "zh": "不同" + }, + { + "id": "B1-U10-R48", + "en": "possibility", + "zh": "可能性" + }, + { + "id": "B1-U10-R49", + "en": "commonly", + "zh": "通常" + }, + { + "id": "B1-U10-R50", + "en": "belief", + "zh": "看法;信念" + }, + { + "id": "B1-U10-R51", + "en": "awareness", + "zh": "意识;了解" + }, + { + "id": "B1-U10-R52", + "en": "wildlife", + "zh": "野生动物" + }, + { + "id": "B1-U10-R53", + "en": "pleasantly", + "zh": "宜人地" + }, + { + "id": "B1-U10-R54", + "en": "definite", + "zh": "确定的" + }, + { + "id": "B1-U10-R55", + "en": "prove", + "zh": "证明" + }, + { + "id": "B1-U10-R56", + "en": "worthy", + "zh": "值得的;配得上的" + }, + { + "id": "B1-U10-R57", + "en": "judgement", + "zh": "判断" + }, + { + "id": "B1-U10-R58", + "en": "equally", + "zh": "同样地" + }, + { + "id": "B1-U10-R59", + "en": "outstanding", + "zh": "出色的" + }, + { + "id": "B1-U10-R60", + "en": "awesome", + "zh": "很棒的" + }, + { + "id": "B1-U10-R61", + "en": "apparent", + "zh": "明显的" + }, + { + "id": "B1-U10-R62", + "en": "emphasis", + "zh": "重点" + }, + { + "id": "B1-U10-R63", + "en": "delightful", + "zh": "令人愉快的" + }, + { + "id": "B1-U10-R64", + "en": "humorous", + "zh": "幽默的" + }, + { + "id": "B1-U10-R65", + "en": "thus", + "zh": "因此" + }, + { + "id": "B1-U10-R66", + "en": "uncertainty", + "zh": "不确定" + }, + { + "id": "B1-U10-R67", + "en": "casual", + "zh": "随意的" + }, + { + "id": "B1-U10-R68", + "en": "talkative", + "zh": "健谈的" + }, + { + "id": "B1-U10-R69", + "en": "curious", + "zh": "好奇的" + }, + { + "id": "B1-U10-R70", + "en": "complicated", + "zh": "复杂的" + }, + { + "id": "B1-U10-R71", + "en": "eager", + "zh": "渴望的" + } + ], + "segments": [ + { + "id": "B1-U10-S1", + "title": "推荐并给出理由", + "minutes": 12, + "itemIds": [ + "B1-U10-P01", + "B1-U10-P03", + "B1-U10-P04", + "B1-U10-W02" + ], + "listening": { + "text": "Can you recommend a good place to eat near here? I'd highly recommend Lucky Garden. For one thing, it's close to the station. On top of that, it's cheap. The main benefit is that it's open until midnight.", + "question": "说话人推荐的餐馆离哪里近?", + "options": [ + "车站", + "学校", + "海滩" + ] + }, + "speaking": [ + { + "text": "I'd highly recommend it.", + "tip": "highly 读 /ˈhaɪli/" + }, + { + "text": "For one thing, it's close to the station." + }, + { + "text": "On top of that, it's cheap.", + "tip": "on top of that 连读" + }, + { + "text": "The main benefit is the price.", + "tip": "benefit 重音在第一个音节" + } + ], + "reading": { + "text": "Where to stay: Greenhill Hotel\nI'd highly recommend this hotel. For one thing, it's only five minutes from the station. On top of that, the rooms are big and clean. The main benefit for families is the free breakfast.", + "question": "住这家酒店对家庭来说最大的好处是什么?", + "options": [ + "免费早餐", + "房间很大", + "离车站近" + ] + }, + "writing": { + "prompt": "写三句话:强烈推荐一家店,并给出两个理由。", + "example": "I'd highly recommend it. For one thing, it's close to the station. On top of that, it's cheap.", + "itemIds": [ + "B1-U10-P01", + "B1-U10-P03", + "B1-U10-P04" + ] + }, + "independent": { + "prompt": "用英语说说一家你喜欢的酒店最大的好处。", + "itemIds": [ + "B1-U10-W02" + ] + } + }, + { + "id": "B1-U10-S2", + "title": "表达个人看法", + "minutes": 12, + "itemIds": [ + "B1-U10-P02", + "B1-U10-P05", + "B1-U10-P10", + "B1-U10-W01" + ], + "listening": { + "text": "What did you think of the two cafes? Personally, I prefer the smaller one. The reason I like it is the atmosphere. It's quiet and the music is absolutely lovely. The big one? Honestly, it was nothing special.", + "question": "说话人觉得大的那家咖啡馆怎么样?", + "options": [ + "没什么特别的", + "非常安静", + "音乐很好听" + ] + }, + "speaking": [ + { + "text": "The reason I like it is the atmosphere.", + "tip": "atmosphere 读 /ˈætməsfɪə/" + }, + { + "text": "Personally, I prefer the smaller one.", + "tip": "personally 重音在第一个音节" + }, + { + "text": "Honestly, it was nothing special.", + "tip": "honestly 的 h 不发音" + }, + { + "text": "It's absolutely lovely.", + "tip": "absolutely 重音在第一个音节" + } + ], + "reading": { + "text": "My weekend in the city\nPersonally, I prefer small museums to big ones. The reason I like them is the atmosphere: they are quiet and you can take your time. The famous art museum was absolutely full of people. Honestly, it was nothing special.", + "question": "作者为什么喜欢小博物馆?", + "options": [ + "安静,可以慢慢看", + "门票便宜", + "离酒店近" + ] + }, + "writing": { + "prompt": "写两句话:说你个人更喜欢小一点的那个,并说明原因是氛围。", + "example": "Personally, I prefer the smaller one. The reason I like it is the atmosphere.", + "itemIds": [ + "B1-U10-P05", + "B1-U10-P02" + ] + }, + "independent": { + "prompt": "用英语说一个地方没什么特别的,再用 absolutely 夸另一个地方。", + "itemIds": [ + "B1-U10-P10", + "B1-U10-W01" + ] + } + }, + { + "id": "B1-U10-S3", + "title": "回应不同意见", + "minutes": 12, + "itemIds": [ + "B1-U10-P06", + "B1-U10-P07", + "B1-U10-P08", + "B1-U10-P11" + ], + "listening": { + "text": "I think we should stay by the beach. I see what you mean, but it's too far from the town. That's a fair point, but the beach is so beautiful. I'm still not convinced. It's expensive too. OK, let's agree to disagree and ask Sam.", + "question": "两人最后决定怎么办?", + "options": [ + "去问山姆", + "住在海边", + "住在镇上" + ] + }, + "speaking": [ + { + "text": "I see what you mean, but it's too far.", + "tip": "see what you mean 连读" + }, + { + "text": "That's a fair point." + }, + { + "text": "I'm still not convinced.", + "tip": "convinced 读 /kənˈvɪnst/" + }, + { + "text": "Let's agree to disagree." + } + ], + "reading": { + "text": "Chat\nBen: The mountain trip is better than the city trip.\nLily: I see what you mean, but it's very cold in winter.\nBen: That's a fair point. We could go in spring.\nLily: I'm still not convinced. I love the city!\nBen: OK, let's agree to disagree.", + "question": "莉莉为什么不想冬天去山里?", + "options": [ + "天气很冷", + "票太贵", + "离城市太远" + ] + }, + "writing": { + "prompt": "写两句话:先承认对方有道理,再说你还是不太信服。", + "example": "That's a fair point. I'm still not convinced.", + "itemIds": [ + "B1-U10-P07", + "B1-U10-P08" + ] + }, + "independent": { + "prompt": "用英语先表示理解对方,再说出你的不同看法,最后友好结束话题。", + "itemIds": [ + "B1-U10-P06", + "B1-U10-P11" + ] + } + }, + { + "id": "B1-U10-S4", + "title": "看情况给建议", + "minutes": 10, + "itemIds": [ + "B1-U10-P09", + "B1-U10-P12", + "B1-U10-W03" + ], + "listening": { + "text": "Which is better, the bus or the train? It depends on what you're looking for. The bus is cheaper, but the train is faster. Have you thought about going by bike? It's a great way to see the town. I tried to persuade my brother, but he doesn't like bikes.", + "question": "说话人没能说服谁?", + "options": [ + "他的弟弟", + "他的朋友", + "他的妈妈" + ] + }, + "speaking": [ + { + "text": "It depends on what you're looking for.", + "tip": "depends on 连读" + }, + { + "text": "Have you thought about going by bike?" + }, + { + "text": "I tried to persuade my friend.", + "tip": "persuade 读 /pəˈsweɪd/" + } + ], + "reading": { + "text": "Ask Rosa\nQuestion: Should I visit the old town or the new town?\nRosa: It depends on what you're looking for. The old town is quiet and beautiful. The new town has great shops. Have you thought about doing both? Don't let anyone persuade you to miss the old town!", + "question": "罗莎给的建议是什么?", + "options": [ + "两个地方都去", + "只去老城", + "只去新城" + ] + }, + "writing": { + "prompt": "写两句话:说要看对方想要什么,再问他考虑过骑车去吗。", + "example": "It depends on what you're looking for. Have you thought about going by bike?", + "itemIds": [ + "B1-U10-P09", + "B1-U10-P12" + ] + }, + "independent": { + "prompt": "用英语说你想说服朋友和你一起去旅行。", + "itemIds": [ + "B1-U10-W03" + ] + } + } + ], + "scenes": [ + { + "id": "B1-U10-C1", + "kind": "main", + "title": "给朋友推荐住的地方", + "learnerRole": "本地朋友", + "aiRole": "来玩的朋友", + "setting": "朋友下个月要来你的城市玩三天,想听你推荐住在哪里。", + "turns": [ + { + "ai": "I'm coming to your city next month. Where should I stay?", + "goal": "说要看对方想要什么", + "model": "It depends on what you're looking for. Do you want somewhere quiet or somewhere busy?", + "zh": "这要看你想要什么。你想住安静的地方还是热闹的地方?", + "itemIds": [ + "B1-U10-P09" + ] + }, + { + "ai": "Somewhere quiet, but not too expensive.", + "goal": "强烈推荐一家酒店", + "model": "Then I'd highly recommend the Hillside Hotel.", + "zh": "那我强烈推荐山坡酒店。", + "itemIds": [ + "B1-U10-P01" + ] + }, + { + "ai": "Why that one?", + "goal": "给出两个理由", + "model": "For one thing, it's close to the station. On top of that, the rooms are cheap.", + "zh": "首先,它离车站很近。除此之外,房间也便宜。", + "itemIds": [ + "B1-U10-P03", + "B1-U10-P04" + ] + }, + { + "ai": "My friend says hotels in the old town are better.", + "goal": "理解对方但说不同看法", + "model": "I see what you mean, but the old town is very noisy at night.", + "zh": "我明白你的意思,但老城晚上很吵。", + "itemIds": [ + "B1-U10-P06" + ] + }, + { + "ai": "Hmm, I didn't know that.", + "goal": "说出最大的好处", + "model": "The main benefit of the Hillside Hotel is the free breakfast.", + "zh": "山坡酒店最大的好处是免费早餐。", + "itemIds": [ + "B1-U10-W02" + ] + }, + { + "ai": "That's a fair point. OK, I'll book it!", + "goal": "回应", + "model": "Great. I'm sure you'll like it.", + "zh": "太好了,我相信你会喜欢的。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U10-C2", + "kind": "variant", + "title": "和同事聊周末去过的地方", + "learnerRole": "同事", + "aiRole": "同事", + "setting": "周一早上,你和同事聊起周末各自去的咖啡馆和公园。", + "turns": [ + { + "ai": "I went to that new cafe on Saturday. It was great!", + "goal": "说你觉得一般", + "model": "Really? Honestly, it was nothing special.", + "zh": "真的吗?说实话,我觉得没什么特别的。", + "itemIds": [ + "B1-U10-P10" + ] + }, + { + "ai": "Oh! Which cafe do you like, then?", + "goal": "说个人更喜欢哪个", + "model": "Personally, I prefer the small one next to the park.", + "zh": "我个人更喜欢公园旁边那家小的。", + "itemIds": [ + "B1-U10-P05" + ] + }, + { + "ai": "Why? The coffee there isn't great.", + "goal": "说出喜欢的原因", + "model": "The reason I like it is the atmosphere. It's quiet and absolutely lovely.", + "zh": "我喜欢它是因为那里的氛围,安静又特别好。", + "itemIds": [ + "B1-U10-P02", + "B1-U10-W01" + ] + }, + { + "ai": "Well, I think the coffee is the most important thing.", + "goal": "承认有道理但仍不信服", + "model": "That's a fair point, but I'm still not convinced. A cafe is not only about coffee.", + "zh": "说得有道理,但我还是不这么认为。咖啡馆不只是咖啡。", + "itemIds": [ + "B1-U10-P07", + "B1-U10-P08" + ] + }, + { + "ai": "OK. Maybe we're just different.", + "goal": "友好结束", + "model": "Yes, let's agree to disagree.", + "zh": "是啊,我们就各自保留意见吧。", + "itemIds": [ + "B1-U10-P11" + ] + } + ] + }, + { + "id": "B1-U10-C3", + "kind": "variant", + "title": "商量怎么去海边", + "learnerRole": "朋友", + "aiRole": "朋友", + "setting": "你和朋友周六想去海边,他想开车去,你觉得有更好的办法。", + "turns": [ + { + "ai": "Let's drive to the beach on Saturday.", + "goal": "提出另一个选择", + "model": "Have you thought about going by bike? It's only an hour.", + "zh": "你考虑过骑车去吗?只要一个小时。", + "itemIds": [ + "B1-U10-P12" + ] + }, + { + "ai": "An hour on a bike? That's too long for me.", + "goal": "说出好处", + "model": "But the main benefit is that we don't need to find a place to park.", + "zh": "但最大的好处是不用找停车位。", + "itemIds": [ + "B1-U10-W02" + ] + }, + { + "ai": "That's a fair point. But I'm still not sure.", + "goal": "说你想说服他", + "model": "Come on, I want to persuade you! It will be fun.", + "zh": "来嘛,我想说服你!会很好玩的。", + "itemIds": [ + "B1-U10-W03" + ] + }, + { + "ai": "OK, OK. Let's go by bike, but we take the train back.", + "goal": "同意", + "model": "Absolutely. That sounds great.", + "zh": "完全同意,听起来很好。", + "itemIds": [ + "B1-U10-W01" + ] + } + ] + } + ], + "tasks": [ + { + "id": "B1-U10-T1", + "sceneId": "B1-U10-C1", + "goal": "给朋友推荐住处并回应不同意见", + "itemIds": [ + "B1-U10-P09", + "B1-U10-P01", + "B1-U10-P03", + "B1-U10-P04", + "B1-U10-P06", + "B1-U10-W02" + ], + "slots": [ + "看情况", + "推荐", + "理由", + "回应" + ] + }, + { + "id": "B1-U10-T2", + "sceneId": "B1-U10-C2", + "goal": "和同事交换对咖啡馆的看法", + "itemIds": [ + "B1-U10-P10", + "B1-U10-P05", + "B1-U10-P02", + "B1-U10-W01", + "B1-U10-P07", + "B1-U10-P08", + "B1-U10-P11" + ], + "slots": [ + "评价", + "偏好", + "原因", + "结束" + ] + }, + { + "id": "B1-U10-T3", + "sceneId": "B1-U10-C3", + "goal": "说服朋友换一种去海边的方式", + "itemIds": [ + "B1-U10-P12", + "B1-U10-W02", + "B1-U10-W03", + "B1-U10-W01" + ], + "slots": [ + "建议", + "好处", + "说服" + ] + } + ], + "materials": [ + { + "id": "B1-U10-M1", + "mode": "listening", + "title": "电台节目:跟团游还是自由行?", + "text": "Emma: Good evening and welcome to Two Sides, the show where two guests share different viewpoints on one question. Tonight's question is a slightly controversial one: is it better to join a guided tour or to travel on your own? With me are Marco, a travel critic, and Rosa, who writes a popular travel blog. Marco, let's start with you.\nMarco: Thanks, Emma. Personally, I'd highly recommend a good guided tour, particularly for your first visit to a country. For one thing, a local guide gives you real insight into the past and the way people live. You learn things that aren't in any book. On top of that, everything is planned for you, so there's no risk of getting lost or missing the last train.\nEmma: Rosa, you don't look happy.\nRosa: I see what you mean, Marco, but my approach is completely different. The reason I like travelling on my own is the freedom. On a tour, you're merely following a flag from one bus to the next. You can't stop when you find something interesting. Honestly, most tours I've tried were rather dull.\nMarco: That's a fair point. Some tours are awful, and it's obvious that the cheapest ones try to fit too much into one day. Nevertheless, a good tour is worth the money. Moreover, for older people it can be much less stressful.\nRosa: I'm still not convinced. It depends on what you're looking for. If you want to meet local people, a tour makes that almost impossible. You spend all your time with other tourists.\nEmma: The people who called in seem to agree with Rosa. Here's a remark from Sam in Leeds: \"My first impression of tours was positive, but after a week I felt like a child at school.\" And Lily says, \"Travelling alone was the most meaningful experience of my life, despite a few awkward moments.\" And Anna in Bristol says, \"It's foolish to say one way is always better. People differ, and so do trips. There's a real possibility you'll love both.\"\nMarco: I like that. You know, it's commonly believed that tours are only for older people, but that belief isn't true any more. Awareness of small tours for young people is growing fast.\nMarco: Those are fair comments. But let me mention another aspect: staying safe. In some places, walking around alone at night is a real risk. A tour gives you a certain amount of protection.\nRosa: That's true. Similarly, for some big sites, like the pyramids, a guide is obviously useful. So maybe it's not black and white.\nEmma: So is there a conclusion we can all agree on?\nMarco: I think the basis of a good trip is planning. Whether you choose a tour or not, find out as much as you can first.\nRosa: Absolutely. And the trend now is to do both: a short tour on the first day, and then explore on your own.\nEmma: That sounds like a terrific idea. Let's agree to disagree on the rest! Thank you both, and thanks to everyone who called in. Next week, we're asking: are city passes really worth it?", + "glosses": { + "flag": "旗子", + "pyramids": "金字塔" + }, + "questions": [ + { + "type": "gist", + "question": "这期节目主要讨论什么?", + "options": [ + "跟团游和自由行哪个更好", + "怎样写旅行博客", + "怎样订便宜的机票" + ] + }, + { + "type": "detail", + "question": "马可认为好的导游最大的作用是什么?", + "options": [ + "让你深入了解历史和文化", + "帮你拍照", + "帮你买便宜的东西" + ] + }, + { + "type": "inference", + "question": "节目最后两位嘉宾的看法有什么变化?", + "options": [ + "他们找到了一些共同点", + "马可完全同意了罗莎", + "他们吵得更厉害了" + ] + } + ] + }, + { + "id": "B1-U10-M2", + "mode": "listening", + "title": "朋友商量去哪儿玩", + "text": "Ben: OK, we have four days in Portugal. Lisbon or Porto? I need to book the train tickets tonight.\nLily: I'd highly recommend Porto. I went there two years ago, and honestly, it's one of the most stunning cities I've ever seen.\nBen: Really? Everyone says Lisbon is better.\nLily: I see what you mean, but Lisbon gets so crowded in summer. The reason I love Porto is the atmosphere. It has a lot of charm. The old buildings by the river are absolutely beautiful, and the people are really cheerful and easygoing.\nSam: That's a fair point, but Lisbon has more to do. There are more museums, more shops, and the nightlife is famous. Porto is lovely, but it's quite small.\nLily: Small is good! For one thing, you can walk everywhere, so you don't waste time on buses. On top of that, it's cheaper. The food is tasty and the portions are generous. I had a juicy steak sandwich there that I still think about.\nSam: OK, the food sounds amazing. But I'm still not convinced. Four days in a small city might be a bit boring.\nBen: Have you thought about doing a day trip from Porto? There's a scenic train ride along the river. It goes through the hills and past the farms. My cousin said it was the best part of her holiday.\nLily: Yes, that's a great idea. And there's the beach too, only twenty minutes away. The wildlife along the river is lovely as well. We saw birds I couldn't even name.\nSam: And what about the weather?\nLily: In June it's pleasantly warm, not too hot. There's a definite chance of a little rain, but nothing to worry about.\nSam: Hmm. Well, it depends on what we're looking for. If we want to relax, Porto is better. If we want to go out every night, Lisbon wins.\nBen: What's the nightlife like in Porto?\nLily: Quite casual. There are no big clubs, just small bars where people are talkative and curious about where you're from. And getting around isn't complicated at all.\nBen: I'm eager to go already. Personally, I want to relax. I've been working so hard this year.\nSam: All right, you've proved your point. Porto is a worthy winner. You've persuaded me. But one thing: I'm choosing the hotel.\nLily: Why?\nSam: Because last time you chose a place that was so old-fashioned. The pictures online looked stylish and fashionable, but in real life the room was weird. There was a scary old doll on the bed!\nBen: Oh no, I remember that. It was quite amusing, actually.\nSam: It was not amusing at three in the morning.\nLily: OK, OK, fair enough. You choose the hotel. But let's find somewhere typical, not just an ordinary chain hotel. A small family place in the old town would be perfect.\nSam: Deal. I'll look tonight and send you both a few options.\nBen: Great. So it's Porto. I'll book the train.", + "glosses": { + "portions": "份量", + "steak": "牛排", + "nightlife": "夜生活", + "doll": "玩偶", + "chain": "连锁" + }, + "questions": [ + { + "type": "gist", + "question": "三个朋友主要在商量什么?", + "options": [ + "去里斯本还是波尔图玩", + "在哪家餐馆吃饭", + "什么时候回家" + ] + }, + { + "type": "detail", + "question": "莉莉推荐波尔图的理由有哪些?", + "options": [ + "氛围好、能走路逛、吃的便宜又好", + "博物馆多、购物方便", + "夜生活很有名" + ] + }, + { + "type": "inference", + "question": "为什么山姆坚持自己选酒店?", + "options": [ + "上次莉莉选的酒店让他很不舒服", + "他在酒店工作", + "他有酒店的优惠券" + ] + } + ] + }, + { + "id": "B1-U10-M3", + "mode": "reading", + "title": "论坛:城市通票值得买吗?", + "text": "Travel Talk forum\nQuestion from Emma: I'm going to Amsterdam for three days next month. Is the city pass worth it? It costs 90 euros. I'd love to hear your viewpoints.\n\nReply from Marco: I'd highly recommend it. For one thing, it includes free public transport, which is a real benefit because the trams are expensive. On top of that, you get into most museums without paying. I visited six museums in three days and saved about 50 euros. My only critical remark is that the booklet was a bit confusing at first.\n\nReply from Rosa: Honestly, I think it's overrated. It depends on what you're looking for. If you love museums, it's great. But I prefer walking around and sitting in cafes, so I only used it twice. It wasn't worth it for me. Before you buy one, make a list and do the calculation.\n\nReply from Sam: I see what you mean, Rosa, but you're forgetting the boat trip. That alone costs 20 euros. Personally, I found the pass very informative too, because it comes with a map and tips. My general impression was positive, and it made the trip more enjoyable. I didn't have to think about tickets all the time.\n\nReply from Lily: That's a fair point, Sam. Nevertheless, I agree with Rosa. People often buy a pass because of the \"wow, everything is free\" feeling. It isn't free, of course! Have you thought about buying single tickets online instead? Many museums give a discount if you book early, and the most popular ones sell out anyway, so you need to book either way.\n\nReply from Emma: Thanks, everyone! I'm still not totally convinced either way, but your answers help a lot. I'll make a list of what I really want to see, as Rosa suggested, and compare the prices. If it's close, I'll get the pass for the convenience.\n\nReply from Ben: I used the pass last year, and my judgement is equally positive. The museums were outstanding, and the canal boat was awesome. However, if you only visit two or three places, single tickets and the pass don't differ much in price. So it's apparent that Rosa's advice makes sense.\n\nReply from Anna: One aspect nobody has mentioned is children. The emphasis of the pass is on museums, and families commonly find the zoo and the parks far more delightful. We had a humorous moment when our son asked why we paid so much to see old pictures! Thus, think about who you're travelling with, not only what you want to see. Also, there's some uncertainty about opening times in winter, so check before you go.\n\nReply from Marco: Sounds like a sensible approach. Have a great trip!", + "glosses": { + "euros": "欧元", + "forum": "论坛", + "trams": "路面电车", + "booklet": "小册子", + "overrated": "被高估的", + "sensible": "明智的", + "canal": "运河" + }, + "questions": [ + { + "type": "gist", + "question": "这个论坛帖子主要讨论什么?", + "options": [ + "买城市通票是否划算", + "怎样坐阿姆斯特丹的船", + "哪个博物馆最好" + ] + }, + { + "type": "detail", + "question": "罗莎建议艾玛买票前做什么?", + "options": [ + "列个清单算一算", + "先去问酒店", + "先坐一次船" + ] + }, + { + "type": "inference", + "question": "艾玛最后很可能会怎么做?", + "options": [ + "比较价格后再决定买不买", + "一定会买通票", + "取消这次旅行" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "给出理由", + "bands": [ + "只说喜欢或不喜欢", + "能给出一个理由", + "给出两个以上理由,并用连接词组织" + ], + "pass": 1 + }, + { + "name": "回应不同意见", + "bands": [ + "直接否定对方", + "能表达不同意见,但不回应对方的理由", + "先回应对方的理由,再礼貌地说出自己的看法" + ], + "pass": 1 + } + ] + }, + "excluded": [] +} diff --git a/kouyu_english/assets/courses/B1/B1-U11.json b/kouyu_english/assets/courses/B1/B1-U11.json new file mode 100644 index 0000000..79015cf --- /dev/null +++ b/kouyu_english/assets/courses/B1/B1-U11.json @@ -0,0 +1,1337 @@ +{ + "schemaVersion": 1, + "id": "B1-U11", + "revision": 1, + "level": "B1", + "title": "习俗与文化", + "categories": [ + "旅行" + ], + "canDo": "谈小费、礼仪和节日,比较不同做法", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "bulgaria", + "uk", + "us", + "united", + "states", + "england", + "asian", + "korean", + "eve", + "tom", + "li", + "na", + "yuki", + "sarah", + "kenji", + "oliver", + "maria", + "lopez", + "london", + "tokyo", + "christmas", + "thailand", + "spain", + "france", + "italy", + "manchester", + "russia", + "germany", + "korea" + ], + "grammar": [ + { + "id": "142", + "use": "active" + }, + { + "id": "156", + "use": "active" + }, + { + "id": "62", + "use": "active" + }, + { + "id": "215", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "B1-U11-P01", + "type": "phrase", + "en": "Do people tip in restaurants here?", + "zh": "这里的人在餐馆给小费吗?", + "sceneWord": false, + "match": [ + [ + "people tip" + ] + ], + "example": { + "en": "Do people tip taxi drivers here?", + "zh": "这里的人给出租车司机小费吗?" + }, + "review": { + "prompt": "到一个新国家,问当地人给不给小费。" + } + }, + { + "id": "B1-U11-P02", + "type": "phrase", + "en": "It's common to leave ten percent.", + "zh": "通常给百分之十。", + "sceneWord": false, + "match": [ + [ + "it's common to" + ] + ], + "example": { + "en": "It's common to leave a small tip for the hairdresser.", + "zh": "通常会给理发师一点小费。" + }, + "review": { + "prompt": "说明当地通常怎么做。" + } + }, + { + "id": "B1-U11-P03", + "type": "phrase", + "en": "Is it rude to eat on the train?", + "zh": "在火车上吃东西不礼貌吗?", + "sceneWord": false, + "match": [ + [ + "is it rude to" + ] + ], + "example": { + "en": "Is it rude to talk on the phone on the bus?", + "zh": "在公交车上打电话不礼貌吗?" + }, + "review": { + "prompt": "问在当地做某件事是否不礼貌。" + } + }, + { + "id": "B1-U11-P04", + "type": "phrase", + "en": "Where I come from, we don't tip.", + "zh": "在我的家乡,我们不给小费。", + "sceneWord": false, + "match": [ + [ + "where i come from" + ] + ], + "example": { + "en": "Where I come from, people eat dinner at six.", + "zh": "在我的家乡,人们六点吃晚饭。" + }, + "review": { + "prompt": "说说你家乡的习惯。" + } + }, + { + "id": "B1-U11-P05", + "type": "phrase", + "en": "It's the same in China.", + "zh": "在中国也是这样。", + "sceneWord": false, + "match": [ + [ + "the same in" + ] + ], + "example": { + "en": "It's the same in China. We also take our shoes off at home.", + "zh": "在中国也是这样,我们在家也脱鞋。" + }, + "review": { + "prompt": "说你的国家也有同样的习惯。" + } + }, + { + "id": "B1-U11-P06", + "type": "phrase", + "en": "It's quite different in my country.", + "zh": "在我的国家很不一样。", + "sceneWord": false, + "match": [ + [ + "different in my country" + ] + ], + "example": { + "en": "Weddings are quite different in my country.", + "zh": "在我的国家婚礼很不一样。" + }, + "review": { + "prompt": "说你的国家做法不同,并举个例子。" + } + }, + { + "id": "B1-U11-P07", + "type": "phrase", + "en": "You're supposed to take your shoes off.", + "zh": "按规矩应该脱鞋。", + "sceneWord": false, + "match": [ + [ + "supposed to" + ] + ], + "example": { + "en": "You're supposed to bring a small gift.", + "zh": "按规矩应该带个小礼物。" + }, + "review": { + "prompt": "说明按习惯应该怎么做。" + } + }, + { + "id": "B1-U11-P08", + "type": "phrase", + "en": "What do people usually do at New Year?", + "zh": "人们新年通常做什么?", + "sceneWord": false, + "match": [ + [ + "what do people usually do" + ] + ], + "example": { + "en": "What do people usually do on Christmas Day?", + "zh": "人们圣诞节那天通常做什么?" + }, + "review": { + "prompt": "问对方国家过节时通常做什么。" + } + }, + { + "id": "B1-U11-P09", + "type": "phrase", + "en": "It's a tradition to give red envelopes.", + "zh": "按传统要送红包。", + "sceneWord": false, + "match": [ + [ + "a tradition to" + ] + ], + "example": { + "en": "It's a tradition to eat together on New Year's Eve.", + "zh": "按传统除夕要一起吃饭。" + }, + "review": { + "prompt": "介绍一个中国节日的传统。" + } + }, + { + "id": "B1-U11-P10", + "type": "phrase", + "en": "How do you celebrate it?", + "zh": "你们怎么庆祝?", + "sceneWord": false, + "match": [ + [ + "how do you celebrate" + ] + ], + "example": { + "en": "How do you celebrate birthdays in your country?", + "zh": "你们国家怎么过生日?" + }, + "review": { + "prompt": "问对方怎么庆祝一个节日。" + } + }, + { + "id": "B1-U11-P11", + "type": "phrase", + "en": "Sorry, I didn't mean to be rude.", + "zh": "抱歉,我不是有意失礼。", + "sceneWord": false, + "match": [ + [ + "didn't mean to" + ] + ], + "example": { + "en": "Sorry, I didn't mean to be late.", + "zh": "抱歉,我不是故意迟到的。" + }, + "review": { + "prompt": "发现自己做错了,礼貌地道歉。" + } + }, + { + "id": "B1-U11-P12", + "type": "phrase", + "en": "That's good to know.", + "zh": "知道这个很有用。", + "sceneWord": false, + "match": [ + [ + "good to know" + ] + ], + "example": { + "en": "Thanks, that's good to know for next time.", + "zh": "谢谢,下次就知道了。" + }, + "review": { + "prompt": "听到有用的建议后回应。" + } + }, + { + "id": "B1-U11-W01", + "type": "word", + "en": "greeting", + "zh": "问候;打招呼", + "sceneWord": false, + "match": [ + [ + "greeting", + "greetings" + ] + ], + "example": { + "en": "A handshake is a common greeting here.", + "zh": "握手在这里是常见的打招呼方式。" + }, + "review": { + "prompt": "说说你的国家常见的打招呼方式。" + } + }, + { + "id": "B1-U11-W02", + "type": "word", + "en": "gesture", + "zh": "手势", + "sceneWord": false, + "match": [ + [ + "gesture", + "gestures" + ] + ], + "example": { + "en": "In some countries, this gesture is rude.", + "zh": "在一些国家,这个手势不礼貌。" + }, + "review": { + "prompt": "问一个手势在当地是什么意思。" + } + }, + { + "id": "B1-U11-W03", + "type": "word", + "en": "occasion", + "zh": "场合", + "sceneWord": false, + "match": [ + [ + "occasion", + "occasions" + ] + ], + "example": { + "en": "Red is a lucky color for happy occasions.", + "zh": "红色是喜庆场合的吉祥色。" + }, + "review": { + "prompt": "说在什么场合穿红色。" + } + } + ], + "receptiveWords": [ + { + "id": "B1-U11-R01", + "en": "accent", + "zh": "口音" + }, + { + "id": "B1-U11-R02", + "en": "appreciation", + "zh": "感激;欣赏" + }, + { + "id": "B1-U11-R03", + "en": "ashamed", + "zh": "羞愧的" + }, + { + "id": "B1-U11-R04", + "en": "behave", + "zh": "表现;举止" + }, + { + "id": "B1-U11-R05", + "en": "blush", + "zh": "脸红" + }, + { + "id": "B1-U11-R06", + "en": "bow", + "zh": "鞠躬" + }, + { + "id": "B1-U11-R07", + "en": "candle", + "zh": "蜡烛" + }, + { + "id": "B1-U11-R08", + "en": "celebrity", + "zh": "名人" + }, + { + "id": "B1-U11-R09", + "en": "cultural", + "zh": "文化的" + }, + { + "id": "B1-U11-R10", + "en": "depth", + "zh": "深度" + }, + { + "id": "B1-U11-R11", + "en": "engaged", + "zh": "订婚的" + }, + { + "id": "B1-U11-R12", + "en": "farewell", + "zh": "告别" + }, + { + "id": "B1-U11-R13", + "en": "feast", + "zh": "盛宴" + }, + { + "id": "B1-U11-R14", + "en": "festive", + "zh": "节日的" + }, + { + "id": "B1-U11-R15", + "en": "fluent", + "zh": "流利的" + }, + { + "id": "B1-U11-R16", + "en": "gossip", + "zh": "闲聊;八卦" + }, + { + "id": "B1-U11-R17", + "en": "gown", + "zh": "长礼服" + }, + { + "id": "B1-U11-R18", + "en": "gratitude", + "zh": "感激" + }, + { + "id": "B1-U11-R19", + "en": "gravy", + "zh": "肉汁" + }, + { + "id": "B1-U11-R20", + "en": "groom", + "zh": "新郎" + }, + { + "id": "B1-U11-R21", + "en": "handkerchief", + "zh": "手帕" + }, + { + "id": "B1-U11-R22", + "en": "handshake", + "zh": "握手" + }, + { + "id": "B1-U11-R23", + "en": "honesty", + "zh": "诚实" + }, + { + "id": "B1-U11-R24", + "en": "humour", + "zh": "幽默" + }, + { + "id": "B1-U11-R25", + "en": "incredibly", + "zh": "极其" + }, + { + "id": "B1-U11-R26", + "en": "ingredient", + "zh": "食材;原料" + }, + { + "id": "B1-U11-R27", + "en": "interrupt", + "zh": "打断" + }, + { + "id": "B1-U11-R28", + "en": "jumper", + "zh": "毛衣" + }, + { + "id": "B1-U11-R29", + "en": "kindness", + "zh": "善意" + }, + { + "id": "B1-U11-R30", + "en": "lamb", + "zh": "羊肉" + }, + { + "id": "B1-U11-R31", + "en": "laughter", + "zh": "笑声" + }, + { + "id": "B1-U11-R32", + "en": "marriage", + "zh": "婚姻" + }, + { + "id": "B1-U11-R33", + "en": "naturally", + "zh": "自然地" + }, + { + "id": "B1-U11-R34", + "en": "nephew", + "zh": "侄子;外甥" + }, + { + "id": "B1-U11-R35", + "en": "niece", + "zh": "侄女;外甥女" + }, + { + "id": "B1-U11-R36", + "en": "occur", + "zh": "发生;出现" + }, + { + "id": "B1-U11-R37", + "en": "offensive", + "zh": "冒犯的" + }, + { + "id": "B1-U11-R38", + "en": "pause", + "zh": "停顿" + }, + { + "id": "B1-U11-R39", + "en": "pie", + "zh": "馅饼" + }, + { + "id": "B1-U11-R40", + "en": "politics", + "zh": "政治" + }, + { + "id": "B1-U11-R41", + "en": "pork", + "zh": "猪肉" + }, + { + "id": "B1-U11-R42", + "en": "praise", + "zh": "称赞" + }, + { + "id": "B1-U11-R43", + "en": "pub", + "zh": "酒吧" + }, + { + "id": "B1-U11-R44", + "en": "publicly", + "zh": "公开地" + }, + { + "id": "B1-U11-R45", + "en": "relationship", + "zh": "恋爱关系;关系" + }, + { + "id": "B1-U11-R46", + "en": "seaweed", + "zh": "海带;海藻" + }, + { + "id": "B1-U11-R47", + "en": "shameful", + "zh": "丢脸的" + }, + { + "id": "B1-U11-R48", + "en": "shrimp", + "zh": "虾" + }, + { + "id": "B1-U11-R49", + "en": "sigh", + "zh": "叹气" + }, + { + "id": "B1-U11-R50", + "en": "similarity", + "zh": "相似之处" + }, + { + "id": "B1-U11-R51", + "en": "specially", + "zh": "特地" + }, + { + "id": "B1-U11-R52", + "en": "spice", + "zh": "香料" + }, + { + "id": "B1-U11-R53", + "en": "tease", + "zh": "取笑" + }, + { + "id": "B1-U11-R54", + "en": "translate", + "zh": "翻译" + }, + { + "id": "B1-U11-R55", + "en": "twin", + "zh": "双胞胎" + }, + { + "id": "B1-U11-R56", + "en": "warmly", + "zh": "热情地" + }, + { + "id": "B1-U11-R57", + "en": "well-dressed", + "zh": "穿着得体的" + }, + { + "id": "B1-U11-R58", + "en": "nod", + "zh": "点头" + }, + { + "id": "B1-U11-R59", + "en": "embarrassment", + "zh": "尴尬" + }, + { + "id": "B1-U11-R60", + "en": "secretly", + "zh": "偷偷地" + }, + { + "id": "B1-U11-R61", + "en": "congratulate", + "zh": "祝贺" + }, + { + "id": "B1-U11-R62", + "en": "comedian", + "zh": "喜剧演员" + }, + { + "id": "B1-U11-R63", + "en": "respectable", + "zh": "体面的" + }, + { + "id": "B1-U11-R64", + "en": "plain", + "zh": "朴素的" + }, + { + "id": "B1-U11-R65", + "en": "sweatshirt", + "zh": "卫衣" + }, + { + "id": "B1-U11-R66", + "en": "folk", + "zh": "民间的" + }, + { + "id": "B1-U11-R67", + "en": "lottery", + "zh": "彩票" + }, + { + "id": "B1-U11-R68", + "en": "spirit", + "zh": "灵魂;精神" + }, + { + "id": "B1-U11-R69", + "en": "heaven", + "zh": "天堂" + }, + { + "id": "B1-U11-R70", + "en": "newborn", + "zh": "新生的" + }, + { + "id": "B1-U11-R71", + "en": "culture", + "zh": "文化" + }, + { + "id": "B1-U11-R72", + "en": "example", + "zh": "例子" + }, + { + "id": "B1-U11-R73", + "en": "kiss", + "zh": "亲吻" + }, + { + "id": "B1-U11-R74", + "en": "respect", + "zh": "尊重" + }, + { + "id": "B1-U11-R75", + "en": "traveller", + "zh": "旅行者" + }, + { + "id": "B1-U11-R76", + "en": "western", + "zh": "西方的" + }, + { + "id": "B1-U11-R77", + "en": "neighbour", + "zh": "邻居" + }, + { + "id": "B1-U11-R78", + "en": "grandparent", + "zh": "祖父母;外祖父母" + }, + { + "id": "B1-U11-R79", + "en": "reader", + "zh": "读者" + } + ], + "segments": [ + { + "id": "B1-U11-S1", + "title": "小费与比较做法", + "minutes": 13, + "itemIds": [ + "B1-U11-P01", + "B1-U11-P02", + "B1-U11-P04", + "B1-U11-P05", + "B1-U11-P12" + ], + "listening": { + "text": "Do people tip in restaurants here? Yes. It's common to leave ten percent. Really? Where I come from, we don't tip. It's the same in China and Japan. In the US, it's common to leave more. OK, that's good to know.", + "question": "在这个地方的餐馆,通常给多少小费?", + "options": [ + "百分之十", + "百分之二十", + "不给小费" + ] + }, + "speaking": [ + { + "text": "Do people tip in restaurants here?" + }, + { + "text": "It's common to leave ten percent.", + "tip": "percent 重音在第二个音节" + }, + { + "text": "Where I come from, we don't tip.", + "tip": "come from 连读" + }, + { + "text": "It's the same in China." + }, + { + "text": "That's good to know." + } + ], + "reading": { + "text": "Tips for visitors\nDo people tip in restaurants here? Yes. It's common to leave ten percent, but only if the service was good. Check the bill first: some restaurants put it on the bill for you. Where I come from, in China, we don't tip, so this was new for me.", + "question": "付小费之前应该先做什么?", + "options": [ + "先看账单", + "先问服务员", + "先付现金" + ] + }, + "writing": { + "prompt": "写两句话:问这里的人在餐馆给不给小费,再说在你的家乡不给。", + "example": "Do people tip in restaurants here? Where I come from, we don't tip.", + "itemIds": [ + "B1-U11-P01", + "B1-U11-P04" + ] + }, + "independent": { + "prompt": "用英语说通常给百分之十,在中国也一样吗?最后说知道这个很有用。", + "itemIds": [ + "B1-U11-P02", + "B1-U11-P05", + "B1-U11-P12" + ] + } + }, + { + "id": "B1-U11-S2", + "title": "礼仪与手势", + "minutes": 14, + "itemIds": [ + "B1-U11-P03", + "B1-U11-P06", + "B1-U11-P07", + "B1-U11-P11", + "B1-U11-W01", + "B1-U11-W02" + ], + "listening": { + "text": "Is it rude to eat on the train here? Not really. But you're supposed to take your shoes off when you visit a home. Oh, sorry, I didn't mean to be rude! A bow is a common greeting. And this gesture is fine here. It's quite different in my country.", + "question": "去别人家时按规矩应该做什么?", + "options": [ + "脱鞋", + "带花", + "鞠躬" + ] + }, + "speaking": [ + { + "text": "Is it rude to eat on the train?" + }, + { + "text": "You're supposed to take your shoes off.", + "tip": "supposed to 读 /səˈpəʊs tə/" + }, + { + "text": "Sorry, I didn't mean to be rude." + }, + { + "text": "It's quite different in my country." + }, + { + "text": "A bow is a common greeting.", + "tip": "greeting 重音在第一个音节" + }, + { + "text": "Is this gesture OK here?", + "tip": "gesture 读 /ˈdʒestʃə/" + } + ], + "reading": { + "text": "Visiting a home\nYou're supposed to take your shoes off at the door. A small bow is a common greeting. Is it rude to arrive early? Yes, a little. And don't use this gesture with your finger: it's quite different in my country, but here it is rude. If you make a mistake, just say, \"Sorry, I didn't mean to be rude.\"", + "question": "早到别人家怎么样?", + "options": [ + "有点不礼貌", + "很受欢迎", + "必须提前一小时到" + ] + }, + "writing": { + "prompt": "写两句话:问在火车上吃东西是否不礼貌,并说按规矩应该脱鞋。", + "example": "Is it rude to eat on the train? You're supposed to take your shoes off.", + "itemIds": [ + "B1-U11-P03", + "B1-U11-P07" + ] + }, + "independent": { + "prompt": "用英语说一个手势或打招呼方式在你的国家很不一样,再为失礼道歉。", + "itemIds": [ + "B1-U11-P06", + "B1-U11-W01", + "B1-U11-W02", + "B1-U11-P11" + ] + } + }, + { + "id": "B1-U11-S3", + "title": "节日与传统", + "minutes": 12, + "itemIds": [ + "B1-U11-P08", + "B1-U11-P09", + "B1-U11-P10", + "B1-U11-W03" + ], + "listening": { + "text": "What do people usually do at New Year in China? We eat together with the family. It's a tradition to give red envelopes with money to children. How do you celebrate it here? We watch the fireworks. It's a big occasion.", + "question": "中国新年按传统要给孩子什么?", + "options": [ + "装钱的红包", + "新衣服", + "蛋糕" + ] + }, + "speaking": [ + { + "text": "What do people usually do at New Year?" + }, + { + "text": "It's a tradition to give red envelopes.", + "tip": "tradition 重音在第二个音节" + }, + { + "text": "How do you celebrate it?", + "tip": "celebrate 重音在第一个音节" + }, + { + "text": "It's a big occasion.", + "tip": "occasion 读 /əˈkeɪʒn/" + } + ], + "reading": { + "text": "Spring Festival\nWhat do people usually do at Spring Festival? Families eat a big dinner together. It's a tradition to give red envelopes to children. Red is a lucky color, so people wear it on happy occasions. How do you celebrate it? Tell us in the comments!", + "question": "为什么人们在喜庆场合穿红色?", + "options": [ + "红色是吉祥色", + "红色的衣服便宜", + "红色容易看见" + ] + }, + "writing": { + "prompt": "写两句话:问人们新年通常做什么,再问对方怎么庆祝。", + "example": "What do people usually do at New Year? How do you celebrate it?", + "itemIds": [ + "B1-U11-P08", + "B1-U11-P10" + ] + }, + "independent": { + "prompt": "用英语介绍一个中国节日的传统,说说它是什么样的场合。", + "itemIds": [ + "B1-U11-P09", + "B1-U11-W03" + ] + } + } + ], + "scenes": [ + { + "id": "B1-U11-C1", + "kind": "main", + "title": "和英国朋友聊小费", + "learnerRole": "中国游客", + "aiRole": "英国朋友", + "setting": "你在伦敦和英国朋友汤姆吃完晚饭,准备付钱,但不知道要不要给小费。", + "turns": [ + { + "ai": "That was a great dinner. Shall we ask for the bill?", + "goal": "问这里给不给小费", + "model": "Yes. By the way, do people tip in restaurants here?", + "zh": "好。顺便问一下,这里的人在餐馆给小费吗?", + "itemIds": [ + "B1-U11-P01" + ] + }, + { + "ai": "Yes, usually.", + "goal": "确认通常给多少", + "model": "I read that it's common to leave ten percent. Is that right?", + "zh": "我看到说通常给百分之十,对吗?", + "itemIds": [ + "B1-U11-P02" + ] + }, + { + "ai": "Yes, that's right. But check the bill first. Do people tip in China?", + "goal": "说家乡的做法", + "model": "Where I come from, we don't tip at all.", + "zh": "在我的家乡,我们根本不给小费。", + "itemIds": [ + "B1-U11-P04" + ] + }, + { + "ai": "Really? What about in hotels or taxis?", + "goal": "说在中国也一样", + "model": "It's the same in China. We don't tip taxi drivers either.", + "zh": "在中国也一样,我们也不给出租车司机小费。", + "itemIds": [ + "B1-U11-P05" + ] + }, + { + "ai": "That's interesting. Here people often leave the change for the driver.", + "goal": "说明不同并回应", + "model": "It's quite different in my country, then. That's good to know.", + "zh": "那跟我的国家很不一样,知道这个很有用。", + "itemIds": [ + "B1-U11-P06", + "B1-U11-P12" + ] + }, + { + "ai": "No problem. Let's pay and go.", + "goal": "回应", + "model": "OK. I'll leave ten percent.", + "zh": "好的,我给百分之十。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U11-C2", + "kind": "variant", + "title": "第一次去日本朋友家", + "learnerRole": "客人", + "aiRole": "日本朋友", + "setting": "你第一次去日本朋友健二家吃饭,不太了解日本家庭的礼仪。", + "turns": [ + { + "ai": "Welcome! Come in, come in.", + "goal": "用打招呼回应并问鞋子", + "model": "Thank you! Hello! Are you supposed to take your shoes off here?", + "zh": "谢谢!你好!在这里按规矩要脱鞋吗?", + "itemIds": [ + "B1-U11-P07" + ] + }, + { + "ai": "Yes, please. You can put them here.", + "goal": "问手势", + "model": "Thanks. Oh, is this gesture OK? I want to say thank you.", + "zh": "谢谢。噢,这个手势可以吗?我想表示感谢。", + "itemIds": [ + "B1-U11-W02" + ] + }, + { + "ai": "Hmm, a small bow is a better greeting here.", + "goal": "问是否不礼貌", + "model": "I see. So a bow is the usual greeting. Is it rude to point at people with your finger?", + "zh": "明白了,鞠躬是常用的打招呼方式。用手指指人不礼貌吗?", + "itemIds": [ + "B1-U11-W01", + "B1-U11-P03" + ] + }, + { + "ai": "Yes, it's a little rude.", + "goal": "道歉", + "model": "Oh, sorry, I didn't mean to be rude.", + "zh": "哦,抱歉,我不是有意失礼。", + "itemIds": [ + "B1-U11-P11" + ] + }, + { + "ai": "Don't worry! You're our guest.", + "goal": "回应", + "model": "Thank you. You're very kind.", + "zh": "谢谢,你们真好。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U11-C3", + "kind": "variant", + "title": "给外国朋友介绍春节", + "learnerRole": "中国朋友", + "aiRole": "外国同事", + "setting": "外国同事莎拉想了解春节,你们在休息时聊起节日。", + "turns": [ + { + "ai": "I heard Spring Festival is next week. Is it a big occasion?", + "goal": "说是个重要场合", + "model": "Yes, it's the biggest occasion of the year in China.", + "zh": "是的,这是中国一年中最重要的时刻。", + "itemIds": [ + "B1-U11-W03" + ] + }, + { + "ai": "How do you celebrate it?", + "goal": "介绍一个传统", + "model": "We eat a big dinner with the family. It's a tradition to give red envelopes to children.", + "zh": "我们和家人吃一顿大餐。按传统要给孩子发红包。", + "itemIds": [ + "B1-U11-P09" + ] + }, + { + "ai": "That sounds lovely. We have something like that at Christmas.", + "goal": "问对方节日做什么", + "model": "What do people usually do at Christmas here?", + "zh": "这里的人圣诞节通常做什么?", + "itemIds": [ + "B1-U11-P08" + ] + }, + { + "ai": "We give presents and eat a big lunch together.", + "goal": "问怎么庆祝新年", + "model": "And New Year? How do you celebrate it?", + "zh": "那新年呢?你们怎么庆祝?", + "itemIds": [ + "B1-U11-P10" + ] + }, + { + "ai": "Usually with friends. We watch the fireworks at midnight.", + "goal": "回应", + "model": "That sounds fun.", + "zh": "听起来很有意思。", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "B1-U11-T1", + "sceneId": "B1-U11-C1", + "goal": "在英国餐馆问小费并比较两国做法", + "itemIds": [ + "B1-U11-P01", + "B1-U11-P02", + "B1-U11-P04", + "B1-U11-P05", + "B1-U11-P06", + "B1-U11-P12" + ], + "slots": [ + "问题", + "家乡做法", + "比较", + "回应" + ] + }, + { + "id": "B1-U11-T2", + "sceneId": "B1-U11-C2", + "goal": "在日本朋友家问清礼仪", + "itemIds": [ + "B1-U11-P07", + "B1-U11-W02", + "B1-U11-W01", + "B1-U11-P03", + "B1-U11-P11" + ], + "slots": [ + "鞋子", + "手势", + "问候", + "道歉" + ] + }, + { + "id": "B1-U11-T3", + "sceneId": "B1-U11-C3", + "goal": "介绍春节并了解对方的节日", + "itemIds": [ + "B1-U11-W03", + "B1-U11-P09", + "B1-U11-P08", + "B1-U11-P10" + ], + "slots": [ + "场合", + "传统", + "提问" + ] + } + ], + "materials": [ + { + "id": "B1-U11-M1", + "mode": "listening", + "title": "广播:出国旅行的礼仪小贴士", + "text": "Welcome back to Travel Smart. Today: customs around the world, because what is polite in one country can be offensive in another. Our guest is Maria Lopez, who has written a book on cultural differences. Maria, let's start with tipping.\nMaria: OK. In the United States, it's common to leave fifteen to twenty percent in restaurants, because waiters don't earn much, and tips are a big part of their pay. In the UK, ten percent is normal, but only if service isn't already on the bill. In Japan, on the other hand, you're not supposed to tip at all. If you leave money on the table, the waiter might run after you to give it back! Where I come from, in Spain, people usually just leave a few coins.\nHost: What about greetings? That's another area where people get it wrong.\nMaria: Yes. In many Asian countries, a bow is the traditional greeting, and the depth of the bow shows how much respect you want to show. In the UK or the US, a firm handshake is typical for a first meeting. In France and Italy, friends often kiss each other on the cheek, sometimes twice, sometimes three times. If you're not sure, just follow what the other person does. And in Bulgaria, a nod can actually mean \"no\", which causes a lot of embarrassment!\nHost: And gestures? I've heard stories about travellers who got into trouble.\nMaria: Gestures can be a problem, because the same gesture can mean completely different things. The thumbs-up sign means \"great\" in most places, but in a few countries it's rude. In some cultures, pointing at people with your finger is not polite, so it's better to use your whole hand. And in Thailand, you're not supposed to touch someone's head, even a child's, because the head is seen as the most special part of the body.\nHost: What should people do if they make a mistake?\nMaria: Don't panic! Most people are very understanding with visitors. Just say, \"Sorry, I didn't mean to be rude,\" and smile. People will appreciate that you're trying. The worst thing is to behave as if your way is the only right way.\nHost: Any advice for special occasions, like weddings?\nMaria: If you're invited to a wedding abroad, ask what to wear. In China, for example, white is traditionally the color of funerals, so guests don't wear it, and the bride often wears a red dress. At Western weddings, guests are supposed to avoid white, because that's the bride's color. The groom usually wears a dark suit. And in many countries, money in an envelope is a more common gift than a present.\nHost: And language?\nMaria: Even if you're not fluent, learn a simple greeting. It shows appreciation, and nobody minds your accent. Be careful with humour, though: jokes that tease people, or gossip about celebrities and politics, rarely translate well. And in some places, blowing your nose publicly is shameful, so use a handkerchief.\nHost: That's all good to know. Maria, thank you.", + "glosses": { + "thumbs-up": "竖大拇指", + "panic": "惊慌", + "appreciate": "感激", + "bride's": "新娘的", + "blowing": "擤(鼻涕)" + }, + "questions": [ + { + "type": "gist", + "question": "这期节目主要讲什么?", + "options": [ + "不同国家的小费、问候和手势习俗", + "怎样写一本旅行书", + "怎样准备婚礼" + ] + }, + { + "type": "detail", + "question": "在日本,如果你把钱留在桌上,服务员可能会怎么做?", + "options": [ + "追出去把钱还给你", + "很高兴地收下", + "叫经理来" + ] + }, + { + "type": "inference", + "question": "玛丽亚为什么说“跟着对方做”?", + "options": [ + "不同地区的习惯不一样,很难全记住", + "她不喜欢握手", + "这样更快" + ] + } + ] + }, + { + "id": "B1-U11-M2", + "mode": "listening", + "title": "对话:圣诞节和春节", + "text": "Tom: So, Li Na, is this your first Christmas in England?\nLi Na: Yes, it is. I'm excited, but I don't really know what to expect. What do people usually do at Christmas here?\nTom: Well, it's mainly a family occasion. On Christmas Eve, lots of people go to the pub with friends, or to church. Then on Christmas Day, we open presents in the morning and have a big lunch together. It's a tradition to eat roast turkey with potatoes, vegetables and gravy, though some families have lamb or pork instead. Then there's Christmas pudding.\nLi Na: Pudding? Is that a kind of pie?\nTom: Not really. It's a dark, heavy cake with fruit and spices. Honestly, a lot of people don't even like it, but we eat it because it's traditional. My grandmother makes it specially, so we have to be polite and eat some!\nLi Na: It's the same in China. At Spring Festival, my aunt always makes a dish with seaweed and shrimp that nobody likes, but we all eat it.\nTom: How do you celebrate Spring Festival?\nLi Na: It's quite different. It's the biggest festival of the year, and everyone travels home to their parents, so the trains are incredibly crowded. On New Year's Eve, the whole family has a feast. In the north, where I come from, it's a tradition to make dumplings together. Sometimes we put a coin inside one, and whoever finds it will have good luck all year.\nTom: I love that. We do something a bit like that. We sometimes put a coin in the Christmas pudding.\nLi Na: Really? That's a funny similarity. What else?\nTom: Well, we decorate a tree with lights and candles, and people send cards to their relatives. There's a very festive feeling everywhere.\nLi Na: Do people dress up?\nTom: For office parties, yes. Everyone is well-dressed, and some women wear long gowns. At home, though, it's a silly jumper. My nephew and niece are twins, and they love it. There's always laughter when my uncle tells the same old jokes, and a loud sigh from my aunt.\nLi Na: At home, the streets are full of red lanterns, and there are fireworks at midnight. Children get red envelopes with money from their grandparents, and in return, they have to wish everyone good health. My grandfather always secretly gives me a bigger one. On the first morning, we visit neighbours and congratulate each other, and in the evening the whole country watches a TV show with singers and comedians.\nTom: So you don't give presents?\nLi Na: Not usually. Red envelopes are more common. But you're supposed to give and receive them with both hands. Using one hand isn't very polite.\nTom: That's good to know. Actually, my girlfriend's family is Chinese, and I'm meeting them at Spring Festival for the first time. I'm a bit nervous.\nLi Na: Don't worry. Bring some fruit or a nice gift for her parents, greet them warmly, and eat everything they offer you. They'll love you.\nTom: Even the dish nobody likes?\nLi Na: Especially that one! And if they ask about your relationship or when you're getting engaged, just smile.", + "glosses": { + "church": "教堂", + "roast": "烤的", + "turkey": "火鸡", + "pudding": "布丁", + "dumplings": "饺子", + "silly": "傻乎乎的", + "lanterns": "灯笼", + "decorate": "装饰" + }, + "questions": [ + { + "type": "gist", + "question": "汤姆和李娜主要在聊什么?", + "options": [ + "圣诞节和春节的习俗", + "怎样做布丁", + "春节回家的火车票" + ] + }, + { + "type": "detail", + "question": "在李娜的家乡,除夕吃饺子时会放什么?", + "options": [ + "一枚硬币", + "一个红包", + "一张卡片" + ] + }, + { + "type": "inference", + "question": "汤姆为什么问春节的礼仪?", + "options": [ + "他要第一次去见女朋友的中国家人", + "他要去中国工作", + "他想在英国开中餐馆" + ] + } + ] + }, + { + "id": "B1-U11-M3", + "mode": "reading", + "title": "指南:去当地人家里做客", + "text": "Visiting a home abroad: a guest's guide\nBeing invited to someone's home is a great way to understand a culture, but it can be stressful, because the rules are rarely written down.\nBringing a gift\nIn most countries, it's common to bring a small gift. Flowers, chocolates or something from your own country are usually safe choices. In Russia, give an odd number of flowers, because even numbers are for funerals. In China, avoid giving a clock, and don't wrap gifts in white. In Japan, the way a gift is wrapped matters as much as the gift itself. Don't be surprised if your host doesn't open it in front of you: in many Asian cultures, that's considered polite, not rude.\nArriving\nIn Germany, people value being on time, so arriving late without a message is not acceptable. In parts of South America, on the other hand, arriving thirty minutes after the time on the invitation is completely normal. Arriving early is rarely a good idea.\nDress\nFor a special dinner, try to look respectable. Plain, dark clothes are safe; a sweatshirt is not.\nLuck\nMany folk beliefs are about luck. In China, four is unlucky, while eight is so lucky that people buy lottery tickets with eights in them. In some homes, food is left out for the spirits of family members in heaven. If there's a newborn baby, bring a small gift, but in some cultures you shouldn't praise a baby too much.\nAt the door\nIn Japan, Korea, and many homes in China, you're supposed to take your shoes off at the door. Your host may give you slippers. In the UK, it depends on the family, so just ask: \"Should I take my shoes off?\"\nAt the table\nWait for your host to start eating. In some countries, finishing everything on your plate shows you enjoyed the meal. In others, like China, an empty plate can mean you're still hungry, so your host will keep giving you more food. Leaving a little is a polite way to say you're full. Praise the food, and ask about an ingredient you don't know.\nConversation\nQuestions about money, age or marriage can seem rude, although in some cultures they occur naturally. Don't interrupt, and don't worry about a pause: silence is normal in Japan. Kindness and honesty matter more than knowing every rule.\nSaying thank you\nA long farewell at the door is typical in many countries. The next day, send a short message to show your gratitude, like \"Thank you for a lovely evening.\"\nReader's story\n\"When I first visited my Korean friend's family, I poured my own drink. Everyone went quiet. Later my friend explained that you're supposed to pour for others. I blushed and felt so ashamed, but they just laughed. Now it's a story we tell at every family dinner.\" Oliver, Manchester", + "glosses": { + "odd": "奇数的", + "wrap": "包装", + "poured": "倒(饮料)", + "slippers": "拖鞋" + }, + "questions": [ + { + "type": "gist", + "question": "这篇文章主要讲什么?", + "options": [ + "去别人家做客时各国的礼仪", + "各国的节日", + "怎样买礼物" + ] + }, + { + "type": "detail", + "question": "在中国吃饭时,盘子吃得干干净净可能表示什么?", + "options": [ + "你还没吃饱", + "你不喜欢这道菜", + "你想马上离开" + ] + }, + { + "type": "inference", + "question": "奥利弗的故事说明了什么?", + "options": [ + "犯了礼仪错误也不用太担心", + "韩国人不喜欢外国客人", + "喝酒时要自己倒" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "说明习俗", + "bands": [ + "说不清当地或家乡的做法", + "能说出做法,但缺少例子", + "清楚说明做法,并举例比较不同国家" + ], + "pass": 1 + }, + { + "name": "得体地交流", + "bands": [ + "直接评判别人的习俗", + "能提问,但语气生硬", + "礼貌地提问、道谢,出错时道歉" + ], + "pass": 1 + } + ] + }, + "excluded": [] +} diff --git a/kouyu_english/assets/courses/B1/B1-U12.json b/kouyu_english/assets/courses/B1/B1-U12.json new file mode 100644 index 0000000..a2e1e00 --- /dev/null +++ b/kouyu_english/assets/courses/B1/B1-U12.json @@ -0,0 +1,1335 @@ +{ + "schemaVersion": 1, + "id": "B1-U12", + "revision": 1, + "level": "B1", + "title": "深入聊天", + "categories": [ + "日常" + ], + "canDo": "聊经历、计划和感受,维持 5 分钟对话", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "shanghai", + "amy", + "jess", + "dan", + "chen", + "hui", + "leo", + "nina", + "canada", + "yunnan", + "kenya", + "vancouver" + ], + "grammar": [ + { + "id": "142", + "use": "active" + }, + { + "id": "156", + "use": "active" + }, + { + "id": "62", + "use": "active" + }, + { + "id": "215", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "B1-U12-P01", + "type": "phrase", + "en": "What have you been up to lately?", + "zh": "你最近在忙什么?", + "sceneWord": false, + "match": [ + [ + "been up to" + ] + ], + "example": { + "en": "So, what have you been up to lately?", + "zh": "那么,你最近在忙什么?" + }, + "review": { + "prompt": "很久没见的朋友,问问对方最近在忙什么。" + } + }, + { + "id": "B1-U12-P02", + "type": "phrase", + "en": "I've been meaning to call you.", + "zh": "我一直想给你打电话。", + "sceneWord": false, + "match": [ + [ + "been meaning to" + ] + ], + "example": { + "en": "I've been meaning to learn to swim for years.", + "zh": "我好几年来一直想学游泳。" + }, + "review": { + "prompt": "说一件你一直想做但还没做的事。" + } + }, + { + "id": "B1-U12-P03", + "type": "phrase", + "en": "How did it go?", + "zh": "结果怎么样?", + "sceneWord": false, + "match": [ + [ + "how did it go" + ] + ], + "example": { + "en": "You had a job interview yesterday. How did it go?", + "zh": "你昨天面试了,结果怎么样?" + }, + "review": { + "prompt": "朋友刚考完试,问问结果。" + } + }, + { + "id": "B1-U12-P04", + "type": "phrase", + "en": "It was harder than I expected.", + "zh": "比我想象的难。", + "sceneWord": false, + "match": [ + [ + "than i expected" + ] + ], + "example": { + "en": "The course was easier than I expected.", + "zh": "课程比我想象的简单。" + }, + "review": { + "prompt": "说一次经历比你想的难或容易。" + } + }, + { + "id": "B1-U12-P05", + "type": "phrase", + "en": "I was really proud of myself.", + "zh": "我真为自己骄傲。", + "sceneWord": false, + "match": [ + [ + "proud of" + ] + ], + "example": { + "en": "My parents were really proud of me.", + "zh": "我父母真为我骄傲。" + }, + "review": { + "prompt": "说一件让你为自己骄傲的事。" + } + }, + { + "id": "B1-U12-P06", + "type": "phrase", + "en": "I'm thinking of changing jobs.", + "zh": "我在考虑换工作。", + "sceneWord": false, + "match": [ + [ + "thinking of" + ] + ], + "example": { + "en": "I'm thinking of moving to another city.", + "zh": "我在考虑搬到另一个城市。" + }, + "review": { + "prompt": "说说你正在考虑的一个计划。" + } + }, + { + "id": "B1-U12-P07", + "type": "phrase", + "en": "What made you decide to do that?", + "zh": "是什么让你决定这么做的?", + "sceneWord": false, + "match": [ + [ + "made you decide" + ] + ], + "example": { + "en": "What made you decide to learn English?", + "zh": "是什么让你决定学英语的?" + }, + "review": { + "prompt": "朋友说要辞职去旅行,问他为什么这样决定。" + } + }, + { + "id": "B1-U12-P08", + "type": "phrase", + "en": "How did you feel about it?", + "zh": "你当时感觉怎么样?", + "sceneWord": false, + "match": [ + [ + "how did you feel" + ] + ], + "example": { + "en": "How did you feel about moving abroad?", + "zh": "你对出国生活感觉怎么样?" + }, + "review": { + "prompt": "问朋友对一件事的感受。" + } + }, + { + "id": "B1-U12-P09", + "type": "phrase", + "en": "I know exactly what you mean.", + "zh": "我完全明白你的意思。", + "sceneWord": false, + "match": [ + [ + "know exactly what you mean" + ] + ], + "example": { + "en": "I know exactly what you mean. I felt the same.", + "zh": "我完全明白,我也有同样的感觉。" + }, + "review": { + "prompt": "表示你有同样的经历和感受。" + } + }, + { + "id": "B1-U12-P10", + "type": "phrase", + "en": "That must have been hard.", + "zh": "那一定很难受吧。", + "sceneWord": false, + "match": [ + [ + "must have been" + ] + ], + "example": { + "en": "That must have been really exciting.", + "zh": "那一定很激动人心吧。" + }, + "review": { + "prompt": "听到朋友的坏消息,表示理解。" + } + }, + { + "id": "B1-U12-P11", + "type": "phrase", + "en": "Speaking of holidays, have you been anywhere nice?", + "zh": "说到假期,你去过什么好地方吗?", + "sceneWord": false, + "match": [ + [ + "speaking of" + ] + ], + "example": { + "en": "Speaking of food, have you tried the new restaurant?", + "zh": "说到吃的,你去过那家新餐馆吗?" + }, + "review": { + "prompt": "顺着对方的话换个新话题。" + } + }, + { + "id": "B1-U12-P12", + "type": "phrase", + "en": "Sorry, where was I?", + "zh": "抱歉,我刚才说到哪儿了?", + "sceneWord": false, + "match": [ + [ + "where was i" + ] + ], + "example": { + "en": "Sorry, where was I? Oh yes, the hotel.", + "zh": "抱歉,我说到哪儿了?哦对,酒店。" + }, + "review": { + "prompt": "聊天被打断后,找回刚才的话题。" + } + }, + { + "id": "B1-U12-W01", + "type": "word", + "en": "achievement", + "zh": "成就", + "sceneWord": false, + "match": [ + [ + "achievement", + "achievements" + ] + ], + "example": { + "en": "Learning to drive was a big achievement for me.", + "zh": "学会开车对我来说是个大成就。" + }, + "review": { + "prompt": "说说你最近的一个成就。" + } + }, + { + "id": "B1-U12-W02", + "type": "word", + "en": "motivation", + "zh": "动力", + "sceneWord": false, + "match": [ + [ + "motivation" + ] + ], + "example": { + "en": "My main motivation is my family.", + "zh": "我最大的动力是我的家人。" + }, + "review": { + "prompt": "说说你学英语的动力。" + } + }, + { + "id": "B1-U12-W03", + "type": "word", + "en": "volunteer", + "zh": "做志愿者", + "sceneWord": false, + "match": [ + [ + "volunteer", + "volunteers", + "volunteered" + ] + ], + "example": { + "en": "I volunteer at an animal hospital on Saturdays.", + "zh": "我每周六在一家动物医院做志愿者。" + }, + "review": { + "prompt": "说说你想在哪里做志愿者。" + } + } + ], + "receptiveWords": [ + { + "id": "B1-U12-R01", + "en": "lately", + "zh": "最近" + }, + { + "id": "B1-U12-R02", + "en": "dream", + "zh": "梦想" + }, + { + "id": "B1-U12-R03", + "en": "future", + "zh": "未来" + }, + { + "id": "B1-U12-R04", + "en": "goal", + "zh": "目标" + }, + { + "id": "B1-U12-R05", + "en": "charity", + "zh": "慈善机构" + }, + { + "id": "B1-U12-R06", + "en": "adapt", + "zh": "适应" + }, + { + "id": "B1-U12-R07", + "en": "aloud", + "zh": "大声地" + }, + { + "id": "B1-U12-R08", + "en": "ambitious", + "zh": "有抱负的" + }, + { + "id": "B1-U12-R09", + "en": "bakery", + "zh": "面包店" + }, + { + "id": "B1-U12-R10", + "en": "boredom", + "zh": "无聊" + }, + { + "id": "B1-U12-R11", + "en": "capable", + "zh": "有能力的" + }, + { + "id": "B1-U12-R12", + "en": "confidence", + "zh": "自信" + }, + { + "id": "B1-U12-R13", + "en": "courageous", + "zh": "勇敢的" + }, + { + "id": "B1-U12-R14", + "en": "curiosity", + "zh": "好奇心" + }, + { + "id": "B1-U12-R15", + "en": "despair", + "zh": "绝望" + }, + { + "id": "B1-U12-R16", + "en": "desperate", + "zh": "极度渴望的;绝望的" + }, + { + "id": "B1-U12-R17", + "en": "determination", + "zh": "决心" + }, + { + "id": "B1-U12-R18", + "en": "discourage", + "zh": "使泄气" + }, + { + "id": "B1-U12-R19", + "en": "divorced", + "zh": "离婚的" + }, + { + "id": "B1-U12-R20", + "en": "emotional", + "zh": "情感的" + }, + { + "id": "B1-U12-R21", + "en": "emotionally", + "zh": "情感上" + }, + { + "id": "B1-U12-R22", + "en": "encouragement", + "zh": "鼓励" + }, + { + "id": "B1-U12-R23", + "en": "enthusiasm", + "zh": "热情" + }, + { + "id": "B1-U12-R24", + "en": "enthusiastic", + "zh": "热情的" + }, + { + "id": "B1-U12-R25", + "en": "excitement", + "zh": "兴奋" + }, + { + "id": "B1-U12-R26", + "en": "fellow", + "zh": "同伴的" + }, + { + "id": "B1-U12-R27", + "en": "graduation", + "zh": "毕业" + }, + { + "id": "B1-U12-R28", + "en": "hard-working", + "zh": "勤奋的" + }, + { + "id": "B1-U12-R29", + "en": "hardship", + "zh": "艰难" + }, + { + "id": "B1-U12-R30", + "en": "homeless", + "zh": "无家可归的" + }, + { + "id": "B1-U12-R31", + "en": "hopeful", + "zh": "充满希望的" + }, + { + "id": "B1-U12-R32", + "en": "hopeless", + "zh": "绝望的" + }, + { + "id": "B1-U12-R33", + "en": "inspire", + "zh": "激励" + }, + { + "id": "B1-U12-R34", + "en": "jealous", + "zh": "嫉妒的" + }, + { + "id": "B1-U12-R35", + "en": "mentally", + "zh": "精神上" + }, + { + "id": "B1-U12-R36", + "en": "miserable", + "zh": "痛苦的" + }, + { + "id": "B1-U12-R37", + "en": "newly", + "zh": "新近" + }, + { + "id": "B1-U12-R38", + "en": "obstacle", + "zh": "障碍" + }, + { + "id": "B1-U12-R39", + "en": "overcome", + "zh": "克服" + }, + { + "id": "B1-U12-R40", + "en": "permanently", + "zh": "永久地" + }, + { + "id": "B1-U12-R41", + "en": "poverty", + "zh": "贫困" + }, + { + "id": "B1-U12-R42", + "en": "progress", + "zh": "进步" + }, + { + "id": "B1-U12-R43", + "en": "proud", + "zh": "骄傲的" + }, + { + "id": "B1-U12-R44", + "en": "race", + "zh": "赛跑" + }, + { + "id": "B1-U12-R45", + "en": "rapidly", + "zh": "快速地" + }, + { + "id": "B1-U12-R46", + "en": "sadness", + "zh": "悲伤" + }, + { + "id": "B1-U12-R47", + "en": "separation", + "zh": "分开" + }, + { + "id": "B1-U12-R48", + "en": "somehow", + "zh": "不知怎么地" + }, + { + "id": "B1-U12-R49", + "en": "steadily", + "zh": "稳步地" + }, + { + "id": "B1-U12-R50", + "en": "struggle", + "zh": "努力;挣扎" + }, + { + "id": "B1-U12-R51", + "en": "stubborn", + "zh": "固执的" + }, + { + "id": "B1-U12-R52", + "en": "supportive", + "zh": "支持的" + }, + { + "id": "B1-U12-R53", + "en": "teammate", + "zh": "队友" + }, + { + "id": "B1-U12-R54", + "en": "comfort", + "zh": "舒适" + }, + { + "id": "B1-U12-R55", + "en": "routine", + "zh": "日常安排" + }, + { + "id": "B1-U12-R56", + "en": "misery", + "zh": "痛苦" + }, + { + "id": "B1-U12-R57", + "en": "thankful", + "zh": "感激的" + }, + { + "id": "B1-U12-R58", + "en": "excess", + "zh": "过度" + }, + { + "id": "B1-U12-R59", + "en": "motive", + "zh": "动机" + }, + { + "id": "B1-U12-R60", + "en": "increasingly", + "zh": "越来越" + }, + { + "id": "B1-U12-R61", + "en": "devastating", + "zh": "毁灭性的;令人极度难过的" + }, + { + "id": "B1-U12-R62", + "en": "diligent", + "zh": "勤奋的" + }, + { + "id": "B1-U12-R63", + "en": "athletic", + "zh": "擅长运动的" + }, + { + "id": "B1-U12-R64", + "en": "competitive", + "zh": "好胜的" + }, + { + "id": "B1-U12-R65", + "en": "score", + "zh": "得分" + }, + { + "id": "B1-U12-R66", + "en": "companion", + "zh": "伴侣;伙伴" + }, + { + "id": "B1-U12-R67", + "en": "depressing", + "zh": "令人沮丧的" + }, + { + "id": "B1-U12-R68", + "en": "anxiously", + "zh": "焦虑地" + }, + { + "id": "B1-U12-R69", + "en": "survival", + "zh": "生存" + }, + { + "id": "B1-U12-R70", + "en": "nervousness", + "zh": "紧张" + }, + { + "id": "B1-U12-R71", + "en": "unexpectedly", + "zh": "出乎意料地" + }, + { + "id": "B1-U12-R72", + "en": "acquaintance", + "zh": "熟人" + }, + { + "id": "B1-U12-R73", + "en": "memorize", + "zh": "记住" + }, + { + "id": "B1-U12-R74", + "en": "fluently", + "zh": "流利地" + }, + { + "id": "B1-U12-R75", + "en": "intention", + "zh": "意图" + }, + { + "id": "B1-U12-R76", + "en": "urge", + "zh": "冲动" + }, + { + "id": "B1-U12-R77", + "en": "improvement", + "zh": "进步" + }, + { + "id": "B1-U12-R78", + "en": "repeatedly", + "zh": "反复地" + }, + { + "id": "B1-U12-R79", + "en": "leap", + "zh": "跳跃" + }, + { + "id": "B1-U12-R80", + "en": "forgive", + "zh": "原谅" + }, + { + "id": "B1-U12-R81", + "en": "tremble", + "zh": "发抖" + } + ], + "segments": [ + { + "id": "B1-U12-S1", + "title": "问近况和谈经历", + "minutes": 13, + "itemIds": [ + "B1-U12-P01", + "B1-U12-P03", + "B1-U12-P04", + "B1-U12-P05", + "B1-U12-W01" + ], + "listening": { + "text": "Hi Jess! What have you been up to lately? I did my first 10 km run. Really? How did it go? It was harder than I expected, but I finished. I was really proud of myself. That's a real achievement!", + "question": "杰斯觉得这次跑步怎么样?", + "options": [ + "比想象的难", + "非常轻松", + "没有跑完" + ] + }, + "speaking": [ + { + "text": "What have you been up to lately?", + "tip": "been up to 连读,lately 重音在第一个音节" + }, + { + "text": "How did it go?" + }, + { + "text": "It was harder than I expected.", + "tip": "expected 重音在第二个音节" + }, + { + "text": "I was really proud of myself.", + "tip": "proud 读 /praʊd/" + }, + { + "text": "It was a big achievement.", + "tip": "achievement 重音在第二个音节" + } + ], + "reading": { + "text": "My week\nWhat have I been up to lately? I took my driving test on Monday. How did it go? It was harder than I expected, but I passed! I was really proud of myself. For me, it's a big achievement.", + "question": "作者的驾照考试结果怎么样?", + "options": [ + "通过了", + "没通过", + "还没考" + ] + }, + "writing": { + "prompt": "写三句话:问朋友最近在忙什么,再问结果怎么样。", + "example": "What have you been up to lately? How did it go?", + "itemIds": [ + "B1-U12-P01", + "B1-U12-P03" + ] + }, + "independent": { + "prompt": "用英语说一次比你想象的难的经历,说你为自己骄傲,这是个成就。", + "itemIds": [ + "B1-U12-P04", + "B1-U12-P05", + "B1-U12-W01" + ] + } + }, + { + "id": "B1-U12-S2", + "title": "谈计划和原因", + "minutes": 13, + "itemIds": [ + "B1-U12-P02", + "B1-U12-P06", + "B1-U12-P07", + "B1-U12-W02", + "B1-U12-W03" + ], + "listening": { + "text": "I'm thinking of changing jobs. Really? What made you decide to do that? I volunteer at a charity on weekends, and I love it. That's my main motivation. And you? I've been meaning to learn to cook, but I never have time.", + "question": "说话人为什么想换工作?", + "options": [ + "喜欢周末做的志愿工作", + "工资太低", + "想搬家" + ] + }, + "speaking": [ + { + "text": "I'm thinking of changing jobs.", + "tip": "thinking of 连读" + }, + { + "text": "What made you decide to do that?" + }, + { + "text": "I've been meaning to call you.", + "tip": "meaning to 连读" + }, + { + "text": "My main motivation is my family.", + "tip": "motivation 重音在第三个音节" + }, + { + "text": "I volunteer at a charity.", + "tip": "volunteer 重音在最后一个音节" + } + ], + "reading": { + "text": "Nina's plans\nI'm thinking of changing jobs. People ask, \"What made you decide to do that?\" Well, I volunteer at an animal hospital, and I want to work with animals. That's my motivation. I've been meaning to do this for years!", + "question": "妮娜想换一份什么样的工作?", + "options": [ + "和动物打交道的工作", + "在医院当医生", + "在学校教书" + ] + }, + "writing": { + "prompt": "写两句话:说你在考虑换工作,再问朋友是什么让他决定这么做。", + "example": "I'm thinking of changing jobs. What made you decide to do that?", + "itemIds": [ + "B1-U12-P06", + "B1-U12-P07" + ] + }, + "independent": { + "prompt": "用英语说一件你一直想做的事,说说你的动力,以及你想在哪里做志愿者。", + "itemIds": [ + "B1-U12-P02", + "B1-U12-W02", + "B1-U12-W03" + ] + } + }, + { + "id": "B1-U12-S3", + "title": "回应感受和保持对话", + "minutes": 13, + "itemIds": [ + "B1-U12-P08", + "B1-U12-P09", + "B1-U12-P10", + "B1-U12-P11", + "B1-U12-P12" + ], + "listening": { + "text": "I moved to a new city last year. That must have been hard. How did you feel about it? Lonely at first. I know exactly what you mean. Sorry, where was I? Oh yes. Speaking of cities, have you been anywhere nice?", + "question": "说话人刚搬到新城市时感觉怎么样?", + "options": [ + "孤单", + "兴奋", + "很累" + ] + }, + "speaking": [ + { + "text": "How did you feel about it?" + }, + { + "text": "That must have been hard.", + "tip": "must have been 连读,have 弱读" + }, + { + "text": "I know exactly what you mean." + }, + { + "text": "Speaking of holidays, have you been anywhere nice?" + }, + { + "text": "Sorry, where was I?" + } + ], + "reading": { + "text": "Chat\nLeo: I lost my job last month.\nAmy: Oh no. That must have been hard. How did you feel about it?\nLeo: Worried. But now I have time for my family.\nAmy: I know exactly what you mean. Speaking of family, how's your son?", + "question": "利奥现在觉得有什么好处?", + "options": [ + "有时间陪家人", + "找到了新工作", + "可以去旅行" + ] + }, + "writing": { + "prompt": "写两句话:听到朋友的坏消息,表示理解,再问他感觉怎么样。", + "example": "That must have been hard. How did you feel about it?", + "itemIds": [ + "B1-U12-P10", + "B1-U12-P08" + ] + }, + "independent": { + "prompt": "用英语表示你完全明白对方的意思,然后说“说到……”换个话题;被打断后问刚才说到哪儿了。", + "itemIds": [ + "B1-U12-P09", + "B1-U12-P11", + "B1-U12-P12" + ] + } + } + ], + "scenes": [ + { + "id": "B1-U12-C1", + "kind": "main", + "title": "和老朋友叙旧", + "learnerRole": "老朋友", + "aiRole": "很久没见的朋友", + "setting": "你在咖啡馆遇到一年没见的朋友杰斯,你们坐下来聊了五分钟。", + "turns": [ + { + "ai": "Hey! It's been ages! How are you?", + "goal": "问对方最近在忙什么", + "model": "I'm great, thanks! What have you been up to lately?", + "zh": "我很好,谢谢!你最近在忙什么?", + "itemIds": [ + "B1-U12-P01" + ] + }, + { + "ai": "I ran my first 10 km race last month!", + "goal": "问结果", + "model": "Wow! How did it go?", + "zh": "哇!结果怎么样?", + "itemIds": [ + "B1-U12-P03" + ] + }, + { + "ai": "Not bad, but my legs hurt for a week. Have you done anything like that?", + "goal": "说自己的经历", + "model": "I did a long bike ride last year. It was harder than I expected, but it was a big achievement for me.", + "zh": "我去年骑了很长一段自行车,比我想象的难,但对我来说是个大成就。", + "itemIds": [ + "B1-U12-P04", + "B1-U12-W01" + ] + }, + { + "ai": "Nice! Work has been so busy for me lately. I'm always tired.", + "goal": "表示理解", + "model": "I know exactly what you mean. I need a holiday.", + "zh": "我完全明白,我也需要度个假。", + "itemIds": [ + "B1-U12-P09" + ] + }, + { + "ai": "Me too! I haven't had one for a year.", + "goal": "顺着话题换话题", + "model": "Speaking of holidays, have you been anywhere nice this year?", + "zh": "说到假期,你今年去过什么好地方吗?", + "itemIds": [ + "B1-U12-P11" + ] + }, + { + "ai": "Yes, I went to Yunnan in May. It was beautiful.", + "goal": "回应", + "model": "Lucky you! Tell me more.", + "zh": "真羡慕你!多给我讲讲。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U12-C2", + "kind": "variant", + "title": "和同事聊未来的计划", + "learnerRole": "同事", + "aiRole": "同事", + "setting": "午休时,你和同事聊起各自接下来的打算。", + "turns": [ + { + "ai": "You look happy today. Any news?", + "goal": "说你在考虑换工作", + "model": "Yes! I'm thinking of changing jobs. I want to work for a charity.", + "zh": "是的!我在考虑换工作,我想去一家慈善机构工作。", + "itemIds": [ + "B1-U12-P06" + ] + }, + { + "ai": "Really? Why a charity?", + "goal": "说你做志愿者", + "model": "I volunteer there on weekends, and I really love it.", + "zh": "我周末在那里做志愿者,我很喜欢。", + "itemIds": [ + "B1-U12-W03" + ] + }, + { + "ai": "But the pay won't be very good.", + "goal": "说出你的动力", + "model": "I know, but my main motivation is to help people.", + "zh": "我知道,但我最大的动力是帮助别人。", + "itemIds": [ + "B1-U12-W02" + ] + }, + { + "ai": "I'm leaving too, actually. I'm moving to Canada.", + "goal": "问对方为什么这样决定", + "model": "Really? What made you decide to do that?", + "zh": "真的吗?是什么让你决定这么做的?", + "itemIds": [ + "B1-U12-P07" + ] + }, + { + "ai": "My sister lives there, and I want to be near her.", + "goal": "说你一直想去", + "model": "That's great. I've been meaning to visit Canada for years!", + "zh": "太好了,我好几年来一直想去加拿大!", + "itemIds": [ + "B1-U12-P02" + ] + } + ] + }, + { + "id": "B1-U12-C3", + "kind": "variant", + "title": "安慰没考过驾照的朋友", + "learnerRole": "朋友", + "aiRole": "朋友", + "setting": "朋友丹说他驾照考试又没通过,你们边走边聊。", + "turns": [ + { + "ai": "I failed my driving test again.", + "goal": "表示理解", + "model": "Oh no. That must have been hard.", + "zh": "哦不,那一定很难受吧。", + "itemIds": [ + "B1-U12-P10" + ] + }, + { + "ai": "Yes. It was my third time.", + "goal": "问对方的感受", + "model": "How did you feel about it?", + "zh": "你当时感觉怎么样?", + "itemIds": [ + "B1-U12-P08" + ] + }, + { + "ai": "Really sad. I was so nervous that I made lots of mistakes.", + "goal": "分享自己的经历", + "model": "I failed my first test too. It was harder than I expected.", + "zh": "我第一次也没过,比我想象的难。", + "itemIds": [ + "B1-U12-P04" + ] + }, + { + "ai": "Wait, the bus is here. Let's get on. OK, you were saying?", + "goal": "找回话题", + "model": "Sorry, where was I? Oh yes. I passed the second time, and I was really proud of myself.", + "zh": "抱歉,我说到哪儿了?哦对,我第二次过了,我真为自己骄傲。", + "itemIds": [ + "B1-U12-P12", + "B1-U12-P05" + ] + }, + { + "ai": "That makes me feel better.", + "goal": "鼓励朋友", + "model": "You'll pass next time. I'm sure.", + "zh": "你下次会通过的,我相信。", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "B1-U12-T1", + "sceneId": "B1-U12-C1", + "goal": "和老朋友叙旧,聊经历并换话题", + "itemIds": [ + "B1-U12-P01", + "B1-U12-P03", + "B1-U12-P04", + "B1-U12-W01", + "B1-U12-P09", + "B1-U12-P11" + ], + "slots": [ + "近况", + "经历", + "共鸣", + "新话题" + ] + }, + { + "id": "B1-U12-T2", + "sceneId": "B1-U12-C2", + "goal": "和同事交流未来的计划和原因", + "itemIds": [ + "B1-U12-P06", + "B1-U12-W03", + "B1-U12-W02", + "B1-U12-P07", + "B1-U12-P02" + ], + "slots": [ + "计划", + "原因", + "动力", + "提问" + ] + }, + { + "id": "B1-U12-T3", + "sceneId": "B1-U12-C3", + "goal": "安慰朋友并分享自己的经历", + "itemIds": [ + "B1-U12-P10", + "B1-U12-P08", + "B1-U12-P04", + "B1-U12-P12", + "B1-U12-P05" + ], + "slots": [ + "理解", + "感受", + "经历", + "鼓励" + ] + } + ], + "materials": [ + { + "id": "B1-U12-M1", + "mode": "listening", + "title": "播客:人生的转折", + "text": "Dan: Welcome to Second Chances, the podcast about people who changed their lives. My guest today is Chen Hui. Three years ago, she had a well-paid job at a bank in Shanghai. Today she runs a small charity in Kenya. Chen Hui, what made you decide to do that?\nChen Hui: Honestly, it wasn't one big moment. I was good at my job, but I felt miserable. Every morning I woke up with this terrible boredom, and I couldn't concentrate. My friends were a bit jealous of my salary, so I felt I couldn't complain. Then my cousin went to Kenya to volunteer, and she sent me photos from a school there. I'd been meaning to do something meaningful for years, so I took three months off and joined her.\nDan: How did you feel about it at first?\nChen Hui: Terrified! It was much harder than I expected. There was no running water, the heat was incredible, and I didn't speak the language. The first few weeks, I was desperate to go home. But the children were so enthusiastic. They had so much curiosity about everything, and their enthusiasm somehow made me feel strong again.\nDan: That must have been challenging, mentally as well as physically.\nChen Hui: Absolutely. There were days of real despair, when we had no money for books and I felt completely hopeless. But I learned that you can overcome a lot of obstacles if you have determination and good people around you.\nDan: So when did you decide to stay permanently?\nChen Hui: One afternoon, a quiet girl who had struggled to read for months read a whole story aloud in front of the class. Everyone clapped, and her hands were trembling. I was so proud of her. That was her achievement, but for me it was a turning point. I went back to Shanghai, quit my job, and started the charity six months later.\nDan: How did your family react?\nChen Hui: My parents were anxious, of course. They thought I was being stubborn and a bit foolish. My dad didn't talk to me for a week! But they've been really supportive since then. Last year they came to visit, and my mum cried when she saw the new school building.\nDan: What's your motivation now, on the difficult days?\nChen Hui: The kids, always. And the volunteers. They come from all over the world, and many of them are just as ambitious and hard-working as anyone in a bank. They inspire me every day.\nDan: Do you ever miss your old life?\nChen Hui: Sometimes I miss the comfort of my old routine. But the misery I felt then was worse than any hardship here, so mostly I just feel thankful. My only real concern is my health, because I still work to excess and forget to eat.\nDan: What would you say to listeners who are thinking of changing their lives?\nChen Hui: Don't wait for the perfect moment. It doesn't exist. Start small. Volunteer for a weekend, and see how you feel. And don't be discouraged by people who say you're crazy.\nDan: Chen Hui, thank you. That's all for today. If you want to support her charity, you'll find the link on our website.", + "glosses": { + "salary": "工资", + "podcast": "播客", + "terrified": "非常害怕的", + "concentrate": "集中注意力", + "physically": "身体上", + "clapped": "鼓掌", + "listeners": "听众" + }, + "questions": [ + { + "type": "gist", + "question": "这期播客主要讲什么?", + "options": [ + "一个人辞去银行工作,在肯尼亚办慈善的经历", + "怎样在银行找工作", + "去肯尼亚旅游的建议" + ] + }, + { + "type": "detail", + "question": "陈慧决定留在肯尼亚的转折点是什么?", + "options": [ + "一个小女孩当着全班大声读完一页书", + "她收到了一大笔捐款", + "她父母来看她" + ] + }, + { + "type": "inference", + "question": "陈慧的父母现在的态度是什么?", + "options": [ + "支持她", + "仍然反对", + "希望她回银行工作" + ] + } + ] + }, + { + "id": "B1-U12-M2", + "mode": "listening", + "title": "同学聚会上的聊天", + "text": "Amy: Leo? Is that you? I haven't seen you since graduation!\nLeo: Amy! Wow, it's been ten years. You look exactly the same. What have you been up to lately?\nAmy: Well, lately I've been busy with my new business. I opened a small bakery last spring. My motive was simple: I love baking.\nLeo: No way! You always said that was your dream. How did it go at the beginning?\nAmy: It was harder than I expected. For the first few months, I worked sixteen hours a day, and I was increasingly exhausted. It was devastating when my first oven broke. But now it's going steadily, and I've got two staff. One of them is really talented and diligent. I'm really proud of it.\nLeo: That's a real achievement. I'm delighted for you.\nAmy: Thanks. And what about you? Last time I heard, you were working in a hospital.\nLeo: I still am, but I'm thinking of changing careers. I've been meaning to go back to university to study teaching.\nAmy: Really? What made you decide to do that?\nLeo: I'm not sure exactly. I think I need a change. Hospital work is rewarding, but it's emotionally hard, and I'm an emotional person. Some days you see a lot of sadness. And I've always loved working with young people.\nAmy: I know exactly what you mean. Sometimes you just feel it's time. Are you nervous?\nLeo: A little. My biggest worry is money. I got divorced last year, so I'm living on one salary now.\nAmy: Oh, Leo, I'm sorry. That must have been hard.\nLeo: It was. There were a few miserable months. But we're still friends, and honestly, the separation was the right thing for both of us. My friends were very supportive. My old teammate from the football club, do you remember Sam? He called me every day.\nAmy: Sam! Of course. Speaking of the football club, do you still play?\nLeo: Not any more. I hurt my knee in a game, and the healing took months. I used to be so athletic!\nAmy: I remember. You were so competitive. You always had to score.\nLeo: Now I just watch, and I sit on the sofa and shout at the TV.\nAmy: Like everyone else. Are you dating anyone?\nLeo: No, but I have a new companion: a dog!\nAmy: Oh, sorry, excuse me a second. That's my phone. It's my assistant at the bakery. OK, sorry about that. Where was I?\nLeo: You were asking about football.\nAmy: Oh yes. Actually, I've got a question for you. Would you like to help with a charity event? I'm doing a cake sale for the children's hospital next month. We need some volunteers.\nLeo: I'd love to. Will there be free cake?\nAmy: For volunteers, as much as you want.\nLeo: Then I'm definitely in. Give me your number, and let's meet up properly before then. I want to hear everything.\nAmy: Great. It's so good to see you, Leo.", + "glosses": { + "rewarding": "有意义的;值得的", + "salary": "工资", + "properly": "好好地", + "assistant": "助理" + }, + "questions": [ + { + "type": "gist", + "question": "艾米和利奥主要在聊什么?", + "options": [ + "毕业十年后各自的经历和打算", + "怎样开面包店", + "一场足球比赛" + ] + }, + { + "type": "detail", + "question": "利奥打算做什么?", + "options": [ + "回大学读书,将来当老师", + "在医院换个科室", + "开一家面包店" + ] + }, + { + "type": "inference", + "question": "艾米接完电话后问“我说到哪儿了”,说明什么?", + "options": [ + "她想接着刚才的话题聊", + "她忘了利奥的名字", + "她要马上离开" + ] + } + ] + }, + { + "id": "B1-U12-M3", + "mode": "reading", + "title": "博客:出国一年,说说真心话", + "text": "One year in Vancouver: the honest truth\nIt's exactly one year since I moved to Canada, so I've been meaning to write this post for a while. Lots of you have asked me, \"How did it go? Was it worth it?\" Here is my honest answer.\nThe first three months\nI'm not going to lie: it was much harder than I expected. I arrived full of excitement and hopeful plans. I had a newly rented room, a part-time job in a cafe, and a list of goals. But after a few weeks, the excitement disappeared, and loneliness took its place. My English was OK, but people spoke so rapidly that I often just nodded and smiled. I felt isolated, and the dark winter was depressing. I anxiously checked my phone for messages from home. It felt like survival, not life. Some evenings I sat in my room and cried, which is embarrassing to admit.\nWhat helped\nThree things helped me. First, I joined a running club. Running with other people is great for your mental health, and my fellow runners quickly turned into real friends. Second, I started to volunteer at a food bank for homeless people on Saturdays. When you see people living with real hardship and poverty, your own problems look smaller. Third, I called my mum every Sunday. Her encouragement meant everything.\nWhat changed\nSlowly, my confidence grew, and my nervousness about speaking disappeared. Friendship often comes unexpectedly: my best friend here was an acquaintance from the laundry room. I stopped comparing myself to other people and thought about my own progress. By month six, I could make jokes in English. By month nine, I'd been promoted at the cafe. Small achievements, but I was really proud of them.\nWhat I learned\nMoving abroad teaches you a lot about yourself. I learned that I'm more capable and courageous than I thought. I learned to adapt: to the weather, to the food, and to being alone. And I learned that feeling low is normal. It doesn't mean you've failed.\nMy advice\nDon't just memorize lists of words: talk to real people, even if you don't speak fluently. Write down your intention and read it when you feel the urge to give up. Improvement comes repeatedly in small steps, not in one big leap. And forgive yourself on bad days.\nWhat's next?\nPeople keep asking about my future plans. Honestly, I'm thinking of staying another year. My dream is to open my own coffee shop one day, and I think I could do it here.\nIf you're reading this because you're far from home and feeling miserable, I know exactly what you mean. It gets better, I promise. Leave a comment below. I read every one.", + "glosses": { + "loneliness": "孤独", + "isolated": "孤立的", + "embarrassing": "令人尴尬的", + "mental": "精神的", + "promoted": "升职", + "laundry": "洗衣" + }, + "questions": [ + { + "type": "gist", + "question": "这篇博客主要讲什么?", + "options": [ + "作者出国一年的经历和感受", + "温哥华的咖啡馆推荐", + "怎样申请加拿大签证" + ] + }, + { + "type": "detail", + "question": "以下哪件事帮助作者度过了最难的时候?", + "options": [ + "参加跑步俱乐部", + "换了一个城市", + "回国度假" + ] + }, + { + "type": "inference", + "question": "作者写这篇博客最可能的目的是什么?", + "options": [ + "分享经历,鼓励同样在国外的人", + "招聘咖啡馆员工", + "劝大家不要出国" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "保持对话", + "bands": [ + "只回答,不提问", + "能提问,但话题很快中断", + "会追问、回应感受并自然换话题" + ], + "pass": 1 + }, + { + "name": "讲述经历和感受", + "bands": [ + "只说发生了什么", + "能说出经历和一种感受", + "说清经历、感受和原因,并和对方的经历联系起来" + ], + "pass": 1 + } + ] + }, + "excluded": [] +} diff --git a/kouyu_english/assets/courses/B1/B1-U13.json b/kouyu_english/assets/courses/B1/B1-U13.json new file mode 100644 index 0000000..b1a5c66 --- /dev/null +++ b/kouyu_english/assets/courses/B1/B1-U13.json @@ -0,0 +1,1478 @@ +{ + "schemaVersion": 1, + "id": "B1-U13", + "revision": 1, + "level": "B1", + "title": "读懂生活文本", + "categories": [ + "日常", + "旅行" + ], + "canDo": "读懂评价、说明、规则和通知", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "italian", + "spain", + "brightwell", + "alps", + "horns", + "tom", + "mia", + "josh", + "kate", + "paul", + "rivera", + "harbour", + "view", + "sea", + "breeze", + "marina", + "bay", + "lucca", + "greenway", + "kingsley", + "bella", + "cucina" + ], + "grammar": [ + { + "id": "142", + "use": "active" + }, + { + "id": "156", + "use": "active" + }, + { + "id": "62", + "use": "active" + }, + { + "id": "215", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "B1-U13-P01", + "type": "phrase", + "en": "According to the reviews, the food is great.", + "zh": "根据评价,这里的菜很好吃。", + "sceneWord": true, + "sceneReason": "读评价、转述信息时的高频表达", + "match": [ + [ + "according to" + ] + ], + "example": { + "en": "According to the reviews, the hotel is very clean.", + "zh": "根据评价,这家酒店很干净。" + }, + "review": { + "prompt": "根据网上评价,告诉朋友一家店怎么样。" + } + }, + { + "id": "B1-U13-P02", + "type": "phrase", + "en": "It says here that breakfast is included.", + "zh": "这里写着含早餐。", + "sceneWord": false, + "match": [ + [ + "it says here" + ] + ], + "example": { + "en": "It says here that the museum is free on Sundays.", + "zh": "这里写着博物馆周日免费。" + }, + "review": { + "prompt": "读通知给朋友听,说“这里写着……”。" + } + }, + { + "id": "B1-U13-P03", + "type": "phrase", + "en": "It's rated four and a half stars.", + "zh": "它的评分是四星半。", + "sceneWord": false, + "match": [ + [ + "rated" + ] + ], + "example": { + "en": "The restaurant is rated three stars online.", + "zh": "这家餐馆网上评分是三星。" + }, + "review": { + "prompt": "说一家店在网上的评分。" + } + }, + { + "id": "B1-U13-P04", + "type": "phrase", + "en": "The reviews are mixed.", + "zh": "评价有好有坏。", + "sceneWord": false, + "match": [ + [ + "reviews are mixed", + "mixed reviews" + ] + ], + "example": { + "en": "The reviews are mixed, so I'm not sure.", + "zh": "评价有好有坏,所以我拿不准。" + }, + "review": { + "prompt": "说一家酒店的评价有好有坏。" + } + }, + { + "id": "B1-U13-P05", + "type": "phrase", + "en": "Read the instructions first.", + "zh": "先看说明。", + "sceneWord": false, + "match": [ + [ + "read the instructions" + ] + ], + "example": { + "en": "Please read the instructions before you use it.", + "zh": "使用前请阅读说明。" + }, + "review": { + "prompt": "提醒朋友用新机器前先看说明。" + } + }, + { + "id": "B1-U13-P06", + "type": "phrase", + "en": "Dogs must be kept on a lead.", + "zh": "狗必须拴绳。", + "sceneWord": false, + "match": [ + [ + "must be kept" + ] + ], + "example": { + "en": "Bikes must be kept outside.", + "zh": "自行车必须放在外面。" + }, + "review": { + "prompt": "读公园的规定:狗必须拴绳。" + } + }, + { + "id": "B1-U13-P07", + "type": "phrase", + "en": "What does this sign mean?", + "zh": "这个标志是什么意思?", + "sceneWord": false, + "match": [ + [ + "does this sign mean" + ] + ], + "example": { + "en": "Excuse me, what does this sign mean?", + "zh": "请问,这个标志是什么意思?" + }, + "review": { + "prompt": "看不懂一个标志,问别人。" + } + }, + { + "id": "B1-U13-P08", + "type": "phrase", + "en": "It's closed until further notice.", + "zh": "关闭至另行通知。", + "sceneWord": false, + "match": [ + [ + "until further notice" + ] + ], + "example": { + "en": "The pool is closed until further notice.", + "zh": "游泳池关闭,重新开放时间另行通知。" + }, + "review": { + "prompt": "告诉朋友海滩暂时关闭,何时开放另行通知。" + } + }, + { + "id": "B1-U13-P09", + "type": "phrase", + "en": "The offer ends on Sunday.", + "zh": "优惠周日结束。", + "sceneWord": false, + "match": [ + [ + "offer ends" + ] + ], + "example": { + "en": "The offer ends at midnight tonight.", + "zh": "优惠今晚十二点结束。" + }, + "review": { + "prompt": "告诉朋友打折活动什么时候结束。" + } + }, + { + "id": "B1-U13-P10", + "type": "phrase", + "en": "Children must be with an adult.", + "zh": "儿童必须有成人陪同。", + "sceneWord": false, + "match": [ + [ + "must be with an adult" + ] + ], + "example": { + "en": "Children under 12 must be with an adult.", + "zh": "12 岁以下儿童必须有成人陪同。" + }, + "review": { + "prompt": "读游泳池的规定:儿童需要大人陪同。" + } + }, + { + "id": "B1-U13-P11", + "type": "phrase", + "en": "Keep it in a cool, dry place.", + "zh": "存放在阴凉干燥处。", + "sceneWord": false, + "match": [ + [ + "cool, dry place", + "cool dry place" + ] + ], + "example": { + "en": "Keep the medicine in a cool, dry place.", + "zh": "把药存放在阴凉干燥处。" + }, + "review": { + "prompt": "读包装上的保存方法。" + } + }, + { + "id": "B1-U13-P12", + "type": "phrase", + "en": "Best before the end of May.", + "zh": "五月底前食用最佳。", + "sceneWord": false, + "match": [ + [ + "best before" + ] + ], + "example": { + "en": "The milk is best before Friday.", + "zh": "牛奶周五前喝最好。" + }, + "review": { + "prompt": "读食品包装上的保质期。" + } + }, + { + "id": "B1-U13-W01", + "type": "word", + "en": "headline", + "zh": "新闻标题", + "sceneWord": false, + "match": [ + [ + "headline", + "headlines" + ] + ], + "example": { + "en": "Did you see the headline this morning?", + "zh": "你看到今天早上的新闻标题了吗?" + }, + "review": { + "prompt": "说说你今天看到的一个新闻标题。" + } + }, + { + "id": "B1-U13-W02", + "type": "word", + "en": "questionnaire", + "zh": "问卷", + "sceneWord": false, + "match": [ + [ + "questionnaire", + "questionnaires" + ] + ], + "example": { + "en": "Please fill in this short questionnaire.", + "zh": "请填写这份简短的问卷。" + }, + "review": { + "prompt": "说你填了一份什么问卷。" + } + } + ], + "receptiveWords": [ + { + "id": "B1-U13-R01", + "en": "review", + "zh": "评价" + }, + { + "id": "B1-U13-R02", + "en": "character", + "zh": "人物;角色" + }, + { + "id": "B1-U13-R03", + "en": "instruction", + "zh": "说明" + }, + { + "id": "B1-U13-R04", + "en": "accurately", + "zh": "准确地" + }, + { + "id": "B1-U13-R05", + "en": "actress", + "zh": "女演员" + }, + { + "id": "B1-U13-R06", + "en": "alcoholic", + "zh": "含酒精的" + }, + { + "id": "B1-U13-R07", + "en": "animation", + "zh": "动画" + }, + { + "id": "B1-U13-R08", + "en": "bacon", + "zh": "培根" + }, + { + "id": "B1-U13-R09", + "en": "beautifully", + "zh": "漂亮地" + }, + { + "id": "B1-U13-R10", + "en": "broccoli", + "zh": "西兰花" + }, + { + "id": "B1-U13-R11", + "en": "cabbage", + "zh": "圆白菜" + }, + { + "id": "B1-U13-R12", + "en": "channel", + "zh": "频道" + }, + { + "id": "B1-U13-R13", + "en": "circular", + "zh": "圆形的" + }, + { + "id": "B1-U13-R14", + "en": "columnist", + "zh": "专栏作家" + }, + { + "id": "B1-U13-R15", + "en": "combine", + "zh": "混合" + }, + { + "id": "B1-U13-R16", + "en": "comedy", + "zh": "喜剧" + }, + { + "id": "B1-U13-R17", + "en": "commercial", + "zh": "商业的" + }, + { + "id": "B1-U13-R18", + "en": "complex", + "zh": "复杂的" + }, + { + "id": "B1-U13-R19", + "en": "contribution", + "zh": "贡献" + }, + { + "id": "B1-U13-R20", + "en": "courgette", + "zh": "西葫芦" + }, + { + "id": "B1-U13-R21", + "en": "cucumber", + "zh": "黄瓜" + }, + { + "id": "B1-U13-R22", + "en": "demonstration", + "zh": "示范" + }, + { + "id": "B1-U13-R23", + "en": "designer", + "zh": "设计师" + }, + { + "id": "B1-U13-R24", + "en": "detective", + "zh": "侦探" + }, + { + "id": "B1-U13-R25", + "en": "dot", + "zh": "点" + }, + { + "id": "B1-U13-R26", + "en": "edition", + "zh": "版本" + }, + { + "id": "B1-U13-R27", + "en": "entertainer", + "zh": "艺人" + }, + { + "id": "B1-U13-R28", + "en": "environmental", + "zh": "环保的;环境的" + }, + { + "id": "B1-U13-R29", + "en": "establishment", + "zh": "机构;商家" + }, + { + "id": "B1-U13-R30", + "en": "excellence", + "zh": "卓越" + }, + { + "id": "B1-U13-R31", + "en": "fantasy", + "zh": "奇幻" + }, + { + "id": "B1-U13-R32", + "en": "film-maker", + "zh": "电影制作人" + }, + { + "id": "B1-U13-R33", + "en": "first-floor", + "zh": "二楼的(英)" + }, + { + "id": "B1-U13-R34", + "en": "friendliness", + "zh": "友好" + }, + { + "id": "B1-U13-R35", + "en": "gentleman", + "zh": "先生;绅士" + }, + { + "id": "B1-U13-R36", + "en": "giant", + "zh": "巨人" + }, + { + "id": "B1-U13-R37", + "en": "ginger", + "zh": "姜" + }, + { + "id": "B1-U13-R38", + "en": "graceful", + "zh": "优雅的" + }, + { + "id": "B1-U13-R39", + "en": "guitarist", + "zh": "吉他手" + }, + { + "id": "B1-U13-R40", + "en": "height", + "zh": "高度" + }, + { + "id": "B1-U13-R41", + "en": "helmet", + "zh": "头盔" + }, + { + "id": "B1-U13-R42", + "en": "hidden", + "zh": "隐藏的" + }, + { + "id": "B1-U13-R43", + "en": "imaginary", + "zh": "想象的" + }, + { + "id": "B1-U13-R44", + "en": "introduction", + "zh": "引言;介绍" + }, + { + "id": "B1-U13-R45", + "en": "launch", + "zh": "推出" + }, + { + "id": "B1-U13-R46", + "en": "length", + "zh": "长度" + }, + { + "id": "B1-U13-R47", + "en": "lettuce", + "zh": "生菜" + }, + { + "id": "B1-U13-R48", + "en": "loaf", + "zh": "一条(面包)" + }, + { + "id": "B1-U13-R49", + "en": "mash", + "zh": "捣成泥" + }, + { + "id": "B1-U13-R50", + "en": "mechanical", + "zh": "机械的" + }, + { + "id": "B1-U13-R51", + "en": "melt", + "zh": "融化" + }, + { + "id": "B1-U13-R52", + "en": "mixing bowl", + "zh": "搅拌碗" + }, + { + "id": "B1-U13-R53", + "en": "modify", + "zh": "调整" + }, + { + "id": "B1-U13-R54", + "en": "mustard", + "zh": "芥末" + }, + { + "id": "B1-U13-R55", + "en": "noticeable", + "zh": "明显的" + }, + { + "id": "B1-U13-R56", + "en": "novelist", + "zh": "小说家" + }, + { + "id": "B1-U13-R57", + "en": "nutritious", + "zh": "有营养的" + }, + { + "id": "B1-U13-R58", + "en": "organic", + "zh": "有机的" + }, + { + "id": "B1-U13-R59", + "en": "ought to", + "zh": "应该" + }, + { + "id": "B1-U13-R60", + "en": "paddle", + "zh": "桨" + }, + { + "id": "B1-U13-R61", + "en": "participant", + "zh": "参加者" + }, + { + "id": "B1-U13-R62", + "en": "participate", + "zh": "参加" + }, + { + "id": "B1-U13-R63", + "en": "politician", + "zh": "政治家" + }, + { + "id": "B1-U13-R64", + "en": "president", + "zh": "总统" + }, + { + "id": "B1-U13-R65", + "en": "prize", + "zh": "奖品" + }, + { + "id": "B1-U13-R66", + "en": "producer", + "zh": "制片人" + }, + { + "id": "B1-U13-R67", + "en": "protective", + "zh": "防护的" + }, + { + "id": "B1-U13-R68", + "en": "puzzle", + "zh": "谜题" + }, + { + "id": "B1-U13-R69", + "en": "raspberry", + "zh": "树莓" + }, + { + "id": "B1-U13-R70", + "en": "researcher", + "zh": "研究员" + }, + { + "id": "B1-U13-R71", + "en": "resource", + "zh": "资源" + }, + { + "id": "B1-U13-R72", + "en": "rubber", + "zh": "橡胶" + }, + { + "id": "B1-U13-R73", + "en": "salmon", + "zh": "三文鱼" + }, + { + "id": "B1-U13-R74", + "en": "seawater", + "zh": "海水" + }, + { + "id": "B1-U13-R75", + "en": "severely", + "zh": "严重地" + }, + { + "id": "B1-U13-R76", + "en": "sidewalk", + "zh": "人行道" + }, + { + "id": "B1-U13-R77", + "en": "soap opera", + "zh": "肥皂剧" + }, + { + "id": "B1-U13-R78", + "en": "spinach", + "zh": "菠菜" + }, + { + "id": "B1-U13-R79", + "en": "spiral", + "zh": "螺旋形的" + }, + { + "id": "B1-U13-R80", + "en": "sponsor", + "zh": "赞助商" + }, + { + "id": "B1-U13-R81", + "en": "steam", + "zh": "蒸" + }, + { + "id": "B1-U13-R82", + "en": "stir", + "zh": "搅拌" + }, + { + "id": "B1-U13-R83", + "en": "stormy", + "zh": "暴风雨的" + }, + { + "id": "B1-U13-R84", + "en": "storyteller", + "zh": "讲故事的人" + }, + { + "id": "B1-U13-R85", + "en": "strawberry", + "zh": "草莓" + }, + { + "id": "B1-U13-R86", + "en": "strip", + "zh": "条" + }, + { + "id": "B1-U13-R87", + "en": "sunbathe", + "zh": "晒日光浴" + }, + { + "id": "B1-U13-R88", + "en": "swimmer", + "zh": "游泳者" + }, + { + "id": "B1-U13-R89", + "en": "takeaway", + "zh": "外卖" + }, + { + "id": "B1-U13-R90", + "en": "tasteless", + "zh": "没味道的" + }, + { + "id": "B1-U13-R91", + "en": "threatening", + "zh": "威胁的" + }, + { + "id": "B1-U13-R92", + "en": "thriller", + "zh": "惊悚片" + }, + { + "id": "B1-U13-R93", + "en": "toss", + "zh": "拌" + }, + { + "id": "B1-U13-R94", + "en": "tragedy", + "zh": "悲剧" + }, + { + "id": "B1-U13-R95", + "en": "trim", + "zh": "修剪" + }, + { + "id": "B1-U13-R96", + "en": "trustworthy", + "zh": "值得信赖的" + }, + { + "id": "B1-U13-R97", + "en": "tuna", + "zh": "金枪鱼" + }, + { + "id": "B1-U13-R98", + "en": "undo", + "zh": "撤销" + }, + { + "id": "B1-U13-R99", + "en": "undress", + "zh": "脱衣服" + }, + { + "id": "B1-U13-R100", + "en": "unfold", + "zh": "展开" + }, + { + "id": "B1-U13-R101", + "en": "unfriendly", + "zh": "不友好的" + }, + { + "id": "B1-U13-R102", + "en": "uninterested", + "zh": "不感兴趣的" + }, + { + "id": "B1-U13-R103", + "en": "uninteresting", + "zh": "无趣的" + }, + { + "id": "B1-U13-R104", + "en": "unusually", + "zh": "异常地" + }, + { + "id": "B1-U13-R105", + "en": "vague", + "zh": "含糊的" + }, + { + "id": "B1-U13-R106", + "en": "DJ", + "zh": "唱片骑师" + }, + { + "id": "B1-U13-R107", + "en": "magical", + "zh": "神奇的" + } + ], + "segments": [ + { + "id": "B1-U13-S1", + "title": "读懂网上评价", + "minutes": 13, + "itemIds": [ + "B1-U13-P01", + "B1-U13-P02", + "B1-U13-P03", + "B1-U13-P04" + ], + "listening": { + "text": "Let's try this restaurant. It's rated four and a half stars. According to the reviews, the food is great. But look, it says here that it's very noisy. OK, the reviews are mixed. Let's read some more.", + "question": "评价里说这家餐馆有什么缺点?", + "options": [ + "很吵", + "很贵", + "很远" + ] + }, + "speaking": [ + { + "text": "According to the reviews, the food is great.", + "tip": "according to 连读" + }, + { + "text": "It says here that breakfast is included." + }, + { + "text": "It's rated four and a half stars.", + "tip": "rated 读 /ˈreɪtɪd/" + }, + { + "text": "The reviews are mixed.", + "tip": "mixed 读 /mɪkst/" + } + ], + "reading": { + "text": "Sea Breeze Hotel\nIt's rated four stars. According to the reviews, the rooms are clean and the staff are helpful. It says here that breakfast is included. But the reviews are mixed about the location: it's a long walk to the beach.", + "question": "评价里对这家酒店哪一点意见不一?", + "options": [ + "位置", + "早餐", + "房间" + ] + }, + "writing": { + "prompt": "写两句话:说这家店评分四星半,根据评价菜很好吃。", + "example": "It's rated four and a half stars. According to the reviews, the food is great.", + "itemIds": [ + "B1-U13-P03", + "B1-U13-P01" + ] + }, + "independent": { + "prompt": "用英语说“这里写着……”,再说评价有好有坏。", + "itemIds": [ + "B1-U13-P02", + "B1-U13-P04" + ] + } + }, + { + "id": "B1-U13-S2", + "title": "读懂说明和标签", + "minutes": 11, + "itemIds": [ + "B1-U13-P05", + "B1-U13-P11", + "B1-U13-P12" + ], + "listening": { + "text": "Before you use the coffee machine, read the instructions first. And look at the coffee bag. Keep it in a cool, dry place. It's best before the end of May. So we have two months.", + "question": "这袋咖啡什么时候之前喝最好?", + "options": [ + "五月底", + "两周后", + "三月初" + ] + }, + "speaking": [ + { + "text": "Read the instructions first." + }, + { + "text": "Keep it in a cool, dry place.", + "tip": "cool 和 dry 之间稍停顿" + }, + { + "text": "Best before the end of May." + } + ], + "reading": { + "text": "On the box\nRead the instructions first.\nTake one after breakfast.\nKeep it in a cool, dry place.\nBest before: 05/2027", + "question": "这盒药应该什么时候吃?", + "options": [ + "早饭后", + "睡觉前", + "饭前" + ] + }, + "writing": { + "prompt": "写两句话:提醒朋友先看说明,并说要存放在阴凉干燥处。", + "example": "Read the instructions first. Keep it in a cool, dry place.", + "itemIds": [ + "B1-U13-P05", + "B1-U13-P11" + ] + }, + "independent": { + "prompt": "用英语读出食品包装上的“五月底前食用最佳”。", + "itemIds": [ + "B1-U13-P12" + ] + } + }, + { + "id": "B1-U13-S3", + "title": "读懂规则和标志", + "minutes": 11, + "itemIds": [ + "B1-U13-P06", + "B1-U13-P07", + "B1-U13-P10" + ], + "listening": { + "text": "What does this sign mean? It says dogs must be kept on a lead in the park. And this one is for the pool. Children must be with an adult.", + "question": "游泳池的标志是什么意思?", + "options": [ + "儿童必须有成人陪同", + "狗必须拴绳", + "禁止游泳" + ] + }, + "speaking": [ + { + "text": "What does this sign mean?" + }, + { + "text": "Dogs must be kept on a lead.", + "tip": "kept on a 连读" + }, + { + "text": "Children must be with an adult.", + "tip": "adult 读 /ˈædʌlt/" + } + ], + "reading": { + "text": "Park rules\nDogs must be kept on a lead.\nNo bikes near the lake.\nChildren must be with an adult at the lake.\nThe park closes at 8 p.m.", + "question": "公园几点关门?", + "options": [ + "晚上八点", + "下午六点", + "晚上十点" + ] + }, + "writing": { + "prompt": "写一句话:说狗必须拴绳。", + "example": "Dogs must be kept on a lead.", + "itemIds": [ + "B1-U13-P06" + ] + }, + "independent": { + "prompt": "用英语问朋友一个标志是什么意思,并读出“儿童必须有成人陪同”。", + "itemIds": [ + "B1-U13-P07", + "B1-U13-P10" + ] + } + }, + { + "id": "B1-U13-S4", + "title": "读懂通知和广告", + "minutes": 12, + "itemIds": [ + "B1-U13-P08", + "B1-U13-P09", + "B1-U13-W01", + "B1-U13-W02" + ], + "listening": { + "text": "Did you see the headline? The beach is closed until further notice. That's bad. But look at this: the shop has 30 percent off, and the offer ends on Sunday. You just need to fill in a short questionnaire.", + "question": "商店打折需要做什么?", + "options": [ + "填一份简短的问卷", + "买两件以上", + "办会员卡" + ] + }, + "speaking": [ + { + "text": "It's closed until further notice.", + "tip": "further 读 /ˈfɜːðə/" + }, + { + "text": "The offer ends on Sunday." + }, + { + "text": "Did you see the headline?", + "tip": "headline 重音在第一个音节" + }, + { + "text": "Please fill in this questionnaire.", + "tip": "questionnaire 读 /ˌkwestʃəˈneə/" + } + ], + "reading": { + "text": "Notice\nThe pool is closed until further notice.\nSummer offer: 20% off all classes. The offer ends on Sunday.\nPlease help us: fill in the questionnaire at the front desk.\nToday's headline: New gym opens next month!", + "question": "游泳池什么时候重新开放?", + "options": [ + "还没确定", + "下周日", + "下个月" + ] + }, + "writing": { + "prompt": "写两句话:说游泳池关闭时间另行通知,优惠周日结束。", + "example": "It's closed until further notice. The offer ends on Sunday.", + "itemIds": [ + "B1-U13-P08", + "B1-U13-P09" + ] + }, + "independent": { + "prompt": "用英语说说你看到的一个新闻标题,再请朋友填一份问卷。", + "itemIds": [ + "B1-U13-W01", + "B1-U13-W02" + ] + } + } + ], + "scenes": [ + { + "id": "B1-U13-C1", + "kind": "main", + "title": "看评价选餐馆", + "learnerRole": "游客", + "aiRole": "旅伴", + "setting": "你和朋友在海边小镇旅行,晚上想找个地方吃饭,你拿着手机看网上评价。", + "turns": [ + { + "ai": "I'm so hungry. Where should we eat?", + "goal": "说一家店的评分", + "model": "How about this place? It's rated four and a half stars.", + "zh": "这家怎么样?评分四星半。", + "itemIds": [ + "B1-U13-P03" + ] + }, + { + "ai": "Sounds good. What do people say about it?", + "goal": "根据评价说说菜", + "model": "According to the reviews, the food is great, especially the fish.", + "zh": "根据评价,这里的菜很好吃,尤其是鱼。", + "itemIds": [ + "B1-U13-P01" + ] + }, + { + "ai": "Is it expensive?", + "goal": "读评价里写的", + "model": "It says here that it's not cheap, but it's good value.", + "zh": "这里写着不便宜,但物有所值。", + "itemIds": [ + "B1-U13-P02" + ] + }, + { + "ai": "What about the other one, near the hotel?", + "goal": "说另一家评价不一", + "model": "The reviews are mixed. Some people say the service is slow.", + "zh": "评价有好有坏,有人说上菜很慢。", + "itemIds": [ + "B1-U13-P04" + ] + }, + { + "ai": "OK, let's go to the first one.", + "goal": "说优惠和问卷", + "model": "Good. And look, if we fill in a questionnaire, we get 10 percent off. The offer ends on Sunday.", + "zh": "好。你看,填一份问卷就打九折,优惠周日结束。", + "itemIds": [ + "B1-U13-W02", + "B1-U13-P09" + ] + }, + { + "ai": "Perfect. Let's go!", + "goal": "回应", + "model": "Great, let's go.", + "zh": "好,走吧。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U13-C2", + "kind": "variant", + "title": "在海边看告示", + "learnerRole": "游客", + "aiRole": "朋友", + "setting": "你和朋友带着狗和朋友的孩子去海边,入口处有好几个告示牌。", + "turns": [ + { + "ai": "Look at all these signs. I can't read them without my glasses.", + "goal": "问一个标志的意思", + "model": "What does this sign mean? The one with the red line.", + "zh": "这个标志是什么意思?画红线的那个。", + "itemIds": [ + "B1-U13-P07" + ] + }, + { + "ai": "That one? It means no swimming today. What about the dog?", + "goal": "读狗的规定", + "model": "It says dogs must be kept on a lead on the beach.", + "zh": "上面说狗在海滩上必须拴绳。", + "itemIds": [ + "B1-U13-P06" + ] + }, + { + "ai": "OK. And can Tom go to the children's pool alone?", + "goal": "读儿童规定", + "model": "No. Children must be with an adult.", + "zh": "不行,儿童必须有成人陪同。", + "itemIds": [ + "B1-U13-P10" + ] + }, + { + "ai": "What does that big notice say?", + "goal": "说关闭通知", + "model": "The cafe is closed until further notice. I saw it in the headline this morning.", + "zh": "咖啡馆关闭,开放时间另行通知。我早上在新闻标题上看到了。", + "itemIds": [ + "B1-U13-P08", + "B1-U13-W01" + ] + }, + { + "ai": "Oh no. We'll have to bring our own food.", + "goal": "回应", + "model": "No problem. There's a shop over there.", + "zh": "没关系,那边有家商店。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U13-C3", + "kind": "variant", + "title": "帮室友看包装说明", + "learnerRole": "室友", + "aiRole": "室友", + "setting": "你的室友刚买了一台新咖啡机和一些食品,但看不太懂上面的英文。", + "turns": [ + { + "ai": "I just bought this coffee machine. How does it work?", + "goal": "提醒先看说明", + "model": "I'm not sure. Read the instructions first.", + "zh": "我不确定,先看说明吧。", + "itemIds": [ + "B1-U13-P05" + ] + }, + { + "ai": "OK. And where should I keep the coffee?", + "goal": "读保存方法", + "model": "It says to keep it in a cool, dry place.", + "zh": "上面写着存放在阴凉干燥处。", + "itemIds": [ + "B1-U13-P11" + ] + }, + { + "ai": "And this cake? Can I eat it next week?", + "goal": "读保质期", + "model": "Let me see. It's best before Friday, so eat it soon.", + "zh": "我看看。周五前吃最好,快点吃吧。", + "itemIds": [ + "B1-U13-P12" + ] + }, + { + "ai": "Thanks! You're great at reading these things.", + "goal": "回应", + "model": "No problem. Just ask me.", + "zh": "没问题,随时问我。", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "B1-U13-T1", + "sceneId": "B1-U13-C1", + "goal": "看网上评价,和朋友选一家餐馆", + "itemIds": [ + "B1-U13-P03", + "B1-U13-P01", + "B1-U13-P02", + "B1-U13-P04", + "B1-U13-W02", + "B1-U13-P09" + ], + "slots": [ + "评分", + "评价", + "价格", + "优惠" + ] + }, + { + "id": "B1-U13-T2", + "sceneId": "B1-U13-C2", + "goal": "在海边读懂告示并告诉朋友", + "itemIds": [ + "B1-U13-P07", + "B1-U13-P06", + "B1-U13-P10", + "B1-U13-P08", + "B1-U13-W01" + ], + "slots": [ + "标志", + "狗", + "儿童", + "通知" + ] + }, + { + "id": "B1-U13-T3", + "sceneId": "B1-U13-C3", + "goal": "帮室友读懂说明和标签", + "itemIds": [ + "B1-U13-P05", + "B1-U13-P11", + "B1-U13-P12" + ], + "slots": [ + "说明", + "保存", + "保质期" + ] + } + ], + "materials": [ + { + "id": "B1-U13-M1", + "mode": "reading", + "title": "网上评价:餐馆和酒店", + "text": "Bella Cucina: Italian restaurant\nRated 4.2 stars (318 reviews)\n\n★★★★★ \"Best pasta in town\"\nPosted by Kate R.\nWe came here for my mum's birthday, and it was excellent from start to finish. The owner, a charming older gentleman called Paul, welcomed us at the door. I had the spinach ravioli, which was beautifully cooked, and my husband had fresh salmon with a ginger sauce. Everything is organic, and the salad of lettuce, cucumber and courgette tasted like it came straight from the garden. For dessert, don't miss the strawberry and raspberry cake. Highly recommended.\n\n★★ \"Disappointing\"\nPosted by Josh T.\nThe reviews are mixed for a reason. According to the website, they're famous for their pizza, but mine was tasteless and the base was obviously frozen. My friend's tuna sandwich came on a dry loaf of bread with too much mustard. The waiter was unfriendly and seemed completely uninterested in our complaint. It's also unusually expensive for such an ordinary meal. I won't go back.\n\n★★★★ \"Great for a quick lunch\"\nPosted by Mia L.\nThey also do takeaway, which is handy. The stuffed peppers with a rice filling are healthy and nutritious, and the portions are generous. The only noticeable problem is the noise: the room is small, so it's hard to have a conversation.\n\nHarbour View Hotel\nRated 3.9 stars (1,204 reviews)\n\n★★★★★ \"Friendliness and excellence\"\nPosted by Rivera family\nThe staff here are experienced and trustworthy. When our daughter left her bag on the beach, the manager went back himself to find it. Our first-floor room had a balcony with a sea view. Breakfast was a feast: bacon, eggs, fresh fruit and even mashed potatoes.\n\n★★ \"The photos lie\"\nPosted by Greenway Travel Club\nIt says here on the website that the rooms were \"newly painted\". Ours clearly wasn't. The information about parking was vague, and we had to pay 20 euros a day. The broccoli and cabbage at dinner were so overcooked they had no color.\n\nReply from the manager\nThank you for your review. We are sorry that your stay was not as good as you hoped. We are currently painting the rooms on the second floor, and we have updated our website so the parking information is easier to understand. We hope to welcome you again.", + "glosses": { + "pasta": "意大利面", + "ravioli": "意式饺子", + "peppers": "甜椒", + "balcony": "阳台", + "overcooked": "煮过头的", + "portions": "份量" + }, + "questions": [ + { + "type": "gist", + "question": "这一页主要是什么内容?", + "options": [ + "顾客对一家餐馆和一家酒店的评价", + "一家餐馆的菜单", + "酒店的招聘广告" + ] + }, + { + "type": "detail", + "question": "乔希不喜欢这家餐馆的原因之一是什么?", + "options": [ + "披萨没味道,服务员不友好", + "餐馆太远", + "菜量太少" + ] + }, + { + "type": "inference", + "question": "酒店经理回复的主要目的是什么?", + "options": [ + "道歉并说明已经在改进", + "给客人退钱", + "说客人在说谎" + ] + } + ] + }, + { + "id": "B1-U13-M2", + "mode": "reading", + "title": "告示与说明合集", + "text": "1. Notice to all residents: Kingsley Court\nThe lift is closed until further notice because of a mechanical problem. We are sorry for any problems this causes. Please note: there have been two burglaries in the area this month. Always close the main door behind you, and report anyone threatening to the police immediately. Bikes must be kept in the bike room, not in the hall. Recycled paper and plastic go in the blue bins.\n\n2. Marina Bay Beach: rules for visitors\nChildren must be with an adult at all times. Swimming is only allowed where there are lifeguards. Do not swim after drinking alcoholic drinks: every year, drunk swimmers are severely injured. In stormy weather, stay out of the seawater. If you sunbathe, use sun cream and drink plenty of water. Wear a helmet and protective clothes if you hire a paddle board. Please change and undress in the changing rooms, not on the beach. Dogs must be kept on a lead on the sidewalk and are not allowed on the sand.\n\n3. How to make easy tomato soup\nPrepare all the ingredients first. Melt the butter in a large pan. Put in the onion and stir for five minutes. Combine the tomatoes, water and a little salt, and let it steam slowly for twenty minutes. Trim the bread into circular shapes, toss them in oil and bake until brown. Mix the cream in a mixing bowl, then mix it into the soup. You ought to taste it before serving and modify the salt accurately. Keep what's left in the fridge and eat it within two days.\n\n4. How to build your Lucca shelf\nRead the instructions first. Unfold the plan and check you have all the parts. Place a rubber foot under each leg. The shelf has a spiral design, so follow the dots on the plan carefully. Measure the length and height of your wall before you start. If you make a mistake, undo the last step, don't force it. Two people ought to do step 6. Remove the plastic strip before use. This product is made from environmental resources and can be fully recycled.\n\n5. Greenway Arts Club\nWe're launching a new art class! Participants can win a prize for the best picture, and all participants will get a certificate. Come to a free demonstration on Saturday. We would also like to thank our sponsor, a local commercial establishment, for their contribution. Please fill in the questionnaire so we can see how many people want to participate.", + "glosses": { + "residents": "居民", + "burglaries": "入室盗窃", + "injured": "受伤的", + "shelf": "架子", + "certificate": "证书" + }, + "questions": [ + { + "type": "gist", + "question": "这些文字主要是什么?", + "options": [ + "生活中的各种告示、规则和说明", + "一个人的日记", + "一篇新闻报道" + ] + }, + { + "type": "detail", + "question": "在海滩上,狗可以去哪里?", + "options": [ + "拴绳走在人行道上", + "在沙滩上跑", + "跟着主人下水" + ] + }, + { + "type": "inference", + "question": "组装架子第 6 步为什么需要两个人?", + "options": [ + "这一步可能比较重或难", + "说明书写错了", + "需要一个人读说明" + ] + } + ] + }, + { + "id": "B1-U13-M3", + "mode": "listening", + "title": "电台节目:本周看什么", + "text": "Hello and welcome to What's On, your weekly guide to films, books and TV. I'm Kate, and with me is our film columnist, Josh.\nJosh: Hi, Kate. This week there's a lot to talk about.\nKate: Let's start with the big one: The Hidden Door. It's a fantasy film about a girl who finds a door to an imaginary world full of giants. The headlines say it's the film of the year. Is it?\nJosh: Well, the reviews are mixed. To look at, it's stunning. The designer created a magical world, and the animation is beautiful. The young actress in the main part is graceful and very natural. But the story is too complex for young children, and the ending is too long. According to the producer, it cost 200 million dollars to make. I'd say it's rated four stars from me.\nKate: Next, something completely different. Midnight Train is a thriller by a new film-maker from Spain. A detective has to find a killer on a night train through the Alps.\nJosh: I loved this one. It's like a puzzle, and you don't know who did it until the very end. It's not a comedy, and it's not a tragedy either. It's just really clever. It's only in a few cinemas, so it might be hard to find.\nKate: And for people who prefer to stay at home, there's a new soap opera on Channel 4. Honestly, I found it uninteresting, but my mum loves it.\nJosh: My dad watches it too! He says the characters feel like old friends.\nKate: Now books. The famous novelist Anna Brightwell has a new book out. She's a wonderful storyteller, and this is a special edition with an introduction by the author. It's about a politician who wants to be president, and a researcher who discovers his secret.\nJosh: My brother read it and couldn't put it down.\nKate: Finally, some music news. The guitarist from The Blue Horns is doing a live recording at the Greenway Arts Hall on Friday. The DJ Leo Park is also performing, and the event is sponsored by a local radio station. Tickets are 15 pounds, but there's a special offer: the offer ends on Wednesday, and students get two tickets for the price of one.\nJosh: And don't forget, entertainers from the city's street festival will be in the park all weekend.\nKate: That's all for this week. It says here that we've got a competition next week: you can win tickets to The Hidden Door. Stay tuned!", + "glosses": { + "killer": "杀手", + "cinemas": "电影院", + "author": "作者", + "discovers": "发现", + "performing": "表演", + "tuned": "收听" + }, + "questions": [ + { + "type": "gist", + "question": "这期节目主要介绍什么?", + "options": [ + "本周的电影、电视、书和音乐活动", + "如何拍电影", + "电台的招聘信息" + ] + }, + { + "type": "detail", + "question": "乔希对《隐藏之门》的主要批评是什么?", + "options": [ + "故事对小孩太复杂,结尾太长", + "画面不好看", + "演员表演不自然" + ] + }, + { + "type": "inference", + "question": "如果你是学生,周三前买音乐会票有什么好处?", + "options": [ + "可以两张票一张的价钱", + "可以免费进场", + "可以见到歌手" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "读懂关键信息", + "bands": [ + "找不到关键信息", + "能找到部分关键信息", + "准确找出时间、规定、价格等关键信息" + ], + "pass": 1 + }, + { + "name": "转述给别人", + "bands": [ + "只能照着读", + "能转述,但信息不完整", + "用自己的话清楚转述,并给出建议" + ], + "pass": 1 + } + ] + }, + "excluded": [] +} diff --git a/kouyu_english/assets/courses/B1/B1-U14.json b/kouyu_english/assets/courses/B1/B1-U14.json new file mode 100644 index 0000000..4bbb84c --- /dev/null +++ b/kouyu_english/assets/courses/B1/B1-U14.json @@ -0,0 +1,1288 @@ +{ + "schemaVersion": 1, + "id": "B1-U14", + "revision": 1, + "level": "B1", + "title": "写说明与投诉", + "categories": [ + "日常", + "旅行" + ], + "canDo": "写邮件说明经过并提出要求", + "status": "draft", + "meta": { + "draftedBy": "claude-opus-5", + "draftedAt": "2026-09-17", + "sources": [ + "CEFR-J Vocabulary Profile 1.5", + "CEFR-J Grammar Profile 20180315" + ], + "reviews": [], + "frozenAt": null + }, + "names": [ + "wei", + "li", + "ming", + "wang", + "fang", + "david", + "clark", + "sophie", + "turner", + "seaview", + "palace", + "shopfast", + "northline", + "chen", + "smith", + "lee" + ], + "grammar": [ + { + "id": "142", + "use": "active" + }, + { + "id": "156", + "use": "active" + }, + { + "id": "62", + "use": "active" + }, + { + "id": "215", + "use": "receptive" + } + ], + "coreItems": [ + { + "id": "B1-U14-P01", + "type": "phrase", + "en": "I am writing to complain about my order.", + "zh": "我写信是为了投诉我的订单。", + "sceneWord": false, + "match": [ + [ + "writing to complain" + ] + ], + "example": { + "en": "I am writing to complain about the service at your hotel.", + "zh": "我写信是为了投诉贵酒店的服务。" + }, + "review": { + "prompt": "用邮件开头说明你要投诉一家网店。" + } + }, + { + "id": "B1-U14-P02", + "type": "phrase", + "en": "I am writing to let you know about a problem.", + "zh": "我写信是想告诉您一个问题。", + "sceneWord": false, + "match": [ + [ + "writing to let you know" + ] + ], + "example": { + "en": "I am writing to let you know that my flight has changed.", + "zh": "我写信是想告诉您我的航班改了。" + }, + "review": { + "prompt": "用邮件开头告诉房东家里出了问题。" + } + }, + { + "id": "B1-U14-P03", + "type": "phrase", + "en": "On arrival, we found that the room was dirty.", + "zh": "到达时,我们发现房间很脏。", + "sceneWord": false, + "match": [ + [ + "on arrival" + ] + ], + "example": { + "en": "On arrival, we found that the pool was closed.", + "zh": "到达时,我们发现游泳池关了。" + }, + "review": { + "prompt": "说说你到达酒店时发现了什么问题。" + } + }, + { + "id": "B1-U14-P04", + "type": "phrase", + "en": "To make matters worse, nobody helped us.", + "zh": "更糟的是,没有人帮我们。", + "sceneWord": false, + "match": [ + [ + "to make matters worse" + ] + ], + "example": { + "en": "To make matters worse, it started to rain.", + "zh": "更糟的是,天开始下雨了。" + }, + "review": { + "prompt": "在说明经过时,补充一件更糟的事。" + } + }, + { + "id": "B1-U14-P05", + "type": "phrase", + "en": "As a result, we missed our train.", + "zh": "结果,我们错过了火车。", + "sceneWord": false, + "match": [ + [ + "as a result" + ] + ], + "example": { + "en": "As a result, I was late for work.", + "zh": "结果,我上班迟到了。" + }, + "review": { + "prompt": "说出问题带来的结果。" + } + }, + { + "id": "B1-U14-P06", + "type": "phrase", + "en": "I have attached a copy of the receipt.", + "zh": "我附上了收据的复印件。", + "sceneWord": false, + "match": [ + [ + "attached a copy" + ] + ], + "example": { + "en": "I have attached a copy of my booking.", + "zh": "我附上了预订单的复印件。" + }, + "review": { + "prompt": "在邮件里说你附上了照片或收据。" + } + }, + { + "id": "B1-U14-P07", + "type": "phrase", + "en": "I would be grateful if you could reply soon.", + "zh": "如能尽快回复,我将不胜感激。", + "sceneWord": false, + "match": [ + [ + "grateful if you could" + ] + ], + "example": { + "en": "I would be grateful if you could send me a new one.", + "zh": "如能给我寄个新的,我将不胜感激。" + }, + "review": { + "prompt": "礼貌地请对方尽快处理。" + } + }, + { + "id": "B1-U14-P08", + "type": "phrase", + "en": "I would like to request a full refund.", + "zh": "我想申请全额退款。", + "sceneWord": false, + "match": [ + [ + "request a full refund", + "request a refund" + ] + ], + "example": { + "en": "I would like to request a refund for the second night.", + "zh": "我想申请退还第二晚的费用。" + }, + "review": { + "prompt": "在邮件里提出退款要求。" + } + }, + { + "id": "B1-U14-P09", + "type": "phrase", + "en": "Could you please look into this?", + "zh": "能请您调查一下这件事吗?", + "sceneWord": false, + "match": [ + [ + "look into this" + ] + ], + "example": { + "en": "Could you please look into this as soon as possible?", + "zh": "能请您尽快调查一下这件事吗?" + }, + "review": { + "prompt": "请对方调查清楚出了什么问题。" + } + }, + { + "id": "B1-U14-P10", + "type": "phrase", + "en": "Please find the details below.", + "zh": "详细情况如下。", + "sceneWord": false, + "match": [ + [ + "details below" + ] + ], + "example": { + "en": "Please find the order details below.", + "zh": "我的订单详情如下。" + }, + "review": { + "prompt": "在邮件里引出订单号和日期等细节。" + } + }, + { + "id": "B1-U14-P11", + "type": "phrase", + "en": "I look forward to hearing from you.", + "zh": "期待您的回复。", + "sceneWord": false, + "match": [ + [ + "look forward to hearing" + ] + ], + "example": { + "en": "I look forward to hearing from you soon.", + "zh": "期待您尽快回复。" + }, + "review": { + "prompt": "用一句话礼貌地结束一封正式邮件。" + } + }, + { + "id": "B1-U14-P12", + "type": "phrase", + "en": "I apologize for the late reply.", + "zh": "抱歉回复晚了。", + "sceneWord": false, + "match": [ + [ + "apologize for" + ] + ], + "example": { + "en": "I apologize for the mistake in my last email.", + "zh": "我为上一封邮件中的错误道歉。" + }, + "review": { + "prompt": "回复邮件时为回复晚了道歉。" + } + }, + { + "id": "B1-U14-W01", + "type": "word", + "en": "misunderstanding", + "zh": "误会", + "sceneWord": false, + "match": [ + [ + "misunderstanding", + "misunderstandings" + ] + ], + "example": { + "en": "I think there has been a misunderstanding.", + "zh": "我想这里有个误会。" + }, + "review": { + "prompt": "说你觉得这里有个误会。" + } + }, + { + "id": "B1-U14-W02", + "type": "word", + "en": "correction", + "zh": "更正", + "sceneWord": false, + "match": [ + [ + "correction", + "corrections" + ] + ], + "example": { + "en": "Please make a correction to my booking.", + "zh": "请更正我的预订信息。" + }, + "review": { + "prompt": "请对方更正你名字的拼写。" + } + }, + { + "id": "B1-U14-W03", + "type": "word", + "en": "briefly", + "zh": "简要地", + "sceneWord": false, + "match": [ + [ + "briefly" + ] + ], + "example": { + "en": "Let me briefly explain what happened.", + "zh": "让我简要说明一下发生了什么。" + }, + "review": { + "prompt": "简要说明一下发生了什么。" + } + } + ], + "receptiveWords": [ + { + "id": "B1-U14-R01", + "en": "furthermore", + "zh": "此外" + }, + { + "id": "B1-U14-R02", + "en": "hairdryer", + "zh": "吹风机" + }, + { + "id": "B1-U14-R03", + "en": "barely", + "zh": "几乎不" + }, + { + "id": "B1-U14-R04", + "en": "volume", + "zh": "音量" + }, + { + "id": "B1-U14-R05", + "en": "chaos", + "zh": "混乱" + }, + { + "id": "B1-U14-R06", + "en": "consequently", + "zh": "因此" + }, + { + "id": "B1-U14-R07", + "en": "loyalty", + "zh": "忠诚" + }, + { + "id": "B1-U14-R08", + "en": "transform", + "zh": "彻底改变" + }, + { + "id": "B1-U14-R09", + "en": "expand", + "zh": "扩大" + }, + { + "id": "B1-U14-R10", + "en": "absence", + "zh": "缺乏;不在" + }, + { + "id": "B1-U14-R11", + "en": "emotion", + "zh": "情绪" + }, + { + "id": "B1-U14-R12", + "en": "rewrite", + "zh": "重写" + }, + { + "id": "B1-U14-R13", + "en": "simplify", + "zh": "简化" + }, + { + "id": "B1-U14-R14", + "en": "distinguish", + "zh": "区分" + }, + { + "id": "B1-U14-R15", + "en": "attachment", + "zh": "附件" + }, + { + "id": "B1-U14-R16", + "en": "passive", + "zh": "被动的" + }, + { + "id": "B1-U14-R17", + "en": "countless", + "zh": "无数的" + }, + { + "id": "B1-U14-R18", + "en": "positively", + "zh": "积极地" + }, + { + "id": "B1-U14-R19", + "en": "occasional", + "zh": "偶尔的" + }, + { + "id": "B1-U14-R20", + "en": "dump", + "zh": "倾倒" + }, + { + "id": "B1-U14-R21", + "en": "fur", + "zh": "毛皮" + }, + { + "id": "B1-U14-R22", + "en": "shame", + "zh": "遗憾" + }, + { + "id": "B1-U14-R23", + "en": "observe", + "zh": "评述;观察" + }, + { + "id": "B1-U14-R24", + "en": "hurriedly", + "zh": "匆忙地" + }, + { + "id": "B1-U14-R25", + "en": "roadside", + "zh": "路边" + }, + { + "id": "B1-U14-R26", + "en": "innocent", + "zh": "无辜的" + }, + { + "id": "B1-U14-R27", + "en": "threat", + "zh": "威胁" + }, + { + "id": "B1-U14-R28", + "en": "unwanted", + "zh": "不受欢迎的" + }, + { + "id": "B1-U14-R29", + "en": "certainty", + "zh": "确定" + }, + { + "id": "B1-U14-R30", + "en": "presence", + "zh": "存在" + }, + { + "id": "B1-U14-R31", + "en": "development", + "zh": "发展;开发" + }, + { + "id": "B1-U14-R32", + "en": "carelessly", + "zh": "粗心地" + }, + { + "id": "B1-U14-R33", + "en": "dangerously", + "zh": "危险地" + }, + { + "id": "B1-U14-R34", + "en": "accidental", + "zh": "意外的" + }, + { + "id": "B1-U14-R35", + "en": "accuracy", + "zh": "准确性" + }, + { + "id": "B1-U14-R36", + "en": "afterwards", + "zh": "之后" + }, + { + "id": "B1-U14-R37", + "en": "aggressive", + "zh": "咄咄逼人的" + }, + { + "id": "B1-U14-R38", + "en": "bedside", + "zh": "床边" + }, + { + "id": "B1-U14-R39", + "en": "brief", + "zh": "简短的" + }, + { + "id": "B1-U14-R40", + "en": "builder", + "zh": "建筑工人" + }, + { + "id": "B1-U14-R41", + "en": "burglar", + "zh": "入室窃贼" + }, + { + "id": "B1-U14-R42", + "en": "conflict", + "zh": "冲突" + }, + { + "id": "B1-U14-R43", + "en": "confusion", + "zh": "混乱" + }, + { + "id": "B1-U14-R44", + "en": "considerable", + "zh": "相当大的" + }, + { + "id": "B1-U14-R45", + "en": "continuous", + "zh": "持续不断的" + }, + { + "id": "B1-U14-R46", + "en": "delicate", + "zh": "精致易损的" + }, + { + "id": "B1-U14-R47", + "en": "determine", + "zh": "确定" + }, + { + "id": "B1-U14-R48", + "en": "encounter", + "zh": "遇到" + }, + { + "id": "B1-U14-R49", + "en": "gap", + "zh": "缺口;漏洞" + }, + { + "id": "B1-U14-R50", + "en": "honeymoon", + "zh": "蜜月" + }, + { + "id": "B1-U14-R51", + "en": "internal", + "zh": "内部的" + }, + { + "id": "B1-U14-R52", + "en": "outer", + "zh": "外部的" + }, + { + "id": "B1-U14-R53", + "en": "outline", + "zh": "大纲" + }, + { + "id": "B1-U14-R54", + "en": "possess", + "zh": "拥有" + }, + { + "id": "B1-U14-R55", + "en": "recognise", + "zh": "认出" + }, + { + "id": "B1-U14-R56", + "en": "scatter", + "zh": "散落" + }, + { + "id": "B1-U14-R57", + "en": "strengthen", + "zh": "加强" + }, + { + "id": "B1-U14-R58", + "en": "stupid", + "zh": "愚蠢的" + }, + { + "id": "B1-U14-R59", + "en": "surround", + "zh": "围绕" + }, + { + "id": "B1-U14-R60", + "en": "sympathy", + "zh": "同情" + }, + { + "id": "B1-U14-R61", + "en": "thorough", + "zh": "彻底的" + }, + { + "id": "B1-U14-R62", + "en": "tightly", + "zh": "紧紧地" + }, + { + "id": "B1-U14-R63", + "en": "timely", + "zh": "及时的" + }, + { + "id": "B1-U14-R64", + "en": "unable", + "zh": "不能的" + }, + { + "id": "B1-U14-R65", + "en": "unfit", + "zh": "不适合的" + }, + { + "id": "B1-U14-R66", + "en": "unrelated", + "zh": "不相关的" + }, + { + "id": "B1-U14-R67", + "en": "various", + "zh": "各种各样的" + }, + { + "id": "B1-U14-R68", + "en": "victim", + "zh": "受害者" + }, + { + "id": "B1-U14-R69", + "en": "violence", + "zh": "暴力" + }, + { + "id": "B1-U14-R70", + "en": "widespread", + "zh": "普遍的" + }, + { + "id": "B1-U14-R71", + "en": "result", + "zh": "结果" + } + ], + "segments": [ + { + "id": "B1-U14-S1", + "title": "说明写信目的", + "minutes": 12, + "itemIds": [ + "B1-U14-P01", + "B1-U14-P02", + "B1-U14-P10", + "B1-U14-W03" + ], + "listening": { + "text": "Dear ShopFast team, I am writing to complain about my order. Please find the details below. Let me briefly explain what happened. The jacket arrived three weeks late, and it is the wrong size.", + "question": "这封邮件投诉的是什么?", + "options": [ + "外套晚到且尺码不对", + "外套颜色不对", + "外套价格太贵" + ] + }, + "speaking": [ + { + "text": "I am writing to complain about my order.", + "tip": "writing to 连读" + }, + { + "text": "I am writing to let you know about a problem." + }, + { + "text": "Please find the details below.", + "tip": "details 重音在第一个音节" + }, + { + "text": "Let me briefly explain what happened.", + "tip": "briefly 读 /ˈbriːfli/" + } + ], + "reading": { + "text": "Dear Mr Clark,\nI am writing to let you know about a problem in my flat. Let me briefly explain: the kitchen window is broken, and cold air comes in. Please find the details below.\nFlat: 12B\nDate: 3 March\nBest wishes,\nWang Fang", + "question": "王芳的公寓出了什么问题?", + "options": [ + "厨房窗户坏了", + "暖气坏了", + "门锁坏了" + ] + }, + "writing": { + "prompt": "写两句话:说你写信是为了投诉你的订单,详细情况如下。", + "example": "I am writing to complain about my order. Please find the details below.", + "itemIds": [ + "B1-U14-P01", + "B1-U14-P10" + ] + }, + "independent": { + "prompt": "用英语写邮件开头,告诉房东家里出了问题,并简要说明发生了什么。", + "itemIds": [ + "B1-U14-P02", + "B1-U14-W03" + ] + } + }, + { + "id": "B1-U14-S2", + "title": "说明经过和结果", + "minutes": 13, + "itemIds": [ + "B1-U14-P03", + "B1-U14-P04", + "B1-U14-P05", + "B1-U14-P06", + "B1-U14-W01" + ], + "listening": { + "text": "On arrival, we found that the room was dirty. To make matters worse, nobody at the front desk helped us. As a result, we had to find another hotel. I think there has been a misunderstanding. I have attached a copy of the receipt.", + "question": "结果他们怎么办了?", + "options": [ + "找了另一家酒店", + "自己打扫房间", + "回家了" + ] + }, + "speaking": [ + { + "text": "On arrival, we found that the room was dirty.", + "tip": "arrival 重音在第二个音节" + }, + { + "text": "To make matters worse, nobody helped us." + }, + { + "text": "As a result, we missed our train.", + "tip": "as a result 连读" + }, + { + "text": "I have attached a copy of the receipt.", + "tip": "receipt 的 p 不发音" + }, + { + "text": "I think there has been a misunderstanding.", + "tip": "misunderstanding 重音在第四个音节" + } + ], + "reading": { + "text": "What happened\nOn arrival, we found that our tickets were for the wrong day. The staff said it was a misunderstanding. To make matters worse, the next train was full. As a result, we missed our friend's wedding. I have attached a copy of the tickets.", + "question": "他们因此错过了什么?", + "options": [ + "朋友的婚礼", + "回国的航班", + "工作面试" + ] + }, + "writing": { + "prompt": "写两句话:说到达时发现房间很脏,结果你们错过了火车。", + "example": "On arrival, we found that the room was dirty. As a result, we missed our train.", + "itemIds": [ + "B1-U14-P03", + "B1-U14-P05" + ] + }, + "independent": { + "prompt": "用英语补充一件更糟的事,说你附上了收据复印件,并说这里有个误会。", + "itemIds": [ + "B1-U14-P04", + "B1-U14-P06", + "B1-U14-W01" + ] + } + }, + { + "id": "B1-U14-S3", + "title": "提出要求并结尾", + "minutes": 13, + "itemIds": [ + "B1-U14-P07", + "B1-U14-P08", + "B1-U14-P09", + "B1-U14-P11", + "B1-U14-P12", + "B1-U14-W02" + ], + "listening": { + "text": "I apologize for the late reply. I would like to request a full refund. Could you please look into this? Please also make a correction to my name. I would be grateful if you could reply soon. I look forward to hearing from you.", + "question": "写信人除了退款还要求什么?", + "options": [ + "更正名字", + "换一个房间", + "寄一个新的" + ] + }, + "speaking": [ + { + "text": "I would be grateful if you could reply soon.", + "tip": "grateful 读 /ˈɡreɪtfl/" + }, + { + "text": "I would like to request a full refund.", + "tip": "request 重音在第二个音节" + }, + { + "text": "Could you please look into this?" + }, + { + "text": "I look forward to hearing from you." + }, + { + "text": "I apologize for the late reply.", + "tip": "apologize 重音在第二个音节" + }, + { + "text": "Please make a correction.", + "tip": "correction 重音在第二个音节" + } + ], + "reading": { + "text": "Dear Ms Turner,\nI apologize for the late reply. Thank you for your email. Could you please look into this again? My name is spelled wrong on the booking, so I need a correction. I would be grateful if you could send me a new one.\nI look forward to hearing from you.\nLi Ming", + "question": "李明为什么需要更正?", + "options": [ + "预订单上他的名字拼错了", + "日期写错了", + "房间类型错了" + ] + }, + "writing": { + "prompt": "写两句话:说你想申请全额退款,期待对方回复。", + "example": "I would like to request a full refund. I look forward to hearing from you.", + "itemIds": [ + "B1-U14-P08", + "B1-U14-P11" + ] + }, + "independent": { + "prompt": "用英语为回复晚了道歉,请对方调查这件事并更正信息,最后请对方尽快回复。", + "itemIds": [ + "B1-U14-P12", + "B1-U14-P09", + "B1-U14-W02", + "B1-U14-P07" + ] + } + } + ], + "scenes": [ + { + "id": "B1-U14-C1", + "kind": "main", + "title": "打电话投诉蜜月酒店", + "learnerRole": "客人", + "aiRole": "酒店客服经理", + "setting": "你和爱人度蜜月回来,酒店问题很多,你打电话给酒店的客服经理说明情况并提出要求。", + "turns": [ + { + "ai": "Good morning, Seaview Palace customer service. How can I help?", + "goal": "说明来电目的", + "model": "Good morning. I'm calling about our stay last week. I am writing to complain about it, but I wanted to call first.", + "zh": "早上好。我打电话是关于上周的住宿。我正在写邮件投诉,但想先打个电话。", + "itemIds": [ + "B1-U14-P01" + ] + }, + { + "ai": "I'm sorry to hear that. What happened?", + "goal": "说到达时的问题", + "model": "On arrival, we found that the room was dirty, and there was loud noise all day.", + "zh": "到达时,我们发现房间很脏,而且整天都很吵。", + "itemIds": [ + "B1-U14-P03" + ] + }, + { + "ai": "Did you tell the front desk?", + "goal": "补充更糟的事和结果", + "model": "Yes, but to make matters worse, nobody helped us. As a result, we didn't sleep for two nights.", + "zh": "说了,但更糟的是,没人帮我们。结果我们两个晚上都没睡好。", + "itemIds": [ + "B1-U14-P04", + "B1-U14-P05" + ] + }, + { + "ai": "I'm very sorry. That's not our usual service.", + "goal": "请对方调查", + "model": "Could you please look into this?", + "zh": "能请您调查一下这件事吗?", + "itemIds": [ + "B1-U14-P09" + ] + }, + { + "ai": "Of course. What would you like us to do?", + "goal": "提出退款要求", + "model": "I would like to request a full refund for those two nights.", + "zh": "我想申请退还那两晚的全部费用。", + "itemIds": [ + "B1-U14-P08" + ] + }, + { + "ai": "I understand. Please send us an email with your booking number.", + "goal": "回应", + "model": "OK. I'll send it today.", + "zh": "好的,我今天就发。", + "itemIds": [] + } + ] + }, + { + "id": "B1-U14-C2", + "kind": "variant", + "title": "帮同事写投诉邮件", + "learnerRole": "同事", + "aiRole": "同事", + "setting": "你的同事从网店买的电脑送错了,他请你帮忙一起想邮件怎么写。", + "turns": [ + { + "ai": "Can you help me write this email to the shop? I don't know how to start.", + "goal": "建议开头", + "model": "Sure. Start with \"I am writing to let you know about a problem with my order.\"", + "zh": "好。开头写“我写信是想告诉您我的订单有个问题”。", + "itemIds": [ + "B1-U14-P02" + ] + }, + { + "ai": "Good. Then I need to give the order number and the date.", + "goal": "建议引出细节", + "model": "Write \"Please find the details below,\" and then give the numbers.", + "zh": "写“详细情况如下”,然后写上号码。", + "itemIds": [ + "B1-U14-P10" + ] + }, + { + "ai": "They sent me the wrong computer. Should I send a photo?", + "goal": "建议附上收据", + "model": "Yes, and say \"I have attached a copy of the receipt.\"", + "zh": "要,再写“我附上了收据的复印件”。", + "itemIds": [ + "B1-U14-P06" + ] + }, + { + "ai": "My address on the order is wrong too.", + "goal": "建议要求更正", + "model": "Then ask them to make a correction to your address.", + "zh": "那就请他们更正你的地址。", + "itemIds": [ + "B1-U14-W02" + ] + }, + { + "ai": "OK. How do I end it?", + "goal": "建议结尾", + "model": "Write \"I would be grateful if you could reply soon. I look forward to hearing from you.\"", + "zh": "写“如能尽快回复,我将不胜感激。期待您的回复。”", + "itemIds": [ + "B1-U14-P07", + "B1-U14-P11" + ] + } + ] + }, + { + "id": "B1-U14-C3", + "kind": "variant", + "title": "回复朋友的误会", + "learnerRole": "你", + "aiRole": "朋友", + "setting": "朋友以为你不来参加她的生日聚会,给你发了邮件,你打电话给她解释。", + "turns": [ + { + "ai": "Hi. I got your email. You're not coming on Saturday?", + "goal": "为回复晚道歉", + "model": "Hi! First, I apologize for the late reply. I was very busy.", + "zh": "嗨!首先,抱歉回复晚了,我太忙了。", + "itemIds": [ + "B1-U14-P12" + ] + }, + { + "ai": "That's OK. But why aren't you coming?", + "goal": "说有误会", + "model": "I think there has been a misunderstanding. I am coming!", + "zh": "我想这里有个误会,我会去的!", + "itemIds": [ + "B1-U14-W01" + ] + }, + { + "ai": "Really? But your email said you can't.", + "goal": "简要说明经过", + "model": "Let me briefly explain. I meant I can't come on Friday, not Saturday.", + "zh": "让我简要说明一下。我是说周五来不了,不是周六。", + "itemIds": [ + "B1-U14-W03" + ] + }, + { + "ai": "Oh! I'm so happy. See you on Saturday, then.", + "goal": "回应", + "model": "See you then!", + "zh": "到时见!", + "itemIds": [] + } + ] + } + ], + "tasks": [ + { + "id": "B1-U14-T1", + "sceneId": "B1-U14-C1", + "goal": "打电话投诉酒店并提出退款要求", + "itemIds": [ + "B1-U14-P01", + "B1-U14-P03", + "B1-U14-P04", + "B1-U14-P05", + "B1-U14-P09", + "B1-U14-P08" + ], + "slots": [ + "目的", + "经过", + "结果", + "要求" + ] + }, + { + "id": "B1-U14-T2", + "sceneId": "B1-U14-C2", + "goal": "帮同事组织一封投诉邮件", + "itemIds": [ + "B1-U14-P02", + "B1-U14-P10", + "B1-U14-P06", + "B1-U14-W02", + "B1-U14-P07", + "B1-U14-P11" + ], + "slots": [ + "开头", + "细节", + "附件", + "结尾" + ] + }, + { + "id": "B1-U14-T3", + "sceneId": "B1-U14-C3", + "goal": "解释一个误会", + "itemIds": [ + "B1-U14-P12", + "B1-U14-W01", + "B1-U14-W03" + ], + "slots": [ + "道歉", + "误会", + "说明" + ] + } + ], + "materials": [ + { + "id": "B1-U14-M1", + "mode": "reading", + "title": "投诉邮件和回复", + "text": "From: Sophie Turner\nTo: Customer Service, Seaview Palace Hotel\nAbout: Complaint about our honeymoon stay\n\nDear Seaview Palace team,\nI am writing to complain about our recent stay at your hotel. Please find the details below.\nBooking number: SP-40817\nDates: 12 to 16 June\nRoom: Honeymoon Suite\nMy husband and I chose your hotel for our honeymoon because your website promised \"a peaceful setting surrounded by gardens\". We had been looking forward to a quiet week, not chaos. Let me briefly explain what happened.\nOn arrival, we found that builders were working dangerously close to our balcony, on the outer wall of the building. The noise was continuous from 7 a.m. until 6 p.m. The volume was so high that we could barely hear each other, and there was a considerable amount of dust on our balcony. Nobody had informed us about the building work in advance. Furthermore, the hairdryer in the bathroom did not work. If we had known, we would have chosen a different hotel.\nTo make matters worse, when we asked to move, the receptionist was quite aggressive. She said the hotel was full and that there was nothing she could do. This caused real conflict between us and the staff, and it completely ruined the atmosphere of our holiday. As a result, we left one day early.\nI have attached a copy of the receipt and some photos. I would like to request a refund for the four nights, as the room was clearly unfit for a honeymoon. I would be grateful if you could look into this in a timely manner.\nI look forward to hearing from you.\nBest wishes,\nSophie Turner\n\nReply\nDear Mrs Turner,\nI apologize for the late reply, and I am very sorry to hear about your experience. After a thorough check, I can confirm that you are right. There was a gap in our communication: the building work was planned, but because of an internal mistake, guests were not told. The work will transform the outer wall and expand our restaurant, but this development does not excuse the absence of information. Consequently, we have changed our booking system so that guests are told before they arrive. I also want to address the behaviour of our receptionist. There is no excuse for it, and we have spoken to her.\nWe will refund all four nights, and we would like to invite you back for a free weekend so that we have the chance to strengthen your trust in us. The loyalty of our guests means a great deal to us, and I was concerned to read your email. Please accept our sincere apologies.\nBest wishes,\nDavid Clark, Hotel Manager", + "glosses": { + "suite": "套房", + "balcony": "阳台", + "receptionist": "前台接待员", + "ruined": "毁了", + "communication": "沟通", + "behaviour": "行为", + "sincere": "真诚的", + "apologies": "道歉", + "excuse": "借口" + }, + "questions": [ + { + "type": "gist", + "question": "这两封邮件主要是关于什么?", + "options": [ + "一次蜜月住宿的投诉和酒店的回复", + "预订蜜月套房", + "酒店招聘接待员" + ] + }, + { + "type": "detail", + "question": "酒店为什么没有提前通知客人施工的事?", + "options": [ + "酒店内部出了差错", + "施工是临时决定的", + "客人没留电话" + ] + }, + { + "type": "inference", + "question": "酒店经理为什么请他们再来免费住一个周末?", + "options": [ + "希望重新赢得他们的信任", + "因为酒店客人太少", + "因为施工已经结束了" + ] + } + ] + }, + { + "id": "B1-U14-M2", + "mode": "reading", + "title": "指南:如何写一封有效的投诉邮件", + "text": "How to write a complaint email that works\nWe all encounter bad service sometimes: a parcel that never arrives, a phone bill with the wrong amount, or a builder who leaves the job half done. Countless people give up too early. Writing a complaint can feel stressful, but a well-written email is often the fastest way to fix the problem. Here is a simple outline.\n1. Start with your purpose\nKeep it brief. In the first line, say why you are writing: \"I am writing to complain about...\" Don't make the reader search for the main point.\n2. Give the facts in order\nBriefly explain what happened, and when. Include your order or booking number. Accuracy matters: the company needs to recognise your case and determine what went wrong. Avoid various unrelated problems in one email, as this creates confusion. Put each point on a new line so the reader can easily distinguish between them.\n3. Stay calm\nIt's natural to feel angry, but don't let emotion take over: an aggressive tone rarely helps. Rewrite anything that sounds rude, and simplify long lines. Don't call anyone stupid, and don't use capital letters to shout. Staff are more likely to show sympathy and help you if you are polite. Remember that the person reading your email probably didn't cause the problem. An occasional mistake is normal in any company. Companies usually respond positively to polite customers.\n4. Show evidence\nAttach photos or receipts, and give each attachment a short name. Photos of damage, especially if it was accidental, are important. Keep copies of all your emails. If you have a phone conversation, write down the date, the time and the name of the person you spoke to afterwards.\n5. Say what you want\nBe specific. Do you want a refund, a new one, a repair or simply an apology? If you don't say, the company will decide for you. \"I would be grateful if you could...\" is polite but firm.\n6. Give a time limit\nAsk for a reply within a reasonable time, for example fourteen days. If there is no answer, don't be passive: write again. If the company is still unable to help, you can take the matter further, for example to a consumer organisation.\n7. Check before you send\nRead the email aloud. Check your spelling, especially names and numbers. A small mistake can lead to a misunderstanding, and you may need to send a correction later.\nExample opening\n\"I am writing to complain about the frying pan I ordered on 3 May. On arrival, I found that the handle was loose and the surface was scratched. As a result, I have been unable to use it.\"\nWith this approach, most people see a positive result. Good luck!", + "glosses": { + "purpose": "目的", + "tone": "语气", + "evidence": "证据", + "firm": "坚定的", + "consumer": "消费者", + "handle": "把手", + "loose": "松的", + "scratched": "有划痕的", + "capital": "大写的" + }, + "questions": [ + { + "type": "gist", + "question": "这篇指南主要讲什么?", + "options": [ + "怎样写一封有效的投诉邮件", + "怎样在网上买东西", + "怎样回复顾客的投诉" + ] + }, + { + "type": "detail", + "question": "指南建议在一封邮件里避免什么?", + "options": [ + "同时写很多不相关的问题", + "附上照片", + "写订单号" + ] + }, + { + "type": "inference", + "question": "为什么指南建议保持冷静和礼貌?", + "options": [ + "对方更可能愿意帮你", + "公司会给你更多钱", + "写邮件会更快" + ] + } + ] + }, + { + "id": "B1-U14-M3", + "mode": "listening", + "title": "电话留言:家里被盗以后", + "text": "Message to the landlord\nHi, Mr Smith. It's Chen Wei from Flat 4. I'm sorry to call so early, but I need to let you know about something serious. Someone broke into the flat last night while we were away. When we got back this morning, the front door was open and the lock was damaged. The police think the burglar climbed up the back wall and came in through the kitchen window, because there are marks on the window. They took my computer from the bedside table, some jewellery, my friend's leather jacket and a fur hat. They also dumped our things out of the cupboards and scattered our clothes all over the floor. The whole flat is in chaos, and it's a real shame. I can't say with certainty what else is missing. Luckily, nobody was at home, so there was no violence, and nobody was hurt. A neighbour saw a man running hurriedly towards the roadside, but the police said the man they stopped was innocent. The police officer was very kind. She said this kind of crime is quite widespread in the area at the moment, and there have been several cases on our street. She observed that the presence of a camera can stop burglars, and she asked if we have one at the entrance. As far as I know, we don't. Could you please look into getting one? Also, the lock on the front door needs to be replaced today, because we can't close the door tightly. I'm concerned that they might come back, even though the police say there's no real threat now. I'll send you an email with photos and the crime number. Please call me back when you get this.\n\nPhone call to the insurance company\nAgent: Good afternoon, Northline Insurance. How can I help you?\nChen Wei: Hi. I'd like to make a claim. My flat was broken into last night.\nAgent: I'm sorry to hear that. Are you the victim of the crime? Did you notice any unwanted visitors before?\nChen Wei: Yes. I've already reported it to the police, and I have a crime number.\nAgent: Good. Can you briefly tell me what was taken?\nChen Wei: A computer, a necklace and a watch. The necklace was a present from my grandmother, so it's delicate and very special to me.\nAgent: I understand. Do you possess receipts for the items?\nChen Wei: I have the receipt for the computer. I'm not sure about the others.\nAgent: That's fine. Photos can help too. Just to make sure there's no misunderstanding: your policy pays for items stolen from inside the home, but only if the doors and windows were locked. Were they? Was anything left open carelessly?\nChen Wei: Yes, the police said the window was forced open.\nAgent: Great, then there should be no problem. I'll send you a form. Please fill it in and send it back, along with a copy of the police report. We try to handle all claims in a timely way, usually within ten working days. If there's anything you've forgotten, you can send us a correction later.\nChen Wei: Thank you. You've been really helpful.", + "glosses": { + "jewellery": "珠宝首饰", + "crime": "犯罪", + "claim": "索赔", + "necklace": "项链", + "policy": "保单", + "marks": "痕迹" + }, + "questions": [ + { + "type": "gist", + "question": "这两段录音主要是关于什么?", + "options": [ + "家里被盗后联系房东和保险公司", + "搬新家找房东", + "在网上买保险" + ] + }, + { + "type": "detail", + "question": "保险公司说在什么情况下才能赔偿?", + "options": [ + "门窗当时都锁好了", + "被偷的东西都有收据", + "家里当时有人" + ] + }, + { + "type": "inference", + "question": "陈伟为什么急着让房东今天换锁?", + "options": [ + "门关不严,不安全", + "他把钥匙弄丢了", + "警察要求的" + ] + } + ] + } + ], + "rubric": { + "dimensions": [ + { + "name": "说明经过", + "bands": [ + "经过说不清", + "能按顺序说明经过,但缺少结果", + "按顺序说明经过、结果,并附上证据" + ], + "pass": 1 + }, + { + "name": "提出要求", + "bands": [ + "没有提出要求", + "能提出要求,但语气不够正式", + "礼貌、具体地提出要求并得体结尾" + ], + "pass": 1 + } + ] + }, + "excluded": [] +} diff --git a/kouyu_english/assets/courses/course-map.json b/kouyu_english/assets/courses/course-map.json new file mode 100644 index 0000000..90d1340 --- /dev/null +++ b/kouyu_english/assets/courses/course-map.json @@ -0,0 +1,653 @@ +{ + "schemaVersion": 1, + "goal": "日常生活与旅行", + "sources": [ + "CEFR-J Vocabulary Profile 1.5(東京外国語大学投野由紀夫研究室)", + "CEFR-J Grammar Profile 20180315(東京外国語大学投野由紀夫研究室)" + ], + "minimumPoolCoverage": 0.85, + "alwaysAllowedWords": [ + "oh", + "um", + "ok", + "okay", + "wow", + "mm", + "hmm", + "ah", + "uh", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z" + ], + "names": [ + "tom", + "mia", + "alex", + "shen", + "anna", + "ben", + "lily", + "sam", + "emma", + "leo", + "nina", + "david", + "lucy", + "mark", + "sara", + "jack", + "kate", + "max", + "ella", + "chen", + "wang", + "li", + "zhang", + "liu", + "london", + "paris", + "tokyo", + "sydney", + "beijing", + "shanghai", + "china", + "chinese", + "english", + "america", + "american", + "japan", + "british", + "rome", + "bangkok", + "singapore", + "seoul", + "berlin", + "mr", + "mrs", + "ms", + "dr", + "usd", + "cm", + "km", + "wi-fi", + "wifi", + "atm" + ], + "levels": [ + { + "id": "A1", + "title": "固定的生活与旅行互动", + "coreRange": [ + 10, + 15 + ], + "receptiveRange": [ + 20, + 35 + ], + "units": [ + { + "id": "A1-U01", + "file": "A1/A1-U01.json", + "title": "开口求助与数字", + "categories": [ + "旅行", + "日常" + ], + "canDo": "没听懂时礼貌求助,说 11–100 的数字,拼读字母" + }, + { + "id": "A1-U02", + "file": "A1/A1-U02.json", + "title": "价格与付款", + "categories": [ + "日常", + "旅行" + ], + "canDo": "问价、说 100 以内的金额、选择现金或刷卡" + }, + { + "id": "A1-U03", + "file": "A1/A1-U03.json", + "title": "在咖啡店点单", + "categories": [ + "日常" + ], + "canDo": "点饮料、说大小杯、礼貌确认" + }, + { + "id": "A1-U04", + "file": "A1/A1-U04.json", + "title": "问路", + "categories": [ + "旅行" + ], + "canDo": "问地点、听懂左右和距离" + }, + { + "id": "A1-U05", + "file": "A1/A1-U05.json", + "title": "在餐厅点餐", + "categories": [ + "日常", + "旅行" + ], + "canDo": "点餐、问推荐、要账单" + }, + { + "id": "A1-U06", + "file": "A1/A1-U06.json", + "title": "家人与住处", + "categories": [ + "日常" + ], + "canDo": "介绍家人,说住在哪里和家里有什么" + }, + { + "id": "A1-U07", + "file": "A1/A1-U07.json", + "title": "公交与地铁", + "categories": [ + "旅行" + ], + "canDo": "买票、问站点、确认下车" + }, + { + "id": "A1-U08", + "file": "A1/A1-U08.json", + "title": "超市与便利店", + "categories": [ + "日常" + ], + "canDo": "找商品、说数量" + }, + { + "id": "A1-U09", + "file": "A1/A1-U09.json", + "title": "描述人和感受", + "categories": [ + "日常" + ], + "canDo": "说一个人的外貌和性格,说自己的心情" + }, + { + "id": "A1-U10", + "file": "A1/A1-U10.json", + "title": "打车", + "categories": [ + "旅行" + ], + "canDo": "说目的地、确认价格或路线" + }, + { + "id": "A1-U11", + "file": "A1/A1-U11.json", + "title": "我的一天", + "categories": [ + "日常" + ], + "canDo": "说作息和常做的事" + }, + { + "id": "A1-U12", + "file": "A1/A1-U12.json", + "title": "买衣服", + "categories": [ + "日常" + ], + "canDo": "问尺码和颜色、试穿" + }, + { + "id": "A1-U13", + "file": "A1/A1-U13.json", + "title": "日期与约时间", + "categories": [ + "日常" + ], + "canDo": "说日期、约见面、改时间" + }, + { + "id": "A1-U14", + "file": "A1/A1-U14.json", + "title": "在机场", + "categories": [ + "旅行" + ], + "canDo": "值机、问登机口、回答入境的简单问题" + }, + { + "id": "A1-U15", + "file": "A1/A1-U15.json", + "title": "入住酒店", + "categories": [ + "旅行" + ], + "canDo": "说明预订信息、办理入住" + }, + { + "id": "A1-U16", + "file": "A1/A1-U16.json", + "title": "天气与穿着", + "categories": [ + "日常", + "旅行" + ], + "canDo": "问天气、说该穿什么" + }, + { + "id": "A1-U17", + "file": "A1/A1-U17.json", + "title": "酒店里的需求", + "categories": [ + "旅行" + ], + "canDo": "要物品、报告简单问题" + }, + { + "id": "A1-U18", + "file": "A1/A1-U18.json", + "title": "药店与不舒服", + "categories": [ + "日常", + "旅行" + ], + "canDo": "说一个症状、听懂基本建议" + }, + { + "id": "A1-U19", + "file": "A1/A1-U19.json", + "title": "遇到麻烦时求助", + "categories": [ + "日常", + "旅行" + ], + "canDo": "说明遇到的麻烦、请求帮忙、感谢与回应" + }, + { + "id": "A1-U20", + "file": "A1/A1-U20.json", + "title": "打电话与留言", + "categories": [ + "日常" + ], + "canDo": "留下姓名、号码和简短信息" + }, + { + "id": "A1-U21", + "file": "A1/A1-U21.json", + "title": "周末计划", + "categories": [ + "日常" + ], + "canDo": "说将要做的事、邀请朋友" + } + ], + "materials": { + "count": [ + 2, + 2 + ], + "listeningWords": [ + 60, + 120 + ], + "readingWords": [ + 80, + 150 + ], + "unknownTolerance": 0.08 + } + }, + { + "id": "A2", + "title": "讲经历、做安排、处理小问题", + "coreRange": [ + 10, + 15 + ], + "receptiveRange": [ + 40, + 65 + ], + "materials": { + "count": [ + 2, + 3 + ], + "listeningWords": [ + 120, + 280 + ], + "readingWords": [ + 150, + 250 + ] + }, + "units": [ + { + "id": "A2-U01", + "file": "A2/A2-U01.json", + "title": "上个周末", + "categories": [ + "日常" + ], + "canDo": "用过去时讲做了什么" + }, + { + "id": "A2-U02", + "file": "A2/A2-U02.json", + "title": "上一次旅行", + "categories": [ + "旅行" + ], + "canDo": "讲去了哪里、怎么样、感受如何" + }, + { + "id": "A2-U03", + "file": "A2/A2-U03.json", + "title": "预订酒店与餐厅", + "categories": [ + "旅行" + ], + "canDo": "电话或当面预订:日期、人数、要求" + }, + { + "id": "A2-U04", + "file": "A2/A2-U04.json", + "title": "改期与取消", + "categories": [ + "日常", + "旅行" + ], + "canDo": "说明原因、提出新时间" + }, + { + "id": "A2-U05", + "file": "A2/A2-U05.json", + "title": "餐厅里的问题", + "categories": [ + "旅行" + ], + "canDo": "说明忌口或过敏、菜品有问题、分开结账" + }, + { + "id": "A2-U06", + "file": "A2/A2-U06.json", + "title": "比较与选择", + "categories": [ + "日常", + "旅行" + ], + "canDo": "比较商品、房间或路线并做选择" + }, + { + "id": "A2-U07", + "file": "A2/A2-U07.json", + "title": "退换货", + "categories": [ + "日常" + ], + "canDo": "说明问题、要求退换" + }, + { + "id": "A2-U08", + "file": "A2/A2-U08.json", + "title": "行程出问题", + "categories": [ + "旅行" + ], + "canDo": "误车、延误、换乘、改票" + }, + { + "id": "A2-U09", + "file": "A2/A2-U09.json", + "title": "住宿里的问题", + "categories": [ + "旅行" + ], + "canDo": "报修、换房、提出要求" + }, + { + "id": "A2-U10", + "file": "A2/A2-U10.json", + "title": "看病", + "categories": [ + "日常", + "旅行" + ], + "canDo": "说症状和持续时间、听懂用药说明" + }, + { + "id": "A2-U11", + "file": "A2/A2-U11.json", + "title": "聊兴趣与家乡", + "categories": [ + "日常" + ], + "canDo": "围绕一个话题连续聊几轮" + }, + { + "id": "A2-U12", + "file": "A2/A2-U12.json", + "title": "建议与意见", + "categories": [ + "日常", + "旅行" + ], + "canDo": "给建议、征求意见" + }, + { + "id": "A2-U13", + "file": "A2/A2-U13.json", + "title": "介绍城市与景点", + "categories": [ + "旅行" + ], + "canDo": "描述地方、推荐去处" + }, + { + "id": "A2-U14", + "file": "A2/A2-U14.json", + "title": "丢东西与求助", + "categories": [ + "旅行" + ], + "canDo": "在服务台说明丢了什么、在哪里丢的" + }, + { + "id": "A2-U15", + "file": "A2/A2-U15.json", + "title": "消息与短邮件", + "categories": [ + "日常" + ], + "canDo": "写邀请、感谢、说明迟到" + } + ], + "openTaskRubric": true + }, + { + "id": "B1", + "title": "独立应对大多数情况", + "coreRange": [ + 10, + 15 + ], + "receptiveRange": [ + 70, + 110 + ], + "materials": { + "count": [ + 2, + 3 + ], + "listeningWords": [ + 250, + 550 + ], + "readingWords": [ + 300, + 500 + ] + }, + "units": [ + { + "id": "B1-U01", + "file": "B1/B1-U01.json", + "title": "讲一段完整的旅行经历", + "categories": [ + "旅行" + ], + "canDo": "按顺序叙述,加入背景和感受" + }, + { + "id": "B1-U02", + "file": "B1/B1-U02.json", + "title": "规划行程", + "categories": [ + "旅行" + ], + "canDo": "比较交通和住宿方案,说明理由和预算" + }, + { + "id": "B1-U03", + "file": "B1/B1-U03.json", + "title": "入境与行李", + "categories": [ + "旅行" + ], + "canDo": "回答入境问题,报告行李延误或丢失" + }, + { + "id": "B1-U04", + "file": "B1/B1-U04.json", + "title": "听懂广播与讲解", + "categories": [ + "旅行" + ], + "canDo": "抓住车站、机场广播和导览讲解的要点" + }, + { + "id": "B1-U05", + "file": "B1/B1-U05.json", + "title": "紧急情况", + "categories": [ + "旅行" + ], + "canDo": "证件或钱包丢失、报警、求助" + }, + { + "id": "B1-U06", + "file": "B1/B1-U06.json", + "title": "就医", + "categories": [ + "日常", + "旅行" + ], + "canDo": "说明症状变化和病史,理解医嘱要点" + }, + { + "id": "B1-U07", + "file": "B1/B1-U07.json", + "title": "投诉与协商", + "categories": [ + "日常", + "旅行" + ], + "canDo": "要求退款或补偿,谈出解决办法" + }, + { + "id": "B1-U08", + "file": "B1/B1-U08.json", + "title": "租住与长住", + "categories": [ + "日常" + ], + "canDo": "沟通租房或短租,理解规则要点" + }, + { + "id": "B1-U09", + "file": "B1/B1-U09.json", + "title": "生活服务", + "categories": [ + "日常" + ], + "canDo": "办银行和手机卡业务、寄收快递、预约维修" + }, + { + "id": "B1-U10", + "file": "B1/B1-U10.json", + "title": "观点与理由", + "categories": [ + "日常" + ], + "canDo": "推荐并说明理由,回应不同意见" + }, + { + "id": "B1-U11", + "file": "B1/B1-U11.json", + "title": "习俗与文化", + "categories": [ + "旅行" + ], + "canDo": "谈小费、礼仪和节日,比较不同做法" + }, + { + "id": "B1-U12", + "file": "B1/B1-U12.json", + "title": "深入聊天", + "categories": [ + "日常" + ], + "canDo": "聊经历、计划和感受,维持 5 分钟对话" + }, + { + "id": "B1-U13", + "file": "B1/B1-U13.json", + "title": "读懂生活文本", + "categories": [ + "日常", + "旅行" + ], + "canDo": "读懂评价、说明、规则和通知" + }, + { + "id": "B1-U14", + "file": "B1/B1-U14.json", + "title": "写说明与投诉", + "categories": [ + "日常", + "旅行" + ], + "canDo": "写邮件说明经过并提出要求" + } + ], + "openTaskRubric": true + } + ] +} diff --git a/kouyu_english/lib/core/a0_core.dart b/kouyu_english/lib/core/a0_core.dart index 4b65530..d0fb31c 100644 --- a/kouyu_english/lib/core/a0_core.dart +++ b/kouyu_english/lib/core/a0_core.dart @@ -178,17 +178,98 @@ CoreReviewTemplate coreReviewTemplate(String id) { } /// Rotates an approved offline prompt family without changing the core target -/// ID. These are a safe fallback when a dynamic AI variant is unavailable. +/// ID. The rotation changes the skill, not just the wording: recall in +/// writing, dictation from audio, then saying it aloud. CoreReviewTemplate coreReviewVariant(String id, int variantIndex) { final base = coreReviewTemplate(id); - final lead = switch (variantIndex % 3) { - 0 => '换一个人物或地点,', - 1 => '在新的生活情境中,', - _ => '不看上次答案,', + final dictation = a0DictationSentences[id]; + return switch (variantIndex % 3) { + 1 when dictation != null => CoreReviewTemplate( + prompt: '听一句话,把听到的整句英文写下来。', + hint: dictation.meaning, + skill: dictationSkill, + ), + 2 => CoreReviewTemplate( + prompt: '用英文说出来:${base.prompt}', + hint: base.hint, + skill: spokenRecallSkill, + ), + _ => base, }; - return CoreReviewTemplate( - prompt: '$lead${base.prompt}', - hint: base.hint, - skill: base.skill, - ); } + +const dictationSkill = '听写'; +const spokenRecallSkill = '口头回忆'; + +/// A concrete sentence built only from A0 language, used to play a core item +/// in context and to check dictation. +typedef DictationSentence = ({String sentence, String meaning}); + +const Map a0DictationSentences = { + 'A0-W01': (sentence: 'Zero, one, two.', meaning: '零、一、二。'), + 'A0-W02': (sentence: 'My number is one-two-three.', meaning: '我的号码是一二三。'), + 'A0-W03': (sentence: 'It’s two o’clock.', meaning: '现在两点。'), + 'A0-W04': (sentence: 'It’s three o’clock.', meaning: '现在三点。'), + 'A0-W05': (sentence: 'It’s four o’clock.', meaning: '现在四点。'), + 'A0-W06': (sentence: 'It’s five o’clock.', meaning: '现在五点。'), + 'A0-W07': (sentence: 'It’s six o’clock.', meaning: '现在六点。'), + 'A0-W08': (sentence: 'It’s seven o’clock.', meaning: '现在七点。'), + 'A0-W09': (sentence: 'It’s eight o’clock.', meaning: '现在八点。'), + 'A0-W10': (sentence: 'It’s nine o’clock.', meaning: '现在九点。'), + 'A0-W11': (sentence: 'It’s ten o’clock.', meaning: '现在十点。'), + 'A0-W12': (sentence: 'It’s Monday.', meaning: '今天星期一。'), + 'A0-W13': (sentence: 'It’s Tuesday.', meaning: '今天星期二。'), + 'A0-W14': (sentence: 'It’s Wednesday.', meaning: '今天星期三。'), + 'A0-W15': (sentence: 'It’s Thursday.', meaning: '今天星期四。'), + 'A0-W16': (sentence: 'It’s Friday.', meaning: '今天星期五。'), + 'A0-W17': (sentence: 'It’s Saturday.', meaning: '今天星期六。'), + 'A0-W18': (sentence: 'It’s Sunday.', meaning: '今天星期日。'), + 'A0-W19': (sentence: 'It’s a book.', meaning: '这是一本书。'), + 'A0-W20': (sentence: 'It’s a phone.', meaning: '这是一部电话。'), + 'A0-W21': (sentence: 'It’s a pen.', meaning: '这是一支笔。'), + 'A0-W22': (sentence: 'It’s a bag.', meaning: '这是一个包。'), + 'A0-W23': (sentence: 'It’s a key.', meaning: '这是一把钥匙。'), + 'A0-W24': (sentence: 'I like water.', meaning: '我喜欢喝水。'), + 'A0-W25': (sentence: 'This is my mother.', meaning: '这是我妈妈。'), + 'A0-W26': (sentence: 'This is my father.', meaning: '这是我爸爸。'), + 'A0-W27': (sentence: 'This is my sister.', meaning: '这是我的姐妹。'), + 'A0-W28': (sentence: 'This is my brother.', meaning: '这是我的兄弟。'), + 'A0-W29': (sentence: 'I like coffee.', meaning: '我喜欢咖啡。'), + 'A0-W30': (sentence: 'Do you like tea?', meaning: '你喜欢茶吗?'), + 'A0-W31': (sentence: 'I like music.', meaning: '我喜欢音乐。'), + 'A0-W32': (sentence: 'Do you like movies?', meaning: '你喜欢电影吗?'), + 'A0-W33': (sentence: 'I’m good.', meaning: '我很好。'), + 'A0-W34': (sentence: 'I’m okay.', meaning: '我还可以。'), + 'A0-W35': (sentence: 'I’m tired.', meaning: '我累了。'), + 'A0-W36': (sentence: 'Hello, how are you?', meaning: '你好,你怎么样?'), + 'A0-W37': (sentence: 'Hi, what’s your name?', meaning: '嗨,你叫什么名字?'), + 'A0-W38': (sentence: 'Yes, I do.', meaning: '是的,我喜欢。'), + 'A0-W39': (sentence: 'No, I don’t.', meaning: '不,我不喜欢。'), + 'A0-W40': (sentence: 'I’m okay, thanks.', meaning: '我还可以,谢谢。'), + 'A0-P01': (sentence: 'I’m Tom.', meaning: '我是 Tom。'), + 'A0-P02': (sentence: 'What’s your name?', meaning: '你叫什么名字?'), + 'A0-P03': (sentence: 'Nice to meet you.', meaning: '很高兴认识你。'), + 'A0-P04': (sentence: 'How do you spell that?', meaning: '那个怎么拼写?'), + 'A0-P05': (sentence: 'How are you?', meaning: '你怎么样?'), + 'A0-P06': (sentence: 'I’m tired today.', meaning: '我今天很累。'), + 'A0-P07': (sentence: 'What’s your phone number?', meaning: '你的电话号码是多少?'), + 'A0-P08': (sentence: 'My number is one-three-eight.', meaning: '我的号码是一三八。'), + 'A0-P09': (sentence: 'What’s this?', meaning: '这是什么?'), + 'A0-P10': (sentence: 'It’s a pen.', meaning: '这是一支笔。'), + 'A0-P11': (sentence: 'Where are you from?', meaning: '你来自哪里?'), + 'A0-P12': (sentence: 'I’m from China.', meaning: '我来自中国。'), + 'A0-P13': (sentence: 'This is my sister.', meaning: '这是我的姐妹。'), + 'A0-P14': (sentence: 'What day is it today?', meaning: '今天星期几?'), + 'A0-P15': (sentence: 'It’s Friday.', meaning: '今天星期五。'), + 'A0-P16': (sentence: 'What time is it?', meaning: '现在几点?'), + 'A0-P17': (sentence: 'It’s three o’clock.', meaning: '现在三点。'), + 'A0-P18': (sentence: 'I like music.', meaning: '我喜欢音乐。'), + 'A0-P19': (sentence: 'Do you like coffee?', meaning: '你喜欢咖啡吗?'), + 'A0-P20': (sentence: 'Please say that again.', meaning: '请再说一遍。'), +}; + +/// What review audio should play for [item]: the dictation sentence for a +/// core item, otherwise the target itself when it has no slot to fill. +String? reviewAudioText(String id, String target) => + a0DictationSentences[id]?.sentence ?? + (target.contains('[') ? null : target); diff --git a/kouyu_english/lib/core/app_state.dart b/kouyu_english/lib/core/app_state.dart index ee1af97..1be2345 100644 --- a/kouyu_english/lib/core/app_state.dart +++ b/kouyu_english/lib/core/app_state.dart @@ -7,6 +7,7 @@ import 'package:shared_preferences/shared_preferences.dart'; import 'models.dart'; import 'a0_core.dart'; +import 'app_theme.dart'; import 'generated_content.dart'; import 'local_store.dart'; import 'review_feedback.dart'; @@ -31,6 +32,7 @@ abstract class _AppStateData extends ChangeNotifier { bool onboardingComplete = false; bool showChineseHints = true; bool keepRecordings = false; + AppThemeMode themeMode = AppThemeMode.system; int completedLessons = 0; String activeLessonId = 'a0-01'; @@ -248,6 +250,12 @@ class AppState extends _AppStateData notifyListeners(); } + void setThemeMode(AppThemeMode value) { + if (themeMode == value) return; + themeMode = value; + notifyListeners(); + } + void clearProgress() { completedLessons = 0; activeLessonId = 'a0-01'; diff --git a/kouyu_english/lib/core/app_state_review.dart b/kouyu_english/lib/core/app_state_review.dart index 6732150..c4c631b 100644 --- a/kouyu_english/lib/core/app_state_review.dart +++ b/kouyu_english/lib/core/app_state_review.dart @@ -81,6 +81,9 @@ mixin _ReviewAndMastery on _AppStateData { ReviewItem item, { required bool assisted, String? rawAnswer, + String inputMode = 'text', + String? originalTranscript, + String? recordingPath, }) { final index = reviewQueue.indexWhere( (candidate) => candidate.id == item.id, @@ -142,6 +145,9 @@ mixin _ReviewAndMastery on _AppStateData { : EvidenceKind.independentSuccess, assisted: assisted, rawAnswer: rawAnswer, + inputMode: inputMode, + originalTranscript: originalTranscript, + recordingPath: recordingPath, ); if (assisted) { _recordEvidence(current.id, EvidenceKind.assisted); @@ -207,20 +213,28 @@ mixin _ReviewAndMastery on _AppStateData { required EvidenceKind outcome, bool assisted = false, String? rawAnswer, + String inputMode = 'text', + String? originalTranscript, + String? recordingPath, }) { final now = DateTime.now(); + final spoken = originalTranscript != null; attemptEvidence.add( AttemptEvidence( id: 'review-${item.id}-${now.microsecondsSinceEpoch}', itemId: item.id, taskId: 'review-${item.id}', skill: item.skill, - inputMode: 'text', + inputMode: inputMode, outcome: outcome, createdAt: now, rawAnswer: rawAnswer, + recordingPath: recordingPath, assisted: assisted, variantIndex: item.variantIndex, + originalTranscript: originalTranscript, + transcriptConfirmed: spoken && originalTranscript == rawAnswer, + transcriptEdited: spoken && originalTranscript != rawAnswer, ), ); } @@ -315,6 +329,10 @@ mixin _ReviewAndMastery on _AppStateData { reviewQueue[index] = current.copyWith( prompt: variant.prompt, hint: variant.expectedAnswer, + // An AI prompt is a written/spoken recall task, never dictation. + skill: a0CoreItems.containsKey(current.id) + ? coreReviewTemplate(current.id).skill + : null, variantIndex: current.variantIndex + 1, isAiGenerated: true, ); @@ -461,7 +479,13 @@ mixin _ReviewAndMastery on _AppStateData { } /// Skills whose success only shows the learner recognises the item. - static const _recognitionSkills = {'听辨识别', '阅读识别', '听力理解', '阅读理解'}; + static const _recognitionSkills = { + '听辨识别', + '阅读识别', + '听力理解', + '阅读理解', + dictationSkill, + }; /// Controlled lesson steps (follow-reading, scripted dialogue) are practice, /// not attempts to recall, so they never count as a valid answer. @@ -470,12 +494,12 @@ mixin _ReviewAndMastery on _AppStateData { (entry.taskId.endsWith('-speaking') || entry.taskId.endsWith('-dialogue')); - /// Use outside the lesson it was taught in: a free scene dialogue, an AI - /// adaptive task, or a review answered in a changed situation. + /// Use outside the lesson it was taught in: a free scene dialogue or an AI + /// adaptive task. A review only re-asks the item on its own, so however its + /// prompt is worded it is recall, not use in a situation. static bool _isContextUse(AttemptEvidence entry) => entry.taskId.startsWith('dialogue-scene-') || - entry.id.startsWith('adaptive-') || - (entry.taskId == 'review-${entry.itemId}' && entry.variantIndex >= 1); + entry.id.startsWith('adaptive-'); /// Learning engine 3.1: recognise = a recognition success; recall = an /// unaided spoken or written success; use = unaided use in a different diff --git a/kouyu_english/lib/core/app_state_snapshot.dart b/kouyu_english/lib/core/app_state_snapshot.dart index 9d4c7ab..dfe00d2 100644 --- a/kouyu_english/lib/core/app_state_snapshot.dart +++ b/kouyu_english/lib/core/app_state_snapshot.dart @@ -15,6 +15,9 @@ extension _AppStateSnapshot on AppState { dailyMinutes = data['dailyMinutes'] as int? ?? dailyMinutes; showChineseHints = data['showChineseHints'] as bool? ?? showChineseHints; keepRecordings = data['keepRecordings'] as bool? ?? keepRecordings; + themeMode = + AppThemeMode.values.asNameMap()[data['themeMode'] as String?] ?? + themeMode; aiEndpoint = data['aiEndpoint'] as String? ?? aiEndpoint; aiModel = data['aiModel'] as String? ?? aiModel; cachedAdaptiveLessonRaw = data['cachedAdaptiveLessonRaw'] as String?; @@ -284,6 +287,7 @@ extension _AppStateSnapshot on AppState { 'dailyMinutes': dailyMinutes, 'showChineseHints': showChineseHints, 'keepRecordings': keepRecordings, + 'themeMode': themeMode.name, 'aiEndpoint': aiEndpoint, 'aiModel': aiModel, 'cachedAdaptiveLessonRaw': cachedAdaptiveLessonRaw, diff --git a/kouyu_english/lib/core/app_theme.dart b/kouyu_english/lib/core/app_theme.dart index c446cf3..44c82e5 100644 --- a/kouyu_english/lib/core/app_theme.dart +++ b/kouyu_english/lib/core/app_theme.dart @@ -1,57 +1,136 @@ import 'package:flutter/material.dart'; -abstract final class AppColors { - static const paper = Color(0xFFF5F7F3); - static const surface = Colors.white; - static const surfaceMuted = Color(0xFFF1F5F0); - static const ink = Color(0xFF19211B); - static const muted = Color(0xFF647268); - static const line = Color(0xFFD8E1D9); - static const green = Color(0xFF176B46); - static const softGreen = Color(0xFFE2F3E8); - static const warm = Color(0xFFFFF0E3); - static const warmInk = Color(0xFF9E4C18); +/// User's theme preference, persisted in the learning snapshot. +enum AppThemeMode { system, light, dark } + +/// One brightness worth of brand colours. Two const instances below hold the +/// light and dark values; [AppColors] mirrors the active one so the many +/// widgets that read `AppColors.x` directly recolour when the theme changes. +class _Palette { + const _Palette({ + required this.paper, + required this.surface, + required this.surfaceMuted, + required this.ink, + required this.muted, + required this.line, + required this.green, + required this.softGreen, + required this.warm, + required this.warmInk, + }); + + final Color paper; + final Color surface; + final Color surfaceMuted; + final Color ink; + final Color muted; + final Color line; + final Color green; + final Color softGreen; + final Color warm; + final Color warmInk; } -ThemeData buildAppTheme() { +const _light = _Palette( + paper: Color(0xFFF5F7F3), + surface: Colors.white, + surfaceMuted: Color(0xFFF1F5F0), + ink: Color(0xFF19211B), + muted: Color(0xFF647268), + line: Color(0xFFD8E1D9), + green: Color(0xFF176B46), + softGreen: Color(0xFFE2F3E8), + warm: Color(0xFFFFF0E3), + warmInk: Color(0xFF9E4C18), +); + +const _dark = _Palette( + paper: Color(0xFF11150F), + surface: Color(0xFF1B211A), + surfaceMuted: Color(0xFF232B22), + ink: Color(0xFFE8EEE6), + muted: Color(0xFF9CA99D), + line: Color(0xFF33402F), + green: Color(0xFF2FA36B), + softGreen: Color(0xFF17311F), + warm: Color(0xFF352618), + warmInk: Color(0xFFEBAA78), +); + +/// Brand colours for the active brightness. Values are reassigned by +/// [AppColors.applyBrightness]; call it before building the widget tree. +abstract final class AppColors { + static Color paper = _light.paper; + static Color surface = _light.surface; + static Color surfaceMuted = _light.surfaceMuted; + static Color ink = _light.ink; + static Color muted = _light.muted; + static Color line = _light.line; + static Color green = _light.green; + static Color softGreen = _light.softGreen; + static Color warm = _light.warm; + static Color warmInk = _light.warmInk; + + static Brightness brightness = Brightness.light; + + static void applyBrightness(Brightness value) { + final p = value == Brightness.dark ? _dark : _light; + brightness = value; + paper = p.paper; + surface = p.surface; + surfaceMuted = p.surfaceMuted; + ink = p.ink; + muted = p.muted; + line = p.line; + green = p.green; + softGreen = p.softGreen; + warm = p.warm; + warmInk = p.warmInk; + } +} + +ThemeData buildAppTheme(Brightness brightness) { + final p = brightness == Brightness.dark ? _dark : _light; final scheme = ColorScheme.fromSeed( - seedColor: AppColors.green, - brightness: Brightness.light, + seedColor: p.green, + brightness: brightness, ).copyWith( - surface: AppColors.surface, - onSurface: AppColors.ink, - primary: AppColors.green, + surface: p.surface, + onSurface: p.ink, + primary: p.green, onPrimary: Colors.white, - outline: AppColors.line, + outline: p.line, ); return ThemeData( useMaterial3: true, + brightness: brightness, colorScheme: scheme, - scaffoldBackgroundColor: AppColors.paper, + scaffoldBackgroundColor: p.paper, fontFamily: 'PingFang SC', - appBarTheme: const AppBarTheme( - backgroundColor: AppColors.surface, - foregroundColor: AppColors.ink, + appBarTheme: AppBarTheme( + backgroundColor: p.surface, + foregroundColor: p.ink, elevation: 0, centerTitle: false, ), - textTheme: const TextTheme( + textTheme: TextTheme( headlineMedium: TextStyle( - color: AppColors.ink, + color: p.ink, fontSize: 26, height: 1.25, fontWeight: FontWeight.w600, letterSpacing: -0.6, ), titleLarge: TextStyle( - color: AppColors.ink, + color: p.ink, fontSize: 18, fontWeight: FontWeight.w600, ), - bodyLarge: TextStyle(color: AppColors.ink, fontSize: 16, height: 1.5), - bodyMedium: TextStyle(color: AppColors.muted, fontSize: 14, height: 1.5), + bodyLarge: TextStyle(color: p.ink, fontSize: 16, height: 1.5), + bodyMedium: TextStyle(color: p.muted, fontSize: 14, height: 1.5), ), ); } diff --git a/kouyu_english/lib/core/review_feedback.dart b/kouyu_english/lib/core/review_feedback.dart index 21833c5..f70b458 100644 --- a/kouyu_english/lib/core/review_feedback.dart +++ b/kouyu_english/lib/core/review_feedback.dart @@ -1,5 +1,6 @@ import 'a0_core.dart'; import 'models.dart'; +import 'speech_compare.dart'; class ReviewCheckResult { const ReviewCheckResult({required this.complete, required this.message}); @@ -22,6 +23,20 @@ class ReviewFeedback { .trim(); static ReviewCheckResult check(ReviewItem item, String input) { + final dictation = item.skill == dictationSkill + ? a0DictationSentences[item.id] + : null; + if (dictation != null) { + final comparison = compareSpoken(dictation.sentence, input); + final missing = comparison.total - comparison.heardCount; + final wrong = missing + comparison.extraWords.length; + return ReviewCheckResult( + complete: comparison.matches, + message: comparison.matches + ? '听写正确。' + : '有 $wrong 处和听到的句子不一致。再听一次,检查拼写和漏掉的词。', + ); + } final complete = a0CoreItems.containsKey(item.id) // A word review checks the word it actually shows. ? coreItemUsedIn(item.id, input, word: item.target) @@ -102,7 +117,7 @@ bool coreItemUsedIn(String id, String input, {String? word}) { has("o'clock") || has('oclock') || phrase("o'clock")), - 'A0-P18' => introduction && has('like') && tokens.length >= 3, + 'A0-P18' => (phrase('i like') || phrase('i love')) && tokens.length >= 3, 'A0-P19' => phrase('do you like'), 'A0-P20' => phrase('please say that again') || phrase('please speak slowly'), diff --git a/kouyu_english/lib/core/seed_courses.dart b/kouyu_english/lib/core/seed_courses.dart index 08748a3..5583de3 100644 --- a/kouyu_english/lib/core/seed_courses.dart +++ b/kouyu_english/lib/core/seed_courses.dart @@ -281,6 +281,14 @@ const a0SeedLessons = [ example: 'Nice to meet you, too.', exampleMeaning: '我也很高兴认识你。', ), + VocabularyItem( + id: 'a0-01-thanks', + word: 'thanks', + meaning: '谢谢', + example: 'Thanks. Nice to meet you, too.', + exampleMeaning: '谢谢。我也很高兴认识你。', + ipa: '/θæŋks/', + ), ], ), SeedLesson( @@ -405,6 +413,14 @@ const a0SeedLessons = [ example: 'What’s this? It’s a key.', exampleMeaning: '这是什么?这是钥匙。', ), + VocabularyItem( + id: 'a0-05-bag', + word: 'bag', + meaning: '包', + example: 'It’s a bag.', + exampleMeaning: '这是一个包。', + ipa: '/bæɡ/', + ), ], ), SeedLesson( @@ -451,6 +467,22 @@ const a0SeedLessons = [ example: 'This is my mother.', exampleMeaning: '这是我的妈妈。', ), + VocabularyItem( + id: 'a0-07-sister', + word: 'sister', + meaning: '姐妹', + example: 'This is my sister.', + exampleMeaning: '这是我的姐姐(或妹妹)。', + ipa: '/ˈsɪstə(r)/', + ), + VocabularyItem( + id: 'a0-07-brother', + word: 'brother', + meaning: '兄弟', + example: 'This is my brother.', + exampleMeaning: '这是我的哥哥(或弟弟)。', + ipa: '/ˈbrʌðə(r)/', + ), ], ), SeedLesson( @@ -496,14 +528,38 @@ const a0SeedLessons = [ example: 'Do you like tea?', exampleMeaning: '你喜欢茶吗?', ), + VocabularyItem( + id: 'a0-09-music', + word: 'music', + meaning: '音乐', + example: 'I like music.', + exampleMeaning: '我喜欢音乐。', + ipa: '/ˈmjuːzɪk/', + ), + VocabularyItem( + id: 'a0-09-movies', + word: 'movies', + meaning: '电影', + example: 'Do you like movies?', + exampleMeaning: '你喜欢看电影吗?', + ipa: '/ˈmuːviz/', + ), ], ), SeedLesson( id: 'a0-10', number: 10, title: 'A0 综合任务', - outcome: '完成自我介绍、喜好和反问', + outcome: '没听清时请对方重复,并完成自我介绍、喜好和反问', vocabulary: [ + VocabularyItem( + id: 'a0-10-water', + word: 'water', + meaning: '水', + example: 'I like water.', + exampleMeaning: '我喜欢喝水。', + ipa: '/ˈwɔːtər/', + ), VocabularyItem( id: 'a0-10-again', word: 'Please say that again.', @@ -531,6 +587,7 @@ class LessonActivity { required this.listeningQuestion, required this.answers, required this.speaking, + this.speakingTip = '', required this.reading, required this.readingQuestion, required this.readingAnswer, @@ -544,6 +601,9 @@ class LessonActivity { final String listeningQuestion; final List answers; final String speaking; + + /// 这句跟读的发音提示;为空时不显示,避免给每一句套用同一条提示。 + final String speakingTip; final String reading; final String readingQuestion; final String readingAnswer; @@ -587,7 +647,7 @@ const a0Activities = { answers: ['自我介绍', '买东西', '问时间'], speaking: 'Hello. I’m Shen. Nice to meet you.', reading: - 'Mia: Hello. I’m Mia. What’s your name?\nShen: Hi. I’m Shen.\nMia: Nice to meet you.\nShen: Nice to meet you, too.', + 'Mia: Hello. I’m Mia. What’s your name?\nShen: Hi. I’m Shen.\nMia: Nice to meet you.\nShen: Thanks. Nice to meet you, too.', readingQuestion: 'Shen 说的最后一句是什么?', readingAnswer: 'Nice to meet you, too.', readingOptions: [ @@ -605,6 +665,7 @@ const a0Activities = { listeningQuestion: '这句话是什么意思?', answers: ['你的名字怎么拼?', '你的名字是什么?', '你来自哪里?'], speaking: 'S H E N', + speakingTip: '字母之间留一个短停顿:S /es/ - H /eɪtʃ/ - E /iː/ - N /en/。先清楚,不必快。', reading: 'Mia: I’m Mia. M-I-A.\nShen: Hi, Mia. I’m Shen. S-H-E-N.\nMia: How do you spell Sam?\nShen: S-A-M.', readingQuestion: 'Shen 自己的名字怎么拼写?', @@ -635,6 +696,7 @@ const a0Activities = { listeningQuestion: '你听到的是哪个号码?', answers: ['138', '183', '318'], speaking: 'My number is one-three-eight.', + speakingTip: '号码一个数字一个数字地读,数字之间稍停:one - three - eight。', reading: 'Mia: What’s your phone number?\nShen: My number is one-three-eight.\nMia: One-eight-three?\nShen: No. One-three-eight.', readingQuestion: 'Shen 的号码到底是哪一个?', @@ -650,10 +712,11 @@ const a0Activities = { listeningQuestion: '这是什么?', answers: ['钥匙', '书', '水'], speaking: 'What’s this? It’s a pen.', - reading: 'Mia: What’s this? Is it a pen?\nShen: No. It’s a book.', - readingQuestion: 'Shen 说那件东西是什么?', + reading: + 'Mia: What’s this? Is it a pen?\nShen: No. It’s a book.\nMia: And what’s this?\nShen: It’s a bag.', + readingQuestion: 'Shen 说第一件东西是什么?', readingAnswer: 'A book', - readingOptions: ['A book', 'A pen', 'A phone'], + readingOptions: ['A book', 'A pen', 'A bag'], writingPrompt: '写一句“这是一支笔”。', writingExample: 'It’s a pen.', independentPrompt: '不看句框,说出一个身边物品。', @@ -680,10 +743,10 @@ const a0Activities = { answers: ['妈妈', '朋友', '老师'], speaking: 'This is my family.', reading: - 'Mia: Who is this? Is this your father?\nShen: No. This is my mother.', - readingQuestion: 'Shen 介绍的是哪一位家人?', + 'Mia: Who is this? Is this your father?\nShen: No. This is my mother.\nMia: And who is this? Your sister?\nShen: No. This is my brother.', + readingQuestion: 'Shen 先介绍的是哪一位家人?', readingAnswer: 'My mother', - readingOptions: ['My mother', 'My father', 'My sister'], + readingOptions: ['My mother', 'My brother', 'My father'], writingPrompt: '介绍一位家人或朋友。', writingExample: 'This is my mother.', independentPrompt: '不看句框,介绍一位家人或朋友。', @@ -694,6 +757,7 @@ const a0Activities = { listeningQuestion: '是什么时间?', answers: ['星期一三点', '星期三一点', '星期一一点'], speaking: 'It’s three o’clock.', + speakingTip: 'o’clock 读作 /əˈklɒk/,前面的 o 很轻。', reading: 'Mia: What day is it today? Is it Tuesday?\nShen: No. It’s Monday.', readingQuestion: '对话中今天到底是星期几?', @@ -710,7 +774,7 @@ const a0Activities = { answers: ['喜欢', '不喜欢', '不知道'], speaking: 'I like tea. Do you like tea?', reading: - 'Mia: I like tea. Do you like tea?\nShen: No, I don’t. I like coffee.', + 'Mia: I like tea. Do you like tea?\nShen: No, I don’t. I like coffee and music.\nMia: Do you like movies?\nShen: Yes, I do.', readingQuestion: 'Shen 喜欢喝什么?', readingAnswer: 'Coffee', readingOptions: ['Coffee', 'Tea', 'Music'], @@ -720,19 +784,21 @@ const a0Activities = { independentHelp: 'I like … / Do you like …?', ), 'a0-10': LessonActivity( - listening: 'Please say that again.', - listeningQuestion: '对方希望什么?', - answers: ['再说一遍', '说慢一点', '写下来'], - speaking: 'Please speak slowly.', + listening: 'Do you like water? Sorry, please say that again.', + listeningQuestion: '第二个人希望对方做什么?', + answers: ['再说一遍', '说慢一点', '给他一杯水'], + speaking: 'Sorry, please say that again. I like water.', + speakingTip: 'water 的 t 常读得很轻,像轻轻的 d。先清楚,不必快。', reading: - 'Alex: Hi! I’m Alex. What’s your name?\nShen: Hi! I’m Shen. Nice to meet you.\nAlex: Nice to meet you, too. Where are you from?\nShen: I’m from Hong Kong. Where are you from?\nAlex: I’m from London. Do you like coffee?\nShen: No, I don’t. I like tea.', - readingQuestion: 'Shen 来自哪里、喜欢喝什么?', - readingAnswer: 'Hong Kong, tea', - readingOptions: ['Hong Kong, tea', 'London, coffee', 'Hong Kong, coffee'], - writingPrompt: '写姓名、地点和喜好三句。', - writingExample: 'I’m Shen.\nI’m from Hong Kong.\nI like tea.', - independentPrompt: '不看帮助,完成姓名、地点、喜好和反问。', - independentHelp: 'I’m … / I’m from … / I like …', + 'Alex: Hi! I’m Alex. Where are you from?\nShen: Sorry? Please say that again.\nAlex: Where are you from?\nShen: I’m from Hong Kong. Do you like coffee?\nAlex: No, I don’t. I like water.', + readingQuestion: 'Alex 喜欢喝什么?', + readingAnswer: 'Water', + readingOptions: ['Water', 'Coffee', 'Tea'], + writingPrompt: '写姓名、地点和喜好三句,喜好用 water。', + writingExample: 'I’m Shen.\nI’m from Hong Kong.\nI like water.', + independentPrompt: '不看帮助:先请对方再说一遍,再说姓名、喜欢喝什么,并反问对方。', + independentHelp: + 'Please say that again. / I’m … / I like water. / Do you like …?', ), }; @@ -774,6 +840,7 @@ const a0SegmentActivities = { listeningQuestion: '号码是多少?', answers: ['138', '183', '318'], speaking: 'My number is one-three-eight.', + speakingTip: '号码一个数字一个数字地读,数字之间稍停:one - three - eight。', reading: 'Mia: What’s your phone number?\nShen: My number is five-zero-two.\nMia: Five-two-zero?\nShen: No. Five-zero-two.', readingQuestion: 'Shen 最后确认的号码是哪一个?', @@ -1187,10 +1254,10 @@ const a0IndependentRequiredTerms = >>{ ['i like', 'i love'], ['do you like', '#question'], ], - // 完成姓名、地点、喜好和反问 + // 请对方重复,完成姓名、喜好和反问 'a0-10': [ + ['say that again', 'speak slowly', 'pardon'], _introductionTerms, - ["i'm from", 'i am from', 'from + #word'], ['i like', 'i love'], ['#question'], ], @@ -1690,19 +1757,19 @@ const a0Dialogues = { 'Say: Please say that again.', 'Say: Please speak slowly.', 'Now ask me your name or where I am from.', - 'Say one thing you like.', + 'Tell me what you like to drink.', ], hints: [ 'Please say that again.', 'Please speak slowly.', 'What’s your name?', - 'I like tea.', + 'I like water.', ], translations: [ '请说:Please say that again(请再说一遍)。', '请说:Please speak slowly(请说慢一点)。', '现在请问我的名字或我来自哪里。', - '请说一件你喜欢的事物。', + '告诉我你喜欢喝什么。', ], requiredTerms: [ ['say that again', 'again', 'pardon'], @@ -1716,7 +1783,7 @@ const a0Dialogues = { ], ['i like', 'i love'], ], - taskLabels: ['请求对方重复', '请求对方放慢语速', '反问名字或来自哪里', '说出一件你喜欢的事物'], + taskLabels: ['请求对方重复', '请求对方放慢语速', '反问名字或来自哪里', '说出你喜欢喝什么'], ), }; diff --git a/kouyu_english/lib/core/speech_compare.dart b/kouyu_english/lib/core/speech_compare.dart new file mode 100644 index 0000000..76d3149 --- /dev/null +++ b/kouyu_english/lib/core/speech_compare.dart @@ -0,0 +1,149 @@ +/// 把设备转写和示范句逐词对照。这不是发音评分:转写只说明“机器听成了什么”, +/// 用来提示学习者哪些词没被听出来,值得再听示范、再说一次。 +class SpokenWord { + const SpokenWord(this.text, {required this.heard}); + + /// 示范句中的原词(保留大小写和标点,便于直接显示)。 + final String text; + final bool heard; +} + +class SpokenComparison { + const SpokenComparison({required this.words, required this.extraWords}); + + final List words; + + /// 转写里出现、但示范句没有的词。 + final List extraWords; + + int get heardCount => words.where((word) => word.heard).length; + int get total => words.length; + List get missedWords => [ + for (final word in words) + if (!word.heard) word.text, + ]; + + /// 全部听出且没有多余词。 + bool get matches => total > 0 && heardCount == total && extraWords.isEmpty; + + /// 大部分词被听出(≥ 80%)。 + bool get close => total > 0 && heardCount / total >= 0.8; +} + +const _digitWords = [ + 'zero', + 'one', + 'two', + 'three', + 'four', + 'five', + 'six', + 'seven', + 'eight', + 'nine', +]; + +const _contractions = { + "i'm": ['i', 'am'], + "it's": ['it', 'is'], + "what's": ['what', 'is'], + "that's": ['that', 'is'], + "he's": ['he', 'is'], + "she's": ['she', 'is'], + "name's": ['name', 'is'], + "don't": ['do', 'not'], + "you're": ['you', 'are'], +}; + +/// 一个显示词对应的比较单位。例如 "I’m" 展开为 i/am,"138" 展开为 +/// one/three/eight,"o’clock" 统一为 oclock。 +List _unitsOf(String raw) { + var word = raw + .toLowerCase() + .replaceAll(RegExp(r'[‘’`´]'), "'") + .replaceAll(RegExp(r"[^a-z0-9']"), ''); + word = word.replaceAll(RegExp(r"^'+|'+$"), ''); + if (word.isEmpty) return const []; + if (word == "o'clock") return const ['oclock']; + final expanded = _contractions[word]; + if (expanded != null) return expanded; + if (RegExp(r'^\d+$').hasMatch(word)) { + return [for (final digit in word.split('')) _digitWords[int.parse(digit)]]; + } + return [word.replaceAll("'", '')]; +} + +List _displayWords(String text) => text + .replaceAll(RegExp(r'[-–—/]'), ' ') + .split(RegExp(r'\s+')) + .where((word) => _unitsOf(word).isNotEmpty) + .toList(); + +List _heardUnits(String transcript) => [ + for (final word in _displayWords(transcript)) ..._unitsOf(word), +]; + +SpokenComparison compareSpoken(String expected, String transcript) { + final display = _displayWords(expected); + final expectedUnits = []; + final owner = []; + for (var index = 0; index < display.length; index++) { + for (final unit in _unitsOf(display[index])) { + expectedUnits.add(unit); + owner.add(index); + } + } + var heard = _heardUnits(transcript); + // 拼读时转写常把字母连成一个词(S H E N → Shen),拆回单个字母。 + final spellsLetters = + expectedUnits.isNotEmpty && + expectedUnits.every((unit) => RegExp(r'^[a-z]$').hasMatch(unit)); + if (spellsLetters) { + heard = [for (final unit in heard) ...unit.split('')]; + } + + // 最长公共子序列:保持词序,重复词也能正确对齐。 + final n = expectedUnits.length; + final m = heard.length; + final table = List.generate(n + 1, (_) => List.filled(m + 1, 0)); + for (var i = n - 1; i >= 0; i--) { + for (var j = m - 1; j >= 0; j--) { + table[i][j] = expectedUnits[i] == heard[j] + ? table[i + 1][j + 1] + 1 + : (table[i + 1][j] >= table[i][j + 1] + ? table[i + 1][j] + : table[i][j + 1]); + } + } + final unitHeard = List.filled(n, false); + final heardUsed = List.filled(m, false); + var i = 0; + var j = 0; + while (i < n && j < m) { + if (expectedUnits[i] == heard[j]) { + unitHeard[i] = true; + heardUsed[j] = true; + i++; + j++; + } else if (table[i + 1][j] >= table[i][j + 1]) { + i++; + } else { + j++; + } + } + + final wordHeard = List.filled(display.length, true); + for (var unit = 0; unit < n; unit++) { + if (!unitHeard[unit]) wordHeard[owner[unit]] = false; + } + return SpokenComparison( + words: [ + for (var index = 0; index < display.length; index++) + SpokenWord(display[index], heard: wordHeard[index]), + ], + extraWords: [ + for (var index = 0; index < m; index++) + if (!heardUsed[index]) heard[index], + ], + ); +} diff --git a/kouyu_english/lib/core/writing_feedback.dart b/kouyu_english/lib/core/writing_feedback.dart index f6906b1..e755056 100644 --- a/kouyu_english/lib/core/writing_feedback.dart +++ b/kouyu_english/lib/core/writing_feedback.dart @@ -77,7 +77,8 @@ class WritingFeedback { ]) || has('clock')), 'a0-09' => hasIntroduction && has('like') && words.length >= 3, - 'a0-10' => hasIntroduction && has('from') && has('like'), + 'a0-10' => + hasIntroduction && has('from') && has('like') && has('water'), _ => words.length >= 2, }, }; @@ -113,7 +114,7 @@ class WritingFeedback { 'a0-07' => '用 This is my … 介绍一位家人或朋友。', 'a0-08' => '用 It’s … 写一个星期或整点时间。', 'a0-09' => '用 I like … 写出一种喜好。', - 'a0-10' => '分别写姓名、来自哪里和一项喜好三部分。', + 'a0-10' => '分别写姓名、来自哪里和喜好三部分,喜好用 water:I like water.', _ => '再补充一个完整英文句子。', }; } diff --git a/kouyu_english/lib/features/assessment/assessment_page.dart b/kouyu_english/lib/features/assessment/assessment_page.dart index f12d58b..90867f9 100644 --- a/kouyu_english/lib/features/assessment/assessment_page.dart +++ b/kouyu_english/lib/features/assessment/assessment_page.dart @@ -77,7 +77,7 @@ class _AssessmentPreparationPageState extends State { '这些数字帮助你判断准备程度,但不会替代本次评估。', ), ), - const SectionCard( + SectionCard( tint: AppColors.warm, child: Text( '评估规则\n' diff --git a/kouyu_english/lib/features/dialogue/dialogue_flow.dart b/kouyu_english/lib/features/dialogue/dialogue_flow.dart index 1437318..a1bbfd1 100644 --- a/kouyu_english/lib/features/dialogue/dialogue_flow.dart +++ b/kouyu_english/lib/features/dialogue/dialogue_flow.dart @@ -90,7 +90,7 @@ class _OpenScene extends StatelessWidget { ), Text( recommended ? 'A0 · 推荐' : 'A0', - style: const TextStyle(color: AppColors.green), + style: TextStyle(color: AppColors.green), ), ], ), @@ -111,7 +111,7 @@ class _LockedScene extends StatelessWidget { Widget build(BuildContext context) => SectionCard( child: Row( children: [ - const Icon(Icons.lock_outline, color: AppColors.muted), + Icon(Icons.lock_outline, color: AppColors.muted), const SizedBox(width: 10), Expanded( child: Column( @@ -686,7 +686,7 @@ class _DialoguePageState extends State tint: AppColors.warm, child: Text( hint!, - style: const TextStyle(color: AppColors.warmInk), + style: TextStyle(color: AppColors.warmInk), ), ), if (aiNotice != null) @@ -694,7 +694,7 @@ class _DialoguePageState extends State tint: AppColors.warm, child: Row( children: [ - const Icon( + Icon( Icons.cloud_off_outlined, size: 18, color: AppColors.warmInk, @@ -703,7 +703,7 @@ class _DialoguePageState extends State Expanded( child: Text( aiNotice!, - style: const TextStyle( + style: TextStyle( color: AppColors.warmInk, fontSize: 13, ), @@ -715,7 +715,7 @@ class _DialoguePageState extends State if (validationError != null) Text( validationError!, - style: const TextStyle(color: AppColors.warmInk), + style: TextStyle(color: AppColors.warmInk), ), TextField( controller: controller, @@ -757,7 +757,7 @@ class _DialoguePageState extends State transcriptEdited ? '你修改了设备转写:这轮按文字作答保存。' : '这是设备转写;未修改提交后会作为语音尝试保存。', - style: const TextStyle(color: AppColors.muted, fontSize: 12), + style: TextStyle(color: AppColors.muted, fontSize: 12), ), RecordingControls( recording: recording, @@ -771,9 +771,9 @@ class _DialoguePageState extends State widget.state.keepRecordings ? '录音只保存在本机,不会发送给 AI。' : '录音仅供本次回听,离开后自动删除。', - style: const TextStyle(color: AppColors.muted, fontSize: 12), + style: TextStyle(color: AppColors.muted, fontSize: 12), ), - const Text( + Text( '文字输入可完成教学对话;即使使用语音输入,本受控教学对话也不会单独记为独立口语证据。', style: TextStyle(color: AppColors.muted, fontSize: 12), ), @@ -792,7 +792,7 @@ class _DialoguePageState extends State tint: AppColors.warm, child: Text( '下次可以注意:${latestFeedback!}', - style: const TextStyle(color: AppColors.warmInk), + style: TextStyle(color: AppColors.warmInk), ), ), PrimaryButton( @@ -916,7 +916,7 @@ class _TurnAction extends StatelessWidget { const SizedBox(width: 4), Text( label, - style: const TextStyle( + style: TextStyle( fontSize: 12, color: AppColors.green, fontWeight: FontWeight.w500, @@ -935,7 +935,7 @@ class _AssistChip extends StatelessWidget { Widget build(BuildContext context) => ActionChip( label: Text(label), backgroundColor: AppColors.surface, - side: const BorderSide(color: AppColors.line), + side: BorderSide(color: AppColors.line), onPressed: onTap, ); } diff --git a/kouyu_english/lib/features/home/home_page.dart b/kouyu_english/lib/features/home/home_page.dart index 3382657..cd61a88 100644 --- a/kouyu_english/lib/features/home/home_page.dart +++ b/kouyu_english/lib/features/home/home_page.dart @@ -62,7 +62,7 @@ class HomePage extends StatelessWidget { SectionCard( child: Row( children: [ - const Icon(Icons.psychology_outlined, color: AppColors.green), + Icon(Icons.psychology_outlined, color: AppColors.green), const SizedBox(width: 10), Expanded( child: Text( @@ -92,7 +92,7 @@ class HomePage extends StatelessWidget { isReview ? '${(count * 2).clamp(2, 10)} 分钟' : stageStep?.minutes ?? '12 分钟', - style: const TextStyle(color: AppColors.green), + style: TextStyle(color: AppColors.green), ), ], ), @@ -195,7 +195,7 @@ class _FrameworkNote extends StatelessWidget { color: AppColors.warm, borderRadius: BorderRadius.circular(14), ), - child: const Row( + child: Row( children: [ Icon(Icons.info_outline, color: AppColors.warmInk), SizedBox(width: 8), diff --git a/kouyu_english/lib/features/lesson/lesson_flow.dart b/kouyu_english/lib/features/lesson/lesson_flow.dart index 75181b1..4b5311c 100644 --- a/kouyu_english/lib/features/lesson/lesson_flow.dart +++ b/kouyu_english/lib/features/lesson/lesson_flow.dart @@ -5,6 +5,7 @@ import '../../core/ai_service.dart'; import '../../core/app_theme.dart'; import '../../core/models.dart'; import '../../core/seed_courses.dart'; +import '../../core/speech_compare.dart'; import '../../core/voice_service.dart'; import '../../core/writing_feedback.dart'; import '../../widgets/app_widgets.dart'; @@ -112,6 +113,7 @@ class _LessonFlowState extends State { correctAnswer: activity.answers.first, selectedAnswer: selectedAnswer, audioPlayed: listeningAudioPlayed, + missed: listeningMissed, onSelected: (value) => setState(() { selectedAnswer = value; if (listeningOptions[value] != activity.answers.first) { @@ -119,11 +121,14 @@ class _LessonFlowState extends State { } }), onPlayed: () => setState(() => listeningAudioPlayed = true), - onLookup: () => showLexiconLookup( - context, - state: widget.state, - initialText: activity.listening, - ), + onLookup: () { + setState(() => listeningMissed = true); + showLexiconLookup( + context, + state: widget.state, + initialText: activity.listening, + ); + }, onContinue: selectedAnswer >= 0 && listeningOptions[selectedAnswer] == activity.answers.first @@ -135,6 +140,7 @@ class _LessonFlowState extends State { content = _SpeakingStep( state: widget.state, text: activity.speaking, + tip: activity.speakingTip, keepRecording: widget.state.keepRecordings, onContinue: widget.state.completeSpeaking, ); diff --git a/kouyu_english/lib/features/lesson/steps/independent_step.dart b/kouyu_english/lib/features/lesson/steps/independent_step.dart index 890c691..70df391 100644 --- a/kouyu_english/lib/features/lesson/steps/independent_step.dart +++ b/kouyu_english/lib/features/lesson/steps/independent_step.dart @@ -190,7 +190,7 @@ class _IndependentStepState extends State<_IndependentStep> tint: AppColors.warm, child: Text( validationError!, - style: const TextStyle(color: AppColors.warmInk), + style: TextStyle(color: AppColors.warmInk), ), ), if (!widget.showHelp) diff --git a/kouyu_english/lib/features/lesson/steps/listening_step.dart b/kouyu_english/lib/features/lesson/steps/listening_step.dart index cdcd118..4cca1d7 100644 --- a/kouyu_english/lib/features/lesson/steps/listening_step.dart +++ b/kouyu_english/lib/features/lesson/steps/listening_step.dart @@ -8,6 +8,7 @@ class _ListeningStep extends StatelessWidget { required this.correctAnswer, required this.selectedAnswer, required this.audioPlayed, + required this.missed, required this.onSelected, required this.onPlayed, required this.onLookup, @@ -21,6 +22,9 @@ class _ListeningStep extends StatelessWidget { final int selectedAnswer; final bool audioPlayed; + + /// 选错过或查看过原文;此后可以看原文,但本题不再算独立听辨。 + final bool missed; final ValueChanged onSelected; final VoidCallback onPlayed; final VoidCallback onLookup; @@ -29,6 +33,9 @@ class _ListeningStep extends StatelessWidget { @override Widget build(BuildContext context) { final answers = options; + final answeredCorrectly = + selectedAnswer >= 0 && answers[selectedAnswer] == correctAnswer; + final revealText = answeredCorrectly || missed; return _LessonScaffold( step: 2, child: SpacedColumn( @@ -47,22 +54,23 @@ class _ListeningStep extends StatelessWidget { onPlayed: onPlayed, ), ), - TextButton.icon( - onPressed: onLookup, - icon: const Icon(Icons.menu_book_outlined), - label: const Text('查看词或短语'), - ), - if (audioPlayed) - SectionCard(child: LexiconText(activity.listening, state: state)), + if (!audioPlayed) + Text( + '先播放音频,听完再选择。原文会在作答后显示。', + style: TextStyle(color: AppColors.muted), + ), + if (revealText) + SectionCard(child: LexiconText(activity.listening, state: state)) + else if (audioPlayed) + TextButton.icon( + onPressed: onLookup, + icon: const Icon(Icons.menu_book_outlined), + label: const Text('听不懂,查看原文和词义(本题不计入听辨)'), + ), for (var index = 0; index < answers.length; index++) SectionCard( tint: selectedAnswer == index ? AppColors.softGreen : null, - onTap: () { - onSelected(index); - if (!audioPlayed) { - onPlayed(); - } - }, + onTap: audioPlayed ? () => onSelected(index) : null, child: Row( children: [ Icon( @@ -74,18 +82,23 @@ class _ListeningStep extends StatelessWidget { : AppColors.muted, ), const SizedBox(width: 10), - Text(answers[index]), + Text( + answers[index], + style: audioPlayed + ? null + : TextStyle(color: AppColors.muted), + ), ], ), ), PrimaryButton( label: selectedAnswer >= 0 ? '检查并继续' - : (audioPlayed ? '请选择答案' : '先播放音频或选择答案'), + : (audioPlayed ? '请选择答案' : '先播放音频'), onPressed: onContinue, ), if (selectedAnswer >= 0 && answers[selectedAnswer] != correctAnswer) - const Text( + Text( '再听一次,选择正确答案。', style: TextStyle(color: AppColors.warmInk), ), diff --git a/kouyu_english/lib/features/lesson/steps/reading_step.dart b/kouyu_english/lib/features/lesson/steps/reading_step.dart index a9463ad..de1263e 100644 --- a/kouyu_english/lib/features/lesson/steps/reading_step.dart +++ b/kouyu_english/lib/features/lesson/steps/reading_step.dart @@ -95,7 +95,7 @@ class _ReadingStepState extends State<_ReadingStep> { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - const Row( + Row( children: [ Icon( Icons.chat_bubble_outline, @@ -117,7 +117,7 @@ class _ReadingStepState extends State<_ReadingStep> { onTap: () => VoiceService.instance.speak(widget.activity.reading), borderRadius: BorderRadius.circular(16), - child: const Padding( + child: Padding( padding: EdgeInsets.symmetric( horizontal: 8, vertical: 4, @@ -194,7 +194,7 @@ class _ReadingStepState extends State<_ReadingStep> { color: AppColors.green.withValues(alpha: 0.12), borderRadius: BorderRadius.circular(6), ), - child: const Text( + child: Text( '问题', style: TextStyle( color: AppColors.green, @@ -207,7 +207,7 @@ class _ReadingStepState extends State<_ReadingStep> { Expanded( child: Text( widget.activity.readingQuestion, - style: const TextStyle( + style: TextStyle( fontSize: 15, fontWeight: FontWeight.w600, color: AppColors.ink, @@ -279,7 +279,7 @@ class _ReadingStepState extends State<_ReadingStep> { color: AppColors.green.withValues(alpha: 0.3), ), ), - child: const Row( + child: Row( children: [ Icon(Icons.check_circle, color: AppColors.green, size: 20), SizedBox(width: 8), @@ -309,7 +309,7 @@ class _ReadingStepState extends State<_ReadingStep> { color: AppColors.warmInk.withValues(alpha: 0.2), ), ), - child: const Row( + child: Row( children: [ Icon( Icons.help_outline, @@ -333,7 +333,7 @@ class _ReadingStepState extends State<_ReadingStep> { TextField( controller: controller, onChanged: (_) => setState(() {}), - decoration: const InputDecoration( + decoration: InputDecoration( hintText: '用英文输入答案', filled: true, fillColor: AppColors.surface, @@ -346,7 +346,7 @@ class _ReadingStepState extends State<_ReadingStep> { tint: AppColors.warm, child: Text( '答案:${widget.activity.readingAnswer}', - style: const TextStyle(color: AppColors.warmInk), + style: TextStyle(color: AppColors.warmInk), ), ), if (!showAnswer && diff --git a/kouyu_english/lib/features/lesson/steps/speaking_step.dart b/kouyu_english/lib/features/lesson/steps/speaking_step.dart index e0afe5a..b269b7d 100644 --- a/kouyu_english/lib/features/lesson/steps/speaking_step.dart +++ b/kouyu_english/lib/features/lesson/steps/speaking_step.dart @@ -4,10 +4,12 @@ class _SpeakingStep extends StatefulWidget { const _SpeakingStep({ required this.state, required this.text, + this.tip = '', required this.keepRecording, required this.onContinue, }); final String text; + final String tip; final AppState state; final bool keepRecording; final VoidCallback onContinue; @@ -78,21 +80,18 @@ class _SpeakingStepState extends State<_SpeakingStep> textAlign: TextAlign.center, style: const TextStyle(fontSize: 30, fontWeight: FontWeight.w600), ), - Text( - '/es - eɪtʃ - iː - en/', - style: Theme.of(context).textTheme.bodyMedium, - ), SectionCard( tint: AppColors.surfaceMuted, child: _AudioRow(label: '播放示范音', speech: widget.text), ), - const SectionCard( - tint: AppColors.warm, - child: Text( - '字母之间留一个短停顿。先清楚,不必快。', - style: TextStyle(color: AppColors.warmInk), + if (widget.tip.isNotEmpty) + SectionCard( + tint: AppColors.warm, + child: Text( + widget.tip, + style: TextStyle(color: AppColors.warmInk), + ), ), - ), SecondaryButton( label: transcribing ? '正在 AI 识别发音…' @@ -137,9 +136,11 @@ class _SpeakingStepState extends State<_SpeakingStep> ), ), if (transcript.isNotEmpty) - SectionCard(child: Text("设备转写:$transcript\n请确认它是否接近你刚才说的内容。")), + _SpokenComparisonCard(expected: widget.text, transcript: transcript), const SectionCard( - child: Text('转写不确定或与原句不符时,可重说或继续文字练习;这一步只算跟读练习,不作为独立口语证据。'), + child: Text( + '转写只反映机器听成了什么,不等于发音评分;没听出的词可以再听示范、重说一次。这一步只算跟读练习,不作为独立口语证据。', + ), ), PrimaryButton( label: transcript.isEmpty ? '我已跟读,继续' : '确认并继续', @@ -149,3 +150,54 @@ class _SpeakingStepState extends State<_SpeakingStep> ), ); } + +class _SpokenComparisonCard extends StatelessWidget { + const _SpokenComparisonCard({ + required this.expected, + required this.transcript, + }); + + final String expected; + final String transcript; + + @override + Widget build(BuildContext context) { + final result = compareSpoken(expected, transcript); + final summary = result.matches + ? '每个词都被听出来了。' + : result.close + ? '大部分词都被听出来了,橙色的词再练一次。' + : '有几个词没被听出来:先听示范,再慢一点说。'; + return SectionCard( + tint: result.close ? AppColors.softGreen : AppColors.warm, + child: SpacedColumn( + spacing: 8, + children: [ + Text('听出 ${result.heardCount}/${result.total} 个词。$summary'), + Wrap( + spacing: 6, + runSpacing: 6, + children: [ + for (final word in result.words) + Text( + word.text, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.w600, + color: word.heard ? AppColors.green : AppColors.warmInk, + decoration: word.heard + ? TextDecoration.none + : TextDecoration.underline, + ), + ), + ], + ), + Text( + '设备转写:$transcript', + style: Theme.of(context).textTheme.bodySmall, + ), + ], + ), + ); + } +} diff --git a/kouyu_english/lib/features/lesson/steps/writing_step.dart b/kouyu_english/lib/features/lesson/steps/writing_step.dart index e45de2d..cee2623 100644 --- a/kouyu_english/lib/features/lesson/steps/writing_step.dart +++ b/kouyu_english/lib/features/lesson/steps/writing_step.dart @@ -152,7 +152,7 @@ class _WritingStepState extends State<_WritingStep> { Text('还可补充:${aiFeedback!.missing.join('、')}'), if (aiFeedback!.suggestion != null) Text('可参考改写:${aiFeedback!.suggestion}'), - const Text( + Text( '这是学习帮助;请按自己的意思重写后再检查,系统不会仅凭 AI 建议记为掌握。', style: TextStyle(fontSize: 12, color: AppColors.muted), ), @@ -164,7 +164,7 @@ class _WritingStepState extends State<_WritingStep> { tint: AppColors.warm, child: Text( aiFeedbackError!, - style: const TextStyle(color: AppColors.warmInk), + style: TextStyle(color: AppColors.warmInk), ), ), if (result != null) diff --git a/kouyu_english/lib/features/onboarding/onboarding_pages.dart b/kouyu_english/lib/features/onboarding/onboarding_pages.dart index 9c26329..7281961 100644 --- a/kouyu_english/lib/features/onboarding/onboarding_pages.dart +++ b/kouyu_english/lib/features/onboarding/onboarding_pages.dart @@ -45,7 +45,7 @@ class _WelcomePageState extends State { ), ), const SizedBox(width: 12), - const Column( + Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( @@ -312,7 +312,7 @@ class _PlacementPageState extends State label: '播放示范音', onPressed: () => VoiceService.instance.speak(_readAloudText), ), - const SectionCard( + SectionCard( tint: AppColors.surfaceMuted, child: Text('这一题只是开口热身,不录音、不打分,可以跳过。'), ), diff --git a/kouyu_english/lib/features/progress/progress_pages.dart b/kouyu_english/lib/features/progress/progress_pages.dart index ce65326..e271bdd 100644 --- a/kouyu_english/lib/features/progress/progress_pages.dart +++ b/kouyu_english/lib/features/progress/progress_pages.dart @@ -130,14 +130,14 @@ class ProgressPage extends StatelessWidget { ], ), ), - const Icon(Icons.chevron_right, color: AppColors.muted), + Icon(Icons.chevron_right, color: AppColors.muted), ], ), ); }, ), if (state.a0Passed) - const SectionCard( + SectionCard( tint: AppColors.softGreen, child: Text('A0 已通过。A1 主线内容尚未提供,可继续进行 A0 巩固。'), ), @@ -311,6 +311,41 @@ class _SettingsPageState extends State { activeThumbColor: AppColors.green, onChanged: widget.state.toggleKeepRecordings, ), + Padding( + padding: const EdgeInsets.fromLTRB(4, 10, 4, 6), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + '外观主题', + style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600), + ), + const SizedBox(height: 4), + Text( + '深色模式适合夜间使用;跟随系统会随手机的深色开关自动切换', + style: TextStyle(fontSize: 12, color: AppColors.muted), + ), + const SizedBox(height: 10), + SizedBox( + width: double.infinity, + child: SegmentedButton( + segments: const [ + ButtonSegment( + value: AppThemeMode.system, + label: Text('跟随系统'), + ), + ButtonSegment(value: AppThemeMode.light, label: Text('浅色')), + ButtonSegment(value: AppThemeMode.dark, label: Text('深色')), + ], + selected: {widget.state.themeMode}, + showSelectedIcon: false, + onSelectionChanged: (selection) => + widget.state.setThemeMode(selection.first), + ), + ), + ], + ), + ), _SettingTile( title: '已保存的录音', subtitle: '回听或删除本机英语练习录音', @@ -326,7 +361,7 @@ class _SettingsPageState extends State { '离线语音识别引擎', style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600), ), - const Text( + Text( '已内置 SenseVoice-Small 高精度离线语音识别模型 (INT8)。随 App 安装包直接打包,离线即用,无需额外下载,零网络流量消耗。', style: TextStyle(fontSize: 12, color: AppColors.muted), ), @@ -335,14 +370,14 @@ class _SettingsPageState extends State { subtitle: SherpaSttService.instance.isReady ? '已就绪 · 本地离线识别 (16kHz WAV · INT8)' : '预加载就绪 · 已内置打包', - trailing: const Icon(Icons.check_circle, color: AppColors.green, size: 20), + trailing: Icon(Icons.check_circle, color: AppColors.green, size: 20), ), const Divider(height: 28), const Text( '云同步与多端备份', style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600), ), - const Text( + Text( '支持通过自建服务器在 Android / iOS / macOS 之间同步学习进度与复习掌握度。离线自动缓存,联网自动双向合并。', style: TextStyle(fontSize: 12, color: AppColors.muted), ), @@ -363,7 +398,7 @@ class _SettingsPageState extends State { 'AI 对话服务', style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600), ), - const Text( + Text( '订阅版 ChatGPT / Gemini 不能直接作为 App API 使用。请使用自己的 API Key,或填写兼容 OpenAI 接口的 CLIProxyAPI 地址。密钥不在此页面保存。', style: TextStyle(fontSize: 12, color: AppColors.muted), ), @@ -568,7 +603,7 @@ class _SettingsPageState extends State { SectionCard( child: Row( children: [ - const Icon(Icons.mic_none, color: AppColors.green), + Icon(Icons.mic_none, color: AppColors.green), const SizedBox(width: 10), Expanded( child: Text( diff --git a/kouyu_english/lib/features/progress/sync_settings_sheet.dart b/kouyu_english/lib/features/progress/sync_settings_sheet.dart index 2bfa180..5922288 100644 --- a/kouyu_english/lib/features/progress/sync_settings_sheet.dart +++ b/kouyu_english/lib/features/progress/sync_settings_sheet.dart @@ -201,7 +201,7 @@ class _SyncSettingsSheetState extends State { ), ], ), - const Text( + Text( '本地优先架构:无网络时不影响学习,联网后自动双向合并学习进度与复习掌握度。', style: TextStyle(fontSize: 13, color: AppColors.muted), ), @@ -214,7 +214,7 @@ class _SyncSettingsSheetState extends State { children: [ Row( children: [ - const CircleAvatar( + CircleAvatar( radius: 18, backgroundColor: AppColors.softGreen, child: Icon(Icons.person, color: AppColors.green), @@ -232,7 +232,7 @@ class _SyncSettingsSheetState extends State { ), Text( _coordinator.serverUrl, - style: const TextStyle( + style: TextStyle( fontSize: 12, color: AppColors.muted, ), diff --git a/kouyu_english/lib/features/review/review_page.dart b/kouyu_english/lib/features/review/review_page.dart index 4fd9213..80d9b21 100644 --- a/kouyu_english/lib/features/review/review_page.dart +++ b/kouyu_english/lib/features/review/review_page.dart @@ -27,7 +27,8 @@ class ReviewPage extends StatefulWidget { State createState() => _ReviewPageState(); } -class _ReviewPageState extends State { +class _ReviewPageState extends State + with VoiceAnswerMixin { final controller = TextEditingController(); bool showHint = false; bool usedHelp = false; @@ -35,29 +36,78 @@ class _ReviewPageState extends State { bool generatingVariant = false; bool generatingLesson = false; + /// The untouched transcript of a spoken answer; null for typed answers. + String? transcript; + bool dictationPlayed = false; + + @override + AppState get voiceState => widget.state; + @override void dispose() { + VoiceService.instance.stopSpeaking(); + disposeVoiceAnswer(keepRecording: widget.state.keepRecordings); controller.dispose(); super.dispose(); } + void _resetAnswer() { + controller.clear(); + // A recording still held here was never attached to evidence. + VoiceService.instance.deleteRecording(recordingPath); + showHint = false; + usedHelp = false; + validationMessage = null; + transcript = null; + recordingPath = null; + dictationPlayed = false; + } + void _next(ReviewItem item, {required bool assisted}) { final result = ReviewFeedback.check(item, controller.text); if (!result.complete) { setState(() => validationMessage = result.message); return; } + final answer = controller.text.trim(); + final spoken = transcript != null; widget.state.completeReview( item, assisted: assisted, - rawAnswer: controller.text.trim(), + rawAnswer: answer, + inputMode: spoken && transcript == answer ? 'speechToText' : 'text', + originalTranscript: transcript, + recordingPath: spoken && widget.state.keepRecordings + ? recordingPath + : null, ); - controller.clear(); - setState(() { - showHint = false; - usedHelp = false; - validationMessage = null; - }); + // A kept recording now belongs to the evidence row; don't delete it. + if (spoken && widget.state.keepRecordings) recordingPath = null; + setState(_resetAnswer); + } + + Future _toggleVoice() async { + if (aiVoiceRecording) { + await finishVoiceInput( + keepAudio: widget.state.keepRecordings, + onTranscript: (text) { + controller.text = text; + transcript = text; + validationMessage = null; + }, + ); + return; + } + await VoiceService.instance.stopSpeaking(); + await startVoiceInput(unavailableMessage: '无法访问麦克风,请检查录音权限。你仍可输入英文作答。'); + } + + Future _play(String text, {bool slow = false}) async { + try { + await VoiceService.instance.speak(text, slow: slow); + } finally { + if (mounted) setState(() => dictationPlayed = true); + } } Future _generateVariant(ReviewItem item) async { @@ -144,6 +194,11 @@ class _ReviewPageState extends State { ), ); } + final dictation = item.skill == dictationSkill + ? a0DictationSentences[item.id] + : null; + final spokenTask = item.skill == spokenRecallSkill; + final audioText = reviewAudioText(item.id, item.target); final checkpoint = widget.state.mastery[item.id]?.checkpoint ?? item.successfulReviews; final checkpointLabel = checkpoint >= 4 @@ -153,19 +208,22 @@ class _ReviewPageState extends State { child: SpacedColumn( children: [ Eyebrow('今天复习 · ${widget.state.dueReviewCount} 项待完成'), - Text('不看答案,试着回答。', style: Theme.of(context).textTheme.headlineMedium), + Text( + dictation != null ? '听一听,写下来。' : '不看答案,试着回答。', + style: Theme.of(context).textTheme.headlineMedium, + ), Text( '目标技能:${item.skill}', style: Theme.of(context).textTheme.bodyMedium, ), Text( checkpointLabel, - style: const TextStyle(color: AppColors.green, fontSize: 13), + style: TextStyle(color: AppColors.green, fontSize: 13), ), if (item.isAiGenerated) Row( children: [ - const Expanded( + Expanded( child: Text( 'AI 生成题面 · 已通过客户端结构审核', style: TextStyle(color: AppColors.muted, fontSize: 12), @@ -174,12 +232,7 @@ class _ReviewPageState extends State { TextButton( onPressed: () { widget.state.reportGeneratedReviewVariant(item); - controller.clear(); - setState(() { - showHint = false; - usedHelp = false; - validationMessage = null; - }); + setState(_resetAnswer); ScaffoldMessenger.of(context).showSnackBar( const SnackBar(content: Text('已隔离该 AI 题面,并换回本地审核题。')), ); @@ -192,7 +245,7 @@ class _ReviewPageState extends State { tint: AppColors.softGreen, child: SpacedColumn( children: [ - const Text( + Text( '情境', style: TextStyle( color: AppColors.green, @@ -200,6 +253,22 @@ class _ReviewPageState extends State { ), ), Text(item.prompt, style: const TextStyle(fontSize: 19)), + if (dictation != null) + Row( + children: [ + IconButton.filled( + tooltip: '播放', + onPressed: () => _play(dictation.sentence), + icon: const Icon(Icons.play_arrow), + ), + const SizedBox(width: 10), + Expanded(child: Text(dictationPlayed ? '再听一次' : '播放句子')), + TextButton( + onPressed: () => _play(dictation.sentence, slow: true), + child: const Text('慢速'), + ), + ], + ), ], ), ), @@ -207,14 +276,34 @@ class _ReviewPageState extends State { controller: controller, minLines: 2, maxLines: 4, + enabled: dictation == null || dictationPlayed, onChanged: (_) => setState(() {}), - decoration: const InputDecoration( - hintText: '输入你会怎么回答', + decoration: InputDecoration( + hintText: dictation != null + ? (dictationPlayed ? '写下你听到的英文' : '先播放句子') + : (spokenTask ? '点下方麦克风说出来,或输入英文' : '输入你会怎么回答'), filled: true, fillColor: AppColors.surface, - border: OutlineInputBorder(), + border: const OutlineInputBorder(), ), ), + if (dictation == null) + OutlinedButton.icon( + onPressed: transcribing ? null : _toggleVoice, + icon: Icon(listening ? Icons.stop : Icons.mic_none), + label: Text( + transcribing + ? '正在识别…' + : listening + ? '说完了,停止并识别' + : '用语音回答', + ), + ), + if (transcript != null && controller.text.trim() != transcript) + Text( + '你修改了语音转写,本次按文字作答记录。', + style: TextStyle(fontSize: 12, color: AppColors.muted), + ), Wrap( spacing: 8, runSpacing: 8, @@ -231,19 +320,14 @@ class _ReviewPageState extends State { label: const Text('稍后复习'), onPressed: () { widget.state.postponeReview(item); - setState(() {}); + setState(_resetAnswer); }, ), ActionChip( label: const Text('暂时想不起来'), onPressed: () { widget.state.reportReviewFailure(item); - controller.clear(); - setState(() { - showHint = false; - usedHelp = false; - validationMessage = null; - }); + setState(_resetAnswer); }, ), ActionChip( @@ -262,25 +346,36 @@ class _ReviewPageState extends State { ActionChip( avatar: const Icon(Icons.search, size: 16), label: const Text('查词查句'), - onPressed: () => showLexiconLookup( - context, - state: widget.state, - ), + onPressed: () => + showLexiconLookup(context, state: widget.state), ), ], ), if (showHint) SectionCard( tint: AppColors.warm, - child: Text( - '参考:${item.hint}\n目标:${item.target}', - style: const TextStyle(color: AppColors.warmInk), + child: SpacedColumn( + spacing: 8, + children: [ + Text( + dictation != null + ? '句子意思:${item.hint}\n目标词句:${item.target}' + : '参考:${item.hint}\n目标:${item.target}', + style: TextStyle(color: AppColors.warmInk), + ), + if (audioText != null && dictation == null) + TextButton.icon( + onPressed: () => _play(audioText), + icon: const Icon(Icons.volume_up_outlined), + label: Text('听示范:$audioText'), + ), + ], ), ), if (validationMessage != null) Text( validationMessage!, - style: const TextStyle(color: AppColors.warmInk), + style: TextStyle(color: AppColors.warmInk), ), PrimaryButton( label: usedHelp ? '带提示完成' : '我能独立回答', @@ -288,7 +383,7 @@ class _ReviewPageState extends State { ? null : () => _next(item, assisted: usedHelp), ), - const Text( + Text( '提示后完成会在明天换题复练;第一次想不起来先复核,连续两次才会降低当前检查点。', style: TextStyle(fontSize: 12, color: AppColors.muted), ), @@ -439,9 +534,7 @@ class _AdaptiveLessonPageState extends State ); return; } - await startVoiceInput( - unavailableMessage: '无法访问麦克风,请检查录音权限。你仍可输入英文完成补练。', - ); + await startVoiceInput(unavailableMessage: '无法访问麦克风,请检查录音权限。你仍可输入英文完成补练。'); } @override @@ -508,7 +601,7 @@ class _AdaptiveLessonPageState extends State Text( '审核:${widget.state.cachedAdaptiveLessonAuditor ?? '已配置服务'} · ' '${_formatAuditTime(widget.state.cachedAdaptiveLessonAuditedAt!)}', - style: const TextStyle(color: AppColors.muted, fontSize: 12), + style: TextStyle(color: AppColors.muted, fontSize: 12), ), Text(task.prompt, style: Theme.of(context).textTheme.headlineMedium), if (showStimulus) @@ -517,7 +610,7 @@ class _AdaptiveLessonPageState extends State child: Text(task.stimulus, style: const TextStyle(fontSize: 20)), ) else - const SectionCard( + SectionCard( tint: AppColors.surfaceMuted, child: Text('先播放音频,再输入你听到的答案。'), ), @@ -579,9 +672,7 @@ class _AdaptiveLessonPageState extends State child: CircularProgressIndicator(strokeWidth: 2), ) : Icon( - listening - ? Icons.stop_circle_outlined - : Icons.mic_none, + listening ? Icons.stop_circle_outlined : Icons.mic_none, color: listening ? AppColors.green : null, ), ), @@ -639,7 +730,7 @@ class _AdaptiveLessonPageState extends State if (answerFeedback != null) Text( answerFeedback!, - style: const TextStyle(color: AppColors.warmInk), + style: TextStyle(color: AppColors.warmInk), ), if (showReference) SectionCard( diff --git a/kouyu_english/lib/features/shell/learning_shell.dart b/kouyu_english/lib/features/shell/learning_shell.dart index e71462f..828ab98 100644 --- a/kouyu_english/lib/features/shell/learning_shell.dart +++ b/kouyu_english/lib/features/shell/learning_shell.dart @@ -121,6 +121,11 @@ class _LearningShellState extends State { switch (route) { case _ShellRoute.lesson: body = LessonFlow( + // 换课或换段时重建,避免上一段的听力选择和播放状态沿用过来。 + key: ValueKey( + '${widget.state.activeLessonId}-' + '${widget.state.activeSegmentIndexFor(widget.state.activeLessonId)}', + ), state: widget.state, onOpenDialogue: () => showDialogue(inLesson: true), onFinish: () => showTab(tab), @@ -333,7 +338,7 @@ class _LearningMap extends StatelessWidget { children: [ Text( "复习已有积压,今天先完成 ${state.dueReviewCount} 项到期复习,再开启新课。", - style: const TextStyle(color: AppColors.warmInk), + style: TextStyle(color: AppColors.warmInk), ), SecondaryButton(label: "先去复习", onPressed: onOpenReview), ], diff --git a/kouyu_english/lib/main.dart b/kouyu_english/lib/main.dart index fcce520..3168389 100644 --- a/kouyu_english/lib/main.dart +++ b/kouyu_english/lib/main.dart @@ -47,43 +47,60 @@ class _KouyuEnglishAppState extends State { super.dispose(); } + static ThemeMode _themeMode(AppThemeMode mode) => switch (mode) { + AppThemeMode.system => ThemeMode.system, + AppThemeMode.light => ThemeMode.light, + AppThemeMode.dark => ThemeMode.dark, + }; + @override Widget build(BuildContext context) { - return MaterialApp( - title: '芽说英语 · SpeakSprout', - debugShowCheckedModeBanner: false, - theme: buildAppTheme(), - home: AnimatedBuilder( - animation: appState, - builder: (context, _) { - if (!appState.isLoaded) { - return const Scaffold( - body: Center(child: CircularProgressIndicator()), - ); - } - if (appState.onboardingComplete) { - return LearningShell(state: appState); - } - if (onboardingStep == 0) { - return WelcomePage( - state: appState, - onContinue: () => setState(() => onboardingStep = 1), - ); - } - return PopScope( - canPop: false, - onPopInvokedWithResult: (didPop, _) { - if (!didPop) { - setState(() => onboardingStep = 0); - } - }, - child: PlacementPage( - state: appState, - onBack: () => setState(() => onboardingStep = 0), - onStart: () => appState.finishOnboarding(), - ), - ); + return AnimatedBuilder( + animation: appState, + builder: (context, _) => MaterialApp( + title: '芽说英语 · SpeakSprout', + debugShowCheckedModeBanner: false, + theme: buildAppTheme(Brightness.light), + darkTheme: buildAppTheme(Brightness.dark), + themeMode: _themeMode(appState.themeMode), + // Mirror the resolved brightness into the global palette that many + // widgets read directly, so it tracks both the user's choice and any + // system dark-mode change. + builder: (context, child) { + AppColors.applyBrightness(Theme.of(context).brightness); + return child ?? const SizedBox.shrink(); }, + home: Builder( + builder: (context) { + if (!appState.isLoaded) { + return const Scaffold( + body: Center(child: CircularProgressIndicator()), + ); + } + if (appState.onboardingComplete) { + return LearningShell(state: appState); + } + if (onboardingStep == 0) { + return WelcomePage( + state: appState, + onContinue: () => setState(() => onboardingStep = 1), + ); + } + return PopScope( + canPop: false, + onPopInvokedWithResult: (didPop, _) { + if (!didPop) { + setState(() => onboardingStep = 0); + } + }, + child: PlacementPage( + state: appState, + onBack: () => setState(() => onboardingStep = 0), + onStart: () => appState.finishOnboarding(), + ), + ); + }, + ), ), ); } diff --git a/kouyu_english/lib/widgets/app_widgets.dart b/kouyu_english/lib/widgets/app_widgets.dart index 3225491..89b79a5 100644 --- a/kouyu_english/lib/widgets/app_widgets.dart +++ b/kouyu_english/lib/widgets/app_widgets.dart @@ -120,7 +120,7 @@ class SecondaryButton extends StatelessWidget { onPressed: onPressed, style: OutlinedButton.styleFrom( foregroundColor: AppColors.ink, - side: const BorderSide(color: AppColors.line), + side: BorderSide(color: AppColors.line), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(14), ), @@ -139,7 +139,7 @@ class Eyebrow extends StatelessWidget { @override Widget build(BuildContext context) => Text( text, - style: const TextStyle( + style: TextStyle( color: AppColors.green, fontWeight: FontWeight.w600, fontSize: 13, diff --git a/kouyu_english/lib/widgets/lexicon_lookup.dart b/kouyu_english/lib/widgets/lexicon_lookup.dart index 913cda6..806d303 100644 --- a/kouyu_english/lib/widgets/lexicon_lookup.dart +++ b/kouyu_english/lib/widgets/lexicon_lookup.dart @@ -165,7 +165,7 @@ class _LexiconTextState extends State { TextSpan( text: matched, recognizer: recognizer, - style: const TextStyle( + style: TextStyle( color: AppColors.green, decoration: TextDecoration.underline, decorationColor: AppColors.green, @@ -401,7 +401,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { child: SpacedColumn( crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Row( + Row( children: [ Icon(Icons.translate, size: 16, color: AppColors.green), SizedBox(width: 6), @@ -464,7 +464,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { if (analysis.pronunciationTips != null && analysis.pronunciationTips!.isNotEmpty) ...[ const SizedBox(height: 6), - const Row( + Row( children: [ Icon( Icons.record_voice_over_outlined, @@ -522,7 +522,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { const SizedBox(height: 4), Row( children: [ - const Icon( + Icon( Icons.auto_stories_outlined, size: 18, color: AppColors.green, @@ -560,7 +560,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { if (phrase.ipa != null && phrase.ipa!.isNotEmpty) Text( phrase.ipa!, - style: const TextStyle( + style: TextStyle( fontSize: 13, color: AppColors.muted, ), @@ -575,7 +575,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { ), const SizedBox(width: 4), _addedToReview.contains(phrase.phrase.toLowerCase()) - ? const Chip( + ? Chip( label: Text('已在复习', style: TextStyle(fontSize: 12)), avatar: Icon(Icons.check, size: 14, color: AppColors.green), padding: EdgeInsets.zero, @@ -602,7 +602,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { if (phrase.usageNote != null && phrase.usageNote!.isNotEmpty) Text( '用法:${phrase.usageNote}', - style: const TextStyle( + style: TextStyle( fontSize: 12, color: AppColors.muted, ), @@ -618,7 +618,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { children: [ Text( '解析引擎:${analysis.provider} · 本机已缓存', - style: const TextStyle(fontSize: 12, color: AppColors.muted), + style: TextStyle(fontSize: 12, color: AppColors.muted), ), TextButton.icon( onPressed: requestingSentenceAnalysis ? null : _requestSentenceAnalysis, @@ -666,7 +666,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { color: AppColors.softGreen, borderRadius: BorderRadius.circular(10), ), - child: const Text( + child: Text( '已解析', style: TextStyle( fontSize: 11, @@ -769,7 +769,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { const SizedBox(height: 4), Row( children: [ - const Icon(Icons.layers_outlined, size: 18, color: AppColors.green), + Icon(Icons.layers_outlined, size: 18, color: AppColors.green), const SizedBox(width: 6), Text( '本地词典匹配到的短语 (${localPhrases.length})', @@ -804,7 +804,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { ), const SizedBox(width: 4), _addedToReview.contains(phraseItem.word.toLowerCase()) - ? const Icon(Icons.check, size: 18, color: AppColors.green) + ? Icon(Icons.check, size: 18, color: AppColors.green) : OutlinedButton( style: OutlinedButton.styleFrom( visualDensity: VisualDensity.compact, @@ -823,7 +823,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { if (phraseItem.example.isNotEmpty) Text( '例:${phraseItem.example} (${phraseItem.exampleMeaning})', - style: const TextStyle( + style: TextStyle( fontSize: 12, color: AppColors.muted, ), @@ -865,7 +865,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { if (sentenceAnalysisError != null) Text( sentenceAnalysisError!, - style: const TextStyle(color: AppColors.warmInk), + style: TextStyle(color: AppColors.warmInk), ), ], ), @@ -888,7 +888,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { if (temporaryError != null) Text( temporaryError!, - style: const TextStyle(color: AppColors.warmInk), + style: TextStyle(color: AppColors.warmInk), ), if (temporaryDefinition != null) diff --git a/kouyu_english/test/app_state_test.dart b/kouyu_english/test/app_state_test.dart index aff0f1d..bb47851 100644 --- a/kouyu_english/test/app_state_test.dart +++ b/kouyu_english/test/app_state_test.dart @@ -4,6 +4,7 @@ import 'package:kouyu_english/core/a0_core.dart'; import 'package:kouyu_english/core/assessment_bank.dart'; import 'package:kouyu_english/core/generated_content.dart'; import 'package:kouyu_english/core/models.dart'; +import 'package:kouyu_english/core/review_feedback.dart'; import 'package:kouyu_english/core/seed_courses.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -52,13 +53,15 @@ void main() { final item = state.dueReviews.single; expect(a0CoreItems, contains(item.id)); expect(item.variantIndex, 1); - expect(item.prompt, contains('情境')); + // The first rotation turns the written recall into dictation. + expect(item.skill, dictationSkill); + expect(item.prompt, contains('听')); }, ); test('an approved AI variant remains tied to its original review item', () { final state = AppState(); - state.reviewQueue.add(dueItem()); + state.reviewQueue.add(dueItem().copyWith(skill: dictationSkill)); state.applyGeneratedReviewVariant( const GeneratedReviewVariant( variantId: 'ai-1', @@ -70,6 +73,7 @@ void main() { expect(state.reviewQueue.single.id, 'A0-P12'); expect(state.reviewQueue.single.isAiGenerated, isTrue); + expect(state.reviewQueue.single.skill, isNot(dictationSkill)); }); test( @@ -134,6 +138,17 @@ void main() { createdAt: DateTime.now().subtract(const Duration(days: 20)), ), ); + state.attemptEvidence.add( + AttemptEvidence( + id: 'scene-use', + itemId: item.id, + taskId: 'dialogue-scene-a0-meet-0', + skill: '情境使用', + inputMode: 'text', + outcome: EvidenceKind.independentSuccess, + createdAt: DateTime.now().subtract(const Duration(days: 19)), + ), + ); for (var index = 0; index < 4; index++) { final current = state.reviewQueue.firstWhere( @@ -197,6 +212,22 @@ void main() { ); } + // Reworded reviews alone only show recall, never use in a situation. + state.rebuildMasteryFromEvidence(); + expect(state.mastery['A0-P12']!.checkpoint, 4); + expect(state.mastery['A0-P12']!.status, MasteryStatus.recall); + + state.attemptEvidence.add( + AttemptEvidence( + id: 'scene-use', + itemId: 'A0-P12', + taskId: 'dialogue-scene-a0-meet-1', + skill: '情境使用', + inputMode: 'text', + outcome: EvidenceKind.independentSuccess, + createdAt: base, + ), + ); state.rebuildMasteryFromEvidence(); expect(state.mastery['A0-P12']!.checkpoint, 4); @@ -946,10 +977,17 @@ void main() { expect( matchesSegmentIndependent( 'a0-10-a', - "I'm Mia. I'm from Guangzhou. I like tea. Do you like tea?", + "Please say that again. I'm Mia. I like water. Do you like tea?", ), isTrue, ); + expect( + matchesSegmentIndependent( + 'a0-10-a', + "I'm Mia. I'm from Guangzhou. I like tea. Do you like tea?", + ), + isFalse, + ); }); test('each free scene keeps its own daily recap', () { @@ -1370,4 +1408,54 @@ void main() { expect(restored.dialogueDraft!.turns, hasLength(2)); expect(restored.dialogueDraft!.turns.last.isLearner, isTrue); }); + + test('a spoken review answer keeps its transcript and input mode', () { + final state = AppState(); + state.reviewQueue.add(dueItem()); + state.completeReview( + state.reviewQueue.single, + assisted: false, + rawAnswer: "I'm from Hong Kong.", + inputMode: 'speechToText', + originalTranscript: "I'm from Hong Kong.", + ); + final spoken = state.attemptEvidence.last; + expect(spoken.inputMode, 'speechToText'); + expect(spoken.transcriptConfirmed, isTrue); + expect(spoken.transcriptEdited, isFalse); + + final typed = AppState(); + typed.reviewQueue.add(dueItem()); + typed.completeReview( + typed.reviewQueue.single, + assisted: false, + rawAnswer: "I'm from Guangzhou.", + originalTranscript: "I'm from one show.", + ); + expect(typed.attemptEvidence.last.inputMode, 'text'); + expect(typed.attemptEvidence.last.transcriptEdited, isTrue); + }); + + test('each lesson practises the core items it targets', () { + for (final entry in a0TargetItemIdsByLesson.entries) { + final segments = lessonById(entry.key).segments; + final text = [ + for (final segment in segments) ...[ + activityBySegmentId(segment.id, entry.key).listening, + activityBySegmentId(segment.id, entry.key).speaking, + activityBySegmentId(segment.id, entry.key).reading, + activityBySegmentId(segment.id, entry.key).writingExample, + for (final item in vocabularyBySegmentId(segment.id, entry.key)) + '${item.word}\n${item.example}', + ], + ].join('\n'); + for (final id in entry.value) { + expect( + coreItemUsedIn(id, text, word: a0CoreItems[id]), + isTrue, + reason: '${entry.key} → $id ${a0CoreItems[id]}', + ); + } + } + }); } diff --git a/kouyu_english/test/course_content_test.dart b/kouyu_english/test/course_content_test.dart new file mode 100644 index 0000000..da8cf5a --- /dev/null +++ b/kouyu_english/test/course_content_test.dart @@ -0,0 +1,40 @@ +import 'dart:io'; + +import 'package:flutter_test/flutter_test.dart'; +import 'package:kouyu_english/core/a0_core.dart'; + +import '../tool/courses/course_validator.dart'; + +void main() { + test('tokenize expands contractions and skips digits', () { + expect(tokenize("I'm Tom. Can't pay 15 dollars at 7 a.m.; let's go"), [ + 'i', 'am', 'tom', 'can', 'not', 'pay', 'dollars', 'at', 'am', 'let', + 'us', 'go', + ]); + }); + + test('match groups use AND across groups and OR inside a group', () { + expect(satisfiesMatch("Sorry, I don't understand.", [ + ['do not understand'], + ]), isTrue); + expect(satisfiesMatch('twelvee', [ + ['twelve'], + ]), isFalse); + expect(satisfiesMatch('What is this word?', [ + ['what does', 'what is'], + ['mean'], + ]), isFalse); + }); + + test('course packs pass validation', () { + final report = CourseValidator( + projectRoot: Directory.current, + a0Texts: [ + for (final item in a0CoreItems.values) + item.replaceAll(RegExp(r'\[[^\]]*\]'), ''), + for (final sentence in a0DictationSentences.values) sentence.sentence, + ], + ).validate(); + expect(report.errors.map((issue) => '$issue'), isEmpty); + }); +} diff --git a/kouyu_english/test/review_feedback_test.dart b/kouyu_english/test/review_feedback_test.dart index d4771a5..a1848ae 100644 --- a/kouyu_english/test/review_feedback_test.dart +++ b/kouyu_english/test/review_feedback_test.dart @@ -1,4 +1,5 @@ import 'package:flutter_test/flutter_test.dart'; +import 'package:kouyu_english/core/a0_core.dart'; import 'package:kouyu_english/core/models.dart'; import 'package:kouyu_english/core/review_feedback.dart'; @@ -99,11 +100,35 @@ void main() { ); // Multi-space on word item expect( - ReviewFeedback.check( - review('A0-W08', 'three'), - ' THREE ', - ).complete, + ReviewFeedback.check(review('A0-W08', 'three'), ' THREE ').complete, isTrue, ); }); + + test('a dictation review needs the whole sentence that was played', () { + final item = review('A0-W24', 'water').copyWith( + skill: dictationSkill, + prompt: coreReviewVariant('A0-W24', 1).prompt, + ); + expect(ReviewFeedback.check(item, 'water').complete, isFalse); + expect(ReviewFeedback.check(item, 'I like watter.').complete, isFalse); + expect(ReviewFeedback.check(item, 'i like water').complete, isTrue); + }); + + test('offline review variants rotate recall, dictation and speaking', () { + expect(coreReviewVariant('A0-P12', 0).skill, '回忆表达'); + expect(coreReviewVariant('A0-P12', 1).skill, dictationSkill); + expect(coreReviewVariant('A0-P12', 2).skill, spokenRecallSkill); + expect(coreReviewVariant('A0-P12', 3).skill, '回忆表达'); + for (final id in a0CoreItems.keys) { + final sentence = a0DictationSentences[id]; + expect(sentence, isNotNull, reason: id); + // Each dictation sentence really contains the item it checks. + expect( + coreItemUsedIn(id, sentence!.sentence, word: a0CoreItems[id]), + isTrue, + reason: id, + ); + } + }); } diff --git a/kouyu_english/test/speech_compare_test.dart b/kouyu_english/test/speech_compare_test.dart new file mode 100644 index 0000000..fd7ba3f --- /dev/null +++ b/kouyu_english/test/speech_compare_test.dart @@ -0,0 +1,46 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:kouyu_english/core/speech_compare.dart'; + +void main() { + test('a matching transcript ignores case, punctuation and contractions', () { + final result = compareSpoken( + 'Sorry, please say that again. I like water.', + 'sorry please say that again i like water', + ); + expect(result.matches, isTrue); + expect(result.heardCount, result.total); + + expect( + compareSpoken('I’m from Hong Kong.', 'I am from Hong Kong').matches, + isTrue, + ); + expect( + compareSpoken('It’s three o’clock.', "it's three o'clock").matches, + isTrue, + ); + }); + + test('marks the words that were not heard, keeping word order', () { + final result = compareSpoken('I like tea. Do you like tea?', 'I like tea'); + expect(result.matches, isFalse); + expect(result.missedWords, ['Do', 'you', 'like', 'tea?']); + expect(result.close, isFalse); + + final extra = compareSpoken('I like water.', 'I like water very much'); + expect(extra.heardCount, extra.total); + expect(extra.extraWords, ['very', 'much']); + expect(extra.matches, isFalse); + }); + + test('digits and joined letters line up with the model sentence', () { + expect( + compareSpoken( + 'My number is one-three-eight.', + 'My number is 138', + ).matches, + isTrue, + ); + expect(compareSpoken('S H E N', 'Shen').matches, isTrue); + expect(compareSpoken('S H E N', 'S H E M').missedWords, ['N']); + }); +} diff --git a/kouyu_english/test/writing_feedback_test.dart b/kouyu_english/test/writing_feedback_test.dart index 8017fc5..56bb1db 100644 --- a/kouyu_english/test/writing_feedback_test.dart +++ b/kouyu_english/test/writing_feedback_test.dart @@ -28,6 +28,13 @@ void main() { 'a0-10', "I'm Alex. I'm from Beijing. I like tea.", ).complete, + isFalse, + ); + expect( + WritingFeedback.check( + 'a0-10', + "I'm Alex. I'm from Beijing. I like water.", + ).complete, isTrue, ); }); @@ -39,10 +46,7 @@ void main() { isTrue, ); // a0-01 with curly quote and multiple spaces - expect( - WritingFeedback.check('a0-01', 'HI I’M MIA').complete, - isTrue, - ); + expect(WritingFeedback.check('a0-01', 'HI I’M MIA').complete, isTrue); // a0-07 with multiple spaces in phrase expect( WritingFeedback.check('a0-07', 'THIS IS MY MOTHER').complete, diff --git a/kouyu_english/tool/courses/build_word_pools.py b/kouyu_english/tool/courses/build_word_pools.py new file mode 100644 index 0000000..38b2a03 --- /dev/null +++ b/kouyu_english/tool/courses/build_word_pools.py @@ -0,0 +1,167 @@ +"""按《学习引擎规格》5.4 从 CEFR-J 1.5 建立 A1、A2、B1 等级词池。 + +分类是离线草稿,等待用户抽样审核。运行: + python3 tool/courses/build_word_pools.py +输出 tool/courses/pools/{a1,a2,b1}-word-pool.csv。 +""" + +import collections +import csv +import pathlib + +ROOT = pathlib.Path(__file__).resolve().parent +LEXICON = ROOT / 'lexicon' / 'cefrj-vocabulary-profile-1.5.csv' +POOLS = ROOT / 'pools' + + +def S(text): + return set(text.split('|')) + + +# ---------------------------------------------------------------- A1 +A1_SCHOOL = S("classmate|classroom|dictionary|elementary|grade|grammar|homework|math/maths|paragraph|poem|science|sentence|subject|underline|blank|survey|topic|contest|ruler|sum|period|speech|article|review|strict|character") +A1_SCHOOL_ALSO = S("teacher|student|college|history|notebook|pencil|class|lesson|test|study|learn|teach|practice|practice/practise|example|correct|answer|question|spell|repeat|word|read|write|draw|page|paper|pen|school") +A1_OTHER = S("fairy|ghost|prince|princess|king|spy|kite|doll|lily|butterfly|bee|frog|bear|lion|tiger|monkey|rabbit|rat|snake|sheep|pig|cow|horse|mouse|Olympics|cartoon|cop|sailor|smith|war|kill|fight|peace|pray|dig|bat|drum|CD|CD player|DVD|jet|row|apron|bucket|vase|ribbon|bell|mommy/mommie|daddy|hide|kick|self|farm|farmer|field|stone|leaf|grass|gold|flag|judge|vote|role|ideal|poster|stage|brain|bone|cloth|tube|circle|scientist|spot|volleyball|baseball|reporter|merry|pop") +A1_WORK_ONLY = S("business|interview|interviewer|meeting|factory|engineer|technology|file|skill|focus|successful|suggestion|leader|discuss|officer") +A1_WORK_ALSO = S("office|job|work|worker|company|email/e-mail/E-mail|message|phone|call|busy|plan|team|problem|result|information|computer|partner|owner|machine|type|site|section") +A1_TRAVEL = S("palace|tower|opera|surf|arrive|leave|visit|stay|map|ticket|hotel|airport|station|left|right|straight|near|far|foreign|foreigner|city|town|street|way|sea|beach|mountain|island|river|bridge|temple|church|museum|restaurant|cafe/café|toilet|money|dollar|pay|price|credit card|passport|trip|travel|vacation|holiday|sight|seat|camera|photo|bus|taxi|train|subway|plane|airplane/aeroplane|boat|ship|bike|car|drive|ride|wait|excuse|pardon|help|lost|room|key|shower|towel|umbrella|weather|rain|snow|hot|cold|sick|headache|fever|medicine|hospital|zoo|park|festival|culture|language|guest|welcome|o'clock|a.m./A.M./am/AM|p.m./P.M./pm/PM|minute|hour|late|early|open|closed|close|size|order|menu|water|breakfast|lunch|dinner|meal|coffee|tea|juice|food|delicious|expensive|cheap|sale|shop|store|supermarket|bag|gift|present|shopping") +A1_FORMS = S("am|are|is|was|were|'s|'re|'m|did|does|doing|had|has|saw|thanks|living") + +# ---------------------------------------------------------------- A2 +A2_SCHOOL = S("adjective|blackboard|capital letter|chapter|column|comparative|essay|exam|headteacher|high school|noun|plural|punctuation|schoolchild|schoolwork|semester|singular|superlative|textbook|verb|vocabulary|campus|principal|research|scientific|summary|context|contrast|statement|structure|quiz|education|educational|debate|graduate|junior|learner") +A2_OTHER = S("angel|ancestor|astronaut|atom|bear|bury|cassette|chimpanzee|chirp|clone|clown|crown|curse|dinosaur|flea|gun|invade|killer|kingdom|liberty|military|murder|oak|orphan|pilgrim|queen|ray|robin|royal|slave|soldier|spaceship|terrorist|treasure|weep|dam|armed|fighter|hunter|cricket|rugby|hockey|MP3 player|political|association|committee|chairman|independence|establish|pacific|grace|sake|pro|symphony|composer|championship|medal|Olympic|athlete|bloom|harvest|feather|endangered|drill|script|gender|trap|wisdom|honor/honour|pursue|oppose|represent|progressive|logical|precise|symbol|function|indicate|evidence|affair|nation|citizen|government|atom|max|rap|lyric|romance|sweetheart|lover|clue|brainstorm|violent|horror|headphone|net|pal|penfriend/pen friend|handicapped|dishonest|laziness|flood|earthquake|planet|globe|continent|intelligence|imagination|inspiration|invent|invention|scale|source|range|unit|zone|mark|crime|rob|robbery|pence|cheque") +A2_WORK_ONLY = S("agency|businessman|businesswoman|boss|secretary|bonus|labor/labour|strategy|target|staff|colleague|occupation") +A2_FORMS = S("been|done|given|being") +# A2 里词形或拼写变体,已在别处覆盖: +A2_KEEP_AS_DAILY = S("crime|rob|robbery|thief|steal|flood|earthquake|planet") + +# ---------------------------------------------------------------- B1 +B1_SCHOOL = S("abstract|academic|academy|adverb|adverbial|analysis|analyze/analyse|antonym|arithmetic|assign|assignment|auxiliary|biochemistry|biography|biology|chemistry|chronological|classify|comma|consonant|curriculum|definite article|diagram|diameter|economics|encyclopedia/encyclopaedia|examiner|experiment|formula|freshman|full stop|geography|geology|graph|historian|idiom|indefinite article|infinitive|intermediate|lab|laboratory|lecture|literary|literature|mathematician|mathematics|modal verb/modal|participle|phrasal verb|physics|possessive|prefix|preposition|preschool|primary school|professor|pronoun|proverb|pupil|question mark|recite|revise|revision|scholar|scholarship|schoolmate|schoolteacher|secondary school|sophomore|suffix|theory|vowel|flunk|examination|institute|narrate|narrative|summarize/summarise|essence|notion|objective|principle|probability|proportion|phenomenon|analysis|systematic|graphics|definition|define|biography|characteristic|characterize/characterise|categorize/categorise|category|chemist") +B1_OTHER = S("aborigine|abundance|abundant|accustom|acknowledge|acknowledgment/acknowledgement|agricultural|agriculture|air force|ape|army|arrow|astronomer|atomic|attain|barrel|battle|beast|beaver|bishop|bless|blessing|bomb|bond|boom|brass|breakthrough|breed|breeding|brotherhood|bull|bullet|bulletin|bureau|bust|calf|capsule|capture|cattle|CD-ROM|cell|chariot|Christian|citizenship|civil|civilization/civilisation|coal|cod|coffin|comet|command|compound|conquer|constitute|constitution|daze|dazzle|debris|deed|defeat|defend|defender|defense/defence|deficiency|democracy|democratic|deprive|derive|devastate|dioxide|diligence|divine|dynasty|ecological|ecology|ecosystem|ecstasy|electron|element|eliminate|emperor|empire|enemy|Englishman|era|eternal|eternity|extinct|extinction|fax|first lady|foundation|fragment|gall|gene|genetic|genetically|genetics|geographical|glint|glory|goddess|gorilla|govern|governor|habitat|harness|hatch|haunt|haven|heavenly|herd|HIV|holy|humanity|illuminate|inscribe|inscription|innovator|invasion|isle|ivory|jade|journal|justice|lawful|league|liberate|liberation|logic|mankind|marine|Mediterranean|merchant|mineral|mischief|mission|modem|molecule|monk|monster|moral|motherland|motto|mourn|mule|murderer|myth|nationalist|nectar|ness|nuclear|nucleus|nutrient|oppress|oppression|orbit|organism|outlaw|owing|oxygen|paralyze/paralyse|parrot|patrol|phantom|philosopher|philosophy|phoenix|piety|poet|poetry|pollutant|priest|primitive|proclaim|procrastination|prohibition|prosperity|prosperous|racial|radiation|ration|rational|reclaim|reef|religion|religious|remembrance|reproduce|republic|retrospect|reunification|reunify|riddle|sacred|satellite|seize|settlement|settler|sex|sheriff|skeleton|slavery|soul|sphere|spiritual|sportsmanship|strategic|subconscious|submarine|sundial|superstition|swarm|sword|syndrome|technological|telecommunications|telegram|terrorism|thunderous|transitional|triumph|trumpet|underage|unify|union|universe|vein|vessel|vice|vice president|victory|wagon|ward|warrior|washbowl|weapon|westward|wither|wizard|wax|flute|choir|gymnastics|handball|ice hockey|goalkeeper|referee|tournament|champion|boxing|arise|assume|authority|capacity|conduct|constantly|construct|consume|consumption|contrary|convey|council|county|decline|dedicate|devotion|dissolve|distribute|distribution|dynasty|emerge|endure|engage|enrich|essence|evident|excess|expose|extent|firmly|fund|generate|grant|guilt|hatred|imitate|immigrate|impair|inevitable|inhabitant|inhale|inject|innermost|insane|intend|intense|internal|invest|involuntarily|lay|leadership|liar|limp|mass|mere|merely|minimize/minimise|minority|mount|mutual|neutral|nonetheless|notorious|numerous|observation|obtain|occupy|opposition|outward|outweigh|overwhelm|partial|peculiar|phrase|policy|politician|politics|possess|possession|precious|prejudice|preservation|presence|president|primarily|prison|prisoner|proceed|prominent|proof|property|prove|provided|psychological|publisher|purify|quake|rage|rank|recall|reject|remainder|representative|resemble|resist|resolve|restore|retain|retail|scope|sensation|sequence|shadowy|sheer|simultaneously|slogan|sorrow|stem|strain|stricken|substantial|sufficient|suicide|superior|supposedly|surgeon|suspect|suspicion|swear|tax|tempt|tendency|tension|terror|thus|tide|trace|tragedy|tragic|trigger|tumble|unheard|unite|uplifted|urge|usage|vain|vast|vessel|viewpoint|virtual|visible|vision|visually|vividly|warrior|willingness|wound|zone|abandon|absorb|accomplish|accuse|acquire|admiration|advance|affection|aid|allowance|amount|annually|anti|anyhow|appeal|appoint|approach|associate|beloved|beneath|bet|bold|boldly|bound|burden|capable|cherish|chuckle|circular|clip|collapse|commit|complement|composition|concept|conclude|conclusion|confirmation|conscious|consequently|conservation|conservative|considerable|consideration|continual|continually|contribute|contribution|controversial|copyright|craft|creator|crisis|critic|critical|crop|crow|crush|cultivate|curve|dare|deadly|debt|declaration|declare|decrease|delicate|demand|demonstrate|demonstration|deny|dependent|depth|despair|destructive|detective|determination|determine|devastating|differ|disability|disable|discrimination|distinction|distinctly|distinguish|drag|dramatic|drown|dude|dull|eager|eagerness|earnest|efficiency|emphasis|emphasize/emphasize|enable|enclose|encounter|endanger|endless|enthusiast|entire|environmentalist|equality|establishment|estimate|evenly|exclusive|existence|expand|exploration|explosion|extensively|fade|faithful|fantasy|farthest|fellow|fetch|feverishly|firm|flock|fond|fondness|formally|format|former|forth|fright|frustration|furthermore|furthest|gee|generate|gifted|glide|glimpse|glorious|grave|guidance|hasty|hearted|hearty|highlight|hop|horrify|imaginary|improper|incident|increasingly|indirect|indirectly|individual|industrial|industry|initial|initially|insight|inspection|inspire|instance|intensive|intention|intentionally|interact|interaction|internationally|irregular|irritate|isolation|killing|largely|lasting|launch|lean|leap|lessen|likeness|limitation|literary|loyal|loyalty|lovingly|magnificent|maintain|majority|marked|massive|maximum|meaningful|meanwhile|mechanical|mental|mentally|minimum|minor|miracle|misery|mislead|moderate|modify|moisture|motionless|motive|movement|nevertheless|newly|nor|noticeable|numerous|object|objection|obstacle|occasion|occur|offensive|oneself|opening|organic|origin|outer|outline|outstanding|overcome|overjoyed|overwhelming|pace|parental|participant|pattern|penniless|permanent|permanently|persuasive|pit|pole|positively|potential|pottery|poverty|praise|prayer|preference|preparation|previous|proceed|process|productive|profession|progress|promote|promotion|properly|proposal|propose|protest|publicly|punish|punishment|pure|quantity|rapid|rapidly|react|realistic|reality|rearrange|recognize/recognise|regain|regard|regarding|region|regional|regulation|relate|relation|relatively|relative|reliable|rely|remark|remarkable|remedy|reputation|require|requirement|reserve|residential|resource|respectable|respond|responsibility|restrict|retell|reward|rewrite|rid|rolling|rough|runaway|safeguard|scatter|scold|seawater|secure|selection|separation|series|session|setting|settle|severe|severely|shameful|shift|shortage|shortly|sigh|signal|significance|similarity|similarly|simplify|slight|slightly|socially|solid|somehow|someplace|sometime|sort|sparkle|specialist|specialize/specialise|specially|spiral|spirit|spoil|sponsor|stable|standard|status|steadily|steady|steam|steel|storyteller|strangely|stream|strengthen|stretch|strip|struggle|stumble|stun|subconscious|substitute|suffer|supply|supportive|suppose|surely|surface|surround|survival|survivor|swell|sympathy|systematic|tease|technique|teen|temper|tend|tense|term|terribly|terrific|thorough|threat|threatening|throughout|thump|tick|tighten|timely|toss|totally|transfer|transform|transformation|tremble|tremendous|trend|twist|typically|uncontrollable|uncover|undergo|underneath|undo|unfold|unrelated|upward|valuable|variety|various|vary|vague|violence|violently|visual|vivid|volume|warmth|wasteful|weakness|whichever|whoever|widespread|wildly|worthy|yell|arrange|arrangement|attract|attraction|beat|capable") +# 上面 B1_OTHER 里混入了生活与旅行中仍然有用的词,这里拉回词池。 +B1_KEEP = S("amount|arrange|arrangement|attract|attraction|beat|affection|aid|approach|demand|deny|detective|dramatic|drown|eager|entire|estimate|expand|explosion|fade|fetch|firm|fond|former|guidance|incident|increasingly|individual|initial|insight|inspire|instance|intention|launch|lean|loyal|magnificent|maintain|majority|maximum|meanwhile|mental|minimum|minor|miracle|moderate|occasion|occur|opening|organic|origin|outline|outstanding|overcome|pace|pattern|permanent|permanently|praise|preference|preparation|previous|process|progress|promote|proposal|propose|protest|properly|quantity|rapid|rapidly|react|realistic|reality|recognize/recognise|region|regional|regulation|relate|relation|relative|relatively|reliable|rely|remark|remarkable|remedy|reputation|require|requirement|reserve|resource|respond|responsibility|restrict|reward|rough|safeguard|secure|selection|series|session|setting|settle|severe|severely|shortage|shortly|sigh|signal|similarly|slight|slightly|solid|somehow|sometime|sort|specially|spoil|stable|standard|steady|steam|strangely|stretch|struggle|suffer|supply|suppose|surely|surface|surround|survival|sympathy|technique|tend|terribly|terrific|thorough|threat|throughout|totally|transfer|tremendous|trend|typically|valuable|variety|various|vary|vague|violence|volume|warmth|weakness|yell|tax|prison|property|president|politics|politician|policy|precious|proof|prove|suspect|wound|visible|vast|recall|reject|resolve|restore|visual|vivid|capable|nor|object|objection|obstacle|pure|punish|punishment|relatively|scold|shift|status|stream|substitute|swell|tease|twist|virtual|viewpoint|tragedy|tide|thus|trace|urge|intend|internal|invest|mass|merely|numerous|obtain|possess|possession|presence|proceed|reliable|retail|former|sometime|beneath|bet|bold|burden|crop|critical|debt|decrease|declare|delicate|depth|despair|differ|disability|dull|endless|entire|existence|fantasy|format|furthermore|highlight|imaginary|incident|indirect|industry|interaction|killing|lasting|likeness|loyalty|meaningful|minimum|moderate|motive|movement|nevertheless|newly|occasion|outer|overjoyed|potential|pottery|poverty|prayer|productive|profession|promotion|publicly|regard|regarding|relation|reliable|remainder|respectable|rolling|runaway|seawater|separation|similarity|simplify|socially|specialist|spirit|sponsor|steel|storyteller|strengthen|strip|survivor|temper|term|tighten|toss|transform|tremble|uncover|undo|unfold|upward|wildly|worthy|equality|creator|craft|clip|circular|chuckle|conclusion|conscious|consequently|considerable|contribution|controversial|critic|curve|deadly|demonstration|dependent|destructive|determination|determine|devastating|distinguish|drag|emphasis|enable|encounter|establishment|excess|exploration|fellow|gifted|glimpse|grave|hasty|hop|intensive|isolation|leap|mechanical|mentally|misery|modify|moisture|noticeable|offensive|parental|participant|pole|positively|punish|rearrange|regain|remark|residential|retell|rewrite|rid|scatter|shameful|significance|spiral|steadily|stun|stumble|supportive|terrified|threatening|tick|timely|uncontrollable|unrelated|violently|whoever|whichever|widespread") +B1_WORK_ONLY = S("accountant|administration|agenda|CV|employment|interviewee|management|overwork|workplace|workshop|teamwork|qualified|qualify|finance|financial|investment|bureau|unemployed|unemployment|applicant|deadline|colleague") +B1_FORMS = S("paid|worn|written|fallen|able|according to") + +FUNCTION_POS = { + 'pronoun', 'determiner', 'preposition', 'conjunction', 'modal auxiliary', + 'be-verb', 'do-verb', 'have-verb', 'interjection', 'article', + 'infinitive-to', 'number', +} + + +def load(): + rows = list(csv.reader(LEXICON.open(encoding='utf-8-sig')))[1:] + by_level = collections.defaultdict(collections.OrderedDict) + lowest = {} + order = {'A1': 1, 'A2': 2, 'B1': 3, 'B2': 4} + for headword, pos, level, *_rest in rows: + topic = _rest[2] if len(_rest) > 2 else '' + entry = by_level[level].setdefault(headword, {'pos': set(), 'topic': set()}) + entry['pos'].add(pos) + if topic: + entry['topic'].add(topic) + if headword not in lowest or order[level] < order[lowest[headword]]: + lowest[headword] = level + return by_level, lowest + + +def a1_categories(word, entry): + cats = set() + if word in A1_SCHOOL or word in A1_SCHOOL_ALSO: + cats.add('学校与学术') + if word in {'teacher', 'student', 'college', 'history', 'notebook', 'pencil'}: + cats.add('日常') + if word in A1_OTHER: + cats.add('其他') + if word in A1_WORK_ONLY or word in A1_WORK_ALSO: + cats.add('工作') + if word in A1_TRAVEL or 'Travel' in entry['topic']: + cats.add('旅行') + topics = entry['topic'] + if topics and not topics <= {'Education'} and not ( + word in A1_SCHOOL or word in A1_OTHER or word in A1_WORK_ONLY + ): + cats.add('日常') + if word in A1_SCHOOL_ALSO: + cats.add('通用') + if not cats or (cats <= {'工作'} and word in A1_WORK_ALSO): + cats.add('通用') + return cats + + +def generic_categories(word, entry, school, other, work_only, keep): + if word in keep: + pass + elif word in school: + return {'学校与学术'} + elif word in other: + return {'其他'} + if word in work_only: + return {'工作'} + cats = set() + if 'Travel' in entry['topic']: + cats.add('旅行') + if entry['topic'] - {'Education', 'Travel'}: + cats.add('日常') + if not cats: + cats.add('通用') + return cats + + +def write_pool(level, entries, categorize, forms): + path = POOLS / f'{level.lower()}-word-pool.csv' + counts = collections.Counter() + with path.open('w', newline='', encoding='utf-8') as file: + writer = csv.writer(file) + writer.writerow([ + 'headword', 'pos', 'cefrj_topic', 'categories', 'status', + 'word_form_variant', 'function_word', + ]) + for word, entry in entries.items(): + cats = categorize(word, entry) + if cats & {'通用', '日常', '旅行'}: + status = 'pool' + elif cats == {'工作'}: + status = 'work_only' + else: + status = 'excluded' + variant = word in forms + function = entry['pos'] <= FUNCTION_POS + if status == 'pool' and not variant: + counts['pool'] += 1 + if function: + counts['function'] += 1 + elif status != 'pool': + counts[status] += 1 + writer.writerow([ + word, '/'.join(sorted(entry['pos'])), + '; '.join(sorted(entry['topic'])), '/'.join(sorted(cats)), + status, 'yes' if variant else '', 'yes' if function else '', + ]) + print(level, dict(counts), '->', path.relative_to(ROOT.parent.parent)) + + +def main(): + by_level, lowest = load() + POOLS.mkdir(exist_ok=True) + write_pool('A1', by_level['A1'], a1_categories, A1_FORMS) + for level, school, other, work, keep, forms in [ + ('A2', A2_SCHOOL, A2_OTHER, A2_WORK_ONLY, A2_KEEP_AS_DAILY, A2_FORMS), + ('B1', B1_SCHOOL, B1_OTHER, B1_WORK_ONLY, B1_KEEP, B1_FORMS), + ]: + # 已在更低等级出现过的词头(换词性再出现)归入更低等级的词池。 + entries = collections.OrderedDict( + (word, entry) for word, entry in by_level[level].items() + if lowest[word] == level + ) + write_pool( + level, entries, + lambda w, e, s=school, o=other, k=work, p=keep: + generic_categories(w, e, s, o, k, p), + forms, + ) + + +if __name__ == '__main__': + main() diff --git a/kouyu_english/tool/courses/course_validator.dart b/kouyu_english/tool/courses/course_validator.dart new file mode 100644 index 0000000..7305006 --- /dev/null +++ b/kouyu_english/tool/courses/course_validator.dart @@ -0,0 +1,1138 @@ +/// 单元内容包(assets/courses)的离线校验,规则见 Doc/COURSE-PACK-JSON.md +/// 与《学习引擎规格》5.4–5.6。只依赖 dart:core,供命令行工具和测试共用。 +library; + +import 'dart:convert'; +import 'dart:io'; + +const levelOrder = ['A0', 'A1', 'A2', 'B1', 'B2']; + +int levelRank(String level) { + final index = levelOrder.indexOf(level); + return index < 0 ? 99 : index; +} + +String nextLevel(String level) => + levelOrder[(levelRank(level) + 1).clamp(0, levelOrder.length - 1)]; + +// ------------------------------------------------------------------ CSV + +List> parseCsv(String text) { + final rows = >[]; + var row = []; + final field = StringBuffer(); + var quoted = false; + for (var i = 0; i < text.length; i++) { + final char = text[i]; + if (quoted) { + if (char == '"') { + if (i + 1 < text.length && text[i + 1] == '"') { + field.write('"'); + i++; + } else { + quoted = false; + } + } else { + field.write(char); + } + } else if (char == '"') { + quoted = true; + } else if (char == ',') { + row.add(field.toString()); + field.clear(); + } else if (char == '\n' || char == '\r') { + if (char == '\r' && i + 1 < text.length && text[i + 1] == '\n') i++; + row.add(field.toString()); + field.clear(); + if (row.any((value) => value.isNotEmpty)) rows.add(row); + row = []; + } else { + field.write(char); + } + } + if (field.isNotEmpty || row.isNotEmpty) { + row.add(field.toString()); + rows.add(row); + } + return rows; +} + +// ------------------------------------------------------------ 词形还原 + +const _irregular = { + 'am': 'be', 'is': 'be', 'are': 'be', 'was': 'be', 'were': 'be', + 'been': 'be', 'being': 'be', 'has': 'have', 'had': 'have', + 'having': 'have', 'does': 'do', 'did': 'do', 'done': 'do', 'goes': 'go', + 'went': 'go', 'gone': 'go', 'awoke': 'awake', 'born': 'bear', + 'beaten': 'beat', 'became': 'become', 'began': 'begin', 'begun': 'begin', + 'bent': 'bend', 'bit': 'bite', 'bitten': 'bite', 'bled': 'bleed', + 'blew': 'blow', 'blown': 'blow', 'broke': 'break', 'broken': 'break', + 'brought': 'bring', 'built': 'build', 'burnt': 'burn', 'bought': 'buy', + 'caught': 'catch', 'chose': 'choose', 'chosen': 'choose', 'came': 'come', + 'dealt': 'deal', 'dug': 'dig', 'drew': 'draw', 'drawn': 'draw', + 'dreamt': 'dream', 'drank': 'drink', 'drunk': 'drink', 'drove': 'drive', + 'driven': 'drive', 'ate': 'eat', 'eaten': 'eat', 'fell': 'fall', + 'fallen': 'fall', 'fed': 'feed', 'felt': 'feel', 'fought': 'fight', + 'found': 'find', 'flew': 'fly', 'flown': 'fly', 'forgot': 'forget', + 'forgotten': 'forget', 'forgave': 'forgive', 'forgiven': 'forgive', + 'froze': 'freeze', 'frozen': 'freeze', 'got': 'get', 'gotten': 'get', + 'gave': 'give', 'given': 'give', 'grew': 'grow', 'grown': 'grow', + 'hung': 'hang', 'heard': 'hear', 'hid': 'hide', 'hidden': 'hide', + 'held': 'hold', 'kept': 'keep', 'knew': 'know', 'known': 'know', + 'laid': 'lay', 'led': 'lead', 'learnt': 'learn', 'left': 'leave', + 'lent': 'lend', 'lay': 'lie', 'lain': 'lie', 'lit': 'light', + 'lost': 'lose', 'made': 'make', 'meant': 'mean', 'met': 'meet', + 'paid': 'pay', 'rode': 'ride', 'ridden': 'ride', 'rang': 'ring', + 'rung': 'ring', 'rose': 'rise', 'risen': 'rise', 'ran': 'run', + 'said': 'say', 'saw': 'see', 'seen': 'see', 'sought': 'seek', + 'sold': 'sell', 'sent': 'send', 'shook': 'shake', 'shaken': 'shake', + 'shone': 'shine', 'shot': 'shoot', 'shown': 'show', 'sang': 'sing', + 'sung': 'sing', 'sank': 'sink', 'sunk': 'sink', 'sat': 'sit', + 'slept': 'sleep', 'slid': 'slide', 'spoke': 'speak', 'spoken': 'speak', + 'spent': 'spend', 'spilt': 'spill', 'stood': 'stand', 'stole': 'steal', + 'stolen': 'steal', 'stuck': 'stick', 'stung': 'sting', 'struck': 'strike', + 'swam': 'swim', 'swum': 'swim', 'swung': 'swing', 'took': 'take', + 'taken': 'take', 'taught': 'teach', 'tore': 'tear', 'torn': 'tear', + 'told': 'tell', 'thought': 'think', 'threw': 'throw', 'thrown': 'throw', + 'understood': 'understand', 'woke': 'wake', 'woken': 'wake', + 'wore': 'wear', 'worn': 'wear', 'won': 'win', 'wrote': 'write', + 'written': 'write', 'children': 'child', 'men': 'man', 'women': 'woman', + 'feet': 'foot', 'teeth': 'tooth', 'mice': 'mouse', 'knives': 'knife', + 'wives': 'wife', 'lives': 'life', 'leaves': 'leaf', 'shelves': 'shelf', + 'halves': 'half', 'better': 'good', 'best': 'good', 'worse': 'bad', + 'worst': 'bad', 'further': 'far', 'furthest': 'far', 'farther': 'far', + 'less': 'little', 'least': 'little', 'more': 'much', 'most': 'much', + 'an': 'a', 'cannot': 'can', 'thanks': 'thank', 'people': 'person', + 'mr': 'mr', 'wifi': 'wi-fi', +}; + +/// 一个词可能对应的词头(包括它本身),按可能性排序。 +List lemmaCandidates(String word) { + final result = [word]; + void add(String value) { + if (value.length > 1 && !result.contains(value)) result.add(value); + } + + final irregular = _irregular[word]; + if (irregular != null) add(irregular); + bool doubled(String stem) => + stem.length > 2 && stem[stem.length - 1] == stem[stem.length - 2]; + if (word.endsWith('ies')) add('${word.substring(0, word.length - 3)}y'); + if (word.endsWith('ves')) add('${word.substring(0, word.length - 3)}f'); + if (word.endsWith('es')) add(word.substring(0, word.length - 2)); + if (word.endsWith('s') && !word.endsWith('ss')) { + add(word.substring(0, word.length - 1)); + } + if (word.endsWith('ied')) add('${word.substring(0, word.length - 3)}y'); + if (word.endsWith('ed')) { + final stem = word.substring(0, word.length - 2); + add(stem); + add('${stem}e'); + if (doubled(stem)) add(stem.substring(0, stem.length - 1)); + } + if (word.endsWith('ying')) add('${word.substring(0, word.length - 4)}ie'); + if (word.endsWith('ing')) { + final stem = word.substring(0, word.length - 3); + add(stem); + add('${stem}e'); + if (doubled(stem)) add(stem.substring(0, stem.length - 1)); + } + for (final suffix in ['er', 'est']) { + if (!word.endsWith(suffix)) continue; + final stem = word.substring(0, word.length - suffix.length); + add(stem); + add('${stem}e'); + if (stem.endsWith('i')) add('${stem.substring(0, stem.length - 1)}y'); + if (doubled(stem)) add(stem.substring(0, stem.length - 1)); + } + if (word.endsWith('ly')) { + final stem = word.substring(0, word.length - 2); + add(stem); + add('${stem}e'); + if (stem.endsWith('i')) add('${stem.substring(0, stem.length - 1)}y'); + if (word.endsWith('ally')) add(word.substring(0, word.length - 4)); + if (word.endsWith('ly') && !word.endsWith('lly')) { + add('${word.substring(0, word.length - 1)}e'); + } + } + return result; +} + +// ------------------------------------------------------------ 分词 + +String _normalizeQuotes(String text) => text + .replaceAll(RegExp(r'[‘’`´]'), "'") + .replaceAll(RegExp(r'[“”]'), '"'); + +const _negations = { + "can't": ['can', 'not'], "won't": ['will', 'not'], + "shan't": ['shall', 'not'], "ain't": ['be', 'not'], +}; + +/// 把文本拆成词。数字、带数字的词被跳过;缩写展开;连字符词保留整体, +/// 由调用方决定是否再拆开检查。 +List tokenize(String text) { + var normalized = _normalizeQuotes(text).toLowerCase(); + normalized = normalized.replaceAllMapped( + RegExp(r'\b([ap])\.m\.'), + (match) => '${match[1]}m', + ); + final words = []; + for (final match in RegExp( + r"[a-z0-9]+(?:['-][a-z0-9]+)*", + ).allMatches(normalized)) { + final raw = match[0]!; + if (RegExp(r'\d').hasMatch(raw)) continue; + if (_negations.containsKey(raw)) { + words.addAll(_negations[raw]!); + continue; + } + if (raw.endsWith("n't")) { + words + ..add(raw.substring(0, raw.length - 3)) + ..add('not'); + continue; + } + if (raw == "let's") { + words.addAll(['let', 'us']); + continue; + } + if (raw == "o'clock") { + words.add(raw); + continue; + } + final apostrophe = RegExp(r"^(.+)'(m|re|s|ll|ve|d)$").firstMatch(raw); + if (apostrophe != null) { + words.add(apostrophe[1]!); + const expansions = { + 'm': 'am', 're': 'are', 'll': 'will', 've': 'have', 'd': 'would', + }; + final expansion = expansions[apostrophe[2]]; + if (expansion != null) words.add(expansion); + continue; + } + if (raw.endsWith("s'")) { + words.add(raw.substring(0, raw.length - 1)); + continue; + } + words.add(raw); + } + return words; +} + +/// 用于判定条件匹配的规范化:小写、统一引号、展开常见缩写、去掉标点。 +String normalizeForMatch(String text) { + var value = _normalizeQuotes(text).toLowerCase(); + value = value + .replaceAll(RegExp(r"\bcan't\b|\bcannot\b"), 'can not') + .replaceAll(RegExp(r"\bwon't\b"), 'will not') + .replaceAll("n't", ' not') + .replaceAll("'m", ' am') + .replaceAll("'re", ' are') + .replaceAll("'ll", ' will') + .replaceAll("'ve", ' have') + .replaceAll("'d", ' would') + ; + value = value.replaceAllMapped( + RegExp(r"\b(it|that|what|where|here|there|he|she|how|who|when|this)'s\b"), + (match) => '${match[1]} is', + ); + value = value.replaceAll(RegExp(r"[^a-z0-9' ]"), ' '); + return value.replaceAll(RegExp(r'\s+'), ' ').trim(); +} + +bool containsTerm(String normalizedText, String term) { + final normalizedTerm = normalizeForMatch(term); + if (normalizedTerm.isEmpty) return false; + return RegExp( + '(^| )${RegExp.escape(normalizedTerm)}(\$| )', + ).hasMatch(normalizedText); +} + +bool satisfiesMatch(String text, List> groups) { + final normalized = normalizeForMatch(text); + return groups.every( + (group) => group.any((term) => containsTerm(normalized, term)), + ); +} + +// ------------------------------------------------------------ 词表 + +const functionPos = { + 'pronoun', 'preposition', 'determiner', 'conjunction', 'modal auxiliary', + 'be-verb', 'do-verb', 'have-verb', 'infinitive-to', +}; + +class LexiconEntry { + LexiconEntry(this.headword); + final String headword; + final Set levels = {}; + + /// 词性 → 该词性下的最低等级。 + final Map pos = {}; + + String get minLevel => + (levels.toList()..sort((a, b) => levelRank(a) - levelRank(b))).first; +} + +class Lexicon { + final Map entries = {}; + + static Lexicon load(File file) { + final lexicon = Lexicon(); + for (final row in parseCsv(file.readAsStringSync()).skip(1)) { + if (row.length < 3) continue; + for (final variant in headwordVariants(row[0])) { + final entry = lexicon.entries.putIfAbsent( + variant, + () => LexiconEntry(row[0]), + ); + entry.levels.add(row[2]); + final previous = entry.pos[row[1]]; + if (previous == null || levelRank(row[2]) < levelRank(previous)) { + entry.pos[row[1]] = row[2]; + } + } + } + return lexicon; + } + + static List headwordVariants(String headword) => [ + for (final part in headword.split('/')) + if (part.trim().isNotEmpty) + part.trim().toLowerCase().replaceAll('.', ''), + ]; + + final Map> _lemmaCache = {}; + + /// 词本身是词表词头时只认它本身和不规则变化,避免 only → on 这类误还原。 + List lemmas(String word) => _lemmaCache.putIfAbsent(word, () { + if (!entries.containsKey(word)) return lemmaCandidates(word); + // 词头本身存在时,只接受名词复数、动词 -s/-ed/-ing 的还原。 + final irregular = _irregular[word]; + return [ + word, + ?irregular, + // bed、news、feed 这类短词本身就是词头,不能还原成 be、new、fee; + // thing 也不能还原成 the。 + if (word.length >= 5 && + !word.endsWith('eed') && + !RegExp(r'^.{1,2}ing$').hasMatch(word) && + RegExp(r'(s|ed|ing)$').hasMatch(word)) + for (final candidate in lemmaCandidates(word).skip(1)) + if (entries.containsKey(candidate) && + !RegExp(r'(ly|er|est)$').hasMatch(word)) + candidate, + ]; + }); + + LexiconEntry? lookup(String word) { + for (final candidate in lemmas(word)) { + final entry = entries[candidate]; + if (entry != null) return entry; + } + return null; + } + + Iterable functionWordsUpTo(String level) sync* { + for (final MapEntry(:key, :value) in entries.entries) { + if (value.pos.entries.any( + (pos) => + functionPos.contains(pos.key) && + levelRank(pos.value) <= levelRank(level), + )) { + yield key; + } + } + } +} + +class PoolWord { + const PoolWord(this.headword, this.categories, this.topic); + final String headword; + final String categories; + final String topic; +} + +List loadPool(File file) => [ + for (final row in parseCsv(file.readAsStringSync()).skip(1)) + if (row.length >= 6 && row[4] == 'pool' && row[5] != 'yes') + PoolWord(row[0], row[3], row[2]), +]; + +// ------------------------------------------------------------ 结果 + +class CourseIssue { + const CourseIssue(this.where, this.message); + final String where; + final String message; + + @override + String toString() => '$where: $message'; +} + +class LevelCoverage { + LevelCoverage(this.level, this.poolSize, this.uncovered, this.unitsReady); + final String level; + final int poolSize; + final List uncovered; + final bool unitsReady; + + int get covered => poolSize - uncovered.length; + double get ratio => poolSize == 0 ? 1 : covered / poolSize; +} + +class CourseReport { + final List errors = []; + final List missingUnits = []; + final Map coverage = {}; + final Map> itemLevels = {}; +} + +// ------------------------------------------------------------ 校验 + +class CourseValidator { + CourseValidator({ + required this.projectRoot, + required Iterable a0Texts, + }) : lexicon = Lexicon.load( + File('${projectRoot.path}/tool/courses/lexicon/cefrj-vocabulary-profile-1.5.csv'), + ), + grammarLevels = _loadGrammar( + File('${projectRoot.path}/tool/courses/lexicon/cefrj-grammar-profile-20180315.csv'), + ) { + for (final text in a0Texts) { + for (final word in tokenize(text)) { + a0Words.addAll(lexicon.lemmas(word)); + } + } + } + + final Directory projectRoot; + final Lexicon lexicon; + final Map grammarLevels; + final Set a0Words = {}; + + static Map _loadGrammar(File file) { + final rows = parseCsv(file.readAsStringSync()).skip(1).toList(); + final levels = {}; + for (final row in rows) { + if (row.length < 5) continue; + levels[row[0]] = row[4]; + } + // 变体(如 59-1)未标等级时沿用主项等级。 + for (final row in rows) { + if (row.length < 5) continue; + final value = levels[row[0]] ?? ''; + if (!RegExp(r'^[ABC]\d').hasMatch(value)) { + final main = row[0].split('-').first; + levels[row[0]] = RegExp(r'^[ABC]\d').hasMatch(levels[main] ?? '') + ? levels[main]! + : ''; + } + } + return levels; + } + + CourseReport validate() { + final report = CourseReport(); + final coursesDir = '${projectRoot.path}/assets/courses'; + final map = + jsonDecode(File('$coursesDir/course-map.json').readAsStringSync()) + as Map; + final globalAllowed = { + for (final word in map['alwaysAllowedWords'] as List) word as String, + for (final word in map['names'] as List) word as String, + }; + final seenIds = {}; + final taught = {...a0Words}; + final coveredByLevel = >{}; + final coveredSoFar = {...a0Words}; + + for (final level in (map['levels'] as List).cast>()) { + final levelId = level['id'] as String; + final functionWords = {...lexicon.functionWordsUpTo(levelId)}; + var ready = true; + for (final entry in (level['units'] as List).cast>()) { + final unitId = entry['id'] as String; + final file = File('$coursesDir/${entry['file']}'); + if (!file.existsSync()) { + report.missingUnits.add(unitId); + ready = false; + continue; + } + Map unit; + try { + unit = jsonDecode(file.readAsStringSync()) as Map; + } on FormatException catch (error) { + report.errors.add(CourseIssue(unitId, 'JSON 无法解析:${error.message}')); + ready = false; + continue; + } + final context = _UnitContext( + validator: this, + report: report, + level: level, + mapEntry: entry, + unit: unit, + allowed: {...globalAllowed, ...functionWords}, + taughtBefore: taught, + seenIds: seenIds, + ); + context.run(); + taught.addAll(context.unitTaught); + coveredSoFar.addAll(context.unitCovered); + } + coveredByLevel[levelId] = {...coveredSoFar}; + final pool = loadPool( + File('${projectRoot.path}/tool/courses/pools/${levelId.toLowerCase()}-word-pool.csv'), + ); + final uncovered = [ + for (final word in pool) + if (!_isCovered(word.headword, coveredSoFar)) word, + ]; + final coverage = LevelCoverage(levelId, pool.length, uncovered, ready); + report.coverage[levelId] = coverage; + final minimum = (map['minimumPoolCoverage'] as num?)?.toDouble() ?? 0.85; + if (ready && coverage.ratio < minimum) { + report.errors.add(CourseIssue( + levelId, + '词池覆盖率 ${(coverage.ratio * 100).toStringAsFixed(1)}% 低于 ' + '${(minimum * 100).round()}%(${coverage.covered}/${coverage.poolSize})', + )); + } + } + return report; + } + + bool _isCovered(String headword, Set covered) { + for (final variant in Lexicon.headwordVariants(headword)) { + final words = tokenize(variant); + if (words.isEmpty) continue; + if (words.every(covered.contains)) return true; + } + return false; + } +} + +class _UnitContext { + _UnitContext({ + required this.validator, + required this.report, + required this.level, + required this.mapEntry, + required this.unit, + required this.allowed, + required this.taughtBefore, + required this.seenIds, + }) : unitId = mapEntry['id'] as String, + levelId = level['id'] as String; + + final CourseValidator validator; + final CourseReport report; + final Map level; + final Map mapEntry; + final Map unit; + final Set allowed; + final Set taughtBefore; + final Map seenIds; + final String unitId; + final String levelId; + + /// 本单元教过的词(产出核心和理解词中的全部词),供后续单元使用。 + final Set unitTaught = {}; + + /// 本单元计入词池覆盖的词。 + final Set unitCovered = {}; + + final Map> core = {}; + final Map> receptive = {}; + + void error(String where, String message) => + report.errors.add(CourseIssue('$unitId $where', message)); + + String _string(Map json, String key, String where) { + final value = json[key]; + if (value is String && value.trim().isNotEmpty) return value; + error(where, '缺少非空字符串 $key'); + return ''; + } + + List> _objects( + Map json, + String key, + String where, { + bool required = true, + }) { + final value = json[key]; + if (value == null && !required) return const []; + if (value is List && value.every((item) => item is Map)) { + return value.cast>(); + } + error(where, '$key 必须是对象数组'); + return const []; + } + + List _strings(Map json, String key, String where) { + final value = json[key]; + if (value is List && value.every((item) => item is String)) { + return value.cast(); + } + error(where, '$key 必须是字符串数组'); + return const []; + } + + void _registerId(String id, String where) { + final previous = seenIds[id]; + if (previous != null) { + error(where, 'ID $id 与 $previous 重复'); + } else { + seenIds[id] = where; + } + } + + void _addWords(Set target, String text) { + for (final word in tokenize(text)) { + target.addAll(validator.lexicon.lemmas(word)); + if (word.contains('-')) { + for (final part in word.split('-')) { + target.addAll(validator.lexicon.lemmas(part)); + } + } + } + } + + late final Set known; + + bool _isKnown(String word) { + bool single(String value) => + validator.lexicon.lemmas(value).any(known.contains) || value.length == 1; + if (single(word)) return true; + return word.contains('-') && word.split('-').every(single); + } + + void run() { + if (unit['schemaVersion'] != 1) error('', 'schemaVersion 必须为 1'); + if (unit['id'] != unitId) error('', 'id 应为 $unitId'); + if (unit['level'] != levelId) error('', 'level 应为 $levelId'); + for (final key in ['title', 'canDo']) { + if (unit[key] != mapEntry[key]) error(key, '与 course-map.json 不一致'); + } + if (jsonEncode(unit['categories']) != jsonEncode(mapEntry['categories'])) { + error('categories', '与 course-map.json 不一致'); + } + if (unit['revision'] is! int) error('revision', '必须是整数'); + if (!{'draft', 'reviewed', 'frozen'}.contains(unit['status'])) { + error('status', '必须是 draft/reviewed/frozen'); + } + final meta = unit['meta']; + if (meta is! Map) { + error('meta', '缺少元数据'); + } else { + _string(meta, 'draftedBy', 'meta'); + _string(meta, 'draftedAt', 'meta'); + if (meta['reviews'] is! List) error('meta', 'reviews 必须是数组'); + } + + _grammar(); + _items(); + known = { + ...allowed, + ...taughtBefore, + ...unitTaught, + for (final name in (unit['names'] as List? ?? const [])) '$name'.toLowerCase(), + }; + _itemLevels(); + final usage = >{ + for (final id in core.keys) id: {}, + }; + final texts = []; + _segments(usage, texts); + _scenes(usage, texts); + _materials(texts); + for (final text in texts) { + _addWords(unitCovered, text); + } + + for (final MapEntry(:key, :value) in usage.entries) { + for (final need in ['segment', 'practice', 'scene', 'task']) { + if (!value.contains(need)) { + const labels = { + 'segment': '没有被任何教学段列入 itemIds', + 'practice': '没有在教学段的听、说、读、写示范里用到', + 'scene': '没有在任何场景的示范回答里用到', + 'task': '没有被任何任务引用', + }; + error(key, labels[need]!); + } + } + } + // 直接用原文分词:normalizeForMatch 会去掉连字符,T-shirt 就再也找不到了。 + final textWords = {}; + _addWords(textWords, texts.join('\n')); + for (final MapEntry(:key, :value) in receptive.entries) { + final words = tokenize(value['en'] as String? ?? ''); + final present = words.isNotEmpty && + words.every((word) => validator.lexicon.lemmas(word).any(textWords.contains)); + if (!present) error(key, '理解词 ${value['en']} 没有出现在本单元的听读或场景文本中'); + } + } + + void _grammar() { + for (final (index, item) in _objects(unit, 'grammar', 'grammar').indexed) { + final where = 'grammar[$index]'; + final id = '${item['id']}'; + final grammarLevel = validator.grammarLevels[id]; + if (grammarLevel == null) { + error(where, 'CEFR-J 语法表中没有 ID $id'); + continue; + } + if (!{'active', 'receptive'}.contains(item['use'])) { + error(where, 'use 必须是 active 或 receptive'); + } + final base = grammarLevel.length >= 2 ? grammarLevel.substring(0, 2) : ''; + if (item['use'] == 'active' && + levelRank(base) > levelRank(levelId) && + '${item['reason'] ?? ''}'.trim().isEmpty) { + error(where, '语法 $id 为 $grammarLevel,高于 $levelId,须写 reason'); + } + } + } + + void _items() { + final range = (level['coreRange'] as List).cast(); + final items = _objects(unit, 'coreItems', 'coreItems'); + if (items.length < range[0] || items.length > range[1]) { + error('coreItems', '产出核心 ${items.length} 项,应为 ${range[0]}–${range[1]}'); + } + for (final (index, item) in items.indexed) { + final id = '${item['id']}'; + final where = 'coreItems[$index]'; + final type = item['type']; + final prefix = type == 'word' ? 'W' : 'P'; + if (!{'word', 'phrase', 'pattern'}.contains(type)) { + error(where, 'type 必须是 word/phrase/pattern'); + } + if (!RegExp('^$unitId-$prefix\\d{2}\$').hasMatch(id)) { + error(where, 'ID $id 应为 $unitId-${prefix}NN'); + } + _registerId(id, where); + core[id] = item; + final en = _string(item, 'en', id); + _string(item, 'zh', id); + _addWords(unitTaught, en); + _addWords(unitCovered, en); + final match = _match(item, id); + if (en.isNotEmpty && match.isNotEmpty && !satisfiesMatch(en, match)) { + error(id, 'en 本身不满足 match'); + } + final example = item['example']; + if (example is! Map) { + error(id, '缺少 example'); + } else { + final exampleEn = _string(example, 'en', '$id.example'); + _string(example, 'zh', '$id.example'); + if (match.isNotEmpty && !satisfiesMatch(exampleEn, match)) { + error(id, 'example.en 不满足 match'); + } + } + final review = item['review']; + if (review is! Map) { + error(id, '缺少 review'); + } else { + final prompt = _string(review, 'prompt', '$id.review'); + if (en.isNotEmpty && normalizeForMatch(prompt).contains(normalizeForMatch(en))) { + error(id, 'review.prompt 不能直接给出英文答案'); + } + } + if (item['sceneWord'] == true && '${item['sceneReason'] ?? ''}'.trim().isEmpty) { + error(id, '场景词须写 sceneReason'); + } + } + final sceneWords = items.where((item) => item['sceneWord'] == true).length; + if (sceneWords * 3 > items.length) { + error('coreItems', '场景词 $sceneWords 项,超过产出核心的 1/3'); + } + + final receptiveRange = (level['receptiveRange'] as List).cast(); + final words = _objects(unit, 'receptiveWords', 'receptiveWords'); + if (words.length < receptiveRange[0] || words.length > receptiveRange[1]) { + error( + 'receptiveWords', + '理解词 ${words.length} 项,应为 ${receptiveRange[0]}–${receptiveRange[1]}', + ); + } + for (final (index, word) in words.indexed) { + final id = '${word['id']}'; + final where = 'receptiveWords[$index]'; + if (!RegExp('^$unitId-R\\d{2,3}\$').hasMatch(id)) { + error(where, 'ID $id 应为 $unitId-RNN'); + } + _registerId(id, where); + receptive[id] = word; + final en = _string(word, 'en', id); + _string(word, 'zh', id); + _addWords(unitTaught, en); + _addWords(unitCovered, en); + if (word['sceneWord'] == true && '${word['sceneReason'] ?? ''}'.trim().isEmpty) { + error(id, '场景词须写 sceneReason'); + } + } + } + + List> _match(Map item, String id) { + final value = item['match']; + if (value is List && + value.isNotEmpty && + value.every( + (group) => group is List && group.isNotEmpty && group.every((term) => term is String), + )) { + return [ + for (final group in value) (group as List).cast(), + ]; + } + error(id, 'match 必须是非空的字符串数组的数组'); + return const []; + } + + /// 按锁定词表计算等级:本单元之前已教的词、功能词和专名不计。 + String _itemLevel(String en) { + final phrase = validator.lexicon.entries[normalizeForMatch(en)]; + if (phrase != null) return phrase.minLevel; + var worst = 'A0'; + for (final word in tokenize(en)) { + if (allowed.contains(word) || + validator.lexicon.lemmas(word).any(taughtBefore.contains)) { + continue; + } + final parts = word.contains('-') && + validator.lexicon.lookup(word) == null + ? word.split('-') + : [word]; + for (final part in parts) { + final entry = validator.lexicon.lookup(part); + final value = entry?.minLevel ?? '未收录'; + if (levelRank(value) > levelRank(worst)) worst = value; + } + } + return worst; + } + + void _itemLevels() { + final levels = report.itemLevels.putIfAbsent(unitId, () => {}); + for (final MapEntry(:key, :value) in core.entries) { + final computed = _itemLevel('${value['en']}'); + levels[key] = computed; + if (levelRank(computed) > levelRank(levelId) && value['sceneWord'] != true) { + error(key, '${value['en']} 按 CEFR-J 为 $computed,高于 $levelId;须改写或标为场景词'); + } + } + final limit = nextLevel(levelId); + for (final MapEntry(:key, :value) in receptive.entries) { + final words = tokenize('${value['en']}'); + if (words.isNotEmpty && + words.every( + (word) => + allowed.contains(word) || + validator.lexicon.lemmas(word).any(taughtBefore.contains), + )) { + error(key, '理解词 ${value['en']} 在 A0 或之前的单元已经教过'); + } + final computed = _itemLevel('${value['en']}'); + levels[key] = computed; + if (levelRank(computed) > levelRank(limit) && value['sceneWord'] != true) { + error(key, '${value['en']} 按 CEFR-J 为 $computed,高于 $limit;须换词或标为场景词'); + } + } + } + + void _checkText(String where, String text, {Map? glosses, double tolerance = 0}) { + final words = tokenize(text); + final unknown = []; + for (final word in words) { + if (!_isKnown(word)) unknown.add(word); + } + if (unknown.isEmpty) return; + final glossed = { + for (final key in (glosses ?? const {}).keys) key.toLowerCase(), + }; + final missingGloss = unknown.where((word) => !glossed.contains(word)).toSet(); + if (tolerance == 0) { + error(where, '未教的词:${unknown.toSet().join(', ')}'); + return; + } + if (unknown.length > words.length * tolerance) { + error( + where, + '超纲词 ${unknown.length}/${words.length} 超过 ${(tolerance * 100).round()}%:' + '${unknown.toSet().join(', ')}', + ); + } + if (missingGloss.isNotEmpty) { + error(where, '超纲词缺少 glosses 释义:${missingGloss.join(', ')}'); + } + } + + List _itemRefs(Map json, String where) { + final ids = _strings(json, 'itemIds', where); + for (final id in ids) { + if (!core.containsKey(id)) error(where, '引用了不存在的产出核心 $id'); + } + return ids; + } + + void _checkOptions(String where, Map json, {String? sourceText}) { + final options = _strings(json, 'options', where); + if (options.length != 3) { + error(where, '必须有 3 个选项(第一个为正确答案)'); + return; + } + final normalized = [for (final option in options) normalizeForMatch(option)]; + final english = options.every((option) => RegExp(r'^[A-Za-z0-9 ,.?!’\x27-]+$').hasMatch(option)); + for (var i = 0; i < options.length; i++) { + if (options[i].trim().isEmpty) error(where, '选项不能为空'); + for (var j = 0; j < options.length; j++) { + if (i == j) continue; + // 中文选项直接比较原文,避免“4 号通道最上层”被规范化成“4”。 + final a = english ? normalized[i] : options[i].trim(); + final b = english ? normalized[j] : options[j].trim(); + if (b.contains(a)) { + error(where, '选项“${options[i]}”是“${options[j]}”的一部分'); + } + } + } + if (english) { + for (final option in options) { + _checkText('$where.options', option); + } + if (sourceText != null) { + final text = normalizeForMatch(sourceText); + final present = normalized.where((option) => containsTerm(text, option)).length; + if (present < 2) error(where, '英文选项至少两个要在原文里出现'); + if (!containsTerm(text, normalized.first)) error(where, '正确选项没有在原文中出现'); + } + } + } + + void _segments(Map> usage, List texts) { + final segments = _objects(unit, 'segments', 'segments'); + if (segments.length < 2 || segments.length > 4) { + error('segments', '教学段应为 2–4 段'); + } + for (final (index, segment) in segments.indexed) { + final id = '${segment['id']}'; + if (id != '$unitId-S${index + 1}') error('segments[$index]', 'ID 应为 $unitId-S${index + 1}'); + _registerId(id, 'segments[$index]'); + _string(segment, 'title', id); + final minutes = segment['minutes']; + if (minutes is! int || minutes < 8 || minutes > 15) { + error(id, 'minutes 应为 8–15 的整数'); + } + final itemIds = _itemRefs(segment, id); + for (final itemId in itemIds) { + usage[itemId]?.add('segment'); + } + if (itemIds.length > 6) error(id, '一段最多 6 个新产出核心'); + + final practice = []; + final listening = segment['listening']; + if (listening is Map) { + final text = _string(listening, 'text', '$id.listening'); + _string(listening, 'question', '$id.listening'); + _checkText('$id.listening.text', text); + _checkOptions('$id.listening', listening); + practice.add(text); + } else { + error(id, '缺少 listening'); + } + final speaking = _objects(segment, 'speaking', id); + if (speaking.isEmpty) error(id, 'speaking 至少 1 句'); + for (final (i, line) in speaking.indexed) { + final text = _string(line, 'text', '$id.speaking[$i]'); + _checkText('$id.speaking[$i]', text); + practice.add(text); + } + final reading = segment['reading']; + if (reading is Map) { + final text = _string(reading, 'text', '$id.reading'); + _string(reading, 'question', '$id.reading'); + _checkText('$id.reading.text', text); + _checkOptions('$id.reading', reading, sourceText: text); + practice.add(text); + } else { + error(id, '缺少 reading'); + } + final writing = segment['writing']; + if (writing is Map) { + _string(writing, 'prompt', '$id.writing'); + final example = _string(writing, 'example', '$id.writing'); + _checkText('$id.writing.example', example); + for (final ref in _itemRefs(writing, '$id.writing')) { + final item = core[ref]; + if (item != null && !satisfiesMatch(example, _match(item, ref))) { + error('$id.writing', '示范没有用到 $ref'); + } + } + practice.add(example); + } else { + error(id, '缺少 writing'); + } + final independent = segment['independent']; + if (independent is Map) { + _string(independent, 'prompt', '$id.independent'); + if (_itemRefs(independent, '$id.independent').isEmpty) { + error('$id.independent', 'itemIds 不能为空'); + } + } else { + error(id, '缺少 independent'); + } + for (final itemId in itemIds) { + final item = core[itemId]; + if (item == null) continue; + if (practice.any((text) => satisfiesMatch(text, _match(item, itemId)))) { + usage[itemId]?.add('practice'); + } + } + texts.addAll(practice); + } + } + + void _scenes(Map> usage, List texts) { + final scenes = _objects(unit, 'scenes', 'scenes'); + if (scenes.length < 3 || scenes.length > 4) error('scenes', '应为 1 个主场景加 2–3 个变式场景'); + if (scenes.where((scene) => scene['kind'] == 'main').length != 1) { + error('scenes', '必须恰好有 1 个 kind=main 的主场景'); + } + final sceneIds = {}; + for (final (index, scene) in scenes.indexed) { + final id = '${scene['id']}'; + if (id != '$unitId-C${index + 1}') error('scenes[$index]', 'ID 应为 $unitId-C${index + 1}'); + _registerId(id, 'scenes[$index]'); + sceneIds.add(id); + if (!{'main', 'variant'}.contains(scene['kind'])) error(id, 'kind 必须是 main/variant'); + for (final key in ['title', 'learnerRole', 'aiRole', 'setting']) { + _string(scene, key, id); + } + final turns = _objects(scene, 'turns', id); + if (turns.length < 4 || turns.length > 7) error(id, '场景应有 4–7 轮'); + for (final (i, turn) in turns.indexed) { + final where = '$id.turns[$i]'; + final ai = _string(turn, 'ai', where); + _string(turn, 'goal', where); + final model = _string(turn, 'model', where); + _string(turn, 'zh', where); + _checkText('$where.ai', ai); + _checkText('$where.model', model); + texts + ..add(ai) + ..add(model); + for (final ref in _itemRefs(turn, where)) { + final item = core[ref]; + if (item == null) continue; + if (satisfiesMatch(model, _match(item, ref))) { + usage[ref]?.add('scene'); + } else { + error(where, 'model 没有用到 $ref'); + } + } + } + } + final tasks = _objects(unit, 'tasks', 'tasks'); + final tasked = {}; + for (final (index, task) in tasks.indexed) { + final id = '${task['id']}'; + if (id != '$unitId-T${index + 1}') error('tasks[$index]', 'ID 应为 $unitId-T${index + 1}'); + _registerId(id, 'tasks[$index]'); + _string(task, 'goal', id); + final sceneId = '${task['sceneId']}'; + if (!sceneIds.contains(sceneId)) error(id, '引用了不存在的场景 $sceneId'); + tasked.add(sceneId); + if (_strings(task, 'slots', id).isEmpty) error(id, 'slots 至少 1 个'); + for (final ref in _itemRefs(task, id)) { + usage[ref]?.add('task'); + } + } + for (final sceneId in sceneIds.difference(tasked)) { + error(sceneId, '没有对应的任务'); + } + } + + void _materials(List texts) { + final spec = level['materials']; + final materials = _objects(unit, 'materials', 'materials', required: spec != null); + if (spec is! Map) { + if (materials.isNotEmpty) error('materials', '$levelId 不安排独立听读材料'); + return; + } + final count = (spec['count'] as List).cast(); + if (materials.length < count[0] || materials.length > count[1]) { + error('materials', '听读材料 ${materials.length} 篇,应为 ${count[0]}–${count[1]}'); + } + final modes = {}; + for (final (index, material) in materials.indexed) { + final id = '${material['id']}'; + if (id != '$unitId-M${index + 1}') error('materials[$index]', 'ID 应为 $unitId-M${index + 1}'); + _registerId(id, 'materials[$index]'); + _string(material, 'title', id); + final mode = material['mode']; + if (mode is! String || !{'listening', 'reading'}.contains(mode)) { + error(id, 'mode 必须是 listening/reading'); + continue; + } + modes.add(mode); + final text = _string(material, 'text', id); + final wordCount = RegExp(r"[A-Za-z0-9’'-]+").allMatches(text).length; + final range = (spec['${mode}Words'] as List).cast(); + if (wordCount < range[0] || wordCount > range[1]) { + error(id, '$mode 材料 $wordCount 词,应为 ${range[0]}–${range[1]}'); + } + final glosses = material['glosses']; + if (glosses != null && glosses is! Map) { + error(id, 'glosses 必须是对象'); + } + _checkText( + '$id.text', + text, + glosses: glosses is Map ? glosses : null, + tolerance: (spec['unknownTolerance'] as num?)?.toDouble() ?? 0.02, + ); + texts.add(text); + final questions = _objects(material, 'questions', id); + if (questions.length < 2 || questions.length > 4) error(id, '理解题应为 2–4 道'); + for (final (i, question) in questions.indexed) { + final where = '$id.questions[$i]'; + _string(question, 'question', where); + if (!{'gist', 'detail', 'inference'}.contains(question['type'])) { + error(where, 'type 必须是 gist/detail/inference'); + } + _checkOptions(where, question); + } + } + if (materials.isNotEmpty && modes.length < 2) error('materials', '听和读的材料都要有'); + + final rubric = unit['rubric']; + final rubricRequired = level['openTaskRubric'] == true; + if (rubric == null) { + if (rubricRequired) { + error('rubric', '$levelId 单元须有开放任务的评分标准'); + } + return; + } + if (rubric is! Map) { + error('rubric', 'rubric 必须是对象'); + return; + } + final dimensions = _objects(rubric, 'dimensions', 'rubric'); + if (dimensions.length < 2) error('rubric', '至少 2 个评分维度'); + for (final (i, dimension) in dimensions.indexed) { + final where = 'rubric.dimensions[$i]'; + _string(dimension, 'name', where); + final bands = _strings(dimension, 'bands', where); + if (bands.length < 3) error(where, '至少 3 档描述'); + final pass = dimension['pass']; + if (pass is! int || pass <= 0 || pass >= bands.length) { + error(where, 'pass 必须是 bands 内、高于最低档的序号'); + } + } + } +} diff --git a/kouyu_english/tool/courses/lexicon/SOURCES.md b/kouyu_english/tool/courses/lexicon/SOURCES.md new file mode 100644 index 0000000..f6a67e3 --- /dev/null +++ b/kouyu_english/tool/courses/lexicon/SOURCES.md @@ -0,0 +1,33 @@ +# 分级数据来源 + +课程内容包(`assets/courses/`)的词汇等级、语法等级和词池都依据这里锁定的两份文件。更换版本须新建等级 stageVersion,并重新运行 `tool/courses/build_word_pools.py` 与 `tool/courses/validate.dart`。 + +| 文件 | 数据 | 版本 | SHA-256 | +|---|---|---|---| +| `cefrj-vocabulary-profile-1.5.csv` | CEFR-J Vocabulary Profile | 1.5 | `b0dd3c635f1c9a4fdf1490c7e5b7c48e8bbe55b652ad0c9860a95f98e10ae498` | +| `cefrj-grammar-profile-20180315.csv` | CEFR-J Grammar Profile | 20180315 | `94953af376c1336166257e56c78d2139697b40ad8cf6f1235d8f9e89c2efc428` | + +## 下载地址 + +- 仓库:,提交 `d4e45b75b38f27b30dfc5c44d8c571aec7e7092f`(2020-03-25),`master` 分支中的同名文件,未做修改。 +- 下载日期:2026-09-17。 +- 原始发布页: + +同一仓库中的 `octanove-vocabulary-profile-c1c2-1.0.csv`(CC BY-SA 4.0)目前没有导入。 + +## 许可(仓库 README 原文) + +> CEFR-J vocabulary and grammar profile datasets can be used for research and commercial purposes with no charge, provided that you cite the dataset properly. The copyright belongs to Tono Laboratory at TUFS (Tokyo University of Foreign Studies). Neither CEFR-J nor Open Language Profiles is responsible or liable for any inaccuracies in the dataset or any damage resulting from using the dataset. + +## 引用方式 + +应用内“关于/数据来源”和内容包 `meta.sources` 须注明: + +- The CEFR-J Wordlist Version 1.5. Compiled by Yukio Tono, Tokyo University of Foreign Studies. Retrieved from http://www.cefr-j.org/download.html on 1/20/2020. +- The CEFR-J Grammar Profile Version 20180315. Retrieved from http://www.cefr-j.org/download.html on 1/20/2020. + +(上面的检索日期是 Open Language Profiles 仓库从 CEFR-J 官网取得数据的日期。) + +## 派生数据 + +- `../pools/{a1,a2,b1}-word-pool.csv`:由 `build_word_pools.py` 按《学习引擎规格》5.4 生成的等级词池。分类(通用/日常/旅行/工作/学校与学术/其他)是离线草稿,尚未经用户抽样审核。 diff --git a/kouyu_english/tool/courses/lexicon/cefrj-grammar-profile-20180315.csv b/kouyu_english/tool/courses/lexicon/cefrj-grammar-profile-20180315.csv new file mode 100644 index 0000000..e0cdd1e --- /dev/null +++ b/kouyu_english/tool/courses/lexicon/cefrj-grammar-profile-20180315.csv @@ -0,0 +1,501 @@ +ID,Shorthand Code,Grammatical Item,Sentence Type,CEFR-J Level,FREQ*DISP,Core Inventory,EGP,GSELO,Notes +1,PP.I_am,I am,AFF. DEC.,A1.1,A1,A1,A1,A1, +1-1,PP.I_am_not,I am not,NEG. DEC.,A1.1,A1,A1,"A1-A2, C1",A1, +1-2,PP.am_I,Am I ...?,AFF. INT.,,,A1,A1-A2,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +1-3,PP.am_I_not,Am I not ...?,NEG. INT.,,,A1,N/A,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +2,PP.you_are,You are,AFF. DEC.,B1.1,A1,A1,A1-A2,A1,文頭(相当)位置に限定 +2-1,PP.you_are_not,You are not,NEG. DEC.,,,A1,"A1, C2",A1,文頭(相当)位置に限定 +2-2,PP.are_you,Are you ...?,AFF. INT.,A1.3,A1,A1,A1-A2,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +2-3,PP.aren't_you,Aren't you ...?,NEG. INT.,,,A1,B1,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +3,PP.he.she_is,he/she is,AFF. DEC.,A1.1,A1,A1,A1,A1, +3-1,PP.he.she_is_not,he/she is not,NEG. DEC.,,A1,A1,A1,A1, +3-2,PP.is_he.she,Is he/she ...?,AFF. INT.,,A1,A1,A1,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +3-3,PP.isn't_he.she,Isn't he/she ...?,NEG. INT.,,,A1,"A2, B1",A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +4,PP.we_are,we are,AFF. DEC.,A1.1,A1,A1,A1,A1, +4-1,PP.we_are_not,we are not,NEG. DEC.,,A1,A1,A1,A1, +4-2,PP.are_we,Are we ...?,AFF. INT.,,,A1,A1,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +4-3,PP.aren't_we,Aren't we ...?,NEG. INT.,,,A1,B1,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +5,PP.they_are,they are,AFF. DEC.,A1.1,A1,A1,A1,A1, +5-1,PP.they_are_not,they are not,NEG. DEC.,,A1,A1,A1,A1, +5-2,PP.are_they,Are they ...?,AFF. INT.,,A1,A1,A1,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +5-3,PP.aren't_they,Aren't they ...?,NEG. INT.,,,A1,B1,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +6,PGEN,my/our/your/her/their (except for 'his' and 'its'),,A1.1,A1,A1,A1-C2,A1,his/itsを除く +7,PPO,me/us/him/her/them (except for 'you' and 'it'),,A1.1,A1,A1,A1,A1,you/itを除く +8,DT.this.that_is,This/That is,AFF. DEC.,A1.1,A1,A1,A2,A1,文頭(相当)または接続詞直後の位置に限定 +8-1,DT.this.that_is_not,This/That is not,NEG. DEC.,,,A1,A1,A1,文頭(相当)または接続詞直後の位置に限定 +8-2,DT.is_this.that,Is this/that ...?,AFF. INT.,,A1,A1,A2,A1,文頭(相当)または接続詞直後の位置に限定・疑問符で終わる文に限定;this/thatの後にNNが続かないものに限定 +8-3,DT.isn't_this.that,Isn't this/that ...?,NEG. INT.,,,A1,A2,A1,文頭(相当)または接続詞直後の位置に限定・疑問符で終わる文に限定;this/thatの後にNNが続かないものに限定 +9,DT.these.those_are,These/Those are,AFF. DEC.,,A1,A1,B1,A1,文頭(相当)または接続詞直後の位置に限定 +9-1,DT.these.those_are_not,These/Those are not,NEG. DEC.,,,A1,A1,A1,文頭(相当)または接続詞直後の位置に限定 +9-2,DT.are_these.those,Are these/those ...?,AFF. INT.,,,A1,A2,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定;these/thoseの後にNNSが続かないものに限定 +9-3,DT.aren't_these.those,Aren't these/those ...?,NEG. INT.,,,A1,B1,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定;these/thoseの後にNNSが続かないものに限定 +10,PP.it_is,It is,AFF. DEC.,A1.1,A1,A1,A1,A1,文頭(相当)または接続詞直後の位置に限定 +10-1,PP.it_is_not,It is not,NEG. DEC.,B2.1,A1,A1,A1,A1,文頭(相当)または接続詞直後の位置に限定 +10-2,PP.is_it,Is it ...?,AFF. INT.,,B2,A1,A1,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +10-3,PP.isn't_it,Isn't it ...?,NEG. INT.,,,A1,A2,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +11,DT.this.that_N,This/That N,AFF. DEC./NEG. DEC.,A2.1,A1,A1,"A1-B1, C2",A1,文頭(相当)または接続詞直後の位置に限定;名詞はNNに限定 +12,DT.these.those_N,These/Those N,AFF. DEC./NEG. DEC.,B1.2,A1,A1,A2,,文頭(相当)または接続詞直後の位置に限定;名詞はNNSに限定 +13,DT.a.an,INDEFINITE ARTICLES,,A1.1,A1,A1-B2,A1,A1, +14,DT.the,DEFINITE ARTICLES,,A1.1,A1,A1-B1,A1-A2,A1, +15,DT.some.any,DETERMINERS: some/any,,A1.1,A1,A1-A2,A1,A2,代名詞としての用法も含まれる +16,DT.no,DETERMINER: no,,A1.2,A1,,A2,A2, +17,DT.another,DETERMINER: another,,A2.1,A1,A2,B1,A2,代名詞としての用法も含まれる +18,QUANT.much,much UNCOUNTABLE NOUN,,A2.2,A1,A2,A2-B2,A2, +19,QUANT.little,little UNCOUNTABLE NOUN,,,B2,A2,B1-B2,A2, +20,QUANT.few,few PLURAL NOUN,,,B2,A2,B2,A2,a/another/every/nextが先行しないものに限定 +21,IN.PREP.GENERAL,PREPOSITIONS,,A1.1,A1,A1-A2,A1-C1,A1-A2,asとtoを除く主要な前置詞; aboard/about/above/across/after/against/along/alongside/amid/amidst/among/amongst/around/at/before/behind/below/beneath/beside/besides/between/beyond/by/despite/down/during/en/ere/except/for/from/in/inside/into/like/minus/near/nearer/nearest/notwithstanding/of/off/on/onto/opposite/out/outside/over/past/per/plus/re/reference/round/sans/save/since/than/through/throughout/till/toward/towards/under/underneath/unlike/until/up/upon/v./versus/via/vs./with/within/without/worthに限定 +22,PPOS.mine.etc,POSSESSIVE PRONOUNS (except for 'his' and 'its'),,B1.2,A1,A1-A2,A2-C2,A1,hisとitsを除く;mineはNNと誤認識されることも多い +23,PREFL.oneself.etc,REFLEXIVE PRONOUNS,,B1.1,A2,,A2-C2,B1, +24,PIND.nobody.anything.etc,INDEFINITE PRONOUNS,,A1.2,A1,,A1-C1,A1,some-/every-/any-/no- + -thing/-one/-body +25,PIND.ones,INDEFINITE PRONOUN/PROP-WORDS: ones (except for 'one'),,A2.1,A1,,A2-C2,B1-C1,単数形のoneは数詞との区別ができないため除く;不定代名詞・支柱語(prop word)のタグによる区別はできない +26,PIND.none,INDEFINITE PRONOUN: none,,B2.2,B2,A2,C1,, +27,PREF.each_other,RECIPROCAL PRONOUN: each other,,B1.2,B1,,B1,B1, +28,PREF.one_another,RECIPROCAL PRONOUN: one another,,,,,B2,B1, +29,P.others,PRONOUN: others (excluding 'the,,B1.1,B1,,C1,,theが先行しないものに限定 +30,P.the_other.others,PRONOUNS: the other/others,,,B2,,C1-C2,A2,名詞・数詞・形容詞が後続しないものに限定 +31,NN.thing_JJ,-thing ADJ,,B1.1,A2,,B1,, +32,RB.FRQ,ADVERBS OF FREQUENCY: always/usually/often/frequently/occasionally/sometimes/rarely,,A1.2,A1,A1ーB1,A1,A1-A2,always/usually/often/frequently/occasionally/sometimes/rarelyに限定 +33,RB.INT,ADVERBS: INTENSIFIERS: extremely/greatly/really/so/terribly/too/unbelievably/very,,A1.1,A1,A2-B1,A1-C2,A2,extremely/greatly/really/so/terribly/too/unbelievably/veryに限定;形容詞または副詞が後続するものに限定 +34,RB.ATT,ADVERBS OF ATTITUDES: apparently/clearly/fortunately/frankly/unfortunately,,B1.2,B1,A2-B2,A2-C1,A2,apparently/clearly/fortunately/frankly/unfortunatelyに限定 +35,RB.NEG,ADVERBS OF NEGATION: never,,A1.2,A1,,N/A,,neverに限定 +36,RB.NEG.QU,ADVERBS OF QUASI-NEGATION: hardly/little/scarcely/seldom,,,B2,,"B2, C2",,hardly/little/scarcely/seldomに限定;littleはaが先行しないものに限定 +37,COMP.EQ.as_as,COMPARISON OF EQUALITY: as ... as,AFF. DEC,B2.1,B1,,"B1, C2",A2,as many asなどの場合あり +37-1,COMP.EQ.not_as.so_as,COMPARISON OF EQUALITY: not as/so ... as,NEG. DEC./AFF. INT./NEG. DEC.,,B2,,"B1, C2",A2, +38,COMP.JJR.RBR.er,COMPARATIVE OF SUPERIORITY: -er,,A1.3,A1,A1-B1,A2,A1 (adverbs)/A2(adjectives)-B1,moreとlessを除く +39,COMP.JJR.RBR.more,COMPARATIVE OF SUPERIORITY: more+ADJ/ADV,,A2.2,A2,A2-B1,A2,A2,比較級を作る副詞のmoreはJJRと誤認識されることも多い +40,COMP.JJS.RBS.est,SUPERLATIVE OF SUPERIORITY: -est,,A1.1,A1,A1-B1,A2-C1,A2,moreとlessを除く +41,COMP.JJS.RBS.most,SUPERLATIVE OF SUPERIORITY: most+ADJ/ADV,,A2.1,A2,A2-B1,A2,A2,比較級を作る副詞のmostはJJSと誤認識されることも多い +42,COMP.INFER,COMPARATIVE/SUPERLATIVE OF INFERIORITY,,B2.1,B2,,A2,A2,比較級を作る副詞のlessはJJRと誤認識されることも多い +43,RBDEG.enough,ADJ/ADV enough (except for 'not enough'),,B2.1,B2,,B1-C1,A2,{not} enoughを除く;enoughがJJまたはNNと誤認識されていることもある +44,RBDEG.too_to,too ADJ/ADV to+INFINITIVE,,,B1,B1,B1,A2, +45,RBDEG.so_JJ.RB_that,so ADJ/ADV (that) CLAUSE,AFF. DEC.,,B1,,B1,B1,be動詞に続くものに限定;節部分は名詞句・代名詞+(助)動詞・副詞に限定;soがINと誤認識されていることもある +46,RBDEG.such_JJ,such (a/an) ADJ NOUN,,B2.1,B2,,B1,B1, +47,RBDEG.so_JJ_a.an,so ADJ a/an NOUN,,,,,,, +48,RBDEG.too_JJ_a.an,too ADJ a/an NOUN,,,,,,, +49,COMP.and,COMPARATIVE and COMPARATIVE (the same adjective),,,B2,,B1,B1, +50,COMP.the_the,"the COMPARATIVE (...), the COMPARATIVE",,,B2,,B2,,間に入る語句は0~8語に限定 +51,COMP.even_JJR.RBR,INTENSIFIED COMPARATIVES: a lot/by far/even/far/much/still,,B1.1,B1,,B1,,a lot/by far/even/far/much/still +52,COMP.by_far_JJS.RBS,INTENSIFIED SUPERLATIVES: by far/far/far and away/much,,,,,B2,,by far/far/far and away/much +53,V.INT.do_does,do/does DO,AFF. DEC.,B2.1,B2,,B1,B1, +54,V.INT.did,did DO,AFF. DEC.,,,,C1,B1, +55,PHV.V_PART,PHRASAL VERBS (V+PARTICLE),,A1.1,A1,A2-C1,B1-B2,,動詞はbeを除く;パーティクルは主要なもの +56,PHV.V_NP_PART,PHRASAL VERBS (V+NP+PARTICLE),,A2.1,A2,A2-C1,A2-C2,B2,動詞はbeを除く;パーティクルは主要なもの +57,PHV.V_PART_PREP,PHRASAL VERBS (V+PARTICLE+PREP+NP),,A1.2,A1,B2,B1-B2,,動詞はbeを除く;パーティクルは主要なもの;前置詞はtoを除く主要なもの +58,TA.PRESENT.be.AFF,TENSE/ASPECT: PRESENT (BE),AFF. DEC.,A1.1,A1,A1,A1,A1,名詞句・代名詞に続くものに限定;現在進行・受動態も含まれる +58-1,TA.PRESENT.be.NEG,TENSE/ASPECT: PRESENT (BE),NEG. DEC.,A1.1,A1,A1,A1,A1,名詞句・代名詞に続くものに限定;現在進行・受動態も含まれる +58-2,TA.PRESENT.be.INT.AFF,TENSE/ASPECT: PRESENT (BE),AFF. INT.,A1.1,A1,A1,N/A,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定;現在進行・受動態も含まれる +58-3,TA.PRESENT.be.INT.NEG,TENSE/ASPECT: PRESENT (BE),NEG. INT.,,,A1,N/A,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定;現在進行・受動態も含まれる +59,TA.PRESENT.do.AFF,TENSE/ASPECT: PRESENT (lexical verbs),AFF. DEC.,A1.1,A1,A1,A1,A1,名詞句・代名詞に続く一般動詞(be/do/have以外)に限定 +59-1,TA.PRESENT.do.NEG,TENSE/ASPECT: PRESENT (lexical verbs),NEG. DEC.,A1.2,A1,A1,A1,A1,名詞句・代名詞に続くものに限定 +59-2,TA.PRESENT.do.INT.AFF,TENSE/ASPECT: PRESENT (lexicalverbs),AFF. INT.,A1.2,A1,A1,N/A,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +59-3,TA.PRESENT.do.INT.NEG,TENSE/ASPECT: PRESENT (lexical verbs),NEG. INT.,,,A1,N/A,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +60,TA.PRESENT.does.AFF,TENSE/ASPECT: PRESENT (lexical verbs; third person & singular),AFF. DEC.,A1.1,A1,A1,A1,A1,名詞句・代名詞に続く一般動詞(be/do/have以外)に限定 +60-1,TA.PRESENT.does.NEG,TENSE/ASPECT: PRESENT (lexical verbs; third person & singular),NEG. DEC.,B1.1,A1,A1,A1,A1,名詞句・代名詞に続くものに限定 +60-2,TA.PRESENT.does.INT.AFF,TENSE/ASPECT: PRESENT (lexical verbs; third person & singular),AFF. INT.,,A1,A1,N/A,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +60-3,TA.PRESENT.does.INT.NEG,TENSE/ASPECT: PRESENT (lexical verbs; third person & singular),NEG. INT.,,,A1,N/A,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +61,TA.PRPRG.AFF,TENSE/ASPECT: PRESENT PROGRESSIVE,AFF. DEC.,A1.3,A1,A1,A1-C2,A1,be going toを除く +61-1,TA.PRPRG.NEG,TENSE/ASPECT: PRESENT PROGRESSIVE,NEG. DEC.,B1.1,A1,A1,A2,A1,be going toを除く +61-2,TA.PRPRG.INT.AFF,TENSE/ASPECT: PRESENT PROGRESSIVE,AFF. INT.,,A1,A1,"A2, C1",A1,be going toを除く;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +61-3,TA.PRPRG.INT.NEG,TENSE/ASPECT: PRESENT PROGRESSIVE,NEG. INT.,,,A1,N/A,A1,be going toを除く;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +62,TA.PRPF.AFF,TENSE/ASPECT: PRESENT PERFECT,AFF. DEC.,A2.1,A1,A2-B1,"B1-B2, C2",A1-A2,現在完了進行も含まれる +62-1,TA.PRPF.NEG,TENSE/ASPECT: PRESENT PERFECT,NEG. DEC.,B1.1,A2,A2-B1,B2,A2,現在完了進行も含まれる +62-2,TA.PRPF.INT.AFF,TENSE/ASPECT: PRESENT PERFECT,AFF. INT.,,A2,A2-B1,N/A,A2,現在完了進行も含まれる;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +62-3,TA.PRPF.INT.NEG,TENSE/ASPECT: PRESENT PERFECT,NEG. INT.,,,A2-B1,N/A,A2,現在完了進行も含まれる;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +63,TA.PRPFPRG.AFF,TENSE/ASPECT: PRESENT PERFECT PROGRESSIVE,AFF. DEC.,B2.1,B2,B1-B2,B1-C2,B2, +63-1,TA.PRPFPRG.NEG,TENSE/ASPECT: PRESENT PERFECT PROGRESSIVE,NEG. DEC.,,,B1-B2,B2,B2, +63-2,TA.PRPFPRG.INT.AFF,TENSE/ASPECT: PRESENT PERFECT PROGRESSIVE,AFF. INT.,,,B1-B2,B1,B2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +63-3,TA.PRPFPRG.INT.NEG,TENSE/ASPECT: PRESENT PERFECT PROGRESSIVE,NEG. INT.,,,B1-B2,N/A,B2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +64,TA.PAST.be.AFF,TENSE/ASPECT: PAST (BE),AFF. DEC.,A1.3,A1,A1-C1,A1,,現在進行・受動態も含まれる;過去進行・受動態も含まれる +64-1,TA.PAST.be.NEG,TENSE/ASPECT: PAST (BE),NEG. DEC.,A2.1,A1,A1-C1,A1,,現在進行・受動態も含まれる;過去進行・受動態も含まれる +64-2,TA.PAST.be.INT.AFF,TENSE/ASPECT: PAST (BE),AFF. INT.,,A1,A1-C1,A1,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定;過去進行・受動態も含まれる +64-3,TA.PAST.be.INT.NEG,TENSE/ASPECT: PAST (BE),NEG. INT.,,,A1-C1,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定;過去進行・受動態も含まれる +65,TA.PAST.do.AFF,TENSE/ASPECT: PRESENT (lexical verbs),AFF. DEC.,A1.3,A1,A1-C1,A1-C1,,名詞句・代名詞に続く一般動詞(be/do/have以外)に限定 +65-1,TA.PAST.do.NEG,TENSE/ASPECT: PRESENT (lexical verbs),NEG. DEC.,A2.1,A2,A1-C1,A2-B2,,名詞句・代名詞に続くものに限定 +65-2,TA.PAST.do.INT.AFF,TENSE/ASPECT: PRESENT (lexical verbs),AFF. INT.,A2.1,A2,A1-C1,A2-C1,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +65-3,TA.PAST.do.INT.NEG,TENSE/ASPECT: PRESENT (lexical verbs),NEG. INT.,,,A1-C1,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +66,TA.PASTPRG.AFF,TENSE/ASPECT: PAST PROGRESSIVE,AFF. DEC.,A2.1,A2,A2-C1,A2-C2,,be going toを除く +66-1,TA.PASTPRG.NEG,TENSE/ASPECT: PAST PROGRESSIVE,NEG. DEC.,,B1,A2-C1,B1,,be going toを除く +66-2,TA.PASTPRG.INT.AFF,TENSE/ASPECT: PAST PROGRESSIVE,AFF. INT.,,,A2-C1,B1,,be going toを除く;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +66-3,TA.PASTPRG.INT.NEG,TENSE/ASPECT: PAST PROGRESSIVE,NEG. INT.,,,A2-C1,N/A,,be going toを除く;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +67,TA.PASTPF.AFF,TENSE/ASPECT: PAST PERFECT,AFF. DEC.,B1.2,B1,B1-C1,B1-C2,,過去完了進行も含まれる +67-1,TA.PASTPF.NEG,TENSE/ASPECT: PAST PERFECT,NEG. DEC.,,B2,B1-C1,B1,,過去完了進行も含まれる +67-2,TA.PASTPF.INT.AFF,TENSE/ASPECT: PAST PERFECT,AFF. INT.,,,B1-C1,B2,,過去完了進行も含まれる;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定;過去分詞がV.Dと誤認識されていることもある +67-3,TA.PASTPF.INT.NEG,TENSE/ASPECT: PAST PERFECT,NEG. INT.,,,B1-C1,N/A,,過去完了進行も含まれる;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定;過去分詞がV.Dと誤認識されていることもある +68,TA.PASTPFPRG.AFF,TENSE/ASPECT: PAST PERFECT PROGRESSIVE,AFF. DEC.,,B2,B2,B1-B2,, +68-1,TA.PASTPFPRG.NEG,TENSE/ASPECT: PAST PERFECT PROGRESSIVE,NEG. DEC.,,,B2,B2,, +68-2,TA.PASTPFPRG.INT.AFF,TENSE/ASPECT: PAST PERFECT PROGRESSIVE,AFF. INT.,,,B2,C2,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +68-3,TA.PASTPFPRG.INT.NEG,TENSE/ASPECT: PAST PERFECT PROGRESSIVE,NEG. INT.,,,B2,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +69,TA.FUT.AFF,TENSE/ASPECT: FUTURE,AFF. DEC.,A2.1,A1,A1-C1,A2-B2,,willとam/is/are going to +69-1,TA.FUT.NEG,TENSE/ASPECT: FUTURE,NEG. DEC.,B1.1,A2,A1-C1,"A2, C1",,willとam/is/are going to +69-2,TA.FUT.INT.AFF,TENSE/ASPECT: FUTURE,AFF. INT.,,A2,A1-C1,A2,,willとam/is/are going to;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +69-3,TA.FUT.INT.NEG,TENSE/ASPECT: FUTURE,NEG. INT.,,,A1-C1,N/A,,willとam/is/are going to;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +70,TA.FUTPRG.AFF,TENSE/ASPECT: FUTURE,AFF. DEC.,B2.1,B2,B1-C1,A2-C1,, +70-1,TA.FUTPRG.NEG,TENSE/ASPECT: FUTURE,NEG. DEC.,,,B1-C1,B1,, +70-2,TA.FUTPRG.INT.AFF,TENSE/ASPECT: FUTURE PROGRESSIVE,AFF. INT.,,,B1-C1,B2,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +70-3,TA.FUTPRG.INT.NEG,TENSE/ASPECT: FUTURE PROGRESSIVE,NEG. INT.,,,B1-C1,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +71,TA.FUTPF.AFF,TENSE/ASPECT: FUTURE PERFECT,AFF. DEC.,,B2,B2-C1,B2-C1,,未来完了進行も含まれる +71-1,TA.FUTPF.NEG,TENSE/ASPECT: FUTURE PERFECT,NEG. DEC.,,,B2-C1,B2,,未来完了進行も含まれる +71-2,TA.FUTPF.INT.AFF,TENSE/ASPECT: FUTURE PERFECT,AFF. INT.,,,B2-C1,C2,,未来完了進行も含まれる;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +71-3,TA.FUTPF.INT.NEG,TENSE/ASPECT: FUTURE PERFECT,NEG. INT.,,,B2-C1,N/A,,未来完了進行も含まれる;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +72,TA.FUTPFPRG.AFF,TENSE/ASPECT: FUTURE PERFECT PROGRESSIVE,AFF. DEC.,,,B2-C1,B2-C2,, +72-1,TA.FUTPFPRG.NEG,TENSE/ASPECT: FUTURE PERFECT PROGRESSIVE,NEG. DEC.,,,B2-C1,B2,, +72-2,TA.FUTPFPRG.INT.AFF,TENSE/ASPECT: FUTURE PERFECT PROGRESSIVE,AFF. INT.,,,B2-C1,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +72-3,TA.FUTPFPRG.INT.NEG,TENSE/ASPECT: FUTURE PERFECT PROGRESSIVE,NEG. INT.,,,B2-C1,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +73,PASS.PRESENT,PASSIVE: PRESENT,AFF. DEC.,A1.2,A1,,A2-B2,A2-B1, +73-1,PASS.PRESENT.NEG,PASSIVE: PRESENT,NEG. DEC.,B2.1,B2,,B1,A2-B1, +73-2,PASS.PRESENT.INT.AFF,PASSIVE: PRESENT,AFF. INT.,,,,N/A,A2-B1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +73-3,PASS.PRESENT.INT.NEG,PASSIVE: PRESENT,NEG. INT.,,,,N/A,A2-B1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +74,PASS.PRSPRG.AFF,PASSIVE: PRESENT PROGRESSIVE,AFF. DEC.,,B2,B2-C1,A2-B2,C1, +74-1,PASS.PRSPRG.NEG,PASSIVE: PRESENT PROGRESSIVE,NEG. DEC.,,,B2-C1,"B2, C1",C1, +74-2,PASS.PRSPRG.INT.AFF,PASSIVE: PRESENT PROGRESSIVE,AFF. INT.,,,B2-C1,N/A,C1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +74-3,PASS.PRSPRG.INT.NEG,PASSIVE: PRESENT PROGRESSIVE,NEG. INT.,,,B2-C1,N/A,C1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +75,PASS.PRSPF.AFF,PASSIVE: PRESENT PERFECT,AFF. DEC.,B2.1,B2,B2-C1,A2-B2,A2,現在完了進行の受動態は省略 +75-1,PASS.PRSPF.NEG,PASSIVE: PRESENT PERFECT,NEG. DEC.,,,B2-C1,B2,A2,現在完了進行の受動態は省略 +75-2,PASS.PRSPF.INT.AFF,PASSIVE: PRESENT PERFECT,AFF. INT.,,,B2-C1,N/A,A2,現在完了進行の受動態は省略;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +75-3,PASS.PRSPF.INT.NEG,PASSIVE: PRESENT PERFECT,NEG. INT.,,,B2-C1,N/A,A2,現在完了進行の受動態は省略;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +76,PASS.PAST.AFF,PASSIVE: PAST,AFF. DEC.,A2.1,A2,B1-C1,A2-B2,, +76-1,PASS.PAST.NEG,PASSIVE: PAST,NEG. DEC.,,B1,B1-C1,B2,, +76-2,PASS.PAST.INT.AFF,PASSIVE: PAST,AFF. INT.,,,B1-C1,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +76-3,PASS.PAST.INT.NEG,PASSIVE: PAST,NEG. INT.,,,B1-C1,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +77,PASS.PASTPRG.AFF,PASSIVE: PAST PROGRESSIVE,AFF. DEC.,,,B2-C1,A2-B2,, +77-1,PASS.PASTPRG.NEG,PASSIVE: PAST PROGRESSIVE,NEG. DEC.,,,B2-C1,B2,, +77-2,PASS.PASTPRG.INT.AFF,PASSIVE: PAST PROGRESSIVE,AFF. INT.,,,B2-C1,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +77-3,PASS.PASTPRG.INT.NEG,PASSIVE: PAST PROGRESSIVE,NEG. INT.,,,B2-C1,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +78,PASS.PASTPF.AFF,PASSIVE: PAST PERFECT,AFF. DEC.,,B2,B2-C1,A2-B2,B2,過去完了進行の受動態は省略 +78-1,PASS.PASTPF.NEG,PASSIVE: PAST PERFECT,NEG. DEC.,,,B2-C1,B2,B2,過去完了進行の受動態は省略 +78-2,PASS.PASTPF.INT.AFF,PASSIVE: PAST PERFECT,AFF. INT.,,,B2-C1,N/A,B2,過去完了進行の受動態は省略;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +78-3,PASS.PASTPF.INT.NEG,PASSIVE: PAST PERFECT,NEG. INT.,,,B2-C1,N/A,B2,過去完了進行の受動態は省略;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +79,PASS.FUT.AFF,PASSIVE: FUTURE,AFF. DEC.,B2.1,B1,C1,B2,,willに限定 +79-1,PASS.FUT.NEG,PASSIVE: FUTURE,NEG. DEC.,,,C1,N/A,,willに限定 +79-2,PASS.FUT.INT.AFF,PASSIVE: FUTURE,AFF. INT.,,,C1,N/A,,willに限定;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +79-3,PASS.FUT.INT.NEG,PASSIVE: FUTURE,NEG. INT.,,,C1,N/A,,willに限定;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +80,PASS.FUTPRG.AFF,PASSIVE: FUTURE PROGRESSIVE,AFF. DEC.,,,C1,B1,, +80-1,PASS.FUTPRG.NEG,PASSIVE: FUTURE PROGRESSIVE,NEG. DEC.,,,C1,N/A,, +80-2,PASS.FUTPRG.INT.AFF,PASSIVE: FUTURE PROGRESSIVE,AFF. INT.,,,C1,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +80-3,PASS.FUTPRG.INT.NEG,PASSIVE: FUTURE PROGRESSIVE,NEG. INT.,,,C1,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +81,PASS.FUTPF.AFF,PASSIVE: FUTURE PERFECT,AFF. DEC.,,,C1,N/A,,未来完了進行の受動態は省略 +81-1,PASS.FUTPF.NEG,PASSIVE: FUTURE PERFECT,NEG. DEC.,,,C1,N/A,,未来完了進行の受動態は省略 +81-2,PASS.FUTPF.INT.AFF,PASSIVE: FUTURE PERFECT,AFF. INT.,,,C1,N/A,,未来完了進行の受動態は省略;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +81-3,PASS.FUTPF.INT.NEG,PASSIVE: FUTURE PERFECT,NEG. INT.,,,C1,N/A,,未来完了進行の受動態は省略;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +82,PASS.MD.AFF,PASSIVE: AUX,AFF. DEC.,B1.2,B1,C1,B2,B2,助動詞はMDに限定 +82-1,PASS.MD.NEG,PASSIVE: AUX,NEG. DEC.,,B2,C1,N/A,B2,助動詞はMDに限定 +82-2,PASS.MD.INT.AFF,PASSIVE: AUX,AFF. INT.,,,C1,N/A,B2,助動詞はMDに限定;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +82-3,PASS.MD.INT.NEG,PASSIVE: AUX,NEG. INT.,,,C1,N/A,B2,助動詞はMDに限定;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +83,PASS.MDPRG.AFF,PASSIVE: AUX+PROGRESSIVE,AFF. DEC.,,,,N/A,,助動詞はMDに限定 +83-1,PASS.MDPRG.NEG,PASSIVE: AUX+PROGRESSIVE,NEG. DEC.,,,,N/A,,助動詞はMDに限定 +83-2,PASS.MDPRG.INT.AFF,PASSIVE: AUX+PROGRESSIVE,AFF. INT.,,,,N/A,,助動詞はMDに限定;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +83-3,PASS.MDPRG.INT.NEG,PASSIVE: AUX+PROGRESSIVE,NEG. INT.,,,,N/A,,助動詞はMDに限定;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +84,PASS.MDPF.AFF,PASSIVE: AUX+PERFECT,AFF. DEC.,,,B2-C1,N/A,,助動詞はMDに限定;助動詞+完了進行の受動態は省略 +84-1,PASS.MDPF.NEG,PASSIVE: AUX+PERFECT,NEG. DEC.,,,B2-C1,N/A,,助動詞はMDに限定;助動詞+完了進行の受動態は省略 +84-2,PASS.MDPF.INT.AFF,PASSIVE: AUX+PERFECT,AFF. INT.,,,B2-C1,N/A,,助動詞はMDに限定;助動詞+完了進行の受動態は省略;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +84-3,PASS.MDPF.INT.NEG,PASSIVE: AUX+PERFECT,NEG. INT.,,,B2-C1,N/A,,助動詞はMDに限定;助動詞+完了進行の受動態は省略;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +85,PASS.IO.AFF,PASSIVE: INDIRECT OBJECTS OF GIVE/PASS/SEND/SHOW/TEACH/TELL AS SUBJECTS,AFF. DEC.,B2.1,B2,,B1-B2,B1, +85-1,PASS.IO.NEG,PASSIVE: INDIRECT OBJECTS OF GIVE/PASS/SEND/SHOW/TEACH/TELL AS SUBJECTS,NEG. DEC.,,,,N/A,B1,現在・過去の単純相に限定 +85-2,PASS.IO.INT.AFF,PASSIVE: INDIRECT OBJECTS OF GIVE/PASS/SEND/SHOW/TEACH/TELL AS SUBJECTS,AFF. INT.,,,,N/A,B1,現在・過去の単純相に限定;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +85-3,PASS.IO.INT.NEG,PASSIVE: INDIRECT OBJECTS OF GIVE/PASS/SEND/SHOW/TEACH/TELL AS SUBJECTS,NEG. INT.,,,,N/A,B1,現在・過去の単純相に限定;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +86,PASS.DO.AFF,PASSIVE: DIRECT OBJECTS OF GIVE/PASS/SEND/SHOW/TEACH/TELL AS SUBJECTS,AFF. DEC.,,,,B2,, +86-1,PASS.DO.NEG,PASSIVE: DIRECT OBJECTS OF GIVE/PASS/SEND/SHOW/TEACH/TELL AS SUBJECTS,NEG. DEC.,,,,N/A,,現在・過去の単純相に限定 +86-2,PASS.DO.INT.AFF,PASSIVE: DIRECT OBJECTS OF GIVE/PASS/SEND/SHOW/TEACH/TELL AS SUBJECTS,AFF. INT,,,,N/A,,現在・過去の単純相に限定;文頭(相当)または接続詞直後 の位置・疑問符で終わる文に限定 +86-3,PASS.DO.INT.NEG,PASSIVE: DIRECT OBJECTS OF GIVE/PASS/SEND/SHOW/TEACH/TELL AS SUBJECTS,NEG. INT.,,,,N/A,,現在・過去の単純相に限定;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +87,PASS.get_VN,GET+PAST PARTICIPLE,,B1.2,A1,,B1,B1,getの時制・相は問わない +88,TO.to_do,TO-INFINITIVE: to DO (not preceded by 'not'),,A1.1,A1,A2,A1,A2, +89,TO.not_to_do,TO-INFINITIVE: not to DO,,B1.2,B1,,N/A,, +90,TO.to_have_done,TO-INFINITIVE: to have DONE,,,B2,,C1-C2,,完了・受動態のto不定詞も含まれる +91,TO.to_be_done,TO-INFINITIVE: to be DONE,,B2.1,B2,,B1-B2,, +92,TO.to_have_been_done,TO-INFINITIVE: to have been DONE,,,,,N/A,, +93,TO.for_NP_to_do,TO-INFINITIVE: WITH NOTIONAL SUBJECT,,B1.1,A2,,B2,,意味上の主語でないものも含まれる +94,TO.thing_to_do,-thing to DO,,,,,,, +95,TO.in_order_to_do,in order to DO,,B2.2,B2,,N/A,A2, +96,TO.in_order_not_to_do,in order not to DO,,,,,N/A,, +97,TO.so_as_to_do,so as to DO,,,,,C2,B1, +98,TO.so_as_not_to_do,so as not to DO,,,,,N/A,, +99,TO.be_to_do,BE to DO,AFF. DEC.,B1.2,B1,,N/A,,単なる主格補語がほとんど +99-1,TO.be_not_to_do,BE not to DO,NEG. DEC.,,,,N/A,,単なる主格補語がほとんど +100,TO.be_about_to_do,BE about to DO,AFF. DEC.,,,,B2,, +100-1,TO.be_not_about_to_do,BE not about to DO,NEG. DEC.,,,,N/A,, +101,TO.VV_to_do,VERB to DO,,A1.2,A1,A2,A1-B2,B1,動詞はbe・haveを除く +102,TO.VV_not_to_do,VERB not to DO,,,B2,,A1-B2,,動詞はbe・haveを除く +103,TO.VV_NP_to_do,VERB OBJECT to DO,,A1.2,A1,,B1,,動詞はbe・haveを除く;単なるSVO+目的/名詞修飾のto不定詞も含まれる +104,TO.VV_NP_not_to_do,VERB OBJECT not to DO,,,,,N/A,,動詞はbe・haveを除く +105,VG,V-ING (not preceded by 'not'),,A1.1,A1,A2,B1-B2,B1,動名詞と現在分詞の区別はできないため現在分詞も含ま +106,VG.not_VG,not+V-ING,,B2.1,B1,,N/A,,動名詞と現在分詞の区別はできないため現在分詞も含ま +107,VG.having_VN,having+PAST PARTICIPLE,,,B2,,B2,C1,形容詞的な過去分詞も含まれる +108,VG.being_VN,being+PAST PARTICIPLE,,B2.1,B2,,B2,,動名詞と現在分詞の区別はできないため現在分詞のbeingも含まれる;形容詞的な過去分詞も含まれる +109,VG.having_been_VN,having been+PAST PARTICIPLE,,,,,C2,,形容詞的な過去分詞も含まれる +110,VG.PREP_VG,PREP+V-ING,,A1.3,A1,,"A2, C2",,動名詞と現在分詞の区別はできないため形容詞的な現在分詞も含まれる +111,VG.PGEN_VG,V-ING: WITH NOTIONAL SUBJECT (expressed as possessive pronouns),,,,,B2,,動名詞と現在分詞の区別はできないため現在分詞も含まれる;目的格代名詞・名詞句+'s・名詞句は誤認識がほとんどのため除く;mind+人+doingなどは動詞+目的語+動詞-ing +112,VG.VV_VG,VERB V-ING,,A1.2,A1,A1-A2,B2,,動詞はbe/haveを除く +113,VG.VV_not_VG,VERB not V-ING,,,,,B2,,動詞はbe/haveを除く +114,VG.VV_NP_VG,VERB OBJECT V-ING,,A2.2,A2,,B2,,動詞はbe/haveを除く;動名詞と現在分詞の区別はできないため現在分詞が多く含まれる +115,VG.VV_NP_not_VG,VERB OBJECT not V-ING,,,,,B2,,動詞はbe/haveを除く;ほとんどが誤認識 +116,IMP.be.AFF,IMPERATIVE (BE),AFF. IMP.,,,,N/A,,カンマ後を除く文頭(相当)または接続詞直後の位置・途中に句読点なし・終止符または感嘆符で終わる文に限定 +116-1,IMP.be.NEG,IMPERATIVE (BE),NEG. IMP,,,,N/A,,文頭(相当)または接続詞直後の位置・途中に句読点なし・終止符または感嘆符で終わる文に限定 +117,IMP.V.AFF,IMPERATIVE: AFFIRMATIVE (lexical verbs),AFF. IMP.,A1.1,A1,A1-A2,A2-C1,A1,カンマ後を除く文頭(相当)または接続詞直後の位置・途中に 句読点なし・終止符または感嘆符で終わる文に限定;do・ haveの場合は否定命令・強調命令・疑問文を除くためnot・ 動詞原形・you・we・theyが後続しないものに限定 +117-1,IMP.V.NEG,IMPERATIVE: AFFIRMATIVE (lexical verbs),NEG. IMP,B1.1,A1,A1-A2,"A2, B1-C2",A1,文頭(相当)または接続詞直後の位置・途中に句読点なし・終止符または感嘆符で終わる文に限定 +118,IMP.do_V,Do+IMPERATIVE,AFF. IMP.,,,,B1,A1,文頭(相当)または接続詞直後の位置・途中に句読点なし・終止符または感嘆符で終わる文に限定 +119,IMP.please_V.AFF,Please+INFINITIVE,AFF. IMP.,,A1,A2,B2,A1,文頭(相当)または接続詞直後の位置・途中に句読点なし・終止符または感嘆符で終わる文に限定;pleaseに付与されるタグは様々 +119-1,IMP.please_V.NEG,Please+don't/never+INFINITIVE,NEG. IMP,,,A2,N/A,A1,文頭(相当)または接続詞直後の位置・途中に句読点なし・終止符または感嘆符で終わる文に限定;pleaseに付与されるタグは様々 +120,IMP.let's_V.AFF,let's (not followed by 'not'),AFF. DEC.,A1.3,A1,,A2,A1,letと'sに付与される品詞タグは様々 +120-1,IMP.let's_V.NEG,let's not,NEG. DEC.,,,,B2,A1,letと'sに付与される品詞タグは様々 +121,MD.be_able_to.AFF,MODAL/AUX: be able to,AFF. DEC.,B1.1,B1,,A2-B1,,beの時制・相は問わない +121-1,MD.be_able_to.NEG,MODAL/AUX: be able to,NEG. DEC.,,,,N/A,,beの時制・相は問わない +121-2,MD.be_able_to.INT.AFF,MODAL/AUX: be able to,AFF. INT.,,,,N/A,,beの時制・相は問わない;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +121-3,MD.be_able_to.INT.NEG,MODAL/AUX: be able to,NEG. DEC.,,,,N/A,,beの時制・相は問わない;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +122,MD.be_going_to.AFF,MODAL/AUX: be going to,AFF. DEC.,A2.2,A2,A1-B2,"A2, B1",,beの時制・相は問わない +122-1,MD.be_going_to.NEG,MODAL/AUX: be going to,NEG. DEC.,,,A1-B2,B1,,beの時制・相は問わない +122-2,MD.be_going_to.INT.AFF,MODAL/AUX: be going to,AFF. INT.,,,A1-B2,A2,,beの時制・相は問わない;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +122-3,MD.be_going_to.INT.NEG,MODAL/AUX: be going to,NEG. DEC.,,,A1-B2,B1,,beの時制・相は問わない;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +123,MD.can.AFF,MODAL/AUX: can,AFF. DEC.,A1.2,A1,A1-A2,A1-C2,A1, +123-1,MD.can.NEG,MODAL/AUX: can,NEG. DEC.,,B2,A1-B1,A1-C1,A1, +123-2,MD.can.INT.AFF,MODAL/AUX: can,AFF. INT.,A1.2,A1,A1-A2,A1,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +123-3,MD.can.INT.NEG,MODAL/AUX: can,NEG. DEC.,,,A1-A2,A1-B1,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +124,MD.could.AFF,MODAL/AUX: could,AFF. DEC.,B1.1,B1,A2,A2-C2,A2, +124-1,MD.could.NEG,MODAL/AUX: could,NEG. DEC.,B1.1,B1,A2,A2,A2, +124-2,MD.could.INT.AFF,MODAL/AUX: could,AFF. INT.,,B1,A2,A2,A2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定;動詞がV.Pと誤認識されていることもある +124-3,MD.could.INT.NEG,MODAL/AUX: could,NEG. DEC.,,,A2,"B2, C2",A2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定;動詞がV.Pと誤認識されていることもある +125,MD.dare.AFF,MODAL/AUX: dare (to),AFF. DEC.,,,,B2-C2,,dare to(dareの時制・相は問わない)を含む +125-1,MD.dare.NEG,MODAL/AUX: dare (to),NEG. DEC.,,,,"B2, C2",,dare to(dareの時制・相は問わない)を含む +125-2,MD.dare.INT.AFF,MODAL/AUX: dare (to),AFF. INT.,,,,C1,,dare toを含む;文頭(相当)または接続詞直後の位置・疑問 符で終わる文に限定 +125-3,MD.dare.INT.NEG,MODAL/AUX: dare (to),NEG. INT.,,,,C1,,dare toを含む;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +126,MD.had_better.AFF,MODAL/AUX: had better,AFF. DEC.,,B2,,N/A,,疑問文はなし +126-1,MD.had_better.NEG,MODAL/AUX: had better,NEG. DEC.,,,,N/A,,疑問文はなし +127,MD.have_to.AFF,MODAL/AUX: have to,AFF. DEC.,A2.2,A2,A2-B1,A2-C2,A2,haveの時制・相は問わない +127-1,MD.have_to.NEG,MODAL/AUX: have to,NEG. DEC.,B2.2,B1,A2-B1,A2,B1, +127-2,MD.have_to.INT.AFF,MODAL/AUX: have to,AFF. INT.,,,A2-B1,A2,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +127-3,MD.have_to.INT.NEG,MODAL/AUX: have to,NEG. DEC.,,,A2-B1,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +128,MD.have_got_to.AFF,MODAL/AUX: (have) got to,AFF. DEC.,,B2,,A2-C2,,haveの時制・相は問わない(が通常はhave・hasとまれにhadがあるのみ);疑問文を除くため終止符または感嘆符で終わる文に限定 +128-1,MD.have_got_to.NEG,MODAL/AUX: have got to,NEG. DEC.,,,,A2,,haveの時制・相は問わない(が通常はhave・hasとまれにhadがあるのみ) +128-2,MD.have_got_to.INT.AFF,MODAL/AUX: have got to,AFF. INT.,,,,A2,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +128-3,MD.have_got_to.INT.NEG,MODAL/AUX: have got to,NEG. INT.,,,,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +129,MD.may.AFF,MODAL/AUX: may,AFF. DEC.,B1.1,B1,A2-B1,"A2-B1, C2",B2, +129-1,MD.may.NEG,MODAL/AUX: may,NEG. DEC.,,B2,A2-B1,"B1, C1",, +129-2,MD.may.INT.AFF,MODAL/AUX: may,AFF. INT.,,,A2-B1,B1-B2,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +129-3,MD.may.INT.NEG,MODAL/AUX: may,NEG. INT.,,,A2-B1,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +130,MD.may_as_well.AFF,MODAL/AUX: may as well,AFF. DEC.,,,,C2,, +130-1,MD.may_as_well.NEG,MODAL/AUX: may as well,NEG. DEC.,,,,N/A,, +130-2,MD.may_as_well.INT.AFF,MODAL/AUX: may as well,AFF. INT.,,,,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +130-3,MD.may_as_well.INT.NEG,MODAL/AUX: may as well,NEG. INT.,,,,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +131,MD.may_well.AFF,MODAL/AUX: may well,AFF. DEC.,,,,C1,, +131-1,MD.may_well.NEG,MODAL/AUX: may well,NEG. DEC.,,,,N/A,, +131-2,MD.may_well.INT.AFF,MODAL/AUX: may well,AFF. INT.,,,,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +131-3,MD.may_well.INT.NEG,MODAL/AUX: may well,NEG. INT.,,,,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +132,MD.might.AFF,MODAL/AUX: might,B1.1,B1,A2-B1,A2-C2,B2,, +132-1,MD.might.NEG,MODAL/AUX: might,,B2,A2-B1,B1-C1,,, +132-2,MD.might.INT.AFF,MODAL/AUX: might,,,A2-B1,C1,,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +132-3,MD.might.INT.NEG,MODAL/AUX: might,,,A2-B1,N/A,,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +133,MD.might_as_well.AFF,MODAL/AUX: might as well,,,,C2,,, +133-1,MD.might_as_well.NEG,MODAL/AUX: might as well,,,,N/A,,, +133-2,MD.might_as_well.INT.AFF,MODAL/AUX: might as well,,,,N/A,,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +133-3,MD.might_as_well.INT.NEG,MODAL/AUX: might as well,,,,N/A,,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +134,MD.might_well.AFF,MODAL/AUX: might well,,,,N/A,,, +134-1,MD.might_well.NEG,MODAL/AUX: might well,,,,N/A,,, +134-2,MD.might_well.INT.AFF,MODAL/AUX: might well,,,,N/A,,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +134-3,MD.might_well.INT.NEG,MODAL/AUX: might well,,,,N/A,,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +135,MD.must.AFF,MODAL/AUX: must,B1.1,B1,A2-B1,A2-C2,A2,, +135-1,MD.must.NEG,MODAL/AUX: must,,,A2-B1,A2-C2,,, +135-2,MD.must.INT.AFF,MODAL/AUX: must,,,A2-B1,B2,A2,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +135-3,MD.must.INT.NEG,MODAL/AUX: must,,,A2-B1,N/A,,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +136,MD.need.AFF,MODAL/AUX: need (to),A2.2,A2,B1,A2,B1,,needの時制・相は問わない +136-1,MD.need.NEG,MODAL/AUX: need (to),,B1,B1,B2-C1,B1,,needの時制・相は問わない +136-2,MD.need.INT.AFF,MODAL/AUX: need (to),,,B1,C2,,,needの時制・相は問わない;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +136-3,MD.need.INT.NEG,MODAL/AUX: need (to),,,B1,N/A,,,needの時制・相は問わない;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +137,MD.ought_to.AFF,MODAL/AUX: ought to,AFF. DEC.,,B2,B1,B1-C1,B1, +137-1,MD.ought_to.NEG,MODAL/AUX: ought to,NEG. DEC.,,,B1,C2,B1, +137-2,MD.ought_to.INT.AFF,MODAL/AUX: ought to,AFF. INT.,,,B1,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +137-3,MD.ought_to.INT.NEG,MODAL/AUX: ought to,NEG. INT.,,,B1,C2,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +138,MD.shall.AFF,MODAL/AUX: shall,AFF. DEC.,,,,A2-C2,B2, +138-1,MD.shall.NEG,MODAL/AUX: shall,NEG. DEC.,,,,C1,, +138-2,MD.shall.INT,MODAL/AUX: shall,AFF. INT.,,,,A2,A2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +138-3,MD.shall.NEG.INT,MODAL/AUX: shall,NEG. INT.,,,,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +139,MD.should.AFF,MODAL/AUX: should,AFF. DEC.,A2.1,A2,A2,A2-C1,A2, +139-1,MD.should.NEG,MODAL/AUX: should,NEG. DEC.,B1.2,B1,A2,B1-B2,"A2,B2", +139-2,MD.should.INT.AFF,MODAL/AUX: should,AFF. INT.,,,A2,A2,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +139-3,MD.should.INT.NEG,MODAL/AUX: should,NEG. INT.,,,A2,B1,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +140,MD.used_to.AFF,MODAL/AUX: used to,AFF. DEC.,B1.1,B1,A2-C1,"B1, C2",B1,usedがVVNと誤認識されていることも多い +140-1,MD.used_to.NEG,MODAL/AUX: used to,NEG. DEC.,,,A2-C1,"B1, C2",, +140-2,MD.used_to.INT.AFF,MODAL/AUX: used to,AFF. INT.,,,A2-C1,C1,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +140-3,MD.used_to.INT.NEG,MODAL/AUX: used to,NEG. INT.,,,A2-C1,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +141,MD.will.AFF,MODAL/AUX: will,AFF. DEC.,A2.2,A2,A2-B2,A1-C2,A1-B1, +141-1,MD.will.NEG,MODAL/AUX: will,NEG. DEC.,B1.1,B1,A2-B2,A2,B1, +141-2,MD.will.INT.AFF,MODAL/AUX: will,AFF. INT.,,,A2-B2,A2,A2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +141-3,MD.will.INT.NEG,MODAL/AUX: will,NEG. INT.,,,A2-B2,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定;動詞がV.Pと誤認識されていることもある +142,MD.would.AFF,MODAL/AUX: would,AFF. DEC.,A2.1,A1,B1-B2,A1-C2,"A1,B1,B2", +142-1,MD.would.NEG,MODAL/AUX: would,NEG. DEC.,B2.1,B1,B1-B2,"A2, B1","A1,A2,B1", +142-2,MD.would.INT.AFF,MODAL/AUX: would,AFF. INT.,,B1,B1-B2,"A2, B1",A2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +142-3,MD.would.INT.NEG,MODAL/AUX: would,NEG. INT.,,,B1-B2,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +143,MD.would_rather.AFF,MODAL/AUX: would rather,AFF. DEC.,,,,N/A,A2, +143-1,MD.would_rather.NEG,MODAL/AUX: would rather,NEG. DEC.,,,,N/A,, +143-2,MD.would_rather.INT.AFF,MODAL/AUX: would rather,AFF. INT.,,,,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +143-3,MD.would_rather.INT.NEG,MODAL/AUX: would rather,NEG. INT.,,,,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +144,MD.MD_PRG.AFF,AUX+PROGRESSIVE,AFF. DEC.,B2.1,B2,,B2,,助動詞はMDに限定 +144-1,MD.MD_PRG.NEG,AUX+PROGRESSIVE,NEG. DEC.,,,,N/A,,助動詞はMDに限定 +144-2,MD.MD_PRG.INT.AFF,AUX+PROGRESSIVE,AFF. INT.,,,,N/A,,助動詞はMDに限定;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +144-3,MD.MD_PRG.INT.NEG,AUX+PROGRESSIVE,NEG. INT.,,,,N/A,,助動詞はMDに限定;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +145,MD.MD_PF.AFF,AUX+PERFECT,AFF. DEC.,B2.1,B2,B1,"B1-B2, C2",C1,助動詞はMDに限定;完了進行も含まれる +145-1,MD.MD_PF.NEG,AUX+PERFECT,NEG. DEC.,B2.2,B2,B1,"B1, C2",,助動詞はMDに限定;完了進行も含まれる +145-2,MD.MD_PF.INT.AFF,AUX+PERFECT,AFF. INT.,,,B1,N/A,,助動詞はMDに限定;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +145-3,MD.MD_PF.INT.NEG,AUX+PERFECT,NEG. INT.,,,B1,N/A,,助動詞はMDに限定;文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +146,EX.there.AFF,there+be,AFF. DEC.,A1.2,A1,A1,A1-B2,A1,文頭(相当)または接続詞直後の位置に限定 +146-1,EX.there.NEG,there+be,NEG. DEC.,,A1,A1,B1,A1,文頭(相当)または接続詞直後の位置に限定 +146-2,EX.there.INT.AFF,there+be,AFF. INT.,,A1,A1,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定;thereがRBと誤認識されていることも多い +146-3,EX.there.INT.NEG,there+be,NEG. INT.,,,A1,C1,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +147,EX.there.PF.AFF,there+have/has+been,AFF. DEC.,,B2,,N/A,,文頭(相当)または接続詞直後の位置に限定 +147-1,EX.there.PF.NEG,there+have/has+been,NEG. DEC.,,,,N/A,,文頭(相当)または接続詞直後の位置に限定 +147-2,EX.there.PF.INT.AFF,there+have/has+been,AFF. INT.,,,,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +147-3,EX.there.PF.INT.NEG,there+have/has+been,NEG. INT.,,,,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +148,EX.there.MD.AFF,there+AUX+be,AFF. DEC.,,B2,,"B1-B2, C1",,文頭(相当)または接続詞直後の位置に限定;助動詞はMDに限定 +148-1,EX.there.MD.NEG,there+AUX+be,NEG. DEC.,,,,N/A,,文頭(相当)または接続詞直後の位置に限定;助動詞はMDに限定 +148-2,EX.there.MD.INT.AFF,there+AUX+be,AFF. INT.,,,,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定;助動詞はMDに限定 +148-3,EX.there.MD.INT.NEG,there+AUX+be,NEG. INT.,,,,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定;助動詞はMDに限定 +149,EX.here.AFF,here is/are,AFF. DEC.,B1.1,A1,,N/A,,文頭(相当)または接続詞直後の位置に限定;toが後続しないものに限定 +150,CC,COORDINATING CONJUNCTIONS,,A1.1,A1,A1,A1-B1,, +151,CL.that.APP,the fact(s) that+CLAUSE,,,B2,,B2,,名詞はfactに限定;名詞句・代名詞が後続するものに限定 +152,CL.that.OBJ,V+that+CLAUSE,,A2.1,A1,,A2-B1,A2,直接目的語に限定 +153,CL.WH.OBJ,know/wonder+WH-(CLAUSE) (except for 'whether'),,B1.1,B1,,"A2, C1-C2",,動詞はknow/wonderに限定;接続詞のwh-に限定するために名詞句・代名詞が後続するものに限定;what/which+名詞も含まれる +154,CL.WH.whether,whether,,B2.1,B2,,B1,B2,副詞節・目的語・主語・補語などの分類は困難 +155,CL.when,ADVERBIAL CLAUSE: when,,A1.2,A1,,A2,B1,接続詞と疑問詞が区別されないため途中に句読点なし・終 止符または感嘆符で終わる文に限定 +156,CL.if,ADVERBIAL CLAUSE: if,,A2.1,A2,A2,"A2, C1",,仮定法の場合も含まれる +157,CL.as,ADVERBIAL CLAUSE: as,,A2.1,A2,,B2,,前置詞のasも完全に排除はできない +158,CL.as_soon_as,ADVERBIAL CLAUSE: as soon as,,,B1,,B2-B1,B1, +159,CL.by_the_time,ADVERBIAL CLAUSE: by the time,,,,,C1,, +160,CL.so_that,ADVERBIAL CLAUSE: so that,,B2.1,B1,,B1,, +161,CL_after.etc,SUBORDINATE CLAUSE: after/albeit/although/because/before/despite/except/for/lest/like/once/since/so/than/though/till/unless/until/where/whereas/wheresoever/whether/while/whilst tagged as IN,,A1.1,A1,,"B2, C2",,INのタグのついたafter/albeit/although/because/before/despite/except/for/lest/like/once/since/so/than/though/till/unless/until/where/whereas/wheresoever/whether/while/whilstに限定;前置詞も完全に排除はできない +162,CL.that.OMIT,hope/know/think+CLAUSE (without 'that'),,A1.2,A1,,A2,A2,動詞はhope/know/thinkに限定;節部分は名詞句・代名詞+(助)動詞・副詞に限定 +163,PP.it_to_do.AFF,it+BE(+ADV)+ADJ(+for+NP)+to+INFINITIVE,AFF. DEC.,,A2,,B1,B1,文頭(相当)または接続詞直後の位置に限定;it(+助動詞)+{be}(+副詞)+形容詞(+for+名詞句・代名詞)+to+動詞に限定 +163-1,PP.it_to_do.NEG,it+BE(+ADV)+ADJ(+for+NP)+to+INFINITIVE,NEG. DEC.,,,,N/A,B1,文頭(相当)または接続詞直後の位置に限定;it+(助動詞+{not}+{be}|{be}+{not})(+副詞)+形容詞(+for+名詞句・代名詞)+to+動詞に限定 +163-2,PP.it_to_do.INT.AFF,it+BE(+ADV)+ADJ(+for+NP)+to+INFINITIVE,AFF. INT.,,,,N/A,B1,(助動詞+it+be|{be}+it)(+副詞)+形容詞(+for+名詞句・代名詞)+to+動詞に限定;疑問符で終わる文に限定 +163-3,PP.it_to_do.INT.NEG,it+BE(+ADV)+ADJ(+for+NP)+to+INFINITIVE,NEG. INT.,,,,N/A,,(助動詞+n't+it+be|助動詞+it+not+be|{be}+n't+it|{be}+it+not)(+副詞)+形容詞(+for+名詞句・代名詞)+to+動詞に限定;疑問符で終わる文に限定 +164,PP.it_to_do.OBJ,V+it+ADJ(+for+NP)+to+INFINITIVE,,,B2,,N/A,,動詞+it(+副詞)+形容詞(+for+名詞句・代名詞)+to+動詞に限定 +165,PP.it_that.AFF,it+BE(+ADV)+ADJ+that+CLAUSE,AFF. DEC.,,,,B2-C1,,文頭(相当)または接続詞直後の位置に限定;it(+助動詞)+{be}(+副詞)+形容詞+thatに限定 +165-1,PP.it_that.NEG,it+BE(+ADV)+ADJ+that+CLAUSE,NEG. DEC.,,,,N/A,,文頭(相当)または接続詞直後の位置に限定;it+(助動詞+{not}+{be}|{be}+{not})(+副詞)+形容詞+thatに限定 +165-2,PP.it_that.INT.AFF,it+BE(+ADV)+ADJ+that+CLAUSE,AFF. INT.,,,,N/A,,(助動詞+it+be|{be}+it)(+副詞)+形容詞+thatに限定;疑問符で終わる文に限定 +165-3,PP.it_that.INT.NEG,it+BE(+ADV)+ADJ+that+CLAUSE,NEG. INT.,,,,N/A,,(助動詞+n't+it+be|助動詞+it+not+be|{be}+n't+it|{be}+it+not)(+副詞)+形容詞+thatに限定;疑問符で終わる文に限定 +166,PP.V_it_that,V+it+ADJ(+for+NP)+that+CLAUSE,,,,,N/A,,動詞+it(+副詞)+形容詞+thatに限定 +167,TO.WH_to_do,WH-+to+INFINITIVE,,B1.1,A1,,N/A,B2, +168,VG.VG_N,PREMODIFYING PRESENT PARTICIPLE,,A2.1,A1,,C1,,他動詞の進行相を除外するためbe動詞・notが先行しないものに限定;動名詞+目的語の誤認識も多い +169,VG.N_VG,POSTMODIFYING PRESENT,,A1.2,A1,,"B2, C1",,進行相の疑問文や分詞構文などの誤認識も多い +170,VN.VN_N,PREMODIFYING PAST PARTICIPLE,,A1.3,A1,,N/A,,他動詞の受動態を除外するためbe動詞・notが先行しないものに限定;完了相の他動詞を除外するためにhaveが先行しないものに限定(それでもこの誤認識は多い) +171,VN.N_VN,POSTMODIFYING PAST PARTICIPLE,,A1.3,A1,,"B2, C1",,受動態や完了相の疑問文などの誤認識も多い +172,PREL.who,NOMINATIVE RELATIVE PRONOUN: who,,A1.3,A1,B2,A2-B2,B1,名詞に後続し(助)動詞・副詞が後続するものに限定 +173,PREL.which,NOMINATIVE RELATIVE PRONOUN: which,,B2.2,B2,B2,A2-B2,B1,名詞に後続し(助)動詞・副詞が後続するものに限定 +174,PREL.that,NOMINATIVE RELATIVE PRONOUN:,,A1.1,A1,B2,A2,,名詞に後続し(助)動詞・副詞が後続するものに限定 +175,PRELO.who,ACCUSATIVE RELATIVE PRONOUN: who,,B2.2*,B2*,B2*,A2-B2*,B1*,名詞に後続し(助)動詞・副詞が後続するものに限定 +176,PRELO.whom,ACCUSATIVE RELATIVE PRONOUN: whom,,B2.2*,B2*,B2*,A2-B2*,B1*,名詞に後続し(助)動詞・副詞が後続するものに限定 +177,PRELO.which,ACCUSATIVE RELATIVE PRONOUN: which,,B2.2*,B2*,B2*,A2-B2*,B1*,名詞に後続し(助)動詞・副詞が後続するものに限定 +178,PRELO.that,ACCUSATIVE RELATIVE PRONOUN: that,,B2.2*,B2*,B2*,A2-B2*,B1*,名詞に後続し(助)動詞・副詞が後続するものに限定 +179,PRELO.OMIT,ELLIPTICAL ACCUSATIVE RELATIVE PRONOUN,,A1.1,A1,B2,A2,,名詞の後に名詞句・代名詞+(助)動詞・副詞が後続するものに限定 +180,PRELGEN,GENITIVE RELATIVE PRONOUN,,,B2,B2,B1-B2,B2,名詞に後続するものに限定 +181,PREL.NR,RELATIVE PRONOUN: NONRESTRICTIVE,,B1.1,B1,B2,A2-B2,B2,"Excuse me, which ...?などを除外するため名詞に続くものに限定;格は問わない" +182,PREL.as,PSEUDO RELATIVE PRONOUN: as,,,B2,,N/A,,(助)動詞が後続するものに限定 +183,PREL.what,COMPOUND RELATIVE PRONOUN:,,A2.1,A1,,N/A,,代名詞が後続するものに限定;疑問詞のwhatも含まれる +184,PREL.PREP_PREL,PREP+RELATIVE PRONOUN,,B2.1,B1,,B2,, +185,RBREL,RELATIVE ADVERB: WITH,,A2.1,A1,,B1,,直前に先行詞があるものに限定;接続詞のwhenも含まれる +186,RBREL.NOANT,RELATIVE ADVERB: WITHOUT ANTECEDENT,,B1.1,A2,,B1,,be動詞か前置詞に後続し名詞句・代名詞が後続するものに限定 +187,RBREL.NR,RELATIVE ADVERB: NONRESTRICTIVE,,,B2,,B1,,疑問文・when necessaryなどを除外するため名詞句・代名詞と任意の語が後続し終止符または感嘆符で文が終わるものに限定;接続詞のwhenも含まれる +188,WH.-ever,WH-EVER,,B2.1,B2,,C1-C2,,品詞は限定しない;副詞のhoweverを除外するためにhoweverは対象外とする +189,PREP.STRAND,PREPOSITION STRANDING,,A1.1,A1,,"A2, B2",,文末に前置詞があるものに限定 +190,EXCL.how_JJ.RB,EXCLAMATION: How ADJ/ADV ...!,EXCLAMATION,,,,"B1, C2",,文頭(相当)位置・途中に句読点なし・感嘆符で終わる文に限定 +191,EXCL.how,EXCLAMATION: How ...!,EXCLAMATION,,,,N/A,,文頭(相当)位置・途中に句読点なし・感嘆符で終わる文に限定;ほとんどがhow+形容詞/副詞 +192,EXCL.what,EXCLAMATION: What ...!,EXCLAMATION,,,,A2,,文頭(相当)位置・途中に句読点なし・感嘆符で終わる文に限定 +193,TAG.AFF,TAG QUESTION: FOLLOWING AFFIRMATIVE SENTENCE,(MAIN CLAUSE) AFF. DEC.,,B1,B1,"A2-B1, C2",A2, +193-1,TAG.NEG,TAG QUESTION: FOLLOWING NEGATIVE SENTENCE,(MAIN CLAUSE) NEG. DEC.,,B2,B1,"A2-B1, C2",A2,否定語(+句読点を除く任意の語句)に後続するものに限定 +194,VP.SV.AFF,SENTENCE PATTERN: SUBJECT+V,AFF. DEC.,B1.2,A1,,N/A,,名詞句・代名詞(+助動詞)+動詞のみから成る文に限定;単純相に限定 +194-1,VP.SV.NEG,SENTENCE PATTERN: SUBJECT+V,NEG. DEC.,,A1,,N/A,,名詞句・代名詞(+助動詞)+動詞のみから成る文に限定;単純相に限定 +194-2,VP.SV.INT.AFF,SENTENCE PATTERN: SUBJECT+V,AFF. INT.,,A1,,N/A,,名詞句・代名詞(+助動詞)+動詞のみから成る文に限定;単純相に限定 +194-3,VP.SV.INT.NEG,SENTENCE PATTERN: SUBJECT+V,NEG. INT.,,,,N/A,,名詞句・代名詞(+助動詞)+動詞のみから成る文に限定;単純相に限定 +195,VP.SVC.AFF,SENTENCE PATTERN: SUBJECT+BECOME/FEEL/GO/LOOK/SEEM/SOUND+COMPLEMENT (ADJ),AFF. DEC.,,A2,,"A2, B2",,名詞句・代名詞(+助動詞)+動詞(+副詞)+形容詞のみから成る文に限定;動詞はbecome・feel・go・look・seem・soundに限定;補語は形容詞に限定;単純相に限定 +195-1,VP.SVC.NEG,SENTENCE PATTERN: SUBJECT+BECOME/FEEL/GO/LOOK/SEEM/SOUND+COMPLEMENT (ADJ),NEG. DEC.,,,,N/A,,名詞句・代名詞(+助動詞)+動詞(+副詞)+形容詞のみから成る文に限定;動詞はbecome・feel・go・look・seem・soundに限定;補語は形容詞に限定;単純相に限定 +195-2,VP.SVC.INT.AFF,SENTENCE PATTERN: SUBJECT+BECOME/FEEL/GO/LOOK/SEEM/SOUND+COMPLEMENT (ADJ),AFF. INT.,,,,N/A,,名詞句・代名詞(+助動詞)+動詞(+副詞)+形容詞のみから成る文に限定;動詞はbecome・feel・go・look・seem・soundに限定;補語は形容詞に限定;単純相に限定 +195-3,VP.SVC.INT.NEG,SENTENCE PATTERN: SUBJECT+BECOME/FEEL/GO/LOOK/SEEM/SOUND+COMPLEMENT (ADJ),NEG. INT.,,,,N/A,,名詞句・代名詞(+助動詞)+動詞(+副詞)+形容詞のみから成る文に限定;動詞はbecome・feel・go・look・seem・soundに限定;補語は形容詞に限定;単純相に限定 +196,VP.SVO.AFF,SENTENCE PATTERN: SUBJECT+V+OBJECT,AFF. DEC.,A1.1,A1,,"A1, B2",A1,名詞句・代名詞(+助動詞)+動詞+名詞句・代名詞のみから成る文に限定;単純相に限定 +196-1,VP.SVO.NEG,SENTENCE PATTERN: SUBJECT+V+OBJECT,NEG. DEC.,A2.1,A1,,N/A,A1,名詞句・代名詞(+助動詞)+動詞+名詞句・代名詞のみから成る文に限定;単純相に限定 +196-2,VP.SVO.INT.AFF,SENTENCE PATTERN: SUBJECT+V+OBJECT,AFF. INT.,A1.2,A1,,N/A,A1,名詞句・代名詞(+助動詞)+動詞+名詞句・代名詞のみから成る文に限定;単純相に限定 +196-3,VP.SVO.INT.NEG,SENTENCE PATTERN: SUBJECT+V+OBJECT,NEG. INT.,,,,N/A,A1,名詞句・代名詞(+助動詞)+動詞+名詞句・代名詞のみから成る文に限定;単純相に限定 +197,VP.SVOO.AFF,SENTENCE PATTERN: SUBJECT+GIVE/PASS/SEND/SHOW/TEACH/TELL+INDIRECT OBJECT+DIRECT OBJECT,AFF. DEC.,,,,A2,A1,名詞句・代名詞(+助動詞)+動詞+名詞句・代名詞+名詞句の みから成る文に限定;動詞はgive・pass・send・show・teach・ tellに限定;単純相に限定 +197-1,VP.SVOO.NEG,SENTENCE PATTERN: SUBJECT+GIVE/PASS/SEND/SHOW/TEACH/TELL+INDIRECT OBJECT+DIRECT OBJECT,NEG. DEC.,,,,"A2, C2",,名詞句・代名詞(+助動詞)+動詞+名詞句・代名詞+名詞句のみから成る文に限定;動詞はgive・pass・send・show・teach・tellに限定;単純相に限定 +197-2,VP.SVOO.INT.AFF,SENTENCE PATTERN: SUBJECT+GIVE/PASS/SEND/SHOW/TEACH/TELL+INDIRECT OBJECT+DIRECT OBJECT,AFF. INT.,,,,N/A,,名詞句・代名詞(+助動詞)+動詞+名詞句・代名詞+名詞句のみから成る文に限定;動詞はgive・pass・send・show・teach・tellに限定;単純相に限定 +197-3,VP.SVOO.INT.NEG,SENTENCE PATTERN: SUBJECT+GIVE/PASS/SEND/SHOW/TEACH/TELL+INDIRECT OBJECT+DIRECT OBJECT,NEG. INT.,,,,N/A,,名詞句・代名詞(+助動詞)+動詞+名詞句・代名詞+名詞句のみから成る文に限定;動詞はgive・pass・send・show・teach・tellに限定;単純相に限定 +198,VP.SVOtoO.AFF,SENTENCE PATTERN: SUBJECT+GIVE/PASS/SEND/SHOW/TEACH/TELL+DIRECT OBJECT+to+INDIRECT OBJECT,AFF. DEC.,,,,B1,A2,名詞句・代名詞(+助動詞)+動詞+名詞句・代名詞+to+名詞句・代名詞のみから成る文に限定;動詞はgive・pass・send・show・teach・tellに限定;単純相に限定 +198-1,VP.SVOtoO.NEG,SENTENCE PATTERN: SUBJECT+GIVE/PASS/SEND/SHOW/TEACH/TELL+DIRECT OBJECT+to+INDIRECT OBJECT,NEG. DEC.,,,,N/A,,名詞句・代名詞(+助動詞)+動詞+名詞句・代名詞+to+名詞句・代名詞のみから成る文に限定;動詞はgive・pass・send・show・teach・tellに限定;単純相に限定 +198-2,VP.SVOtoO.INT.AFF,SENTENCE PATTERN: SUBJECT+GIVE/PASS/SEND/SHOW/TEACH/TELL+DIRECT OBJECT+to+INDIRECT OBJECT,AFF. INT.,,,,N/A,,名詞句・代名詞(+助動詞)+動詞+名詞句・代名詞+to+名詞句・代名詞のみから成る文に限定;動詞はgive・pass・send・show・teach・tellに限定;単純相に限定 +198-3,VP.SVOtoO.INT.NEG,SENTENCE PATTERN: SUBJECT+GIVE/PASS/SEND/SHOW/TEACH/TELL+DIRECT OBJECT+to+INDIRECT OBJECT,NEG. INT.,,,,N/A,,名詞句・代名詞(+助動詞)+動詞+名詞句・代名詞+to+名詞句・代名詞のみから成る文に限定;動詞はgive・pass・send・show・teach・tellに限定;単純相に限定 +199,VP.SVOC.AFF,SENTENCE PATTERN: SUBJECT+MAKE+OBJECT+COMPLEME NT (ADJ),AFF. DEC.,,,A2,B1-B2,,名詞句・代名詞(+助動詞)+動詞+名詞句・代名詞(+副詞)+形容詞のみから成る文に限定;動詞はmakeに限定;make+複 合名詞を除外するため補語は形容詞に限定;単純相に限定 +199-1,VP.SVOC.NEG,SENTENCE PATTERN: SUBJECT+MAKE+OBJECT+COMPLEME NT (ADJ),NEG. DEC.,,,A2,N/A,,名詞句・代名詞(+助動詞)+動詞+名詞句・代名詞(+副詞)+形容詞のみから成る文に限定;動詞はmakeに限定;make+複合名詞を除外するため補語は形容詞に限定;単純相に限定 +199-2,VP.SVOC.INT.AFF,SENTENCE PATTERN: SUBJECT+MAKE+OBJECT+COMPLEME NT (ADJ),AFF. INT.,,,A2,N/A,,名詞句・代名詞(+助動詞)+動詞+名詞句・代名詞(+副詞)+形容詞のみから成る文に限定;動詞はmakeに限定;make+複合名詞を除外するため補語は形容詞に限定;単純相に限定 +199-3,VP.SVOC.INT.NEG,SENTENCE PATTERN: SUBJECT+MAKE+OBJECT+COMPLEME NT (ADJ),NEG. INT.,,,A2,N/A,,名詞句・代名詞(+助動詞)+動詞+名詞句・代名詞(+副詞)+形容詞のみから成る文に限定;動詞はmakeに限定;make+複合名詞を除外するため補語は形容詞に限定;単純相に限定 +200,INDSP.explain.report.say,INDIRECT SPEECH: SAY/EXPLAIN/REPORT,,A2.2,A2,B1-B2,"A1, B2",A2,動詞はexplain/report/sayに限定 +201,INDSP.tell,INDIRECT SPEECH: TELL,,B1.2,B1,B1-B2,A2-B2,,動詞はtellに限定 +202,INDQ.know.etc,INDIRECT QUESTION: DECIDE/EXPLAIN/KNOW/LEARN/SEE/UNDERSTAND/WONDER,,A2.1,A1,,B1-B2,,SVOの目的語が間接疑問のもの;動詞はdecide/explain/know/learn/see/understand/wonderに限定;間接疑問を導く接続詞はif/whether/疑問詞に限定;to不定詞が後続するものも含まれる +203,INDQ.ask.etc,INDIRECT QUESTION: ASK/REMIND/SHOW/TEACH/TELL,,B1.1,A2,,B1-B2,B1,SVOOの直接目的語が間接疑問のもの;動詞はask/remind/show/teach/tellに限定;間接疑問を導く接続詞はif/whether/疑問詞に限定;to不定詞が後続するものも含まれる +204,EMP.PP.RB.AFF,CLEFT SENTENCE FOCUSING ON PREPOSITIONAL PHRASE/ADVERB,AFF. DEC.,,B2,,,, +204-1,EMP.PP.RB.NEG,CLEFT SENTENCE FOCUSING ON PREPOSITIONAL PHRASE/ADVERB,NEG. DEC.,,,,,, +204-2,EMP.PP.RB.INT.AFF,CLEFT SENTENCE FOCUSING ON PREPOSITIONAL PHRASE/ADVERB,AFF. INT.,,,,,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +204-3,EMP.PP.RB.INT.NEG,CLEFT SENTENCE FOCUSING ON PREPOSITIONAL PHRASE/ADVERB,NEG. INT.,,,,,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +205,EMP.what.CLEFT.AFF,PSEUDO-CLEFT SENTENCE: WHAT,(MAIN CLAUSE) AFF. DEC.,,,,,,what(+名詞句・代名詞)(+助動詞)+動詞(+名詞句・代名詞)+{be}+名詞句・代名詞のみから成る文に限定 +205-1,EMP.what.CLEFT.NEG,PSEUDO-CLEFT SENTENCE: WHAT,(MAIN CLAUSE) NEG. DEC.,,,,,,what(+名詞句・代名詞)(+助動詞)+動詞(+名詞句・代名詞)+{be}+名詞句・代名詞のみから成る文に限定 +206,CAUS.have.let.make,HAVE/LET/MAKE+NP+INFINITIVE,,A2.1,A2,,"B1, C2",,使役動詞はhave/let/makeに限定 +207,CAUS.have.get_NP_VN,HAVE/GET+NP+PAST PARTICIPLE,AFF. DEC./NEG. DEC.,B2.2,B2,,B2,B1,Have you been ...?などを除外するため主語(+助動詞)またはtoに続くものに限定 +208,CAUS.get_NP_VVG,GET+NP+PRESENT PARTICIPLE,,,,,C1,, +209,CAUS.ask.tell_NP_to_do,ASK/TELL+NP+to+INFINITIVE,,B1.1,B1,,B1-B2,,getはget+目的語と目的のto不定詞の結合が多いため除外 +210,PERC.VI,FEEL/HEAR/SEE+NP+INFINITIVE,,,B2,,,,知覚動詞はfeel/hear/seeに限定;feelの場合原形不定詞がV.Pと誤認識されているものも多い +211,PERC.VG,FEEL/HEAR/SEE+NP+PRESENT PARTICIPLE,,,B2,,,,知覚動詞はfeel/hear/seeに限定 +212,PERC.VN,FEEL/HEAR/SEE+NP+PAST PARTICIPLE,,,,,,,知覚動詞はfeel/hear/seeに限定 +213,VG.P.AFF,PARTICIPIAL CONSTRUCTION: PRESENT PARTICIPLE,(SUBORDINATE CLAUSE) AFF. DEC.,B1.1,B1,,B2-C1,C1,カンマ後を除く文頭(相当)位置・途中に句読点なし・1~10語が後続した後にカンマがあるものに限定;動名詞主語の場 +213-1,VG.P.NEG,PARTICIPIAL CONSTRUCTION: PRESENT PARTICIPLE,(SUBORDINATE CLAUSE) NEG. DEC.,,,,N/A,,カンマ後を除く文頭(相当)位置・途中に句読点なし・1~10語が後続した後にカンマがあるものに限定;動名詞主語の場 +214,VN.P.AFF,PARTICIPIAL CONSTRUCTION: PAST PARTICIPLE,(SUBORDINATE CLAUSE) AFF. DEC.,,B2,,B1-B2,,カンマ後を除く文頭(相当)位置・途中に句読点なし・1~10語 が後続した後にカンマがあるものに限定;形容詞的過去分 詞が修飾する名詞が主語の場合あり;comeで始まる命令文 の誤認識が多い +214-1,VN.P.NEG,PARTICIPIAL CONSTRUCTION: PAST PARTICIPLE,(SUBORDINATE CLAUSE) NEG. DEC.,,,,N/A,,カンマ後を除く文頭(相当)位置・途中に句読点なし・1~10語が後続した後にカンマがあるものに限定;形容詞的過去分詞が修飾する名詞が主語の場合あり +215,SUBJ.PAST.AFF,CONDITIONAL: SECOND,(SUBORDINATE CLAUSE) AFF. DEC.,B1.2,B1,B1-C1,"A2-B1, B2",B2,名詞節を除外するため動詞が先行しないか文頭の位置に限定;過去完了を除外するため過去分詞・notが後続しないものに限定;単なる条件文も含まれる +215-1,SUBJ.PAST.NEG,CONDITIONAL: SECOND,(SUBORDINATE CLAUSE) NEG. DEC.,,,B1-C1,N/A,,名詞節を除外するため動詞が先行しないか文頭の位置に限定;過去完了を除外するため過去分詞・notが後続しないものに限定;単なる条件文も含まれる +216,SUBJ.PASTPF.AFF,CONDITIONAL: THIRD,(SUBORDINATE CLAUSE) AFF. DEC.,,B2,B1-C1,C1,B2,名詞節を除外するため動詞が先行しないか文頭の位置に限定 +216-1,SUBJ.PASTPF.NEG,CONDITIONAL: THIRD,(SUBORDINATE CLAUSE) NEG. DEC.,,,B1-C1,B1,,名詞節を除外するため動詞が先行しないか文頭の位置に限定 +217,SUBJ.PRS.AFF,DEMAND/INSIST/ORDER/PROPOSE/RECOMMEND/REQUIRE/SUGGEST+NP+INFINITIVE,(SUBORDINATE CLAUSE) AFF. DEC.,,B2,,,,動詞はdemand/insist/order/propose/recommend/require/suggestに限定 +217-1,SUBJ.PRS.NEG,DEMAND/INSIST/ORDER/PROPOSE/RECOMMEND/REQUIRE/SUGGEST+NP+INFINITIVE,(SUBORDINATE CLAUSE) NEG. DEC.,,,,,,動詞はdemand/insist/order/propose/recommend/require/suggestに限定 +218,SUBJ.wish_PAST,WISH+SECOND CONDITIONAL,(SUBORDINATE CLAUSE) AFF.DEC./NEG. DEC.,,,B2-C1,B1,B2,過去完了を除外するため過去分詞が後続しないものに限定 +219,SUBJ.wish_PASTPF,WISH+THIRD CONDITIONAL,(SUBORDINATE CLAUSE) AFF.DEC./NEG. DEC.,,,B2-C1,B2,, +220,SUBJ.as_if.though_PAST,AS IF/THOUGH+SECOND CONDITIONAL,(SUBORDINATE CLAUSE) AFF.DEC./NEG. DEC.,,,,B1,B2,過去完了を除外するため過去分詞が後続しないものに限定 +221,SUBJ.as_if.though_PASTPF,AS IF/THOUGH+THIRD CONDITIONAL,(SUBORDINATE CLAUSE) AFF.DEC./NEG. DEC.,,,,N/A,C1, +222,SUBJ.if_only_PAST,IF ONLY+SECOND CONDITIONAL,(SUBORDINATE CLAUSE) AFF.DEC./NEG. DEC.,,,C1,N/A,B2,過去完了を除外するため過去分詞が後続しないものに限定 +223,SUBJ.if_only_PASTPF,IF ONLY+THIRD CONDITIONAL,(SUBORDINATE CLAUSE) AFF.DEC./NEG. DEC.,,,C1,B2、C2,, +224,SUBJ.if_should,IF+SHOULD (e.g. if it should rain tomorrow),(SUBORDINATE CLAUSE) AFF. DEC.,,,,C1,,名詞節を除外するため動詞が先行しないか文頭の位置に限定;従属節が否定の用法はない +225,SUBJ.INV.PAST,"INVERSION: SECOND CONDITIONAL (e.g. Were I in your place, ....)",(SUBORDINATE CLAUSE) AFF.DEC./NEG. DEC.,,,,,,カンマ後を除く文頭(相当)または接続詞直後の位置・途中に句読点なし・終止符で終わる文に限定 +226,SUBJ.INV.PASTPF,"INVERSION: THIRD CONDITIONAL (e.g. Had I known it, ....)",(SUBORDINATE CLAUSE) AFF.DEC./NEG. DEC.,,,,,,カンマ後を除く文頭(相当)または接続詞直後の位置・途中に句読点なし・終止符で終わる文に限定 +227,SUBJ.INV.should,INVERSION: CONDITIONAL WITH SHOULD (e.g. Should it rain tomorrow.....),(SUBORDINATE CLAUSE) AFF.DEC./NEG. DEC.,,,,C1,,カンマ後を除く文頭(相当)または接続詞直後の位置・途中に句読点なし・終止符で終わる文に限定 +228,SUBJ.if_it_were_not_for,if it were not for ...,(SUBORDINATE CLAUSE) NEG. DEC.,,,,C2,, +229,SUBJ.were_it_not_for,were it not for ...,(SUBORDINATE CLAUSE) NEG. DEC.,,,,C2,, +230,SUBJ.if_it_hadn't_been_for,if it hadn't been for ...,(SUBORDINATE CLAUSE) NEG. DEC.,,,,C2,, +231,SUBJ.had_it_not_been_for,had it not been for ...,(SUBORDINATE CLAUSE) NEG. DEC.,,,,C2,, +232,INV.so_V_NP,INVERSION: so+BE/HAVE/DO/AUX+PERSONAL PRON,(PRECEDING SENTENCE) AFF. DEC.,,,,"B2, C2",B2,文頭(相当)または接続詞直後かつ文末の位置に限定 +233,INV.neither._V_NP,INVERSION: neither/nor+BE/HAVE/DO/AUX+PERSONAL PRON,(PRECEDING SENTENCE) NEG. DEC.,,,,B2,B2,文頭・句読点直後・接続詞直後かつ文末の位置に限定;norはCCタグが付与されるがneitherは様々なタグが付与される +234,INV.never.etc,INVERSION: Hardly/Little/Never/No sooner/Scarcely/Seldom ....,NEG. DEC.,,,C1,"B2, C2",,文頭(相当)または接続詞直後の位置・終止符で終わる文に限定 +235,INT.why,WH- QUESTION: Why ...?,AFF. INT./NEG. INT.,A1.2,A1,A1-(A2)-B1,A2-C1,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +236,INT.when,WH- QUESTION: When ...?,AFF. INT./NEG. INT.,,A1,A1,A2-C1,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +237,INT.who,WH- QUESTION: Who ...?,AFF. INT./NEG. INT.,B2.2,A1,B1,A2-C1,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +238,INT.whom,WH- QUESTION: Whom ...?,AFF. INT./NEG. INT.,,,,A2-C1,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +239,INT.what,WH- QUESTION: What ...?,AFF. INT./NEG. INT.,A1.1,A1,A1-B1,A2-C1,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +240,INT.what_N,WH- QUESTION: What N ...?,AFF. INT./NEG. INT.,,A1,A1,A2-C1,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +241,INT.which,WH- QUESTION: Which ...?,AFF. INT./NEG. INT.,,A2,,A2-C1,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +242,INT.which_N,WH- QUESTION: Which N ...?,AFF. INT./NEG. INT.,,,,A2-C1,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +243,INT.whose,WH- QUESTION: Whose ...?,AFF. INT./NEG. INT.,,,,A2-C1,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +244,INT.whose_N,WH- QUESTION: Whose N ...?,AFF. INT./NEG. INT.,,,,A2-C1,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +245,INT.where,WH- QUESTION: Where ...?,AFF. INT./NEG. INT.,A1.3,A1,,A2-C1,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +246,INT.how,WH- QUESTION: How ...?,AFF. INT./NEG. INT.,A1.1,A1,,A2-C1,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +247,INT.how_JJ.RB,WH- QUESTION: How ADJ/ADV ...?,AFF. INT./NEG. INT.,A1.1,A1,A1-(A2)-B1,N/A,A1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +248,INT.PREP_WH,WH- QUESTION: PREP what/which/whom/whose ...?,AFF. INT./NEG. INT.,,,,N/A,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +249,INTF.can_you,FUNCTIONAL QUESTION: Can you ...?,AFF. INT.,A2.1,A1,,A1-A2,A2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +249-1,INTF.can't_you,FUNCTIONAL QUESTION: Can't you ...?,NEG. INT.,,,,B1,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +250,INTF.could_you,FUNCTIONAL QUESTION: Could you ...?,AFF. INT.,,B1,,B1,A2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +250-1,INTF.couldn't_you,FUNCTIONAL QUESTION: Couldn't you ...?,NEG. INT.,,,,B1,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +251,INTF.will_you,FUNCTIONAL QUESTION: Will you ...?,AFF. INT.,,,,"A2-B2 ,C2",A2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +251-1,INTF.won't_you,FUNCTIONAL QUESTION: Won't you ...?,NEG. INT.,,,,B1,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +252,INTF.would_you,FUNCTIONAL QUESTION: Would you ...?,AFF. INT.,,A2,,A2,A2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +252-1,INTF.wouldn't_you,FUNCTIONAL QUESTION: Wouldn't you ...?,NEG. INT.,,,,B1,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +253,INTF.can_I,FUNCTIONAL QUESTION: Can I ...?,AFF. INT.,,A1,A1,A1,A2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +254,INTF.could_I,FUNCTIONAL QUESTION: Could I ...?,AFF. INT.,,,A1,B1,A2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +255,INTF.may_I,FUNCTIONAL QUESTION: May I ...?,AFF. INT.,,,,B1-B2,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +256,INTF.shall_I,FUNCTIONAL QUESTION: Shall I ...?,AFF. INT.,,,,A2,A2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +257,INTF.shall_we,FUNCTIONAL QUESTION: Shall we ...?,AFF. INT.,,,,A2,A2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +258,INTF.should_I,FUNCTIONAL QUESTION: Should I ...?,AFF. INT.,,,,A2,,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +259,INTF.why_don't_you,FUNCTIONAL QUESTION: Why don't you ...?,NEG. INT.,,,,"A2, B2",A2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +260,INTF.why_don't__we,FUNCTIONAL QUESTION: Why don't we ...?,NEG. INT.,,,,"A2, B2",A2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +261,INTF.why_not,FUNCTIONAL QUESTION: Why not ...?,NEG. INT.,,,,N/A,A2,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 +262,INTF.how_about,FUNCTIONAL QUESTION: How about ...?,AFF. INT.,,,,N/A,B1,文頭(相当)または接続詞直後の位置・疑問符で終わる文に限定 \ No newline at end of file diff --git a/kouyu_english/tool/courses/lexicon/cefrj-vocabulary-profile-1.5.csv b/kouyu_english/tool/courses/lexicon/cefrj-vocabulary-profile-1.5.csv new file mode 100644 index 0000000..e89799a --- /dev/null +++ b/kouyu_english/tool/courses/lexicon/cefrj-vocabulary-profile-1.5.csv @@ -0,0 +1,7800 @@ +headword,pos,CEFR,CoreInventory 1,CoreInventory 2,Threshold +a,determiner,A1,,, +a.m./A.M./am/AM,adverb,A1,,, +abandon,verb,B1,,, +abandoned,adjective,B2,,, +ability,noun,A2,,, +able,adjective,B1,,, +abnormal,adjective,B1,,, +abnormally,adverb,B2,,, +aboard,adverb,B1,,, +abolish,verb,B2,,, +aboriginal,adjective,B2,,, +aborigine,noun,B1,Nationalities and countries,, +about,adverb,A1,,, +about,preposition,A1,,, +above,adjective,B1,,, +above,adverb,A1,,, +above,preposition,A1,,, +abroad,adverb,A2,,, +abruptly,adverb,B2,,, +absence,noun,B1,,, +absent,adjective,B1,,, +absentee,noun,B2,,, +absolute,adjective,B1,,, +absolutely,adverb,B1,,, +absorb,verb,B1,,, +abstract,adjective,B1,,, +absurd,adjective,B2,,, +abundance,noun,B1,,, +abundant,adjective,B1,,, +abuse,noun,B2,"News, lifestyles and current affairs",, +academic,adjective,B1,,, +academy,noun,B1,Education,, +accent,noun,B1,Education,,Education +accept,verb,A2,,, +acceptable,adjective,A2,,, +acceptance,noun,B1,,, +access,noun,B1,Ways of travelling,,Travel +access,verb,B2,,, +accessibility,noun,B2,,, +accessible,adjective,B1,,, +accessory,noun,B1,Shopping,,Shopping +accident,noun,A2,"News, lifestyles and current affairs",,Health and body care +accidental,adjective,B1,,, +accidentally,adverb,B1,,, +accommodation,noun,B2,Travel and services vocab,,Travel +accompany,verb,B1,,, +accomplish,verb,B1,,, +according to,preposition,B1,,, +accordingly,adverb,B2,,, +account,noun,A2,"Things in the town, shops and shopping",,Services +account,verb,B1,,, +accountant,noun,B1,Work and Jobs,,Personal identification +accumulate,verb,B2,,, +accuracy,noun,B1,,, +accurate,adjective,B1,,, +accurately,adverb,B1,,, +accusation,noun,B2,"News, lifestyles and current affairs",, +accuse,verb,B1,,, +accustom,verb,B1,,, +ache,noun,B1,Travel and services vocab,,Health and body care +ache,verb,B2,,, +achievable,adjective,B2,,, +achieve,verb,A2,,, +achievement,noun,B1,Education,, +acid,noun,B2,,, +acknowledge,verb,B1,,, +acknowledgment/acknowledgement,noun,B1,,, +acquaintance,noun,B1,Personal information,, +acquire,verb,B1,,, +acquisition,noun,B2,Education,, +across,adverb,A2,,, +across,preposition,A2,,, +act,noun,A2,Hobbies and pastimes,,"Free time, entertainment" +act,verb,B1,,, +action,noun,A1,,, +active,adjective,B1,,, +actively,adverb,B2,,, +activity,noun,A1,Leisure activities,,"Free time, entertainment" +actor,noun,A1,Work and Jobs,Film,Personal identification +actress,noun,B1,Work and Jobs,Film,Personal identification +actual,adjective,B2,,, +actually,adverb,A2,,, +acute,adjective,B2,,, +ad,noun,B1,Media,, +adapt,verb,B1,,, +adaptable,adjective,B2,,, +add,verb,A1,,, +addict,noun,B2,"News, lifestyles and current affairs",, +addicted,adjective,B2,,, +addiction,noun,B2,"News, lifestyles and current affairs",, +addition,noun,A2,Collocation,,Language +additional,adjective,A2,,, +additionally,adverb,B2,,, +address,noun,A1,Personal information,,Personal identification +address,verb,B1,,, +addressee,noun,B1,,, +adequate,adjective,B2,,, +adequately,adverb,B2,,, +adjective,noun,A2,Education,,Language +adjust,verb,A2,,, +adjustment,noun,B2,,, +administration,noun,B1,Travel and services vocab,, +administrative,adjective,B2,,, +admirable,adjective,B2,,, +admiration,noun,B1,,, +admire,verb,A2,,, +admiringly,adverb,B2,,, +admission,noun,B1,Education,, +admit,verb,A2,,, +admittedly,adverb,B2,,, +adopt,verb,B1,,, +adopted,adjective,B2,,, +adoption,noun,B2,,, +adorable,adjective,B1,,, +adore,verb,B2,,, +adorn,verb,B2,,, +adult,adjective,A2,,, +adult,noun,A2,,,Personal identification +advance,noun,B2,,, +advance,verb,B1,,, +advanced,adjective,A2,,, +advancement,noun,B2,,, +advantage,noun,A2,Work and Jobs,, +advent,noun,B2,Books and literature,, +adventure,noun,A2,Books and literature,,"Free time, entertainment" +adventurous,adjective,B2,,, +adverb,noun,B1,Education,,Education +adverbial,adjective,B1,,, +adverse,adjective,B2,,, +adversely,adverb,B2,,, +adversity,noun,B2,,, +advert,noun,B1,,, +advertise,verb,B1,,, +advertisement,noun,A2,Shopping,,Services +advertising,noun,A2,Shopping,,Services +advice,noun,A2,,, +advise,verb,A2,,, +adviser/advisor,noun,B1,Education,Work and Jobs,Personal identification +aerobics,noun,B1,Hobbies and pastimes,,"Free time, entertainment" +affair,noun,A2,Work and Jobs,"News, lifestyles and current affairs", +affect,verb,B1,,, +affection,noun,B1,,, +affectionate,adjective,B2,,, +affectionately,adverb,B2,,, +afford,verb,B1,,, +affordable,adjective,B2,,, +afraid,adjective,A1,,, +after,adverb,A2,,, +after,conjunction,B1,,, +after,preposition,A1,,, +afternoon,noun,A1,,, +afterward,adverb,B1,,, +afterwards,adverb,B1,,, +again,adverb,A1,,, +against,preposition,A2,,, +age,noun,A1,Personal information,,Personal identification +aged,adjective,A2,,, +ageless,adjective,B2,,, +agency,noun,A2,Travel and services vocab,,Travel +agenda,noun,B1,Work and Jobs,, +agent,noun,A2,"Things in the town, shops and shopping",,Services +aggressive,adjective,B1,,, +aggressively,adverb,B2,,, +ago,adverb,A1,,, +agonize/agonise,verb,B2,,, +agony,noun,B2,Books and literature,, +agree,verb,A1,,, +agreement,noun,B1,Work and Jobs,, +agricultural,adjective,B1,,, +agriculture,noun,B1,Food and drink,Work and Jobs, +ahead,adverb,A2,,, +aid,noun,B1,,, +aid,verb,B1,,, +aim,noun,B1,,, +aim,verb,B2,,, +air,noun,A2,,, +air conditioning,noun,B1,Objects and rooms,,"House and home, environment" +air force,noun,B1,,,Personal identification +aircraft,noun,B2,,, +aircrew,noun,B2,Work and Jobs,,Personal identification +airline,noun,B1,Travel and services vocab,,Travel +airplane/aeroplane,noun,A1,Ways of travelling,,Travel +airport,noun,A1,Travel and services vocab,"Things in the town, shops and shopping",Travel +aisle,noun,A2,Travel and services vocab,,Travel +alarm,noun,A2,,, +alarm,verb,B1,,, +alarm clock,noun,A2,,,"House and home, environment" +album,noun,A1,Objects and rooms,,Daily life +alcohol,noun,B1,Food and drink,,Food and drink +alcoholic,adjective,B1,,, +alcoholic,noun,B2,"News, lifestyles and current affairs",,Food and drink +alcoholism,noun,B2,"News, lifestyles and current affairs",, +alert,verb,B2,,, +alike,adjective,B1,,, +alike,adverb,B1,,, +alive,adjective,A2,,, +all,adverb,A2,,, +all,determiner,A1,,, +all,pronoun,A1,,, +all right,adjective,A1,,, +all right,adverb,A1,,, +allegation,noun,B2,,, +allergic,adjective,B1,,, +alliance,noun,B2,"News, lifestyles and current affairs",, +allow,verb,A2,,, +allowance,noun,B1,,, +ally,noun,B2,"News, lifestyles and current affairs",, +almost,adverb,A1,,, +alone,adjective,A2,,, +alone,adverb,A1,,, +along,adverb,A1,,, +along,preposition,A2,,, +alongside,preposition,B2,,, +aloud,adverb,B1,,, +alphabet,noun,B1,Books and literature,,Language +alphabetical,adjective,B2,,, +already,adverb,A1,,, +alright,adjective,A2,,, +alright,adverb,A2,,, +also,adverb,A1,,, +altar,noun,B2,Books and literature,, +alter,verb,B2,,, +alternate,verb,B2,,, +alternative,adjective,B1,,, +alternative,noun,B1,,, +alternatively,adverb,B2,,, +although,conjunction,A2,,, +altitude,noun,B2,,, +altogether,adverb,B1,,, +aluminum/aluminium,noun,B2,Education,, +always,adverb,A1,,, +am,be-verb,A1,,, +amaze,verb,B2,,, +amazed,adjective,B1,,, +amazement,noun,B2,,, +amazing,adjective,B1,,, +amazingly,adverb,B2,,, +ambassador,noun,B2,"News, lifestyles and current affairs",, +ambiguity,noun,B2,,, +ambiguous,adjective,B2,,, +ambition,noun,A2,,, +ambitious,adjective,B1,,, +ambulance,noun,B1,"Things in the town, shops and shopping",,Travel +ammonia,noun,B2,Education,, +among,preposition,A2,,, +amongst,preposition,B2,,, +amount,noun,B1,,, +ample,adjective,B2,,, +amplifier,noun,B2,,, +amplify,verb,B2,,, +amuse,verb,B2,,, +amused,adjective,A2,,, +amusement,noun,A2,Hobbies and pastimes,,"Free time, entertainment" +amusing,adjective,B1,,, +an,determiner,A1,,, +analogy,noun,B2,,, +analysis,noun,B1,Education,, +analyst,noun,B2,,,Personal identification +analyze/analyse,verb,B1,,, +ancestor,noun,A2,Education,,Relations with other people +anchor,noun,B2,,, +anchorage,noun,B2,,, +anchorman,noun,B2,Hobbies and pastimes,,"Free time, entertainment" +anchorperson,noun,B2,Hobbies and pastimes,,"Free time, entertainment" +ancient,adjective,A2,,, +and,conjunction,A1,,, +angel,noun,A2,Books and literature,,"Free time, entertainment" +anger,noun,B1,,, +angle,noun,B1,,, +angrily,adverb,A2,,, +angry,adjective,A1,,, +anguish,noun,B2,,, +animal,noun,A1,,, +animate,verb,B2,,, +animated,adjective,B1,,, +animation,noun,B1,Hobbies and pastimes,Media,"Free time, entertainment" +ankle,noun,A2,Personal information,,Health and body care +anniversary,noun,A2,Family life,,Daily life +announce,verb,B1,,, +announcement,noun,B1,"News, lifestyles and current affairs",, +annoy,verb,A2,,, +annoyance,noun,B1,,, +annoyed,adjective,B1,,, +annoying,adjective,A2,,, +annual,adjective,B1,,, +annually,adverb,B1,,, +anonymous,adjective,B2,,, +another,determiner,A1,,, +another,pronoun,A2,,, +answer,noun,A1,,, +answer,verb,A1,,, +ant,noun,B1,,, +anti,adjective,B1,,, +antiaircraft,adjective,B2,,, +antibacterial,adjective,B2,,, +anticancer,noun,B2,Travel and services vocab,,Health and body care +anticipate,verb,B2,,, +anticipation,noun,B2,,, +antipollution,noun,B2,"News, lifestyles and current affairs",, +antique,adjective,B2,,, +antique,noun,B1,Objects and rooms,,Shopping +antistatic,adjective,B2,,, +antivirus,noun,B2,Travel and services vocab,,Health and body care +antonym,noun,B1,Education,, +anxiety,noun,B1,,, +anxious,adjective,A2,,, +anxiously,adverb,B1,,, +any,determiner,A1,,, +any,pronoun,A1,,, +anybody,pronoun,A1,,, +anyhow,adverb,B1,,, +anymore,adverb,A2,,, +anyone,pronoun,A1,,, +anything,pronoun,A1,,, +anyway,adverb,A2,,, +anywhere,adverb,A2,,, +apart,adverb,A2,,, +apartment,noun,A2,"Things in the town, shops and shopping",,Places +ape,noun,B1,Education,, +apologize/apologise,verb,A2,,, +apology,noun,B1,,, +apostrophe,noun,B2,,,Language +apparent,adjective,B1,,, +apparently,adverb,A2,,, +appeal,noun,B1,,, +appeal,verb,B2,,, +appear,verb,A2,,, +appearance,noun,A2,,, +appetite,noun,B1,Food and drink,,Food and drink +applaud,verb,B1,,, +applause,noun,B1,,, +apple,noun,A1,Food and drink,,Food and drink +applicant,noun,B2,Education,, +application,noun,B1,Work and Jobs,Education, +apply,verb,A2,,, +appoint,verb,B1,,, +appointment,noun,A2,Work and Jobs,, +appreciate,verb,A2,,, +appreciation,noun,B1,,, +appreciative,adjective,B2,,, +approach,noun,B1,,, +approach,verb,B2,,, +appropriate,adjective,A2,,, +appropriately,adverb,B2,,, +approval,noun,B1,,, +approve,verb,B1,,, +approximate,adjective,B2,,, +approximately,adverb,B1,,, +April,noun,A1,,, +apron,noun,A1,Objects and rooms,,Shopping +arch,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +archaeologist/archeologist,noun,B2,Work and Jobs,,Personal identification +architect,noun,B1,Work and Jobs,,Personal identification +architecture,noun,A2,"Things in the town, shops and shopping",Arts,"House and home, environment" +arctic,adjective,B2,,, +are,be-verb,A1,,, +area,noun,A2,Travel and services vocab,, +arena,noun,B2,"Things in the town, shops and shopping",Leisure activities,"House and home, environment" +argue,verb,A2,,, +argument,noun,A2,,, +arise,verb,B1,,, +aristocracy,noun,B2,,, +arithmetic,noun,B1,Education,, +arm,noun,A1,Personal information,,Health and body care +arm,verb,B1,,, +armchair,noun,A2,,,"House and home, environment" +armed,adjective,A2,,, +armful,noun,B2,Idiomatic expressions,, +army,noun,B1,Work and Jobs,"Things in the town, shops and shopping",Relations with other people +around,adverb,A2,,, +around,preposition,A1,,, +arouse,verb,B2,,, +arrange,verb,B1,,, +arrangement,noun,B1,,, +arrest,noun,B1,"News, lifestyles and current affairs",,Relations with other people +arrest,verb,B1,,, +arrival,noun,B1,Travel and services vocab,,Travel +arrive,verb,A1,,, +arrogant,adjective,B2,,, +arrow,noun,B1,Hobbies and pastimes,,"Free time, entertainment" +art,noun,A1,Hobbies and pastimes,Education,"Free time, entertainment" +artery,noun,B2,,, +article,noun,A1,Shopping,,"Free time, entertainment" +articulate,verb,B2,,, +artificial,adjective,A2,,, +artificially,adverb,B2,,, +artist,noun,B1,Work and Jobs,Arts,Personal identification +artistic,adjective,B1,,, +artistry,noun,B2,Arts,,"Free time, entertainment" +as,conjunction,A2,,, +as,preposition,A1,,, +ash,noun,B2,,, +ashamed,adjective,B1,,, +aside,adverb,B1,,, +ask,verb,A1,,, +asleep,adjective,A2,,, +aspect,noun,B1,,, +aspiration,noun,B2,,, +aspire,verb,B2,,, +aspirin,noun,B1,,, +assault,noun,B2,"News, lifestyles and current affairs",, +assemble,verb,B2,,, +assembly,noun,B2,Education,Leisure activities, +assert,verb,B2,,, +assess,verb,B2,,, +assessment,noun,B2,Education,, +assign,verb,B1,,, +assignment,noun,B1,Education,, +assist,verb,B1,,, +assistance,noun,B1,Work and Jobs,, +assistant,adjective,A2,,, +assistant,noun,B1,Work and Jobs,,Personal identification +associate,verb,B1,,, +association,noun,A2,"Things in the town, shops and shopping",,Relations with other people +assume,verb,B1,,, +assumption,noun,B2,,, +assurance,noun,B2,,, +assure,verb,B2,,, +astonish,verb,B2,,, +astonished,adjective,B2,,, +astonishing,adjective,B2,,, +astonishment,noun,B2,,, +astronaut,noun,A2,Work and Jobs,,Personal identification +astronomer,noun,B1,Work and Jobs,,Personal identification +astronomy,noun,B2,Education,, +at,preposition,A1,,, +athlete,noun,A2,Work and Jobs,Leisure activities,Personal identification +athletic,adjective,B1,,, +athletics,noun,B2,Leisure activities,Hobbies and pastimes,"Free time, entertainment" +Atlantic,adjective,B1,,, +atmosphere,noun,B1,,, +atom,noun,A2,Education,, +atomic,adjective,B1,,, +attach,verb,B1,,, +attached,adjective,B2,,, +attachment,noun,B1,,, +attack,noun,A2,"News, lifestyles and current affairs",,Relations with other people +attack,verb,A2,,, +attain,verb,B1,,, +attainable,adjective,B2,,, +attainment,noun,B2,,, +attempt,noun,A2,,, +attempt,verb,B1,,, +attend,verb,B1,,, +attendance,noun,B2,,, +attention,noun,A2,,, +attentive,adjective,B2,,, +attentively,adverb,B2,,, +attitude,noun,A2,,, +attract,verb,B1,,, +attraction,noun,B1,,, +attractive,adjective,A2,,, +attractiveness,noun,B2,,, +attribute,noun,B2,,, +attribute,verb,B2,,, +atypical,adjective,B2,,, +aubergine,noun,B2,,,Food and drink +audience,noun,A2,Media,,"Free time, entertainment" +audio,adjective,A2,,, +audit,noun,B2,Work and Jobs,,Personal identification +audition,noun,B2,,, +August,noun,A1,,, +aunt,noun,A1,Family life,,Personal identification +author,noun,A2,Education,,"Free time, entertainment" +authoritative,adjective,B2,,, +authority,noun,B1,,, +authorize/authorise,verb,B2,,, +automatic,adjective,A2,,, +automatically,adverb,A2,,, +autumn,noun,A1,,, +auxiliary,adjective,B1,,, +availability,noun,B2,,, +available,adjective,B1,,, +avenue,noun,B1,"Things in the town, shops and shopping",,"House and home, environment" +average,adjective,A2,,, +average,noun,A2,,, +avoid,verb,A2,,, +await,verb,B2,,, +awake,adjective,A1,,, +award,noun,A2,Media,,"Free time, entertainment" +award,verb,B1,,, +aware,adjective,B1,,, +awareness,noun,B1,,, +away,adverb,A1,,, +awe,noun,B2,,, +awesome,adjective,B1,,, +awful,adjective,A2,,, +awkward,adjective,B1,,, +ax/axe,noun,B2,Objects and rooms,,Shopping +axis,noun,B2,,, +baby,noun,A1,Family life,,Personal identification +babysit,verb,B1,,, +babysitter,noun,B1,Work and Jobs,,Personal identification +back,adjective,A2,,, +back,adverb,A1,,, +back,noun,A1,,,Health and body care +back,verb,B1,,, +backache,noun,B1,,, +background,noun,A2,Personal information,, +backpack,noun,B1,Objects and rooms,,Shopping +backpacker,noun,B1,Travel and services vocab,Leisure activities,Travel +backpacking,noun,B1,Travel and services vocab,Leisure activities,Travel +backup,noun,B2,,, +backward/backwards,adverb,B2,,, +backyard,noun,B2,Objects and rooms,,"House and home, environment" +bacon,noun,B1,Food and drink,,Food and drink +bad,adjective,A1,,, +badge,noun,B2,,, +badly,adverb,A2,,, +badminton,noun,A2,,,"Free time, entertainment" +bad-tempered,adjective,B2,,, +bag,noun,A1,Shopping,Clothes,Shopping +baggage,noun,B1,Travel and services vocab,,Travel +bake,verb,A2,,, +baker,noun,B1,Work and Jobs,,Personal identification +bakery,noun,B1,"Things in the town, shops and shopping",,Shopping +balance,noun,B1,,, +balance,verb,B2,,, +balanced,adjective,B2,,, +balcony,noun,A2,Objects and rooms,,"House and home, environment" +bald,adjective,B1,,, +balky,adjective,B2,,, +ball,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +ballad,noun,B2,Arts,,"Free time, entertainment" +ballet,noun,B2,Arts,Hobbies and pastimes,"Free time, entertainment" +balloon,noun,A2,"Things in the town, shops and shopping",, +ballot,noun,B2,,, +ban,noun,B2,"News, lifestyles and current affairs",, +ban,verb,B2,,, +banana,noun,A1,Food and drink,,Food and drink +band,noun,A1,Clothes,,Shopping +bandage,noun,B1,,, +bang,noun,B1,,, +bang,verb,B1,,, +bank,noun,A1,"Things in the town, shops and shopping",,Services +bank,verb,A2,,, +bank account,noun,B1,Travel and services vocab,,Travel +banker,noun,B2,Work and Jobs,,Personal identification +banking,noun,A2,Travel and services vocab,,Services +bankrupt,verb,B2,,, +bankruptcy,noun,B2,"News, lifestyles and current affairs",, +bar,noun,A1,"Things in the town, shops and shopping",,Food and drink +bar,verb,B1,,, +barbecue,noun,A2,,,"Free time, entertainment" +barbecue,verb,B1,,, +barber,noun,A2,"Things in the town, shops and shopping",Work and Jobs,Services +barbershop,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +bare,adjective,B1,,, +bare,verb,B2,,, +barely,adverb,B1,,, +bargain,noun,A2,Shopping,,Shopping +bargain,verb,B2,,, +bark,noun,B1,,, +bark,verb,B2,,, +barley,noun,B2,Food and drink,,Food and drink +barman,noun,B1,Work and Jobs,,Personal identification +barn,noun,B2,Objects and rooms,,"House and home, environment" +barometer,noun,B2,Education,, +barrel,noun,B1,,, +barren,adjective,B2,,, +barrier,noun,B2,"News, lifestyles and current affairs",, +bartender,noun,B2,Work and Jobs,,Personal identification +base,noun,A2,,, +base,verb,B1,,, +baseball,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +basement,noun,B1,Objects and rooms,,"House and home, environment" +basic,adjective,A2,,, +basically,adverb,A2,,, +basin,noun,B1,Objects and rooms,,Shopping +basis,noun,B1,Education,, +basket,noun,A2,Objects and rooms,,Shopping +basketball,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +bat,noun,A1,,,"Free time, entertainment" +bat,verb,B1,,, +batch,noun,A2,Collocation,,Language +bath,noun,A1,Objects and rooms,,"House and home, environment" +bathe,verb,B1,,, +bathhouse,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +bathroom,noun,A1,Objects and rooms,,"House and home, environment" +battery,noun,A2,,, +battle,noun,B1,"News, lifestyles and current affairs",,Relations with other people +battlefield,noun,B2,"News, lifestyles and current affairs",, +bay,noun,A2,,,"House and home, environment" +be,be-verb,A1,,, +beach,noun,A1,Holidays,Travel and services vocab,"House and home, environment" +beagle,noun,B2,,, +beak,noun,B2,,, +beam,noun,B2,,, +bean,noun,A1,Food and drink,,Food and drink +bear,noun,A1,,, +bear,verb,A2,,, +beard,noun,B1,,,Health and body care +bearing,noun,B2,,, +beast,noun,B1,,, +beat,noun,B2,,, +beat,verb,B1,,, +beautiful,adjective,A1,,, +beautifully,adverb,B1,,, +beautify,verb,B2,,, +beauty,noun,A2,Hobbies and pastimes,,"Free time, entertainment" +beaver,noun,B1,Education,, +because,conjunction,A1,,, +because of,preposition,B1,,, +become,verb,A1,,, +bed,noun,A1,Objects and rooms,,"House and home, environment" +bedroom,noun,A1,Objects and rooms,,"House and home, environment" +bedside,noun,B1,Objects and rooms,, +bee,noun,A1,Education,, +beef,noun,A1,Food and drink,,Food and drink +been,be-verb,A2,,, +beer,noun,A2,Food and drink,,Food and drink +before,adverb,A1,,, +before,conjunction,A2,,, +before,preposition,A1,,, +beg,verb,A2,,, +begin,verb,A1,,, +beginner,noun,A2,,,Personal identification +beginning,noun,A2,,, +behalf,noun,B1,,, +behave,verb,B1,,, +behavior/behaviour,noun,A2,,, +behind,adverb,A1,,, +behind,preposition,A1,,, +being,noun,A2,Collocation,,Language +belief,noun,B1,,, +believe,verb,A1,,, +bell,noun,A1,Objects and rooms,,Shopping +bellow,verb,B2,,, +belly,noun,A2,,, +belong,verb,A2,,, +belongings,noun,B2,,, +beloved,adjective,B1,,, +below,adverb,A1,,, +below,preposition,A1,,, +belt,noun,A2,,,Shopping +bench,noun,A2,"Things in the town, shops and shopping",,"House and home, environment" +bend,noun,B2,,, +bend,verb,A2,,, +beneath,preposition,B1,,, +beneficial,adjective,B2,,, +benefit,noun,B1,Work and Jobs,, +benefit,verb,B2,,, +benevolence,noun,B2,,, +benevolent,adjective,B2,,, +bent,adjective,B1,,, +berry,noun,B2,,,Food and drink +beside,preposition,A1,,, +besides,adverb,A2,,, +besides,preposition,B1,,, +best,adjective,A1,,, +best,adverb,A1,,, +bestow,verb,B2,,, +bestseller,noun,B2,,, +bet,verb,B1,,, +betray,verb,B2,,, +better,adjective,A1,,, +better,adverb,A2,,, +between,preposition,A1,,, +bewilder,verb,B2,,, +bewilderment,noun,B2,,, +beyond,preposition,A2,,, +bicycle,noun,A1,Leisure activities,,"Free time, entertainment" +bid,verb,B2,,, +bidding,noun,B2,Work and Jobs,, +big,adjective,A1,,, +bike,noun,A1,Leisure activities,Ways of travelling,Travel +bikini,noun,B2,,,Shopping +bilingual,adjective,B1,,, +bill,noun,A2,Shopping,,Shopping +bill,verb,B1,,, +billion,noun,B2,,, +bin,noun,B1,Objects and rooms,,"House and home, environment" +bind,verb,B2,,, +bio,noun,B2,Education,, +biochemistry,noun,B1,Education,,Education +biography,noun,B1,Education,, +biological,adjective,B2,,, +biology,noun,B1,Education,,Education +biotechnology,noun,B2,Education,Work and Jobs, +bird,noun,A1,,, +birdcage,noun,B2,Objects and rooms,,"House and home, environment" +birth,noun,A1,Family life,,Daily life +birthday,noun,A1,Personal information,,Personal identification +birthplace,noun,B2,Personal information,,Personal identification +biscuit,noun,A1,Food and drink,,Food and drink +bishop,noun,B1,Work and Jobs,,Personal identification +bit,noun,A2,Collocation,,Language +bite,noun,A2,,, +bite,verb,B1,,, +bitter,adjective,B1,,, +bitterly,adverb,B2,,, +bizarre,adjective,B2,,, +black,adjective,A1,,, +black,noun,A1,Colours,, +blackboard,noun,A2,Education,,Education +blade,noun,B2,,, +blame,noun,B1,,, +blame,verb,A2,,, +blank,adjective,A1,,, +blanket,noun,A2,Objects and rooms,,Shopping +blast,noun,B2,"News, lifestyles and current affairs",, +blast,verb,B2,,, +blaze,noun,B2,,, +blaze,verb,B2,,, +bleed,verb,B1,,, +blend,noun,B2,,, +blend,verb,B1,,, +bless,verb,B1,,, +blessing,noun,B1,,, +blind,adjective,B1,,, +blindly,adverb,B2,,, +blindness,noun,B2,,, +blink,verb,B2,,, +block,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +block,verb,B1,,, +blog,noun,B1,Hobbies and pastimes,"News, lifestyles and current affairs","Free time, entertainment" +blogger,noun,B1,Hobbies and pastimes,"News, lifestyles and current affairs","Free time, entertainment" +blonde,adjective,A2,,, +blood,noun,A2,,, +bloodstream,noun,B2,,, +bloody,adjective,B2,,, +bloody,adverb,B2,,, +bloom,noun,A2,"Things in the town, shops and shopping",, +blooming,adjective,B2,,, +blossom,noun,B2,"Things in the town, shops and shopping",, +blow,noun,A2,,, +blow,verb,A1,,, +blue,adjective,A1,,, +blue,noun,A1,Colours,, +blur,verb,B2,,, +blurt,noun,B2,,, +blush,noun,B1,,, +blush,verb,B2,,, +board,noun,A1,Objects and rooms,,"House and home, environment" +board,verb,B1,,, +board game,noun,A2,,,"Free time, entertainment" +boast,verb,B1,,, +boat,noun,A1,Ways of travelling,Leisure activities,Travel +body,noun,A1,,,Health and body care +boil,verb,A2,,, +boiled,adjective,A2,,, +boiling,adjective,B2,,, +bold,adjective,B1,,, +bold,noun,B2,,, +boldly,adverb,B1,,, +bolt,noun,B2,,, +bolt,verb,B2,,, +bomb,noun,B1,"News, lifestyles and current affairs",,Relations with other people +bomb,verb,B1,,, +bombard,noun,B2,Education,, +bomber,noun,B2,"News, lifestyles and current affairs",,Relations with other people +bombing,noun,B2,,, +bond,noun,B1,,, +bone,noun,A1,,, +bonus,noun,A2,Work and Jobs,,Services +bony,adjective,B2,,, +book,noun,A1,Objects and rooms,,"Free time, entertainment" +book,verb,B1,,, +bookcase,noun,A2,,,Shopping +booking,noun,B1,Travel and services vocab,,Travel +bookish,adjective,B2,,, +booklet,noun,B2,,, +bookmark,noun,B2,,, +bookmark,verb,B2,,, +bookshelf,noun,A2,,,"House and home, environment" +bookshop,noun,A2,,,Shopping +bookstore,noun,A1,"Things in the town, shops and shopping",,Shopping +boom,noun,B1,,, +boost,noun,B2,,, +boost,verb,B2,,, +boot,noun,B1,Clothes,,Shopping +booth,noun,B2,Objects and rooms,, +border,noun,B1,,, +bore,verb,B1,,, +bored,adjective,A2,,, +boredom,noun,B1,,, +boring,adjective,A1,,, +borrow,verb,A1,,, +boss,noun,A2,Work and Jobs,,Personal identification +bossy,adjective,B2,,, +botany,noun,B2,Education,, +both,adverb,A1,,, +both,determiner,A1,,, +both,pronoun,A1,,, +bother,noun,B1,,, +bother,verb,A2,,, +bothered,adjective,B2,,, +bothersome,adjective,B2,,, +bottle,noun,A1,Food and drink,,Shopping +bottle,verb,B2,,, +bottom,noun,A1,,, +bounce,noun,B2,,, +bounce,verb,B1,,, +bound,adjective,B1,,, +bourbon,noun,B2,Food and drink,,Food and drink +bow,noun,B1,Hobbies and pastimes,, +bow,verb,B2,,, +bowl,noun,A1,Objects and rooms,,Shopping +bowl,verb,B1,,, +box,noun,A1,Objects and rooms,,Shopping +boxer,noun,B2,Work and Jobs,Hobbies and pastimes,Personal identification +boxing,noun,B1,Leisure activities,,"Free time, entertainment" +boy,noun,A1,Personal information,,Personal identification +boyfriend,noun,A1,Personal information,,Personal identification +bra,noun,A2,Clothes,,Shopping +bracelet,noun,B1,Clothes,,Shopping +bracket,noun,B2,,, +brag,noun,B2,,, +brain,noun,A1,,,Health and body care +brainstorm,noun,A2,,, +brainstorming,noun,B1,,, +brake,noun,A2,,, +brake,verb,B2,,, +branch,noun,A2,"Things in the town, shops and shopping",,Services +branch,verb,B1,,, +brand,noun,A2,Shopping,,Shopping +brand-new,adjective,B1,,, +brass,noun,B1,,, +brave,adjective,A2,,, +bravely,adverb,B1,,, +bravery,noun,B2,,, +bread,noun,A1,Food and drink,,Food and drink +break,noun,A2,,, +break,verb,A1,,, +breakable,adjective,B2,,, +breakdown,noun,B2,,, +breakfast,noun,A1,Food and drink,,Food and drink +breakthrough,noun,B1,,, +breakup,noun,B2,,, +breast,noun,B1,,,Health and body care +breath,noun,B1,,,Health and body care +breathe,verb,A1,,, +breathless,adjective,B1,,, +breathtaking,adjective,B2,,, +breed,noun,B2,,, +breed,verb,B1,,, +breeding,noun,B1,Education,Scientific development, +breeze,noun,A2,,,Weather +breezy,adjective,B2,,, +brewery,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +brick,noun,B1,Objects and rooms,, +bride,noun,A2,Family life,,Personal identification +bridge,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +brief,adjective,B1,,, +briefly,adverb,B1,,, +bright,adjective,A1,,, +brightly,adverb,B1,,, +brilliant,adjective,A2,,, +brilliantly,adverb,B2,,, +bring,verb,A1,,, +broad,adjective,B1,,, +broadband,noun,B2,,, +broadcast,noun,B1,"News, lifestyles and current affairs",Media,"Free time, entertainment" +broadcast,verb,B2,,, +broadcaster,noun,B2,Work and Jobs,Media,Personal identification +broaden,verb,B2,,, +broadly,adverb,B2,,, +broccoli,noun,B1,Food and drink,,Food and drink +brochure,noun,B2,,, +broken,adjective,A1,,, +bronze,noun,B1,Education,, +brother,noun,A1,Family life,,Personal identification +brotherhood,noun,B1,Family life,, +brother-in-law,noun,B2,,,Personal identification +brown,adjective,A1,,, +brown,noun,A2,,, +browse,verb,B2,,, +browser,noun,B2,,, +bruise,noun,B2,,, +brush,noun,A1,Education,Objects and rooms,Shopping +brush,verb,A1,,, +bubble,noun,B1,,, +bucket,noun,A1,Objects and rooms,,Shopping +bud,noun,B2,,, +buddy,noun,B1,,, +budget,adjective,B2,,, +budget,noun,A2,Work and Jobs,,Services +bug,noun,A2,,, +build,verb,A1,,, +builder,noun,B1,Work and Jobs,,Personal identification +building,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +bulb,noun,A2,,, +bulimia,noun,B2,Technical and legal language,, +bull,noun,B1,,, +bullet,noun,B1,"News, lifestyles and current affairs",, +bulletin,noun,B1,,, +bully,verb,B2,,, +bum,noun,B2,,, +bump,verb,B1,,, +bumper,noun,B2,,, +bun,noun,B2,,,Food and drink +bunch,noun,B1,Collocation,, +burden,noun,B1,,, +burden,verb,B2,,, +burdensome,adjective,B2,,, +bureau,noun,B1,"Things in the town, shops and shopping",, +bureaucracy,noun,B2,Work and Jobs,, +burger,noun,A1,Food and drink,,Food and drink +burglar,noun,B1,"News, lifestyles and current affairs",, +burglary,noun,B2,"News, lifestyles and current affairs",, +burgle,verb,B2,,, +burial,noun,B2,Family life,,Daily life +burn,noun,A2,,, +burn,verb,B1,,, +burning,adjective,B1,,, +burst,verb,B1,,, +bury,verb,A2,,, +bus,noun,A1,Ways of travelling,"Things in the town, shops and shopping",Travel +bus station,noun,A2,,,Travel +bus stop,noun,A2,,,Travel +bush,noun,A2,"Things in the town, shops and shopping",,Places +business,noun,A1,Work and Jobs,,Daily life +businessman,noun,A2,Work and Jobs,,Personal identification +businesswoman,noun,A2,,,Personal identification +bust,verb,B1,,, +bustle,verb,B2,,, +bustling,adjective,B2,,, +busy,adjective,A1,,, +but,conjunction,A1,,, +but,preposition,B1,,, +butcher,noun,B1,Work and Jobs,Shopping,Personal identification +butcher,verb,B2,,, +butter,noun,A1,Food and drink,,Food and drink +butterfly,noun,A1,,, +button,noun,A1,Clothes,,Shopping +buy,verb,A1,,, +buyer,noun,B1,,,Personal identification +buzz,noun,B2,,, +buzz,verb,B2,,, +by,preposition,A1,,, +bye,noun,A1,,, +cab,noun,A2,Ways of travelling,"Things in the town, shops and shopping",Travel +cabbage,noun,B1,Food and drink,,Food and drink +cabin,noun,B1,Ways of travelling,Travel and services vocab,Travel +cabinet,noun,B2,,,"House and home, environment" +cable,noun,B2,,, +cafe/café,noun,A1,"Things in the town, shops and shopping",,Food and drink +cafeteria,noun,A2,"Things in the town, shops and shopping",,Food and drink +cage,noun,B1,Objects and rooms,, +cake,noun,A1,Food and drink,,Food and drink +calculate,verb,B1,,, +calculation,noun,B1,Education,,Education +calculator,noun,B1,Objects and rooms,,Shopping +calendar,noun,A2,,,"House and home, environment" +calf,noun,B1,,, +call,noun,A1,,,Services +call,verb,A2,,, +caller,noun,B1,,, +calm,adjective,B1,,, +calmly,adverb,B2,,, +calmness,noun,B1,,, +camel,noun,B1,,, +camera,noun,A1,Objects and rooms,,Travel +camp,noun,A1,Leisure activities,,"Free time, entertainment" +camp,verb,A2,,, +campaign,noun,B2,,, +camping,noun,A2,,,"Free time, entertainment" +campsite,noun,B1,Leisure activities,,"Free time, entertainment" +campus,noun,A2,Education,,Education +can,modal auxiliary,A1,,, +can,noun,A2,,,Shopping +canal,noun,B1,,,"House and home, environment" +cancel,verb,B1,,, +cancer,noun,B1,,,Health and body care +candidate,noun,B2,,, +candle,noun,B1,Objects and rooms,,Shopping +candy,noun,A1,Food and drink,,Food and drink +cane,noun,B2,,, +canned,adjective,B1,,, +cannonball,noun,B2,,, +canon,noun,B2,Books and literature,, +canteen,noun,B1,"Things in the town, shops and shopping",,Food and drink +cap,noun,A1,Clothes,,Shopping +capability,noun,B2,,, +capable,adjective,B1,,, +capacity,noun,B1,,, +capital,noun,A2,,,Places +capital letter,noun,A2,,,Language +capsule,noun,B1,,, +captain,noun,A2,Work and Jobs,,Personal identification +caption,noun,B2,,, +captive,noun,B2,"News, lifestyles and current affairs",, +capture,noun,B1,"News, lifestyles and current affairs",, +capture,verb,B1,,, +car,noun,A1,"Things in the town, shops and shopping",Ways of travelling,Travel +car park,noun,A2,,,Travel +caravan,noun,B2,,, +carbon,noun,B2,,, +carbon dioxide,noun,B2,,, +carbon footprint,noun,B2,,, +carbon monoxide,noun,B2,,, +card,noun,A1,Shopping,Objects and rooms,Shopping +cardboard,noun,B2,,, +cardigan,noun,B2,,,Shopping +care,noun,A1,,,Health and body care +care,verb,B1,,, +career,noun,B1,Work and Jobs,,Daily life +carefree,adjective,B2,,, +careful,adjective,A1,,, +carefully,adverb,A1,,, +careless,adjective,B1,,, +carelessly,adverb,B1,,, +carelessness,noun,B1,,, +caring,adjective,B2,,, +carnival,noun,B2,,,"Free time, entertainment" +carpet,noun,B1,Objects and rooms,,"House and home, environment" +carpool,noun,B2,,,Travel +carriage,noun,B1,Ways of travelling,,Travel +carrot,noun,A2,,,Shopping +carry,verb,A1,,, +carton,noun,B1,,, +cartoon,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +carve,verb,B2,,, +cascade,noun,B2,,,"House and home, environment" +case,noun,A1,Objects and rooms,, +cash,noun,A2,Shopping,,Services +cashpoint,noun,B1,"Things in the town, shops and shopping",,Services +cassette,noun,A2,Objects and rooms,,"Free time, entertainment" +cast,noun,B2,,,Personal identification +cast,verb,B2,,, +castle,noun,A2,,,"House and home, environment" +casual,adjective,B1,,, +casually,adverb,B2,,, +cat,noun,A1,,, +catalog/catalogue,noun,B2,,,Shopping +catalyst,noun,B2,,, +catastrophe,noun,B2,,, +catastrophic,adjective,B2,,, +catch,noun,A1,,, +catch,verb,A1,,, +catchy,adjective,B2,,, +categorization/categorisation,noun,B2,,, +categorize/categorise,verb,B1,,, +category,noun,B1,,, +catering,noun,B2,,, +cathedral,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +cattle,noun,B1,,, +cause,noun,B2,,, +cause,verb,A2,,, +caution,noun,B1,,, +cautious,adjective,B1,,, +cave,noun,B1,,,"House and home, environment" +CD,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +CD player,noun,A1,Objects and rooms,,"House and home, environment" +CD-ROM,noun,B1,Media,,"Free time, entertainment" +cease,verb,B2,,, +ceiling,noun,B2,Objects and rooms,,"House and home, environment" +celebrate,verb,A1,,, +celebration,noun,A1,,,Daily life +celebrity,noun,B1,Media,,Personal identification +cell,noun,B1,Education,, +cellar,noun,B2,Objects and rooms,,Shopping +cellist,noun,B2,Work and Jobs,,Personal identification +cello,noun,B2,,, +cemetery,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +cent,noun,A2,,, +center/centre,noun,A2,,, +centigrade,noun,B2,,, +centimeter/centimetre,noun,A2,,, +central,adjective,B1,,, +central heating,noun,B1,Objects and rooms,,"House and home, environment" +century,noun,A2,,, +cereal,noun,A2,,,Food and drink +ceremony,noun,B1,,,Daily life +certain,adjective,A2,,, +certainly,adverb,A2,,, +certainty,noun,B1,,, +certificate,noun,B2,Education,,Education +certification,noun,B2,Education,, +certify,verb,B2,,, +chain,noun,A2,,, +chair,noun,A1,Objects and rooms,,"House and home, environment" +chairman,noun,A2,,, +challenge,noun,A2,,, +challenge,verb,B2,,, +challenging,adjective,B1,,, +champagne,noun,A2,,,Food and drink +champion,noun,B1,,,Relations with other people +championship,noun,A2,,, +chance,noun,A2,,, +chancellor,noun,B2,,, +change,noun,A1,,, +change,verb,A1,,, +channel,noun,B1,,,"Free time, entertainment" +chaos,noun,B1,"News, lifestyles and current affairs",, +chaotic,adjective,B2,,, +chapter,noun,A2,Books and literature,Education,"Free time, entertainment" +character,noun,A1,,,Personal identification +characteristic,adjective,B2,,, +characteristic,noun,B1,,, +characterize/characterise,verb,B1,,, +charge,noun,B1,Shopping,,Shopping +charge,verb,B1,,, +chariot,noun,B1,Ways of travelling,Books and literature, +charity,noun,B1,,, +charm,noun,B1,,, +charming,adjective,B2,,, +chart,noun,A2,Education,,Education +chase,noun,B1,,, +chase,verb,B2,,, +chat,noun,B1,,,"Free time, entertainment" +chat,verb,A2,,, +chat show,noun,B1,Hobbies and pastimes,Media,"Free time, entertainment" +cheap,adjective,A2,,, +cheat,verb,B2,,, +check,noun,A1,,,Services +check,verb,A2,,, +check-in counter/check-in,noun,B1,Travel and services vocab,,Services +check-in desk/check-in,noun,B1,Travel and services vocab,,Services +checkout,noun,B1,Travel and services vocab,,Services +checkpoint,noun,B2,,, +cheek,noun,A2,,,Health and body care +cheeky,adjective,B2,,, +cheer,verb,A2,,, +cheerful,adjective,B1,,, +cheerfully,adverb,B2,,, +cheerfulness,noun,B2,,, +cheese,noun,A1,Food and drink,,Food and drink +chef,noun,A2,,,Personal identification +chemical,adjective,A2,,, +chemical,noun,B1,Scientific development,, +chemist,noun,B1,Work and Jobs,,Personal identification +chemistry,noun,B1,Education,,Education +chemotherapy,noun,B2,Scientific development,, +cheque,noun,A2,,,Services +cherish,verb,B1,,, +cherished,adjective,B2,,, +cherry,noun,B2,,,Food and drink +chess,noun,A2,,,"Free time, entertainment" +chest,noun,A2,,,Health and body care +chest of drawers,noun,B1,Objects and rooms,,"House and home, environment" +chew,verb,B2,,, +chewing gum,noun,B1,Food and drink,,Food and drink +chicken,noun,A1,Food and drink,,Food and drink +chief,adjective,B1,,, +chief,noun,B2,,,Personal identification +child,noun,A1,Family life,,Personal identification +childhood,noun,A2,,, +childish,adjective,B2,,, +chili/chilli,noun,A2,,,Food and drink +chimney,noun,B2,,,"House and home, environment" +chimpanzee,noun,A2,Education,, +chin,noun,A2,,,Health and body care +chip,noun,B2,,, +chirp,noun,A2,,, +chocolate,noun,A1,Food and drink,,Food and drink +choice,noun,A2,,, +choir,noun,B1,,, +choke,verb,B1,,, +choose,verb,A1,,, +chop,verb,B2,,, +Christian,adjective,B1,,, +chronological,adjective,B1,,, +chuckle,noun,B1,,, +chunk,noun,B2,,, +church,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +cigarette,noun,A2,Hobbies and pastimes,,"Free time, entertainment" +cinema,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +circle,noun,A1,,, +circle,verb,B1,,, +circuit,noun,B2,,,Travel +circuitry,noun,B2,,, +circular,adjective,B1,,, +circumstance,noun,B2,,, +circus,noun,B1,"Things in the town, shops and shopping",,"Free time, entertainment" +citizen,noun,A2,Nationalities and countries,, +citizenship,noun,B1,Nationalities and countries,, +city,noun,A1,,,"House and home, environment" +citywide,adjective,B2,,, +civil,adjective,B1,,, +civilization/civilisation,noun,B1,Education,, +claim,noun,B1,,, +claim,verb,A2,,, +clam,noun,B2,Food and drink,,Food and drink +clap,verb,B2,,, +clarify,verb,B2,,, +class,noun,A1,Education,,Education +classic,adjective,A2,,, +classic,noun,B2,,, +classical,adjective,B1,,, +classical music,noun,A2,,, +classification,noun,B2,,, +classify,verb,B1,,, +classmate,noun,A1,Education,,Relations with other people +classroom,noun,A1,Education,,Education +clause,noun,B2,,,Language +clean,adjective,A1,,, +clean,verb,A1,,, +cleaner,noun,A2,,,"House and home, environment" +clear,adjective,A2,,, +clear,verb,B1,,, +clearly,adverb,A2,,, +clearness,noun,B2,,, +clerical,adjective,B2,,, +clerk,noun,A2,Work and Jobs,,Personal identification +clever,adjective,A1,,, +click,noun,B1,,, +click,verb,A2,,, +client,noun,B2,Work and Jobs,,Personal identification +cliff,noun,B1,,, +climate,noun,B1,,,Weather +climate change,noun,B2,,, +climb,noun,A1,Leisure activities,, +climb,verb,A2,,, +climber,noun,B1,Leisure activities,,Personal identification +climbing,noun,A2,,,"Free time, entertainment" +clinic,noun,B1,"Things in the town, shops and shopping",,Health and body care +clip,noun,B1,,, +clock,noun,A1,Objects and rooms,,"House and home, environment" +clog,verb,B2,,, +clone,verb,A2,,, +close,adjective,A1,,, +close,verb,A1,,, +closed,adjective,A1,,, +closely,adverb,B1,,, +closure,noun,B2,,, +cloth,noun,A1,Objects and rooms,,Shopping +clothes,noun,A1,,, +clothing,noun,B2,,,Shopping +cloud,noun,A1,,,Weather +cloudy,adjective,A1,,, +clown,noun,A2,,, +club,noun,A1,Hobbies and pastimes,,Relations with other people +clue,noun,A2,,,Personal identification +clumsy,adjective,B2,,, +coach,noun,A1,Ways of travelling,,Personal identification +coach,verb,B2,,, +coaching,noun,B2,,, +coal,noun,B1,,, +coalition,noun,B2,,, +coarse,adjective,B2,,, +coast,noun,A2,,,"House and home, environment" +coast,verb,B1,,, +coastal,adjective,B1,,, +coastline,noun,B2,,, +coat,noun,A1,Clothes,,Shopping +cocktail,noun,B2,Food and drink,,Food and drink +cocoa,noun,B2,Food and drink,,Food and drink +coconut,noun,B2,Food and drink,,Food and drink +cod,noun,B1,Food and drink,,Food and drink +code,noun,A1,,, +coffee,noun,A1,Food and drink,,Food and drink +coffin,noun,B1,,, +coherence,noun,B2,,, +coherent,adjective,B2,,, +coin,noun,A2,Shopping,,Shopping +coincide,verb,B2,,, +coincidence,noun,B2,,, +coke,noun,A1,Food and drink,,Food and drink +cola,noun,A2,Food and drink,,Food and drink +cold,adjective,A1,,, +cold,noun,A1,Travel and services vocab,,Weather +collapse,noun,B1,"News, lifestyles and current affairs",, +collapse,verb,B2,,, +collar,noun,B1,Clothes,,Shopping +colleague,noun,B2,Work and Jobs,,Personal identification +collect,verb,A1,,, +collection,noun,A1,Hobbies and pastimes,, +collector,noun,B2,,,Personal identification +college,noun,A1,Education,"Things in the town, shops and shopping",Education +collocation,noun,B2,,,Language +colon,noun,B2,,,Language +colonial,adjective,B2,,, +color/colour,noun,A1,Colours,, +color/colour,verb,A1,Colours,, +colorful/colourful,adjective,A2,Colours,, +column,noun,A2,,, +columnist,noun,B1,Work and Jobs,,Personal identification +coma,noun,B2,,, +comb,noun,A2,,,Shopping +comb,verb,B2,,, +combination,noun,B1,,, +combine,verb,B1,,, +come,verb,A1,,, +comedian,noun,B1,,,Personal identification +comedy,noun,B1,Hobbies and pastimes,Arts,"Free time, entertainment" +comet,noun,B1,,, +comfort,noun,B1,,, +comfortable,adjective,A2,,, +comfortably,adverb,B2,,, +comic,adjective,A2,,, +comic,noun,A2,,,"Free time, entertainment" +comma,noun,B1,,, +command,noun,B1,,, +commander,noun,B2,Work and Jobs,,Personal identification +commemorate,verb,B2,,, +comment,noun,B1,,, +comment,verb,B2,,, +commerce,noun,B2,Work and Jobs,, +commercial,adjective,B1,,, +commercial,noun,B2,,, +commission,noun,B2,,, +commit,verb,B1,,, +commitment,noun,A2,,, +committee,noun,A2,,, +common,adjective,A2,,, +common sense,noun,B1,,, +commonly,adverb,B1,,, +commonwealth,noun,B2,Nationalities and countries,, +communicate,verb,A2,,, +communication,noun,A2,,, +communicative,adjective,B2,,, +community,noun,B2,,, +commute,verb,B2,,, +companion,noun,B1,,, +company,noun,A2,,, +comparative,noun,A2,,, +compare,verb,A2,,, +comparison,noun,B1,,, +compassion,noun,B2,,, +compassionate,adjective,B2,,, +compatible,adjective,B2,,, +compensate,verb,B2,,, +compensation,noun,B2,,, +compete,verb,B1,,, +competence,noun,B2,,, +competent,adjective,B2,,, +competition,noun,A2,,, +competitive,adjective,B1,,, +competitor,noun,B1,,, +compile,verb,B2,,, +complain,verb,A2,,, +complaint,noun,A2,,, +complement,noun,B1,,, +complete,adjective,A2,,, +complete,verb,B1,,, +completely,adverb,B1,,, +completion,noun,B2,Work and Jobs,, +complex,adjective,B1,,, +complexion,noun,B2,,, +complexity,noun,B2,,, +complicate,verb,B1,,, +complicated,adjective,B1,,, +compliment,noun,B1,,, +component,noun,B2,,, +compose,verb,B1,,, +composer,noun,A2,Work and Jobs,Art,Personal identification +composition,noun,B1,,, +compound,noun,B1,Education,, +comprehension,noun,B2,Education,, +comprehensive,adjective,B2,,, +compress,noun,B2,Technical and legal language,, +compression,noun,B2,,, +compromise,noun,B1,,, +compromise,verb,B2,,, +compulsory,adjective,B2,,, +compute,verb,B2,,, +computer,noun,A1,Objects and rooms,,"House and home, environment" +conceal,verb,B2,,, +concede,verb,B2,,, +conceit,noun,B2,,, +conceivable,adjective,B2,,, +conceive,verb,B2,,, +concentrate,verb,A2,,, +concentration,noun,B1,,, +concept,noun,B1,,, +conception,noun,B2,,, +concern,noun,A2,,, +concern,verb,B2,,, +concerned,adjective,B1,,, +concerning,preposition,B2,,, +concert,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +concession,noun,B2,,, +conclude,verb,B1,,, +conclusion,noun,B1,,, +concrete,adjective,B2,,, +concrete,noun,B2,,, +condemn,verb,B2,,, +condition,noun,A2,,, +conduct,noun,B1,,, +conduct,verb,B2,,, +conductor,noun,B2,,,Personal identification +cone,noun,B2,,, +conference,noun,B2,Work and Jobs,, +conferencing,noun,B2,,, +confess,verb,B2,,, +confession,noun,B2,Books and literature,, +confidence,noun,B1,,, +confident,adjective,A2,,, +confidently,adverb,B2,,, +confine,verb,B2,,, +confirm,verb,B1,,, +confirmation,noun,B1,Travel and services vocab,, +conflict,noun,B1,"News, lifestyles and current affairs",, +confront,verb,B2,,, +confuse,verb,A2,,, +confused,adjective,A2,,, +confusing,adjective,B1,,, +confusion,noun,B1,,, +congratulate,verb,B1,,, +conjunction,noun,B2,,,Language +connect,verb,B1,,, +connection/connexion,noun,B1,,, +conquer,verb,B1,,, +conquest,noun,B2,Education,Books and literature, +conscience,noun,B2,,, +conscious,adjective,B1,,, +consciousness,noun,B2,,, +consensus,noun,B2,,, +consent,noun,B2,,, +consequence,noun,A2,,, +consequently,adverb,B1,,, +conservation,noun,B1,,, +conservative,adjective,B1,,, +consider,verb,A2,,, +considerable,adjective,B1,,, +considerably,adverb,B2,,, +consideration,noun,B1,,, +considering,conjunction,B2,,, +considering,preposition,B2,,, +consist,verb,A2,,, +consistent,adjective,B2,,, +consolation,noun,B2,,, +console,verb,B2,,, +consonant,noun,B1,,, +constant,adjective,B2,,, +constantly,adverb,B1,,, +constitute,verb,B1,,, +constitution,noun,B1,,, +construct,verb,B1,,, +construction,noun,B1,,, +consult,verb,B2,,, +consultant,noun,B2,,,Personal identification +consume,verb,B1,,, +consumer,noun,B1,Work and Jobs,,Personal identification +consumption,noun,B1,Work and Jobs,, +contact,noun,A2,,, +contact,verb,A2,,, +contain,verb,B1,,, +container,noun,A2,Objects and rooms,,"House and home, environment" +contaminate,verb,B2,,, +contemporary,adjective,B2,,, +contempt,noun,B2,,, +content,adjective,B2,,, +content,noun,B1,,, +contest,noun,A1,,, +context,noun,A2,Education,,Language +continent,noun,A2,Education,,Places +continual,adjective,B1,,, +continually,adverb,B1,,, +continue,verb,A2,,, +continuous,adjective,B1,,, +continuously,adverb,B1,,, +contract,noun,B2,Work and Jobs,Travel and services vocab,Daily life +contradict,verb,B2,,, +contradiction,noun,B2,,, +contradictory,adjective,B2,,, +contrary,adjective,B1,,, +contrast,noun,A2,,, +contribute,verb,B1,,, +contribution,noun,B1,,, +control,noun,A2,,, +control,verb,B1,,, +controversial,adjective,B1,,, +controversy,noun,B2,,, +convenience,noun,A2,,, +convenient,adjective,A2,,, +conveniently,adverb,B2,,, +convention,noun,B2,"News, lifestyles and current affairs",, +conventional,adjective,B2,,, +conversation,noun,A1,,, +converse,noun,B2,,, +conversely,adverb,B2,,, +conversion,noun,B2,,, +convert,verb,B2,,, +convey,verb,B1,,, +convince,verb,B1,,, +convinced,adjective,B2,,, +cook,noun,A1,Work and Jobs,,Personal identification +cook,verb,A1,,, +cooker,noun,A2,,,"House and home, environment" +cookie,noun,A1,Food and drink,,Food and drink +cooking,noun,A2,,, +cool,adjective,A1,,, +cool,verb,B2,,, +cooler,noun,A2,,, +cooperate,verb,B2,,, +cooperation,noun,B2,,, +cooperative,adjective,B2,,, +cop,noun,A1,Work and Jobs,Travel and services vocab,Personal identification +cope,verb,B2,,, +copper,noun,B2,,, +copy,noun,A1,Education,,Services +copy,verb,A2,,, +copyright,noun,B1,Books and literature,, +coral,noun,B2,Education,, +core,noun,B2,,, +corn,noun,A1,Food and drink,,Food and drink +corner,noun,A1,Objects and rooms,,"House and home, environment" +cornerstone,noun,B2,,, +cornet,noun,B2,,, +corona,noun,B2,Education,, +corporal,adjective,B2,,, +corporate,adjective,B2,,, +corporation,noun,B2,,, +correct,adjective,A1,,, +correct,verb,B2,,, +correction,noun,B1,,, +correctly,adverb,A2,,, +correctness,noun,B2,,, +correspond,verb,B2,,, +correspondence,noun,B2,,, +correspondent,noun,B2,,, +corresponding,adjective,B2,,, +corridor,noun,B2,,, +corrupt,adjective,B2,,, +corruption,noun,B2,,, +cost,noun,A2,,, +cost,verb,A2,,, +costly,adjective,B2,,, +costume,noun,B2,,,Shopping +cottage,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +cotton,noun,B1,Clothes,,Shopping +couch,noun,A1,Objects and rooms,,"House and home, environment" +cough,noun,B2,Travel and services vocab,,Health and body care +cough,verb,B1,,, +could,modal auxiliary,A1,,, +council,noun,B1,,, +counseling/counselling,noun,B1,,, +count,noun,B1,,, +count,verb,A2,,, +counter,noun,B2,,,"House and home, environment" +counter,verb,B1,,, +countless,adjective,B1,,, +country,noun,A2,Nationalities and countries,,Places +countryman,noun,B2,Nationalities and countries,, +countryside,noun,A2,Nationalities and countries,Holidays,Places +countrywide,adjective,B2,,, +county,noun,B1,Nationalities and countries,, +couple,noun,A2,Family life,,Personal identification +courage,noun,B1,,, +courageous,adjective,B1,,, +courgette,noun,B1,Food and drink,,Food and drink +course,noun,A1,Education,Ways of traveling,Education +court,noun,A2,"Things in the town, shops and shopping",,Relations with other people +courtesy,noun,B2,,, +cousin,noun,A1,Family life,,Personal identification +cover,noun,A1,Objects and rooms,,Shopping +cover,verb,A2,,, +cow,noun,A1,,, +coward,noun,B2,,, +cowardly,adjective,B2,,, +coziness/cosiness,noun,B2,,, +cozy/cosy,adjective,B2,,, +crab,noun,B2,,, +crack,noun,B2,,, +crack,verb,B2,,, +craft,noun,B1,,, +craftsman,noun,B2,Work and Jobs,,Personal identification +crash,noun,B1,"News, lifestyles and current affairs",,Travel +crash,verb,B1,,, +crater,noun,B2,Education,, +crawl,verb,B2,,, +crazy,adjective,A2,,, +cream,adjective,A2,,, +cream,noun,A1,Food and drink,,Food and drink +crease,noun,B2,,, +create,verb,A2,,, +creation,noun,B2,,, +creative,adjective,A2,,, +creatively,adverb,B2,,, +creativity,noun,A2,,, +creator,noun,B1,Work and Jobs,,Personal identification +creature,noun,A2,Education,, +credit,noun,A2,Shopping,,Services +credit card,noun,A1,Shopping,,Shopping +creek,noun,B2,,, +creepy,adjective,B2,,, +crew,noun,B2,Work and Jobs,,Personal identification +cricket,noun,A2,,,"Free time, entertainment" +crime,noun,A2,"News, lifestyles and current affairs",,Relations with other people +criminal,adjective,B2,,, +criminal,noun,B1,"News, lifestyles and current affairs",,Relations with other people +cripple,noun,B2,,, +crisis,noun,B1,"News, lifestyles and current affairs",, +crisp,noun,A2,,, +critic,noun,B1,Education,Work and Jobs, +critical,adjective,B1,,, +critically,adverb,B2,,, +criticism,noun,B2,Education,Books and literature, +criticize/criticise,verb,A2,,, +crocodile,noun,B2,,, +crop,noun,B1,Food and drink,,Food and drink +cross,noun,A2,Books and literature,, +cross,verb,A2,,, +crossing,noun,B1,Travel and services vocab,,Travel +crossly,adverb,B2,,, +crossroads,noun,B1,"Things in the town, shops and shopping",, +crow,noun,B1,,, +crowd,noun,A2,"Things in the town, shops and shopping",,Travel +crowded,adjective,A2,,, +crown,noun,A2,,, +crucial,adjective,B2,,, +cruel,adjective,B1,,, +cruelly,adverb,B2,,, +cruelty,noun,B2,,, +cruise,noun,A2,Travel and services vocab,,Travel +cruise,verb,B2,,, +crush,noun,B1,"News, lifestyles and current affairs",,Travel +cry,noun,A1,,, +cry,verb,A2,,, +crystallize/crystallise,verb,B2,,, +cube,noun,B2,Education,, +cubism,noun,B2,Education,Arts, +cucumber,noun,B1,Food and drink,,Food and drink +cuff,noun,B2,Clothes,,Shopping +culmination,noun,B2,,, +cultivate,verb,B1,,, +cultural,adjective,B1,,, +culturally,adverb,B2,,, +culture,noun,A1,Nationalities and countries,,"Free time, entertainment" +cup,noun,A1,Objects and rooms,,Shopping +cupboard,noun,A2,,,"House and home, environment" +cure,noun,B1,Travel and services vocab,, +cure,verb,B2,,, +curiosity,noun,B1,Hobbies and pastimes,, +curious,adjective,B1,,, +curiously,adverb,B1,,, +curl,noun,B2,,, +curly,adjective,B1,,, +currency,noun,B1,Shopping,,Shopping +current,adjective,B1,,, +currently,adverb,B1,,, +curriculum,noun,B1,Education,,Education +curry,noun,A2,,,Food and drink +curse,noun,A2,Books and literature,,"Free time, entertainment" +cursor,noun,B2,,, +curtain,noun,B1,Objects and rooms,,"House and home, environment" +curve,noun,B1,,, +cushion,noun,B1,Objects and rooms,,Shopping +custom,noun,A2,Nationalities and countries,Hobbies and pastimes,Places +customer,noun,A2,Shopping,,Services +customs,noun,B1,Travel and services vocab,,Travel +cut,noun,B1,Travel and services vocab,,Travel +cut,verb,A1,,, +cute,adjective,A1,,, +CV,noun,B1,Personal information,,Personal identification +cyberaddict,noun,B2,"News, lifestyles and current affairs",, +cybercafe/cybercafé,noun,B2,"Things in the town, shops and shopping",,Food and drink +cybercrime,noun,B2,"News, lifestyles and current affairs",, +cyberpet,noun,B2,"News, lifestyles and current affairs",, +cyberschool,noun,B2,"News, lifestyles and current affairs",,Education +cyberspace,noun,B2,"News, lifestyles and current affairs",, +cycle,noun,B1,,,Travel +cycle,verb,B1,,, +cycling,noun,A2,,,"Free time, entertainment" +cyclist,noun,B2,Leisure activities,,"Free time, entertainment" +dad,noun,A1,Family life,,Personal identification +daddy,noun,A1,,, +daft,adjective,B2,,, +daily,adjective,A2,,, +daily,adverb,A2,,, +daisy,noun,B1,Education,, +dam,noun,A2,Education,,Places +damage,noun,B1,"News, lifestyles and current affairs",, +damage,verb,B1,,, +damaged,adjective,B1,,, +damn,adjective,B2,,, +damn,adverb,B2,,, +damn,interjection,B2,,, +damp,adjective,B1,,, +dance,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +dance,verb,A1,,, +dancer,noun,A2,Hobbies and pastimes,,Personal identification +dancing,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +dandelion,noun,B2,Education,, +danger,noun,A2,"News, lifestyles and current affairs",,Travel +dangerous,adjective,A2,,, +dangerously,adverb,B1,,, +dare,verb,B1,,, +dark,adjective,A1,,, +darkness,noun,B1,,, +darling,adjective,B2,,, +darling,noun,B2,,,darling +dash,noun,B2,,, +dash,verb,B2,,, +data,noun,B2,,,重複? +database,noun,B2,,, +date,noun,A1,,,Personal identification +date,verb,B1,,, +dated,adjective,B2,,, +dating,noun,B1,,, +daughter,noun,A1,Family life,,Personal identification +daughter-in-law,noun,B2,,,darling +dawn,noun,B2,,, +day,noun,A1,,, +daylight,noun,A2,,, +daytime,noun,B2,,, +daze,noun,B1,Collocation,, +dazzle,noun,B1,,, +de facto,adjective,B2,,, +dead,adjective,A2,,, +deadline,noun,B1,Education,, +deadly,adjective,B1,,, +deaf,adjective,B1,,, +deal,noun,A2,Collocation,,Language +deal,verb,B1,,, +dealer,noun,B1,Work and Jobs,,Personal identification +dear,adjective,A1,,, +dear,noun,B2,,, +dearly,adverb,B2,,, +death,noun,A2,,, +debate,noun,A2,Education,,Education +debit,noun,B2,,,Shopping +debit,verb,B2,,, +debit card,noun,B2,,,Shopping +debris,noun,B1,,, +debt,noun,B1,Travel and services vocab,Shopping,Shopping +decade,noun,B2,,, +decay,verb,B2,,, +deceive,verb,B2,,, +December,noun,A1,,, +decent,adjective,B2,,, +deceptive,adjective,B2,,, +decide,verb,A2,,, +decision,noun,B1,,, +decisive,adjective,B2,,, +deck,noun,B2,,,Travel +declaration,noun,B1,Education,"News, lifestyles and current affairs", +declare,verb,B1,,, +decline,noun,B1,,, +decline,verb,B2,,, +decomposition,noun,B2,Education,, +decorate,verb,B2,,, +decoration,noun,B2,,, +decorative,adjective,B2,,, +decrease,noun,B1,,, +decrease,verb,B1,,, +dedicate,verb,B1,,, +dedication,noun,B2,,, +deduce,verb,B2,,, +deduction,noun,B2,Education,, +deed,noun,B1,Collocation,, +deem,verb,B2,,, +deep,adjective,B2,,, +deep,adverb,A2,,, +deeply,adverb,A2,,, +deer,noun,B2,,, +defeat,noun,B2,,, +defeat,verb,B1,,, +defend,verb,B1,,, +defender,noun,B1,,, +defense/defence,noun,B1,,, +deficiency,noun,B1,,, +deficit,noun,B2,,, +define,verb,B1,,, +definite,adjective,B1,,, +definite article,noun,B1,,, +definitely,adverb,B1,,, +definition,noun,B1,Education,, +deforestation,noun,B2,"News, lifestyles and current affairs",, +defy,verb,B2,,, +degree,noun,A2,,, +dehumanize/dehumanise,verb,B2,,, +delay,noun,A2,Travel and services vocab,, +delay,verb,B1,,, +delegate,noun,B2,,, +delete,verb,B1,,, +deliberate,adjective,B2,,, +deliberately,adverb,B2,,, +delicacy,noun,B2,,, +delicate,adjective,B1,,, +delicately,adverb,B2,,, +delicious,adjective,A1,,, +delight,noun,B1,,, +delight,verb,B2,,, +delighted,adjective,B1,,, +delightful,adjective,B1,,, +deliver,verb,B1,,, +delivery,noun,B1,Travel and services vocab,,Services +demand,noun,B1,,, +demand,verb,B1,,, +demanding,adjective,B2,,, +democracy,noun,B1,"News, lifestyles and current affairs",, +democratic,adjective,B1,,, +demolish,verb,B2,,, +demonstrate,verb,B1,,, +demonstration,noun,B1,,, +denim,noun,B2,,,Shopping +dense,adjective,B2,,, +densely,adverb,B2,,, +dental,adjective,B2,,, +dentist,noun,A2,,,Personal identification +deny,verb,B1,,, +depart,verb,B1,,, +department,noun,B1,Work and Jobs,,Services +department store,noun,A2,,,Shopping +departure,noun,B1,Travel and services vocab,, +depend,verb,A2,,, +dependable,adjective,B2,,, +dependent,adjective,B1,,, +deposit,noun,B1,,, +deposit,verb,B2,,, +depressed,adjective,B1,,, +depressing,adjective,B1,,, +depression,noun,B1,,, +deprive,verb,B1,,, +depth,noun,B1,Dimensions,, +deputy,noun,B2,,, +derive,verb,B1,,, +descend,verb,B2,,, +describe,verb,A1,,, +description,noun,A2,,, +descriptive,adjective,B2,,, +desert,noun,A2,,,"House and home, environment" +deserve,verb,B1,,, +design,noun,A1,Arts,,"Free time, entertainment" +design,verb,B1,,, +designer,adjective,B2,,, +designer,noun,B1,Work and Jobs,,Personal identification +desirable,adjective,B2,,, +desire,noun,B1,,, +desire,verb,B2,,, +desk,noun,A1,Objects and rooms,,"House and home, environment" +desktop,noun,B2,,, +desolation,noun,B2,,, +despair,noun,B1,,, +desperate,adjective,B1,,, +desperately,adverb,B2,,, +desperation,noun,B2,,, +despise,verb,B2,,, +despite,preposition,B1,,, +dessert,noun,A2,,,"House and home, environment" +destination,noun,B1,Travel and services vocab,, +destiny,noun,B2,,, +destroy,verb,A2,,, +destruction,noun,B1,,, +destructive,adjective,B1,,, +detach,verb,B2,,, +detachment,noun,B2,,, +detail,noun,A2,,, +detailed,adjective,B2,,, +detect,verb,B2,,, +detective,noun,B1,Work and Jobs,,Personal identification +determination,noun,B1,,, +determine,verb,B1,,, +determined,adjective,B2,,, +determiner,noun,B2,,,Language +devastate,verb,B1,,, +devastating,adjective,B1,,, +develop,verb,A2,,, +developed,adjective,A2,,, +developing,adjective,B2,,, +development,noun,B1,Education,, +device,noun,B1,Objects and rooms,, +devil,noun,B2,,, +devote,verb,B2,,, +devoted,adjective,B2,,, +devotion,noun,B1,,, +diagram,noun,B1,,, +dial,noun,B1,,, +dial,verb,B1,,, +dialog/dialogue,noun,B1,,, +diameter,noun,B1,Education,, +diamond,noun,A2,Objects and rooms,,Shopping +diaper,noun,B1,,, +diarrhea/diarrhoea,noun,B2,Travel and services vocab,,Health and body care +diary,noun,A2,Objects and rooms,,Shopping +dictator,noun,B2,Education,,Personal identification +dictionary,noun,A1,Objects and rooms,,Education +did,do-verb,A1,,, +die,verb,A2,,, +diet,noun,A2,Food and drink,,Food and drink +differ,verb,B1,,, +difference,noun,A1,,, +different,adjective,A1,,, +differently,adverb,A2,,, +difficult,adjective,A1,,, +difficulty,noun,A2,,, +dig,noun,A1,,, +dig,verb,B1,,, +digest,noun,B2,,, +digital,adjective,B1,,, +digital camera,noun,A2,,,"Free time, entertainment" +dignify,verb,B2,,, +dignity,noun,B2,,, +dilemma,noun,B2,,, +diligence,noun,B1,,, +diligent,adjective,B1,,, +dim,adjective,B2,,, +dime,noun,B2,,, +dimension,noun,B2,,, +dining room,noun,A1,Objects and rooms,,"House and home, environment" +dinner,noun,A1,Food and drink,,Food and drink +dinosaur,noun,A2,,, +dioxide,noun,B1,Education,, +dip,verb,B2,,, +diphtheria,noun,B2,Travel and services vocab,,Health and body care +diploma,noun,B2,Education,,Education +diplomat,noun,B2,,, +direct,adjective,A2,,, +direct,verb,B1,,, +direction,noun,A2,,, +directly,adverb,B1,,, +director,noun,A2,Work and Jobs,,Personal identification +dirt,noun,B1,,,Daily life +dirty,adjective,A1,,, +disability,noun,B1,,, +disable,verb,B1,,, +disabled,adjective,B1,,, +disadvantage,noun,A2,,, +disagree,verb,A2,,, +disagreement,noun,B1,,, +disappear,verb,A2,,, +disappearance,noun,B2,,, +disappoint,verb,B1,,, +disappointed,adjective,A2,,, +disappointing,adjective,A2,,, +disappointment,noun,B1,,, +disapproval,noun,B2,,, +disapprove,verb,B2,,, +disaster,noun,B1,"News, lifestyles and current affairs",, +disastrous,adjective,B1,,, +disc jockey/disk jockey,noun,B1,Work and Jobs,,Personal identification +discharge,noun,B2,,, +disciple,noun,B2,Books and literature,, +discipline,noun,B2,,, +disco,noun,A2,,,"Free time, entertainment" +discomfort,noun,B1,,, +disconnect,verb,B2,,, +discount,noun,B1,Shopping,,Shopping +discourage,verb,B1,,, +discover,verb,A2,,, +discovery,noun,B1,Education,, +discredit,verb,B2,,, +discriminate,verb,B2,,, +discrimination,noun,B1,"News, lifestyles and current affairs",, +discuss,verb,A1,,, +discussion,noun,A2,,, +disease,noun,B1,Travel and services vocab,,Health and body care +disgrace,noun,B2,,, +disguise,noun,B2,,, +disguise,verb,B2,,, +disgusting,adjective,B1,,, +dish,noun,A1,Objects and rooms,,Shopping +dishonest,adjective,A2,,, +dishonesty,noun,B2,,, +dishwasher,noun,B1,Objects and rooms,,"House and home, environment" +disillusion,verb,B2,,, +disk/disc,noun,B1,Media,,"Free time, entertainment" +dislike,noun,A2,Personal information,,Personal identification +dislike,verb,B1,,, +dismiss,verb,B2,,, +disorder,noun,B2,,, +disorderly,adjective,B2,,, +disorganized/disorganised,adjective,B2,,, +dispensable,adjective,B2,,, +displace,verb,B2,,, +display,noun,A2,Shopping,, +display,verb,B1,,, +displeasure,noun,B2,,, +disposal,noun,B2,,, +disposition,noun,B2,,, +dispute,noun,B2,,, +disqualify,verb,B2,,, +disregard,noun,B2,,, +disrupt,verb,B2,,, +dissatisfaction,noun,B2,,, +dissatisfied,adjective,B2,,, +dissident,noun,B2,,, +dissolve,verb,B1,,, +distance,noun,B1,,,Travel +distant,adjective,B1,,, +distinction,noun,B1,,, +distinctly,adverb,B1,,, +distinguish,verb,B1,,, +distinguished,adjective,B2,,, +distortion,noun,B2,,, +distract,verb,B2,,, +distraction,noun,B2,,, +distressing,adjective,B2,,, +distribute,verb,B1,,, +distribution,noun,B1,,, +distributor,noun,B2,Work and Jobs,,Personal identification +district,noun,B1,Nationalities and countries,,"House and home, environment" +disturb,verb,A2,,, +disturbance,noun,B1,,, +dive,noun,B1,,, +dive,verb,B1,,, +diver,noun,B1,Leisure activities,,"Free time, entertainment" +diverse,adjective,B1,,, +diversion,noun,B2,,, +divert,verb,B2,,, +divide,noun,B1,,, +divide,verb,A2,,, +divided,adjective,B2,,, +divine,adjective,B1,,, +diving,noun,B1,Leisure activities,,"Free time, entertainment" +division,noun,B2,,, +divorce,noun,B2,Family life,,Relations with other people +divorce,verb,B2,,, +divorced,adjective,B1,,, +dizzy,adjective,A2,,, +DJ,noun,B1,Work and Jobs,,Personal identification +DNA,noun,B2,Education,, +do,do-verb,A1,,, +doc,noun,B1,Idiomatic expressions,Work and Jobs, +dock,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +doctor/Dr./Dr,noun,A1,Work and Jobs,,Personal identification +document,noun,B1,Education,, +documentary,noun,B1,Hobbies and pastimes,Media,"Free time, entertainment" +does,do-verb,A1,,, +dog,noun,A1,,, +doing,do-verb,A1,,, +doll,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +dollar,noun,A1,Shopping,,Shopping +dolphin,noun,B1,,, +domestic,adjective,B2,,, +dominate,verb,B2,,, +donate,verb,B2,,, +donation,noun,B2,,, +done,do-verb,A2,,, +donkey,noun,B2,,, +doom,noun,B2,,, +door,noun,A1,Objects and rooms,,"House and home, environment" +doorkeeper,noun,B2,Work and Jobs,,Personal identification +doorway,noun,B2,Objects and rooms,,"House and home, environment" +dorm,noun,B2,"Things in the town, shops and shopping",Idiomatic expressions,"House and home, environment" +dormitory,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +dose,noun,B2,,, +dot,noun,B1,,, +double,adjective,A2,,, +double,noun,B2,,, +double,verb,B2,,, +doubly,adverb,B2,,, +doubt,noun,A2,,, +doubt,verb,B2,,, +doubtful,adjective,B2,,, +dove,noun,B2,,, +down,adjective,B2,,, +down,adverb,A1,,, +down,preposition,A2,,, +downfall,noun,B2,,, +download,noun,B2,Technical and legal language,, +download,verb,A2,,, +downsize,verb,B2,,, +downstairs,adjective,B1,,, +downstairs,adverb,A2,,, +downtown,adverb,A2,,, +downward,adjective,B1,,, +dowry,noun,B2,,, +doze,noun,B1,,, +dozen,determiner,B1,,, +dozen,noun,B1,,, +draft/draught,noun,B2,,, +drag,verb,B1,,, +drain,noun,B2,,, +drain,verb,B2,,, +drama,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +dramatic,adjective,B1,,, +dramatically,adverb,B2,,, +drapery,noun,B2,Clothes,,Shopping +draw,noun,A2,,, +draw,verb,A1,,, +drawer,noun,A2,,,"House and home, environment" +drawing,noun,A2,,,"Free time, entertainment" +dread,verb,B2,,, +dreadful,adjective,B2,,, +dream,noun,A1,,, +dream,verb,A2,,, +dreamy,adjective,B2,,, +dress,noun,A1,Clothes,,Shopping +dress,verb,A2,,, +dressed,adjective,A2,,, +drill,noun,A2,Objects and rooms,,Education +drink,noun,A1,Food and drink,,Food and drink +drink,verb,A1,,, +drinkable,adjective,B2,,, +drive,noun,A1,Hobbies and pastimes,,Travel +drive,verb,A2,,, +driver,noun,A1,Hobbies and pastimes,Work and Jobs,Personal identification +driver's license/driving licence,noun,A2,,,Travel +droop,noun,B2,,, +drop,noun,A2,,, +drop,verb,A1,,, +dropout,noun,B2,,, +drought,noun,B2,"News, lifestyles and current affairs",, +drown,verb,B1,,, +drug,noun,A2,Travel and services vocab,,Shopping +drugstore,noun,A2,"Things in the town, shops and shopping",,Shopping +drum,noun,A1,Leisure activities,,"Free time, entertainment" +drunk,adjective,B1,,, +dry,adjective,A1,,, +dry,verb,A2,,, +duck,noun,A2,,, +dude,noun,B1,,, +due,adjective,A1,,, +duel,noun,B2,,, +dull,adjective,B1,,, +dumb,adjective,B2,,, +dump,noun,B1,"Things in the town, shops and shopping",, +dump,verb,B1,,, +duplicate,noun,B2,,, +duplication,noun,B2,,, +during,preposition,A2,,, +dust,noun,A2,Objects and rooms,, +dustbin,noun,B1,Objects and rooms,,"House and home, environment" +dusty,adjective,B1,,, +duty,noun,B1,,, +duty-free,adjective,B1,,, +duvet,noun,B1,Objects and rooms,,"House and home, environment" +DVD,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +dwarf,noun,B2,Books and literature,,Personal identification +dye,noun,B2,,, +dynamic,adjective,B2,,, +dynasty,noun,B1,Nationalities and countries,, +each,determiner,A1,,, +each,pronoun,A1,,, +each other,pronoun,A1,,, +eager,adjective,B1,,, +eagerly,adverb,B2,,, +eagerness,noun,B1,,, +eagle,noun,B2,,, +ear,noun,A1,,,Health and body care +earache,noun,B1,,, +early,adjective,A2,,, +early,adverb,A1,,, +earn,verb,A2,,, +earnest,adjective,B1,,, +earnings,noun,B2,,,Shopping +earring,noun,A2,,,Shopping +earth,noun,A2,Nationalities and countries,,Places +earthquake,noun,A2,"News, lifestyles and current affairs",,Weather +ease,noun,B2,,, +ease,verb,B2,,, +easily,adverb,A2,,, +east,adjective,A2,,, +east,adverb,A2,,, +east,noun,A2,,, +eastern,adjective,B1,,, +eastward,adverb,B2,,, +easy,adjective,A1,,, +easygoing/easy-going,adjective,B1,,, +eat,verb,A1,,, +eco,noun,B1,,, +ecological,adjective,B1,,, +ecologically,adverb,B2,,, +ecologist,noun,B2,,, +ecology,noun,B1,Education,, +economic,adjective,B1,,, +economical,adjective,B2,,, +economics,noun,B1,,, +economist,noun,B2,,,Personal identification +economy,noun,B1,Work and Jobs,,Daily life +ecosystem,noun,B1,Education,, +ecstasy,noun,B1,,, +ecstatic,adjective,B2,,, +edge,noun,B1,Objects and rooms,, +edit,noun,B2,,, +edit,verb,B2,,, +edition,noun,B1,Books and literature,, +editor,noun,A2,Work and Jobs,,Personal identification +editorial,noun,B2,Media,,Personal identification +educate,verb,B1,,, +educated,adjective,B2,,, +education,noun,A2,Education,,Education +educational,adjective,A2,,, +educator,noun,B2,Work and Jobs,Education,Personal identification +effect,noun,A2,,, +effective,adjective,B1,,, +effectively,adverb,B2,,, +effectiveness,noun,B2,,, +efficiency,noun,B1,Work and Jobs,, +efficient,adjective,B1,,, +effort,noun,A2,,, +egg,noun,A1,Food and drink,,Food and drink +eight,number,A1,,, +eighteen,number,A1,,, +eighty,number,A1,,, +either,adverb,A1,,, +either,conjunction,A2,,, +either,determiner,B1,,, +either,pronoun,B1,,, +elbow,noun,B1,,, +elderly,adjective,A2,,, +elect,verb,B2,,, +election,noun,B1,"News, lifestyles and current affairs",,Relations with other people +elective,adjective,B2,,, +electric,adjective,A2,,, +electrical,adjective,B1,,, +electrician,noun,B2,,,Personal identification +electricity,noun,B1,Travel and services vocab,,Services +electron,noun,B1,Technical and legal language,Education, +electronic,adjective,B1,,, +electronically,adverb,B2,,, +electronics,noun,B2,,, +elegance,noun,B2,,, +elegant,adjective,B2,,, +elegantly,adverb,B2,,, +element,noun,B1,,, +elemental,adjective,B2,,, +elementary,adjective,A1,,, +elephant,noun,A2,,, +elevator,noun,A2,"Things in the town, shops and shopping",,"House and home, environment" +eleven,number,A1,,, +eligible,adjective,B2,,, +eliminate,verb,B1,,, +elite,noun,B2,,, +eloquence,noun,B2,,, +eloquent,adjective,B2,,, +else,adverb,A1,,, +elsewhere,adverb,A2,,, +email,verb,A2,,, +email/e-mail/E-mail,noun,A1,Media,,Services +embarrass,verb,B1,,, +embarrassed,adjective,B1,,, +embarrassing,adjective,A2,,, +embarrassment,noun,B1,,, +embassy,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +embrace,noun,B2,,, +emerge,verb,B1,,, +emergence,noun,B2,,, +emergency,noun,A2,"News, lifestyles and current affairs",, +emotion,noun,B1,,, +emotional,adjective,B1,,, +emotionally,adverb,B1,,, +emperor,noun,B1,Nationalities and countries,,Relations with other people +emphasis,noun,B1,,, +emphasize/emphasize,verb,B1,,, +emphatically,adverb,B2,,, +empire,noun,B1,Nationalities and countries,,Places +employ,verb,B2,,, +employee,noun,B2,Work and Jobs,,Personal identification +employer,noun,B2,Work and Jobs,,Personal identification +employment,noun,B1,Work and Jobs,,Personal identification +empty,adjective,A2,,, +enable,verb,B1,,, +enclose,verb,B1,,, +encounter,noun,B1,,, +encounter,verb,B2,,, +encourage,verb,A2,,, +encouragement,noun,B1,,, +encouraging,adjective,B1,,, +encyclopedia/encyclopaedia,noun,B1,Books and literature,, +end,noun,A1,,, +end,verb,A2,,, +endanger,verb,B1,,, +endangered,adjective,A2,,, +endeavor/endeavour,noun,B2,,, +ending,noun,A2,,, +endless,adjective,B1,,, +endlessly,adverb,B2,,, +endorse,verb,B2,,, +endurance,noun,B2,,, +endure,verb,B1,,, +enduring,adjective,B2,,, +enemy,noun,B1,,,Relations with other people +energetic,adjective,A2,,, +energy,noun,B2,,, +enforce,verb,B2,,, +engage,verb,B1,,, +engaged,adjective,B1,,, +engagement,noun,B2,,, +engine,noun,B1,Work and Jobs,,Travel +engineer,noun,A1,Work and Jobs,,Personal identification +engineering,noun,B1,Education,Work and Jobs,Daily life +Englishman,noun,B1,Nationalities and countries,,Personal identification +engulf,verb,B2,,, +enhance,verb,B2,,, +enjoy,verb,A1,,, +enjoyable,adjective,B1,,, +enjoyment,noun,B1,,, +enormous,adjective,A2,,, +enough,adverb,A2,,, +enough,determiner,A2,,, +enough,pronoun,A2,,, +enrich,verb,B1,,, +enroll/enrol,verb,B2,Education,, +ensure,verb,B1,,, +enter,verb,A2,,, +enterprise,noun,B2,Work and Jobs,, +entertain,verb,B1,,, +entertainer,noun,B1,Work and Jobs,,Personal identification +entertaining,adjective,B2,,, +entertainment,noun,A2,Hobbies and pastimes,,"Free time, entertainment" +enthusiasm,noun,B1,,, +enthusiast,noun,B1,,, +enthusiastic,adjective,B1,,, +enthusiastically,adverb,B2,,, +entire,adjective,B1,,, +entirely,adverb,B1,,, +entitle,verb,B2,,, +entrance,noun,A2,Objects and rooms,,"House and home, environment" +entrepreneur,noun,B2,,, +entry,noun,B1,,, +envelope,noun,A2,,, +environment,noun,B2,,,"House and home, environment" +environmental,adjective,B1,,, +environmentalist,noun,B1,Work and Jobs,,Personal identification +environmentally,adverb,B2,,, +environmentally friendly,adjective,B2,,, +envy,noun,A2,,,Relations with other people +envy,verb,B2,,, +episode,noun,A2,Books and literature,,"Free time, entertainment" +equal,adjective,B1,,, +equal,noun,B2,,, +equal,verb,B2,,, +equality,noun,B1,,, +equally,adverb,B1,,, +equation,noun,B2,,, +equip,verb,B2,,, +equipment,noun,B1,,, +equity,noun,B2,,, +era,noun,B1,Education,, +erect,adjective,B2,,, +error,noun,A2,,, +erupt,verb,B2,,, +eruption,noun,B2,"News, lifestyles and current affairs",, +escalator,noun,A2,"Things in the town, shops and shopping",,"House and home, environment" +escape,noun,A2,,, +escape,verb,B1,,, +especially,adverb,A2,,, +essay,noun,A2,Education,Books and literature,Education +essayist,noun,B2,Work and Jobs,,Personal identification +essence,noun,B1,,, +essential,adjective,B1,,, +essentially,adverb,B2,,, +establish,verb,A2,,, +establishment,noun,B1,,, +estate,noun,B2,,,"House and home, environment" +estimate,noun,B2,,, +estimate,verb,B1,,, +estimated,adjective,B2,,, +eternal,adjective,B1,,, +eternally,adverb,B2,,, +eternity,noun,B1,,, +ethic,noun,B2,,, +ethnic,adjective,B2,,, +euro,noun,A2,,, +evacuate,verb,B2,,, +evacuation,noun,B2,,, +evaluate,verb,B2,,, +evaluation,noun,B2,,, +even,adjective,B1,,, +even,adverb,A2,,, +evening,noun,A1,,, +evenly,adverb,B1,,, +event,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +eventually,adverb,B1,,, +ever,adverb,A2,,, +everlasting,adjective,B2,,, +every,determiner,A1,,, +everybody,pronoun,A1,,, +everyday,adjective,A1,,, +everyone,pronoun,A1,,, +everything,pronoun,A1,,, +everywhere,adverb,A1,,, +evidence,noun,A2,,, +evident,adjective,B1,,, +evidently,adverb,B2,,, +evil,adjective,B2,,, +evil,noun,B2,,, +evolution,noun,B2,,, +evolve,verb,B2,,, +exact,adjective,B1,,, +exactly,adverb,A2,,, +exactness,noun,B2,,, +exaggerate,noun,B2,,, +exaggeration,noun,B2,,, +exalt,verb,B2,,, +exam,noun,A2,,, +examination,noun,B1,Education,,Education +examine,verb,B1,,, +examinee,noun,B2,Education,, +examiner,noun,B1,Work and Jobs,,Personal identification +example,noun,A1,,, +exceed,verb,B2,,, +excel,verb,B2,,, +excellence,noun,B1,,, +excellent,adjective,A1,,, +except,conjunction,A2,,, +except,preposition,A2,,, +exception,noun,B2,,, +exceptional,adjective,B2,,, +exceptionally,adverb,B2,,, +excess,noun,B1,,, +excessive,adjective,B2,,, +exchange,noun,A2,,, +exchange,verb,B1,,, +exchange rate,noun,B1,,, +excited,adjective,A1,,, +excitedly,adverb,B1,,, +excitement,noun,B1,,,Personal identification +exciting,adjective,A1,,, +exclaim,verb,B2,,, +exclamation mark,noun,B2,,,Language +exclude,verb,B2,,, +exclusion,noun,B2,,, +exclusive,adjective,B1,,, +exclusively,adverb,B2,,, +excursion,noun,B2,Hobbies and pastimes,,"Free time, entertainment" +excuse,noun,A1,,, +excuse,verb,B1,,, +execute,verb,B2,,, +execution,noun,B2,,, +executive,adjective,B2,,, +executive,noun,B2,Work and Jobs,,Personal identification +exercise,noun,A2,Leisure activities,,"Free time, entertainment" +exercise,verb,A1,,, +exhaust,noun,B2,,, +exhausted,adjective,B1,,, +exhausting,adjective,B2,,, +exhaustion,noun,B2,,, +exhibit,verb,B2,,, +exhibition,noun,A2,Hobbies and pastimes,,"Free time, entertainment" +exile,noun,B2,,, +exist,verb,A2,,, +existence,noun,B1,,, +existing,adjective,B2,,, +exit,noun,B1,Objects and rooms,,"House and home, environment" +exit,verb,B1,,, +exotic,adjective,B2,,, +expand,verb,B1,,, +expansion,noun,B2,,, +expect,verb,A2,,, +expectation,noun,B2,,, +expected,adjective,B2,,, +expedition,noun,B2,Travel and services vocab,,Travel +expense,noun,B1,Shopping,,Shopping +expensive,adjective,A1,,, +experience,noun,A2,,, +experience,verb,B1,,, +experienced,adjective,B1,,, +experiment,noun,B1,,, +experiment,verb,B2,,, +expert,adjective,B2,,, +expert,noun,A2,Work and Jobs,,Personal identification +explain,verb,A2,,, +explanation,noun,A2,,, +explode,verb,B2,,, +exploit,verb,B2,,, +exploration,noun,B1,,, +explore,verb,A2,,, +explorer,noun,B2,Work and Jobs,,Personal identification +explosion,noun,B1,"News, lifestyles and current affairs",, +explosive,adjective,B2,,, +explosive,noun,B2,"News, lifestyles and current affairs",, +export,noun,B2,Work and Jobs,, +export,verb,B2,,, +expose,verb,B1,,, +express,noun,A2,,, +express,verb,B1,,, +expression,noun,A2,,, +expressive,adjective,B2,,, +exquisite,adjective,B2,,, +extend,verb,B1,,, +extension,noun,B2,,, +extensive,adjective,B2,,, +extensively,adverb,B1,,, +extent,noun,B1,,, +external,adjective,B2,,, +extinct,adjective,B1,,, +extinction,noun,B1,,, +extra,adjective,A2,,, +extra,adverb,A2,,, +extra,noun,B1,,, +extract,noun,B2,,, +extract,verb,B2,,, +extraordinarily,adverb,B2,,, +extraordinary,adjective,B1,,, +extreme,adjective,B1,,, +extreme sports,noun,B1,,, +extremely,adverb,A2,,, +exultant,adjective,B2,,, +eye,noun,A1,,,Health and body care +eyebrow,noun,B2,,,Health and body care +eyelash,noun,B2,,,Health and body care +eyelid,noun,B2,,,Health and body care +eyesight,noun,B1,Travel and services vocab,, +fabric,noun,B2,Clothes,,Shopping +fabulous,adjective,B2,,, +face,noun,A1,,,Health and body care +face,verb,A2,,, +face to face,adverb,B1,,, +face-to-face,adjective,B1,,, +facilitate,verb,B2,,, +facilities,noun,B2,,, +facility,noun,B1,,, +fact,noun,A2,,, +factor,noun,B2,,, +factory,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +faculty,noun,B2,,, +fade,verb,B1,,, +fail,verb,A2,,, +failure,noun,B1,,, +faint,adjective,B1,,, +faint,verb,B2,,, +fair,adjective,A1,,, +fair,noun,B1,,, +fairly,adverb,A2,,, +fairy,noun,A1,Books and literature,, +faith,noun,B2,,, +faithful,adjective,B1,,, +fake,adjective,B1,,, +fall,noun,B1,,, +fall,verb,A2,,, +fallen,adjective,B1,,, +false,adjective,A1,,, +falter,verb,B2,,, +fame,noun,B2,,, +familiar,adjective,A2,,, +familiarize/familiarise,verb,B2,,, +family,noun,A1,Family life,,Personal identification +famous,adjective,A1,,, +fan,noun,A1,Objects and rooms,,Personal identification +fancy,adjective,A2,,, +fancy,noun,B1,,, +fancy,verb,B1,,, +fantastic,adjective,A2,,, +fantastically,adverb,B2,,, +fantasy,noun,B1,Books and literature,,"Free time, entertainment" +far,adjective,B2,,, +far,adverb,A2,,, +faraway,adjective,B1,,, +fare,noun,A2,Travel and services vocab,,Travel +farewell,noun,B1,,, +farm,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +farmer,noun,A1,Work and Jobs,,Personal identification +farming,noun,B1,,, +farmland,noun,B1,"Things in the town, shops and shopping",, +farther,adverb,B1,,, +farthest,adverb,B1,,, +fascinate,verb,B1,,, +fascinated,adjective,B2,,, +fascinating,adjective,A2,,, +fascination,noun,B2,,, +fashion,noun,A2,Shopping,,Shopping +fashionable,adjective,B1,,, +fast,adjective,A1,,, +fast,adverb,A1,,, +fast food,noun,A2,,,Food and drink +fasten,verb,B1,,, +fat,adjective,A1,,, +fat,noun,B2,,, +fatal,adjective,B2,,, +fate,noun,B2,,, +father,noun,A1,Family life,,Personal identification +father-in-law,noun,B2,,,Personal identification +fault,noun,A2,,, +faulty,adjective,B2,,, +favor/favour,noun,A2,,, +favorable/favourable,adjective,B1,,, +favorite/favourite,adjective,A1,,, +favorite/favourite,noun,A1,,,Personal identification +fax,noun,B1,,, +fax,verb,B1,,, +fear,noun,A2,,, +fear,verb,B2,,, +fearsome,adjective,B2,,, +feast,noun,B1,Food and drink,, +feat,noun,B2,,, +feather,noun,A2,,, +feature,noun,A2,,, +feature,verb,B2,,, +February,noun,A1,,, +fed up,adjective,B2,,, +federal,adjective,B2,,, +fee,noun,A2,Travel and services vocab,,Travel +feed,noun,A1,Food and drink,,Food and drink +feed,verb,B1,,, +feedback,noun,B2,,, +feel,noun,A2,,, +feel,verb,A1,,, +feeling,noun,A1,,, +fellow,adjective,B2,,, +fellow,noun,B1,,, +female,adjective,A2,,, +female,noun,B2,,,Personal identification +fence,noun,A2,"Things in the town, shops and shopping",,"House and home, environment" +ferry,noun,B1,Ways of travelling,,Travel +ferryboat,noun,B2,Ways of travelling,,Travel +festival,noun,A1,Leisure activities,,"Free time, entertainment" +festive,adjective,B1,,, +fetch,verb,B1,,, +fever,noun,A1,Travel and services vocab,,Health and body care +feverishly,adverb,B1,,, +few,determiner,A2,,, +few,pronoun,B1,,, +fiber/fibre,noun,B2,,, +fiction,noun,A2,Books and literature,,"Free time, entertainment" +fictional,adjective,B2,,, +field,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +fierce,adjective,B2,,, +fifteen,number,A1,,, +fifth,noun,B1,,, +fifty,number,A1,,, +fight,noun,A1,"News, lifestyles and current affairs",,Relations with other people +fight,verb,B1,,, +fighter,noun,A2,Work and Jobs,,Personal identification +fighting,noun,B2,,, +figurative,adjective,B2,,, +figure,noun,A2,,, +figure,verb,A2,,, +file,noun,A1,Objects and rooms,, +file,verb,B2,,, +filial,adjective,B2,,, +fill,verb,A1,,, +filling,noun,B1,Food and drink,,Food and drink +film,noun,A2,Hobbies and pastimes,,"Free time, entertainment" +film,verb,B1,,, +film-maker,noun,B1,Work and Jobs,,Personal identification +filter,noun,B1,,, +final,adjective,A2,,, +final,noun,A2,,, +finally,adverb,A2,,, +finance,noun,B2,,,Services +finance,verb,B1,,, +financial,adjective,B1,,, +financially,adverb,B2,,, +find,verb,A1,,, +finding,noun,B1,,, +fine,adjective,A1,,, +fine,adverb,B2,,, +fine,noun,B1,,, +fine,verb,B2,,, +finely,adverb,B2,,, +finger,noun,B1,,,Health and body care +fingernail,noun,B2,,,Health and body care +finish,noun,A1,,, +finish,verb,A1,,, +fire,noun,A1,,, +fire,verb,B2,,, +fire brigade,noun,B2,,,Personal identification +fire station,noun,B1,"Things in the town, shops and shopping",,Services +firearm,noun,B2,Objects and rooms,, +firefighter,noun,B1,Work and Jobs,, +fireplace,noun,B2,Objects and rooms,,"House and home, environment" +firework,noun,B1,Hobbies and pastimes,, +firm,adjective,B1,,, +firm,noun,B1,Film,,"Free time, entertainment" +firmly,adverb,B1,,, +firmness,noun,B2,,, +first,adjective,A1,,, +first,adverb,A1,,, +first floor,noun,B1,Objects and rooms,,"House and home, environment" +first lady,noun,B1,,, +first language,noun,B2,,,Language +first name,noun,A2,,,Personal identification +first person,noun,B2,,,Personal identification +first-floor,adjective,B1,,, +firstly,adverb,B2,,, +fiscal,adjective,B2,,, +fish,noun,A1,Food and drink,,Food and drink +fish,verb,B1,,, +fisherman,noun,A2,Work and Jobs,,Personal identification +fishing,noun,A1,Leisure activities,,"Free time, entertainment" +fit,adjective,A2,,, +fit,noun,B2,,, +fit,verb,B1,,, +fitness,noun,B1,Leisure activities,,"Free time, entertainment" +five,number,A1,,, +fix,noun,A2,,, +fix,verb,B1,,, +fixed,adjective,B2,,, +flag,noun,A1,"Things in the town, shops and shopping",, +flame,noun,B2,,, +flap,verb,B2,,, +flash,adjective,B1,,, +flash,noun,B2,,, +flash,verb,B2,,, +flat,adjective,B1,,, +flat,adverb,B2,,, +flat,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +flavor/flavour,noun,B1,Food and drink,,Food and drink +flaw,noun,B2,,, +flawless,adjective,B2,,, +flax,noun,B2,,, +flea,noun,A2,,, +flee,verb,B2,,, +fleet,noun,B2,"News, lifestyles and current affairs",, +flesh,noun,B2,,, +flexibility,noun,B2,,, +flexible,adjective,B2,,, +flexibly,adverb,B2,,, +flight,noun,A2,Ways of travelling,,Travel +flip,verb,B2,,, +float,noun,A2,Ways of travelling,,Travel +float,verb,B1,,, +flock,noun,B1,Collocation,, +flood,noun,A2,"News, lifestyles and current affairs",,Weather +flood,verb,B1,,, +floor,noun,A1,Objects and rooms,,"House and home, environment" +flour,noun,A2,Food and drink,,Food and drink +flow,noun,B1,,, +flow,verb,B1,,, +flower,noun,A1,,, +flu,noun,B1,Travel and services vocab,,Health and body care +fluency,noun,B2,,, +fluent,adjective,B1,,, +fluently,adverb,B1,,, +fluid,adjective,B2,,, +flunk,verb,B1,Education,, +flute,noun,B1,,, +flutter,noun,B2,,, +fly,noun,A1,Ways of travelling,, +fly,verb,A1,,, +focus,noun,B2,,, +focus,verb,A1,,, +fog,noun,A2,,,Weather +foggy,adjective,A1,,, +fold,noun,B1,,, +fold,verb,B1,,, +folder,noun,A2,,, +folk,noun,B1,Food and drink,Objects and rooms,Food and drink +follow,verb,A2,,, +follower,noun,B2,,, +following,adjective,A1,,, +following,preposition,B2,,, +folly,noun,B2,,, +fond,adjective,B1,,, +fondly,adverb,B2,,, +fondness,noun,B1,,, +food,noun,A1,Food and drink,,Food and drink +fool,noun,A2,,, +fool,verb,B1,,, +foolish,adjective,B1,,, +foolishly,adverb,B2,,, +foot,noun,B1,,,Health and body care +football,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +footballer,noun,A2,,,Personal identification +footnote,noun,B2,Books and literature,, +for,conjunction,A2,,, +for,preposition,A1,,, +forbid,verb,A2,,, +forbidden,adjective,B1,,, +force,noun,A2,,, +force,verb,B2,,, +forcefully,adverb,B2,,, +forecast,noun,B1,,, +forehead,noun,B1,,, +foreign,adjective,A1,,, +foreigner,noun,A1,,,Personal identification +foreman,noun,B2,Work and Jobs,,Personal identification +foresee,verb,B2,,, +forest,noun,A2,,,"House and home, environment" +forestry,noun,B2,,, +forever,adverb,A2,,, +forget,verb,A1,,, +forgive,verb,B1,,, +fork,noun,A2,,,Shopping +form,noun,A1,,, +form,verb,B1,,, +formal,adjective,B1,,, +formally,adverb,B1,,, +format,noun,B1,,, +format,verb,B1,,, +formation,noun,B2,,, +former,adjective,B1,,, +formerly,adverb,B2,,, +formidable,adjective,B2,,, +formula,noun,B1,Education,, +forth,adverb,B1,,, +forthcoming,adjective,B2,,, +fortnight,noun,B1,,, +fortunate,adjective,B1,,, +fortunately,adverb,A2,,, +fortune,noun,A2,Shopping,, +forty,number,A1,,, +forward,adverb,A2,,, +foul,adjective,B2,,, +found,verb,B2,,, +foundation,noun,B1,,, +fountain,noun,B1,"Things in the town, shops and shopping",,Places +four,number,A1,,, +fourteen,number,A1,,, +fox,noun,B2,,, +fragment,noun,B1,,, +fragrance,noun,B2,,, +frame,noun,A2,,, +frame,verb,B2,,, +frank,adjective,A2,,, +frankly,adverb,B2,,, +frantically,adverb,B2,,, +fraud,noun,B2,,, +freak,verb,B2,,, +free,adjective,A1,,, +free,adverb,A2,,, +free,verb,B2,,, +freedom,noun,A2,,, +freely,adverb,B1,,, +freeze,verb,A2,,, +freezer,noun,B1,Objects and rooms,,"House and home, environment" +freezing,adjective,B1,,, +frequency,noun,B1,,, +frequent,adjective,B1,,, +frequently,adverb,B1,,, +fresh,adjective,A2,,, +freshman,noun,B1,Education,,Personal identification +Friday,noun,A1,,, +fridge,noun,A2,,,"House and home, environment" +fried,adjective,A2,,, +friend,noun,A1,Personal information,,Relations with other people +friendliness,noun,B1,Personal information,,Relations with other people +friendly,adjective,B2,,, +friendship,noun,A2,Personal information,,Relations with other people +frigate,noun,B2,Education,, +fright,noun,B1,,, +frighten,verb,A2,,, +frightened,adjective,A2,,, +frightening,adjective,A2,,, +frog,noun,A1,,, +from,preposition,A1,,, +front,adjective,A1,,, +front,noun,A2,,, +frontier,noun,B2,Nationalities and countries,, +frost,noun,B1,,,Weather +frozen,adjective,B1,,, +frugal,adjective,B2,,, +fruit,noun,A1,Food and drink,,Food and drink +frustrated,adjective,B1,,, +frustration,noun,B1,,, +fry,noun,A2,,, +fry,verb,B1,,, +frying pan,noun,B1,Objects and rooms,,Shopping +fuel,noun,B1,"News, lifestyles and current affairs",, +fulfill/fulfil,verb,B2,,, +full,adjective,A1,,, +full stop,noun,B1,,, +full-time,adjective,B1,,, +full-time,adverb,B1,,, +fully,adverb,A2,,, +fume,noun,B2,,, +fun,adjective,A1,,, +fun,noun,A1,"Adjectives: personality, description, feelings",, +function,noun,B1,,, +function,verb,A2,,, +functional,adjective,B2,,, +functionality,noun,B2,,, +fund,noun,B1,"News, lifestyles and current affairs",, +fund,verb,B1,,, +fundamental,adjective,B2,,, +funeral,noun,B1,,,Daily life +funk,noun,B2,,, +funky,adjective,B2,,, +funny,adjective,A1,,, +fur,noun,B1,Clothes,,Shopping +furious,adjective,B2,,, +furiously,adverb,B2,,, +furnish,verb,B1,,, +furniture,noun,A2,Objects and rooms,,"House and home, environment" +furor/furore,noun,B2,,, +further,adjective,A2,,, +further,adverb,B1,,, +furthermore,adverb,B1,,, +furthest,adverb,B1,,, +fuss,noun,B1,,, +future,adjective,B1,,, +future,noun,A1,,, +gaiety,noun,B2,,, +gain,noun,B1,,, +gain,verb,B1,,, +gall,noun,B1,Travel and services vocab,, +gallery,noun,A2,"Things in the town, shops and shopping",,Services +gallon,noun,B1,,, +gambling,noun,B2,,, +game,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +gang,noun,B2,,,Personal identification +gangster,noun,B2,"News, lifestyles and current affairs",, +gap,noun,B1,,, +garage,noun,A2,,,"House and home, environment" +garbage,noun,A1,Objects and rooms,,"House and home, environment" +garden,noun,A1,Objects and rooms,,"House and home, environment" +gardener,noun,B2,Work and Jobs,,Personal identification +gardening,noun,B1,Hobbies and pastimes,Work and Jobs,"Free time, entertainment" +garlic,noun,A2,,,Food and drink +garment,noun,B1,Clothes,, +gas,noun,A2,"Things in the town, shops and shopping",,Services +gasp,noun,B2,,, +gate,noun,A2,Objects and rooms,,"House and home, environment" +gateway,noun,B2,Objects and rooms,,"House and home, environment" +gather,verb,A2,,, +gaudy,adjective,B2,,, +gay,adjective,B1,,, +gaze,noun,B2,,, +gear,noun,B2,,, +gee,interjection,B1,,, +gender,noun,A2,Education,,Personal identification +gene,noun,B1,Education,, +general,adjective,B1,,, +general,noun,B1,"News, lifestyles and current affairs",, +generalization/generalisation,noun,B2,,, +generalize/generalise,verb,B2,,, +generally,adverb,B1,,, +generate,verb,B1,,, +generation,noun,A2,,, +generosity,noun,B2,,, +generous,adjective,B1,,, +generously,adverb,B2,,, +genetic,adjective,B1,,, +genetically,adverb,B1,,, +genetics,noun,B1,Education,,Education +genius,noun,B2,,, +genre,noun,B2,Arts,,"Free time, entertainment" +gentle,adjective,A2,,, +gentleman,noun,B1,,,Personal identification +gently,adverb,B2,,, +genuine,adjective,B2,,, +genuinely,adverb,B2,,, +geographic,adjective,B2,,, +geographical,adjective,B1,,, +geography,noun,B1,Education,,Education +geology,noun,B1,Education,,Education +germ,noun,B2,,, +gesture,noun,B1,,, +get,verb,A1,,, +getaway,noun,B2,,, +ghetto,noun,B2,Education,, +ghost,noun,A1,,, +giant,adjective,B1,,, +gift,noun,A1,Objects and rooms,,Shopping +gifted,adjective,B1,,, +giggle,noun,B1,,, +ginger,noun,B1,Food and drink,,Food and drink +giraffe,noun,B1,,, +girl,noun,A1,,,Personal identification +girlfriend,noun,A1,Personal information,,Personal identification +give,verb,A1,,, +giveaway,noun,B2,,, +given,adjective,A2,,, +glacis,noun,B2,,, +glad,adjective,A1,,, +glamorous/glamourous,adjective,B2,,, +glance,noun,B1,,, +glance,verb,B1,,, +glare,noun,B2,,, +glass,noun,A1,Objects and rooms,,Shopping +glasses,noun,A1,Objects and rooms,,"House and home, environment" +gleam,noun,B2,,, +glee,noun,B2,,, +glide,noun,B1,,, +glimpse,noun,B1,,, +glint,noun,B1,,, +global,adjective,B1,,, +global warming,noun,B2,,, +globally,adverb,B2,,, +globe,noun,A2,,, +glocal,adjective,B2,,, +gloomy,adjective,B2,,, +glorify,verb,B2,,, +glorious,adjective,B1,,, +glory,noun,B1,,, +glove,noun,A2,Clothes,,Shopping +glow,noun,B2,,, +go,noun,B1,,, +go,verb,A1,,, +goal,noun,A1,,,"Free time, entertainment" +goalkeeper,noun,B1,Work and Jobs,Leisure activities,Personal identification +goat,noun,B2,,, +god,noun,B2,Books and literature,, +goddess,noun,B1,Books and literature,, +godly,adjective,B2,,, +gold,adjective,A1,,, +gold,noun,A2,,, +golden,adjective,A2,,, +golf,noun,A2,,,"Free time, entertainment" +golfer,noun,B1,Work and Jobs,Leisure activities,Personal identification +good,adjective,A1,,, +good,noun,B2,,, +good afternoon,interjection,A1,,, +good morning,interjection,A1,,, +good night,interjection,A1,,, +good-looking,adjective,A2,,, +goodness,interjection,B1,,, +goods,noun,B1,Objects and rooms,,Shopping +goodwill,noun,B2,,, +gook,noun,B2,Idiomatic expressions,, +gorge,noun,B2,,, +gorgeous,adjective,B1,,, +gorilla,noun,B1,,, +gossip,noun,B1,Media,,"Free time, entertainment" +gossip,verb,B2,,, +govern,verb,B1,,, +government,noun,A2,"Things in the town, shops and shopping",,Relations with other people +governmental,adjective,B2,,, +governor,noun,B1,"Things in the town, shops and shopping",,Personal identification +gown,noun,B1,Clothes,,Shopping +grab,verb,B1,,, +grace,noun,A2,,, +graceful,adjective,B1,,, +gracefulness,noun,B2,,, +grade,noun,A1,,,Education +grade,verb,B2,,, +gradual,adjective,B2,,, +gradually,adverb,A2,,, +graduate,noun,B1,Education,,Education +graduate,verb,A2,,, +graduation,noun,B1,Education,,Education +grain,noun,B2,Food and drink,,Food and drink +gram/gramme,noun,A2,,, +grammar,noun,A1,Education,,Education +grand,adjective,B2,,, +grandchild,noun,A2,,,Personal identification +granddad,noun,A2,,,Personal identification +granddaughter,noun,A2,,,Personal identification +grandfather,noun,A1,Family life,,Personal identification +grandma,noun,A1,Family life,,Personal identification +grandmother,noun,A1,Family life,,Personal identification +grandpa,noun,A1,Family life,,Personal identification +grandparent,noun,A1,Family life,,Personal identification +grandson,noun,A2,,,Personal identification +granny,noun,A2,,, +grant,noun,B1,,, +grant,verb,B1,,, +grape,noun,A1,Food and drink,,Food and drink +graph,noun,B1,Education,, +graphic,adjective,B1,,, +graphically,adverb,B2,,, +graphics,noun,B1,,, +grasp,noun,B2,,, +grass,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +grateful,adjective,A2,,, +gratitude,noun,B1,,, +grave,noun,B1,"Things in the town, shops and shopping",,"House and home, environment" +gravestone,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +gravitation,noun,B2,,, +gravy,noun,B1,,, +gray/grey,adjective,A1,Colours,, +gray/grey,noun,A1,Colours,, +great,adjective,A1,,, +greatly,adverb,A2,,, +greatness,noun,B2,,, +greedy,adjective,A2,,, +green,adjective,A1,Colours,, +green,noun,A2,,, +greenhouse,noun,B1,"Things in the town, shops and shopping",,"House and home, environment" +greet,verb,A1,,, +greeting,noun,B1,,, +grief,noun,B2,,, +grieve,verb,B2,,, +grill,noun,B1,Objects and rooms,,Shopping +grill,verb,B1,,, +grilled,adjective,A2,,, +grim,adjective,B2,,, +grin,noun,B2,,, +grip,noun,B2,,, +grip,verb,B2,,, +grocery store,noun,A2,,, +groom,noun,B1,Family life,, +gross,adjective,B2,,, +ground,noun,A1,"Things in the town, shops and shopping",,"Free time, entertainment" +ground floor,noun,B1,Objects and rooms,,"House and home, environment" +group,noun,A1,,,Relations with other people +group,verb,B1,,, +grouping,noun,B1,,, +grow,verb,A1,,, +growing,adjective,B2,,, +grown-up,adjective,B2,,, +grown-up,noun,B2,,, +growth,noun,B1,,, +guarantee,noun,B1,,, +guarantee,verb,B2,,, +guard,noun,A2,Work and Jobs,,Personal identification +guard,verb,B2,,, +guerrilla,noun,B2,"News, lifestyles and current affairs",, +guess,noun,B1,,, +guess,verb,A1,,, +guest,noun,A1,,,Relations with other people +guidance,noun,B1,Education,, +guide,noun,B1,Travel and services vocab,,Personal identification +guide,verb,B1,,, +guidebook,noun,A2,,, +guideline,noun,B2,"News, lifestyles and current affairs",, +guilt,noun,B1,"News, lifestyles and current affairs",, +guilty,adjective,B1,,, +guitar,noun,A1,Objects and rooms,,"Free time, entertainment" +guitarist,noun,B1,Work and Jobs,,Personal identification +gulp,noun,B2,,, +gum,noun,B2,,,Food and drink +gun,noun,A2,,, +gunshot,noun,B2,,, +guts,noun,B2,,,Food and drink +guy,noun,A1,,,Personal identification +gym,noun,B1,"Things in the town, shops and shopping",,"Free time, entertainment" +gymnastic,adjective,B2,,, +gymnastics,noun,B1,Education,,Education +habit,noun,A1,Personal information,,Personal identification +habitant,noun,B2,Personal information,, +habitat,noun,B1,Education,, +had,have-verb,A1,,, +hail,verb,B2,,, +hair,noun,A1,Personal information,,Health and body care +haircut,noun,A1,,,Services +hairdresser,noun,B1,Work and Jobs,,Personal identification +hairdryer,noun,B1,Objects and rooms,,Shopping +hairy,adjective,B2,,, +half,adverb,B1,,, +half,determiner,A2,,, +half,noun,A1,,, +half,pronoun,A2,,, +half-price,adjective,A2,,, +half-price,adverb,A2,,, +hall,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +ham,noun,A2,,,Food and drink +hamburger,noun,A1,Food and drink,,Food and drink +hammer,noun,B1,Objects and rooms,,Shopping +hammer,verb,B2,,, +hand,noun,A1,,,Health and body care +hand,verb,A2,,, +handbag,noun,A2,Shopping,Clothes,Shopping +handball,noun,B1,Leisure activities,,"Free time, entertainment" +hand-held,adjective,B1,,, +handicap,noun,B2,,, +handicapped,adjective,A2,,, +handicraft,noun,B2,,, +handkerchief,noun,B1,Objects and rooms,,Shopping +handle,noun,A2,,, +handle,verb,B1,,, +handout,noun,B2,,, +handrail,noun,B2,Objects and rooms,, +handshake,noun,B1,,, +handsome,adjective,A1,,, +handwriting,noun,B1,Education,,Education +handy,adjective,B1,,, +hang,noun,B2,,, +hang,verb,B1,,, +hanging,adjective,B1,,, +happen,verb,A1,,, +happily,adverb,A2,,, +happiness,noun,A2,,, +happy,adjective,A1,,, +harbor/harbour,noun,B1,"Things in the town, shops and shopping",,"House and home, environment" +hard,adjective,A1,,, +hard,adverb,A1,,, +hard drive,noun,B2,,, +hardly,adverb,A2,,, +hardship,noun,B1,,, +hardware,noun,B2,,, +hard-working,adjective,B1,,, +harm,noun,B2,,, +harm,verb,A2,,, +harmful,adjective,A2,,, +harmless,adjective,B2,,, +harmony,noun,A2,,, +harness,noun,B1,,, +harrow,noun,B2,,, +harvest,noun,A2,,, +has,have-verb,A1,,, +haste,noun,B2,,, +hastily,adverb,B2,,, +hasty,adjective,B1,,, +hat,noun,A1,Clothes,,Shopping +hatch,noun,B1,,, +hatching,noun,B2,Arts,,"Free time, entertainment" +hate,noun,B1,,, +hate,verb,A2,,, +hatred,noun,B1,,, +haunt,noun,B1,"Things in the town, shops and shopping",,"House and home, environment" +haunt,verb,B2,,, +haunting,adjective,B2,,, +have,have-verb,A1,,, +have to,modal auxiliary,A1,,, +haven,noun,B1,"Things in the town, shops and shopping",,"House and home, environment" +hay,noun,B2,,, +hazard,noun,B1,,, +hazardous,adjective,B2,,, +he,pronoun,A1,,, +head,noun,A1,,,Health and body care +head,verb,A2,,, +headache,noun,A1,Travel and services vocab,,Health and body care +headline,noun,B1,Media,,"Free time, entertainment" +headphone,noun,A2,Objects and rooms,,"Free time, entertainment" +headquarters,noun,B2,"Things in the town, shops and shopping",,Services +headteacher,noun,A2,,,Personal identification +heal,verb,B1,,, +healing,adjective,B1,,, +health,noun,A1,Travel and services vocab,,Health and body care +health care,noun,B2,,, +healthy,adjective,A1,,, +heap,noun,B2,,, +heap,verb,B2,,, +hear,verb,A1,,, +hearing,noun,B1,,, +heart,noun,A1,,,Health and body care +heart attack,noun,B1,,, +heartbreaking,adjective,B2,,, +hearted,adjective,B1,,, +heartwarming/heart-warming,adjective,B2,,, +hearty,adjective,B1,,, +heat,noun,A2,,, +heat,verb,B1,,, +heater,noun,B1,Objects and rooms,,"House and home, environment" +heating,noun,A2,Objects and rooms,,"House and home, environment" +heaven,noun,B1,,, +heavenly,adjective,B1,,, +heavily,adverb,A2,,, +heavy,adjective,A1,,, +hedge,noun,B2,,, +heel,noun,B1,Clothes,,Shopping +height,noun,B1,,, +helicopter,noun,B2,Ways of travelling,,Travel +hell,noun,B2,,, +hello,noun,A1,,, +helmet,noun,B1,Clothes,,Shopping +help,noun,A2,,, +help,verb,A1,,, +helper,noun,B2,,,Personal identification +helpful,adjective,A2,,, +helpless,adjective,B1,,, +hemp,noun,B2,,, +her,determiner,A1,,, +her,pronoun,A1,,, +herb,noun,B2,"Things in the town, shops and shopping",, +herd,noun,B1,,, +here,adverb,A1,,, +heritage,noun,B2,,, +hero,noun,A2,,, +hers,pronoun,A1,,, +herself,pronoun,A2,,, +hesitate,verb,B1,,, +hesitation,noun,B2,,, +hey,interjection,A2,,, +hi,interjection,A1,,, +hidden,adjective,B1,,, +hide,verb,A1,,, +high,adjective,A1,,, +high,adverb,A2,,, +high school,noun,A2,,, +highlight,noun,B2,,, +highlight,verb,B1,,, +highly,adverb,B1,,, +high-tech/hi-tech,adjective,B2,,, +highway,noun,A2,"Things in the town, shops and shopping",,Travel +hijack,noun,B2,"News, lifestyles and current affairs",, +hijack,verb,B2,,, +hike,noun,A2,Travel and services vocab,Leisure activities,Travel +hiking,noun,A2,,, +hilarious,adjective,B2,,, +hill,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +him,pronoun,A1,,, +himself,pronoun,A2,,, +hint,noun,B2,,, +hip,noun,B1,,,Health and body care +hip hop/hip-hop/hiphop,noun,A2,Hobbies and pastimes,,"Free time, entertainment" +hire,verb,B1,,, +his,determiner,A1,,, +his,pronoun,A1,,, +historian,noun,B1,Education,,Education +historic,adjective,B1,,, +historical,adjective,B1,,, +history,noun,A1,Education,,Education +hit,noun,B1,,, +hit,verb,A2,,, +HIV,noun,B1,Travel and services vocab,,Health and body care +hobby,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +hockey,noun,A2,,,"Free time, entertainment" +hold,noun,A1,,, +hold,verb,A2,,, +holder,noun,B2,,, +hole,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +holiday,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +hollow,adjective,B2,,, +holocaust,noun,B2,Books and literature,, +holy,adjective,B1,,, +home,adverb,A2,,, +home,noun,A1,Family life,,Daily life +homeless,adjective,B1,,, +hometown,noun,A1,Nationalities and countries,,Personal identification +homeward,adjective,B2,,, +homework,noun,A1,Education,,Education +hone,noun,B2,,, +honest,adjective,B1,,, +honestly,adverb,B1,,, +honesty,noun,B1,,, +honey,noun,A2,,,Food and drink +honeymoon,noun,B1,Travel and services vocab,,Travel +honor/honour,noun,A2,,, +honor/honour,verb,B2,,, +honorable/honourable,adjective,B2,,, +hood,noun,B2,,, +hook,noun,B2,,, +hook,verb,B2,,, +hop,noun,B1,,, +hope,noun,A1,,, +hope,verb,B1,,, +hopeful,adjective,B1,,, +hopefully,adverb,B1,,, +hopeless,adjective,B1,,, +horizon,noun,B1,,, +horn,noun,B1,,, +horrible,adjective,B1,,, +horrify,verb,B1,,, +horror,noun,A2,,, +horse,noun,A1,,, +hospice,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +hospitable,adjective,B2,,, +hospital,noun,A1,"Things in the town, shops and shopping",,Health and body care +hospitality,noun,B2,,, +hospitalize/hospitalise,verb,B2,,, +host,noun,A2,,, +hostel,noun,B1,Travel and services vocab,,Travel +hot,adjective,A1,,, +hotel,noun,A1,Travel and services vocab,,Travel +hour,noun,A1,,, +hourly,adjective,B2,,, +house,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +household,noun,B1,Family life,,Daily life +housekeeper,noun,B2,Family life,,Personal identification +housemaster,noun,B2,Family life,,Personal identification +housewife,noun,B2,Family life,,Personal identification +housework,noun,B1,Family life,Work and Jobs,Daily life +hover,verb,B2,,, +how,adverb,A1,,, +however,adverb,A2,,, +hug,noun,B2,,, +hug,verb,A2,,, +huge,adjective,B1,,, +hugely,adverb,B2,,, +human,adjective,A2,,, +human,noun,B1,,, +human rights,noun,B2,,, +humane,adjective,B2,,, +humanist,noun,B2,,, +humanity,noun,B1,,, +humanize/humanise,verb,B2,,, +humble,adjective,B2,,, +humbug,noun,B2,,, +humid,adjective,B1,,, +humiliate,verb,B2,,, +humiliating,adjective,B2,,, +humiliation,noun,B2,,, +humor/humour,noun,B1,,, +humorous,adjective,B1,,, +hundred,number,A2,,, +hunger,noun,B1,"News, lifestyles and current affairs",, +hungry,adjective,A1,,, +hunt,noun,B1,Leisure activities,,"Free time, entertainment" +hunt,verb,B1,,, +hunter,noun,A2,Work and Jobs,,Personal identification +hunting,noun,B2,,, +hurriedly,adverb,B1,,, +hurry,noun,A1,,, +hurry,verb,A2,,, +hurt,adjective,B1,,, +hurt,verb,A1,,, +husband,noun,A1,Family life,,Personal identification +hush,verb,B2,,, +hut,noun,B1,"Things in the town, shops and shopping",,"House and home, environment" +hybrid,adjective,B2,,, +hygiene,noun,B2,Education,, +hyperbole,noun,B2,,, +hyphen,noun,B2,,, +I,pronoun,A1,,, +ice,noun,A1,Food and drink,,Food and drink +ice cream,noun,A1,Food and drink,,Food and drink +ice hockey,noun,B1,Leisure activities,,"Free time, entertainment" +ice skating,noun,B1,Leisure activities,,"Free time, entertainment" +iceman,noun,B2,Work and Jobs,,Personal identification +icon,noun,B2,,, +icy,adjective,B2,,, +ID,noun,A2,,, +ID card,noun,A2,,,Services +idea,noun,A1,,, +ideal,adjective,A1,,, +ideally,adverb,B2,,, +identical,adjective,B2,,, +identification,noun,B2,,, +identify,verb,B2,,, +identity,noun,B1,,, +identity card,noun,B1,Travel and services vocab,,Services +ideology,noun,B2,,, +idiom,noun,B1,Education,,Education +idiot,noun,B2,,,Personal identification +idle,adjective,B2,,, +idol,noun,B1,,, +idolize/idolise,verb,B2,,, +if,conjunction,A1,,, +ignorance,noun,B2,,, +ignorant,adjective,B2,,, +ignore,verb,B1,,, +ill,adjective,A2,,, +illegal,adjective,A2,,, +illegally,adverb,B1,,, +illness,noun,B1,Travel and services vocab,,Health and body care +illuminate,verb,B1,,, +illustrate,verb,B2,,, +illustration,noun,B2,,, +image,noun,A2,,, +imagery,noun,B2,,, +imaginary,adjective,B1,,, +imagination,noun,A2,,, +imagine,verb,A1,,, +imitate,verb,B1,,, +imitation,noun,B2,,, +immediate,adjective,B1,,, +immediately,adverb,B1,,, +immerse,verb,B2,,, +immigrant,noun,B2,,,Personal identification +immigrate,verb,B1,,, +immigration,noun,B1,"News, lifestyles and current affairs",, +immoral,adjective,B2,,, +immortal,adjective,B2,,, +immortality,noun,B2,,, +impact,noun,A2,,, +impair,verb,B1,,, +impartial,adjective,B2,,, +impatient,adjective,A2,,, +impatiently,adverb,B2,,, +imperative,noun,B2,,, +impermanent,adjective,B2,,, +implement,noun,B2,Objects and rooms,, +implement,verb,B2,,, +implication,noun,B2,,, +imply,verb,B2,,, +impolite,adjective,B2,,, +impolitely,adverb,B2,,, +import,verb,B2,,, +importance,noun,A2,,, +important,adjective,A1,,, +importantly,adverb,A2,,, +impose,verb,B2,,, +impossibility,noun,B2,,, +impossible,adjective,A2,,, +impractical,adjective,B2,,, +impress,verb,A2,,, +impressed,adjective,B2,,, +impression,noun,B1,,, +impressionism,noun,B2,Arts,,"Free time, entertainment" +impressionist,noun,B2,Arts,,"Free time, entertainment" +impressive,adjective,B1,,, +imprison,verb,B2,,, +imprisonment,noun,B2,,, +improbable,adjective,B2,,, +improper,adjective,B1,,, +improperly,adverb,B2,,, +improve,verb,A2,,, +improved,adjective,B2,,, +improvement,noun,B1,,, +impulse,noun,B2,,, +impulsive,adjective,B2,,, +in,adverb,A2,,, +in,preposition,A1,,, +inaccurate,adjective,B2,,, +inadequate,adjective,B2,,, +inanimate,adjective,B2,,, +inborn,adjective,B2,,, +incense,noun,B2,,, +incentive,noun,B2,,, +inch,noun,A2,,, +inch,verb,B2,,, +incident,noun,B1,,, +include,verb,A2,,, +including,preposition,B1,,, +income,noun,B1,Work and Jobs,,Daily life +inconvenient,adjective,B1,,, +incorrect,adjective,B1,,, +increase,noun,B1,,, +increase,verb,A2,,, +increasingly,adverb,B1,,, +incredible,adjective,B1,,, +incredibly,adverb,B1,,, +incur,verb,B2,,, +incurable,adjective,B2,,, +indebted,adjective,B2,,, +indeed,adverb,A2,,, +indefinite article,noun,B1,,, +indent,verb,B2,,, +independence,noun,A2,,, +independent,adjective,B1,,, +independently,adverb,B2,,, +indescribable,adjective,B2,,, +index,noun,B2,,, +indicate,verb,A2,,, +indifferent,adjective,B2,,, +indignity,noun,B2,,, +indirect,adjective,B1,,, +indirectly,adverb,B1,,, +indispensable,adjective,B2,,, +individual,adjective,B1,,, +individual,noun,B2,,, +indoor,adjective,A2,,, +indoors,adverb,B1,,, +indulge,verb,B2,,, +indulgent,adjective,B2,,, +industrial,adjective,B1,,, +industrialize/industrialise,verb,B2,,, +industry,noun,B1,Work and Jobs,, +ineffective,adjective,B2,,, +inert,adjective,B2,,, +inevitable,adjective,B1,,, +inexpensive,adjective,A2,,, +inexperienced,adjective,B2,,, +infant,noun,B2,,, +infect,verb,B2,,, +infected,adjective,B2,,, +infection,noun,B1,"News, lifestyles and current affairs",,Health and body care +infectious,adjective,B2,,, +infer,verb,B2,,, +inference,noun,B2,,, +infinitive,noun,B1,,, +inflammation,noun,B2,,, +inflammatory,adjective,B2,,, +inflate,verb,B2,,, +inflation,noun,B2,Work and Jobs,, +influence,noun,A2,,, +influence,verb,B2,,, +influential,adjective,B2,,, +influenza,noun,B2,Travel and services vocab,,Health and body care +inform,verb,B1,,, +informal,adjective,B2,,, +information,noun,A1,Media,,Services +informative,adjective,B1,,, +infringe,verb,B2,,, +infringement,noun,B2,,, +ingredient,noun,B1,Food and drink,,Food and drink +inhabit,verb,B2,,, +inhabitant,noun,B1,"Things in the town, shops and shopping",,Personal identification +inhale,verb,B1,,, +inherit,verb,B2,,, +initial,adjective,B2,,, +initial,noun,B1,Education,, +initially,adverb,B1,,, +initiative,noun,B2,,, +inject,verb,B1,,, +injection,noun,B2,Travel and services vocab,,Health and body care +injure,verb,A2,,, +injured,adjective,B2,,, +injury,noun,B1,Travel and services vocab,,Health and body care +ink,noun,B1,Objects and rooms,,Shopping +innate,adjective,B2,,, +inner,adjective,A2,,, +innermost,adjective,B1,,, +innocent,adjective,B1,,, +innocently,adverb,B2,,, +innovation,noun,B2,,, +innovative,adjective,B2,,, +innovator,noun,B1,,, +input,noun,B2,,, +inquire/enquire,verb,B2,,, +inquiry/enquiry,noun,B1,Travel and services vocab,, +insane,adjective,B1,,, +inscribe,verb,B1,,, +inscription,noun,B1,,, +insect,noun,A2,,, +inseparable,adjective,B2,,, +inside,adjective,B2,,, +inside,adverb,A2,,, +inside,noun,B2,,, +inside,preposition,A1,,, +insight,noun,B1,,, +insist,verb,B1,,, +inspect,verb,B2,,, +inspection,noun,B1,,, +inspector,noun,B2,Work and Jobs,,Personal identification +inspiration,noun,A2,,, +inspirational,adjective,B2,,, +inspire,verb,B1,,, +install/instal,verb,B1,,, +instance,noun,B1,Collocation,,Language +instant,adjective,A2,,, +instantly,adverb,B2,,, +instead,adverb,A2,,, +instead of,preposition,B1,,, +instill/instil,verb,B2,,, +instinct,noun,B2,,, +institute,noun,B1,Education,,Education +institution,noun,B2,,, +instruct,verb,B2,,, +instruction,noun,B1,Education,,Personal identification +instructor,noun,B1,Work and Jobs,Education, +instrument,noun,A2,Objects and rooms,,"Free time, entertainment" +insufficient,adjective,B2,,, +insult,noun,B2,,, +insult,verb,B2,,, +insurance,noun,B1,Travel and services vocab,,Services +integrate,verb,B2,,, +intellectual,adjective,B2,,, +intellectual,noun,B2,,, +intelligence,noun,A2,Education,,Personal identification +intelligent,adjective,A2,,, +intend,verb,B1,,, +intense,adjective,B1,,, +intensive,adjective,B1,,, +intent,adjective,B2,,, +intention,noun,B1,,, +intentionally,adverb,B1,,, +interact,verb,B1,,, +interaction,noun,B1,,, +interactive,adjective,B2,,, +interest,noun,A2,Personal information,,Personal identification +interest,verb,B1,,, +interested,adjective,A1,,, +interesting,adjective,A1,,, +interfere,verb,B2,,, +interior,noun,B2,,, +intermediate,adjective,B1,,, +intermission,noun,B1,,, +internal,adjective,B1,,, +international,adjective,A2,,, +internationally,adverb,B1,,, +Internet/internet,noun,A1,Media,"News, lifestyles and current affairs","Free time, entertainment" +interpersonal,adjective,B2,,, +interpret,verb,B2,,, +interpretation,noun,B2,,, +interpreter,noun,B2,Work and Jobs,,Personal identification +interrupt,verb,B1,,, +interruption,noun,B2,,, +intersection,noun,B2,,, +interval,noun,B1,,, +interview,noun,A1,,,Relations with other people +interview,verb,B1,,, +interviewee,noun,B1,,, +interviewer,noun,A1,,,Personal identification +intimate,adjective,B2,,, +into,preposition,A1,,, +intransitive,adjective,B2,,, +intravenous,adjective,B2,,, +introduce,verb,A1,,, +introduction,noun,B1,,,Relations with other people +intrude,verb,B2,,, +intruder,noun,B2,,, +intrusion,noun,B2,,, +invade,verb,A2,,, +invariable,adjective,B2,,, +invariably,adverb,B2,,, +invasion,noun,B1,"News, lifestyles and current affairs",, +invent,verb,A2,,, +invention,noun,A2,Education,, +inventor,noun,B2,,,Personal identification +inverted commas,noun,B2,,, +invest,verb,B1,,, +investigate,verb,B2,,, +investigation,noun,B1,,, +investigator,noun,B2,,,Personal identification +investment,noun,B2,Work and Jobs,, +investor,noun,B2,,,Personal identification +invisible,adjective,B2,,, +invitation,noun,B1,,,Relations with other people +invite,verb,A2,,, +invitingly,adverb,B2,,, +invoke,verb,B2,,, +involuntarily,adverb,B1,,, +involve,verb,B1,,, +involved,adjective,B1,,, +involvement,noun,B2,,, +iron,noun,B1,Objects and rooms,,Shopping +iron,verb,B1,,, +ironically,adverb,B2,,, +ironing,noun,B1,Work and Jobs,,Daily life +irrational,adjective,B2,,, +irregular,adjective,B1,,, +irresistible,adjective,B2,,, +irresistibly,adverb,B2,,, +irresponsible,adjective,B2,,, +irritate,verb,B1,,, +irritated,adjective,B2,,, +irritating,adjective,B2,,, +irritation,noun,B2,,, +is,be-verb,A1,,, +island,noun,A1,Nationalities and countries,,"Free time, entertainment" +islander,noun,B2,Nationalities and countries,, +isle,noun,B1,Nationalities and countries,,"House and home, environment" +isolation,noun,B1,,, +issue,noun,A2,Education,, +issue,verb,B2,,, +IT,noun,A2,,, +it,pronoun,A1,,, +italicize/italicise,verb,B2,Education,, +itch,verb,B2,,, +item,noun,A1,Objects and rooms,, +its,determiner,A1,,, +its,pronoun,A1,,, +itself,pronoun,A2,,, +ivory,noun,B1,,, +jacket,noun,A1,Clothes,,Shopping +jade,noun,B1,Shopping,,Shopping +jail/gaol,noun,B1,"Things in the town, shops and shopping",,"House and home, environment" +jam,noun,A2,,,Food and drink +jam,verb,B2,,, +January,noun,A1,,, +jar,noun,B1,Objects and rooms,,Shopping +jaw,noun,B2,,, +jazz,noun,B1,Arts,,"Free time, entertainment" +jealous,adjective,B1,,, +jealously,adverb,B2,,, +jeans,noun,A1,Clothes,,Shopping +jelly,noun,A2,,, +jeopardize/jeopardise,verb,B2,,, +jet,noun,A1,Ways of travelling,,Travel +jewel,noun,B1,Shopping,,Shopping +jeweler/jeweller,noun,B2,Work and Jobs,,Personal identification +jewelry/jewellery,noun,A1,Shopping,,Shopping +job,noun,A1,Work and Jobs,,Personal identification +jog,noun,B2,Leisure activities,,"Free time, entertainment" +jog,verb,B1,,, +jogging,noun,B1,Leisure activities,,"Free time, entertainment" +join,verb,A1,,, +joint,adjective,B1,,, +joint,noun,B2,,, +joke,noun,A2,,, +joke,verb,B1,,, +journal,noun,B1,Objects and rooms,,"Free time, entertainment" +journalism,noun,B2,,, +journalist,noun,B1,Work and Jobs,,Personal identification +journey,noun,A2,Travel and services vocab,,Travel +joy,noun,A2,,, +judge,noun,B1,Work and Jobs,"News, lifestyles and current affairs",Personal identification +judge,verb,A1,,, +judgment/judgement,noun,B1,"News, lifestyles and current affairs",, +judo,noun,B2,Leisure activities,,"Free time, entertainment" +jug,noun,B1,Objects and rooms,,Shopping +juice,noun,A1,Food and drink,,Food and drink +juicy,adjective,B1,,, +July,noun,A1,,, +jump,noun,B2,Leisure activities,,"Free time, entertainment" +jump,verb,A1,,, +jumper,noun,B1,,,Personal identification +June,noun,A1,,, +jungle,noun,B1,,, +junior,adjective,A2,,, +junk,noun,A2,Objects and rooms,, +junk food,noun,B2,,,Food and drink +juror,noun,B2,,, +jury,noun,B2,,,Personal identification +just,adverb,A1,,, +justice,noun,B1,,, +justify,verb,B2,,, +kangaroo,noun,B2,,, +karaoke,noun,B2,Hobbies and pastimes,,"Free time, entertainment" +keen,adjective,B2,,, +keep,verb,A1,,, +keeper,noun,B2,Work and Jobs,,Personal identification +kerosene,noun,B2,,, +kettle,noun,B1,Objects and rooms,,Shopping +key,adjective,A1,,, +key,noun,A1,Objects and rooms,,"House and home, environment" +keyboard,noun,B1,Objects and rooms,, +keystroke,noun,B2,,, +kick,noun,A1,,, +kick,verb,A1,,, +kid,noun,A1,Family life,,Personal identification +kid,verb,B1,,, +kill,verb,A1,,, +killer,noun,A2,"News, lifestyles and current affairs",,Relations with other people +killing,noun,B1,"News, lifestyles and current affairs",,Relations with other people +kilo,noun,A2,,, +kilogram/kilogramme,noun,A2,,, +kilometer/kilometre,noun,A2,,, +kind,adjective,A2,,, +kind,noun,A1,,, +kindly,adjective,A2,,, +kindly,adverb,B1,,, +kindness,noun,B1,,, +king,noun,A1,Nationalities and countries,,Relations with other people +kingdom,noun,A2,Nationalities and countries,,Places +kiss,noun,A1,,, +kiss,verb,B1,,, +kit,noun,A2,,, +kitchen,noun,A1,Objects and rooms,,"House and home, environment" +kite,noun,A1,Leisure activities,,"Free time, entertainment" +kitten,noun,B1,,, +knee,noun,A1,,,Health and body care +kneel,verb,B2,,, +knife,noun,A1,Objects and rooms,,Shopping +knit,verb,B1,,, +knock,noun,A2,,, +knock,verb,B1,,, +knot,noun,B2,,, +know,verb,A1,,, +knowingly,adverb,B2,,, +knowledge,noun,A2,Education,,Education +known,adjective,B2,,, +lab,noun,B1,Objects and rooms,,"House and home, environment" +label,noun,B2,Objects and rooms,, +labor/labour,noun,A2,Work and Jobs,,Personal identification +laboratory,noun,B1,Objects and rooms,,"House and home, environment" +laborer/labourer,noun,B2,Work and Jobs,,Personal identification +lack,noun,A2,,, +lack,verb,B2,,, +ladder,noun,B1,,, +lady,noun,A1,Personal information,,Personal identification +lake,noun,A2,,,"House and home, environment" +lamb,noun,B1,,, +lame,adjective,B2,,, +lamp,noun,A2,,,"House and home, environment" +lance,noun,B2,,, +land,noun,B1,Nationalities and countries,,"House and home, environment" +land,verb,A2,,, +landing,noun,B2,,, +landlady,noun,B2,,,Personal identification +landlord,noun,B1,Work and Jobs,, +landscape,noun,A2,,, +landslide,noun,B2,,, +lane,noun,A2,"Things in the town, shops and shopping",,Travel +language,noun,A1,Nationalities and countries,,Language +lap,noun,B2,,,Health and body care +laptop,noun,B2,Objects and rooms,,Shopping +large,adjective,A1,,, +largely,adverb,B1,,, +lark,noun,B2,,, +laser,noun,B2,,, +last,adverb,B1,,, +last,determiner,A2,,, +last,pronoun,A2,,, +last,verb,B1,,, +last minute,noun,B2,,, +last name,noun,A1,,, +lasting,adjective,B1,,, +lastly,adverb,B2,,, +last-minute,adjective,B2,,, +late,adjective,A1,,, +late,adverb,A1,,, +latecomer,noun,B1,,, +lately,adverb,B1,,, +later,adjective,B2,,, +later,adverb,A1,,, +latest,adjective,A2,,, +latter,adjective,B2,,, +latter,adverb,A2,,, +latter,pronoun,A2,,, +laugh,noun,B1,,, +laugh,verb,A1,,, +laughter,noun,B1,,, +launch,verb,B1,,, +laundry,noun,B2,,, +lava,noun,B2,Education,, +law,noun,A2,"News, lifestyles and current affairs",,Relations with other people +lawful,adjective,B1,,, +lawmaker,noun,B2,Work and Jobs,,Personal identification +lawn,noun,B2,,, +lawsuit,noun,B2,,, +lawyer,noun,A2,Work and Jobs,,Personal identification +lay,verb,B1,,, +layabout,noun,B2,,, +layer,noun,B1,,, +laziness,noun,A2,,, +lazy,adjective,A1,,, +lead,adjective,B1,,, +lead,noun,A2,,, +lead,verb,B1,,, +leader,noun,A1,Work and Jobs,,Relations with other people +leadership,noun,B1,,, +leading,adjective,B1,,, +leaf,noun,A1,"Things in the town, shops and shopping",, +leaflet,noun,B2,,, +league,noun,B1,"News, lifestyles and current affairs",,"Free time, entertainment" +leak,noun,B2,,, +leak,verb,B2,,, +lean,adjective,B1,,, +lean,verb,B2,,, +leap,noun,B2,,, +leap,verb,B1,,, +learn,verb,A1,,, +learner,noun,A2,Education,,Education +learning,noun,B2,,,Education +lease,noun,B2,Travel and services vocab,,Services +leash,noun,B2,,, +least,adverb,B1,,, +least,determiner,A2,,, +least,pronoun,B2,,, +leather,noun,A2,,, +leave,noun,B1,,, +leave,verb,A1,,, +lecture,noun,B1,Education,,Education +lecturer,noun,B2,Education,Work and Jobs,Personal identification +leek,noun,B2,,,Food and drink +left,adjective,A1,,, +left,adverb,A2,,, +left,noun,A2,,, +left-hand,adjective,A2,,, +leg,noun,A1,,,Health and body care +legal,adjective,B1,,, +legally,adverb,B1,,, +legend,noun,B2,Books and literature,, +legendary,adjective,B2,,, +legislate,verb,B2,,, +legislation,noun,B2,"News, lifestyles and current affairs",, +legislative,adjective,B2,,, +legislator,noun,B2,Work and Jobs,"News, lifestyles and current affairs",Personal identification +legislature,noun,B2,,, +legitimate,adjective,B2,,, +leisure,noun,A2,Leisure activities,,"Free time, entertainment" +leisurely,adverb,B2,,, +lemon,noun,A2,,,Food and drink +lemonade,noun,A2,,,Food and drink +lend,verb,A2,,, +length,noun,B1,,, +lengthen,verb,B2,,, +lengthy,adjective,B2,,, +leopard,noun,B2,,, +less,adverb,A2,,, +less,determiner,A2,,, +less,pronoun,A2,,, +lessen,verb,B1,,, +lesson,noun,A1,Education,,Education +lest,conjunction,B2,,, +let,verb,A1,,, +letter,noun,A1,Objects and rooms,,Services +lettuce,noun,B1,Food and drink,,Food and drink +level,adjective,B1,,, +level,noun,A2,,, +level,verb,B2,,, +liar,noun,B1,,,Personal identification +liberal,adjective,B2,,, +liberate,verb,B1,,, +liberation,noun,B1,"News, lifestyles and current affairs",, +liberty,noun,A2,,, +librarian,noun,B1,Work and Jobs,,Personal identification +library,noun,A1,"Things in the town, shops and shopping",,"Free time, entertainment" +license/licence,verb,A2,,, +lick,verb,B2,,, +lid,noun,B2,Objects and rooms,,Shopping +lie,noun,B1,,, +lie,verb,A2,,, +life,noun,A1,,, +lifeguard,noun,B1,Work and Jobs,,Personal identification +lifeless,adjective,B2,,, +lifelong,adjective,B1,,, +lifestyle,noun,A2,Personal information,, +lifetime,noun,B2,,, +lift,noun,B1,"Things in the town, shops and shopping",,Travel +lift,verb,B1,,, +light,adjective,A1,,, +light,noun,A1,,,"House and home, environment" +light,verb,B1,,, +lighten,verb,B2,,, +lighter,noun,B1,Objects and rooms,,Shopping +lighting,noun,B2,,, +lightly,adverb,B1,,, +lightning,noun,B1,,, +like,conjunction,B1,,, +like,preposition,A1,,, +like,verb,A1,,, +likely,adjective,A2,,, +likeness,noun,B1,,, +likewise,adverb,B2,,, +lily,noun,A1,,, +limb,noun,B2,,, +limit,noun,B1,,, +limit,verb,B1,,, +limitation,noun,B1,,, +limited,adjective,B1,,, +limp,verb,B1,,, +line,noun,A1,,, +line,verb,B2,,, +linen,noun,B2,Clothes,,Shopping +liner,noun,B2,Ways of travelling,,Travel +ling,noun,B2,,, +linger,verb,B2,,, +link,noun,B1,,, +link,verb,B1,,, +lion,noun,A1,,, +lip,noun,A2,,,Health and body care +liquid,adjective,B1,,, +liquid,noun,B1,,, +list,noun,A1,Objects and rooms,, +list,verb,B2,,, +listen,verb,A1,,, +listener,noun,B2,Media,,Personal identification +liter/litre,noun,A2,,, +literal,adjective,B2,,, +literally,adverb,B2,,, +literary,adjective,B1,,, +literature,noun,B1,Books and literature,,"Free time, entertainment" +litter,noun,B2,,, +little,adjective,A1,,, +little,adverb,A1,,, +little,determiner,B1,,, +little,pronoun,B1,,, +live,adjective,B1,,, +live,verb,A1,,, +lively,adjective,A2,,, +liver,noun,B1,,, +living,adjective,A1,,, +living,noun,B2,,, +living room,noun,A1,Objects and rooms,,"House and home, environment" +load,noun,A2,,, +load,verb,B2,,, +loaf,noun,B1,,, +loan,noun,B2,Travel and services vocab,,Services +lobby,noun,B2,,,"House and home, environment" +local,adjective,A2,,, +locate,verb,B1,,, +location,noun,B1,,, +lock,noun,A2,Objects and rooms,,"House and home, environment" +lock,verb,B1,,, +lodge,noun,B1,"Things in the town, shops and shopping",,"House and home, environment" +log,noun,B1,,, +logic,noun,B1,Education,,Education +logical,adjective,A2,,, +logo,noun,B1,,, +loneliness,noun,B2,,, +lonely,adjective,A1,,, +long,adjective,A1,,, +long,adverb,A2,,, +long-distance,adjective,B2,,, +long-term,adjective,B2,,, +look,noun,A1,,, +look,verb,A1,,, +loose,adjective,A2,,, +loosely,adverb,B2,,, +lorry,noun,B1,,, +lose,verb,A2,,, +loss,noun,B1,,, +lost,adjective,A2,,, +lot,adverb,A1,,, +lot,noun,A2,,, +lot,pronoun,A1,,, +lottery,noun,B1,,, +loud,adjective,B1,,, +loud,adverb,B1,,, +loudly,adverb,A2,,, +loudspeaker,noun,B1,Objects and rooms,,Personal identification +lousy,adjective,B2,,, +love,noun,A1,,, +love,verb,A1,,, +lovely,adjective,A1,,, +lover,noun,A2,Family life,,Personal identification +lovingly,adverb,B1,,, +low,adjective,A2,,, +low,adverb,A2,,, +lower,verb,B2,,, +lowland,noun,B2,,, +loyal,adjective,B1,,, +loyalty,noun,B1,,, +luck,noun,A1,,, +luckily,adverb,A2,,, +lucky,adjective,A1,,, +lucrative,adjective,B2,,, +luggage,noun,B1,Travel and services vocab,,Travel +lunch,noun,A1,Food and drink,,Food and drink +lunchtime,noun,A2,,,Food and drink +lung,noun,B1,,,Health and body care +lush,adjective,B2,,, +luxurious,adjective,B2,,, +luxury,adjective,B2,,, +luxury,noun,B1,,, +lyric,adjective,A2,,, +lyrics,noun,B2,,, +'m,be-verb,A1,,, +machine,noun,A1,Work and Jobs,,Daily life +mad,adjective,A2,,, +madam,noun,B2,,,Personal identification +madame,noun,B2,,, +madness,noun,B2,,, +maestro,noun,B2,Arts,,Personal identification +magazine,noun,A1,Objects and rooms,,"Free time, entertainment" +magic,adjective,A2,,, +magic,noun,A2,,, +magical,adjective,B1,,, +magician,noun,B1,Work and Jobs,,Personal identification +magnificent,adjective,B1,,, +magnify,verb,B2,,, +mail,noun,A1,Objects and rooms,,Services +mail,verb,B1,,, +mailbox,noun,B1,Objects and rooms,,Services +main,adjective,B1,,, +main course,noun,A2,,, +mainly,adverb,A2,,, +maintain,verb,B1,,, +maintenance,noun,B1,,, +major,adjective,A2,,, +major,noun,B2,,, +majority,noun,B1,,, +make,noun,B2,,, +make,verb,A1,,, +maker,noun,A2,Work and Jobs,,Personal identification +make-up,noun,A2,,, +malady,noun,B2,,, +malaria,noun,B2,Travel and services vocab,,Health and body care +male,adjective,B1,,, +male,noun,A2,Personal information,,Personal identification +mall,noun,A2,"Things in the town, shops and shopping",,Shopping +mama/mamma,noun,B2,Family life,,Personal identification +man,noun,A1,Personal information,,Personal identification +manage,verb,A2,,, +management,noun,B1,Work and Jobs,,Services +manager,noun,A2,Work and Jobs,,Personal identification +mango,noun,B2,Food and drink,,Food and drink +manipulate,verb,B2,,, +mankind,noun,B1,,,Personal identification +manner,noun,A2,,, +mansion,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +manual,adjective,B2,,, +manual,noun,B2,Objects and rooms,, +manufacture,noun,B2,Work and Jobs,, +manufacture,verb,B2,,, +manufacturer,noun,B2,Work and Jobs,,Personal identification +manufacturing,noun,B2,,, +many,determiner,A1,,, +many,pronoun,A1,,, +map,noun,A1,Objects and rooms,,Travel +maple,noun,B1,,, +marathon,noun,B2,,, +marble,noun,B1,,, +March,noun,A1,,, +march,noun,B1,,, +march,verb,B1,,, +margin,noun,B2,,, +marine,adjective,B1,,, +mark,noun,A2,,, +mark,verb,A2,,, +marked,adjective,B1,,, +market,noun,A2,,,Shopping +market,verb,B1,,, +marketing,noun,B2,,, +marriage,noun,B1,Family life,,Relations with other people +married,adjective,A2,,, +marry,verb,A2,,, +martial art,noun,B2,,, +marvelous/marvellous,adjective,A2,,, +mash,verb,B1,,, +mask,noun,B2,,,Shopping +mass,adjective,B1,,, +mass,noun,B2,,, +massacre,noun,B2,"News, lifestyles and current affairs",,Relations with other people +massage,noun,B2,,, +masseur,noun,B2,Work and Jobs,,Personal identification +massive,adjective,B1,,, +master,noun,B2,,,Personal identification +masterpiece,noun,B2,Arts,, +mastery,noun,B2,,, +match,noun,A1,Hobbies and pastimes,,Shopping +match,verb,B1,,, +mate,noun,B2,Personal information,,Relations with other people +material,noun,A2,,, +math/maths,noun,A1,Education,,Education +mathematical,adjective,B2,,, +mathematician,noun,B1,Education,Work and Jobs,Personal identification +mathematics,noun,B1,Education,,Education +matter,noun,A1,,, +matter,verb,A2,,, +mature,adjective,B2,,, +mausoleum,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +max,noun,A2,,, +maximum,adjective,B1,,, +maximum,noun,B1,,, +may,modal auxiliary,A1,,, +May,noun,A1,,, +maybe,adverb,A1,,, +mayor,noun,B1,Work and Jobs,,Personal identification +me,pronoun,A1,,, +meal,noun,A1,Food and drink,,Food and drink +mean,adjective,A2,,, +mean,noun,B2,,, +mean,verb,A1,,, +meaning,noun,A2,,, +meaningful,adjective,B1,,, +means,noun,B2,,, +meanwhile,adverb,B1,,, +measure,noun,B1,,, +measure,verb,B1,,, +measurement,noun,B1,,, +meat,noun,A1,Food and drink,,Food and drink +mechanic,noun,B1,Work and Jobs,,Personal identification +mechanical,adjective,B1,,, +mechanize/mechanise,verb,B2,,, +medal,noun,A2,,, +media,noun,B2,,, +medical,adjective,A2,,, +medication,noun,B2,,, +medicine,noun,A1,Travel and services vocab,,Health and body care +medieval/mediaeval,adjective,B2,,, +mediocre,adjective,B2,,, +meditate,verb,B1,,, +meditation,noun,B1,,, +Mediterranean,noun,B1,,, +medium,adjective,B1,,, +medium,noun,B1,Media,,"Free time, entertainment" +meet,verb,A1,,, +meeting,noun,A1,,,Relations with other people +melody,noun,B2,Arts,,"Free time, entertainment" +melon,noun,A2,,,Food and drink +melt,verb,B1,,, +member,noun,A2,,,Relations with other people +membership,noun,B1,,,Relations with other people +memorable,adjective,B1,,, +memorial,noun,B2,,, +memorize/memorise,verb,B1,,, +memory,noun,A1,,, +mend,verb,B1,,, +mental,adjective,B1,,, +mentally,adverb,B1,,, +mention,noun,A2,,, +mention,verb,B1,,, +mentor,noun,B2,,, +menu,noun,A2,Food and drink,,Food and drink +merchandise,noun,B2,Shopping,,Shopping +merchant,noun,B1,Work and Jobs,,Education +mercy,noun,B2,,, +mere,adjective,B1,,, +merely,adverb,B1,,, +merge,verb,B2,,, +merger,noun,B2,,, +merry,adjective,A1,,, +mess,noun,B1,,, +mess,verb,B2,,, +message,noun,A1,Media,,Services +message board,noun,B1,,, +messenger,noun,B2,Work and Jobs,,Personal identification +messy,adjective,B1,,, +metal,noun,A2,,, +metaphor,noun,B2,Education,, +meter/metre,noun,A2,,, +method,noun,A2,,, +metric,adjective,B2,,, +micro,noun,B2,Clothes,, +microbe,noun,B2,,, +microcomputer,noun,B2,Objects and rooms,,Shopping +micrometer/micrometre,noun,B2,,, +microorganism,noun,B2,,, +microphone,noun,B2,,, +microscope,noun,B2,Education,, +microscopic,adjective,B2,,, +microscopy,noun,B2,,, +microwave,noun,B2,,, +midday,noun,A2,,, +middle,adjective,A1,,, +middle,noun,A2,,, +middle-aged,adjective,B1,,, +midnight,noun,A2,,, +midst,noun,B2,,, +might,modal auxiliary,A2,,, +mighty,adjective,B2,,, +migration,noun,B2,,, +mild,adjective,B1,,, +mile,noun,B1,,, +military,adjective,A2,,, +milk,noun,A1,Food and drink,,Food and drink +mill,noun,B2,,, +millimeter/millimetre,noun,B2,,, +million,number,A2,,, +millionaire,noun,B2,"News, lifestyles and current affairs",, +mimic,noun,B2,,, +mind,noun,A1,,, +mind,verb,A2,,, +mine,noun,B2,"News, lifestyles and current affairs",, +mine,pronoun,A1,,, +mineral,noun,B1,,, +mineral water,noun,A2,,,Food and drink +miniature,adjective,B2,,, +minimize/minimise,verb,B1,,, +minimum,adjective,B1,,, +minimum,noun,B1,,, +minister,noun,B2,"News, lifestyles and current affairs",Work and Jobs, +minor,adjective,B1,,, +minority,noun,B1,,, +mint,noun,B2,,,Food and drink +minus,preposition,B1,,, +minute,noun,A1,,, +miracle,noun,B1,,, +mirror,noun,A2,,,Shopping +mischief,noun,B1,,, +misconception,noun,B2,,, +miserable,adjective,B1,,, +misery,noun,B1,,, +misfortune,noun,B2,,, +mislead,verb,B1,,, +misleading,adjective,B2,,, +Miss,noun,A1,,,Personal identification +miss,verb,A1,,, +missile,noun,B2,"News, lifestyles and current affairs",, +missing,adjective,A2,,, +mission,noun,B1,,, +mist,noun,B2,,,Weather +mistake,noun,A2,,, +mistreat,verb,B2,,, +mistrustful,adjective,B2,,, +misty,adjective,B1,,, +misunderstand,verb,B2,,, +misunderstanding,noun,B1,,,Relations with other people +mix,noun,B2,,, +mix,verb,A2,,, +mixing bowl,noun,B1,,, +mixture,noun,B2,,, +mobile,adjective,A2,,, +mobile,noun,A1,Objects and rooms,,"House and home, environment" +mobile phone,noun,A1,Objects and rooms,,"House and home, environment" +mobility,noun,B2,,, +mock,adjective,B2,,, +modal verb/modal,noun,B1,,, +model,adjective,B1,,, +model,noun,A2,,, +model,verb,B1,,, +modem,noun,B1,Media,Technical and legal language, +moderate,adjective,B1,,, +modern,adjective,A2,,, +modernization/modernisation,noun,B2,,, +modernize/modernise,verb,B2,,, +modest,adjective,B2,,, +modification,noun,B2,,, +modify,verb,B1,,, +mogul,noun,B2,,, +moisture,noun,B1,,, +mold/mould,noun,B2,,, +molecule,noun,B1,Education,, +mom,noun,A1,Family life,,Personal identification +moment,noun,A1,,, +momentarily,adverb,B2,,, +momentary,adjective,B2,,, +mommy/mommie,noun,A1,,, +monastery,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +Monday,noun,A1,,, +money,noun,A1,Shopping,,Shopping +monitor,noun,B1,,, +monitor,verb,B1,,, +monk,noun,B1,Work and Jobs,,Personal identification +monkey,noun,A1,,, +monster,noun,B1,,, +month,noun,A1,,, +monthly,adjective,B1,,, +monthly,adverb,B1,,, +monument,noun,B1,"Things in the town, shops and shopping",, +mood,noun,A2,,, +moody,adjective,B2,,, +moon,noun,A1,,, +moonlight,noun,B2,,, +moonscape,noun,B2,,, +moral,adjective,B2,,, +moral,noun,B1,Education,, +morality,noun,B2,,, +morally,adverb,B2,,, +more,adverb,B1,,, +more,determiner,A1,,, +more,pronoun,A1,,, +moreover,adverb,B1,,, +morning,noun,A1,,, +mortal,adjective,B2,,, +mortar,noun,B2,,, +mortgage,noun,B2,,, +mortify,verb,B2,,, +mosque,noun,A2,,,"House and home, environment" +mosquito,noun,B1,,, +moss,noun,B1,,, +most,adverb,A2,,, +most,determiner,A1,,, +most,pronoun,A2,,, +mostly,adverb,A2,,, +mother,noun,A1,Family life,,Personal identification +mother-in-law,noun,B2,,,Personal identification +motherland,noun,B1,Nationalities and countries,,Personal identification +motion,noun,B2,,, +motionless,adjective,B1,,, +motivate,verb,B1,,, +motivated,adjective,B2,,, +motivation,noun,B1,,, +motive,noun,B1,,, +motor,noun,B1,Ways of travelling,,Travel +motorbike,noun,B2,Ways of travelling,,Travel +motorcycle,noun,B1,Ways of travelling,,Travel +motorist,noun,B2,,,Personal identification +motorway,noun,A2,,,Travel +motto,noun,B1,,, +mount,noun,B1,,, +mount,verb,B2,,, +mountain,noun,A1,Nationalities and countries,,"House and home, environment" +mountaintop,noun,B1,,, +mourn,verb,B1,,, +mournful,adjective,B2,,, +mouse,noun,A1,,, +mouth,noun,A1,,,Health and body care +move,noun,A1,,, +move,verb,A2,,, +movement,noun,B1,,, +mover,noun,B2,,, +movie,noun,A1,Film,Hobbies and pastimes,"Free time, entertainment" +moving,adjective,B2,,, +MP3 player,noun,A2,,,"Free time, entertainment" +Mr./Mr,noun,A1,,,Personal identification +Mrs./Mrs,noun,A1,,,Personal identification +Ms./Ms,noun,A2,,,Personal identification +much,adverb,A1,,, +much,determiner,A1,,, +much,pronoun,A1,,, +mud,noun,B1,,, +muddy,adjective,B2,,, +mug,noun,A2,,,Shopping +mule,noun,B1,,, +multiple,adjective,B2,,, +multiply,verb,B2,,, +mum,noun,A1,Family life,,Personal identification +mumble,noun,B2,,, +mumble,verb,B2,,, +murder,noun,A2,"News, lifestyles and current affairs",,Relations with other people +murder,verb,B1,,, +murderer,noun,B1,"News, lifestyles and current affairs",,Relations with other people +murmur,noun,B2,,, +muscle,noun,B1,,,Health and body care +muse,verb,B2,,, +museum,noun,A2,"Things in the town, shops and shopping",,Places +mushroom,noun,A2,,,Food and drink +music,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +musical,adjective,A2,,, +musical,noun,B2,,, +musician,noun,A1,Work and Jobs,,Personal identification +must,modal auxiliary,A1,,, +mustache/moustache,noun,B2,,, +mustard,noun,B1,,, +mutability,noun,B2,,, +mutable,adjective,B2,,, +mutter,noun,B2,,, +mutter,verb,B2,,, +mutton,noun,B2,Food and drink,,Food and drink +mutual,adjective,B1,,, +my,determiner,A1,,, +myself,pronoun,A2,,, +mysterious,adjective,A2,,, +mystery,noun,A2,,, +mystify,verb,B2,,, +myth,noun,B1,Books and literature,,"Free time, entertainment" +nail,noun,B1,,,Health and body care +naked,adjective,B1,,, +name,noun,A1,Personal information,,Personal identification +name,verb,B1,,, +nano,noun,B2,,, +nap,noun,B1,,, +napkin,noun,A2,,, +narcissistic,adjective,B2,,, +narrate,verb,B1,,, +narrative,adjective,B1,,, +narrator,noun,B2,Work and Jobs,Media,Personal identification +narrow,adjective,B1,,, +narrowly,adverb,B2,,, +nasty,adjective,B1,,, +nation,noun,A2,Nationalities and countries,,Places +national,adjective,A2,,, +nationalist,noun,B1,,, +nationality,noun,A1,Nationalities and countries,,Personal identification +nationwide,adjective,B2,,, +nationwide,adverb,B2,,, +native,adjective,A2,,, +native speaker,noun,B2,,,Personal identification +natural,adjective,A2,,, +naturally,adverb,B1,,, +nature,noun,A2,Nationalities and countries,,"House and home, environment" +naughty,adjective,B2,,, +naval,adjective,B2,,, +navigate,verb,B2,,, +navigation,noun,B2,,, +navy,noun,B2,"News, lifestyles and current affairs",,Personal identification +navy blue,adjective,B1,,, +near,adjective,B1,,, +near,adverb,B1,,, +near,preposition,A1,,, +nearby,adjective,B1,,, +nearby,adverb,B1,,, +nearly,adverb,A2,,, +neat,adjective,B2,,, +necessarily,adverb,B2,,, +necessary,adjective,A2,,, +necessity,noun,B2,,, +neck,noun,A1,,,Health and body care +necklace,noun,B1,Clothes,,Shopping +nectar,noun,B1,,, +need,modal auxiliary,A1,,, +need,noun,B2,,, +need,verb,A2,,, +needle,noun,B1,Objects and rooms,,Shopping +needless,adjective,B2,,, +needy,adjective,B2,,, +negative,adjective,A2,,, +negatively,adverb,B2,,, +neglect,noun,B2,,, +negotiate,verb,B1,,, +negotiation,noun,B1,,, +neighbor/neighbour,noun,A1,Family life,,Relations with other people +neighborhood/neighbourhood,noun,B1,Family life,,Relations with other people +neighboring/neighbouring,adjective,B2,,, +neither,adverb,B2,,, +neither,conjunction,B2,,, +neither,determiner,B2,,, +neither,pronoun,B2,,, +nephew,noun,B1,Family life,,Personal identification +nerve,noun,B2,Travel and services vocab,,Health and body care +nerves,noun,B2,,, +nervous,adjective,A2,,, +nervously,adverb,B2,,, +nervousness,noun,B1,,, +ness,noun,B1,,, +net,adjective,A2,,, +net,noun,B1,Objects and rooms,,Shopping +netsurfer/net surfer,noun,B2,Media,,"Free time, entertainment" +network,noun,B1,Media,, +neurosis,noun,B2,Travel and services vocab,,Health and body care +neutral,adjective,B1,,, +never,adverb,A1,,, +nevertheless,adverb,B1,,, +new,adjective,A1,,, +newborn,adjective,B1,,, +newcomer,noun,B1,,, +newly,adverb,B1,,, +news,noun,A1,"News, lifestyles and current affairs",,"Free time, entertainment" +newscaster,noun,B2,Media,,Personal identification +newspaper,noun,A1,Objects and rooms,,"Free time, entertainment" +newsworthy,adjective,B2,,, +next,adverb,A2,,, +next,determiner,A2,,, +next,pronoun,B2,,, +next door,adverb,B1,,, +next to,preposition,A2,,, +next-door,adjective,B1,,, +nice,adjective,A1,,, +nicely,adverb,B2,,, +nickname,noun,B1,Personal information,,Personal identification +niece,noun,B1,Family life,,Personal identification +night,noun,A1,,, +nightclub,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +nightlife,noun,B1,"News, lifestyles and current affairs",,Daily life +nightmare,noun,B2,,, +nine,number,A1,,, +nineteen,number,A1,,, +ninety,number,A1,,, +no,adverb,A1,,, +no,determiner,A1,,, +no one,pronoun,A2,,, +nobility,noun,B2,,, +noble,adjective,B2,,, +nobleman,noun,B2,,, +nobody,pronoun,A2,,, +nod,noun,B1,,, +nod,verb,B2,,, +noise,noun,A1,,, +noisily,adverb,B1,,, +noisy,adjective,A2,,, +nomad,noun,B2,,, +nomination,noun,B2,,, +nominee,noun,B2,,, +none,pronoun,B1,,, +nonetheless,adverb,B1,,, +nonprofessional,adjective,B2,,, +nonsense,noun,B1,,, +non-smoking,adjective,B2,,, +noon,noun,A2,,, +nor,conjunction,B1,,, +normal,adjective,A2,,, +normally,adverb,B1,,, +north,adjective,A2,,, +north,adverb,A2,,, +north,noun,A2,,, +northeast,adjective,B1,,, +northeast,noun,B1,,, +northeastern,adjective,B1,,, +northern,adjective,B1,,, +northward,adverb,B2,,, +northwest,adjective,B1,,, +northwest,noun,B1,,, +northwestern,adjective,B1,,, +nose,noun,A1,,,Health and body care +nostril,noun,B2,,, +not,adverb,A1,,, +note,noun,A1,Objects and rooms,,Shopping +note,verb,A1,,, +notebook,noun,A1,Objects and rooms,,Shopping +nothing,pronoun,A1,,, +notice,noun,A2,,, +notice,verb,B1,,, +noticeable,adjective,B1,,, +noticeboard,noun,B1,,, +notion,noun,B1,,, +notorious,adjective,B1,,, +nought,noun,B2,,, +noun,noun,A2,Education,,Language +nourish,verb,B2,,, +nourishment,noun,B2,Food and drink,,Food and drink +novel,noun,A2,Education,,Education +novelist,noun,B1,Education,,Personal identification +novelty,noun,B2,,, +November,noun,A1,,, +now,adverb,A1,,, +now,conjunction,B2,,, +nowadays,adverb,A2,,, +nowhere,adverb,B1,,, +nuclear,adjective,B1,,, +nucleus,noun,B1,,, +nuisance,noun,B2,,, +number,noun,A1,,,Personal identification +numerical,adjective,B2,,, +numerous,adjective,B1,,, +nurse,noun,A1,Work and Jobs,Travel and services vocab,Personal identification +nurse,verb,B1,,, +nursery,noun,B2,,, +nut,noun,B2,,,Food and drink +nutrient,noun,B1,Food and drink,,Food and drink +nutrition,noun,B1,Food and drink,,Food and drink +nutritious,adjective,B1,,, +nutshell,noun,B2,Food and drink,,Food and drink +oak,noun,A2,,, +oath,noun,B2,,, +obedience,noun,B2,,, +obedient,adjective,B2,,, +obey,verb,B2,,, +obituary,noun,B2,"News, lifestyles and current affairs",, +object,noun,B1,,, +object,verb,B2,,, +objection,noun,B1,,, +objective,adjective,B2,,, +objective,noun,B1,,, +obligation,noun,B2,,, +observation,noun,B1,,, +observe,verb,B1,,, +observer,noun,B2,,, +obsess,verb,B2,,, +obsession,noun,B2,,, +obsessive,adjective,B2,,, +obstacle,noun,B1,,, +obtain,verb,B1,,, +obvious,adjective,B1,,, +obviously,adverb,B1,,, +occasion,noun,B1,,, +occasion,verb,B1,,, +occasional,adjective,B1,,, +occasionally,adverb,B1,,, +occupation,noun,A2,,,Personal identification +occupy,verb,B1,,, +occur,verb,B1,,, +ocean,noun,B1,,,"House and home, environment" +o'clock,adverb,A1,,, +October,noun,A1,,, +odd,adjective,B2,,, +of,preposition,A1,,, +off,adjective,A1,,, +off,adverb,A2,,, +off,preposition,B1,,, +offend,verb,B2,,, +offender,noun,B2,,, +offense/offence,noun,B2,,, +offensive,adjective,B1,,, +offer,noun,A2,,, +offer,verb,A2,,, +offhand,adverb,B2,,, +office,noun,A1,"Things in the town, shops and shopping",,Services +officer,noun,A1,Work and Jobs,,Personal identification +official,adjective,A2,,, +official,noun,B2,Work and Jobs,,Personal identification +officially,adverb,B1,,, +offshore,adjective,B2,,, +often,adverb,A1,,, +oil,noun,A2,Objects and rooms,,Services +oily,adjective,B1,,, +ointment,noun,B2,,, +OK/okay,adjective,A1,,, +OK/okay,adverb,A1,,, +old,adjective,A1,,, +old-fashioned,adjective,B1,,, +olive,noun,B2,,, +olive oil,noun,A2,,, +Olympia,noun,B2,,, +Olympiad,noun,B2,,, +Olympic,adjective,A2,,, +Olympics,noun,A1,"News, lifestyles and current affairs",,"Free time, entertainment" +omelet/omelette,noun,A2,,,Food and drink +on,adverb,A2,,, +on,preposition,A1,,, +once,adverb,A1,,, +once,conjunction,B2,,, +one,determiner,A1,,, +one,number,A1,,, +one,pronoun,A2,,, +oneself,pronoun,B1,,, +onion,noun,A2,,,Food and drink +online,adjective,A2,,, +online,adverb,A2,,, +only,adjective,A1,,, +only,adverb,A1,,, +onstage,adjective,B1,,, +onto/on to,preposition,B1,,, +open,adjective,A1,,, +open,verb,A1,,, +opening,noun,B1,,, +openly,adverb,B2,,, +opera,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +operate,verb,A2,,, +operation,noun,B1,,, +operator,noun,B2,,,Personal identification +opinion,noun,A2,,, +opponent,noun,B2,,, +opportunity,noun,A2,,, +oppose,verb,A2,,, +opposite,adjective,A2,,, +opposite,adverb,B1,,, +opposite,noun,B1,,, +opposite,preposition,A2,,, +opposition,noun,B1,,, +oppress,verb,B1,,, +oppression,noun,B1,,, +optimism,noun,B2,,, +optimist,noun,B2,,, +optimistic,adjective,B2,,, +option,noun,B1,,, +optional,adjective,B2,,, +or,conjunction,A1,,, +oral,adjective,B2,,, +oral,noun,B1,Education,, +orange,adjective,A1,,, +orange,noun,A1,Food and drink,,Food and drink +orator,noun,B2,Work and Jobs,,Personal identification +orbit,noun,B1,,, +orchestra,noun,B1,Hobbies and pastimes,,"Free time, entertainment" +orchestral,adjective,B2,,, +orchid,noun,B2,,, +order,noun,A1,,,Shopping +order,verb,A2,,, +orderly,adjective,B1,,, +ordinary,adjective,B1,,, +organ,noun,B1,Education,, +organic,adjective,B1,,, +organism,noun,B1,,, +organization/organisation,noun,B1,,, +organize/organise,verb,A2,,, +organized/organised,adjective,A2,,, +organizer/organiser,noun,B2,,, +origin,noun,B1,,,Personal identification +original,adjective,A2,,, +original,noun,B2,,, +originality,noun,B2,,, +originally,adverb,B2,,, +originate,verb,B2,,, +ornament,noun,B2,Objects and rooms,, +orphan,noun,A2,"News, lifestyles and current affairs",,Personal identification +other,determiner,A1,,, +other,pronoun,A2,,, +otherwise,adverb,B1,,, +ought to,modal auxiliary,B1,,, +ounce,noun,B2,,, +our,determiner,A1,,, +ours,pronoun,A1,,, +ourselves,pronoun,A2,,, +out,adverb,A1,,, +out of,preposition,A2,,, +outback,noun,B2,,, +outbreak,noun,B2,,, +outcome,noun,B2,,, +outdistance,verb,B2,,, +outdo,verb,B2,,, +outdoor,adjective,B1,,, +outdoors,adverb,B1,,, +outer,adjective,B1,,, +outfit,noun,B2,Objects and rooms,, +outgrow,verb,B2,,, +outing,noun,B2,Travel and services vocab,,"Free time, entertainment" +outlaw,noun,B1,"News, lifestyles and current affairs",, +outlet,noun,B2,,, +outline,noun,B2,,, +outline,verb,B1,,, +outlive,verb,B2,,, +outlook,noun,B2,,, +out-of-date,adjective,B1,,, +outpatient,noun,B2,Travel and services vocab,,Health and body care +output,noun,B2,,, +outrage,noun,B2,"News, lifestyles and current affairs",, +outrageous,adjective,B2,,, +outshine,verb,B2,,, +outside,adjective,B2,,, +outside,adverb,A1,,, +outside,noun,B2,,, +outside,preposition,A2,,, +outsider,noun,B2,,, +outskirts,noun,B2,,,"House and home, environment" +outstanding,adjective,B1,,, +outward,adjective,B1,,, +outwardly,adverb,B2,,, +outweigh,verb,B1,,, +oval,adjective,B2,,, +oven,noun,A2,Objects and rooms,,"House and home, environment" +over,adverb,A2,,, +over,preposition,A1,,, +overall,adjective,B2,,, +overall,adverb,B2,,, +overboard,adverb,B2,,, +overbook,verb,B2,,, +overcoat,noun,B2,Clothes,,Shopping +overcome,verb,B1,,, +overemphasize/overemphasise,verb,B2,,, +overestimate,verb,B2,,, +overhear,verb,B2,,, +overjoyed,adjective,B1,,, +overlap,noun,B2,,, +overlook,verb,B2,,, +overly,adverb,B2,,, +overnight,adjective,B1,,, +overnight,adverb,B1,,, +overseas,adjective,B2,,, +overseas,adverb,A2,,, +overshadow,verb,B2,,, +oversize,adjective,B2,,, +overstep,verb,B2,,, +overtake,verb,B2,,, +overthrow,verb,B2,,, +overtime,adverb,B2,,, +overtime,noun,B2,,, +overturn,verb,B2,,, +overweight,adjective,A2,,, +overwhelm,verb,B1,,, +overwhelming,adjective,B1,,, +overwork,noun,B1,Work and Jobs,, +ow,noun,B2,,, +owe,verb,B1,,, +owing,adjective,B1,,, +owing to,preposition,B2,,, +owl,noun,B2,,, +own,adjective,A1,,, +own,pronoun,A2,,, +own,verb,B1,,, +owner,noun,A1,Work and Jobs,,Personal identification +ox,noun,B2,,, +oxygen,noun,B1,Education,, +ozone,noun,B2,"News, lifestyles and current affairs",, +p.m./P.M./pm/PM,adverb,A1,,, +pa,noun,B2,Family life,,Personal identification +pace,noun,B1,,, +pacific,adjective,A2,,, +pack,noun,A2,Objects and rooms,,Shopping +pack,verb,A2,,, +package,noun,B1,Objects and rooms,,Shopping +packed,adjective,B2,,, +packet,noun,B2,Objects and rooms,, +packing,noun,B1,,, +pad,noun,B2,,, +paddle,noun,B1,Ways of travelling,,Travel +page,noun,A1,Books and literature,,"Free time, entertainment" +paid,adjective,B1,,, +pain,noun,B1,Travel and services vocab,,Health and body care +painful,adjective,B1,,, +paint,noun,A1,Education,,Shopping +paint,verb,A1,,, +paintbrush,noun,B2,Hobbies and pastimes,,"Free time, entertainment" +painter,noun,A2,Work and Jobs,,Personal identification +painting,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +pair,noun,A1,,, +pajamas/pyjamas,noun,B2,,,Shopping +pal,noun,A2,Personal information,,Relations with other people +palace,noun,A1,Nationalities and countries,,"House and home, environment" +pale,adjective,B1,,, +pallet,noun,B2,,, +palm,noun,B1,,,Health and body care +pan,noun,A2,Objects and rooms,,Shopping +pancake,noun,B2,,,Food and drink +pandemic,adjective,B2,,, +panel,noun,B2,,, +panic,noun,A2,"News, lifestyles and current affairs",,Health and body care +panic,verb,B2,,, +pants,noun,A1,Clothes,,Shopping +papaya,noun,B2,,,Food and drink +paper,noun,A1,Objects and rooms,,"Free time, entertainment" +paperless,adjective,B2,,, +paperwork,noun,B2,,, +parachute,noun,B1,,, +parade,noun,B2,,,"Free time, entertainment" +paradise,noun,B1,,, +paradox,noun,B2,,, +paragraph,noun,A1,Education,,Education +paralysis,noun,B2,Travel and services vocab,,Health and body care +paralyze/paralyse,verb,B1,,, +paramedic,adjective,B2,,, +paratrooper,noun,B2,"News, lifestyles and current affairs",, +parcel,noun,B1,,, +pardon,noun,A1,,, +pardon,verb,B1,,, +parent,noun,A1,Family life,,Personal identification +parental,adjective,B1,,, +park,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +park,verb,A2,,, +parking,noun,B1,Travel and services vocab,,Travel +parliament,noun,B2,,,"House and home, environment" +parrot,noun,B1,,, +part,noun,A2,,, +part,verb,B2,,, +partial,adjective,B1,,, +participant,noun,B1,,, +participate,verb,B1,,, +participation,noun,B2,,, +participle,noun,B1,Education,, +particle,noun,B2,Education,, +particular,adjective,B2,,, +particularly,adverb,B1,,, +partisan,noun,B2,,, +partly,adverb,A2,,, +partner,noun,A1,Family life,,Personal identification +partnership,noun,B2,,, +part-time,adjective,B1,,, +part-time,adverb,B1,,, +party,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +pass,noun,A2,,, +pass,verb,A2,,, +passage,noun,A2,Education,,"Free time, entertainment" +passenger,noun,A2,Travel and services vocab,,Travel +passion,noun,B1,,, +passionate,adjective,B2,,, +passionately,adverb,B2,,, +passive,adjective,B1,,, +passport,noun,B1,Travel and services vocab,,Travel +password,noun,B1,,, +past,adjective,B1,,, +past,adverb,A1,,, +past,preposition,A1,,, +pasta,noun,A2,,,Food and drink +pastor,noun,B2,Work and Jobs,,Personal identification +pastoral,adjective,B2,,, +patch,noun,B2,,, +path,noun,A2,"Things in the town, shops and shopping",,Places +patience,noun,B1,,,Health and body care +patient,adjective,B1,,, +patient,noun,A2,Travel and services vocab,,Health and body care +patiently,adverb,B2,,, +patriot,noun,B2,,,Personal identification +patriotic,adjective,B2,,, +patriotism,noun,B2,,, +patrol,noun,B1,,, +patron,noun,B2,,, +pattern,noun,B1,,, +pause,noun,B1,,, +pause,verb,B1,,, +pave,verb,B2,,, +pavement,noun,B2,,, +paw,noun,B2,,, +pawnbroker,noun,B2,Work and Jobs,,Personal identification +pawnshop,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +pay,noun,A1,Shopping,,Shopping +pay,verb,A1,,, +payment,noun,B2,,,Shopping +PC,noun,A2,,,"Free time, entertainment" +pea,noun,A2,Food and drink,,Food and drink +peace,noun,A1,,, +peaceful,adjective,A2,,, +peacefully,adverb,B2,,, +peach,noun,B2,Food and drink,,Food and drink +peak,noun,B2,,, +peanut,noun,B1,Food and drink,,Food and drink +pear,noun,A2,,,Food and drink +pearl,noun,B2,Shopping,,Shopping +pebble,noun,B2,,, +peculiar,adjective,B1,,, +pedal,noun,B2,,, +pedantic,adjective,B2,,, +pedestrian,noun,B2,,, +pee,verb,B2,,, +peel,noun,B2,Food and drink,,Food and drink +peel,verb,B2,,, +peep,noun,B2,,, +peer,noun,B2,,, +peg,noun,B2,,, +pen,noun,A1,Objects and rooms,,Shopping +penalize/penalise,verb,B2,,, +penalty,noun,B2,,, +pence,noun,A2,,,Shopping +pencil,noun,A1,Objects and rooms,,Shopping +penetrate,verb,B2,,, +penfriend/pen friend,noun,A2,,,Relations with other people +penguin,noun,B2,,, +penicillin,noun,B2,Travel and services vocab,,Health and body care +penniless,adjective,B1,,, +penny,noun,B1,,, +pension,noun,B2,,,"House and home, environment" +pentagon,noun,B2,,, +people,noun,A1,,, +pepper,noun,A2,,,Food and drink +per,preposition,B1,,, +perceive,verb,B2,,, +percent/per cent,noun,B1,,, +percentage,noun,B2,,, +perception,noun,B2,,, +perfect,adjective,A2,,, +perfectly,adverb,A2,,, +perform,verb,A2,,, +performance,noun,A2,,, +performer,noun,B1,Work and Jobs,,Personal identification +perfume,noun,A2,,,Shopping +perhaps,adverb,A2,,, +period,noun,A1,,, +permanence,noun,B2,,, +permanent,adjective,B1,,, +permanently,adverb,B1,,, +permeate,verb,B2,,, +permission,noun,A2,,, +permit,verb,B1,,, +perseverance,noun,B2,,, +persist,verb,B2,,, +persistence,noun,B2,,, +persistent,adjective,B2,,, +person,noun,A1,,,Personal identification +personal,adjective,A1,,, +personality,noun,A2,Personal information,,Personal identification +personally,adverb,B1,,, +personification,noun,B2,,, +personify,verb,B2,,, +personnel,noun,B2,,, +perspective,noun,B2,,, +perspiration,noun,B2,,, +persuade,verb,B1,,, +persuasion,noun,B2,,, +persuasive,adjective,B1,,, +pessimist,noun,B2,,,Personal identification +pessimistic,adjective,B2,,, +pet,noun,A1,Family life,, +petrified,adjective,B2,,, +petrol,noun,A2,,,"House and home, environment" +petrol station,noun,A2,,,"House and home, environment" +petty,adjective,B2,,, +pH,noun,B2,,, +phantom,adjective,B1,,, +pharmacist,noun,B2,,,Personal identification +pharmacy,noun,B1,"Things in the town, shops and shopping",,Health and body care +phase,noun,B2,,, +phenomenon,noun,B1,,, +philosopher,noun,B1,Work and Jobs,Education,Personal identification +philosophical,adjective,B2,,, +philosophy,noun,B1,Education,,Education +phoenix,noun,B1,,, +phone,noun,A1,Objects and rooms,,Services +phone,verb,A1,,, +photo,noun,A1,Objects and rooms,,"Free time, entertainment" +photocopy,noun,B1,,, +photograph,noun,A2,Objects and rooms,,"Free time, entertainment" +photograph,verb,B2,,, +photographer,noun,A2,Work and Jobs,,Personal identification +photography,noun,A2,Hobbies and pastimes,,"Free time, entertainment" +phrasal verb,noun,B1,,, +phrase,noun,B1,Education,,Education +physical,adjective,A2,,, +physically,adverb,A2,,, +physician,noun,B2,,, +physics,noun,B1,Education,,Education +pi,noun,B2,,, +piano,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +pick,noun,B1,,, +pick,verb,A1,,, +pickle,noun,B2,Food and drink,,Food and drink +picky,adjective,B2,,, +picnic,noun,A1,Leisure activities,,"Free time, entertainment" +picture,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +picture,verb,B2,,, +picturesque,adjective,B2,,, +pie,noun,B1,Food and drink,,Food and drink +piece,noun,A1,,, +piety,noun,B1,,, +pig,noun,A1,,, +pile,noun,A2,Collocation,,Language +pilgrim,noun,A2,,, +pill,noun,A2,Travel and services vocab,,Health and body care +pillow,noun,B1,Objects and rooms,,Shopping +pillowcase,noun,B2,Objects and rooms,,Shopping +pilot,noun,A2,,,Personal identification +pin,noun,B2,Objects and rooms,, +pin,verb,B1,,, +pine,noun,B2,,, +pineapple,noun,B1,Food and drink,,Food and drink +pink,adjective,A1,,, +pink,noun,A2,,, +pint,noun,B2,,, +pipe,noun,B1,,, +piracy,noun,B2,,, +pirate,noun,B2,Books and literature,,Personal identification +pit,noun,B1,,, +pitch,noun,B2,,, +pitch,verb,B2,,, +pity,noun,A2,,, +pizza,noun,A1,Food and drink,,Food and drink +place,noun,A1,,,Places +place,verb,B1,,, +plague,noun,B2,"News, lifestyles and current affairs",, +plain,adjective,B1,,, +plan,noun,A1,Holidays,, +plan,verb,B1,,, +plane,noun,A1,Ways of travelling,,Travel +planet,noun,A2,Nationalities and countries,,Places +planning,noun,B2,,, +plant,noun,A2,,, +plant,verb,B1,,, +plastic,adjective,A2,,, +plastic,noun,B1,,, +plate,noun,A2,Food and drink,,Food and drink +platform,noun,B1,"Things in the town, shops and shopping",,Travel +play,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +play,verb,A1,,, +player,noun,A1,Hobbies and pastimes,,Personal identification +playful,adjective,A2,,, +playground,noun,A2,,,"House and home, environment" +playmate,noun,B2,Personal information,,Relations with other people +playwright,noun,B2,Work and Jobs,,Personal identification +plead,verb,B2,,, +pleasant,adjective,A2,,, +pleasantly,adverb,B1,,, +please,adverb,A1,,, +please,verb,B1,,, +pleased,adjective,A2,,, +pleasing,adjective,A2,,, +pleasure,noun,A1,,, +plenty,noun,A2,Collocation,,Language +plenty,pronoun,B1,,, +plot,noun,B2,Film,, +pluck,verb,B2,,, +plug,noun,B1,,, +plug,verb,B2,,, +plum,noun,B2,,,Food and drink +plumber,noun,B2,,, +plural,noun,A2,,,Language +plus,conjunction,B1,,, +plus,noun,B2,,, +plus,preposition,A2,,, +pneumonia,noun,B2,Travel and services vocab,,Health and body care +pocket,noun,A1,Clothes,,"Free time, entertainment" +pocket money,noun,B1,,,Shopping +poem,noun,A1,Education,,Education +poet,noun,B1,Education,Work and Jobs,Personal identification +poetry,noun,B1,Education,,"Free time, entertainment" +point,noun,A1,,, +point,verb,A2,,, +point of view,noun,B2,,, +pointless,adjective,B2,,, +poison,noun,B1,,,Health and body care +poison,verb,B2,,, +poisonous,adjective,B1,,, +polar bear,noun,B2,,, +pole,noun,B1,,, +police,noun,A2,,,Relations with other people +police officer,noun,A2,,,Relations with other people +police station,noun,A2,,,Services +policeman,noun,A2,,,Relations with other people +policewoman,noun,A2,,,Relations with other people +policy,noun,B1,"News, lifestyles and current affairs",, +polio,noun,B2,Technical and legal language,, +polish,noun,B2,,, +polite,adjective,A2,,, +politely,adverb,B1,,, +politeness,noun,B2,,, +political,adjective,A2,,, +politically,adverb,B2,,, +politician,noun,B1,Work and Jobs,"News, lifestyles and current affairs",Personal identification +politics,noun,B1,"News, lifestyles and current affairs",,Education +polity,noun,B2,"News, lifestyles and current affairs",, +pollutant,noun,B1,"News, lifestyles and current affairs",, +pollute,verb,A2,,, +pollution,noun,A1,"News, lifestyles and current affairs",,"House and home, environment" +polo,noun,B2,Hobbies and pastimes,,"Free time, entertainment" +pond,noun,B1,"Things in the town, shops and shopping",,"House and home, environment" +ponder,verb,B2,,, +pool,noun,A1,"Things in the town, shops and shopping",,"Free time, entertainment" +poor,adjective,A1,,, +pop,noun,A1,,,"Free time, entertainment" +pop,verb,B2,,, +popcorn,noun,B1,,, +popular,adjective,A2,,, +popularity,noun,B2,,, +popularize/popularise,verb,B2,,, +population,noun,A2,Nationalities and countries,, +porch,noun,B2,,, +pork,noun,B1,Food and drink,,Food and drink +port,noun,B1,"Things in the town, shops and shopping",,Travel +portion,noun,B2,,, +portrait,noun,A2,Arts,,"Free time, entertainment" +pose,noun,B2,,, +posh,adjective,B2,,, +position,noun,A2,,, +positive,adjective,B1,,, +positively,adverb,B1,,, +possess,verb,B1,,, +possessed,adjective,B2,,, +possession,noun,B1,,, +possessive,adjective,B1,,, +possibility,noun,B1,,, +possible,adjective,A2,,, +possibly,adverb,A2,,, +post,noun,A1,"Things in the town, shops and shopping",,Services +post,verb,A2,,, +post office,noun,A2,,,Services +postal,adjective,B2,,, +postcard,noun,B1,Media,,Relations with other people +poster,noun,A1,"Things in the town, shops and shopping",,"Free time, entertainment" +postman,noun,B1,Work and Jobs,,Personal identification +postpone,verb,B2,,, +pot,noun,B1,Objects and rooms,,Shopping +potato,noun,A1,Food and drink,,Food and drink +potent,adjective,B2,,, +potential,adjective,B2,,, +potential,noun,B1,,, +potentially,adverb,B2,,, +pottery,noun,B1,Objects and rooms,,Shopping +pound,noun,B1,,, +pound,verb,B2,,, +pour,verb,A2,,, +poverty,noun,B1,"News, lifestyles and current affairs",, +powder,noun,B1,Objects and rooms,,Shopping +powder,verb,B2,,, +power,noun,A2,,, +powerful,adjective,A2,,, +powerfully,adverb,B2,,, +practical,adjective,B1,,, +practicality,noun,B2,,, +practically,adverb,B2,,, +practice,noun,A1,Hobbies and pastimes,, +practice/practise,verb,A1,,, +praise,noun,B1,,, +praise,verb,B2,,, +prance,noun,B2,,, +prawn,noun,B2,,,Food and drink +pray,verb,A1,,, +prayer,noun,B1,,,Personal identification +precede,verb,B2,,, +precious,adjective,B1,,, +precise,adjective,A2,,, +precisely,adverb,B2,,, +predicament,noun,B2,,, +predicate,verb,B2,,, +predicative,adjective,B2,,, +predict,verb,A2,,, +predictable,adjective,B2,,, +prediction,noun,A2,,, +predictive,adjective,B2,,, +predictor,noun,B2,Work and Jobs,,Personal identification +prefect,noun,B2,Education,, +prefer,verb,A2,,, +preferable,adjective,B2,,, +preferably,adverb,B2,,, +preference,noun,B1,Personal information,,Personal identification +prefix,noun,B1,Education,, +pregnant,adjective,B1,,, +prehistoric,adjective,B2,,, +prehuman,noun,B2,,, +preindustrial,adjective,B2,,, +prejudge,verb,B2,,, +prejudice,noun,B1,,, +preliminary,adjective,B2,,, +preoccupy,verb,B2,,, +preparation,noun,B1,,, +prepare,verb,A2,,, +prepared,adjective,B1,,, +preposition,noun,B1,,, +preschool,adjective,B1,,, +prescribe,verb,B2,,, +prescription,noun,B1,,, +presence,noun,B1,,, +present,adjective,B1,,, +present,noun,A1,,,Shopping +present,verb,B2,,, +presentation,noun,B1,,, +presenter,noun,B2,,,Personal identification +preservation,noun,B1,,, +preserve,verb,B1,,, +presidency,noun,B2,,, +president,noun,B1,Work and Jobs,,Personal identification +presidential,adjective,B2,,, +press,noun,B1,,, +press,verb,B1,,, +pressure,noun,A2,,, +prestige,noun,B2,,, +prestigious,adjective,B2,,, +presumably,adverb,B2,,, +pretend,adjective,B2,,, +pretend,verb,A2,,, +pretty,adjective,A1,,, +pretty,adverb,A2,,, +prevail,verb,B2,,, +prevent,verb,A2,,, +prevention,noun,B2,,, +preventive,adjective,B2,,, +previous,adjective,B1,,, +previously,adverb,B2,,, +price,noun,A1,Shopping,,Shopping +price,verb,B2,,, +priceless,adjective,B2,,, +prick,noun,B2,,, +pride,noun,A2,,, +priest,noun,B1,Work and Jobs,,Personal identification +primarily,adverb,B1,,, +primary,adjective,B2,,, +primary school,noun,B1,Education,,Education +prime,adjective,B2,,, +prime minister,noun,B2,,,Personal identification +primitive,adjective,B1,,, +prince,noun,A1,Nationalities and countries,,Relations with other people +princess,noun,A1,Nationalities and countries,,Relations with other people +principal,adjective,A2,,, +principal,noun,B2,,, +principle,noun,B1,,, +print,noun,B1,Media,, +print,verb,A2,,, +printer,noun,A2,,,"Free time, entertainment" +prior,adjective,B2,,, +priority,noun,B2,,, +prison,noun,B1,"News, lifestyles and current affairs",,"House and home, environment" +prisoner,noun,B1,"News, lifestyles and current affairs",,Relations with other people +privacy,noun,B1,,, +private,adjective,A2,,, +privately,adverb,B2,,, +privilege,noun,B2,,, +prize,noun,B1,"News, lifestyles and current affairs",, +pro,noun,A2,,, +probability,noun,B1,,, +probable,adjective,B2,,, +probably,adverb,A2,,, +probe,noun,B2,,, +problem,noun,A1,,,Relations with other people +procedure,noun,B2,,, +proceed,verb,B1,,, +process,noun,B1,,, +process,verb,B2,,, +proclaim,verb,B1,,, +procrastination,noun,B1,,, +produce,verb,A2,,, +producer,noun,B1,Work and Jobs,,Personal identification +product,noun,A2,Work and Jobs,Shopping, +production,noun,A2,Work and Jobs,, +productive,adjective,B1,,, +profession,noun,B1,Work and Jobs,,Personal identification +professional,adjective,A2,,, +professional,noun,B2,,, +professor,noun,B1,Work and Jobs,Education,Personal identification +profile,noun,B2,,, +profit,noun,B2,Work and Jobs,, +profitable,adjective,B2,,, +program/programme,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +program/programme,verb,B1,,, +programmer,noun,B2,Work and Jobs,,Personal identification +programming,noun,B2,Work and Jobs,, +progress,noun,B1,,, +progress,verb,B2,,, +progressive,adjective,A2,,, +prohibit,verb,B2,,, +prohibition,noun,B1,"News, lifestyles and current affairs",, +project,noun,B2,Work and Jobs,, +project,verb,B2,,, +projection,noun,B2,,, +prom,noun,B2,,, +prominence,noun,B2,,, +prominent,adjective,B1,,, +promise,noun,A2,,, +promise,verb,B1,,, +promote,verb,B1,,, +promotion,noun,B1,Work and Jobs,, +prompt,adjective,B2,,, +prompt,noun,B2,,, +prompt,verb,B2,,, +promptly,adverb,B2,,, +pronoun,noun,B1,,, +pronounce,verb,A2,,, +pronunciation,noun,A2,Education,,Language +proof,noun,B1,,, +proper,adjective,A2,,, +properly,adverb,B1,,, +property,noun,B1,Personal information,, +proponent,noun,B2,,, +proportion,noun,B1,,, +proposal,noun,B1,,,Relations with other people +propose,verb,B1,,, +proposed,adjective,B2,,, +prose,noun,B2,Education,, +prosecute,verb,B2,,, +prospect,noun,B2,,, +prosper,verb,B2,,, +prosperity,noun,B1,,, +prosperous,adjective,B1,,, +protect,verb,B1,,, +protection,noun,B1,,, +protective,adjective,B1,,, +protest,noun,B1,,,Relations with other people +protest,verb,B2,,, +proud,adjective,B1,,, +proudly,adverb,B2,,, +prove,verb,B1,,, +proven,adjective,B2,,, +proverb,noun,B1,Education,,Language +provide,verb,A2,,, +provided,conjunction,B1,,, +province,noun,B2,Nationalities and countries,, +provision,noun,B2,,, +proximity,noun,B2,,, +psychological,adjective,B1,,, +psychologically,adverb,B2,,, +psychologist,noun,A2,Work and Jobs,,Personal identification +psychology,noun,B2,,,Education +pub,noun,B1,"Things in the town, shops and shopping",,Food and drink +public,adjective,B1,,, +public,noun,A2,"News, lifestyles and current affairs",, +public transport,noun,B1,Ways of travelling,,Travel +publication,noun,B2,,, +publicity,noun,B2,,, +publicize/publicise,verb,B2,,, +publicly,adverb,B1,,, +publish,verb,A2,,, +publisher,noun,B1,Work and Jobs,"Things in the town, shops and shopping",Personal identification +pudding,noun,B2,,, +pull,verb,A2,,, +pullover,noun,B1,,, +pulse,noun,B2,Travel and services vocab,,Health and body care +pump,noun,B1,,, +pumpkin,noun,B2,Food and drink,,Food and drink +punch,noun,B2,,, +punch,verb,B2,,, +punctual,adjective,B2,,, +punctuality,noun,B2,,, +punctuation,noun,A2,Education,,Language +punish,verb,B1,,, +punishment,noun,B1,,,Relations with other people +pupil,noun,B1,Education,,Education +puppy,noun,B1,,, +purchase,noun,B2,,,Shopping +purchase,verb,B2,,, +pure,adjective,B1,,, +purify,verb,B1,,, +purple,adjective,A2,,, +purple,noun,A1,Colours,, +purpose,noun,A2,,, +purposeful,adjective,B2,,, +purse,noun,B1,Shopping,,Shopping +pursue,verb,A2,,, +pursuit,noun,B2,,, +push,noun,B1,,, +push,verb,A1,,, +put,verb,A1,,, +puzzle,noun,B1,,,"Free time, entertainment" +puzzled,adjective,B2,,, +quake,noun,B1,,, +qualification,noun,B2,Education,Work and Jobs,Education +qualified,adjective,B1,,, +qualify,verb,B1,,, +quality,adjective,B1,,, +quality,noun,A2,,, +quantify,verb,B2,,, +quantity,noun,B1,,, +quarantine,noun,B2,"News, lifestyles and current affairs",, +quarrel,noun,B2,,, +quarrel,verb,B2,,, +quarrelsome,adjective,B2,,, +quarter,noun,A1,,, +queen,noun,A2,,,Relations with other people +queer,adjective,B2,,, +query,noun,B2,,,Language +question,noun,A1,,,Language +question,verb,B2,,, +question mark,noun,B1,,, +questionnaire,noun,B1,,, +queue,noun,B1,,, +queue,verb,B2,,, +quick,adjective,A2,,, +quickly,adverb,A1,,, +quiet,adjective,A1,,, +quiet,noun,B2,,, +quietly,adverb,A2,,, +quit,adjective,B2,,, +quit,verb,A2,,, +quite,adverb,A2,,, +quiz,noun,A2,Education,,Education +quotable,adjective,B2,,, +quotation,noun,B2,Education,Books and literature, +quote,noun,B2,Education,Books and literature, +quote,verb,B2,,, +rabbit,noun,A1,,, +race,noun,B1,Hobbies and pastimes,,"Free time, entertainment" +race,verb,B1,,, +racial,adjective,B1,,, +racism,noun,B2,,, +racist,noun,B2,"News, lifestyles and current affairs",,Personal identification +rack,noun,B2,,, +racket,noun,A2,,,"Free time, entertainment" +radar,noun,B2,,, +radiate,verb,B2,,, +radiation,noun,B1,"News, lifestyles and current affairs",, +radical,noun,B2,"News, lifestyles and current affairs",, +radically,adverb,B2,,, +radio,noun,A1,Objects and rooms,,"Free time, entertainment" +radium,noun,B2,,, +rafter,noun,B2,,, +rag,noun,B2,Clothes,, +rage,noun,B1,,, +rail,noun,B1,Ways of travelling,,Travel +railroad,noun,B1,Ways of travelling,, +railway,noun,B1,Ways of travelling,,Travel +rain,noun,A1,Media,,Weather +rain,verb,A1,,, +rainbow,noun,B2,,, +raincoat,noun,A2,,,Shopping +rainfall,noun,B1,Media,,Weather +rainforest,noun,B1,Nationalities and countries,,"House and home, environment" +rainstorm,noun,B2,Media,,Weather +rainy,adjective,A1,,, +raise,verb,A2,,, +rally,noun,B2,,, +ram,noun,B2,,, +ramp,noun,B2,,, +range,noun,A2,,, +range,verb,B2,,, +ranger,noun,B2,"News, lifestyles and current affairs",, +rank,noun,B1,,, +rap,noun,A2,,,"Free time, entertainment" +rap,verb,B1,,, +rape,noun,B2,,, +rape,verb,B2,,, +rapid,adjective,B1,,, +rapidly,adverb,B1,,, +rare,adjective,B1,,, +rarely,adverb,B1,,, +rash,adjective,B2,,, +raspberry,noun,B1,,, +rat,noun,A1,,, +rate,noun,A2,,, +rate,verb,B2,,, +rather,adverb,A2,,, +rating,noun,A2,,, +ration,noun,B1,,, +rational,adjective,B1,,, +rattle,noun,B2,,, +ravage,noun,B2,,, +raw,adjective,A2,,, +ray,noun,A2,"News, lifestyles and current affairs",, +razor,noun,B1,Objects and rooms,, +'re,be-verb,A1,,, +reach,noun,B1,,, +reach,verb,A2,,, +react,verb,B1,,, +reaction,noun,B2,,, +read,verb,A1,,, +reader,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +readily,adverb,B2,,, +reading,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +ready,adjective,A1,,, +real,adjective,A1,,, +real,adverb,A1,,, +real estate,noun,B2,,, +realistic,adjective,B1,,, +reality,noun,B1,,, +realization/realisation,noun,B2,,, +realize/realise,verb,A2,,, +really,adverb,A1,,, +rear,adjective,B2,,, +rearrange,verb,B1,,, +reason,noun,A1,,, +reasonable,adjective,B1,,, +reasonably,adverb,B2,,, +rebel,noun,B2,,, +rebel,verb,B2,,, +rebellious,adjective,B2,,, +rebuild,verb,B1,,, +recall,verb,B1,,, +receipt,noun,A2,,,Shopping +receive,verb,A2,,, +recent,adjective,A2,,, +recently,adverb,A2,,, +reception,noun,B1,,, +receptionist,noun,A2,,,Personal identification +recession,noun,B2,,, +recipe,noun,B2,Food and drink,,Food and drink +recite,verb,B1,,, +reckon,verb,B2,,, +reclaim,verb,B1,,, +recognition,noun,B2,,, +recognize/recognise,verb,B1,,, +recollect,verb,B2,,, +recollection,noun,B2,,, +recommend,verb,B1,,, +recommendable,adjective,B2,,, +recommendation,noun,B2,,, +reconsider,verb,B2,,, +record,noun,B1,,, +record,verb,A2,,, +recording,noun,B1,,,"Free time, entertainment" +recover,verb,B1,,, +recovery,noun,B1,,, +recreation,noun,B2,,,"Free time, entertainment" +recruit,verb,B2,,, +rectangular,adjective,B2,,, +recycle,verb,A2,,, +recycled,adjective,B1,,, +recycling,noun,B1,,, +red,adjective,A1,,, +red,noun,A2,,, +redo,verb,B2,,, +reduce,verb,B1,,, +reduction,noun,B1,,, +redundant,adjective,B2,,, +reed,noun,B2,,, +reef,noun,B1,,, +refer,verb,A2,,, +referee,noun,B1,Hobbies and pastimes,, +reference,noun,B2,,, +referent,adjective,B2,,, +refinery,noun,B2,Work and Jobs,, +reflect,verb,A2,,, +reflection,noun,B1,,, +reflective,adjective,B2,,, +reform,noun,B2,"News, lifestyles and current affairs",, +refrain,noun,B2,,, +refresh,noun,B2,,, +refreshments,noun,B1,Food and drink,,Food and drink +refrigerator,noun,A2,Objects and rooms,,"House and home, environment" +refuge,noun,B2,"News, lifestyles and current affairs",, +refugee,noun,B2,"News, lifestyles and current affairs",, +refund,noun,B1,,, +refusal,noun,B1,,, +refuse,noun,B1,,, +refuse,verb,B1,,, +refute,verb,B2,,, +regain,verb,B1,,, +regard,noun,B2,,, +regard,verb,B1,,, +regarding,preposition,B1,,, +regardless,adverb,B2,,, +reggae,noun,B2,Arts,,"Free time, entertainment" +regime,noun,B2,,, +region,noun,B1,Nationalities and countries,,"House and home, environment" +regional,adjective,B1,,, +register,noun,B1,,, +register,verb,B1,,, +registration,noun,B1,,, +regret,noun,B2,,, +regret,verb,A2,,, +regrettably,adverb,B2,,, +regular,adjective,A2,,, +regularly,adverb,A2,,, +regulate,verb,B2,,, +regulation,noun,B1,,, +rehearsal,noun,B2,,,"Free time, entertainment" +reinforce,verb,B2,,, +reinforcement,noun,B2,,, +reject,verb,B1,,, +rejection,noun,B2,,, +rejoin,verb,B2,,, +relate,verb,B1,,, +related,adjective,B2,,, +relation,noun,B1,,,Relations with other people +relationship,noun,B1,,,Relations with other people +relative,adjective,B1,,, +relative,noun,B1,Family life,,Personal identification +relatively,adverb,B1,,, +relativity,noun,B2,,, +relax,verb,A2,,, +relaxation,noun,B2,Hobbies and pastimes,, +relaxed,adjective,A2,,, +relaxing,adjective,B1,,, +relay,noun,B2,,, +release,noun,A2,,, +release,verb,B1,,, +relevant,adjective,B2,,, +reliable,adjective,B1,,, +relic,noun,B2,,, +relief,noun,B2,,, +relieve,verb,B2,,, +relieved,adjective,B2,,, +religion,noun,B1,Nationalities and countries,,Personal identification +religious,adjective,B1,,, +reluctant,adjective,B2,,, +rely,verb,B1,,, +remain,verb,A2,,, +remainder,noun,B1,,, +remaining,adjective,B2,,, +remains,noun,B2,,, +remark,noun,B2,,, +remark,verb,B1,,, +remarkable,adjective,B1,,, +remarkably,adverb,B2,,, +remedy,noun,B1,Travel and services vocab,, +remember,verb,A1,,, +remembrance,noun,B1,,, +remind,verb,A2,,, +reminder,noun,B2,,, +remote,adjective,A2,,, +remote control,noun,B1,,, +remove,verb,B1,,, +renew,verb,B1,,, +rent,noun,A2,Travel and services vocab,,Services +rent,verb,A2,,, +rental,noun,B2,Travel and services vocab,,Services +reorganize/reorganise,verb,B2,,, +repaint,noun,B2,,, +repair,noun,A2,Travel and services vocab,, +repair,verb,A2,,, +repay,verb,B1,,, +repeat,verb,A1,,, +repeatedly,adverb,B1,,, +repertoire,noun,B2,,, +repetition,noun,B2,,, +replace,verb,A2,,, +replacement,noun,B2,,, +replica,noun,B2,Arts,,"Free time, entertainment" +reply,noun,A2,,, +reply,verb,B1,,, +report,noun,A2,,, +report,verb,B1,,, +reporter,noun,A1,Work and Jobs,Media,Personal identification +represent,verb,A2,,, +representative,noun,B1,,, +repress,verb,B2,,, +repression,noun,B2,,, +reprint,noun,B2,Books and literature,, +reproduce,verb,B1,,, +reprove,verb,B2,,, +republic,noun,B1,Nationalities and countries,, +reputation,noun,B1,,, +request,noun,A2,,, +request,verb,B1,,, +require,verb,B1,,, +requirement,noun,B1,,, +rescue,noun,B1,"News, lifestyles and current affairs",,Relations with other people +rescue,verb,B1,,, +research,noun,A2,Education,,Education +research,verb,B2,,, +researcher,noun,B1,Work and jobs,,Personal identification +resemble,verb,B1,,, +reservation,noun,B1,,,Travel +reserve,noun,B1,,, +reserve,verb,B1,,, +residence,noun,B2,Personal information,, +resident,adjective,B1,,, +resident,noun,B2,,, +residential,adjective,B1,,, +resign,verb,B2,,, +resignation,noun,B2,Work and Jobs,, +resist,verb,B1,,, +resistance,noun,B2,,, +resolution,noun,B2,,, +resolve,verb,B1,,, +resonant,adjective,B2,,, +resort,noun,B1,Holidays,,Travel +resource,noun,B1,,, +respect,noun,B1,,,Relations with other people +respect,verb,B1,,, +respectable,adjective,B1,,, +respectably,adverb,B2,,, +respected,adjective,B2,,, +respiration,noun,B2,,, +respiratory,adjective,B2,,, +respond,verb,B1,,, +response,noun,A2,,, +responsibility,noun,B1,,, +responsible,adjective,B1,,, +rest,noun,B1,Hobbies and pastimes,,"Free time, entertainment" +rest,verb,B1,,, +restaurant,noun,A1,"Things in the town, shops and shopping",,Food and drink +restore,verb,B1,,, +restrict,verb,B1,,, +restriction,noun,B2,,, +result,noun,A1,,, +result,verb,B1,,, +resume,verb,B2,,, +retail,noun,B1,,, +retailer,noun,B2,,, +retain,verb,B1,,, +retard,verb,B2,,, +retell,verb,B1,,, +retina,noun,B2,,, +retire,verb,A2,,, +retired,adjective,A2,,, +retirement,noun,B2,Work and Jobs,, +retreat,noun,B2,,, +retreat,verb,B2,,, +retrieve,verb,B2,,, +retrospect,noun,B1,,, +return,noun,A2,,, +return,verb,A2,,, +reunification,noun,B1,,, +reunify,verb,B1,,, +reunion,noun,A2,,, +reveal,verb,A2,,, +revelation,noun,B2,,, +revenge,noun,B2,,, +revenue,noun,B2,,, +reverence,noun,B2,,, +reverse,verb,B2,,, +review,noun,A1,Education,, +review,verb,B2,,, +revise,verb,B1,,, +revision,noun,B1,,, +revival,noun,B2,,, +revive,verb,B2,,, +revolution,noun,B2,,, +revolutionary,adjective,B2,,, +revolutionize/revolutionise,verb,B2,,, +revolve,verb,B2,,, +reward,noun,B1,Work and Jobs,, +reward,verb,B2,,, +rewrite,verb,B1,,, +rhinoceros,noun,B2,,, +rhyme,verb,B2,,, +rhythm,noun,A2,Arts,,"Free time, entertainment" +rhythmic,adjective,B2,,, +rib,noun,B2,,, +ribbon,noun,A1,,, +rice,noun,A1,Food and drink,,Food and drink +rich,adjective,A1,,, +rid,verb,B1,,, +riddle,noun,B2,,, +riddle,verb,B1,,, +ride,noun,A1,Ways of travelling,,Travel +ride,verb,A1,,, +rider,noun,B2,Ways of travelling,,Travel +ridge,noun,B2,,, +ridiculous,adjective,B1,,, +right,adjective,A1,,, +right,adverb,A1,,, +right,noun,A2,,, +righteousness,noun,B2,,, +right-hand,adjective,A2,,, +rightly,adverb,B2,,, +rim,noun,B2,,, +ring,noun,A2,Clothes,,Shopping +ring,verb,A1,,, +rip,verb,B2,,, +ripe,adjective,B1,,, +rise,noun,B1,,, +rise,verb,B1,,, +risk,noun,B1,,, +risk,verb,B2,,, +risky,adjective,B2,,, +rite,noun,B2,"News, lifestyles and current affairs",, +ritual,noun,B2,"News, lifestyles and current affairs",, +rival,noun,B2,,,Personal identification +river,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +road,noun,A2,"Things in the town, shops and shopping",,Places +roadside,noun,B1,"Things in the town, shops and shopping",,"House and home, environment" +roam,noun,B2,,, +roar,verb,B2,,, +roast,adjective,B2,,, +roast,verb,A2,,, +rob,verb,A2,,, +robbery,noun,A2,"News, lifestyles and current affairs",,Relations with other people +robin,noun,A2,,, +robot,noun,B1,Scientific development,, +rock,noun,A2,,, +rock,verb,B2,,, +rocket,noun,B2,,, +rocky,adjective,B2,,, +role,noun,A1,,, +roll,noun,A2,,, +roll,verb,B2,,, +rolling,adjective,B1,,, +romance,noun,A2,,, +romantic,adjective,A2,,, +roof,noun,A2,Objects and rooms,,"House and home, environment" +room,noun,A1,Objects and rooms,,"House and home, environment" +room,verb,B1,,, +roommate,noun,B2,,,Relations with other people +root,noun,A2,,, +rope,noun,A2,Objects and rooms,,Shopping +rose,noun,A1,,, +rosy,adjective,B2,,, +rotten,adjective,B1,,, +rough,adjective,B1,,, +roughly,adverb,A2,,, +round,adjective,B1,,, +round,adverb,A2,,, +round,noun,B1,,, +round,preposition,B2,,, +round,verb,B2,,, +roundabout,noun,A2,,,Travel +route,noun,B2,Ways of travelling,,Travel +routine,noun,B1,,, +row,noun,A1,,,Travel +row,verb,B2,,, +royal,adjective,A2,,, +royalty,noun,B2,,, +rub,verb,B2,,, +rubber,noun,B1,,, +rubbish,noun,B1,,, +rubble,noun,B2,,, +rude,adjective,A1,,, +rudely,adverb,B1,,, +rug,noun,B2,Objects and rooms,,"House and home, environment" +rugby,noun,A2,,,"Free time, entertainment" +ruin,noun,B1,,,"House and home, environment" +ruin,verb,A2,,, +ruinous,adjective,B2,,, +rule,noun,A1,,, +rule,verb,B2,,, +ruler,noun,A1,,,Shopping +rumor/rumour,noun,A2,,, +run,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +run,verb,A1,,, +runaway,noun,B1,"News, lifestyles and current affairs",,"House and home, environment" +runner,noun,A2,,,Personal identification +running,noun,A2,,,"Free time, entertainment" +runway,noun,B1,Ways of travelling,,Travel +rural,adjective,B2,,, +rush,noun,A2,,, +rush,verb,B1,,, +rush hour,noun,B2,,,Travel +rusty,adjective,B2,,, +'s,be-verb,A1,,, +sack,verb,B2,,, +sacred,adjective,B1,,, +sad,adjective,A1,,, +sadly,adverb,A2,,, +sadness,noun,B1,,, +safari,noun,B1,Travel and services vocab,,"Free time, entertainment" +safe,adjective,A2,,, +safeguard,noun,B1,,, +safeguard,verb,B2,,, +safely,adverb,B1,,, +safety,noun,B1,,, +sag,noun,B2,,, +sage,noun,B2,,, +sail,verb,B2,,, +sailing,noun,A2,,,"Free time, entertainment" +sailor,noun,A1,Work and Jobs,,Personal identification +sake,noun,A2,,, +salad,noun,A1,Food and drink,,Food and drink +salary,noun,B2,Work and Jobs,,Daily life +sale,noun,A1,Shopping,,Shopping +salesman,noun,B1,Work and Jobs,,Personal identification +salesmanship,noun,B2,Work and Jobs,, +salesperson,noun,B2,Work and Jobs,,Personal identification +saleswoman,noun,B2,Work and Jobs,,Personal identification +salmon,noun,B1,Food and drink,,Food and drink +salon,noun,B2,,,Services +salsa,noun,B2,Food and drink,,Food and drink +salt,noun,A2,Food and drink,,Food and drink +salty,adjective,B2,,, +same,adjective,A1,,, +same,adverb,A1,,, +same,pronoun,A1,,, +sample,noun,A2,Shopping,,Services +sand,noun,B1,,, +sandal,noun,B1,Clothes,,Shopping +sandstone,noun,B2,,, +sandwich,noun,A1,Food and drink,,Food and drink +sandy,adjective,A2,,, +sanitary,adjective,B2,,, +sanitation,noun,B2,,, +satellite,noun,B1,"News, lifestyles and current affairs",, +satisfaction,noun,B1,,, +satisfactory,adjective,B2,,, +satisfied,adjective,B1,,, +satisfy,verb,A2,,, +Saturday,noun,A1,,, +sauce,noun,A2,,,Food and drink +saucepan,noun,B1,Objects and rooms,,Shopping +saucer,noun,B1,Objects and rooms,,Shopping +sausage,noun,A2,,,Food and drink +save,verb,A1,,, +saving/savings,noun,B2,,, +saw,noun,A1,Objects and rooms,, +saw,verb,B2,,, +say,noun,B2,,, +say,verb,A1,,, +scale,noun,A2,,, +scan,noun,B1,,, +scan,verb,B2,,, +scandal,noun,B2,Media,, +scar,noun,B2,,, +scarcely,adverb,B2,,, +scare,verb,B1,,, +scared,adjective,B1,,, +scarf,noun,A2,,,Shopping +scarlet,noun,B2,,, +scary,adjective,B1,,, +scatter,verb,B1,,, +scene,noun,A2,Books and literature,,"Free time, entertainment" +scenery,noun,A2,,, +scenic,adjective,B1,,, +scent,noun,B2,,, +schedule,noun,A2,Travel and services vocab,,Daily life +schedule,verb,B2,,, +scheduled,adjective,B2,,, +scheme,noun,B2,,, +scholar,noun,B1,Education,Work and Jobs,Education +scholarship,noun,B1,Education,,Education +scholasticism,noun,B2,Education,, +school,noun,A1,"Things in the town, shops and shopping",, +schoolchild,noun,A2,,,Education +schoolgirl,noun,B2,,, +schoolmate,noun,B1,Education,,Relations with other people +schoolteacher,noun,B1,Education,Work and Jobs,Personal identification +schoolwork,noun,A2,Education,,Education +science,noun,A1,Education,,Education +science fiction,noun,B1,Books and literature,,"Free time, entertainment" +scientific,adjective,A2,,, +scientifically,adverb,B2,,, +scientist,noun,A1,Work and Jobs,,Personal identification +scissors,noun,A2,,,Shopping +scold,verb,B1,,, +scooter,noun,B2,Ways of travelling,,Travel +scope,noun,B1,,, +score,noun,B1,Education,, +score,verb,B1,,, +scramble,verb,B2,,, +scratch,noun,B1,,, +scratch,verb,B2,,, +scream,noun,A2,,, +scream,verb,B1,,, +screen,noun,A2,Objects and rooms,,"Free time, entertainment" +screen,verb,B2,,, +screw,noun,A2,,, +screw,verb,B2,,, +scribble,noun,B2,,, +script,noun,A2,,, +scrooge,noun,B2,,, +scuba,noun,B2,Leisure activities,,"Free time, entertainment" +sculpture,noun,B1,Arts,,"Free time, entertainment" +scythe,noun,B2,,, +sea,noun,A1,Nationalities and countries,,"House and home, environment" +seafood,noun,A2,Food and drink,,Food and drink +seal,noun,B2,,, +search,noun,A2,,, +search,verb,B1,,, +seaside,noun,A2,Nationalities and countries,,Places +season,noun,B1,,, +seasonal,adjective,B2,,, +seat,noun,A1,Objects and rooms,,"Free time, entertainment" +seawater,noun,B1,,, +seaweed,noun,B1,Food and drink,,Food and drink +second,adjective,A1,,, +second,adverb,B1,,, +second,noun,A2,,, +second,pronoun,A2,,, +second person,noun,B2,,,Personal identification +secondary,adjective,B2,,, +secondary school,noun,B1,Education,,Education +second-hand,adjective,B1,,, +second-hand,adverb,B1,,, +secondly,adverb,B2,,, +secret,adjective,B1,,, +secret,noun,A2,,, +secretary,noun,A2,,,Personal identification +secretly,adverb,B1,,, +section,noun,A1,,, +sector,noun,B2,,, +secure,adjective,B1,,, +security,noun,B1,,,Services +see,verb,A1,,, +seed,noun,A2,,, +seek,verb,A2,,, +seem,verb,A2,,, +seesaw,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +segment,noun,B2,,, +seize,verb,B1,,, +seldom,adverb,B2,,, +select,adjective,B1,,, +select,verb,B2,,, +selection,noun,B1,,, +self,noun,A1,,, +self-confidence,noun,B2,,, +self-confident,adjective,B2,,, +selfish,adjective,B1,,, +selfless,adjective,B2,,, +self-service,adjective,B1,,, +sell,verb,A1,,, +seller,noun,B2,Work and Jobs,,Personal identification +semester,noun,A2,Education,,Education +semicolon,noun,B2,,,Language +semi-final,noun,B2,,, +seminar,noun,B2,Education,,Education +senator,noun,B2,,, +send,verb,A2,,, +senior,adjective,A2,,, +senior,noun,A2,,, +sensation,noun,B1,,, +sense,noun,A2,,, +sense,verb,B2,,, +sensible,adjective,B2,,, +sensitive,adjective,B2,,, +sentence,noun,A1,Education,,Education +sentence,verb,B2,,, +separate,adjective,A2,,, +separate,verb,B2,,, +separately,adverb,B2,,, +separation,noun,B1,,, +September,noun,A1,,, +sequence,noun,B1,,, +serene,adjective,B2,,, +serial,adjective,B2,,, +series,noun,B1,,, +serious,adjective,B1,,, +seriously,adverb,A2,,, +servant,noun,B2,,,Personal identification +serve,verb,A2,,, +server,noun,B1,,, +service,noun,B1,Travel and services vocab,,Services +service,verb,B1,,, +session,noun,B1,,, +set,noun,A2,,, +set,verb,A1,,, +setback,noun,B2,,, +setting,noun,B1,,, +settle,verb,B1,,, +settlement,noun,B1,Nationalities and countries,, +settler,noun,B1,,, +seven,number,A1,,, +seventeen,number,A1,,, +seventy,number,A1,,, +several,determiner,A2,,, +several,pronoun,A2,,, +severe,adjective,B1,,, +severely,adverb,B1,,, +sew,verb,A2,,, +sex,noun,B1,,, +sexism,noun,B2,"News, lifestyles and current affairs",, +sexual,adjective,B2,,, +sexy,adjective,B2,,, +shabby,adjective,B2,,, +shade,noun,A2,,, +shadow,noun,A2,,, +shadow,verb,B1,,, +shadowy,adjective,B1,,, +shake,noun,A1,,, +shake,verb,B1,,, +shaken,adjective,B2,,, +Shakespearean,adjective,B2,,, +shaky,adjective,B2,,, +shall,modal auxiliary,A2,,, +shallow,adjective,B1,,, +shame,noun,B1,,, +shameful,adjective,B1,,, +shampoo,noun,A2,Objects and rooms,,Shopping +shape,noun,A2,,, +shape,verb,B1,,, +share,noun,A2,,, +share,verb,A1,,, +sharp,adjective,B1,,, +sharp,adverb,B2,,, +sharply,adverb,B2,,, +shatter,verb,B2,,, +shave,verb,B1,,, +she,pronoun,A1,,, +shed,noun,B2,,,"House and home, environment" +sheep,noun,A1,,, +sheer,adjective,B1,,, +sheet,noun,B1,Objects and rooms,, +shelf,noun,A1,Objects and rooms,,"Free time, entertainment" +shell,noun,A2,,, +shell,verb,B2,,, +shelter,noun,B1,"Things in the town, shops and shopping",,"House and home, environment" +sheriff,noun,B1,Work and Jobs,"News, lifestyles and current affairs",Personal identification +shield,noun,B2,,, +shift,noun,B2,,, +shift,verb,B1,,, +shine,verb,A2,,, +shiny,adjective,B1,,, +ship,noun,A1,Ways of travelling,,Travel +ship,verb,B1,,, +shipping,noun,B2,Work and Jobs,,Travel +shipwreck,noun,B2,"News, lifestyles and current affairs",, +shirt,noun,A1,Clothes,,Shopping +shiver,verb,B1,,, +shock,noun,A2,,, +shock,verb,B2,,, +shocked,adjective,B1,,, +shocking,adjective,B1,,, +shoe,noun,A1,Clothes,,Shopping +shoot,verb,A2,,, +shooting,noun,B2,,, +shop,noun,A1,"Things in the town, shops and shopping",,Daily life +shop,verb,B1,,, +shop assistant,noun,A2,,,Personal identification +shopkeeper,noun,B2,,,Personal identification +shoplift,verb,B2,,, +shoplifter,noun,B2,"News, lifestyles and current affairs",, +shoplifting,noun,B2,"News, lifestyles and current affairs",, +shopper,noun,B1,Shopping,,Shopping +shopping,noun,A1,Shopping,,Shopping +shore,noun,A2,,, +short,adjective,A1,,, +short,adverb,A1,,, +short/shorts,noun,A2,,, +shortage,noun,B1,"News, lifestyles and current affairs",, +shortly,adverb,B1,,, +shortness,noun,B2,,, +short-term,adjective,B2,,, +shot,noun,A2,,, +should,modal auxiliary,A1,,, +shoulder,noun,A1,,,Health and body care +shout,noun,A2,,, +shout,verb,B1,,, +show,noun,A2,,,"Free time, entertainment" +show,verb,A1,,, +showbiz,noun,B2,Idiomatic expressions,Hobbies and pastimes,"Free time, entertainment" +showcase,noun,B2,Shopping,,Shopping +shower,noun,A1,Objects and rooms,,"House and home, environment" +shower,verb,B2,,, +shrimp,noun,B1,,, +shrink,noun,B2,,, +shrink,verb,B2,,, +shrug,verb,B2,,, +shut,adjective,B1,,, +shut,verb,A2,,, +shy,adjective,A1,,, +sick,adjective,A1,,, +sickness,noun,B1,Travel and services vocab,,Health and body care +side,noun,A1,,, +sidewalk,noun,B1,,, +sigh,noun,B1,,, +sigh,verb,B2,,, +sight,noun,A1,,, +sightseeing,noun,A2,,,"Free time, entertainment" +sign,noun,A1,Personal information,,Personal identification +sign,verb,B1,,, +signal,noun,B1,,, +signature,noun,B1,,, +significance,noun,B1,,, +significant,adjective,A2,,, +significantly,adverb,B2,,, +signify,verb,B2,,, +signpost,noun,B1,,, +silence,noun,A2,,, +silent,adjective,B1,,, +silently,adverb,A2,,, +silk,noun,B1,Clothes,,Shopping +silly,adjective,A2,,, +silver,adjective,A2,,, +silver,noun,A2,,, +silverware,noun,B2,Objects and rooms,,Shopping +similar,adjective,A2,,, +similarity,noun,B1,,, +similarly,adverb,B1,,, +simple,adjective,A2,,, +simplification,noun,B2,,, +simplify,verb,B1,,, +simply,adverb,A2,,, +simultaneous,adjective,B2,,, +simultaneously,adverb,B1,,, +since,adverb,B2,,, +since,conjunction,B1,,, +since,preposition,A2,,, +sincere,adjective,B2,,, +sincerity,noun,B2,,, +sing,verb,A1,,, +singer,noun,A1,Work and Jobs,Hobbies and pastimes,Personal identification +singing,noun,A2,,,"Free time, entertainment" +single,adjective,A2,,, +single,noun,B1,Family life,,Personal identification +singular,adjective,A2,,, +singular,noun,A2,,,Language +sink,noun,A2,,,"House and home, environment" +sink,verb,B1,,, +sir,noun,A1,Travel and services vocab,,Personal identification +sister,noun,A1,Family life,,Personal identification +sister-in-law,noun,B2,,,Personal identification +sit,verb,A1,,, +site,noun,A1,,, +sitting room,noun,A2,,,"House and home, environment" +situation,noun,A2,,, +six,number,A1,,, +sixteen,number,A1,,, +sixty,number,A1,,, +size,noun,A1,Clothes,,"Free time, entertainment" +skate,noun,A2,,,"Free time, entertainment" +skate,verb,B1,,, +skateboard,noun,B2,Leisure activities,,"Free time, entertainment" +skateboarder,noun,B2,Leisure activities,,"Free time, entertainment" +skateboarding,noun,A2,,,"Free time, entertainment" +skating,noun,A2,,,"Free time, entertainment" +skeleton,noun,B1,,,Health and body care +sketch,verb,B2,,, +ski,noun,A2,Leisure activities,,"Free time, entertainment" +ski,verb,B1,,, +skiing,noun,A2,Leisure activities,,"Free time, entertainment" +skill,noun,A1,,, +skilled,adjective,B2,,, +skillful/skilful,adjective,B2,,, +skillfully/skilfully,adverb,B2,,, +skim,verb,B2,,, +skin,noun,B1,,,Health and body care +skip,verb,B2,,, +skirt,noun,A1,Clothes,,Shopping +sky,noun,A1,,,"House and home, environment" +skylark,noun,B2,,, +skyscraper,noun,B1,"Things in the town, shops and shopping",,"House and home, environment" +skyward,adverb,B2,,, +slam,verb,B2,,, +slang,noun,B2,,,Language +slap,noun,B2,,, +slap,verb,B2,,, +slash,noun,B2,,, +slaughter,noun,B2,"News, lifestyles and current affairs",, +slave,noun,A2,"News, lifestyles and current affairs",,Relations with other people +slavery,noun,B1,"News, lifestyles and current affairs",,Relations with other people +sleep,noun,B1,,, +sleep,verb,A1,,, +sleepless,adjective,A2,,, +sleepy,adjective,A2,,, +sleeve,noun,B1,Clothes,,Shopping +slice,noun,A2,Food and drink,,Food and drink +slice,verb,B2,,, +slide,noun,A2,,, +slide,verb,B2,,, +slight,adjective,B2,,, +slight,noun,B1,,, +slightly,adverb,B1,,, +slim,adjective,A2,,, +slip,noun,B1,,, +slip,verb,B1,,, +sliver,noun,B2,,, +slogan,noun,B1,"News, lifestyles and current affairs",, +slope,noun,B1,"Things in the town, shops and shopping",,"House and home, environment" +sloppy,adjective,B2,,, +slot,noun,B1,,, +slow,adjective,A1,,, +slow,adverb,B1,,, +slow,verb,B1,,, +slowly,adverb,A2,,, +small,adjective,A1,,, +smart,adjective,A1,,, +smash,verb,B2,,, +smell,noun,A1,,,Food and drink +smell,verb,B1,,, +smile,noun,A1,,, +smile,verb,B1,,, +smith,noun,A1,Work and Jobs,,Personal identification +smoke,noun,A1,,,Food and drink +smoke,verb,A2,,, +smoker,noun,B1,Hobbies and pastimes,,Personal identification +smokestack,noun,B2,"Things in the town, shops and shopping",,"House and home, environment" +smoking,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +smooth,adjective,A2,,, +smoothly,adverb,A2,,, +snack,noun,A2,,,Food and drink +snake,noun,A1,,, +snap,verb,B2,,, +sneak,verb,B2,,, +sneer,noun,B2,,, +sneeze,noun,B1,,, +sneeze,verb,B2,,, +sniff,verb,B2,,, +snore,noun,B2,,, +snore,verb,B2,,, +snow,noun,A1,Media,,Weather +snow,verb,A2,,, +snowball,noun,B2,Leisure activities,,"Free time, entertainment" +snowboard,noun,B1,Leisure activities,,"Free time, entertainment" +snowboarding,noun,A2,,,"Free time, entertainment" +snowstorm,noun,B1,Media,,Weather +snowy,adjective,A1,,, +so,adverb,A2,,, +so,conjunction,A1,,, +soak,noun,B2,,, +soak,verb,B2,,, +soaked,adjective,B2,,, +soaking,adjective,B2,,, +soap,noun,A2,,,Shopping +soap opera,noun,B1,Hobbies and pastimes,Media,"Free time, entertainment" +soar,verb,B2,,, +sob,verb,B2,,, +so-called,adjective,B2,,, +soccer,noun,A1,Leisure activities,,"Free time, entertainment" +sociable,adjective,B2,,, +social,adjective,A1,,, +social networking,noun,B1,Hobbies and pastimes,,"Free time, entertainment" +socialize/socialise,verb,B2,,, +socially,adverb,B1,,, +society,noun,A2,Nationalities and countries,,Places +sock,noun,A2,,,Shopping +soda,noun,A2,Food and drink,,Food and drink +sofa,noun,A1,Objects and rooms,,"House and home, environment" +soft,adjective,A2,,, +soft drink,noun,A2,,,Food and drink +softly,adverb,A2,,, +softness,noun,B2,,, +software,noun,A2,Technical and legal language,,"Free time, entertainment" +soil,noun,B2,,, +soil,verb,B1,,, +solar,adjective,B2,,, +soldier,noun,A2,"News, lifestyles and current affairs",,Relations with other people +solid,adjective,B1,,, +solidity,noun,B2,,, +soliloquy,noun,B2,,, +solo,adjective,B2,,, +solo,adverb,B2,,, +solo,noun,B2,,, +solution,noun,A2,,, +solve,verb,A1,,, +solvent,noun,B2,,, +some,determiner,A1,,, +some,pronoun,A1,,, +somebody,pronoun,A2,,, +someday,adverb,A2,,, +somehow,adverb,B1,,, +someone,pronoun,A1,,, +someplace,adverb,B1,,, +something,pronoun,A1,,, +sometime,adverb,B1,,, +sometimes,adverb,B1,,, +somewhat,adverb,B2,,, +somewhere,adverb,A2,,, +son,noun,A1,Family life,,Personal identification +song,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +son-in-law,noun,B2,,,Personal identification +sonnet,noun,B2,Education,, +soon,adverb,A1,,, +soothe,verb,B1,,, +sophisticated,adjective,B2,,, +sophomore,noun,B1,Education,,Education +sore,adjective,B1,,, +sorrow,noun,B1,,, +sorry,adjective,A1,,, +sort,noun,B1,,, +sort,verb,B2,,, +soul,noun,B1,,, +sound,adjective,B2,,, +sound,noun,A2,,, +sound,verb,A2,,, +soundtrack,noun,B2,,,"Free time, entertainment" +soup,noun,A1,Food and drink,,Food and drink +sour,adjective,B1,,, +source,noun,A2,,, +south,adjective,A2,,, +south,adverb,A2,,, +south,noun,A2,,, +southeast,adjective,B1,,, +southeast,noun,B1,,, +southern,adjective,B1,,, +southward,adverb,B2,,, +southwest,adjective,B1,,, +southwest,noun,B1,,, +souvenir,noun,B1,Travel and services vocab,,Travel +Soviet,noun,B2,Nationalities and countries,"News, lifestyles and current affairs", +soybean,noun,B2,Food and drink,,Food and drink +spa,noun,B2,Leisure activities,,"Free time, entertainment" +space,noun,A2,,, +spaceship,noun,A2,"News, lifestyles and current affairs",,Travel +spaghetti,noun,A2,Food and drink,,Food and drink +span,verb,B2,,, +spare,adjective,B2,,, +spare,verb,B2,,, +sparerib,noun,B2,Food and drink,,Food and drink +spark,noun,B2,,, +sparkle,noun,B1,,, +sparkling,adjective,B2,,, +sparrow,noun,B2,,, +speak,verb,A1,,, +speaker,noun,A2,,,Personal identification +special,adjective,A1,,, +specialist,noun,B1,Work and Jobs,,Personal identification +specialize/specialise,verb,B1,,, +specially,adverb,B1,,, +specialty,noun,B2,,, +species,noun,B2,,, +specific,adjective,A2,,, +specifically,adverb,B2,,, +specify,verb,B2,,, +spectacle,noun,B2,Hobbies and pastimes,, +spectacular,adjective,B1,,, +spectator,noun,B1,Hobbies and pastimes,, +speech,noun,A1,"News, lifestyles and current affairs",, +speed,noun,A2,,, +speed,verb,B1,,, +speeder,noun,B2,"News, lifestyles and current affairs",, +spell,noun,A1,,, +spell,verb,A2,,, +spellbound,adjective,B2,,, +spelling,noun,B1,Education,,Education +spend,verb,A1,,, +sphere,noun,B1,,, +spice,noun,B1,Food and drink,,Food and drink +spicy,adjective,B1,,, +spider,noun,B1,,, +spill,verb,A2,,, +spin,verb,B2,,, +spinach,noun,B1,Food and drink,,Food and drink +spiral,adjective,B1,,, +spirit,noun,B1,,, +spiritual,adjective,B1,,, +spite,noun,B2,,, +splash,noun,B2,,, +splash,verb,A2,,, +splatter,noun,B2,,, +split,adjective,A2,,, +split,noun,B1,,, +split,verb,B2,,, +spoil,verb,B1,,, +spokesman,noun,B2,"News, lifestyles and current affairs",,Personal identification +spokeswoman,noun,B2,"News, lifestyles and current affairs",,Personal identification +sponge,noun,B1,,, +sponsor,noun,B1,Work and Jobs,,Personal identification +sponsor,verb,B2,,, +spoon,noun,A2,,,Shopping +sport,noun,A1,Hobbies and lifestyles,,"Free time, entertainment" +sports,adjective,B1,,, +sports center/sports centre,noun,A2,,,"House and home, environment" +sportsmanship,noun,B1,,,"Free time, entertainment" +spot,noun,A1,,, +spot,verb,B2,,, +spray,noun,B2,,, +spray,verb,B2,,, +spread,noun,A2,,, +spread,verb,B2,,, +spreadsheet,noun,B2,,, +spring,noun,A1,,, +sprint,noun,B2,Leisure activities,,"Free time, entertainment" +spur,noun,B2,,, +spy,noun,A1,,,Personal identification +squad,noun,B2,,, +square,adjective,A2,,, +square,noun,A2,,, +squash,noun,B2,,, +squash,verb,B2,,, +squeeze,verb,B2,,, +stab,verb,B2,,, +stability,noun,B2,,, +stable,adjective,B1,,, +stack,noun,B2,,, +stadium,noun,A2,,,"House and home, environment" +staff,noun,A2,,,Personal identification +stage,noun,A1,Hobbies and pastimes,,"Free time, entertainment" +stagger,noun,B2,,, +stain,noun,B2,,, +stain,verb,B2,,, +stair,noun,A2,Objects and rooms,,"House and home, environment" +stake,noun,B2,,, +stall,noun,B1,"Things in the town, shops and shopping",,Places +stammer,verb,B2,,, +stamp,noun,A2,,,Relations with other people +stamp,verb,B2,,, +stand,noun,A1,,, +stand,verb,A2,,, +standard,adjective,B2,,, +standard,noun,B1,,, +standby,adjective,B2,,, +standstill,noun,B2,,, +stanza,noun,B2,Arts,,"Free time, entertainment" +star,noun,A1,,,"Free time, entertainment" +star,verb,B1,,, +stare,verb,B1,,, +start,noun,A1,,, +start,verb,A1,,, +startle,verb,B2,,, +starvation,noun,B2,"News, lifestyles and current affairs",, +starve,verb,B2,,, +starving,adjective,B2,,, +state,adjective,B2,,, +state,noun,A2,,, +state,verb,B2,,, +statement,noun,A2,"News, lifestyles and current affairs",, +statesman,noun,B2,"News, lifestyles and current affairs",Work and Jobs,Personal identification +statewide,adverb,B2,,, +station,noun,A1,"Things in the town, shops and shopping",,Travel +statistics,noun,B2,,,Education +statue,noun,A2,"Things in the town, shops and shopping",, +status,noun,B1,Work and Jobs,, +stay,noun,B1,Travel and services vocab,,Travel +stay,verb,A1,,, +steadily,adverb,B1,,, +steady,adjective,B1,,, +steak,noun,A2,Food and drink,,Food and drink +steal,verb,A2,,, +steam,noun,B1,,, +steel,noun,B1,,, +steely,adjective,B2,,, +steep,adjective,B1,,, +steer,verb,B2,,, +steering wheel,noun,B2,,,Travel +stem,verb,B1,,, +step,noun,A2,,, +step,verb,A1,,, +stepfather,noun,B2,,,Personal identification +stepmother,noun,B2,,,Personal identification +stereotype,noun,B2,,, +stern,adjective,B2,,, +stew,noun,B2,Food and drink,,Food and drink +stick,noun,B2,,, +stick,verb,B1,,, +sticker,noun,B1,,, +sticky,adjective,B1,,, +stiff,adjective,B2,,, +still,adjective,A1,,, +still,adverb,A2,,, +stimulant,noun,B2,Travel and services vocab,,Health and body care +stimulate,verb,B2,,, +stimulation,noun,B2,,, +stingy,adjective,B2,,, +stink,verb,B2,,, +stir,verb,B1,,, +stitch,noun,B2,,, +stock,noun,B2,,, +stock market,noun,B2,,, +stockpile,noun,B2,"News, lifestyles and current affairs",, +stomach,noun,A2,Travel and services vocab,,Health and body care +stomachache,noun,A2,,,Health and body care +stone,noun,A1,,, +stonework,noun,B2,,, +stool,noun,B2,,, +stop,noun,A1,,, +stop,verb,A1,,, +stopover,noun,B2,,, +stopwatch,noun,B2,,, +storage,noun,B1,,, +store,noun,A1,"Things in the town, shops and shopping",, +store,verb,B2,,, +storm,noun,A2,Media,,Weather +stormy,adjective,B1,,, +story,noun,A1,Books and literature,,"Free time, entertainment" +storyteller,noun,B1,Work and Jobs,,Personal identification +stove,noun,A2,Objects and rooms,,"House and home, environment" +straight,adjective,A2,,, +straight,adverb,A1,,, +straighten,verb,B2,,, +straightforward,adjective,B2,,, +strain,noun,B1,,, +strain,verb,B2,,, +strait,noun,B2,,, +strand,noun,B2,,, +strange,adjective,A1,,, +strangely,adverb,B1,,, +stranger,noun,A2,,, +strangle,verb,B2,,, +strategic,adjective,B1,,, +strategy,noun,A2,Education,, +straw,noun,B1,,, +strawberry,noun,B1,Food and drink,,Food and drink +stream,noun,B1,,, +stream,verb,B1,,, +street,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +strength,noun,A2,,, +strengthen,verb,B1,,, +stress,noun,B1,,,Health and body care +stress,verb,B2,,, +stressed,adjective,B1,,, +stressful,adjective,B1,,, +stretch,verb,B1,,, +stricken,adjective,B1,,, +strict,adjective,A1,,, +strictly,adverb,B2,,, +stride,verb,B2,,, +strike,noun,A2,,, +strike,verb,B1,,, +striking,adjective,B2,,, +string,noun,A2,,, +strip,noun,B1,,, +strip,verb,B2,,, +stripe,noun,B1,,, +strive,verb,B2,,, +stroke,noun,B2,,, +stroke,verb,B2,,, +strong,adjective,A1,,, +strongly,adverb,A2,,, +structure,noun,A2,,, +struggle,noun,B1,,, +struggle,verb,B2,,, +stubborn,adjective,B1,,, +stubbornly,adverb,B2,,, +stuck,adjective,B1,,, +student,noun,A1,Education,,Education +studio,noun,B1,"Things in the town, shops and shopping",,Places +study,noun,A2,Education,,Education +study,verb,A1,,, +stuff,noun,A2,,, +stuff,verb,B2,,, +stuffed,adjective,B1,,, +stumble,verb,B1,,, +stun,verb,B1,,, +stunning,adjective,B1,,, +stupid,adjective,B1,,, +style,noun,A2,,, +stylish,adjective,B1,,, +stylist,noun,B2,Work and Jobs,,Personal identification +subconscious,adjective,B1,,, +subcontinent,noun,B2,Nationalities and countries,, +subculture,noun,B2,,, +subdivision,noun,B2,,, +subject,noun,A1,,,Education +subjunctive,noun,B2,Education,, +submarine,noun,B1,"News, lifestyles and current affairs",, +submit,verb,B2,,, +subplot,noun,B2,Books and literature,, +subside,verb,B2,,, +substance,noun,B2,,, +substantial,adjective,B1,,, +substitute,noun,B1,,, +substitute,verb,B2,,, +subtitle,noun,B2,Film,, +subtle,adjective,B2,,, +subtract,verb,B2,,, +suburb,noun,B2,,,"House and home, environment" +subway,noun,A1,"Things in the town, shops and shopping",,Travel +succeed,verb,A2,,, +success,noun,A2,,, +successful,adjective,A1,,, +successfully,adverb,A2,,, +successive,adjective,B2,,, +such,determiner,A2,,, +such,pronoun,A2,,, +suck,verb,B2,,, +sudden,adjective,A2,,, +suddenly,adverb,B1,,, +sue,verb,B2,,, +suffer,verb,B1,,, +suffering,noun,B2,,, +sufficient,adjective,B1,,, +sufficiently,adverb,B2,,, +suffix,noun,B1,Education,, +sugar,noun,A1,Food and drink,,Food and drink +suggest,verb,A2,,, +suggestion,noun,A1,,, +suicide,noun,B1,"News, lifestyles and current affairs",, +suit,noun,A2,,,Shopping +suit,verb,A2,,, +suitable,adjective,A2,,, +suitably,adverb,B2,,, +suitcase,noun,A2,Travel and services vocab,,Travel +sulfur/sulphur,noun,B2,,, +sum,noun,A1,,, +summarize/summarise,verb,B1,,, +summary,noun,A2,Education,,Education +summer,noun,A1,,, +summit,noun,B1,,, +sun,noun,A1,,,Weather +sunbathe,verb,B1,,, +sunbeam,noun,B2,,, +Sunday,noun,A1,,, +sundial,noun,B1,,, +sunflower,noun,A2,,, +sunglasses,noun,A2,,,Shopping +sunlight,noun,A2,,, +sunny,adjective,A1,,, +sunrise,noun,B1,,,Weather +sunset,noun,B1,,,Weather +sunshine,noun,A1,,,Weather +super,adjective,A1,,, +superb,adjective,B2,,, +superintendent,noun,B2,Work and Jobs,,Personal identification +superior,adjective,B1,,, +superlative,noun,A2,,, +supermarket,noun,A1,"Things in the town, shops and shopping",,Shopping +supernatural,adjective,B2,,, +superstar,noun,A2,Media,,Relations with other people +superstition,noun,B1,,, +supervise,verb,B2,,, +supervision,noun,B2,,, +supervisor,noun,B2,Work and Jobs,,Personal identification +supper,noun,A2,,,Food and drink +supplement,noun,B2,,, +supplier,noun,B2,,, +supply,noun,B1,Work and Jobs,, +supply,verb,B2,,, +support,noun,A2,,, +support,verb,B1,,, +supporter,noun,B1,,, +supportive,adjective,B1,,, +suppose,verb,B1,,, +supposedly,adverb,B1,,, +suppress,verb,B2,,, +sure,adjective,A1,,, +sure,adverb,A2,,, +surely,adverb,B1,,, +surf,noun,A1,,,"Free time, entertainment" +surf,verb,A2,,, +surface,noun,B1,,, +surfing,noun,A2,,,"Free time, entertainment" +surge,noun,B2,,, +surgeon,noun,B1,Travel and services vocab,Work and Jobs, +surgery,noun,B1,Travel and services vocab,, +surname,noun,A2,,,Personal identification +surprise,noun,A1,,, +surprise,verb,B1,,, +surprised,adjective,A2,,, +surprising,adjective,A2,,, +surprisingly,adverb,B1,,, +surrender,verb,B2,,, +surround,verb,B1,,, +surrounding,adjective,B1,,, +surroundings,noun,B2,,, +surveillance,noun,B2,,, +survey,noun,A1,,, +survival,noun,B1,,, +survive,verb,A2,,, +survivor,noun,B1,"News, lifestyles and current affairs",,Personal identification +suspect,noun,B1,"News, lifestyles and current affairs",, +suspect,verb,B2,,, +suspend,verb,B2,,, +suspicion,noun,B1,"News, lifestyles and current affairs",, +suspicious,adjective,B2,,, +suspiciously,adverb,B2,,, +sustain,verb,B2,,, +swallow,verb,A2,,, +swan,noun,B2,,, +swarm,noun,B1,,, +swear,verb,B1,,, +sweat,noun,B1,,,Health and body care +sweat,verb,A2,,, +sweater,noun,A2,,,Shopping +sweatshirt,noun,B1,Clothes,,Shopping +sweep,verb,B2,,, +sweet,adjective,A1,,, +sweet,noun,A2,,, +sweetheart,noun,A2,Family life,, +swell,verb,B1,,, +swift,adjective,B2,,, +swim,noun,A1,Leisure activities,,"Free time, entertainment" +swim,verb,A1,,, +swimmer,noun,B1,Leisure activities,Work and Jobs,Personal identification +swimming,noun,A1,Leisure activities,,"Free time, entertainment" +swimming costume,noun,A2,,,Shopping +swimming pool,noun,A1,Leisure activities,,"Free time, entertainment" +swimsuit,noun,A2,,,Shopping +swing,noun,B2,,, +swing,verb,B2,,, +switch,noun,B1,,, +switch,verb,B1,,, +swollen,adjective,B1,,, +sword,noun,B1,,, +syllable,noun,B2,Education,,Language +symbol,noun,A2,,, +symbolic,adjective,B2,,, +sympathetic,adjective,B2,,, +sympathize/sympathise,verb,B2,,, +sympathy,noun,B1,,, +symphony,noun,A2,Arts,,"Free time, entertainment" +symptom,noun,B1,,, +syndrome,noun,B1,Travel and services vocab,,Health and body care +synonym,noun,B2,Education,, +system,noun,A2,,, +systematic,adjective,B1,,, +table,noun,A1,Objects and rooms,,"House and home, environment" +table tennis,noun,A2,,,"Free time, entertainment" +tablecloth,noun,B2,Objects and rooms,,Shopping +tablespoon,noun,A2,,, +tablet,noun,B1,Objects and rooms,,Shopping +tabloid,adjective,B2,,, +tabloid,noun,B2,,, +tack,verb,B2,,, +tackle,verb,B2,,, +tactile,adjective,B2,,, +tag,noun,B2,,, +tail,noun,B2,,, +take,noun,B1,,, +take,verb,A1,,, +takeaway,noun,B1,,, +takeoff/take-off,noun,B1,Travel and services vocab,,Travel +tale,noun,B1,Books and literature,,"Free time, entertainment" +talent,noun,A2,,, +talented,adjective,B1,,, +talk,noun,B1,,, +talk,verb,A1,,, +talkative,adjective,B1,,, +tall,adjective,A1,,, +tame,adjective,B2,,, +tan,noun,B2,,, +tank,noun,B1,,, +tanned,adjective,B2,,, +tap,noun,A2,Objects and rooms,,"House and home, environment" +tap,verb,B2,,, +tape,noun,A2,,,Shopping +tape,verb,B1,,, +target,noun,A2,,, +task,noun,A2,Work and Jobs,, +taste,noun,B1,Food and drink,,Food and drink +taste,verb,B1,,, +tasteless,adjective,B1,,, +tasty,adjective,B1,,, +tatter,noun,B2,Clothes,, +tattoo,noun,B2,,, +taunt,noun,B2,,, +tax,noun,B1,Shopping,,Shopping +taxi,noun,A1,Ways of travelling,,Travel +tea,noun,A1,Food and drink,,Food and drink +teach,verb,A1,,, +teacher,noun,A1,Education,Work and Jobs,Education +teaching,noun,B1,Education,,Education +team,noun,A1,,,"Free time, entertainment" +teammate,noun,B1,,, +teamwork,noun,B1,,, +tear,noun,A2,,, +tear,verb,B1,,, +tease,noun,B1,,, +tease,verb,B2,,, +teaspoon,noun,B2,,,Shopping +technical,adjective,B2,,, +technically,adverb,B2,,, +technique,noun,B1,,,Education +technological,adjective,B1,,, +technology,noun,A1,Work and Jobs,, +teen,noun,B1,Personal information,,Personal identification +teenage,adjective,A2,,, +teenager,noun,A2,Personal information,,Personal identification +telecommunications,noun,B1,Media,Technical and legal language,Services +telegram,noun,B1,Media,,Services +telephone,noun,A1,Objects and rooms,,Services +telephone,verb,A2,,, +telescope,noun,B2,,, +television,noun,A1,Objects and rooms,,"Free time, entertainment" +tell,verb,A1,,, +teller,noun,B1,Work and Jobs,,Personal identification +temper,noun,B1,,, +temperate,adjective,B2,,, +temperature,noun,A2,,,Weather +temple,noun,A1,"Things in the town, shops and shopping",,Personal identification +temporarily,adverb,B2,,, +temporary,adjective,B1,,, +tempt,verb,B1,,, +temptation,noun,B2,,, +ten,number,A1,,, +tend,verb,B1,,, +tendency,noun,B1,,, +tender,adjective,B2,,, +tenderly,adverb,B2,,, +tenderness,noun,B2,,, +tennis,noun,A1,Leisure activities,,"Free time, entertainment" +tense,adjective,B1,,, +tense,noun,B1,,, +tension,noun,B1,,, +tent,noun,B1,Travel and services vocab,,Travel +term,noun,B1,,, +terminal,noun,B1,"Things in the town, shops and shopping",, +terrace,noun,B2,,,"House and home, environment" +terrible,adjective,A1,,, +terribly,adverb,B1,,, +terrific,adjective,B1,,, +terrified,adjective,B1,,, +terrify,verb,A2,,, +terrifying,adjective,B2,,, +territory,noun,B2,Nationalities and countries,, +terror,noun,B1,,, +terrorism,noun,B1,"News, lifestyles and current affairs",, +terrorist,adjective,A2,,, +terrorist,noun,B1,"News, lifestyles and current affairs",,Personal identification +test,noun,A1,Education,,Education +test,verb,B2,,, +testify,verb,B2,,, +testimony,noun,B2,,, +text,noun,A2,Education,,Language +text,verb,A2,,, +text message,noun,A2,,,Language +textbook,noun,A2,,,Education +than,conjunction,A1,,, +than,preposition,A1,,, +thank,verb,A1,,, +thankful,adjective,B1,,, +thanks,noun,A1,,, +that,adverb,B2,,, +that,conjunction,A1,,, +that,determiner,A1,,, +that,pronoun,A1,,, +the,determiner,A1,,, +theater/theatre,noun,A1,"Things in the town, shops and shopping",,"Free time, entertainment" +theft,noun,B1,"News, lifestyles and current affairs",,Personal identification +their,determiner,A1,,, +theirs,pronoun,A2,,, +them,pronoun,A1,,, +theme,noun,B2,,, +themselves,pronoun,A2,,, +then,adverb,A1,,, +theorist,noun,B2,Work and Jobs,,Personal identification +theory,noun,B1,Education,, +therapist,noun,B2,Work and Jobs,,Personal identification +therapy,noun,B2,,,Health and body care +there,adverb,A1,,, +thereafter,adverb,B2,,, +therefore,adverb,A2,,, +thermometer,noun,B2,,, +these,determiner,A1,,, +these,pronoun,A1,,, +thesis,noun,B2,,,Education +they,pronoun,A1,,, +thick,adjective,A1,,, +thickly,adverb,B2,,, +thickness,noun,B2,,, +thief,noun,A2,"News, lifestyles and current affairs",,Relations with other people +thigh,noun,B2,,, +thin,adjective,A1,,, +thing,noun,A1,,, +think,verb,A1,,, +thinker,noun,B2,Work and Jobs,,Personal identification +third,adjective,A2,,, +third person,noun,B2,,,Personal identification +thirdly,adverb,B2,,, +thirst,noun,B2,,, +thirst,verb,B1,,, +thirsty,adjective,A2,,, +thirteen,number,A1,,, +thirty,number,A1,,, +this,determiner,A1,,, +this,pronoun,A1,,, +thorough,adjective,B1,,, +thoroughly,adverb,B2,,, +those,determiner,A1,,, +those,pronoun,A1,,, +though,adverb,B2,,, +though,conjunction,A2,,, +thought,noun,A2,,, +thoughtful,adjective,B2,,, +thoughtless,adjective,B2,,, +thousand,number,A2,,, +thread,noun,B2,,, +threat,noun,B1,"News, lifestyles and current affairs",, +threaten,verb,B2,,, +threatening,adjective,B1,,, +three,number,A1,,, +thrill,noun,B2,,, +thrilled,adjective,B2,,, +thriller,noun,B1,Books and literature,,"Free time, entertainment" +thrilling,adjective,B2,,, +throat,noun,B2,,,Health and body care +through,adverb,B1,,, +through,preposition,A1,,, +throughout,preposition,B1,,, +throw,noun,A1,,, +throw,verb,A2,,, +thumb,noun,B1,,,Health and body care +thump,verb,B1,,, +thunder,noun,B1,Media,,Weather +thunderous,adjective,B1,,, +thunderstorm,noun,A2,Media,,Weather +Thursday,noun,A1,,, +thus,adverb,B1,,, +tick,noun,B1,,, +tick,verb,B1,,, +ticket,noun,A1,,,"Free time, entertainment" +tickle,verb,B2,,, +tide,noun,B1,Media,, +tidy,adjective,A2,,, +tidy,verb,A2,,, +tie,noun,A2,Clothes,,Shopping +tie,verb,B1,,, +tiger,noun,A1,,, +tight,adjective,A1,,, +tight,adverb,B2,,, +tighten,verb,B1,,, +tightly,adverb,B1,,, +tightrope,noun,B2,,, +tights,noun,A2,,,Shopping +tile,noun,B1,,, +till,conjunction,B1,,, +till,preposition,A2,,, +time,noun,A1,,, +time,verb,B2,,, +timeless,adjective,B2,,, +timeliness,noun,B2,,, +timely,adjective,B1,,, +times,preposition,B2,,, +timetable,noun,A2,,, +timing,noun,B2,,, +tin,noun,B1,,, +tiny,adjective,B1,,, +tip,noun,A2,,, +tip,verb,B2,,, +tiptoe,verb,B2,,, +tire,verb,B1,,, +tired,adjective,A1,,, +tiredness,noun,B2,,, +tiresome,adjective,B2,,, +tiring,adjective,B1,,, +tissue,noun,B1,Objects and rooms,,Shopping +title,noun,A2,Books and literature,,"Free time, entertainment" +to,infinitive-to,A1,,, +to,preposition,A1,,, +toast,noun,A2,Food and drink,,Food and drink +tobacco,noun,B1,,, +today,adverb,A1,,, +today,noun,A1,,, +toe,noun,A2,,,Health and body care +toenail,noun,B2,,,Health and body care +together,adverb,A1,,, +toil,verb,B2,,, +toilet,noun,A1,Objects and rooms,,"House and home, environment" +tolerant,adjective,B2,,, +tolerate,verb,B2,,, +toll,noun,B2,Travel and services vocab,,Services +tomato,noun,A1,Food and drink,,Food and drink +tomb,noun,B2,,, +tomorrow,adverb,A1,,, +tomorrow,noun,A1,,, +ton,noun,B2,,, +tone,noun,A2,,, +tongue,noun,B1,,,Health and body care +tonight,adverb,A1,,, +tonight,noun,A2,,, +too,adverb,A1,,, +tool,noun,A1,Objects and rooms,, +tooth,noun,A1,Travel and services vocab,,Health and body care +toothache,noun,A2,,,Health and body care +toothbrush,noun,A2,,,Shopping +toothpaste,noun,B1,Objects and rooms,,Shopping +top,adjective,B1,,, +top,noun,A1,,, +topic,noun,A1,,, +torch,noun,B2,,, +tornado,noun,B1,,,Weather +tortoiseshell,noun,B2,,, +torture,verb,B2,,, +toss,verb,B1,,, +total,adjective,B1,,, +total,noun,B1,,, +totally,adverb,B1,,, +touch,noun,A1,,, +touch,verb,B1,,, +tough,adjective,B2,,, +tour,noun,A2,Travel and services vocab,,Travel +tour,verb,B1,,, +tour guide,noun,A2,,,Personal identification +tourism,noun,B1,Travel and services vocab,,Travel +tourist,noun,A2,Travel and services vocab,,Travel +tournament,noun,B1,,, +toward/towards,preposition,A2,,, +towel,noun,A1,Objects and rooms,,Shopping +tower,noun,A1,"Things in the town, shops and shopping",,"House and home, environment" +town,noun,A1,Nationalities and countries,,"House and home, environment" +toxic,adjective,B2,,, +toy,noun,A1,Objects and rooms,,"Free time, entertainment" +trace,noun,B1,,, +trace,verb,B2,,, +track,noun,A2,,, +track,verb,B2,,, +tracksuit,noun,B1,,, +trade,noun,A2,Work and Jobs,, +trade,verb,B2,,, +trader,noun,B2,,, +tradition,noun,A2,Nationalities and countries,, +traditional,adjective,A2,,, +traditionally,adverb,B1,,, +traffic,noun,A2,"Things in the town, shops and shopping",,Services +traffic jam,noun,B1,Travel and services vocab,,Travel +traffic light,noun,A2,,,Travel +tragedy,noun,B1,Books and literature,,"Free time, entertainment" +tragic,adjective,B1,,, +trail,noun,B1,,, +trail,verb,B2,,, +trailer,noun,B2,,, +train,noun,A1,Ways of travelling,,Travel +train,verb,A2,,, +trainee,noun,B2,Work and Jobs,,Personal identification +trainer,noun,B2,Work and Jobs,,Personal identification +training,noun,A2,Work and Jobs,, +trait,noun,B2,,, +traitor,noun,B2,,, +tram,noun,A2,,,Travel +tramp,noun,B2,,, +trample,noun,B2,,, +transcript,noun,B2,,, +transfer,noun,B2,,, +transfer,verb,B1,,, +transform,verb,B1,,, +transformation,noun,B1,,, +transfusion,noun,B2,,, +transient,adjective,B2,,, +transistor,noun,B2,Technical and legal language,, +transition,noun,B2,,, +transitional,adjective,B1,,, +transitive,adjective,B2,,, +translate,verb,B1,,, +translation,noun,B2,Books and literature,, +translator,noun,B2,Work and Jobs,,Personal identification +transmission,noun,B2,,, +transmit,verb,B2,,, +transparent,adjective,B2,,, +transport,noun,B1,,,Travel +transport,verb,B2,,, +transportation,noun,B1,Work and Jobs,,Travel +trap,noun,A2,,, +trash,noun,B1,,, +travel,noun,A2,Hobbies and pastimes,,"Free time, entertainment" +travel,verb,A1,,, +travel agent,noun,B1,"Things in the town, shops and shopping",Travel and services vocab,Services +traveler/traveller,noun,A2,Travel and services vocab,,Travel +traverse,noun,B2,,, +tray,noun,B2,,, +tread,verb,B2,,, +treasure,noun,A2,Personal information,, +treat,noun,B1,,, +treat,verb,B2,,, +treatment,noun,B1,,, +treaty,noun,B2,"News, lifestyles and current affairs",, +tree,noun,A1,Objects and rooms,,"House and home, environment" +trek,noun,B2,,,"Free time, entertainment" +tremble,verb,B1,,, +tremendous,adjective,B1,,, +tremendously,adverb,B2,,, +tremor,noun,B2,,, +trend,noun,B1,,, +trial,noun,B2,,, +triangle,noun,B2,,, +tribe,noun,B2,,, +trick,noun,A2,,, +trick,verb,B2,,, +tricky,adjective,B2,,, +trigger,noun,B1,,, +trim,noun,B1,,, +trio,noun,B2,Arts,,"Free time, entertainment" +trip,noun,A1,Hobbies and pastimes,,Travel +trip,verb,B2,,, +triumph,noun,B1,,, +trivial,adjective,B2,,, +trolley,noun,B2,,, +troop,noun,B2,,, +trophy,noun,B2,,, +tropic,adjective,B2,,, +tropical,adjective,B1,,, +trouble,noun,A2,,, +trouble,verb,B1,,, +troublesome,adjective,B2,,, +trousers,noun,A1,Clothes,,Shopping +truck,noun,A1,"Things in the town, shops and shopping",,Travel +true,adjective,A1,,, +truly,adverb,A2,,, +trumpet,noun,B1,,, +trunk,noun,B2,,, +trust,noun,B2,,, +trust,verb,A2,,, +trustworthy,adjective,B1,,, +trusty,adjective,B2,,, +truth,noun,A2,,, +truthful,adjective,B2,,, +truthfulness,noun,B2,,, +try,noun,A1,,, +try,verb,A2,,, +T-shirt/tee-shirt,noun,A1,Clothes,,Shopping +tub,noun,B2,,, +tube,noun,A1,,, +tuberculosis,noun,B2,Travel and services vocab,,Health and body care +Tuesday,noun,A1,,, +tug,noun,B2,,, +tuition,noun,B2,Education,, +tulip,noun,B2,,, +tumble,verb,B1,,, +tumor/tumour,noun,B2,Travel and services vocab,,Health and body care +tuna,noun,B1,Food and drink,,Food and drink +tune,noun,A2,,,"Free time, entertainment" +tunnel,noun,B2,"Things in the town, shops and shopping",,Travel +turbulence,noun,B1,,, +turbulent,adjective,B2,,, +turkey,noun,A1,Food and drink,,Food and drink +turn,noun,A1,,, +turn,verb,A1,,, +turning,noun,B1,,, +turtle,noun,B1,,, +tutor,noun,B2,,,Personal identification +TV,noun,A1,Objects and rooms,,"House and home, environment" +twelve,number,A1,,, +twenty,number,A1,,, +twice,adverb,A2,,, +twin,noun,B1,Family life,,Personal identification +twinkle,noun,B2,,, +twist,noun,B1,,, +twist,verb,B1,,, +twisted,adjective,B2,,, +two,number,A1,,, +type,noun,A1,,, +type,verb,B1,,, +typhoid,noun,B2,,, +typical,adjective,B1,,, +typically,adverb,B1,,, +tyranny,noun,B2,"News, lifestyles and current affairs",, +tyrant,noun,B2,"News, lifestyles and current affairs",, +ugly,adjective,A1,,, +ultimate,adjective,B2,,, +ultimately,adverb,B2,,, +umbrella,noun,A1,Objects and rooms,,Shopping +unable,adjective,B1,,, +unacceptable,adjective,B2,,, +unafraid,adjective,B1,,, +unashamedly,adverb,B2,,, +unattractive,adjective,B2,,, +unauthorized/unauthorised,adjective,B2,,, +unavailable,adjective,B2,,, +unaware,adjective,B2,,, +unbearable,adjective,B2,,, +unbeatable,adjective,B2,,, +unbelievable,adjective,B1,,, +uncertain,adjective,A2,,, +uncertainty,noun,B1,,, +unchanged,adjective,B2,,, +uncharacteristic,adjective,B2,,, +uncle,noun,A1,Family life,,Personal identification +unclear,adjective,B1,,, +unclearly,adverb,B2,,, +uncomfortable,adjective,A2,,, +uncomfortably,adverb,B2,,, +uncommon,adjective,B2,,, +unconcerned,adjective,B2,,, +unconscious,adjective,B2,,, +uncontrollable,adjective,B1,,, +uncover,verb,B1,,, +under,preposition,A1,,, +underage,adjective,B1,,, +underestimate,verb,B2,,, +undergo,verb,B1,,, +undergraduate,noun,B2,Education,,Education +underground,adjective,B2,,, +underground,adverb,B2,,, +underline,noun,A1,,, +underline,verb,B1,,, +underneath,adverb,B2,,, +underneath,preposition,B1,,, +underpants,noun,B1,Clothes,,Shopping +undersea,adjective,B2,,, +understand,verb,A2,,, +understandable,adjective,B2,,, +understanding,adjective,B2,,, +understanding,noun,B2,,, +undertake,verb,B2,,, +underwater,adjective,A2,,, +underwater,adverb,B2,,, +underwear,noun,B2,Clothes,,Shopping +undo,verb,B1,,, +undoubtedly,adverb,B2,,, +undreamed,adjective,B2,,, +undress,verb,B1,,, +undressed,adjective,B2,,, +unease,noun,B2,,, +uneasily,adverb,B2,,, +uneasy,adjective,A2,,, +unemployed,adjective,B1,,, +unemployment,noun,B1,Work and Jobs,,Daily life +unenthusiastic,adjective,B2,,, +uneven,adjective,B2,,, +unexpected,adjective,B1,,, +unexpectedly,adverb,B1,,, +unfair,adjective,A2,,, +unfairly,adverb,B1,,, +unfamiliar,adjective,B2,,, +unfashionable,adjective,B2,,, +unfit,adjective,B1,,, +unfold,verb,B1,,, +unforeseen,adjective,B2,,, +unforgettable,adjective,A2,,, +unfortunate,adjective,B1,,, +unfortunately,adverb,A2,,, +unfriendly,adjective,B1,,, +ungodly,adjective,B2,,, +unhappiness,noun,B2,,, +unhappy,adjective,A2,,, +unhealthy,adjective,A2,,, +unheard,adjective,B1,,, +unhelpful,adjective,B2,,, +uniform,adjective,A2,,, +uniform,noun,A2,,,Shopping +unify,verb,B1,,, +unimaginable,adjective,B2,,, +unimaginably,adverb,B2,,, +unimportant,adjective,A2,,, +uninterested,adjective,B1,,, +uninteresting,adjective,B1,,, +union,noun,B1,,, +unique,adjective,B1,,, +unit,noun,A2,,, +unite,verb,B1,,, +united,adjective,B2,,, +universal,adjective,B2,,, +universe,noun,B1,,, +university,noun,A2,Education,,Education +unjustly,adverb,B2,,, +unkind,adjective,B2,,, +unknown,adjective,A2,,, +unless,conjunction,B1,,, +unlike,adjective,A2,,, +unlike,preposition,B2,,, +unlikely,adjective,B1,,, +unlimited,adjective,B2,,, +unload,verb,B2,,, +unlock,verb,B2,,, +unlucky,adjective,B1,,, +unmistakable,adjective,B2,,, +unmistakably,adverb,B2,,, +unnatural,adjective,B2,,, +unnecessary,adjective,A2,,, +unofficial,adjective,B2,,, +unpack,verb,B1,,, +unpleasant,adjective,A2,,, +unpopular,adjective,B2,,, +unpredictable,adjective,B1,,, +unrealistic,adjective,B2,,, +unreasonable,adjective,B2,,, +unrelated,adjective,B1,,, +unreliable,adjective,B2,,, +unrest,noun,B2,,, +unsafe,adjective,B2,,, +unsatisfactory,adjective,B2,,, +unselfish,adjective,B2,,, +unstoppable,adjective,B2,,, +unsuccessful,adjective,B2,,, +unsuitable,adjective,B2,,, +unsure,adjective,B2,,, +untalented,adjective,B2,,, +unthinkably,adverb,B2,,, +untidy,adjective,B1,,, +untie,verb,B2,,, +until,conjunction,B1,,, +until,preposition,A1,,, +unto,preposition,B2,,, +untreated,adjective,B2,,, +untrimmed,adjective,B2,,, +unusual,adjective,A2,,, +unusually,adverb,B1,,, +unusualness,noun,B2,,, +unwanted,adjective,B1,,, +unwell,adjective,B1,,, +unwilling,adjective,B2,,, +unwise,adjective,B2,,, +unworldly,adjective,B2,,, +up,adverb,A2,,, +up,preposition,A1,,, +upbringing,noun,B2,,, +update,noun,B2,,, +update,verb,B1,,, +upgrade,noun,B2,,, +upgrade,verb,B2,,, +uplifted,adjective,B1,,, +upload,verb,B1,,, +upon,preposition,A2,,, +upper,adjective,B1,,, +upright,adjective,B2,,, +upright,adverb,B2,,, +upset,adjective,A2,,, +upset,verb,B2,,, +upside down,adjective,B2,,, +upside down,adverb,B2,,, +upstairs,adjective,B1,,, +upstairs,adverb,A2,,, +upstairs,noun,B1,Objects and rooms,,"House and home, environment" +up-to-date,adjective,B1,,, +upward,adjective,B1,,, +urban,adjective,B2,,, +urge,noun,B1,,, +urge,verb,B2,,, +urgent,adjective,B1,,, +urgently,adverb,B2,,, +us,pronoun,A1,,, +usage,noun,B1,,, +use,noun,A2,,, +use,verb,A1,,, +used,adjective,A2,,, +used to,modal auxiliary,B1,,, +useful,adjective,A2,,, +useless,adjective,B1,,, +user,noun,B2,,,Personal identification +usher,verb,B2,,, +usual,adjective,A2,,, +usually,adverb,A1,,, +utility,noun,B2,,, +utilize/utilise,verb,B2,,, +utter,verb,B2,,, +utterly,adverb,B2,,, +vacancy,noun,B1,,, +vacant,adjective,B2,,, +vacation,noun,A1,Holidays,,"Free time, entertainment" +vaccine,noun,B2,Travel and services vocab,,Health and body care +vague,adjective,B1,,, +vain,adjective,B1,,, +valentine,noun,B2,,, +valid,adjective,B2,,, +valley,noun,A2,,, +valuable,adjective,B1,,, +value,noun,A2,,, +value,verb,B2,,, +van,noun,B1,Ways of travelling,,Travel +vanish,verb,B2,,, +vanity,noun,B2,,, +variation,noun,B2,,, +varied,adjective,B2,,, +variety,noun,B1,,, +various,adjective,B1,,, +vary,verb,B1,,, +vase,noun,A1,Objects and rooms,,Shopping +vast,adjective,B1,,, +vegetable,noun,A1,Food and drink,,Food and drink +vegetarian,adjective,B1,,, +vegetarian,noun,B1,Personal information,,Personal identification +vehicle,noun,B1,Ways of travelling,,Travel +vein,noun,B1,,, +venture,noun,B2,,, +venue,noun,B2,,,Travel +verb,noun,A2,Education,,Language +verbal,adjective,B2,,, +verbally,adverb,B2,,, +verse,noun,B2,,, +verse,verb,B2,,, +version,noun,B2,,, +versus,preposition,B2,,, +very,adjective,B2,,, +very,adverb,A1,,, +vessel,noun,B1,Objects and rooms,,"House and home, environment" +vet,noun,B1,Work and Jobs,,Personal identification +veteran,noun,B2,,, +via,preposition,B1,,, +vibrate,verb,B2,,, +vibration,noun,B2,,, +vice,adjective,B1,,, +vice president,noun,B1,,, +victim,noun,B1,"News, lifestyles and current affairs",,Relations with other people +victory,noun,B1,,,Relations with other people +video,noun,A1,Objects and rooms,,"Free time, entertainment" +video clip,noun,B1,Media,,"Free time, entertainment" +video game,noun,A2,,,"Free time, entertainment" +view,noun,A2,,, +view,verb,B1,,, +viewer,noun,B2,,, +viewpoint,noun,B1,,, +vigor/vigour,noun,B2,,, +vigorous,adjective,B2,,, +vigorously,adverb,B2,,, +villa,noun,B2,Holidays,,"House and home, environment" +village,noun,A2,Nationalities and countries,,Places +villager,noun,B2,,,Personal identification +vinegar,noun,B2,,,Food and drink +violate,verb,B2,,, +violence,noun,B1,"News, lifestyles and current affairs",,Relations with other people +violent,adjective,A2,,, +violently,adverb,B1,,, +violin,noun,A2,,,"Free time, entertainment" +virtual,adjective,B1,,, +virtual reality,noun,B2,,, +virtually,adverb,B2,,, +virtue,noun,B2,,, +virus,noun,B1,Travel and services vocab,,Health and body care +visa,noun,B1,Travel and services vocab,,Travel +visible,adjective,B1,,, +visibly,adverb,B2,,, +vision,noun,B1,,, +visit,noun,A1,,, +visit,verb,A1,,, +visitor,noun,A2,,,Personal identification +visual,adjective,B1,,, +visually,adverb,B1,,, +vital,adjective,B2,,, +vitamin,noun,B2,,,Health and body care +vivid,adjective,B1,,, +vividly,adverb,B1,,, +vocabulary,noun,A2,Education,,Language +vocalist,noun,B2,Work and Jobs,Arts,Personal identification +voice,noun,A2,,, +volcano,noun,B1,,,"House and home, environment" +volleyball,noun,A1,Leisure activities,,"Free time, entertainment" +volume,noun,B1,Books and literature,, +volunteer,noun,B2,,,Personal identification +volunteer,verb,B1,,, +vomit,noun,B2,Travel and services vocab,,Health and body care +vote,noun,A1,"News, lifestyles and current affairs",, +vote,verb,B1,,, +voter,noun,B2,"News, lifestyles and current affairs",, +vow,noun,B2,,, +vowel,noun,B1,,, +voyage,noun,B1,Travel and services vocab,,Travel +wage,noun,B2,Work and Jobs,,Daily life +wagon,noun,B1,Ways of travelling,,Travel +waist,noun,B2,,,Health and body care +waistcoat,noun,B2,Clothes,,Shopping +wait,noun,B2,,, +wait,verb,A1,,, +waiter,noun,A1,Work and Jobs,,Food and drink +waitress,noun,A1,Work and Jobs,,Personal identification +wake,noun,A1,,, +wake,verb,B1,,, +walk,noun,A1,,,"Free time, entertainment" +walk,verb,A1,,, +walkabout,noun,B2,,, +walker,noun,B2,,, +walking,noun,A2,,,"Free time, entertainment" +wall,noun,A1,Objects and rooms,,"House and home, environment" +wallboard,noun,B2,,, +wallet,noun,A2,Shopping,,Shopping +walnut,noun,B2,,, +wander,verb,A2,,, +want,noun,B2,,, +want,verb,A1,,, +war,noun,A1,"News, lifestyles and current affairs",,Relations with other people +ward,noun,B1,Nationalities and countries,, +wardrobe,noun,B1,Clothes,,Shopping +warm,adjective,A1,,, +warm,verb,B1,,, +warmly,adverb,B1,,, +warmth,noun,B1,,,Weather +warn,verb,B1,,, +warning,noun,B1,,, +warranty,noun,B1,,, +warrior,noun,B1,,, +warship,noun,B2,"News, lifestyles and current affairs",, +wartime,noun,B2,"News, lifestyles and current affairs",, +was,be-verb,A1,,, +wash,noun,A1,,,Daily life +wash,verb,A1,,, +washbowl,noun,B1,Objects and rooms,,"House and home, environment" +washing machine,noun,A2,,,"House and home, environment" +washing-up,noun,A2,,, +wasp,noun,B2,,, +waste,adjective,B1,,, +waste,noun,B1,,, +waste,verb,B1,,, +wasteful,adjective,B1,,, +watch,noun,A1,Objects and rooms,,"House and home, environment" +watch,verb,A1,,, +water,noun,A1,,,Food and drink +water,verb,B2,,, +waterfall,noun,B1,,, +waterproof,adjective,B2,,, +wave,noun,A2,,, +wave,verb,B1,,, +wax,noun,B1,,, +wax,verb,B1,,, +way,noun,A1,,,Travel +we,pronoun,A1,,, +weak,adjective,A2,,, +weaken,verb,B2,,, +weakly,adverb,B2,,, +weakness,noun,B1,,, +wealth,noun,A2,Personal information,, +wealthy,adjective,B2,,, +weapon,noun,B1,"News, lifestyles and current affairs",,Relations with other people +wear,verb,A1,,, +wearisome,adjective,B2,,, +weary,adjective,B2,,, +weather,noun,A1,,,Weather +weather forecast,noun,B1,Media,,Weather +weave,noun,B2,,, +web,noun,A2,Media,,"Free time, entertainment" +web page,noun,A2,,,"Free time, entertainment" +webcam,noun,B1,Media,,"Free time, entertainment" +website,noun,A2,Media,,"Free time, entertainment" +wed,verb,B2,,, +wedding,noun,A2,Family life,,Daily life +Wednesday,noun,A1,,, +weed,noun,B2,,, +week,noun,A1,,, +weekday,noun,A2,,, +weekend,noun,A1,,, +weekly,adjective,A2,,, +weekly,adverb,A2,,, +weep,noun,A2,,, +weigh,verb,A2,,, +weight,noun,A2,,, +weird,adjective,B1,,, +welcome,adjective,B1,,, +welcome,interjection,A1,,, +welcome,noun,B2,,, +welcome,verb,A1,,, +welfare,noun,B2,,,Services +well,adjective,A1,,, +well,adverb,A1,,, +well-balanced,adjective,B2,,, +well-built,adjective,B2,,, +well-dressed,adjective,B1,,, +well-known,adjective,A2,,, +well-organized/well-organised,adjective,B2,,, +well-paid,adjective,B2,,, +were,be-verb,A1,,, +west,adjective,A2,,, +west,adverb,A2,,, +west,noun,A2,,, +western,adjective,B2,,, +westward,adverb,B1,,, +wet,adjective,A2,,, +wetland,noun,B1,,, +whale,noun,B1,,, +what,determiner,A1,,, +what,pronoun,A1,,, +whatever,determiner,A2,,, +whatever,pronoun,B1,,, +wheat,noun,B2,,,Food and drink +wheel,noun,A1,,,Travel +wheelchair,noun,A2,"Things in the town, shops and shopping",,Travel +when,adverb,A1,,, +when,conjunction,A1,,, +whenever,adverb,B1,,, +whenever,conjunction,B1,,, +where,adverb,A1,,, +where,conjunction,A1,,, +whereas,conjunction,B2,,, +wherever,conjunction,B1,,, +whether,conjunction,B1,,, +which,determiner,A1,,, +which,pronoun,A1,,, +whichever,determiner,B1,,, +whichever,pronoun,B2,,, +while,conjunction,A2,,, +while,noun,B1,,, +whip,verb,B2,,, +whiskey/whisky,noun,B2,,,Food and drink +whisper,noun,B1,,, +whisper,verb,B2,,, +whistle,noun,B1,,, +whistle,verb,B2,,, +white,adjective,A1,,, +white,noun,A1,Colours,, +who,pronoun,A1,,, +whoever,pronoun,B1,,, +whole,adjective,A2,,, +whole,noun,B1,,, +whom,pronoun,A2,,, +whose,determiner,A1,,, +whose,pronoun,A1,,, +why,adverb,A1,,, +wide,adjective,A2,,, +wide,adverb,A2,,, +widely,adverb,A2,,, +widen,verb,B2,,, +widespread,adjective,B1,,, +widow,noun,B2,,,Personal identification +width,noun,B2,,, +wife,noun,A1,Family life,,Personal identification +wild,adjective,A2,,, +wilderness,noun,B2,,, +wildlife,noun,B1,,, +wildly,adverb,B1,,, +will,modal auxiliary,A1,,, +will,noun,B2,,, +willing,adjective,B2,,, +willingly,adverb,B2,,, +willingness,noun,B1,,, +win,noun,B2,,, +win,verb,A1,,, +wind,noun,A1,,,Weather +wind,verb,B2,,, +winding,adjective,B2,,, +window,noun,A1,Objects and rooms,,"House and home, environment" +windscreen,noun,B1,Media,,"Free time, entertainment" +windshield,noun,B2,Objects and rooms,,"House and home, environment" +windsurfing,noun,B1,Leisure activities,,"Free time, entertainment" +windy,adjective,A2,,, +wine,noun,A2,Food and drink,,Food and drink +wing,noun,B1,,, +wink,noun,B2,,, +winner,noun,A2,,,Personal identification +winter,noun,A1,,, +wipe,verb,B2,,, +wire,noun,B1,Objects and rooms,, +wire,verb,B2,,, +wisdom,noun,A2,Education,,Personal identification +wise,adjective,A2,,, +wish,noun,A1,,, +wish,verb,A2,,, +wit,noun,B2,Education,, +with,preposition,A1,,, +withdraw,verb,B2,,, +withdrawal,noun,B2,,, +wither,verb,B1,,, +within,preposition,A2,,, +without,preposition,A2,,, +witness,noun,B2,,, +witness,verb,B1,,, +witty,adjective,B2,,, +wizard,adjective,B1,,, +wolf,noun,B2,,, +woman,noun,A1,,,Personal identification +wonder,noun,B1,,, +wonder,verb,A2,,, +wonderful,adjective,A1,,, +wondrous,adjective,B2,,, +wood,noun,A2,,,"House and home, environment" +woodcarving,noun,B2,Arts,,"Free time, entertainment" +wooden,adjective,A2,,, +wool,noun,A2,Clothes,,Shopping +word,noun,A1,Books and literature,,Services +wordlessly,adverb,B2,,, +work,noun,A1,Work and Jobs,,Daily life +work,verb,A1,,, +workaholic,adjective,B2,,, +workbench,noun,B2,Objects and rooms,,"House and home, environment" +worker,noun,A1,Work and Jobs,,Personal identification +working,adjective,B1,,, +workman,noun,B2,Work and Jobs,,Personal identification +workout,noun,B1,,, +workplace,noun,B1,Work and Jobs,,Daily life +workshop,noun,B1,"Things in the town, shops and shopping",Work and Jobs,Education +worktable,noun,B2,Objects and rooms,,"House and home, environment" +world,noun,A1,Nationalities and countries,,"House and home, environment" +worldly,adjective,B2,,, +worldview,noun,B2,,, +worldwide,adjective,B2,,, +worldwide,adverb,A2,,, +worm,noun,B2,,, +worn,adjective,B1,,, +wornout/worn out/worn-out,adjective,B2,,, +worried,adjective,A2,,, +worry,noun,A1,,, +worry,verb,A2,,, +worrying,adjective,B2,,, +worse,adjective,A2,,, +worse,adverb,A2,,, +worse,noun,B2,,, +worsen,verb,B2,,, +worship,noun,B2,"News, lifestyles and current affairs",, +worst,adjective,A2,,, +worst,adverb,B2,,, +worst,noun,B1,,, +worth,adjective,B1,,, +worthless,adjective,B2,,, +worthwhile,adjective,B1,,, +worthy,adjective,B1,,, +would,modal auxiliary,A1,,, +wound,noun,B1,"News, lifestyles and current affairs",, +wound,verb,B2,,, +wrap,noun,B1,Clothes,,Shopping +wrap,verb,B1,,, +wrapping,noun,B1,,, +wreck,noun,B2,,, +wrist,noun,B1,,,Health and body care +wristwatch,noun,B1,Clothes,,Shopping +write,verb,A1,,, +writer,noun,A1,Work and Jobs,Books and literature,Personal identification +writing,noun,A2,Education,,Education +written,adjective,B1,,, +wrong,adjective,A1,,, +wrong,adverb,A2,,, +wrongly,adverb,B2,,, +X-ray,noun,B2,,, +yacht,noun,B2,,,Travel +yard,noun,A1,Objects and rooms,,"House and home, environment" +yawn,noun,B2,,, +yawn,verb,B2,,, +yeah,adverb,A2,,, +year,noun,A1,,, +yearn,verb,B2,,, +yell,noun,B1,,, +yell,verb,B2,,, +yellow,adjective,A1,,, +yellow,noun,A1,Colours,, +yes,adverb,A1,,, +yesterday,adverb,A1,,, +yet,adverb,A1,,, +yet,conjunction,B1,,, +yield,verb,B2,,, +yoga,noun,B1,Hobbies and pastimes,,"Free time, entertainment" +yogurt/yoghurt,noun,A1,Food and drink,,Food and drink +you,pronoun,A1,,, +young,adjective,A1,,, +your,determiner,A1,,, +yours,pronoun,A1,,, +yourself,pronoun,A1,,, +youth,noun,A2,,, +youthful,adjective,B2,,, +yummy,adjective,B2,,, +zebra,noun,B2,,, +zip,noun,B2,,, +zone,noun,A2,Nationalities and countries,,Places +zoo,noun,A1,,,Places +zoom,noun,B2,,, \ No newline at end of file diff --git a/kouyu_english/tool/courses/pools/a1-word-pool.csv b/kouyu_english/tool/courses/pools/a1-word-pool.csv new file mode 100644 index 0000000..c98851e --- /dev/null +++ b/kouyu_english/tool/courses/pools/a1-word-pool.csv @@ -0,0 +1,1067 @@ +headword,pos,cefrj_topic,categories,status,word_form_variant,function_word +a,determiner,,通用,pool,,yes +a.m./A.M./am/AM,adverb,,旅行,pool,, +about,adverb/preposition,,通用,pool,, +above,adverb/preposition,,通用,pool,, +action,noun,,通用,pool,, +activity,noun,"Free time, entertainment",日常,pool,, +actor,noun,Personal identification,日常,pool,, +add,verb,,通用,pool,, +address,noun,Personal identification,日常,pool,, +afraid,adjective,,通用,pool,, +after,preposition,,通用,pool,,yes +afternoon,noun,,通用,pool,, +again,adverb,,通用,pool,, +age,noun,Personal identification,日常,pool,, +ago,adverb,,通用,pool,, +agree,verb,,通用,pool,, +airplane/aeroplane,noun,Travel,旅行/日常,pool,, +airport,noun,Travel,旅行/日常,pool,, +album,noun,Daily life,日常,pool,, +all,determiner/pronoun,,通用,pool,,yes +all right,adjective/adverb,,通用,pool,, +almost,adverb,,通用,pool,, +alone,adverb,,通用,pool,, +along,adverb,,通用,pool,, +already,adverb,,通用,pool,, +also,adverb,,通用,pool,, +always,adverb,,通用,pool,, +am,be-verb,,通用,pool,yes,yes +an,determiner,,通用,pool,,yes +and,conjunction,,通用,pool,,yes +angry,adjective,,通用,pool,, +animal,noun,,通用,pool,, +another,determiner,,通用,pool,,yes +answer,noun/verb,,学校与学术/通用,pool,, +any,determiner/pronoun,,通用,pool,,yes +anybody,pronoun,,通用,pool,,yes +anyone,pronoun,,通用,pool,,yes +anything,pronoun,,通用,pool,,yes +apple,noun,Food and drink,日常,pool,, +April,noun,,通用,pool,, +apron,noun,Shopping,其他,excluded,, +are,be-verb,,通用,pool,yes,yes +arm,noun,Health and body care,日常,pool,, +around,preposition,,通用,pool,,yes +arrive,verb,,旅行,pool,, +art,noun,"Free time, entertainment",日常,pool,, +article,noun,"Free time, entertainment",学校与学术,excluded,, +as,preposition,,通用,pool,,yes +ask,verb,,通用,pool,, +at,preposition,,通用,pool,,yes +August,noun,,通用,pool,, +aunt,noun,Personal identification,日常,pool,, +autumn,noun,,通用,pool,, +awake,adjective,,通用,pool,, +away,adverb,,通用,pool,, +baby,noun,Personal identification,日常,pool,, +back,adverb/noun,Health and body care,日常,pool,, +bad,adjective,,通用,pool,, +bag,noun,Shopping,旅行/日常,pool,, +ball,noun,"Free time, entertainment",日常,pool,, +banana,noun,Food and drink,日常,pool,, +band,noun,Shopping,日常,pool,, +bank,noun,Services,日常,pool,, +bar,noun,Food and drink,日常,pool,, +baseball,noun,"Free time, entertainment",其他,excluded,, +basketball,noun,"Free time, entertainment",日常,pool,, +bat,noun,"Free time, entertainment",其他,excluded,, +bath,noun,"House and home, environment",日常,pool,, +bathroom,noun,"House and home, environment",日常,pool,, +be,be-verb,,通用,pool,,yes +beach,noun,"House and home, environment",旅行/日常,pool,, +bean,noun,Food and drink,日常,pool,, +bear,noun,,其他,excluded,, +beautiful,adjective,,通用,pool,, +because,conjunction,,通用,pool,,yes +become,verb,,通用,pool,, +bed,noun,"House and home, environment",日常,pool,, +bedroom,noun,"House and home, environment",日常,pool,, +bee,noun,,其他,excluded,, +beef,noun,Food and drink,日常,pool,, +before,adverb/preposition,,通用,pool,, +begin,verb,,通用,pool,, +behind,adverb/preposition,,通用,pool,, +believe,verb,,通用,pool,, +bell,noun,Shopping,其他,excluded,, +below,adverb/preposition,,通用,pool,, +beside,preposition,,通用,pool,,yes +best,adjective/adverb,,通用,pool,, +better,adjective,,通用,pool,, +between,preposition,,通用,pool,,yes +bicycle,noun,"Free time, entertainment",日常,pool,, +big,adjective,,通用,pool,, +bike,noun,Travel,旅行/日常,pool,, +bird,noun,,通用,pool,, +birth,noun,Daily life,日常,pool,, +birthday,noun,Personal identification,日常,pool,, +biscuit,noun,Food and drink,日常,pool,, +black,adjective/noun,,通用,pool,, +blank,adjective,,学校与学术,excluded,, +block,noun,"House and home, environment",日常,pool,, +blow,verb,,通用,pool,, +blue,adjective/noun,,通用,pool,, +board,noun,"House and home, environment",日常,pool,, +boat,noun,Travel,旅行/日常,pool,, +body,noun,Health and body care,日常,pool,, +bone,noun,,其他,excluded,, +book,noun,"Free time, entertainment",日常,pool,, +bookstore,noun,Shopping,日常,pool,, +boring,adjective,,通用,pool,, +borrow,verb,,通用,pool,, +both,adverb/determiner/pronoun,,通用,pool,, +bottle,noun,Shopping,日常,pool,, +bottom,noun,,通用,pool,, +bowl,noun,Shopping,日常,pool,, +box,noun,Shopping,日常,pool,, +boy,noun,Personal identification,日常,pool,, +boyfriend,noun,Personal identification,日常,pool,, +brain,noun,Health and body care,其他,excluded,, +bread,noun,Food and drink,日常,pool,, +break,verb,,通用,pool,, +breakfast,noun,Food and drink,旅行/日常,pool,, +breathe,verb,,通用,pool,, +bridge,noun,"House and home, environment",旅行/日常,pool,, +bright,adjective,,通用,pool,, +bring,verb,,通用,pool,, +broken,adjective,,通用,pool,, +brother,noun,Personal identification,日常,pool,, +brown,adjective,,通用,pool,, +brush,noun/verb,Shopping,日常,pool,, +bucket,noun,Shopping,其他,excluded,, +build,verb,,通用,pool,, +building,noun,"House and home, environment",日常,pool,, +burger,noun,Food and drink,日常,pool,, +bus,noun,Travel,旅行/日常,pool,, +business,noun,Daily life,工作,work_only,, +busy,adjective,,工作/通用,pool,, +but,conjunction,,通用,pool,,yes +butter,noun,Food and drink,日常,pool,, +butterfly,noun,,其他,excluded,, +button,noun,Shopping,日常,pool,, +buy,verb,,通用,pool,, +by,preposition,,通用,pool,,yes +bye,noun,,通用,pool,, +cafe/café,noun,Food and drink,旅行/日常,pool,, +cake,noun,Food and drink,日常,pool,, +call,noun,Services,工作/日常,pool,, +camera,noun,Travel,旅行/日常,pool,, +camp,noun,"Free time, entertainment",日常,pool,, +can,modal auxiliary,,通用,pool,,yes +candy,noun,Food and drink,日常,pool,, +cap,noun,Shopping,日常,pool,, +car,noun,Travel,旅行/日常,pool,, +card,noun,Shopping,日常,pool,, +care,noun,Health and body care,日常,pool,, +careful,adjective,,通用,pool,, +carefully,adverb,,通用,pool,, +carry,verb,,通用,pool,, +cartoon,noun,"Free time, entertainment",其他,excluded,, +case,noun,,通用,pool,, +cat,noun,,通用,pool,, +catch,noun/verb,,通用,pool,, +CD,noun,"Free time, entertainment",其他,excluded,, +CD player,noun,"House and home, environment",其他,excluded,, +celebrate,verb,,通用,pool,, +celebration,noun,Daily life,日常,pool,, +chair,noun,"House and home, environment",日常,pool,, +change,noun/verb,,通用,pool,, +character,noun,Personal identification,学校与学术,excluded,, +check,noun,Services,日常,pool,, +cheese,noun,Food and drink,日常,pool,, +chicken,noun,Food and drink,日常,pool,, +child,noun,Personal identification,日常,pool,, +chocolate,noun,Food and drink,日常,pool,, +choose,verb,,通用,pool,, +church,noun,"House and home, environment",旅行/日常,pool,, +cinema,noun,"Free time, entertainment",日常,pool,, +circle,noun,,其他,excluded,, +city,noun,"House and home, environment",旅行/日常,pool,, +class,noun,Education,学校与学术/通用,pool,, +classmate,noun,Relations with other people,学校与学术,excluded,, +classroom,noun,Education,学校与学术,excluded,, +clean,adjective/verb,,通用,pool,, +clever,adjective,,通用,pool,, +climb,noun,,通用,pool,, +clock,noun,"House and home, environment",日常,pool,, +close,adjective/verb,,旅行,pool,, +closed,adjective,,旅行,pool,, +cloth,noun,Shopping,其他,excluded,, +clothes,noun,,通用,pool,, +cloud,noun,Weather,日常,pool,, +cloudy,adjective,,通用,pool,, +club,noun,Relations with other people,日常,pool,, +coach,noun,Personal identification,日常,pool,, +coat,noun,Shopping,日常,pool,, +code,noun,,通用,pool,, +coffee,noun,Food and drink,旅行/日常,pool,, +coke,noun,Food and drink,日常,pool,, +cold,adjective/noun,Weather,旅行/日常,pool,, +collect,verb,,通用,pool,, +collection,noun,,通用,pool,, +college,noun,Education,学校与学术/日常/通用,pool,, +color/colour,noun/verb,,通用,pool,, +come,verb,,通用,pool,, +computer,noun,"House and home, environment",工作/日常,pool,, +concert,noun,"Free time, entertainment",日常,pool,, +contest,noun,,学校与学术,excluded,, +conversation,noun,,通用,pool,, +cook,noun/verb,Personal identification,日常,pool,, +cookie,noun,Food and drink,日常,pool,, +cool,adjective,,通用,pool,, +cop,noun,Personal identification,其他,excluded,, +copy,noun,Services,日常,pool,, +corn,noun,Food and drink,日常,pool,, +corner,noun,"House and home, environment",日常,pool,, +correct,adjective,,学校与学术/通用,pool,, +couch,noun,"House and home, environment",日常,pool,, +could,modal auxiliary,,通用,pool,,yes +course,noun,Education,通用,pool,, +cousin,noun,Personal identification,日常,pool,, +cover,noun,Shopping,日常,pool,, +cow,noun,,其他,excluded,, +cream,noun,Food and drink,日常,pool,, +credit card,noun,Shopping,旅行/日常,pool,, +cry,noun,,通用,pool,, +culture,noun,"Free time, entertainment",旅行/日常,pool,, +cup,noun,Shopping,日常,pool,, +cut,verb,,通用,pool,, +cute,adjective,,通用,pool,, +dad,noun,Personal identification,日常,pool,, +daddy,noun,,其他,excluded,, +dance,noun/verb,"Free time, entertainment",日常,pool,, +dancing,noun,"Free time, entertainment",日常,pool,, +dark,adjective,,通用,pool,, +date,noun,Personal identification,日常,pool,, +daughter,noun,Personal identification,日常,pool,, +day,noun,,通用,pool,, +dear,adjective,,通用,pool,, +December,noun,,通用,pool,, +delicious,adjective,,旅行,pool,, +describe,verb,,通用,pool,, +design,noun,"Free time, entertainment",日常,pool,, +desk,noun,"House and home, environment",日常,pool,, +dictionary,noun,Education,学校与学术,excluded,, +did,do-verb,,通用,pool,yes,yes +difference,noun,,通用,pool,, +different,adjective,,通用,pool,, +difficult,adjective,,通用,pool,, +dig,noun,,其他,excluded,, +dining room,noun,"House and home, environment",日常,pool,, +dinner,noun,Food and drink,旅行/日常,pool,, +dirty,adjective,,通用,pool,, +discuss,verb,,工作,work_only,, +dish,noun,Shopping,日常,pool,, +do,do-verb,,通用,pool,,yes +doctor/Dr./Dr,noun,Personal identification,日常,pool,, +does,do-verb,,通用,pool,yes,yes +dog,noun,,通用,pool,, +doing,do-verb,,通用,pool,yes,yes +doll,noun,"Free time, entertainment",其他,excluded,, +dollar,noun,Shopping,旅行/日常,pool,, +door,noun,"House and home, environment",日常,pool,, +down,adverb,,通用,pool,, +drama,noun,"Free time, entertainment",日常,pool,, +draw,verb,,学校与学术/通用,pool,, +dream,noun,,通用,pool,, +dress,noun,Shopping,日常,pool,, +drink,noun/verb,Food and drink,日常,pool,, +drive,noun,Travel,旅行/日常,pool,, +driver,noun,Personal identification,日常,pool,, +drop,verb,,通用,pool,, +drum,noun,"Free time, entertainment",其他,excluded,, +dry,adjective,,通用,pool,, +due,adjective,,通用,pool,, +DVD,noun,"Free time, entertainment",其他,excluded,, +each,determiner/pronoun,,通用,pool,,yes +each other,pronoun,,通用,pool,,yes +ear,noun,Health and body care,日常,pool,, +early,adverb,,旅行,pool,, +easy,adjective,,通用,pool,, +eat,verb,,通用,pool,, +egg,noun,Food and drink,日常,pool,, +eight,number,,通用,pool,,yes +eighteen,number,,通用,pool,,yes +eighty,number,,通用,pool,,yes +either,adverb,,通用,pool,, +elementary,adjective,,学校与学术,excluded,, +eleven,number,,通用,pool,,yes +else,adverb,,通用,pool,, +email/e-mail/E-mail,noun,Services,工作/日常,pool,, +end,noun,,通用,pool,, +engineer,noun,Personal identification,工作,work_only,, +enjoy,verb,,通用,pool,, +evening,noun,,通用,pool,, +event,noun,"Free time, entertainment",日常,pool,, +every,determiner,,通用,pool,,yes +everybody,pronoun,,通用,pool,,yes +everyday,adjective,,通用,pool,, +everyone,pronoun,,通用,pool,,yes +everything,pronoun,,通用,pool,,yes +everywhere,adverb,,通用,pool,, +example,noun,,学校与学术/通用,pool,, +excellent,adjective,,通用,pool,, +excited,adjective,,通用,pool,, +exciting,adjective,,通用,pool,, +excuse,noun,,旅行,pool,, +exercise,verb,,通用,pool,, +expensive,adjective,,旅行,pool,, +eye,noun,Health and body care,日常,pool,, +face,noun,Health and body care,日常,pool,, +factory,noun,"House and home, environment",工作,work_only,, +fair,adjective,,通用,pool,, +fairy,noun,,其他,excluded,, +false,adjective,,通用,pool,, +family,noun,Personal identification,日常,pool,, +famous,adjective,,通用,pool,, +fan,noun,Personal identification,日常,pool,, +farm,noun,"House and home, environment",其他,excluded,, +farmer,noun,Personal identification,其他,excluded,, +fast,adjective/adverb,,通用,pool,, +fat,adjective,,通用,pool,, +father,noun,Personal identification,日常,pool,, +favorite/favourite,adjective/noun,Personal identification,日常,pool,, +February,noun,,通用,pool,, +feed,noun,Food and drink,日常,pool,, +feel,verb,,通用,pool,, +feeling,noun,,通用,pool,, +festival,noun,"Free time, entertainment",旅行/日常,pool,, +fever,noun,Health and body care,旅行/日常,pool,, +field,noun,"House and home, environment",其他,excluded,, +fifteen,number,,通用,pool,,yes +fifty,number,,通用,pool,,yes +fight,noun,Relations with other people,其他,excluded,, +file,noun,,工作,work_only,, +fill,verb,,通用,pool,, +find,verb,,通用,pool,, +fine,adjective,,通用,pool,, +finish,noun/verb,,通用,pool,, +fire,noun,,通用,pool,, +first,adjective/adverb,,通用,pool,, +fish,noun,Food and drink,日常,pool,, +fishing,noun,"Free time, entertainment",日常,pool,, +five,number,,通用,pool,,yes +flag,noun,,其他,excluded,, +flat,noun,"House and home, environment",日常,pool,, +floor,noun,"House and home, environment",日常,pool,, +flower,noun,,通用,pool,, +fly,noun/verb,,通用,pool,, +focus,verb,,工作,work_only,, +foggy,adjective,,通用,pool,, +following,adjective,,通用,pool,, +food,noun,Food and drink,旅行/日常,pool,, +football,noun,"Free time, entertainment",日常,pool,, +for,preposition,,通用,pool,,yes +foreign,adjective,,旅行,pool,, +foreigner,noun,Personal identification,旅行/日常,pool,, +forget,verb,,通用,pool,, +form,noun,,通用,pool,, +forty,number,,通用,pool,,yes +four,number,,通用,pool,,yes +fourteen,number,,通用,pool,,yes +free,adjective,,通用,pool,, +Friday,noun,,通用,pool,, +friend,noun,Relations with other people,日常,pool,, +frog,noun,,其他,excluded,, +from,preposition,,通用,pool,,yes +front,adjective,,通用,pool,, +fruit,noun,Food and drink,日常,pool,, +full,adjective,,通用,pool,, +fun,adjective/noun,,通用,pool,, +funny,adjective,,通用,pool,, +future,noun,,通用,pool,, +game,noun,"Free time, entertainment",日常,pool,, +garbage,noun,"House and home, environment",日常,pool,, +garden,noun,"House and home, environment",日常,pool,, +get,verb,,通用,pool,, +ghost,noun,,其他,excluded,, +gift,noun,Shopping,旅行/日常,pool,, +girl,noun,Personal identification,日常,pool,, +girlfriend,noun,Personal identification,日常,pool,, +give,verb,,通用,pool,, +glad,adjective,,通用,pool,, +glass,noun,Shopping,日常,pool,, +glasses,noun,"House and home, environment",日常,pool,, +go,verb,,通用,pool,, +goal,noun,"Free time, entertainment",日常,pool,, +gold,adjective,,其他,excluded,, +good,adjective,,通用,pool,, +good afternoon,interjection,,通用,pool,,yes +good morning,interjection,,通用,pool,,yes +good night,interjection,,通用,pool,,yes +grade,noun,Education,学校与学术,excluded,, +grammar,noun,Education,学校与学术,excluded,, +grandfather,noun,Personal identification,日常,pool,, +grandma,noun,Personal identification,日常,pool,, +grandmother,noun,Personal identification,日常,pool,, +grandpa,noun,Personal identification,日常,pool,, +grandparent,noun,Personal identification,日常,pool,, +grape,noun,Food and drink,日常,pool,, +grass,noun,"House and home, environment",其他,excluded,, +gray/grey,adjective/noun,,通用,pool,, +great,adjective,,通用,pool,, +green,adjective,,通用,pool,, +greet,verb,,通用,pool,, +ground,noun,"Free time, entertainment",日常,pool,, +group,noun,Relations with other people,日常,pool,, +grow,verb,,通用,pool,, +guess,verb,,通用,pool,, +guest,noun,Relations with other people,旅行/日常,pool,, +guitar,noun,"Free time, entertainment",日常,pool,, +guy,noun,Personal identification,日常,pool,, +habit,noun,Personal identification,日常,pool,, +had,have-verb,,通用,pool,yes,yes +hair,noun,Health and body care,日常,pool,, +haircut,noun,Services,日常,pool,, +half,noun,,通用,pool,, +hall,noun,"House and home, environment",日常,pool,, +hamburger,noun,Food and drink,日常,pool,, +hand,noun,Health and body care,日常,pool,, +handsome,adjective,,通用,pool,, +happen,verb,,通用,pool,, +happy,adjective,,通用,pool,, +hard,adjective/adverb,,通用,pool,, +has,have-verb,,通用,pool,yes,yes +hat,noun,Shopping,日常,pool,, +have,have-verb,,通用,pool,,yes +have to,modal auxiliary,,通用,pool,,yes +he,pronoun,,通用,pool,,yes +head,noun,Health and body care,日常,pool,, +headache,noun,Health and body care,旅行/日常,pool,, +health,noun,Health and body care,日常,pool,, +healthy,adjective,,通用,pool,, +hear,verb,,通用,pool,, +heart,noun,Health and body care,日常,pool,, +heavy,adjective,,通用,pool,, +hello,noun,,通用,pool,, +help,verb,,旅行,pool,, +her,determiner/pronoun,,通用,pool,,yes +here,adverb,,通用,pool,, +hers,pronoun,,通用,pool,,yes +hi,interjection,,通用,pool,,yes +hide,verb,,其他,excluded,, +high,adjective,,通用,pool,, +hill,noun,"House and home, environment",日常,pool,, +him,pronoun,,通用,pool,,yes +his,determiner/pronoun,,通用,pool,,yes +history,noun,Education,学校与学术/日常/通用,pool,, +hobby,noun,"Free time, entertainment",日常,pool,, +hold,noun,,通用,pool,, +hole,noun,"House and home, environment",日常,pool,, +holiday,noun,"Free time, entertainment",旅行/日常,pool,, +home,noun,Daily life,日常,pool,, +hometown,noun,Personal identification,日常,pool,, +homework,noun,Education,学校与学术,excluded,, +hope,noun,,通用,pool,, +horse,noun,,其他,excluded,, +hospital,noun,Health and body care,旅行/日常,pool,, +hot,adjective,,旅行,pool,, +hotel,noun,Travel,旅行/日常,pool,, +hour,noun,,旅行,pool,, +house,noun,"House and home, environment",日常,pool,, +how,adverb,,通用,pool,, +hungry,adjective,,通用,pool,, +hurry,noun,,通用,pool,, +hurt,verb,,通用,pool,, +husband,noun,Personal identification,日常,pool,, +I,pronoun,,通用,pool,,yes +ice,noun,Food and drink,日常,pool,, +ice cream,noun,Food and drink,日常,pool,, +idea,noun,,通用,pool,, +ideal,adjective,,其他,excluded,, +if,conjunction,,通用,pool,,yes +imagine,verb,,通用,pool,, +important,adjective,,通用,pool,, +in,preposition,,通用,pool,,yes +information,noun,Services,工作/日常,pool,, +inside,preposition,,通用,pool,,yes +interested,adjective,,通用,pool,, +interesting,adjective,,通用,pool,, +Internet/internet,noun,"Free time, entertainment",日常,pool,, +interview,noun,Relations with other people,工作,work_only,, +interviewer,noun,Personal identification,工作,work_only,, +into,preposition,,通用,pool,,yes +introduce,verb,,通用,pool,, +is,be-verb,,通用,pool,yes,yes +island,noun,"Free time, entertainment",旅行/日常,pool,, +it,pronoun,,通用,pool,,yes +item,noun,,通用,pool,, +its,determiner/pronoun,,通用,pool,,yes +jacket,noun,Shopping,日常,pool,, +January,noun,,通用,pool,, +jeans,noun,Shopping,日常,pool,, +jet,noun,Travel,其他/旅行,pool,, +jewelry/jewellery,noun,Shopping,日常,pool,, +job,noun,Personal identification,工作/日常,pool,, +join,verb,,通用,pool,, +judge,verb,,其他,excluded,, +juice,noun,Food and drink,旅行/日常,pool,, +July,noun,,通用,pool,, +jump,verb,,通用,pool,, +June,noun,,通用,pool,, +just,adverb,,通用,pool,, +keep,verb,,通用,pool,, +key,adjective/noun,"House and home, environment",旅行/日常,pool,, +kick,noun/verb,,其他,excluded,, +kid,noun,Personal identification,日常,pool,, +kill,verb,,其他,excluded,, +kind,noun,,通用,pool,, +king,noun,Relations with other people,其他,excluded,, +kiss,noun,,通用,pool,, +kitchen,noun,"House and home, environment",日常,pool,, +kite,noun,"Free time, entertainment",其他,excluded,, +knee,noun,Health and body care,日常,pool,, +knife,noun,Shopping,日常,pool,, +know,verb,,通用,pool,, +lady,noun,Personal identification,日常,pool,, +language,noun,Language,旅行/日常,pool,, +large,adjective,,通用,pool,, +last name,noun,,通用,pool,, +late,adjective/adverb,,旅行,pool,, +later,adverb,,通用,pool,, +laugh,verb,,通用,pool,, +lazy,adjective,,通用,pool,, +leader,noun,Relations with other people,工作,work_only,, +leaf,noun,,其他,excluded,, +learn,verb,,学校与学术/通用,pool,, +leave,verb,,旅行,pool,, +left,adjective,,旅行,pool,, +leg,noun,Health and body care,日常,pool,, +lesson,noun,Education,学校与学术/通用,pool,, +let,verb,,通用,pool,, +letter,noun,Services,日常,pool,, +library,noun,"Free time, entertainment",日常,pool,, +life,noun,,通用,pool,, +light,adjective/noun,"House and home, environment",日常,pool,, +like,preposition/verb,,通用,pool,, +lily,noun,,其他,excluded,, +line,noun,,通用,pool,, +lion,noun,,其他,excluded,, +list,noun,,通用,pool,, +listen,verb,,通用,pool,, +little,adjective/adverb,,通用,pool,, +live,verb,,通用,pool,, +living,adjective,,通用,pool,yes, +living room,noun,"House and home, environment",日常,pool,, +lonely,adjective,,通用,pool,, +long,adjective,,通用,pool,, +look,noun/verb,,通用,pool,, +lot,adverb/pronoun,,通用,pool,, +love,noun/verb,,通用,pool,, +lovely,adjective,,通用,pool,, +luck,noun,,通用,pool,, +lucky,adjective,,通用,pool,, +lunch,noun,Food and drink,旅行/日常,pool,, +'m,be-verb,,通用,pool,yes,yes +machine,noun,Daily life,工作/日常,pool,, +magazine,noun,"Free time, entertainment",日常,pool,, +mail,noun,Services,日常,pool,, +make,verb,,通用,pool,, +man,noun,Personal identification,日常,pool,, +many,determiner/pronoun,,通用,pool,,yes +map,noun,Travel,旅行/日常,pool,, +March,noun,,通用,pool,, +match,noun,Shopping,日常,pool,, +math/maths,noun,Education,学校与学术,excluded,, +matter,noun,,通用,pool,, +may,modal auxiliary,,通用,pool,,yes +May,noun,,通用,pool,, +maybe,adverb,,通用,pool,, +me,pronoun,,通用,pool,,yes +meal,noun,Food and drink,旅行/日常,pool,, +mean,verb,,通用,pool,, +meat,noun,Food and drink,日常,pool,, +medicine,noun,Health and body care,旅行/日常,pool,, +meet,verb,,通用,pool,, +meeting,noun,Relations with other people,工作,work_only,, +memory,noun,,通用,pool,, +merry,adjective,,其他,excluded,, +message,noun,Services,工作/日常,pool,, +middle,adjective,,通用,pool,, +milk,noun,Food and drink,日常,pool,, +mind,noun,,通用,pool,, +mine,pronoun,,通用,pool,,yes +minute,noun,,旅行,pool,, +Miss,noun,Personal identification,日常,pool,, +miss,verb,,通用,pool,, +mobile,noun,"House and home, environment",日常,pool,, +mobile phone,noun,"House and home, environment",日常,pool,, +mom,noun,Personal identification,日常,pool,, +moment,noun,,通用,pool,, +mommy/mommie,noun,,其他,excluded,, +Monday,noun,,通用,pool,, +money,noun,Shopping,旅行/日常,pool,, +monkey,noun,,其他,excluded,, +month,noun,,通用,pool,, +moon,noun,,通用,pool,, +more,determiner/pronoun,,通用,pool,,yes +morning,noun,,通用,pool,, +most,determiner,,通用,pool,,yes +mother,noun,Personal identification,日常,pool,, +mountain,noun,"House and home, environment",旅行/日常,pool,, +mouse,noun,,其他,excluded,, +mouth,noun,Health and body care,日常,pool,, +move,noun,,通用,pool,, +movie,noun,"Free time, entertainment",日常,pool,, +Mr./Mr,noun,Personal identification,日常,pool,, +Mrs./Mrs,noun,Personal identification,日常,pool,, +much,adverb/determiner/pronoun,,通用,pool,, +mum,noun,Personal identification,日常,pool,, +music,noun,"Free time, entertainment",日常,pool,, +musician,noun,Personal identification,日常,pool,, +must,modal auxiliary,,通用,pool,,yes +my,determiner,,通用,pool,,yes +name,noun,Personal identification,日常,pool,, +nationality,noun,Personal identification,日常,pool,, +near,preposition,,旅行,pool,,yes +neck,noun,Health and body care,日常,pool,, +need,modal auxiliary,,通用,pool,,yes +neighbor/neighbour,noun,Relations with other people,日常,pool,, +never,adverb,,通用,pool,, +new,adjective,,通用,pool,, +news,noun,"Free time, entertainment",日常,pool,, +newspaper,noun,"Free time, entertainment",日常,pool,, +nice,adjective,,通用,pool,, +night,noun,,通用,pool,, +nine,number,,通用,pool,,yes +nineteen,number,,通用,pool,,yes +ninety,number,,通用,pool,,yes +no,adverb/determiner,,通用,pool,, +noise,noun,,通用,pool,, +nose,noun,Health and body care,日常,pool,, +not,adverb,,通用,pool,, +note,noun/verb,Shopping,日常,pool,, +notebook,noun,Shopping,学校与学术/日常/通用,pool,, +nothing,pronoun,,通用,pool,,yes +November,noun,,通用,pool,, +now,adverb,,通用,pool,, +number,noun,Personal identification,日常,pool,, +nurse,noun,Personal identification,日常,pool,, +o'clock,adverb,,旅行,pool,, +October,noun,,通用,pool,, +of,preposition,,通用,pool,,yes +off,adjective,,通用,pool,, +office,noun,Services,工作/日常,pool,, +officer,noun,Personal identification,工作,work_only,, +often,adverb,,通用,pool,, +OK/okay,adjective/adverb,,通用,pool,, +old,adjective,,通用,pool,, +Olympics,noun,"Free time, entertainment",其他,excluded,, +on,preposition,,通用,pool,,yes +once,adverb,,通用,pool,, +one,determiner/number,,通用,pool,,yes +only,adjective/adverb,,通用,pool,, +open,adjective/verb,,旅行,pool,, +opera,noun,"Free time, entertainment",旅行/日常,pool,, +or,conjunction,,通用,pool,,yes +orange,adjective/noun,Food and drink,日常,pool,, +order,noun,Shopping,旅行/日常,pool,, +other,determiner,,通用,pool,,yes +our,determiner,,通用,pool,,yes +ours,pronoun,,通用,pool,,yes +out,adverb,,通用,pool,, +outside,adverb,,通用,pool,, +over,preposition,,通用,pool,,yes +own,adjective,,通用,pool,, +owner,noun,Personal identification,工作/日常,pool,, +p.m./P.M./pm/PM,adverb,,旅行,pool,, +page,noun,"Free time, entertainment",学校与学术/日常/通用,pool,, +paint,noun/verb,Shopping,日常,pool,, +painting,noun,"Free time, entertainment",日常,pool,, +pair,noun,,通用,pool,, +palace,noun,"House and home, environment",旅行/日常,pool,, +pants,noun,Shopping,日常,pool,, +paper,noun,"Free time, entertainment",学校与学术/日常/通用,pool,, +paragraph,noun,Education,学校与学术,excluded,, +pardon,noun,,旅行,pool,, +parent,noun,Personal identification,日常,pool,, +park,noun,"House and home, environment",旅行/日常,pool,, +partner,noun,Personal identification,工作/日常,pool,, +party,noun,"Free time, entertainment",日常,pool,, +past,adverb/preposition,,通用,pool,, +pay,noun/verb,Shopping,旅行/日常,pool,, +peace,noun,,其他,excluded,, +pen,noun,Shopping,学校与学术/日常/通用,pool,, +pencil,noun,Shopping,学校与学术/日常/通用,pool,, +people,noun,,通用,pool,, +period,noun,,学校与学术,excluded,, +person,noun,Personal identification,日常,pool,, +personal,adjective,,通用,pool,, +pet,noun,,通用,pool,, +phone,noun/verb,Services,工作/日常,pool,, +photo,noun,"Free time, entertainment",旅行/日常,pool,, +piano,noun,"Free time, entertainment",日常,pool,, +pick,verb,,通用,pool,, +picnic,noun,"Free time, entertainment",日常,pool,, +picture,noun,"Free time, entertainment",日常,pool,, +piece,noun,,通用,pool,, +pig,noun,,其他,excluded,, +pink,adjective,,通用,pool,, +pizza,noun,Food and drink,日常,pool,, +place,noun,Places,日常,pool,, +plan,noun,,工作/通用,pool,, +plane,noun,Travel,旅行/日常,pool,, +play,noun/verb,"Free time, entertainment",日常,pool,, +player,noun,Personal identification,日常,pool,, +please,adverb,,通用,pool,, +pleasure,noun,,通用,pool,, +pocket,noun,"Free time, entertainment",日常,pool,, +poem,noun,Education,学校与学术,excluded,, +point,noun,,通用,pool,, +pollution,noun,"House and home, environment",日常,pool,, +pool,noun,"Free time, entertainment",日常,pool,, +poor,adjective,,通用,pool,, +pop,noun,"Free time, entertainment",其他,excluded,, +post,noun,Services,日常,pool,, +poster,noun,"Free time, entertainment",其他,excluded,, +potato,noun,Food and drink,日常,pool,, +practice,noun,,学校与学术/通用,pool,, +practice/practise,verb,,学校与学术/通用,pool,, +pray,verb,,其他,excluded,, +present,noun,Shopping,旅行/日常,pool,, +pretty,adjective,,通用,pool,, +price,noun,Shopping,旅行/日常,pool,, +prince,noun,Relations with other people,其他,excluded,, +princess,noun,Relations with other people,其他,excluded,, +problem,noun,Relations with other people,工作/日常,pool,, +program/programme,noun,"Free time, entertainment",日常,pool,, +purple,noun,,通用,pool,, +push,verb,,通用,pool,, +put,verb,,通用,pool,, +quarter,noun,,通用,pool,, +question,noun,Language,学校与学术/日常/通用,pool,, +quickly,adverb,,通用,pool,, +quiet,adjective,,通用,pool,, +rabbit,noun,,其他,excluded,, +radio,noun,"Free time, entertainment",日常,pool,, +rain,noun/verb,Weather,旅行/日常,pool,, +rainy,adjective,,通用,pool,, +rat,noun,,其他,excluded,, +'re,be-verb,,通用,pool,yes,yes +read,verb,,学校与学术/通用,pool,, +reader,noun,"Free time, entertainment",日常,pool,, +reading,noun,"Free time, entertainment",日常,pool,, +ready,adjective,,通用,pool,, +real,adjective/adverb,,通用,pool,, +really,adverb,,通用,pool,, +reason,noun,,通用,pool,, +red,adjective,,通用,pool,, +remember,verb,,通用,pool,, +repeat,verb,,学校与学术/通用,pool,, +reporter,noun,Personal identification,其他,excluded,, +restaurant,noun,Food and drink,旅行/日常,pool,, +result,noun,,工作/通用,pool,, +review,noun,,学校与学术,excluded,, +ribbon,noun,,其他,excluded,, +rice,noun,Food and drink,日常,pool,, +rich,adjective,,通用,pool,, +ride,noun/verb,Travel,旅行/日常,pool,, +right,adjective/adverb,,旅行,pool,, +ring,verb,,通用,pool,, +river,noun,"House and home, environment",旅行/日常,pool,, +role,noun,,其他,excluded,, +room,noun,"House and home, environment",旅行/日常,pool,, +rose,noun,,通用,pool,, +row,noun,Travel,其他/旅行,pool,, +rude,adjective,,通用,pool,, +rule,noun,,通用,pool,, +ruler,noun,Shopping,学校与学术,excluded,, +run,noun/verb,"Free time, entertainment",日常,pool,, +'s,be-verb,,通用,pool,yes,yes +sad,adjective,,通用,pool,, +sailor,noun,Personal identification,其他,excluded,, +salad,noun,Food and drink,日常,pool,, +sale,noun,Shopping,旅行/日常,pool,, +same,adjective/adverb/pronoun,,通用,pool,, +sandwich,noun,Food and drink,日常,pool,, +Saturday,noun,,通用,pool,, +save,verb,,通用,pool,, +saw,noun,,通用,pool,yes, +say,verb,,通用,pool,, +school,noun,,学校与学术/通用,pool,, +science,noun,Education,学校与学术,excluded,, +scientist,noun,Personal identification,其他,excluded,, +sea,noun,"House and home, environment",旅行/日常,pool,, +seat,noun,"Free time, entertainment",旅行/日常,pool,, +second,adjective,,通用,pool,, +section,noun,,工作/通用,pool,, +see,verb,,通用,pool,, +self,noun,,其他,excluded,, +sell,verb,,通用,pool,, +sentence,noun,Education,学校与学术,excluded,, +September,noun,,通用,pool,, +set,verb,,通用,pool,, +seven,number,,通用,pool,,yes +seventeen,number,,通用,pool,,yes +seventy,number,,通用,pool,,yes +shake,noun,,通用,pool,, +share,verb,,通用,pool,, +she,pronoun,,通用,pool,,yes +sheep,noun,,其他,excluded,, +shelf,noun,"Free time, entertainment",日常,pool,, +ship,noun,Travel,旅行/日常,pool,, +shirt,noun,Shopping,日常,pool,, +shoe,noun,Shopping,日常,pool,, +shop,noun,Daily life,旅行/日常,pool,, +shopping,noun,Shopping,旅行/日常,pool,, +short,adjective/adverb,,通用,pool,, +should,modal auxiliary,,通用,pool,,yes +shoulder,noun,Health and body care,日常,pool,, +show,verb,,通用,pool,, +shower,noun,"House and home, environment",旅行/日常,pool,, +shy,adjective,,通用,pool,, +sick,adjective,,旅行,pool,, +side,noun,,通用,pool,, +sight,noun,,旅行,pool,, +sign,noun,Personal identification,日常,pool,, +sing,verb,,通用,pool,, +singer,noun,Personal identification,日常,pool,, +sir,noun,Personal identification,日常,pool,, +sister,noun,Personal identification,日常,pool,, +sit,verb,,通用,pool,, +site,noun,,工作/通用,pool,, +six,number,,通用,pool,,yes +sixteen,number,,通用,pool,,yes +sixty,number,,通用,pool,,yes +size,noun,"Free time, entertainment",旅行/日常,pool,, +skill,noun,,工作,work_only,, +skirt,noun,Shopping,日常,pool,, +sky,noun,"House and home, environment",日常,pool,, +sleep,verb,,通用,pool,, +slow,adjective,,通用,pool,, +small,adjective,,通用,pool,, +smart,adjective,,通用,pool,, +smell,noun,Food and drink,日常,pool,, +smile,noun,,通用,pool,, +smith,noun,Personal identification,其他,excluded,, +smoke,noun,Food and drink,日常,pool,, +smoking,noun,"Free time, entertainment",日常,pool,, +snake,noun,,其他,excluded,, +snow,noun,Weather,旅行/日常,pool,, +snowy,adjective,,通用,pool,, +so,conjunction,,通用,pool,,yes +soccer,noun,"Free time, entertainment",日常,pool,, +social,adjective,,通用,pool,, +sofa,noun,"House and home, environment",日常,pool,, +solve,verb,,通用,pool,, +some,determiner/pronoun,,通用,pool,,yes +someone,pronoun,,通用,pool,,yes +something,pronoun,,通用,pool,,yes +son,noun,Personal identification,日常,pool,, +song,noun,"Free time, entertainment",日常,pool,, +soon,adverb,,通用,pool,, +sorry,adjective,,通用,pool,, +soup,noun,Food and drink,日常,pool,, +speak,verb,,通用,pool,, +special,adjective,,通用,pool,, +speech,noun,,学校与学术,excluded,, +spell,noun,,学校与学术/通用,pool,, +spend,verb,,通用,pool,, +sport,noun,"Free time, entertainment",日常,pool,, +spot,noun,,其他,excluded,, +spring,noun,,通用,pool,, +spy,noun,Personal identification,其他,excluded,, +stage,noun,"Free time, entertainment",其他,excluded,, +stand,noun,,通用,pool,, +star,noun,"Free time, entertainment",日常,pool,, +start,noun/verb,,通用,pool,, +station,noun,Travel,旅行/日常,pool,, +stay,verb,,旅行,pool,, +step,verb,,通用,pool,, +still,adjective,,通用,pool,, +stone,noun,,其他,excluded,, +stop,noun/verb,,通用,pool,, +store,noun,,旅行,pool,, +story,noun,"Free time, entertainment",日常,pool,, +straight,adverb,,旅行,pool,, +strange,adjective,,通用,pool,, +street,noun,"House and home, environment",旅行/日常,pool,, +strict,adjective,,学校与学术,excluded,, +strong,adjective,,通用,pool,, +student,noun,Education,学校与学术/日常/通用,pool,, +study,verb,,学校与学术/通用,pool,, +subject,noun,Education,学校与学术,excluded,, +subway,noun,Travel,旅行/日常,pool,, +successful,adjective,,工作,work_only,, +sugar,noun,Food and drink,日常,pool,, +suggestion,noun,,工作,work_only,, +sum,noun,,学校与学术,excluded,, +summer,noun,,通用,pool,, +sun,noun,Weather,日常,pool,, +Sunday,noun,,通用,pool,, +sunny,adjective,,通用,pool,, +sunshine,noun,Weather,日常,pool,, +super,adjective,,通用,pool,, +supermarket,noun,Shopping,旅行/日常,pool,, +sure,adjective,,通用,pool,, +surf,noun,"Free time, entertainment",旅行/日常,pool,, +surprise,noun,,通用,pool,, +survey,noun,,学校与学术,excluded,, +sweet,adjective,,通用,pool,, +swim,noun/verb,"Free time, entertainment",日常,pool,, +swimming,noun,"Free time, entertainment",日常,pool,, +swimming pool,noun,"Free time, entertainment",日常,pool,, +table,noun,"House and home, environment",日常,pool,, +take,verb,,通用,pool,, +talk,verb,,通用,pool,, +tall,adjective,,通用,pool,, +taxi,noun,Travel,旅行/日常,pool,, +tea,noun,Food and drink,旅行/日常,pool,, +teach,verb,,学校与学术/通用,pool,, +teacher,noun,Education,学校与学术/日常/通用,pool,, +team,noun,"Free time, entertainment",工作/日常,pool,, +technology,noun,,工作,work_only,, +telephone,noun,Services,日常,pool,, +television,noun,"Free time, entertainment",日常,pool,, +tell,verb,,通用,pool,, +temple,noun,Personal identification,旅行/日常,pool,, +ten,number,,通用,pool,,yes +tennis,noun,"Free time, entertainment",日常,pool,, +terrible,adjective,,通用,pool,, +test,noun,Education,学校与学术/通用,pool,, +than,conjunction/preposition,,通用,pool,,yes +thank,verb,,通用,pool,, +thanks,noun,,通用,pool,yes, +that,conjunction/determiner/pronoun,,通用,pool,,yes +the,determiner,,通用,pool,,yes +theater/theatre,noun,"Free time, entertainment",日常,pool,, +their,determiner,,通用,pool,,yes +them,pronoun,,通用,pool,,yes +then,adverb,,通用,pool,, +there,adverb,,通用,pool,, +these,determiner/pronoun,,通用,pool,,yes +they,pronoun,,通用,pool,,yes +thick,adjective,,通用,pool,, +thin,adjective,,通用,pool,, +thing,noun,,通用,pool,, +think,verb,,通用,pool,, +thirteen,number,,通用,pool,,yes +thirty,number,,通用,pool,,yes +this,determiner/pronoun,,通用,pool,,yes +those,determiner/pronoun,,通用,pool,,yes +three,number,,通用,pool,,yes +through,preposition,,通用,pool,,yes +throw,noun,,通用,pool,, +Thursday,noun,,通用,pool,, +ticket,noun,"Free time, entertainment",旅行/日常,pool,, +tiger,noun,,其他,excluded,, +tight,adjective,,通用,pool,, +time,noun,,通用,pool,, +tired,adjective,,通用,pool,, +to,infinitive-to/preposition,,通用,pool,,yes +today,adverb/noun,,通用,pool,, +together,adverb,,通用,pool,, +toilet,noun,"House and home, environment",旅行/日常,pool,, +tomato,noun,Food and drink,日常,pool,, +tomorrow,adverb/noun,,通用,pool,, +tonight,adverb,,通用,pool,, +too,adverb,,通用,pool,, +tool,noun,,通用,pool,, +tooth,noun,Health and body care,日常,pool,, +top,noun,,通用,pool,, +topic,noun,,学校与学术,excluded,, +touch,noun,,通用,pool,, +towel,noun,Shopping,旅行/日常,pool,, +tower,noun,"House and home, environment",旅行/日常,pool,, +town,noun,"House and home, environment",旅行/日常,pool,, +toy,noun,"Free time, entertainment",日常,pool,, +train,noun,Travel,旅行/日常,pool,, +travel,verb,,旅行,pool,, +tree,noun,"House and home, environment",日常,pool,, +trip,noun,Travel,旅行/日常,pool,, +trousers,noun,Shopping,日常,pool,, +truck,noun,Travel,旅行/日常,pool,, +true,adjective,,通用,pool,, +try,noun,,通用,pool,, +T-shirt/tee-shirt,noun,Shopping,日常,pool,, +tube,noun,,其他,excluded,, +Tuesday,noun,,通用,pool,, +turkey,noun,Food and drink,日常,pool,, +turn,noun/verb,,通用,pool,, +TV,noun,"House and home, environment",日常,pool,, +twelve,number,,通用,pool,,yes +twenty,number,,通用,pool,,yes +two,number,,通用,pool,,yes +type,noun,,工作/通用,pool,, +ugly,adjective,,通用,pool,, +umbrella,noun,Shopping,旅行/日常,pool,, +uncle,noun,Personal identification,日常,pool,, +under,preposition,,通用,pool,,yes +underline,noun,,学校与学术,excluded,, +until,preposition,,通用,pool,,yes +up,preposition,,通用,pool,,yes +us,pronoun,,通用,pool,,yes +use,verb,,通用,pool,, +usually,adverb,,通用,pool,, +vacation,noun,"Free time, entertainment",旅行/日常,pool,, +vase,noun,Shopping,其他,excluded,, +vegetable,noun,Food and drink,日常,pool,, +very,adverb,,通用,pool,, +video,noun,"Free time, entertainment",日常,pool,, +visit,noun/verb,,旅行,pool,, +volleyball,noun,"Free time, entertainment",其他,excluded,, +vote,noun,,其他,excluded,, +wait,verb,,旅行,pool,, +waiter,noun,Food and drink,日常,pool,, +waitress,noun,Personal identification,日常,pool,, +wake,noun,,通用,pool,, +walk,noun/verb,"Free time, entertainment",日常,pool,, +wall,noun,"House and home, environment",日常,pool,, +want,verb,,通用,pool,, +war,noun,Relations with other people,其他,excluded,, +warm,adjective,,通用,pool,, +was,be-verb,,通用,pool,yes,yes +wash,noun/verb,Daily life,日常,pool,, +watch,noun/verb,"House and home, environment",日常,pool,, +water,noun,Food and drink,旅行/日常,pool,, +way,noun,Travel,旅行/日常,pool,, +we,pronoun,,通用,pool,,yes +wear,verb,,通用,pool,, +weather,noun,Weather,旅行/日常,pool,, +Wednesday,noun,,通用,pool,, +week,noun,,通用,pool,, +weekend,noun,,通用,pool,, +welcome,interjection/verb,,旅行,pool,, +well,adjective/adverb,,通用,pool,, +were,be-verb,,通用,pool,yes,yes +what,determiner/pronoun,,通用,pool,,yes +wheel,noun,Travel,旅行/日常,pool,, +when,adverb/conjunction,,通用,pool,, +where,adverb/conjunction,,通用,pool,, +which,determiner/pronoun,,通用,pool,,yes +white,adjective/noun,,通用,pool,, +who,pronoun,,通用,pool,,yes +whose,determiner/pronoun,,通用,pool,,yes +why,adverb,,通用,pool,, +wife,noun,Personal identification,日常,pool,, +will,modal auxiliary,,通用,pool,,yes +win,verb,,通用,pool,, +wind,noun,Weather,日常,pool,, +window,noun,"House and home, environment",日常,pool,, +winter,noun,,通用,pool,, +wish,noun,,通用,pool,, +with,preposition,,通用,pool,,yes +woman,noun,Personal identification,日常,pool,, +wonderful,adjective,,通用,pool,, +word,noun,Services,学校与学术/日常/通用,pool,, +work,noun/verb,Daily life,工作/日常,pool,, +worker,noun,Personal identification,工作/日常,pool,, +world,noun,"House and home, environment",日常,pool,, +worry,noun,,通用,pool,, +would,modal auxiliary,,通用,pool,,yes +write,verb,,学校与学术/通用,pool,, +writer,noun,Personal identification,日常,pool,, +wrong,adjective,,通用,pool,, +yard,noun,"House and home, environment",日常,pool,, +year,noun,,通用,pool,, +yellow,adjective/noun,,通用,pool,, +yes,adverb,,通用,pool,, +yesterday,adverb,,通用,pool,, +yet,adverb,,通用,pool,, +yogurt/yoghurt,noun,Food and drink,日常,pool,, +you,pronoun,,通用,pool,,yes +young,adjective,,通用,pool,, +your,determiner,,通用,pool,,yes +yours,pronoun,,通用,pool,,yes +yourself,pronoun,,通用,pool,,yes +zoo,noun,Places,旅行/日常,pool,, diff --git a/kouyu_english/tool/courses/pools/a2-word-pool.csv b/kouyu_english/tool/courses/pools/a2-word-pool.csv new file mode 100644 index 0000000..7846e0e --- /dev/null +++ b/kouyu_english/tool/courses/pools/a2-word-pool.csv @@ -0,0 +1,1245 @@ +headword,pos,cefrj_topic,categories,status,word_form_variant,function_word +ability,noun,,通用,pool,, +abroad,adverb,,通用,pool,, +accept,verb,,通用,pool,, +acceptable,adjective,,通用,pool,, +accident,noun,Health and body care,日常,pool,, +account,noun,Services,日常,pool,, +achieve,verb,,通用,pool,, +across,adverb/preposition,,通用,pool,, +act,noun,"Free time, entertainment",日常,pool,, +actually,adverb,,通用,pool,, +addition,noun,Language,日常,pool,, +additional,adjective,,通用,pool,, +adjective,noun,Language,学校与学术,excluded,, +adjust,verb,,通用,pool,, +admire,verb,,通用,pool,, +admit,verb,,通用,pool,, +adult,adjective/noun,Personal identification,日常,pool,, +advanced,adjective,,通用,pool,, +advantage,noun,,通用,pool,, +adventure,noun,"Free time, entertainment",日常,pool,, +advertisement,noun,Services,日常,pool,, +advertising,noun,Services,日常,pool,, +advice,noun,,通用,pool,, +advise,verb,,通用,pool,, +affair,noun,,其他,excluded,, +against,preposition,,通用,pool,,yes +aged,adjective,,通用,pool,, +agency,noun,Travel,工作,work_only,, +agent,noun,Services,日常,pool,, +ahead,adverb,,通用,pool,, +air,noun,,通用,pool,, +aisle,noun,Travel,旅行,pool,, +alarm,noun,,通用,pool,, +alarm clock,noun,"House and home, environment",日常,pool,, +alive,adjective,,通用,pool,, +allow,verb,,通用,pool,, +alright,adjective/adverb,,通用,pool,, +although,conjunction,,通用,pool,,yes +ambition,noun,,通用,pool,, +among,preposition,,通用,pool,,yes +amused,adjective,,通用,pool,, +amusement,noun,"Free time, entertainment",日常,pool,, +ancestor,noun,Relations with other people,其他,excluded,, +ancient,adjective,,通用,pool,, +angel,noun,"Free time, entertainment",其他,excluded,, +angrily,adverb,,通用,pool,, +ankle,noun,Health and body care,日常,pool,, +anniversary,noun,Daily life,日常,pool,, +annoy,verb,,通用,pool,, +annoying,adjective,,通用,pool,, +anxious,adjective,,通用,pool,, +anymore,adverb,,通用,pool,, +anyway,adverb,,通用,pool,, +anywhere,adverb,,通用,pool,, +apart,adverb,,通用,pool,, +apartment,noun,Places,日常,pool,, +apologize/apologise,verb,,通用,pool,, +apparently,adverb,,通用,pool,, +appear,verb,,通用,pool,, +appearance,noun,,通用,pool,, +apply,verb,,通用,pool,, +appointment,noun,,通用,pool,, +appreciate,verb,,通用,pool,, +appropriate,adjective,,通用,pool,, +architecture,noun,"House and home, environment",日常,pool,, +area,noun,,通用,pool,, +argue,verb,,通用,pool,, +argument,noun,,通用,pool,, +armchair,noun,"House and home, environment",日常,pool,, +armed,adjective,,其他,excluded,, +artificial,adjective,,通用,pool,, +asleep,adjective,,通用,pool,, +assistant,adjective,,通用,pool,, +association,noun,Relations with other people,其他,excluded,, +astronaut,noun,Personal identification,其他,excluded,, +athlete,noun,Personal identification,其他,excluded,, +atom,noun,,其他,excluded,, +attack,noun/verb,Relations with other people,日常,pool,, +attempt,noun,,通用,pool,, +attention,noun,,通用,pool,, +attitude,noun,,通用,pool,, +attractive,adjective,,通用,pool,, +audience,noun,"Free time, entertainment",日常,pool,, +audio,adjective,,通用,pool,, +author,noun,"Free time, entertainment",日常,pool,, +automatic,adjective,,通用,pool,, +automatically,adverb,,通用,pool,, +average,adjective/noun,,通用,pool,, +avoid,verb,,通用,pool,, +award,noun,"Free time, entertainment",日常,pool,, +awful,adjective,,通用,pool,, +background,noun,,通用,pool,, +badly,adverb,,通用,pool,, +badminton,noun,"Free time, entertainment",日常,pool,, +bake,verb,,通用,pool,, +balcony,noun,"House and home, environment",日常,pool,, +balloon,noun,,通用,pool,, +banking,noun,Services,日常,pool,, +barbecue,noun,"Free time, entertainment",日常,pool,, +barber,noun,Services,日常,pool,, +bargain,noun,Shopping,日常,pool,, +base,noun,,通用,pool,, +basic,adjective,,通用,pool,, +basically,adverb,,通用,pool,, +basket,noun,Shopping,日常,pool,, +batch,noun,Language,日常,pool,, +battery,noun,,通用,pool,, +bay,noun,"House and home, environment",日常,pool,, +beauty,noun,"Free time, entertainment",日常,pool,, +been,be-verb,,通用,pool,yes,yes +beer,noun,Food and drink,日常,pool,, +beg,verb,,通用,pool,, +beginner,noun,Personal identification,日常,pool,, +beginning,noun,,通用,pool,, +behavior/behaviour,noun,,通用,pool,, +being,noun,Language,日常,pool,yes, +belly,noun,,通用,pool,, +belong,verb,,通用,pool,, +belt,noun,Shopping,日常,pool,, +bench,noun,"House and home, environment",日常,pool,, +bend,verb,,通用,pool,, +besides,adverb,,通用,pool,, +beyond,preposition,,通用,pool,,yes +bill,noun,Shopping,日常,pool,, +bit,noun,Language,日常,pool,, +bite,noun,,通用,pool,, +blackboard,noun,Education,学校与学术,excluded,, +blame,verb,,通用,pool,, +blanket,noun,Shopping,日常,pool,, +blonde,adjective,,通用,pool,, +blood,noun,,通用,pool,, +bloom,noun,,其他,excluded,, +board game,noun,"Free time, entertainment",日常,pool,, +boil,verb,,通用,pool,, +boiled,adjective,,通用,pool,, +bonus,noun,Services,工作,work_only,, +bookcase,noun,Shopping,日常,pool,, +bookshelf,noun,"House and home, environment",日常,pool,, +bookshop,noun,Shopping,日常,pool,, +bored,adjective,,通用,pool,, +boss,noun,Personal identification,工作,work_only,, +bother,verb,,通用,pool,, +bra,noun,Shopping,日常,pool,, +brainstorm,noun,,其他,excluded,, +brake,noun,,通用,pool,, +branch,noun,Services,日常,pool,, +brand,noun,Shopping,日常,pool,, +brave,adjective,,通用,pool,, +breeze,noun,Weather,日常,pool,, +bride,noun,Personal identification,日常,pool,, +brilliant,adjective,,通用,pool,, +budget,noun,Services,日常,pool,, +bug,noun,,通用,pool,, +bulb,noun,,通用,pool,, +burn,noun,,通用,pool,, +bury,verb,,其他,excluded,, +bus station,noun,Travel,旅行,pool,, +bus stop,noun,Travel,旅行,pool,, +bush,noun,Places,日常,pool,, +businessman,noun,Personal identification,工作,work_only,, +businesswoman,noun,Personal identification,工作,work_only,, +cab,noun,Travel,旅行,pool,, +cafeteria,noun,Food and drink,日常,pool,, +calendar,noun,"House and home, environment",日常,pool,, +camping,noun,"Free time, entertainment",日常,pool,, +campus,noun,Education,学校与学术,excluded,, +capital,noun,Places,日常,pool,, +capital letter,noun,Language,学校与学术,excluded,, +captain,noun,Personal identification,日常,pool,, +car park,noun,Travel,旅行,pool,, +carrot,noun,Shopping,日常,pool,, +cash,noun,Services,日常,pool,, +cassette,noun,"Free time, entertainment",其他,excluded,, +castle,noun,"House and home, environment",日常,pool,, +cause,verb,,通用,pool,, +cent,noun,,通用,pool,, +center/centre,noun,,通用,pool,, +centimeter/centimetre,noun,,通用,pool,, +century,noun,,通用,pool,, +cereal,noun,Food and drink,日常,pool,, +certain,adjective,,通用,pool,, +certainly,adverb,,通用,pool,, +chain,noun,,通用,pool,, +chairman,noun,,其他,excluded,, +challenge,noun,,通用,pool,, +champagne,noun,Food and drink,日常,pool,, +championship,noun,,其他,excluded,, +chance,noun,,通用,pool,, +chapter,noun,"Free time, entertainment",学校与学术,excluded,, +chart,noun,Education,通用,pool,, +chat,verb,,通用,pool,, +cheap,adjective,,通用,pool,, +cheek,noun,Health and body care,日常,pool,, +cheer,verb,,通用,pool,, +chef,noun,Personal identification,日常,pool,, +chemical,adjective,,通用,pool,, +cheque,noun,Services,其他,excluded,, +chess,noun,"Free time, entertainment",日常,pool,, +chest,noun,Health and body care,日常,pool,, +childhood,noun,,通用,pool,, +chili/chilli,noun,Food and drink,日常,pool,, +chimpanzee,noun,,其他,excluded,, +chin,noun,Health and body care,日常,pool,, +chirp,noun,,其他,excluded,, +choice,noun,,通用,pool,, +cigarette,noun,"Free time, entertainment",日常,pool,, +citizen,noun,,其他,excluded,, +claim,verb,,通用,pool,, +classic,adjective,,通用,pool,, +classical music,noun,,通用,pool,, +cleaner,noun,"House and home, environment",日常,pool,, +clear,adjective,,通用,pool,, +clearly,adverb,,通用,pool,, +clerk,noun,Personal identification,日常,pool,, +click,verb,,通用,pool,, +climbing,noun,"Free time, entertainment",日常,pool,, +clone,verb,,其他,excluded,, +clown,noun,,其他,excluded,, +clue,noun,Personal identification,其他,excluded,, +coast,noun,"House and home, environment",日常,pool,, +coin,noun,Shopping,日常,pool,, +cola,noun,Food and drink,日常,pool,, +colorful/colourful,adjective,,通用,pool,, +column,noun,,学校与学术,excluded,, +comb,noun,Shopping,日常,pool,, +comfortable,adjective,,通用,pool,, +comic,adjective/noun,"Free time, entertainment",日常,pool,, +commitment,noun,,通用,pool,, +committee,noun,,其他,excluded,, +common,adjective,,通用,pool,, +communicate,verb,,通用,pool,, +communication,noun,,通用,pool,, +company,noun,,通用,pool,, +comparative,noun,,学校与学术,excluded,, +compare,verb,,通用,pool,, +competition,noun,,通用,pool,, +complain,verb,,通用,pool,, +complaint,noun,,通用,pool,, +complete,adjective,,通用,pool,, +composer,noun,Personal identification,其他,excluded,, +concentrate,verb,,通用,pool,, +concern,noun,,通用,pool,, +condition,noun,,通用,pool,, +confident,adjective,,通用,pool,, +confuse,verb,,通用,pool,, +confused,adjective,,通用,pool,, +consequence,noun,,通用,pool,, +consider,verb,,通用,pool,, +consist,verb,,通用,pool,, +contact,noun/verb,,通用,pool,, +container,noun,"House and home, environment",日常,pool,, +context,noun,Language,学校与学术,excluded,, +continent,noun,Places,其他,excluded,, +continue,verb,,通用,pool,, +contrast,noun,,学校与学术,excluded,, +control,noun,,通用,pool,, +convenience,noun,,通用,pool,, +convenient,adjective,,通用,pool,, +cooker,noun,"House and home, environment",日常,pool,, +cooking,noun,,通用,pool,, +cooler,noun,,通用,pool,, +correctly,adverb,,通用,pool,, +cost,noun/verb,,通用,pool,, +count,verb,,通用,pool,, +country,noun,Places,日常,pool,, +countryside,noun,Places,日常,pool,, +couple,noun,Personal identification,日常,pool,, +court,noun,Relations with other people,日常,pool,, +crazy,adjective,,通用,pool,, +create,verb,,通用,pool,, +creative,adjective,,通用,pool,, +creativity,noun,,通用,pool,, +creature,noun,,通用,pool,, +credit,noun,Services,日常,pool,, +cricket,noun,"Free time, entertainment",其他,excluded,, +crime,noun,Relations with other people,日常,pool,, +crisp,noun,,通用,pool,, +criticize/criticise,verb,,通用,pool,, +cross,noun/verb,,通用,pool,, +crowd,noun,Travel,旅行,pool,, +crowded,adjective,,通用,pool,, +crown,noun,,其他,excluded,, +cruise,noun,Travel,旅行,pool,, +cupboard,noun,"House and home, environment",日常,pool,, +curry,noun,Food and drink,日常,pool,, +curse,noun,"Free time, entertainment",其他,excluded,, +custom,noun,Places,日常,pool,, +customer,noun,Services,日常,pool,, +cycling,noun,"Free time, entertainment",日常,pool,, +daily,adjective/adverb,,通用,pool,, +dam,noun,Places,其他,excluded,, +dancer,noun,Personal identification,日常,pool,, +danger,noun,Travel,旅行,pool,, +dangerous,adjective,,通用,pool,, +daylight,noun,,通用,pool,, +dead,adjective,,通用,pool,, +deal,noun,Language,日常,pool,, +death,noun,,通用,pool,, +debate,noun,Education,学校与学术,excluded,, +decide,verb,,通用,pool,, +deep,adverb,,通用,pool,, +deeply,adverb,,通用,pool,, +degree,noun,,通用,pool,, +delay,noun,,通用,pool,, +dentist,noun,Personal identification,日常,pool,, +department store,noun,Shopping,日常,pool,, +depend,verb,,通用,pool,, +description,noun,,通用,pool,, +desert,noun,"House and home, environment",日常,pool,, +dessert,noun,"House and home, environment",日常,pool,, +destroy,verb,,通用,pool,, +detail,noun,,通用,pool,, +develop,verb,,通用,pool,, +developed,adjective,,通用,pool,, +diamond,noun,Shopping,日常,pool,, +diary,noun,Shopping,日常,pool,, +die,verb,,通用,pool,, +diet,noun,Food and drink,日常,pool,, +differently,adverb,,通用,pool,, +difficulty,noun,,通用,pool,, +digital camera,noun,"Free time, entertainment",日常,pool,, +dinosaur,noun,,其他,excluded,, +direct,adjective,,通用,pool,, +direction,noun,,通用,pool,, +director,noun,Personal identification,日常,pool,, +disadvantage,noun,,通用,pool,, +disagree,verb,,通用,pool,, +disappear,verb,,通用,pool,, +disappointed,adjective,,通用,pool,, +disappointing,adjective,,通用,pool,, +disco,noun,"Free time, entertainment",日常,pool,, +discover,verb,,通用,pool,, +discussion,noun,,通用,pool,, +dishonest,adjective,,其他,excluded,, +dislike,noun,Personal identification,日常,pool,, +display,noun,,通用,pool,, +disturb,verb,,通用,pool,, +divide,verb,,通用,pool,, +dizzy,adjective,,通用,pool,, +done,do-verb,,通用,pool,yes,yes +double,adjective,,通用,pool,, +doubt,noun,,通用,pool,, +download,verb,,通用,pool,, +downstairs,adverb,,通用,pool,, +downtown,adverb,,通用,pool,, +drawer,noun,"House and home, environment",日常,pool,, +drawing,noun,"Free time, entertainment",日常,pool,, +dressed,adjective,,通用,pool,, +drill,noun,Education,其他,excluded,, +driver's license/driving licence,noun,Travel,旅行,pool,, +drug,noun,Shopping,日常,pool,, +drugstore,noun,Shopping,日常,pool,, +duck,noun,,通用,pool,, +during,preposition,,通用,pool,,yes +dust,noun,,通用,pool,, +earn,verb,,通用,pool,, +earring,noun,Shopping,日常,pool,, +earth,noun,Places,日常,pool,, +earthquake,noun,Weather,日常,pool,, +easily,adverb,,通用,pool,, +east,adjective/adverb/noun,,通用,pool,, +editor,noun,Personal identification,日常,pool,, +education,noun,Education,学校与学术,excluded,, +educational,adjective,,学校与学术,excluded,, +effect,noun,,通用,pool,, +effort,noun,,通用,pool,, +elderly,adjective,,通用,pool,, +electric,adjective,,通用,pool,, +elephant,noun,,通用,pool,, +elevator,noun,"House and home, environment",日常,pool,, +elsewhere,adverb,,通用,pool,, +email,verb,,通用,pool,, +embarrassing,adjective,,通用,pool,, +emergency,noun,,通用,pool,, +empty,adjective,,通用,pool,, +encourage,verb,,通用,pool,, +endangered,adjective,,其他,excluded,, +ending,noun,,通用,pool,, +energetic,adjective,,通用,pool,, +enormous,adjective,,通用,pool,, +enough,adverb/determiner/pronoun,,通用,pool,, +enter,verb,,通用,pool,, +entertainment,noun,"Free time, entertainment",日常,pool,, +entrance,noun,"House and home, environment",日常,pool,, +envelope,noun,,通用,pool,, +envy,noun,Relations with other people,日常,pool,, +episode,noun,"Free time, entertainment",日常,pool,, +error,noun,,通用,pool,, +escalator,noun,"House and home, environment",日常,pool,, +escape,noun,,通用,pool,, +especially,adverb,,通用,pool,, +essay,noun,Education,学校与学术,excluded,, +establish,verb,,其他,excluded,, +euro,noun,,通用,pool,, +even,adverb,,通用,pool,, +ever,adverb,,通用,pool,, +evidence,noun,,其他,excluded,, +exactly,adverb,,通用,pool,, +exam,noun,,学校与学术,excluded,, +except,conjunction/preposition,,通用,pool,,yes +exchange,noun,,通用,pool,, +exhibition,noun,"Free time, entertainment",日常,pool,, +exist,verb,,通用,pool,, +expect,verb,,通用,pool,, +experience,noun,,通用,pool,, +expert,noun,Personal identification,日常,pool,, +explain,verb,,通用,pool,, +explanation,noun,,通用,pool,, +explore,verb,,通用,pool,, +express,noun,,通用,pool,, +expression,noun,,通用,pool,, +extra,adjective/adverb,,通用,pool,, +extremely,adverb,,通用,pool,, +fact,noun,,通用,pool,, +fail,verb,,通用,pool,, +fairly,adverb,,通用,pool,, +fall,verb,,通用,pool,, +familiar,adjective,,通用,pool,, +fancy,adjective,,通用,pool,, +fantastic,adjective,,通用,pool,, +far,adverb,,通用,pool,, +fare,noun,Travel,旅行,pool,, +fascinating,adjective,,通用,pool,, +fashion,noun,Shopping,日常,pool,, +fast food,noun,Food and drink,日常,pool,, +fault,noun,,通用,pool,, +favor/favour,noun,,通用,pool,, +fear,noun,,通用,pool,, +feather,noun,,其他,excluded,, +feature,noun,,通用,pool,, +fee,noun,Travel,旅行,pool,, +female,adjective,,通用,pool,, +fence,noun,"House and home, environment",日常,pool,, +few,determiner,,通用,pool,,yes +fiction,noun,"Free time, entertainment",日常,pool,, +fighter,noun,Personal identification,其他,excluded,, +figure,noun/verb,,通用,pool,, +film,noun,"Free time, entertainment",日常,pool,, +final,adjective/noun,,通用,pool,, +finally,adverb,,通用,pool,, +first name,noun,Personal identification,日常,pool,, +fisherman,noun,Personal identification,日常,pool,, +fit,adjective,,通用,pool,, +fix,noun,,通用,pool,, +flea,noun,,其他,excluded,, +flight,noun,Travel,旅行,pool,, +float,noun,Travel,旅行,pool,, +flood,noun,Weather,日常,pool,, +flour,noun,Food and drink,日常,pool,, +fog,noun,Weather,日常,pool,, +folder,noun,,通用,pool,, +follow,verb,,通用,pool,, +fool,noun,,通用,pool,, +footballer,noun,Personal identification,日常,pool,, +forbid,verb,,通用,pool,, +force,noun,,通用,pool,, +forest,noun,"House and home, environment",日常,pool,, +forever,adverb,,通用,pool,, +fork,noun,Shopping,日常,pool,, +fortunately,adverb,,通用,pool,, +fortune,noun,,通用,pool,, +forward,adverb,,通用,pool,, +frame,noun,,通用,pool,, +frank,adjective,,通用,pool,, +freedom,noun,,通用,pool,, +freeze,verb,,通用,pool,, +fresh,adjective,,通用,pool,, +fridge,noun,"House and home, environment",日常,pool,, +fried,adjective,,通用,pool,, +friendship,noun,Relations with other people,日常,pool,, +frighten,verb,,通用,pool,, +frightened,adjective,,通用,pool,, +frightening,adjective,,通用,pool,, +fry,noun,,通用,pool,, +fully,adverb,,通用,pool,, +function,verb,,其他,excluded,, +furniture,noun,"House and home, environment",日常,pool,, +further,adjective,,通用,pool,, +gallery,noun,Services,日常,pool,, +garage,noun,"House and home, environment",日常,pool,, +garlic,noun,Food and drink,日常,pool,, +gas,noun,Services,日常,pool,, +gate,noun,"House and home, environment",日常,pool,, +gather,verb,,通用,pool,, +gender,noun,Personal identification,其他,excluded,, +generation,noun,,通用,pool,, +gentle,adjective,,通用,pool,, +given,adjective,,通用,pool,yes, +globe,noun,,其他,excluded,, +glove,noun,Shopping,日常,pool,, +golden,adjective,,通用,pool,, +golf,noun,"Free time, entertainment",日常,pool,, +good-looking,adjective,,通用,pool,, +government,noun,Relations with other people,其他,excluded,, +grace,noun,,其他,excluded,, +gradually,adverb,,通用,pool,, +graduate,verb,,学校与学术,excluded,, +gram/gramme,noun,,通用,pool,, +grandchild,noun,Personal identification,日常,pool,, +granddad,noun,Personal identification,日常,pool,, +granddaughter,noun,Personal identification,日常,pool,, +grandson,noun,Personal identification,日常,pool,, +granny,noun,,通用,pool,, +grateful,adjective,,通用,pool,, +greatly,adverb,,通用,pool,, +greedy,adjective,,通用,pool,, +grilled,adjective,,通用,pool,, +grocery store,noun,,通用,pool,, +guard,noun,Personal identification,日常,pool,, +guidebook,noun,,通用,pool,, +gun,noun,,其他,excluded,, +half-price,adjective/adverb,,通用,pool,, +ham,noun,Food and drink,日常,pool,, +handbag,noun,Shopping,日常,pool,, +handicapped,adjective,,其他,excluded,, +handle,noun,,通用,pool,, +happily,adverb,,通用,pool,, +happiness,noun,,通用,pool,, +hardly,adverb,,通用,pool,, +harm,verb,,通用,pool,, +harmful,adjective,,通用,pool,, +harmony,noun,,通用,pool,, +harvest,noun,,其他,excluded,, +hate,verb,,通用,pool,, +headphone,noun,"Free time, entertainment",其他,excluded,, +headteacher,noun,Personal identification,学校与学术,excluded,, +heat,noun,,通用,pool,, +heating,noun,"House and home, environment",日常,pool,, +heavily,adverb,,通用,pool,, +helpful,adjective,,通用,pool,, +hero,noun,,通用,pool,, +herself,pronoun,,通用,pool,,yes +hey,interjection,,通用,pool,,yes +high school,noun,,学校与学术,excluded,, +highway,noun,Travel,旅行,pool,, +hike,noun,Travel,旅行,pool,, +hiking,noun,,通用,pool,, +himself,pronoun,,通用,pool,,yes +hip hop/hip-hop/hiphop,noun,"Free time, entertainment",日常,pool,, +hit,verb,,通用,pool,, +hockey,noun,"Free time, entertainment",其他,excluded,, +honey,noun,Food and drink,日常,pool,, +honor/honour,noun,,其他,excluded,, +horror,noun,,其他,excluded,, +host,noun,,通用,pool,, +however,adverb,,通用,pool,, +hug,verb,,通用,pool,, +human,adjective,,通用,pool,, +hundred,number,,通用,pool,,yes +hunter,noun,Personal identification,其他,excluded,, +ID,noun,,通用,pool,, +ID card,noun,Services,日常,pool,, +ill,adjective,,通用,pool,, +illegal,adjective,,通用,pool,, +image,noun,,通用,pool,, +imagination,noun,,其他,excluded,, +impact,noun,,通用,pool,, +impatient,adjective,,通用,pool,, +importance,noun,,通用,pool,, +importantly,adverb,,通用,pool,, +impossible,adjective,,通用,pool,, +impress,verb,,通用,pool,, +improve,verb,,通用,pool,, +inch,noun,,通用,pool,, +include,verb,,通用,pool,, +increase,verb,,通用,pool,, +indeed,adverb,,通用,pool,, +independence,noun,,其他,excluded,, +indicate,verb,,其他,excluded,, +indoor,adjective,,通用,pool,, +inexpensive,adjective,,通用,pool,, +influence,noun,,通用,pool,, +injure,verb,,通用,pool,, +inner,adjective,,通用,pool,, +insect,noun,,通用,pool,, +inspiration,noun,,其他,excluded,, +instant,adjective,,通用,pool,, +instead,adverb,,通用,pool,, +instrument,noun,"Free time, entertainment",日常,pool,, +intelligence,noun,Personal identification,其他,excluded,, +intelligent,adjective,,通用,pool,, +interest,noun,Personal identification,日常,pool,, +international,adjective,,通用,pool,, +invade,verb,,其他,excluded,, +invent,verb,,其他,excluded,, +invention,noun,,其他,excluded,, +invite,verb,,通用,pool,, +issue,noun,,通用,pool,, +IT,noun,,通用,pool,, +itself,pronoun,,通用,pool,,yes +jam,noun,Food and drink,日常,pool,, +jelly,noun,,通用,pool,, +joke,noun,,通用,pool,, +journey,noun,Travel,旅行,pool,, +joy,noun,,通用,pool,, +junior,adjective,,学校与学术,excluded,, +junk,noun,,通用,pool,, +killer,noun,Relations with other people,其他,excluded,, +kilo,noun,,通用,pool,, +kilogram/kilogramme,noun,,通用,pool,, +kilometer/kilometre,noun,,通用,pool,, +kindly,adjective,,通用,pool,, +kingdom,noun,Places,其他,excluded,, +kit,noun,,通用,pool,, +knock,noun,,通用,pool,, +knowledge,noun,Education,通用,pool,, +labor/labour,noun,Personal identification,工作,work_only,, +lack,noun,,通用,pool,, +lake,noun,"House and home, environment",日常,pool,, +lamp,noun,"House and home, environment",日常,pool,, +land,verb,,通用,pool,, +landscape,noun,,通用,pool,, +lane,noun,Travel,旅行,pool,, +last,determiner/pronoun,,通用,pool,,yes +latest,adjective,,通用,pool,, +latter,adverb/pronoun,,通用,pool,, +law,noun,Relations with other people,日常,pool,, +lawyer,noun,Personal identification,日常,pool,, +laziness,noun,,其他,excluded,, +lead,noun,,通用,pool,, +learner,noun,Education,学校与学术,excluded,, +least,determiner,,通用,pool,,yes +leather,noun,,通用,pool,, +left-hand,adjective,,通用,pool,, +leisure,noun,"Free time, entertainment",日常,pool,, +lemon,noun,Food and drink,日常,pool,, +lemonade,noun,Food and drink,日常,pool,, +lend,verb,,通用,pool,, +less,adverb/determiner/pronoun,,通用,pool,, +level,noun,,通用,pool,, +liberty,noun,,其他,excluded,, +license/licence,verb,,通用,pool,, +lie,verb,,通用,pool,, +lifestyle,noun,,通用,pool,, +likely,adjective,,通用,pool,, +lip,noun,Health and body care,日常,pool,, +liter/litre,noun,,通用,pool,, +lively,adjective,,通用,pool,, +load,noun,,通用,pool,, +local,adjective,,通用,pool,, +lock,noun,"House and home, environment",日常,pool,, +logical,adjective,,其他,excluded,, +loose,adjective,,通用,pool,, +lose,verb,,通用,pool,, +lost,adjective,,通用,pool,, +loudly,adverb,,通用,pool,, +lover,noun,Personal identification,其他,excluded,, +low,adjective/adverb,,通用,pool,, +luckily,adverb,,通用,pool,, +lunchtime,noun,Food and drink,日常,pool,, +lyric,adjective,,其他,excluded,, +mad,adjective,,通用,pool,, +magic,adjective/noun,,通用,pool,, +main course,noun,,通用,pool,, +mainly,adverb,,通用,pool,, +major,adjective,,通用,pool,, +maker,noun,Personal identification,日常,pool,, +make-up,noun,,通用,pool,, +male,noun,Personal identification,日常,pool,, +mall,noun,Shopping,日常,pool,, +manage,verb,,通用,pool,, +manager,noun,Personal identification,日常,pool,, +manner,noun,,通用,pool,, +mark,noun/verb,,其他,excluded,, +market,noun,Shopping,日常,pool,, +married,adjective,,通用,pool,, +marry,verb,,通用,pool,, +marvelous/marvellous,adjective,,通用,pool,, +material,noun,,通用,pool,, +max,noun,,其他,excluded,, +meaning,noun,,通用,pool,, +medal,noun,,其他,excluded,, +medical,adjective,,通用,pool,, +melon,noun,Food and drink,日常,pool,, +member,noun,Relations with other people,日常,pool,, +mention,noun,,通用,pool,, +menu,noun,Food and drink,日常,pool,, +metal,noun,,通用,pool,, +meter/metre,noun,,通用,pool,, +method,noun,,通用,pool,, +midday,noun,,通用,pool,, +midnight,noun,,通用,pool,, +might,modal auxiliary,,通用,pool,,yes +military,adjective,,其他,excluded,, +million,number,,通用,pool,,yes +mineral water,noun,Food and drink,日常,pool,, +mirror,noun,Shopping,日常,pool,, +missing,adjective,,通用,pool,, +mistake,noun,,通用,pool,, +mix,verb,,通用,pool,, +model,noun,,通用,pool,, +modern,adjective,,通用,pool,, +mood,noun,,通用,pool,, +mosque,noun,"House and home, environment",日常,pool,, +mostly,adverb,,通用,pool,, +motorway,noun,Travel,旅行,pool,, +MP3 player,noun,"Free time, entertainment",其他,excluded,, +Ms./Ms,noun,Personal identification,日常,pool,, +mug,noun,Shopping,日常,pool,, +murder,noun,Relations with other people,其他,excluded,, +museum,noun,Places,日常,pool,, +mushroom,noun,Food and drink,日常,pool,, +musical,adjective,,通用,pool,, +myself,pronoun,,通用,pool,,yes +mysterious,adjective,,通用,pool,, +mystery,noun,,通用,pool,, +napkin,noun,,通用,pool,, +nation,noun,Places,其他,excluded,, +national,adjective,,通用,pool,, +native,adjective,,通用,pool,, +natural,adjective,,通用,pool,, +nature,noun,"House and home, environment",日常,pool,, +nearly,adverb,,通用,pool,, +necessary,adjective,,通用,pool,, +negative,adjective,,通用,pool,, +nervous,adjective,,通用,pool,, +net,adjective,,其他,excluded,, +next,adverb/determiner,,通用,pool,, +next to,preposition,,通用,pool,,yes +no one,pronoun,,通用,pool,,yes +nobody,pronoun,,通用,pool,,yes +noisy,adjective,,通用,pool,, +noon,noun,,通用,pool,, +normal,adjective,,通用,pool,, +north,adjective/adverb/noun,,通用,pool,, +notice,noun,,通用,pool,, +noun,noun,Language,学校与学术,excluded,, +novel,noun,Education,通用,pool,, +nowadays,adverb,,通用,pool,, +oak,noun,,其他,excluded,, +occupation,noun,Personal identification,工作,work_only,, +offer,noun/verb,,通用,pool,, +official,adjective,,通用,pool,, +oil,noun,Services,日常,pool,, +olive oil,noun,,通用,pool,, +Olympic,adjective,,其他,excluded,, +omelet/omelette,noun,Food and drink,日常,pool,, +onion,noun,Food and drink,日常,pool,, +online,adjective/adverb,,通用,pool,, +operate,verb,,通用,pool,, +opinion,noun,,通用,pool,, +opportunity,noun,,通用,pool,, +oppose,verb,,其他,excluded,, +opposite,adjective/preposition,,通用,pool,, +organize/organise,verb,,通用,pool,, +organized/organised,adjective,,通用,pool,, +original,adjective,,通用,pool,, +orphan,noun,Personal identification,其他,excluded,, +ourselves,pronoun,,通用,pool,,yes +out of,preposition,,通用,pool,,yes +oven,noun,"House and home, environment",日常,pool,, +overseas,adverb,,通用,pool,, +overweight,adjective,,通用,pool,, +pacific,adjective,,其他,excluded,, +pack,noun/verb,Shopping,日常,pool,, +painter,noun,Personal identification,日常,pool,, +pal,noun,Relations with other people,其他,excluded,, +pan,noun,Shopping,日常,pool,, +panic,noun,Health and body care,日常,pool,, +part,noun,,通用,pool,, +partly,adverb,,通用,pool,, +pass,noun/verb,,通用,pool,, +passage,noun,"Free time, entertainment",日常,pool,, +passenger,noun,Travel,旅行,pool,, +pasta,noun,Food and drink,日常,pool,, +path,noun,Places,日常,pool,, +patient,noun,Health and body care,日常,pool,, +PC,noun,"Free time, entertainment",日常,pool,, +pea,noun,Food and drink,日常,pool,, +peaceful,adjective,,通用,pool,, +pear,noun,Food and drink,日常,pool,, +pence,noun,Shopping,其他,excluded,, +penfriend/pen friend,noun,Relations with other people,其他,excluded,, +pepper,noun,Food and drink,日常,pool,, +perfect,adjective,,通用,pool,, +perfectly,adverb,,通用,pool,, +perform,verb,,通用,pool,, +performance,noun,,通用,pool,, +perfume,noun,Shopping,日常,pool,, +perhaps,adverb,,通用,pool,, +permission,noun,,通用,pool,, +personality,noun,Personal identification,日常,pool,, +petrol,noun,"House and home, environment",日常,pool,, +petrol station,noun,"House and home, environment",日常,pool,, +photograph,noun,"Free time, entertainment",日常,pool,, +photographer,noun,Personal identification,日常,pool,, +photography,noun,"Free time, entertainment",日常,pool,, +physical,adjective,,通用,pool,, +physically,adverb,,通用,pool,, +pile,noun,Language,日常,pool,, +pilgrim,noun,,其他,excluded,, +pill,noun,Health and body care,日常,pool,, +pilot,noun,Personal identification,日常,pool,, +pity,noun,,通用,pool,, +planet,noun,Places,日常,pool,, +plant,noun,,通用,pool,, +plastic,adjective,,通用,pool,, +plate,noun,Food and drink,日常,pool,, +playful,adjective,,通用,pool,, +playground,noun,"House and home, environment",日常,pool,, +pleasant,adjective,,通用,pool,, +pleased,adjective,,通用,pool,, +pleasing,adjective,,通用,pool,, +plenty,noun,Language,日常,pool,, +plural,noun,Language,学校与学术,excluded,, +plus,preposition,,通用,pool,,yes +police,noun,Relations with other people,日常,pool,, +police officer,noun,Relations with other people,日常,pool,, +police station,noun,Services,日常,pool,, +policeman,noun,Relations with other people,日常,pool,, +policewoman,noun,Relations with other people,日常,pool,, +polite,adjective,,通用,pool,, +political,adjective,,其他,excluded,, +pollute,verb,,通用,pool,, +popular,adjective,,通用,pool,, +population,noun,,通用,pool,, +portrait,noun,"Free time, entertainment",日常,pool,, +position,noun,,通用,pool,, +possible,adjective,,通用,pool,, +possibly,adverb,,通用,pool,, +post office,noun,Services,日常,pool,, +pour,verb,,通用,pool,, +power,noun,,通用,pool,, +powerful,adjective,,通用,pool,, +precise,adjective,,其他,excluded,, +predict,verb,,通用,pool,, +prediction,noun,,通用,pool,, +prefer,verb,,通用,pool,, +prepare,verb,,通用,pool,, +pressure,noun,,通用,pool,, +pretend,verb,,通用,pool,, +prevent,verb,,通用,pool,, +pride,noun,,通用,pool,, +principal,adjective,,学校与学术,excluded,, +print,verb,,通用,pool,, +printer,noun,"Free time, entertainment",日常,pool,, +private,adjective,,通用,pool,, +pro,noun,,其他,excluded,, +probably,adverb,,通用,pool,, +produce,verb,,通用,pool,, +product,noun,,通用,pool,, +production,noun,,通用,pool,, +professional,adjective,,通用,pool,, +progressive,adjective,,其他,excluded,, +promise,noun,,通用,pool,, +pronounce,verb,,通用,pool,, +pronunciation,noun,Language,日常,pool,, +proper,adjective,,通用,pool,, +provide,verb,,通用,pool,, +psychologist,noun,Personal identification,日常,pool,, +public,noun,,通用,pool,, +publish,verb,,通用,pool,, +pull,verb,,通用,pool,, +punctuation,noun,Language,学校与学术,excluded,, +purpose,noun,,通用,pool,, +pursue,verb,,其他,excluded,, +quality,noun,,通用,pool,, +queen,noun,Relations with other people,其他,excluded,, +quick,adjective,,通用,pool,, +quietly,adverb,,通用,pool,, +quit,verb,,通用,pool,, +quite,adverb,,通用,pool,, +quiz,noun,Education,学校与学术,excluded,, +racket,noun,"Free time, entertainment",日常,pool,, +raincoat,noun,Shopping,日常,pool,, +raise,verb,,通用,pool,, +range,noun,,其他,excluded,, +rap,noun,"Free time, entertainment",其他,excluded,, +rate,noun,,通用,pool,, +rather,adverb,,通用,pool,, +rating,noun,,通用,pool,, +raw,adjective,,通用,pool,, +ray,noun,,其他,excluded,, +reach,verb,,通用,pool,, +realize/realise,verb,,通用,pool,, +receipt,noun,Shopping,日常,pool,, +receive,verb,,通用,pool,, +recent,adjective,,通用,pool,, +recently,adverb,,通用,pool,, +receptionist,noun,Personal identification,日常,pool,, +record,verb,,通用,pool,, +recycle,verb,,通用,pool,, +refer,verb,,通用,pool,, +reflect,verb,,通用,pool,, +refrigerator,noun,"House and home, environment",日常,pool,, +regret,verb,,通用,pool,, +regular,adjective,,通用,pool,, +regularly,adverb,,通用,pool,, +relax,verb,,通用,pool,, +relaxed,adjective,,通用,pool,, +release,noun,,通用,pool,, +remain,verb,,通用,pool,, +remind,verb,,通用,pool,, +remote,adjective,,通用,pool,, +rent,noun/verb,Services,日常,pool,, +repair,noun/verb,,通用,pool,, +replace,verb,,通用,pool,, +reply,noun,,通用,pool,, +report,noun,,通用,pool,, +represent,verb,,其他,excluded,, +request,noun,,通用,pool,, +research,noun,Education,学校与学术,excluded,, +response,noun,,通用,pool,, +retire,verb,,通用,pool,, +retired,adjective,,通用,pool,, +return,noun/verb,,通用,pool,, +reunion,noun,,通用,pool,, +reveal,verb,,通用,pool,, +rhythm,noun,"Free time, entertainment",日常,pool,, +right-hand,adjective,,通用,pool,, +road,noun,Places,日常,pool,, +roast,verb,,通用,pool,, +rob,verb,,通用,pool,, +robbery,noun,Relations with other people,日常,pool,, +robin,noun,,其他,excluded,, +rock,noun,,通用,pool,, +roll,noun,,通用,pool,, +romance,noun,,其他,excluded,, +romantic,adjective,,通用,pool,, +roof,noun,"House and home, environment",日常,pool,, +root,noun,,通用,pool,, +rope,noun,Shopping,日常,pool,, +roughly,adverb,,通用,pool,, +round,adverb,,通用,pool,, +roundabout,noun,Travel,旅行,pool,, +royal,adjective,,其他,excluded,, +rugby,noun,"Free time, entertainment",其他,excluded,, +ruin,verb,,通用,pool,, +rumor/rumour,noun,,通用,pool,, +runner,noun,Personal identification,日常,pool,, +running,noun,"Free time, entertainment",日常,pool,, +rush,noun,,通用,pool,, +sadly,adverb,,通用,pool,, +safe,adjective,,通用,pool,, +sailing,noun,"Free time, entertainment",日常,pool,, +sake,noun,,其他,excluded,, +salt,noun,Food and drink,日常,pool,, +sample,noun,Services,日常,pool,, +sandy,adjective,,通用,pool,, +satisfy,verb,,通用,pool,, +sauce,noun,Food and drink,日常,pool,, +sausage,noun,Food and drink,日常,pool,, +scale,noun,,其他,excluded,, +scarf,noun,Shopping,日常,pool,, +scene,noun,"Free time, entertainment",日常,pool,, +scenery,noun,,通用,pool,, +schedule,noun,Daily life,日常,pool,, +schoolchild,noun,Education,学校与学术,excluded,, +schoolwork,noun,Education,学校与学术,excluded,, +scientific,adjective,,学校与学术,excluded,, +scissors,noun,Shopping,日常,pool,, +scream,noun,,通用,pool,, +screen,noun,"Free time, entertainment",日常,pool,, +screw,noun,,通用,pool,, +script,noun,,其他,excluded,, +seafood,noun,Food and drink,日常,pool,, +search,noun,,通用,pool,, +seaside,noun,Places,日常,pool,, +secret,noun,,通用,pool,, +secretary,noun,Personal identification,工作,work_only,, +seed,noun,,通用,pool,, +seek,verb,,通用,pool,, +seem,verb,,通用,pool,, +semester,noun,Education,学校与学术,excluded,, +send,verb,,通用,pool,, +senior,adjective/noun,,通用,pool,, +sense,noun,,通用,pool,, +separate,adjective,,通用,pool,, +seriously,adverb,,通用,pool,, +serve,verb,,通用,pool,, +several,determiner/pronoun,,通用,pool,,yes +sew,verb,,通用,pool,, +shade,noun,,通用,pool,, +shadow,noun,,通用,pool,, +shall,modal auxiliary,,通用,pool,,yes +shampoo,noun,Shopping,日常,pool,, +shape,noun,,通用,pool,, +shell,noun,,通用,pool,, +shine,verb,,通用,pool,, +shock,noun,,通用,pool,, +shoot,verb,,通用,pool,, +shop assistant,noun,Personal identification,日常,pool,, +shore,noun,,通用,pool,, +short/shorts,noun,,通用,pool,, +shot,noun,,通用,pool,, +shout,noun,,通用,pool,, +shut,verb,,通用,pool,, +sightseeing,noun,"Free time, entertainment",日常,pool,, +significant,adjective,,通用,pool,, +silence,noun,,通用,pool,, +silently,adverb,,通用,pool,, +silly,adjective,,通用,pool,, +silver,adjective/noun,,通用,pool,, +similar,adjective,,通用,pool,, +simple,adjective,,通用,pool,, +simply,adverb,,通用,pool,, +since,preposition,,通用,pool,,yes +singing,noun,"Free time, entertainment",日常,pool,, +single,adjective,,通用,pool,, +singular,adjective/noun,Language,学校与学术,excluded,, +sink,noun,"House and home, environment",日常,pool,, +sitting room,noun,"House and home, environment",日常,pool,, +situation,noun,,通用,pool,, +skate,noun,"Free time, entertainment",日常,pool,, +skateboarding,noun,"Free time, entertainment",日常,pool,, +skating,noun,"Free time, entertainment",日常,pool,, +ski,noun,"Free time, entertainment",日常,pool,, +skiing,noun,"Free time, entertainment",日常,pool,, +slave,noun,Relations with other people,其他,excluded,, +sleepless,adjective,,通用,pool,, +sleepy,adjective,,通用,pool,, +slice,noun,Food and drink,日常,pool,, +slide,noun,,通用,pool,, +slim,adjective,,通用,pool,, +slowly,adverb,,通用,pool,, +smooth,adjective,,通用,pool,, +smoothly,adverb,,通用,pool,, +snack,noun,Food and drink,日常,pool,, +snowboarding,noun,"Free time, entertainment",日常,pool,, +soap,noun,Shopping,日常,pool,, +society,noun,Places,日常,pool,, +sock,noun,Shopping,日常,pool,, +soda,noun,Food and drink,日常,pool,, +soft,adjective,,通用,pool,, +soft drink,noun,Food and drink,日常,pool,, +softly,adverb,,通用,pool,, +software,noun,"Free time, entertainment",日常,pool,, +soldier,noun,Relations with other people,其他,excluded,, +solution,noun,,通用,pool,, +somebody,pronoun,,通用,pool,,yes +someday,adverb,,通用,pool,, +somewhere,adverb,,通用,pool,, +sound,noun/verb,,通用,pool,, +source,noun,,其他,excluded,, +south,adjective/adverb/noun,,通用,pool,, +space,noun,,通用,pool,, +spaceship,noun,Travel,其他,excluded,, +spaghetti,noun,Food and drink,日常,pool,, +speaker,noun,Personal identification,日常,pool,, +specific,adjective,,通用,pool,, +speed,noun,,通用,pool,, +spill,verb,,通用,pool,, +splash,verb,,通用,pool,, +split,adjective,,通用,pool,, +spoon,noun,Shopping,日常,pool,, +sports center/sports centre,noun,"House and home, environment",日常,pool,, +spread,noun,,通用,pool,, +square,adjective/noun,,通用,pool,, +stadium,noun,"House and home, environment",日常,pool,, +staff,noun,Personal identification,工作,work_only,, +stair,noun,"House and home, environment",日常,pool,, +stamp,noun,Relations with other people,日常,pool,, +state,noun,,通用,pool,, +statement,noun,,学校与学术,excluded,, +statue,noun,,通用,pool,, +steak,noun,Food and drink,日常,pool,, +steal,verb,,通用,pool,, +stomach,noun,Health and body care,日常,pool,, +stomachache,noun,Health and body care,日常,pool,, +storm,noun,Weather,日常,pool,, +stove,noun,"House and home, environment",日常,pool,, +stranger,noun,,通用,pool,, +strategy,noun,,工作,work_only,, +strength,noun,,通用,pool,, +strike,noun,,通用,pool,, +string,noun,,通用,pool,, +strongly,adverb,,通用,pool,, +structure,noun,,学校与学术,excluded,, +stuff,noun,,通用,pool,, +style,noun,,通用,pool,, +succeed,verb,,通用,pool,, +success,noun,,通用,pool,, +successfully,adverb,,通用,pool,, +such,determiner/pronoun,,通用,pool,,yes +sudden,adjective,,通用,pool,, +suggest,verb,,通用,pool,, +suit,noun/verb,Shopping,日常,pool,, +suitable,adjective,,通用,pool,, +suitcase,noun,Travel,旅行,pool,, +summary,noun,Education,学校与学术,excluded,, +sunflower,noun,,通用,pool,, +sunglasses,noun,Shopping,日常,pool,, +sunlight,noun,,通用,pool,, +superlative,noun,,学校与学术,excluded,, +superstar,noun,Relations with other people,日常,pool,, +supper,noun,Food and drink,日常,pool,, +support,noun,,通用,pool,, +surfing,noun,"Free time, entertainment",日常,pool,, +surname,noun,Personal identification,日常,pool,, +surprised,adjective,,通用,pool,, +surprising,adjective,,通用,pool,, +survive,verb,,通用,pool,, +swallow,verb,,通用,pool,, +sweat,verb,,通用,pool,, +sweater,noun,Shopping,日常,pool,, +sweetheart,noun,,其他,excluded,, +swimming costume,noun,Shopping,日常,pool,, +swimsuit,noun,Shopping,日常,pool,, +symbol,noun,,其他,excluded,, +symphony,noun,"Free time, entertainment",其他,excluded,, +system,noun,,通用,pool,, +table tennis,noun,"Free time, entertainment",日常,pool,, +tablespoon,noun,,通用,pool,, +talent,noun,,通用,pool,, +tap,noun,"House and home, environment",日常,pool,, +tape,noun,Shopping,日常,pool,, +target,noun,,工作,work_only,, +task,noun,,通用,pool,, +tear,noun,,通用,pool,, +teenage,adjective,,通用,pool,, +teenager,noun,Personal identification,日常,pool,, +temperature,noun,Weather,日常,pool,, +terrify,verb,,通用,pool,, +terrorist,adjective,,其他,excluded,, +text,noun/verb,Language,日常,pool,, +text message,noun,Language,日常,pool,, +textbook,noun,Education,学校与学术,excluded,, +theirs,pronoun,,通用,pool,,yes +themselves,pronoun,,通用,pool,,yes +therefore,adverb,,通用,pool,, +thief,noun,Relations with other people,日常,pool,, +third,adjective,,通用,pool,, +thirsty,adjective,,通用,pool,, +though,conjunction,,通用,pool,,yes +thought,noun,,通用,pool,, +thousand,number,,通用,pool,,yes +thunderstorm,noun,Weather,日常,pool,, +tidy,adjective/verb,,通用,pool,, +tie,noun,Shopping,日常,pool,, +tights,noun,Shopping,日常,pool,, +till,preposition,,通用,pool,,yes +timetable,noun,,通用,pool,, +tip,noun,,通用,pool,, +title,noun,"Free time, entertainment",日常,pool,, +toast,noun,Food and drink,日常,pool,, +toe,noun,Health and body care,日常,pool,, +tone,noun,,通用,pool,, +toothache,noun,Health and body care,日常,pool,, +toothbrush,noun,Shopping,日常,pool,, +tour,noun,Travel,旅行,pool,, +tour guide,noun,Personal identification,日常,pool,, +tourist,noun,Travel,旅行,pool,, +toward/towards,preposition,,通用,pool,,yes +track,noun,,通用,pool,, +trade,noun,,通用,pool,, +tradition,noun,,通用,pool,, +traditional,adjective,,通用,pool,, +traffic,noun,Services,日常,pool,, +traffic light,noun,Travel,旅行,pool,, +training,noun,,通用,pool,, +tram,noun,Travel,旅行,pool,, +trap,noun,,其他,excluded,, +traveler/traveller,noun,Travel,旅行,pool,, +treasure,noun,,其他,excluded,, +trick,noun,,通用,pool,, +trouble,noun,,通用,pool,, +truly,adverb,,通用,pool,, +trust,verb,,通用,pool,, +truth,noun,,通用,pool,, +tune,noun,"Free time, entertainment",日常,pool,, +twice,adverb,,通用,pool,, +uncertain,adjective,,通用,pool,, +uncomfortable,adjective,,通用,pool,, +understand,verb,,通用,pool,, +underwater,adjective,,通用,pool,, +uneasy,adjective,,通用,pool,, +unfair,adjective,,通用,pool,, +unforgettable,adjective,,通用,pool,, +unfortunately,adverb,,通用,pool,, +unhappy,adjective,,通用,pool,, +unhealthy,adjective,,通用,pool,, +uniform,adjective/noun,Shopping,日常,pool,, +unimportant,adjective,,通用,pool,, +unit,noun,,其他,excluded,, +university,noun,Education,通用,pool,, +unknown,adjective,,通用,pool,, +unlike,adjective,,通用,pool,, +unnecessary,adjective,,通用,pool,, +unpleasant,adjective,,通用,pool,, +unusual,adjective,,通用,pool,, +upon,preposition,,通用,pool,,yes +upset,adjective,,通用,pool,, +upstairs,adverb,,通用,pool,, +used,adjective,,通用,pool,, +useful,adjective,,通用,pool,, +usual,adjective,,通用,pool,, +valley,noun,,通用,pool,, +value,noun,,通用,pool,, +verb,noun,Language,学校与学术,excluded,, +video game,noun,"Free time, entertainment",日常,pool,, +view,noun,,通用,pool,, +village,noun,Places,日常,pool,, +violent,adjective,,其他,excluded,, +violin,noun,"Free time, entertainment",日常,pool,, +visitor,noun,Personal identification,日常,pool,, +vocabulary,noun,Language,学校与学术,excluded,, +voice,noun,,通用,pool,, +walking,noun,"Free time, entertainment",日常,pool,, +wallet,noun,Shopping,日常,pool,, +wander,verb,,通用,pool,, +washing machine,noun,"House and home, environment",日常,pool,, +washing-up,noun,,通用,pool,, +wave,noun,,通用,pool,, +weak,adjective,,通用,pool,, +wealth,noun,,通用,pool,, +web,noun,"Free time, entertainment",日常,pool,, +web page,noun,"Free time, entertainment",日常,pool,, +website,noun,"Free time, entertainment",日常,pool,, +wedding,noun,Daily life,日常,pool,, +weekday,noun,,通用,pool,, +weekly,adjective/adverb,,通用,pool,, +weep,noun,,其他,excluded,, +weigh,verb,,通用,pool,, +weight,noun,,通用,pool,, +well-known,adjective,,通用,pool,, +west,adjective/adverb/noun,,通用,pool,, +wet,adjective,,通用,pool,, +whatever,determiner,,通用,pool,,yes +wheelchair,noun,Travel,旅行,pool,, +while,conjunction,,通用,pool,,yes +whole,adjective,,通用,pool,, +whom,pronoun,,通用,pool,,yes +wide,adjective/adverb,,通用,pool,, +widely,adverb,,通用,pool,, +wild,adjective,,通用,pool,, +windy,adjective,,通用,pool,, +wine,noun,Food and drink,日常,pool,, +winner,noun,Personal identification,日常,pool,, +wisdom,noun,Personal identification,其他,excluded,, +wise,adjective,,通用,pool,, +within,preposition,,通用,pool,,yes +without,preposition,,通用,pool,,yes +wonder,verb,,通用,pool,, +wood,noun,"House and home, environment",日常,pool,, +wooden,adjective,,通用,pool,, +wool,noun,Shopping,日常,pool,, +worldwide,adverb,,通用,pool,, +worried,adjective,,通用,pool,, +worse,adjective/adverb,,通用,pool,, +worst,adjective,,通用,pool,, +writing,noun,Education,通用,pool,, +yeah,adverb,,通用,pool,, +youth,noun,,通用,pool,, +zone,noun,Places,其他,excluded,, diff --git a/kouyu_english/tool/courses/pools/b1-word-pool.csv b/kouyu_english/tool/courses/pools/b1-word-pool.csv new file mode 100644 index 0000000..03c6139 --- /dev/null +++ b/kouyu_english/tool/courses/pools/b1-word-pool.csv @@ -0,0 +1,2141 @@ +headword,pos,cefrj_topic,categories,status,word_form_variant,function_word +abandon,verb,,其他,excluded,, +able,adjective,,通用,pool,yes, +abnormal,adjective,,通用,pool,, +aboard,adverb,,通用,pool,, +aborigine,noun,,其他,excluded,, +absence,noun,,通用,pool,, +absent,adjective,,通用,pool,, +absolute,adjective,,通用,pool,, +absolutely,adverb,,通用,pool,, +absorb,verb,,其他,excluded,, +abstract,adjective,,学校与学术,excluded,, +abundance,noun,,其他,excluded,, +abundant,adjective,,其他,excluded,, +academic,adjective,,学校与学术,excluded,, +academy,noun,,学校与学术,excluded,, +accent,noun,Education,通用,pool,, +acceptance,noun,,通用,pool,, +access,noun,Travel,旅行,pool,, +accessible,adjective,,通用,pool,, +accessory,noun,Shopping,日常,pool,, +accidental,adjective,,通用,pool,, +accidentally,adverb,,通用,pool,, +accompany,verb,,通用,pool,, +accomplish,verb,,其他,excluded,, +according to,preposition,,通用,pool,yes,yes +accountant,noun,Personal identification,工作,work_only,, +accuracy,noun,,通用,pool,, +accurate,adjective,,通用,pool,, +accurately,adverb,,通用,pool,, +accuse,verb,,其他,excluded,, +accustom,verb,,其他,excluded,, +ache,noun,Health and body care,日常,pool,, +achievement,noun,,通用,pool,, +acknowledge,verb,,其他,excluded,, +acknowledgment/acknowledgement,noun,,其他,excluded,, +acquaintance,noun,,通用,pool,, +acquire,verb,,其他,excluded,, +active,adjective,,通用,pool,, +actress,noun,Personal identification,日常,pool,, +ad,noun,,通用,pool,, +adapt,verb,,通用,pool,, +addressee,noun,,通用,pool,, +administration,noun,,工作,work_only,, +admiration,noun,,其他,excluded,, +admission,noun,,通用,pool,, +adopt,verb,,通用,pool,, +adorable,adjective,,通用,pool,, +advance,verb,,其他,excluded,, +adverb,noun,Education,学校与学术,excluded,, +adverbial,adjective,,学校与学术,excluded,, +advert,noun,,通用,pool,, +advertise,verb,,通用,pool,, +adviser/advisor,noun,Personal identification,日常,pool,, +aerobics,noun,"Free time, entertainment",日常,pool,, +affect,verb,,通用,pool,, +affection,noun,,通用,pool,, +afford,verb,,通用,pool,, +afterward,adverb,,通用,pool,, +afterwards,adverb,,通用,pool,, +agenda,noun,,工作,work_only,, +aggressive,adjective,,通用,pool,, +agreement,noun,,通用,pool,, +agricultural,adjective,,其他,excluded,, +agriculture,noun,,其他,excluded,, +aid,noun/verb,,通用,pool,, +aim,noun,,通用,pool,, +air conditioning,noun,"House and home, environment",日常,pool,, +air force,noun,Personal identification,其他,excluded,, +airline,noun,Travel,旅行,pool,, +alcohol,noun,Food and drink,日常,pool,, +alcoholic,adjective,,通用,pool,, +alike,adjective/adverb,,通用,pool,, +allergic,adjective,,通用,pool,, +allowance,noun,,其他,excluded,, +aloud,adverb,,通用,pool,, +alphabet,noun,Language,日常,pool,, +alternative,adjective/noun,,通用,pool,, +altogether,adverb,,通用,pool,, +amazed,adjective,,通用,pool,, +amazing,adjective,,通用,pool,, +ambitious,adjective,,通用,pool,, +ambulance,noun,Travel,旅行,pool,, +amount,noun,,通用,pool,, +amusing,adjective,,通用,pool,, +analysis,noun,,学校与学术,excluded,, +analyze/analyse,verb,,学校与学术,excluded,, +anger,noun,,通用,pool,, +angle,noun,,通用,pool,, +animated,adjective,,通用,pool,, +animation,noun,"Free time, entertainment",日常,pool,, +announce,verb,,通用,pool,, +announcement,noun,,通用,pool,, +annoyance,noun,,通用,pool,, +annoyed,adjective,,通用,pool,, +annual,adjective,,通用,pool,, +annually,adverb,,其他,excluded,, +ant,noun,,通用,pool,, +anti,adjective,,其他,excluded,, +antique,noun,Shopping,日常,pool,, +antonym,noun,,学校与学术,excluded,, +anxiety,noun,,通用,pool,, +anxiously,adverb,,通用,pool,, +anyhow,adverb,,其他,excluded,, +ape,noun,,其他,excluded,, +apology,noun,,通用,pool,, +apparent,adjective,,通用,pool,, +appeal,noun,,其他,excluded,, +appetite,noun,Food and drink,日常,pool,, +applaud,verb,,通用,pool,, +applause,noun,,通用,pool,, +application,noun,,通用,pool,, +appoint,verb,,其他,excluded,, +appreciation,noun,,通用,pool,, +approach,noun,,通用,pool,, +approval,noun,,通用,pool,, +approve,verb,,通用,pool,, +approximately,adverb,,通用,pool,, +architect,noun,Personal identification,日常,pool,, +arise,verb,,其他,excluded,, +arithmetic,noun,,学校与学术,excluded,, +army,noun,Relations with other people,其他,excluded,, +arrange,verb,,通用,pool,, +arrangement,noun,,通用,pool,, +arrest,noun/verb,Relations with other people,日常,pool,, +arrival,noun,Travel,旅行,pool,, +arrow,noun,"Free time, entertainment",其他,excluded,, +artist,noun,Personal identification,日常,pool,, +artistic,adjective,,通用,pool,, +ashamed,adjective,,通用,pool,, +aside,adverb,,通用,pool,, +aspect,noun,,通用,pool,, +aspirin,noun,,通用,pool,, +assign,verb,,学校与学术,excluded,, +assignment,noun,,学校与学术,excluded,, +assist,verb,,通用,pool,, +assistance,noun,,通用,pool,, +associate,verb,,其他,excluded,, +assume,verb,,其他,excluded,, +astronomer,noun,Personal identification,其他,excluded,, +athletic,adjective,,通用,pool,, +Atlantic,adjective,,通用,pool,, +atmosphere,noun,,通用,pool,, +atomic,adjective,,其他,excluded,, +attach,verb,,通用,pool,, +attachment,noun,,通用,pool,, +attain,verb,,其他,excluded,, +attend,verb,,通用,pool,, +attract,verb,,通用,pool,, +attraction,noun,,通用,pool,, +authority,noun,,其他,excluded,, +auxiliary,adjective,,学校与学术,excluded,, +available,adjective,,通用,pool,, +avenue,noun,"House and home, environment",日常,pool,, +aware,adjective,,通用,pool,, +awareness,noun,,通用,pool,, +awesome,adjective,,通用,pool,, +awkward,adjective,,通用,pool,, +babysit,verb,,通用,pool,, +babysitter,noun,Personal identification,日常,pool,, +backache,noun,,通用,pool,, +backpack,noun,Shopping,日常,pool,, +backpacker,noun,Travel,旅行,pool,, +backpacking,noun,Travel,旅行,pool,, +bacon,noun,Food and drink,日常,pool,, +baggage,noun,Travel,旅行,pool,, +baker,noun,Personal identification,日常,pool,, +bakery,noun,Shopping,日常,pool,, +balance,noun,,通用,pool,, +bald,adjective,,通用,pool,, +bandage,noun,,通用,pool,, +bang,noun/verb,,通用,pool,, +bank account,noun,Travel,旅行,pool,, +bare,adjective,,通用,pool,, +barely,adverb,,通用,pool,, +bark,noun,,通用,pool,, +barman,noun,Personal identification,日常,pool,, +barrel,noun,,其他,excluded,, +basement,noun,"House and home, environment",日常,pool,, +basin,noun,Shopping,日常,pool,, +basis,noun,,通用,pool,, +bathe,verb,,通用,pool,, +battle,noun,Relations with other people,其他,excluded,, +beard,noun,Health and body care,日常,pool,, +beast,noun,,其他,excluded,, +beat,verb,,通用,pool,, +beautifully,adverb,,通用,pool,, +beaver,noun,,其他,excluded,, +because of,preposition,,通用,pool,,yes +bedside,noun,,通用,pool,, +behalf,noun,,通用,pool,, +behave,verb,,通用,pool,, +belief,noun,,通用,pool,, +beloved,adjective,,其他,excluded,, +beneath,preposition,,通用,pool,,yes +benefit,noun,,通用,pool,, +bent,adjective,,通用,pool,, +bet,verb,,通用,pool,, +bilingual,adjective,,通用,pool,, +bin,noun,"House and home, environment",日常,pool,, +biochemistry,noun,Education,学校与学术,excluded,, +biography,noun,,学校与学术,excluded,, +biology,noun,Education,学校与学术,excluded,, +bishop,noun,Personal identification,其他,excluded,, +bitter,adjective,,通用,pool,, +bleed,verb,,通用,pool,, +blend,verb,,通用,pool,, +bless,verb,,其他,excluded,, +blessing,noun,,其他,excluded,, +blind,adjective,,通用,pool,, +blog,noun,"Free time, entertainment",日常,pool,, +blogger,noun,"Free time, entertainment",日常,pool,, +blush,noun,,通用,pool,, +boast,verb,,通用,pool,, +bold,adjective,,通用,pool,, +boldly,adverb,,其他,excluded,, +bomb,noun/verb,Relations with other people,其他,excluded,, +bond,noun,,其他,excluded,, +booking,noun,Travel,旅行,pool,, +boom,noun,,其他,excluded,, +boot,noun,Shopping,日常,pool,, +border,noun,,通用,pool,, +bore,verb,,通用,pool,, +boredom,noun,,通用,pool,, +bounce,verb,,通用,pool,, +bound,adjective,,其他,excluded,, +bow,noun,,通用,pool,, +boxing,noun,"Free time, entertainment",其他,excluded,, +bracelet,noun,Shopping,日常,pool,, +brainstorming,noun,,通用,pool,, +brand-new,adjective,,通用,pool,, +brass,noun,,其他,excluded,, +bravely,adverb,,通用,pool,, +breakthrough,noun,,其他,excluded,, +breast,noun,Health and body care,日常,pool,, +breath,noun,Health and body care,日常,pool,, +breathless,adjective,,通用,pool,, +breed,verb,,其他,excluded,, +breeding,noun,,其他,excluded,, +brick,noun,,通用,pool,, +brief,adjective,,通用,pool,, +briefly,adverb,,通用,pool,, +brightly,adverb,,通用,pool,, +broad,adjective,,通用,pool,, +broadcast,noun,"Free time, entertainment",日常,pool,, +broccoli,noun,Food and drink,日常,pool,, +bronze,noun,,通用,pool,, +brotherhood,noun,,其他,excluded,, +bubble,noun,,通用,pool,, +buddy,noun,,通用,pool,, +builder,noun,Personal identification,日常,pool,, +bull,noun,,其他,excluded,, +bullet,noun,,其他,excluded,, +bulletin,noun,,其他,excluded,, +bump,verb,,通用,pool,, +bunch,noun,,通用,pool,, +burden,noun,,通用,pool,, +bureau,noun,,其他,excluded,, +burglar,noun,,通用,pool,, +burning,adjective,,通用,pool,, +burst,verb,,通用,pool,, +bust,verb,,其他,excluded,, +butcher,noun,Personal identification,日常,pool,, +buyer,noun,Personal identification,日常,pool,, +cabbage,noun,Food and drink,日常,pool,, +cabin,noun,Travel,旅行,pool,, +cage,noun,,通用,pool,, +calculate,verb,,通用,pool,, +calculation,noun,Education,通用,pool,, +calculator,noun,Shopping,日常,pool,, +calf,noun,,其他,excluded,, +caller,noun,,通用,pool,, +calm,adjective,,通用,pool,, +calmness,noun,,通用,pool,, +camel,noun,,通用,pool,, +campsite,noun,"Free time, entertainment",日常,pool,, +canal,noun,"House and home, environment",日常,pool,, +cancel,verb,,通用,pool,, +cancer,noun,Health and body care,日常,pool,, +candle,noun,Shopping,日常,pool,, +canned,adjective,,通用,pool,, +canteen,noun,Food and drink,日常,pool,, +capable,adjective,,通用,pool,, +capacity,noun,,其他,excluded,, +capsule,noun,,其他,excluded,, +capture,noun/verb,,其他,excluded,, +career,noun,Daily life,日常,pool,, +careless,adjective,,通用,pool,, +carelessly,adverb,,通用,pool,, +carelessness,noun,,通用,pool,, +carpet,noun,"House and home, environment",日常,pool,, +carriage,noun,Travel,旅行,pool,, +carton,noun,,通用,pool,, +cashpoint,noun,Services,日常,pool,, +casual,adjective,,通用,pool,, +categorize/categorise,verb,,学校与学术,excluded,, +category,noun,,学校与学术,excluded,, +cattle,noun,,其他,excluded,, +caution,noun,,通用,pool,, +cautious,adjective,,通用,pool,, +cave,noun,"House and home, environment",日常,pool,, +CD-ROM,noun,"Free time, entertainment",其他,excluded,, +celebrity,noun,Personal identification,日常,pool,, +cell,noun,,其他,excluded,, +central,adjective,,通用,pool,, +central heating,noun,"House and home, environment",日常,pool,, +ceremony,noun,Daily life,日常,pool,, +certainty,noun,,通用,pool,, +challenging,adjective,,通用,pool,, +champion,noun,Relations with other people,其他,excluded,, +channel,noun,"Free time, entertainment",日常,pool,, +chaos,noun,,通用,pool,, +characteristic,noun,,学校与学术,excluded,, +characterize/characterise,verb,,学校与学术,excluded,, +charge,noun/verb,Shopping,日常,pool,, +chariot,noun,,其他,excluded,, +charity,noun,,通用,pool,, +charm,noun,,通用,pool,, +chase,noun,,通用,pool,, +chat show,noun,"Free time, entertainment",日常,pool,, +check-in counter/check-in,noun,Services,日常,pool,, +check-in desk/check-in,noun,Services,日常,pool,, +checkout,noun,Services,日常,pool,, +cheerful,adjective,,通用,pool,, +chemist,noun,Personal identification,学校与学术,excluded,, +chemistry,noun,Education,学校与学术,excluded,, +cherish,verb,,其他,excluded,, +chest of drawers,noun,"House and home, environment",日常,pool,, +chewing gum,noun,Food and drink,日常,pool,, +chief,adjective,,通用,pool,, +choir,noun,,其他,excluded,, +choke,verb,,通用,pool,, +Christian,adjective,,其他,excluded,, +chronological,adjective,,学校与学术,excluded,, +chuckle,noun,,通用,pool,, +circular,adjective,,通用,pool,, +circus,noun,"Free time, entertainment",日常,pool,, +citizenship,noun,,其他,excluded,, +civil,adjective,,其他,excluded,, +civilization/civilisation,noun,,其他,excluded,, +classical,adjective,,通用,pool,, +classify,verb,,学校与学术,excluded,, +cliff,noun,,通用,pool,, +climate,noun,Weather,日常,pool,, +climber,noun,Personal identification,日常,pool,, +clinic,noun,Health and body care,日常,pool,, +clip,noun,,通用,pool,, +closely,adverb,,通用,pool,, +coal,noun,,其他,excluded,, +coastal,adjective,,通用,pool,, +cod,noun,Food and drink,其他,excluded,, +coffin,noun,,其他,excluded,, +collapse,noun,,其他,excluded,, +collar,noun,Shopping,日常,pool,, +columnist,noun,Personal identification,日常,pool,, +combination,noun,,通用,pool,, +combine,verb,,通用,pool,, +comedian,noun,Personal identification,日常,pool,, +comedy,noun,"Free time, entertainment",日常,pool,, +comet,noun,,其他,excluded,, +comfort,noun,,通用,pool,, +comma,noun,,学校与学术,excluded,, +command,noun,,其他,excluded,, +comment,noun,,通用,pool,, +commercial,adjective,,通用,pool,, +commit,verb,,其他,excluded,, +common sense,noun,,通用,pool,, +commonly,adverb,,通用,pool,, +companion,noun,,通用,pool,, +comparison,noun,,通用,pool,, +compete,verb,,通用,pool,, +competitive,adjective,,通用,pool,, +competitor,noun,,通用,pool,, +complement,noun,,其他,excluded,, +completely,adverb,,通用,pool,, +complex,adjective,,通用,pool,, +complicate,verb,,通用,pool,, +complicated,adjective,,通用,pool,, +compliment,noun,,通用,pool,, +compose,verb,,通用,pool,, +composition,noun,,其他,excluded,, +compound,noun,,其他,excluded,, +compromise,noun,,通用,pool,, +concentration,noun,,通用,pool,, +concept,noun,,其他,excluded,, +concerned,adjective,,通用,pool,, +conclude,verb,,其他,excluded,, +conclusion,noun,,通用,pool,, +conduct,noun,,其他,excluded,, +confidence,noun,,通用,pool,, +confirm,verb,,通用,pool,, +confirmation,noun,,其他,excluded,, +conflict,noun,,通用,pool,, +confusing,adjective,,通用,pool,, +confusion,noun,,通用,pool,, +congratulate,verb,,通用,pool,, +connect,verb,,通用,pool,, +connection/connexion,noun,,通用,pool,, +conquer,verb,,其他,excluded,, +conscious,adjective,,通用,pool,, +consequently,adverb,,通用,pool,, +conservation,noun,,其他,excluded,, +conservative,adjective,,其他,excluded,, +considerable,adjective,,通用,pool,, +consideration,noun,,其他,excluded,, +consonant,noun,,学校与学术,excluded,, +constantly,adverb,,其他,excluded,, +constitute,verb,,其他,excluded,, +constitution,noun,,其他,excluded,, +construct,verb,,其他,excluded,, +construction,noun,,通用,pool,, +consume,verb,,其他,excluded,, +consumer,noun,Personal identification,日常,pool,, +consumption,noun,,其他,excluded,, +contain,verb,,通用,pool,, +content,noun,,通用,pool,, +continual,adjective,,其他,excluded,, +continually,adverb,,其他,excluded,, +continuous,adjective,,通用,pool,, +continuously,adverb,,通用,pool,, +contrary,adjective,,其他,excluded,, +contribute,verb,,其他,excluded,, +contribution,noun,,通用,pool,, +controversial,adjective,,通用,pool,, +convey,verb,,其他,excluded,, +convince,verb,,通用,pool,, +copyright,noun,,其他,excluded,, +correction,noun,,通用,pool,, +cotton,noun,Shopping,日常,pool,, +cough,verb,,通用,pool,, +council,noun,,其他,excluded,, +counseling/counselling,noun,,通用,pool,, +counter,verb,,通用,pool,, +countless,adjective,,通用,pool,, +county,noun,,其他,excluded,, +courage,noun,,通用,pool,, +courageous,adjective,,通用,pool,, +courgette,noun,Food and drink,日常,pool,, +craft,noun,,通用,pool,, +crash,noun/verb,Travel,旅行,pool,, +creator,noun,Personal identification,日常,pool,, +criminal,noun,Relations with other people,日常,pool,, +crisis,noun,,其他,excluded,, +critic,noun,,通用,pool,, +critical,adjective,,通用,pool,, +crop,noun,Food and drink,日常,pool,, +crossing,noun,Travel,旅行,pool,, +crossroads,noun,,通用,pool,, +crow,noun,,其他,excluded,, +cruel,adjective,,通用,pool,, +crush,noun,Travel,其他,excluded,, +cucumber,noun,Food and drink,日常,pool,, +cultivate,verb,,其他,excluded,, +cultural,adjective,,通用,pool,, +cure,noun,,通用,pool,, +curiosity,noun,,通用,pool,, +curious,adjective,,通用,pool,, +curiously,adverb,,通用,pool,, +curly,adjective,,通用,pool,, +currency,noun,Shopping,日常,pool,, +current,adjective,,通用,pool,, +currently,adverb,,通用,pool,, +curriculum,noun,Education,学校与学术,excluded,, +curtain,noun,"House and home, environment",日常,pool,, +curve,noun,,通用,pool,, +cushion,noun,Shopping,日常,pool,, +customs,noun,Travel,旅行,pool,, +CV,noun,Personal identification,工作,work_only,, +cycle,noun/verb,Travel,旅行,pool,, +daisy,noun,,通用,pool,, +damage,noun/verb,,通用,pool,, +damaged,adjective,,通用,pool,, +damp,adjective,,通用,pool,, +dangerously,adverb,,通用,pool,, +dare,verb,,其他,excluded,, +darkness,noun,,通用,pool,, +dating,noun,,通用,pool,, +daze,noun,,其他,excluded,, +dazzle,noun,,其他,excluded,, +deadline,noun,,工作,work_only,, +deadly,adjective,,通用,pool,, +deaf,adjective,,通用,pool,, +dealer,noun,Personal identification,日常,pool,, +debris,noun,,其他,excluded,, +debt,noun,Shopping,日常,pool,, +decision,noun,,通用,pool,, +declaration,noun,,其他,excluded,, +declare,verb,,通用,pool,, +decline,noun,,其他,excluded,, +decrease,noun/verb,,通用,pool,, +dedicate,verb,,其他,excluded,, +deed,noun,,其他,excluded,, +defeat,verb,,其他,excluded,, +defend,verb,,其他,excluded,, +defender,noun,,其他,excluded,, +defense/defence,noun,,其他,excluded,, +deficiency,noun,,其他,excluded,, +define,verb,,学校与学术,excluded,, +definite,adjective,,通用,pool,, +definite article,noun,,学校与学术,excluded,, +definitely,adverb,,通用,pool,, +definition,noun,,学校与学术,excluded,, +delete,verb,,通用,pool,, +delicate,adjective,,通用,pool,, +delight,noun,,通用,pool,, +delighted,adjective,,通用,pool,, +delightful,adjective,,通用,pool,, +deliver,verb,,通用,pool,, +delivery,noun,Services,日常,pool,, +demand,noun/verb,,通用,pool,, +democracy,noun,,其他,excluded,, +democratic,adjective,,其他,excluded,, +demonstrate,verb,,其他,excluded,, +demonstration,noun,,通用,pool,, +deny,verb,,通用,pool,, +depart,verb,,通用,pool,, +department,noun,Services,日常,pool,, +departure,noun,,通用,pool,, +dependent,adjective,,通用,pool,, +deposit,noun,,通用,pool,, +depressed,adjective,,通用,pool,, +depressing,adjective,,通用,pool,, +depression,noun,,通用,pool,, +deprive,verb,,其他,excluded,, +depth,noun,,通用,pool,, +derive,verb,,其他,excluded,, +deserve,verb,,通用,pool,, +designer,noun,Personal identification,日常,pool,, +desire,noun,,通用,pool,, +despair,noun,,通用,pool,, +desperate,adjective,,通用,pool,, +despite,preposition,,通用,pool,,yes +destination,noun,,通用,pool,, +destruction,noun,,通用,pool,, +destructive,adjective,,通用,pool,, +detective,noun,Personal identification,日常,pool,, +determination,noun,,通用,pool,, +determine,verb,,通用,pool,, +devastate,verb,,其他,excluded,, +devastating,adjective,,通用,pool,, +development,noun,,通用,pool,, +device,noun,,通用,pool,, +devotion,noun,,其他,excluded,, +diagram,noun,,学校与学术,excluded,, +dial,noun/verb,,通用,pool,, +dialog/dialogue,noun,,通用,pool,, +diameter,noun,,学校与学术,excluded,, +diaper,noun,,通用,pool,, +differ,verb,,通用,pool,, +digital,adjective,,通用,pool,, +diligence,noun,,其他,excluded,, +diligent,adjective,,通用,pool,, +dioxide,noun,,其他,excluded,, +directly,adverb,,通用,pool,, +dirt,noun,Daily life,日常,pool,, +disability,noun,,通用,pool,, +disable,verb,,其他,excluded,, +disabled,adjective,,通用,pool,, +disagreement,noun,,通用,pool,, +disappoint,verb,,通用,pool,, +disappointment,noun,,通用,pool,, +disaster,noun,,通用,pool,, +disastrous,adjective,,通用,pool,, +disc jockey/disk jockey,noun,Personal identification,日常,pool,, +discomfort,noun,,通用,pool,, +discount,noun,Shopping,日常,pool,, +discourage,verb,,通用,pool,, +discovery,noun,,通用,pool,, +discrimination,noun,,其他,excluded,, +disease,noun,Health and body care,日常,pool,, +disgusting,adjective,,通用,pool,, +dishwasher,noun,"House and home, environment",日常,pool,, +disk/disc,noun,"Free time, entertainment",日常,pool,, +dissolve,verb,,其他,excluded,, +distance,noun,Travel,旅行,pool,, +distant,adjective,,通用,pool,, +distinction,noun,,其他,excluded,, +distinctly,adverb,,其他,excluded,, +distinguish,verb,,通用,pool,, +distribute,verb,,其他,excluded,, +distribution,noun,,其他,excluded,, +district,noun,"House and home, environment",日常,pool,, +disturbance,noun,,通用,pool,, +dive,noun/verb,,通用,pool,, +diver,noun,"Free time, entertainment",日常,pool,, +diverse,adjective,,通用,pool,, +divine,adjective,,其他,excluded,, +diving,noun,"Free time, entertainment",日常,pool,, +divorced,adjective,,通用,pool,, +DJ,noun,Personal identification,日常,pool,, +doc,noun,,通用,pool,, +document,noun,,通用,pool,, +documentary,noun,"Free time, entertainment",日常,pool,, +dolphin,noun,,通用,pool,, +dot,noun,,通用,pool,, +downward,adjective,,通用,pool,, +doze,noun,,通用,pool,, +dozen,determiner/noun,,通用,pool,, +drag,verb,,通用,pool,, +dramatic,adjective,,通用,pool,, +drown,verb,,通用,pool,, +drunk,adjective,,通用,pool,, +dude,noun,,其他,excluded,, +dull,adjective,,通用,pool,, +dump,noun/verb,,通用,pool,, +dustbin,noun,"House and home, environment",日常,pool,, +dusty,adjective,,通用,pool,, +duty,noun,,通用,pool,, +duty-free,adjective,,通用,pool,, +duvet,noun,"House and home, environment",日常,pool,, +dynasty,noun,,其他,excluded,, +eager,adjective,,通用,pool,, +eagerness,noun,,其他,excluded,, +earache,noun,,通用,pool,, +earnest,adjective,,其他,excluded,, +eastern,adjective,,通用,pool,, +easygoing/easy-going,adjective,,通用,pool,, +eco,noun,,通用,pool,, +ecological,adjective,,其他,excluded,, +ecology,noun,,其他,excluded,, +economic,adjective,,通用,pool,, +economics,noun,,学校与学术,excluded,, +economy,noun,Daily life,日常,pool,, +ecosystem,noun,,其他,excluded,, +ecstasy,noun,,其他,excluded,, +edge,noun,,通用,pool,, +edition,noun,,通用,pool,, +educate,verb,,通用,pool,, +effective,adjective,,通用,pool,, +efficiency,noun,,其他,excluded,, +efficient,adjective,,通用,pool,, +elbow,noun,,通用,pool,, +election,noun,Relations with other people,日常,pool,, +electrical,adjective,,通用,pool,, +electricity,noun,Services,日常,pool,, +electron,noun,,其他,excluded,, +electronic,adjective,,通用,pool,, +element,noun,,其他,excluded,, +eliminate,verb,,其他,excluded,, +embarrass,verb,,通用,pool,, +embarrassed,adjective,,通用,pool,, +embarrassment,noun,,通用,pool,, +emerge,verb,,其他,excluded,, +emotion,noun,,通用,pool,, +emotional,adjective,,通用,pool,, +emotionally,adverb,,通用,pool,, +emperor,noun,Relations with other people,其他,excluded,, +emphasis,noun,,通用,pool,, +emphasize/emphasize,verb,,其他,excluded,, +empire,noun,Places,其他,excluded,, +employment,noun,Personal identification,工作,work_only,, +enable,verb,,通用,pool,, +enclose,verb,,其他,excluded,, +encounter,noun,,通用,pool,, +encouragement,noun,,通用,pool,, +encouraging,adjective,,通用,pool,, +encyclopedia/encyclopaedia,noun,,学校与学术,excluded,, +endanger,verb,,其他,excluded,, +endless,adjective,,通用,pool,, +endure,verb,,其他,excluded,, +enemy,noun,Relations with other people,其他,excluded,, +engage,verb,,其他,excluded,, +engaged,adjective,,通用,pool,, +engine,noun,Travel,旅行,pool,, +engineering,noun,Daily life,日常,pool,, +Englishman,noun,Personal identification,其他,excluded,, +enjoyable,adjective,,通用,pool,, +enjoyment,noun,,通用,pool,, +enrich,verb,,其他,excluded,, +ensure,verb,,通用,pool,, +entertain,verb,,通用,pool,, +entertainer,noun,Personal identification,日常,pool,, +enthusiasm,noun,,通用,pool,, +enthusiast,noun,,其他,excluded,, +enthusiastic,adjective,,通用,pool,, +entire,adjective,,通用,pool,, +entirely,adverb,,通用,pool,, +entry,noun,,通用,pool,, +environmental,adjective,,通用,pool,, +environmentalist,noun,Personal identification,其他,excluded,, +equal,adjective,,通用,pool,, +equality,noun,,通用,pool,, +equally,adverb,,通用,pool,, +equipment,noun,,通用,pool,, +era,noun,,其他,excluded,, +essence,noun,,学校与学术,excluded,, +essential,adjective,,通用,pool,, +establishment,noun,,通用,pool,, +estimate,verb,,通用,pool,, +eternal,adjective,,其他,excluded,, +eternity,noun,,其他,excluded,, +evenly,adverb,,其他,excluded,, +eventually,adverb,,通用,pool,, +evident,adjective,,其他,excluded,, +exact,adjective,,通用,pool,, +examination,noun,Education,学校与学术,excluded,, +examine,verb,,通用,pool,, +examiner,noun,Personal identification,学校与学术,excluded,, +excellence,noun,,通用,pool,, +excess,noun,,通用,pool,, +exchange rate,noun,,通用,pool,, +excitedly,adverb,,通用,pool,, +excitement,noun,Personal identification,日常,pool,, +exclusive,adjective,,其他,excluded,, +exhausted,adjective,,通用,pool,, +existence,noun,,通用,pool,, +exit,noun/verb,"House and home, environment",日常,pool,, +expand,verb,,通用,pool,, +expense,noun,Shopping,日常,pool,, +experienced,adjective,,通用,pool,, +experiment,noun,,学校与学术,excluded,, +exploration,noun,,通用,pool,, +explosion,noun,,通用,pool,, +expose,verb,,其他,excluded,, +extend,verb,,通用,pool,, +extensively,adverb,,其他,excluded,, +extent,noun,,其他,excluded,, +extinct,adjective,,其他,excluded,, +extinction,noun,,其他,excluded,, +extraordinary,adjective,,通用,pool,, +extreme,adjective,,通用,pool,, +extreme sports,noun,,通用,pool,, +eyesight,noun,,通用,pool,, +face to face,adverb,,通用,pool,, +face-to-face,adjective,,通用,pool,, +facility,noun,,通用,pool,, +fade,verb,,通用,pool,, +failure,noun,,通用,pool,, +faint,adjective,,通用,pool,, +faithful,adjective,,其他,excluded,, +fake,adjective,,通用,pool,, +fallen,adjective,,通用,pool,yes, +fantasy,noun,"Free time, entertainment",日常,pool,, +faraway,adjective,,通用,pool,, +farewell,noun,,通用,pool,, +farming,noun,,通用,pool,, +farmland,noun,,通用,pool,, +farther,adverb,,通用,pool,, +farthest,adverb,,其他,excluded,, +fascinate,verb,,通用,pool,, +fashionable,adjective,,通用,pool,, +fasten,verb,,通用,pool,, +favorable/favourable,adjective,,通用,pool,, +fax,noun/verb,,其他,excluded,, +feast,noun,,通用,pool,, +fellow,noun,,通用,pool,, +ferry,noun,Travel,旅行,pool,, +festive,adjective,,通用,pool,, +fetch,verb,,通用,pool,, +feverishly,adverb,,其他,excluded,, +fifth,noun,,通用,pool,, +filling,noun,Food and drink,日常,pool,, +film-maker,noun,Personal identification,日常,pool,, +filter,noun,,通用,pool,, +finance,verb,,工作,work_only,, +financial,adjective,,工作,work_only,, +finding,noun,,通用,pool,, +finger,noun,Health and body care,日常,pool,, +fire station,noun,Services,日常,pool,, +firefighter,noun,,通用,pool,, +firework,noun,,通用,pool,, +firm,adjective/noun,"Free time, entertainment",日常,pool,, +firmly,adverb,,其他,excluded,, +first floor,noun,"House and home, environment",日常,pool,, +first lady,noun,,其他,excluded,, +first-floor,adjective,,通用,pool,, +fitness,noun,"Free time, entertainment",日常,pool,, +flash,adjective,,通用,pool,, +flavor/flavour,noun,Food and drink,日常,pool,, +flock,noun,,其他,excluded,, +flow,noun/verb,,通用,pool,, +flu,noun,Health and body care,日常,pool,, +fluent,adjective,,通用,pool,, +fluently,adverb,,通用,pool,, +flunk,verb,,学校与学术,excluded,, +flute,noun,,其他,excluded,, +fold,noun/verb,,通用,pool,, +folk,noun,Food and drink,日常,pool,, +fond,adjective,,通用,pool,, +fondness,noun,,其他,excluded,, +foolish,adjective,,通用,pool,, +foot,noun,Health and body care,日常,pool,, +forbidden,adjective,,通用,pool,, +forecast,noun,,通用,pool,, +forehead,noun,,通用,pool,, +forgive,verb,,通用,pool,, +formal,adjective,,通用,pool,, +formally,adverb,,其他,excluded,, +format,noun/verb,,通用,pool,, +former,adjective,,通用,pool,, +formula,noun,,学校与学术,excluded,, +forth,adverb,,其他,excluded,, +fortnight,noun,,通用,pool,, +fortunate,adjective,,通用,pool,, +foundation,noun,,其他,excluded,, +fountain,noun,Places,日常,pool,, +fragment,noun,,其他,excluded,, +freely,adverb,,通用,pool,, +freezer,noun,"House and home, environment",日常,pool,, +freezing,adjective,,通用,pool,, +frequency,noun,,通用,pool,, +frequent,adjective,,通用,pool,, +frequently,adverb,,通用,pool,, +freshman,noun,Personal identification,学校与学术,excluded,, +friendliness,noun,Relations with other people,日常,pool,, +fright,noun,,其他,excluded,, +frost,noun,Weather,日常,pool,, +frozen,adjective,,通用,pool,, +frustrated,adjective,,通用,pool,, +frustration,noun,,其他,excluded,, +frying pan,noun,Shopping,日常,pool,, +fuel,noun,,通用,pool,, +full stop,noun,,学校与学术,excluded,, +full-time,adjective/adverb,,通用,pool,, +fund,noun/verb,,其他,excluded,, +funeral,noun,Daily life,日常,pool,, +fur,noun,Shopping,日常,pool,, +furnish,verb,,通用,pool,, +furthermore,adverb,,通用,pool,, +furthest,adverb,,其他,excluded,, +fuss,noun,,通用,pool,, +gain,noun/verb,,通用,pool,, +gall,noun,,其他,excluded,, +gallon,noun,,通用,pool,, +gap,noun,,通用,pool,, +gardening,noun,"Free time, entertainment",日常,pool,, +garment,noun,,通用,pool,, +gay,adjective,,通用,pool,, +gee,interjection,,其他,excluded,,yes +gene,noun,,其他,excluded,, +general,adjective/noun,,通用,pool,, +generally,adverb,,通用,pool,, +generate,verb,,其他,excluded,, +generous,adjective,,通用,pool,, +genetic,adjective,,其他,excluded,, +genetically,adverb,,其他,excluded,, +genetics,noun,Education,其他,excluded,, +gentleman,noun,Personal identification,日常,pool,, +geographical,adjective,,其他,excluded,, +geography,noun,Education,学校与学术,excluded,, +geology,noun,Education,学校与学术,excluded,, +gesture,noun,,通用,pool,, +giant,adjective,,通用,pool,, +gifted,adjective,,通用,pool,, +giggle,noun,,通用,pool,, +ginger,noun,Food and drink,日常,pool,, +giraffe,noun,,通用,pool,, +glance,noun/verb,,通用,pool,, +glide,noun,,其他,excluded,, +glimpse,noun,,通用,pool,, +glint,noun,,其他,excluded,, +global,adjective,,通用,pool,, +glorious,adjective,,其他,excluded,, +glory,noun,,其他,excluded,, +goalkeeper,noun,Personal identification,其他,excluded,, +goddess,noun,,其他,excluded,, +golfer,noun,Personal identification,日常,pool,, +goodness,interjection,,通用,pool,,yes +goods,noun,Shopping,日常,pool,, +gorgeous,adjective,,通用,pool,, +gorilla,noun,,其他,excluded,, +gossip,noun,"Free time, entertainment",日常,pool,, +govern,verb,,其他,excluded,, +governor,noun,Personal identification,其他,excluded,, +gown,noun,Shopping,日常,pool,, +grab,verb,,通用,pool,, +graceful,adjective,,通用,pool,, +graduation,noun,Education,通用,pool,, +grant,noun/verb,,其他,excluded,, +graph,noun,,学校与学术,excluded,, +graphic,adjective,,通用,pool,, +graphics,noun,,学校与学术,excluded,, +gratitude,noun,,通用,pool,, +grave,noun,"House and home, environment",日常,pool,, +gravy,noun,,通用,pool,, +greenhouse,noun,"House and home, environment",日常,pool,, +greeting,noun,,通用,pool,, +grill,noun/verb,Shopping,日常,pool,, +groom,noun,,通用,pool,, +ground floor,noun,"House and home, environment",日常,pool,, +grouping,noun,,通用,pool,, +growth,noun,,通用,pool,, +guarantee,noun,,通用,pool,, +guidance,noun,,通用,pool,, +guide,noun/verb,Personal identification,日常,pool,, +guilt,noun,,其他,excluded,, +guilty,adjective,,通用,pool,, +guitarist,noun,Personal identification,日常,pool,, +gym,noun,"Free time, entertainment",日常,pool,, +gymnastics,noun,Education,其他,excluded,, +habitat,noun,,其他,excluded,, +hairdresser,noun,Personal identification,日常,pool,, +hairdryer,noun,Shopping,日常,pool,, +hammer,noun,Shopping,日常,pool,, +handball,noun,"Free time, entertainment",其他,excluded,, +hand-held,adjective,,通用,pool,, +handkerchief,noun,Shopping,日常,pool,, +handshake,noun,,通用,pool,, +handwriting,noun,Education,通用,pool,, +handy,adjective,,通用,pool,, +hang,verb,,通用,pool,, +hanging,adjective,,通用,pool,, +harbor/harbour,noun,"House and home, environment",日常,pool,, +hardship,noun,,通用,pool,, +hard-working,adjective,,通用,pool,, +harness,noun,,其他,excluded,, +hasty,adjective,,通用,pool,, +hatch,noun,,其他,excluded,, +hatred,noun,,其他,excluded,, +haunt,noun,"House and home, environment",其他,excluded,, +haven,noun,"House and home, environment",其他,excluded,, +hazard,noun,,通用,pool,, +headline,noun,"Free time, entertainment",日常,pool,, +heal,verb,,通用,pool,, +healing,adjective,,通用,pool,, +hearing,noun,,通用,pool,, +heart attack,noun,,通用,pool,, +hearted,adjective,,其他,excluded,, +hearty,adjective,,其他,excluded,, +heater,noun,"House and home, environment",日常,pool,, +heaven,noun,,通用,pool,, +heavenly,adjective,,其他,excluded,, +heel,noun,Shopping,日常,pool,, +height,noun,,通用,pool,, +helmet,noun,Shopping,日常,pool,, +helpless,adjective,,通用,pool,, +herd,noun,,其他,excluded,, +hesitate,verb,,通用,pool,, +hidden,adjective,,通用,pool,, +highlight,verb,,通用,pool,, +highly,adverb,,通用,pool,, +hip,noun,Health and body care,日常,pool,, +hire,verb,,通用,pool,, +historian,noun,Education,学校与学术,excluded,, +historic,adjective,,通用,pool,, +historical,adjective,,通用,pool,, +HIV,noun,Health and body care,其他,excluded,, +holy,adjective,,其他,excluded,, +homeless,adjective,,通用,pool,, +honest,adjective,,通用,pool,, +honestly,adverb,,通用,pool,, +honesty,noun,,通用,pool,, +honeymoon,noun,Travel,旅行,pool,, +hop,noun,,通用,pool,, +hopeful,adjective,,通用,pool,, +hopefully,adverb,,通用,pool,, +hopeless,adjective,,通用,pool,, +horizon,noun,,通用,pool,, +horn,noun,,通用,pool,, +horrible,adjective,,通用,pool,, +horrify,verb,,其他,excluded,, +hostel,noun,Travel,旅行,pool,, +household,noun,Daily life,日常,pool,, +housework,noun,Daily life,日常,pool,, +huge,adjective,,通用,pool,, +humanity,noun,,其他,excluded,, +humid,adjective,,通用,pool,, +humor/humour,noun,,通用,pool,, +humorous,adjective,,通用,pool,, +hunger,noun,,通用,pool,, +hunt,noun/verb,"Free time, entertainment",日常,pool,, +hurriedly,adverb,,通用,pool,, +hut,noun,"House and home, environment",日常,pool,, +ice hockey,noun,"Free time, entertainment",其他,excluded,, +ice skating,noun,"Free time, entertainment",日常,pool,, +identity,noun,,通用,pool,, +identity card,noun,Services,日常,pool,, +idiom,noun,Education,学校与学术,excluded,, +idol,noun,,通用,pool,, +ignore,verb,,通用,pool,, +illegally,adverb,,通用,pool,, +illness,noun,Health and body care,日常,pool,, +illuminate,verb,,其他,excluded,, +imaginary,adjective,,通用,pool,, +imitate,verb,,其他,excluded,, +immediate,adjective,,通用,pool,, +immediately,adverb,,通用,pool,, +immigrate,verb,,其他,excluded,, +immigration,noun,,通用,pool,, +impair,verb,,其他,excluded,, +impression,noun,,通用,pool,, +impressive,adjective,,通用,pool,, +improper,adjective,,其他,excluded,, +improvement,noun,,通用,pool,, +incident,noun,,通用,pool,, +including,preposition,,通用,pool,,yes +income,noun,Daily life,日常,pool,, +inconvenient,adjective,,通用,pool,, +incorrect,adjective,,通用,pool,, +increasingly,adverb,,通用,pool,, +incredible,adjective,,通用,pool,, +incredibly,adverb,,通用,pool,, +indefinite article,noun,,学校与学术,excluded,, +independent,adjective,,通用,pool,, +indirect,adjective,,通用,pool,, +indirectly,adverb,,其他,excluded,, +individual,adjective,,通用,pool,, +indoors,adverb,,通用,pool,, +industrial,adjective,,其他,excluded,, +industry,noun,,通用,pool,, +inevitable,adjective,,其他,excluded,, +infection,noun,Health and body care,日常,pool,, +infinitive,noun,,学校与学术,excluded,, +inform,verb,,通用,pool,, +informative,adjective,,通用,pool,, +ingredient,noun,Food and drink,日常,pool,, +inhabitant,noun,Personal identification,其他,excluded,, +inhale,verb,,其他,excluded,, +initial,noun,,通用,pool,, +initially,adverb,,其他,excluded,, +inject,verb,,其他,excluded,, +injury,noun,Health and body care,日常,pool,, +ink,noun,Shopping,日常,pool,, +innermost,adjective,,其他,excluded,, +innocent,adjective,,通用,pool,, +innovator,noun,,其他,excluded,, +inquiry/enquiry,noun,,通用,pool,, +insane,adjective,,其他,excluded,, +inscribe,verb,,其他,excluded,, +inscription,noun,,其他,excluded,, +insight,noun,,通用,pool,, +insist,verb,,通用,pool,, +inspection,noun,,其他,excluded,, +inspire,verb,,通用,pool,, +install/instal,verb,,通用,pool,, +instance,noun,Language,日常,pool,, +instead of,preposition,,通用,pool,,yes +institute,noun,Education,学校与学术,excluded,, +instruction,noun,Personal identification,日常,pool,, +instructor,noun,,通用,pool,, +insurance,noun,Services,日常,pool,, +intend,verb,,通用,pool,, +intense,adjective,,其他,excluded,, +intensive,adjective,,通用,pool,, +intention,noun,,通用,pool,, +intentionally,adverb,,其他,excluded,, +interact,verb,,其他,excluded,, +interaction,noun,,通用,pool,, +intermediate,adjective,,学校与学术,excluded,, +intermission,noun,,通用,pool,, +internal,adjective,,通用,pool,, +internationally,adverb,,其他,excluded,, +interrupt,verb,,通用,pool,, +interval,noun,,通用,pool,, +interviewee,noun,,工作,work_only,, +introduction,noun,Relations with other people,日常,pool,, +invasion,noun,,其他,excluded,, +invest,verb,,通用,pool,, +investigation,noun,,通用,pool,, +invitation,noun,Relations with other people,日常,pool,, +involuntarily,adverb,,其他,excluded,, +involve,verb,,通用,pool,, +involved,adjective,,通用,pool,, +iron,noun/verb,Shopping,日常,pool,, +ironing,noun,Daily life,日常,pool,, +irregular,adjective,,其他,excluded,, +irritate,verb,,其他,excluded,, +isle,noun,"House and home, environment",其他,excluded,, +isolation,noun,,通用,pool,, +ivory,noun,,其他,excluded,, +jade,noun,Shopping,其他,excluded,, +jail/gaol,noun,"House and home, environment",日常,pool,, +jar,noun,Shopping,日常,pool,, +jazz,noun,"Free time, entertainment",日常,pool,, +jealous,adjective,,通用,pool,, +jewel,noun,Shopping,日常,pool,, +jog,verb,,通用,pool,, +jogging,noun,"Free time, entertainment",日常,pool,, +joint,adjective,,通用,pool,, +journal,noun,"Free time, entertainment",其他,excluded,, +journalist,noun,Personal identification,日常,pool,, +judgment/judgement,noun,,通用,pool,, +jug,noun,Shopping,日常,pool,, +juicy,adjective,,通用,pool,, +jumper,noun,Personal identification,日常,pool,, +jungle,noun,,通用,pool,, +justice,noun,,其他,excluded,, +kettle,noun,Shopping,日常,pool,, +keyboard,noun,,通用,pool,, +killing,noun,Relations with other people,日常,pool,, +kindness,noun,,通用,pool,, +kitten,noun,,通用,pool,, +knit,verb,,通用,pool,, +lab,noun,"House and home, environment",学校与学术,excluded,, +laboratory,noun,"House and home, environment",学校与学术,excluded,, +ladder,noun,,通用,pool,, +lamb,noun,,通用,pool,, +landlord,noun,,通用,pool,, +largely,adverb,,其他,excluded,, +lasting,adjective,,通用,pool,, +latecomer,noun,,通用,pool,, +lately,adverb,,通用,pool,, +laughter,noun,,通用,pool,, +launch,verb,,通用,pool,, +lawful,adjective,,其他,excluded,, +lay,verb,,其他,excluded,, +layer,noun,,通用,pool,, +leadership,noun,,其他,excluded,, +leading,adjective,,通用,pool,, +league,noun,"Free time, entertainment",其他,excluded,, +lean,adjective,,通用,pool,, +leap,verb,,通用,pool,, +lecture,noun,Education,学校与学术,excluded,, +legal,adjective,,通用,pool,, +legally,adverb,,通用,pool,, +length,noun,,通用,pool,, +lessen,verb,,其他,excluded,, +lettuce,noun,Food and drink,日常,pool,, +liar,noun,Personal identification,其他,excluded,, +liberate,verb,,其他,excluded,, +liberation,noun,,其他,excluded,, +librarian,noun,Personal identification,日常,pool,, +lifeguard,noun,Personal identification,日常,pool,, +lifelong,adjective,,通用,pool,, +lift,noun/verb,Travel,旅行,pool,, +lighter,noun,Shopping,日常,pool,, +lightly,adverb,,通用,pool,, +lightning,noun,,通用,pool,, +likeness,noun,,通用,pool,, +limit,noun/verb,,通用,pool,, +limitation,noun,,其他,excluded,, +limited,adjective,,通用,pool,, +limp,verb,,其他,excluded,, +link,noun/verb,,通用,pool,, +liquid,adjective/noun,,通用,pool,, +literary,adjective,,学校与学术,excluded,, +literature,noun,"Free time, entertainment",学校与学术,excluded,, +liver,noun,,通用,pool,, +loaf,noun,,通用,pool,, +locate,verb,,通用,pool,, +location,noun,,通用,pool,, +lodge,noun,"House and home, environment",日常,pool,, +log,noun,,通用,pool,, +logic,noun,Education,其他,excluded,, +logo,noun,,通用,pool,, +lorry,noun,,通用,pool,, +loss,noun,,通用,pool,, +lottery,noun,,通用,pool,, +loud,adjective/adverb,,通用,pool,, +loudspeaker,noun,Personal identification,日常,pool,, +lovingly,adverb,,其他,excluded,, +loyal,adjective,,通用,pool,, +loyalty,noun,,通用,pool,, +luggage,noun,Travel,旅行,pool,, +lung,noun,Health and body care,日常,pool,, +luxury,noun,,通用,pool,, +magical,adjective,,通用,pool,, +magician,noun,Personal identification,日常,pool,, +magnificent,adjective,,通用,pool,, +mailbox,noun,Services,日常,pool,, +main,adjective,,通用,pool,, +maintain,verb,,通用,pool,, +maintenance,noun,,通用,pool,, +majority,noun,,通用,pool,, +management,noun,Services,工作,work_only,, +mankind,noun,Personal identification,其他,excluded,, +maple,noun,,通用,pool,, +marble,noun,,通用,pool,, +march,noun/verb,,通用,pool,, +marine,adjective,,其他,excluded,, +marked,adjective,,其他,excluded,, +marriage,noun,Relations with other people,日常,pool,, +mash,verb,,通用,pool,, +mass,adjective,,通用,pool,, +massive,adjective,,其他,excluded,, +mathematician,noun,Personal identification,学校与学术,excluded,, +mathematics,noun,Education,学校与学术,excluded,, +maximum,adjective/noun,,通用,pool,, +mayor,noun,Personal identification,日常,pool,, +meaningful,adjective,,通用,pool,, +meanwhile,adverb,,通用,pool,, +measure,noun/verb,,通用,pool,, +measurement,noun,,通用,pool,, +mechanic,noun,Personal identification,日常,pool,, +mechanical,adjective,,通用,pool,, +meditate,verb,,通用,pool,, +meditation,noun,,通用,pool,, +Mediterranean,noun,,其他,excluded,, +medium,adjective/noun,"Free time, entertainment",日常,pool,, +melt,verb,,通用,pool,, +membership,noun,Relations with other people,日常,pool,, +memorable,adjective,,通用,pool,, +memorize/memorise,verb,,通用,pool,, +mend,verb,,通用,pool,, +mental,adjective,,通用,pool,, +mentally,adverb,,通用,pool,, +merchant,noun,Education,其他,excluded,, +mere,adjective,,其他,excluded,, +merely,adverb,,通用,pool,, +mess,noun,,通用,pool,, +message board,noun,,通用,pool,, +messy,adjective,,通用,pool,, +middle-aged,adjective,,通用,pool,, +mild,adjective,,通用,pool,, +mile,noun,,通用,pool,, +mineral,noun,,其他,excluded,, +minimize/minimise,verb,,其他,excluded,, +minimum,adjective/noun,,通用,pool,, +minor,adjective,,通用,pool,, +minority,noun,,其他,excluded,, +minus,preposition,,通用,pool,,yes +miracle,noun,,通用,pool,, +mischief,noun,,其他,excluded,, +miserable,adjective,,通用,pool,, +misery,noun,,通用,pool,, +mislead,verb,,其他,excluded,, +mission,noun,,其他,excluded,, +misty,adjective,,通用,pool,, +misunderstanding,noun,Relations with other people,日常,pool,, +mixing bowl,noun,,通用,pool,, +modal verb/modal,noun,,学校与学术,excluded,, +modem,noun,,其他,excluded,, +moderate,adjective,,通用,pool,, +modify,verb,,通用,pool,, +moisture,noun,,通用,pool,, +molecule,noun,,其他,excluded,, +monitor,noun/verb,,通用,pool,, +monk,noun,Personal identification,其他,excluded,, +monster,noun,,其他,excluded,, +monthly,adjective/adverb,,通用,pool,, +monument,noun,,通用,pool,, +moral,noun,,其他,excluded,, +moreover,adverb,,通用,pool,, +mosquito,noun,,通用,pool,, +moss,noun,,通用,pool,, +motherland,noun,Personal identification,其他,excluded,, +motionless,adjective,,其他,excluded,, +motivate,verb,,通用,pool,, +motivation,noun,,通用,pool,, +motive,noun,,通用,pool,, +motor,noun,Travel,旅行,pool,, +motorcycle,noun,Travel,旅行,pool,, +motto,noun,,其他,excluded,, +mount,noun,,其他,excluded,, +mountaintop,noun,,通用,pool,, +mourn,verb,,其他,excluded,, +movement,noun,,通用,pool,, +mud,noun,,通用,pool,, +mule,noun,,其他,excluded,, +murderer,noun,Relations with other people,其他,excluded,, +muscle,noun,Health and body care,日常,pool,, +mustard,noun,,通用,pool,, +mutual,adjective,,其他,excluded,, +myth,noun,"Free time, entertainment",其他,excluded,, +nail,noun,Health and body care,日常,pool,, +naked,adjective,,通用,pool,, +nap,noun,,通用,pool,, +narrate,verb,,学校与学术,excluded,, +narrative,adjective,,学校与学术,excluded,, +narrow,adjective,,通用,pool,, +nasty,adjective,,通用,pool,, +nationalist,noun,,其他,excluded,, +naturally,adverb,,通用,pool,, +navy blue,adjective,,通用,pool,, +nearby,adjective/adverb,,通用,pool,, +necklace,noun,Shopping,日常,pool,, +nectar,noun,,其他,excluded,, +needle,noun,Shopping,日常,pool,, +negotiate,verb,,通用,pool,, +negotiation,noun,,通用,pool,, +neighborhood/neighbourhood,noun,Relations with other people,日常,pool,, +nephew,noun,Personal identification,日常,pool,, +nervousness,noun,,通用,pool,, +ness,noun,,其他,excluded,, +network,noun,,通用,pool,, +neutral,adjective,,其他,excluded,, +nevertheless,adverb,,通用,pool,, +newborn,adjective,,通用,pool,, +newcomer,noun,,通用,pool,, +newly,adverb,,通用,pool,, +next door,adverb,,通用,pool,, +next-door,adjective,,通用,pool,, +nickname,noun,Personal identification,日常,pool,, +niece,noun,Personal identification,日常,pool,, +nightlife,noun,Daily life,日常,pool,, +nod,noun,,通用,pool,, +noisily,adverb,,通用,pool,, +none,pronoun,,通用,pool,,yes +nonetheless,adverb,,其他,excluded,, +nonsense,noun,,通用,pool,, +nor,conjunction,,通用,pool,,yes +normally,adverb,,通用,pool,, +northeast,adjective/noun,,通用,pool,, +northeastern,adjective,,通用,pool,, +northern,adjective,,通用,pool,, +northwest,adjective/noun,,通用,pool,, +northwestern,adjective,,通用,pool,, +noticeable,adjective,,通用,pool,, +noticeboard,noun,,通用,pool,, +notion,noun,,学校与学术,excluded,, +notorious,adjective,,其他,excluded,, +novelist,noun,Personal identification,日常,pool,, +nowhere,adverb,,通用,pool,, +nuclear,adjective,,其他,excluded,, +nucleus,noun,,其他,excluded,, +numerous,adjective,,通用,pool,, +nutrient,noun,Food and drink,其他,excluded,, +nutrition,noun,Food and drink,日常,pool,, +nutritious,adjective,,通用,pool,, +object,noun,,通用,pool,, +objection,noun,,通用,pool,, +objective,noun,,学校与学术,excluded,, +observation,noun,,其他,excluded,, +observe,verb,,通用,pool,, +obstacle,noun,,通用,pool,, +obtain,verb,,通用,pool,, +obvious,adjective,,通用,pool,, +obviously,adverb,,通用,pool,, +occasion,noun/verb,,通用,pool,, +occasional,adjective,,通用,pool,, +occasionally,adverb,,通用,pool,, +occupy,verb,,其他,excluded,, +occur,verb,,通用,pool,, +ocean,noun,"House and home, environment",日常,pool,, +offensive,adjective,,通用,pool,, +officially,adverb,,通用,pool,, +oily,adjective,,通用,pool,, +old-fashioned,adjective,,通用,pool,, +oneself,pronoun,,其他,excluded,,yes +onstage,adjective,,通用,pool,, +onto/on to,preposition,,通用,pool,,yes +opening,noun,,通用,pool,, +operation,noun,,通用,pool,, +opposition,noun,,其他,excluded,, +oppress,verb,,其他,excluded,, +oppression,noun,,其他,excluded,, +option,noun,,通用,pool,, +oral,noun,,通用,pool,, +orbit,noun,,其他,excluded,, +orchestra,noun,"Free time, entertainment",日常,pool,, +orderly,adjective,,通用,pool,, +ordinary,adjective,,通用,pool,, +organ,noun,,通用,pool,, +organic,adjective,,通用,pool,, +organism,noun,,其他,excluded,, +organization/organisation,noun,,通用,pool,, +origin,noun,Personal identification,日常,pool,, +otherwise,adverb,,通用,pool,, +ought to,modal auxiliary,,通用,pool,,yes +outdoor,adjective,,通用,pool,, +outdoors,adverb,,通用,pool,, +outer,adjective,,通用,pool,, +outlaw,noun,,其他,excluded,, +outline,verb,,通用,pool,, +out-of-date,adjective,,通用,pool,, +outstanding,adjective,,通用,pool,, +outward,adjective,,其他,excluded,, +outweigh,verb,,其他,excluded,, +overcome,verb,,通用,pool,, +overjoyed,adjective,,通用,pool,, +overnight,adjective/adverb,,通用,pool,, +overwhelm,verb,,其他,excluded,, +overwhelming,adjective,,其他,excluded,, +overwork,noun,,工作,work_only,, +owe,verb,,通用,pool,, +owing,adjective,,其他,excluded,, +oxygen,noun,,其他,excluded,, +pace,noun,,通用,pool,, +package,noun,Shopping,日常,pool,, +packing,noun,,通用,pool,, +paddle,noun,Travel,旅行,pool,, +paid,adjective,,通用,pool,yes, +pain,noun,Health and body care,日常,pool,, +painful,adjective,,通用,pool,, +pale,adjective,,通用,pool,, +palm,noun,Health and body care,日常,pool,, +parachute,noun,,通用,pool,, +paradise,noun,,通用,pool,, +paralyze/paralyse,verb,,其他,excluded,, +parcel,noun,,通用,pool,, +parental,adjective,,通用,pool,, +parking,noun,Travel,旅行,pool,, +parrot,noun,,其他,excluded,, +partial,adjective,,其他,excluded,, +participant,noun,,通用,pool,, +participate,verb,,通用,pool,, +participle,noun,,学校与学术,excluded,, +particularly,adverb,,通用,pool,, +part-time,adjective/adverb,,通用,pool,, +passion,noun,,通用,pool,, +passive,adjective,,通用,pool,, +passport,noun,Travel,旅行,pool,, +password,noun,,通用,pool,, +patience,noun,Health and body care,日常,pool,, +patrol,noun,,其他,excluded,, +pattern,noun,,通用,pool,, +pause,noun/verb,,通用,pool,, +peanut,noun,Food and drink,日常,pool,, +peculiar,adjective,,其他,excluded,, +penniless,adjective,,其他,excluded,, +penny,noun,,通用,pool,, +per,preposition,,通用,pool,,yes +percent/per cent,noun,,通用,pool,, +performer,noun,Personal identification,日常,pool,, +permanent,adjective,,通用,pool,, +permanently,adverb,,通用,pool,, +permit,verb,,通用,pool,, +personally,adverb,,通用,pool,, +persuade,verb,,通用,pool,, +persuasive,adjective,,其他,excluded,, +phantom,adjective,,其他,excluded,, +pharmacy,noun,Health and body care,日常,pool,, +phenomenon,noun,,学校与学术,excluded,, +philosopher,noun,Personal identification,其他,excluded,, +philosophy,noun,Education,其他,excluded,, +phoenix,noun,,其他,excluded,, +photocopy,noun,,通用,pool,, +phrasal verb,noun,,学校与学术,excluded,, +phrase,noun,Education,其他,excluded,, +physics,noun,Education,学校与学术,excluded,, +pie,noun,Food and drink,日常,pool,, +piety,noun,,其他,excluded,, +pillow,noun,Shopping,日常,pool,, +pin,verb,,通用,pool,, +pineapple,noun,Food and drink,日常,pool,, +pipe,noun,,通用,pool,, +pit,noun,,其他,excluded,, +plain,adjective,,通用,pool,, +platform,noun,Travel,旅行,pool,, +pleasantly,adverb,,通用,pool,, +plug,noun,,通用,pool,, +pocket money,noun,Shopping,日常,pool,, +poet,noun,Personal identification,其他,excluded,, +poetry,noun,"Free time, entertainment",其他,excluded,, +poison,noun,Health and body care,日常,pool,, +poisonous,adjective,,通用,pool,, +pole,noun,,通用,pool,, +policy,noun,,通用,pool,, +politely,adverb,,通用,pool,, +politician,noun,Personal identification,日常,pool,, +politics,noun,Education,通用,pool,, +pollutant,noun,,其他,excluded,, +pond,noun,"House and home, environment",日常,pool,, +popcorn,noun,,通用,pool,, +pork,noun,Food and drink,日常,pool,, +port,noun,Travel,旅行,pool,, +positive,adjective,,通用,pool,, +positively,adverb,,通用,pool,, +possess,verb,,通用,pool,, +possession,noun,,通用,pool,, +possessive,adjective,,学校与学术,excluded,, +possibility,noun,,通用,pool,, +postcard,noun,Relations with other people,日常,pool,, +postman,noun,Personal identification,日常,pool,, +pot,noun,Shopping,日常,pool,, +potential,noun,,通用,pool,, +pottery,noun,Shopping,日常,pool,, +pound,noun,,通用,pool,, +poverty,noun,,通用,pool,, +powder,noun,Shopping,日常,pool,, +practical,adjective,,通用,pool,, +praise,noun,,通用,pool,, +prayer,noun,Personal identification,日常,pool,, +precious,adjective,,通用,pool,, +preference,noun,Personal identification,日常,pool,, +prefix,noun,,学校与学术,excluded,, +pregnant,adjective,,通用,pool,, +prejudice,noun,,其他,excluded,, +preparation,noun,,通用,pool,, +prepared,adjective,,通用,pool,, +preposition,noun,,学校与学术,excluded,, +preschool,adjective,,学校与学术,excluded,, +prescription,noun,,通用,pool,, +presence,noun,,通用,pool,, +presentation,noun,,通用,pool,, +preservation,noun,,其他,excluded,, +preserve,verb,,通用,pool,, +president,noun,Personal identification,日常,pool,, +press,noun/verb,,通用,pool,, +previous,adjective,,通用,pool,, +priest,noun,Personal identification,其他,excluded,, +primarily,adverb,,其他,excluded,, +primary school,noun,Education,学校与学术,excluded,, +primitive,adjective,,其他,excluded,, +principle,noun,,学校与学术,excluded,, +prison,noun,"House and home, environment",日常,pool,, +prisoner,noun,Relations with other people,其他,excluded,, +privacy,noun,,通用,pool,, +prize,noun,,通用,pool,, +probability,noun,,学校与学术,excluded,, +proceed,verb,,通用,pool,, +process,noun,,通用,pool,, +proclaim,verb,,其他,excluded,, +procrastination,noun,,其他,excluded,, +producer,noun,Personal identification,日常,pool,, +productive,adjective,,通用,pool,, +profession,noun,Personal identification,日常,pool,, +professor,noun,Personal identification,学校与学术,excluded,, +progress,noun,,通用,pool,, +prohibition,noun,,其他,excluded,, +prominent,adjective,,其他,excluded,, +promote,verb,,通用,pool,, +promotion,noun,,通用,pool,, +pronoun,noun,,学校与学术,excluded,, +proof,noun,,通用,pool,, +properly,adverb,,通用,pool,, +property,noun,,通用,pool,, +proportion,noun,,学校与学术,excluded,, +proposal,noun,Relations with other people,日常,pool,, +propose,verb,,通用,pool,, +prosperity,noun,,其他,excluded,, +prosperous,adjective,,其他,excluded,, +protect,verb,,通用,pool,, +protection,noun,,通用,pool,, +protective,adjective,,通用,pool,, +protest,noun,Relations with other people,日常,pool,, +proud,adjective,,通用,pool,, +prove,verb,,通用,pool,, +proverb,noun,Language,学校与学术,excluded,, +provided,conjunction,,其他,excluded,,yes +psychological,adjective,,其他,excluded,, +pub,noun,Food and drink,日常,pool,, +public transport,noun,Travel,旅行,pool,, +publicly,adverb,,通用,pool,, +publisher,noun,Personal identification,其他,excluded,, +pullover,noun,,通用,pool,, +pump,noun,,通用,pool,, +punish,verb,,通用,pool,, +punishment,noun,Relations with other people,日常,pool,, +pupil,noun,Education,学校与学术,excluded,, +puppy,noun,,通用,pool,, +pure,adjective,,通用,pool,, +purify,verb,,其他,excluded,, +purse,noun,Shopping,日常,pool,, +puzzle,noun,"Free time, entertainment",日常,pool,, +quake,noun,,其他,excluded,, +qualified,adjective,,工作,work_only,, +qualify,verb,,工作,work_only,, +quantity,noun,,通用,pool,, +question mark,noun,,学校与学术,excluded,, +questionnaire,noun,,通用,pool,, +queue,noun,,通用,pool,, +race,noun/verb,"Free time, entertainment",日常,pool,, +racial,adjective,,其他,excluded,, +radiation,noun,,其他,excluded,, +rage,noun,,其他,excluded,, +rail,noun,Travel,旅行,pool,, +railroad,noun,,通用,pool,, +railway,noun,Travel,旅行,pool,, +rainfall,noun,Weather,日常,pool,, +rainforest,noun,"House and home, environment",日常,pool,, +rank,noun,,其他,excluded,, +rapid,adjective,,通用,pool,, +rapidly,adverb,,通用,pool,, +rare,adjective,,通用,pool,, +rarely,adverb,,通用,pool,, +raspberry,noun,,通用,pool,, +ration,noun,,其他,excluded,, +rational,adjective,,其他,excluded,, +razor,noun,,通用,pool,, +react,verb,,通用,pool,, +realistic,adjective,,通用,pool,, +reality,noun,,通用,pool,, +rearrange,verb,,通用,pool,, +reasonable,adjective,,通用,pool,, +rebuild,verb,,通用,pool,, +recall,verb,,通用,pool,, +reception,noun,,通用,pool,, +recite,verb,,学校与学术,excluded,, +reclaim,verb,,其他,excluded,, +recognize/recognise,verb,,通用,pool,, +recommend,verb,,通用,pool,, +recording,noun,"Free time, entertainment",日常,pool,, +recover,verb,,通用,pool,, +recovery,noun,,通用,pool,, +recycled,adjective,,通用,pool,, +recycling,noun,,通用,pool,, +reduce,verb,,通用,pool,, +reduction,noun,,通用,pool,, +reef,noun,,其他,excluded,, +referee,noun,,其他,excluded,, +reflection,noun,,通用,pool,, +refreshments,noun,Food and drink,日常,pool,, +refund,noun,,通用,pool,, +refusal,noun,,通用,pool,, +refuse,noun/verb,,通用,pool,, +regain,verb,,通用,pool,, +regard,verb,,通用,pool,, +regarding,preposition,,通用,pool,,yes +region,noun,"House and home, environment",日常,pool,, +regional,adjective,,通用,pool,, +register,noun/verb,,通用,pool,, +registration,noun,,通用,pool,, +regulation,noun,,通用,pool,, +reject,verb,,通用,pool,, +relate,verb,,通用,pool,, +relation,noun,Relations with other people,日常,pool,, +relationship,noun,Relations with other people,日常,pool,, +relative,adjective/noun,Personal identification,日常,pool,, +relatively,adverb,,通用,pool,, +relaxing,adjective,,通用,pool,, +reliable,adjective,,通用,pool,, +religion,noun,Personal identification,其他,excluded,, +religious,adjective,,其他,excluded,, +rely,verb,,通用,pool,, +remainder,noun,,通用,pool,, +remark,verb,,通用,pool,, +remarkable,adjective,,通用,pool,, +remedy,noun,,通用,pool,, +remembrance,noun,,其他,excluded,, +remote control,noun,,通用,pool,, +remove,verb,,通用,pool,, +renew,verb,,通用,pool,, +repay,verb,,通用,pool,, +repeatedly,adverb,,通用,pool,, +representative,noun,,其他,excluded,, +reproduce,verb,,其他,excluded,, +republic,noun,,其他,excluded,, +reputation,noun,,通用,pool,, +require,verb,,通用,pool,, +requirement,noun,,通用,pool,, +rescue,noun/verb,Relations with other people,日常,pool,, +researcher,noun,Personal identification,日常,pool,, +resemble,verb,,其他,excluded,, +reservation,noun,Travel,旅行,pool,, +reserve,noun/verb,,通用,pool,, +resident,adjective,,通用,pool,, +residential,adjective,,通用,pool,, +resist,verb,,其他,excluded,, +resolve,verb,,通用,pool,, +resort,noun,Travel,旅行,pool,, +resource,noun,,通用,pool,, +respect,noun/verb,Relations with other people,日常,pool,, +respectable,adjective,,通用,pool,, +respond,verb,,通用,pool,, +responsibility,noun,,通用,pool,, +responsible,adjective,,通用,pool,, +rest,noun/verb,"Free time, entertainment",日常,pool,, +restore,verb,,通用,pool,, +restrict,verb,,通用,pool,, +retail,noun,,通用,pool,, +retain,verb,,其他,excluded,, +retell,verb,,通用,pool,, +retrospect,noun,,其他,excluded,, +reunification,noun,,其他,excluded,, +reunify,verb,,其他,excluded,, +revise,verb,,学校与学术,excluded,, +revision,noun,,学校与学术,excluded,, +reward,noun,,通用,pool,, +rewrite,verb,,通用,pool,, +rid,verb,,通用,pool,, +riddle,verb,,其他,excluded,, +ridiculous,adjective,,通用,pool,, +ripe,adjective,,通用,pool,, +rise,noun/verb,,通用,pool,, +risk,noun,,通用,pool,, +roadside,noun,"House and home, environment",日常,pool,, +robot,noun,,通用,pool,, +rolling,adjective,,通用,pool,, +rotten,adjective,,通用,pool,, +rough,adjective,,通用,pool,, +routine,noun,,通用,pool,, +rubber,noun,,通用,pool,, +rubbish,noun,,通用,pool,, +rudely,adverb,,通用,pool,, +runaway,noun,"House and home, environment",日常,pool,, +runway,noun,Travel,旅行,pool,, +sacred,adjective,,其他,excluded,, +sadness,noun,,通用,pool,, +safari,noun,"Free time, entertainment",日常,pool,, +safeguard,noun,,通用,pool,, +safely,adverb,,通用,pool,, +safety,noun,,通用,pool,, +salesman,noun,Personal identification,日常,pool,, +salmon,noun,Food and drink,日常,pool,, +sand,noun,,通用,pool,, +sandal,noun,Shopping,日常,pool,, +satellite,noun,,其他,excluded,, +satisfaction,noun,,通用,pool,, +satisfied,adjective,,通用,pool,, +saucepan,noun,Shopping,日常,pool,, +saucer,noun,Shopping,日常,pool,, +scan,noun,,通用,pool,, +scare,verb,,通用,pool,, +scared,adjective,,通用,pool,, +scary,adjective,,通用,pool,, +scatter,verb,,通用,pool,, +scenic,adjective,,通用,pool,, +scholar,noun,Education,学校与学术,excluded,, +scholarship,noun,Education,学校与学术,excluded,, +schoolmate,noun,Relations with other people,学校与学术,excluded,, +schoolteacher,noun,Personal identification,学校与学术,excluded,, +science fiction,noun,"Free time, entertainment",日常,pool,, +scold,verb,,通用,pool,, +scope,noun,,其他,excluded,, +score,noun/verb,,通用,pool,, +scratch,noun,,通用,pool,, +sculpture,noun,"Free time, entertainment",日常,pool,, +season,noun,,通用,pool,, +seawater,noun,,通用,pool,, +seaweed,noun,Food and drink,日常,pool,, +secondary school,noun,Education,学校与学术,excluded,, +second-hand,adjective/adverb,,通用,pool,, +secretly,adverb,,通用,pool,, +secure,adjective,,通用,pool,, +security,noun,Services,日常,pool,, +seize,verb,,其他,excluded,, +select,adjective,,通用,pool,, +selection,noun,,通用,pool,, +selfish,adjective,,通用,pool,, +self-service,adjective,,通用,pool,, +sensation,noun,,其他,excluded,, +separation,noun,,通用,pool,, +sequence,noun,,其他,excluded,, +series,noun,,通用,pool,, +serious,adjective,,通用,pool,, +server,noun,,通用,pool,, +service,noun/verb,Services,日常,pool,, +session,noun,,通用,pool,, +setting,noun,,通用,pool,, +settle,verb,,通用,pool,, +settlement,noun,,其他,excluded,, +settler,noun,,其他,excluded,, +severe,adjective,,通用,pool,, +severely,adverb,,通用,pool,, +sex,noun,,其他,excluded,, +shadowy,adjective,,其他,excluded,, +shallow,adjective,,通用,pool,, +shame,noun,,通用,pool,, +shameful,adjective,,通用,pool,, +sharp,adjective,,通用,pool,, +shave,verb,,通用,pool,, +sheer,adjective,,其他,excluded,, +sheet,noun,,通用,pool,, +shelter,noun,"House and home, environment",日常,pool,, +sheriff,noun,Personal identification,其他,excluded,, +shift,verb,,通用,pool,, +shiny,adjective,,通用,pool,, +shiver,verb,,通用,pool,, +shocked,adjective,,通用,pool,, +shocking,adjective,,通用,pool,, +shopper,noun,Shopping,日常,pool,, +shortage,noun,,通用,pool,, +shortly,adverb,,通用,pool,, +shrimp,noun,,通用,pool,, +sickness,noun,Health and body care,日常,pool,, +sidewalk,noun,,通用,pool,, +sigh,noun,,通用,pool,, +signal,noun,,通用,pool,, +signature,noun,,通用,pool,, +significance,noun,,通用,pool,, +signpost,noun,,通用,pool,, +silent,adjective,,通用,pool,, +silk,noun,Shopping,日常,pool,, +similarity,noun,,通用,pool,, +similarly,adverb,,通用,pool,, +simplify,verb,,通用,pool,, +simultaneously,adverb,,其他,excluded,, +skeleton,noun,Health and body care,其他,excluded,, +skin,noun,Health and body care,日常,pool,, +skyscraper,noun,"House and home, environment",日常,pool,, +slavery,noun,Relations with other people,其他,excluded,, +sleeve,noun,Shopping,日常,pool,, +slight,noun,,通用,pool,, +slightly,adverb,,通用,pool,, +slip,noun/verb,,通用,pool,, +slogan,noun,,其他,excluded,, +slope,noun,"House and home, environment",日常,pool,, +slot,noun,,通用,pool,, +smoker,noun,Personal identification,日常,pool,, +sneeze,noun,,通用,pool,, +snowboard,noun,"Free time, entertainment",日常,pool,, +snowstorm,noun,Weather,日常,pool,, +soap opera,noun,"Free time, entertainment",日常,pool,, +social networking,noun,"Free time, entertainment",日常,pool,, +socially,adverb,,通用,pool,, +soil,verb,,通用,pool,, +solid,adjective,,通用,pool,, +somehow,adverb,,通用,pool,, +someplace,adverb,,其他,excluded,, +sometime,adverb,,通用,pool,, +sometimes,adverb,,通用,pool,, +soothe,verb,,通用,pool,, +sophomore,noun,Education,学校与学术,excluded,, +sore,adjective,,通用,pool,, +sorrow,noun,,其他,excluded,, +sort,noun,,通用,pool,, +soul,noun,,其他,excluded,, +sour,adjective,,通用,pool,, +southeast,adjective/noun,,通用,pool,, +southern,adjective,,通用,pool,, +southwest,adjective/noun,,通用,pool,, +souvenir,noun,Travel,旅行,pool,, +sparkle,noun,,其他,excluded,, +specialist,noun,Personal identification,日常,pool,, +specialize/specialise,verb,,其他,excluded,, +specially,adverb,,通用,pool,, +spectacular,adjective,,通用,pool,, +spectator,noun,,通用,pool,, +spelling,noun,Education,通用,pool,, +sphere,noun,,其他,excluded,, +spice,noun,Food and drink,日常,pool,, +spicy,adjective,,通用,pool,, +spider,noun,,通用,pool,, +spinach,noun,Food and drink,日常,pool,, +spiral,adjective,,通用,pool,, +spirit,noun,,通用,pool,, +spiritual,adjective,,其他,excluded,, +spoil,verb,,通用,pool,, +sponge,noun,,通用,pool,, +sponsor,noun,Personal identification,日常,pool,, +sports,adjective,,通用,pool,, +sportsmanship,noun,"Free time, entertainment",其他,excluded,, +stable,adjective,,通用,pool,, +stall,noun,Places,日常,pool,, +standard,noun,,通用,pool,, +stare,verb,,通用,pool,, +status,noun,,通用,pool,, +steadily,adverb,,通用,pool,, +steady,adjective,,通用,pool,, +steam,noun,,通用,pool,, +steel,noun,,通用,pool,, +steep,adjective,,通用,pool,, +stem,verb,,其他,excluded,, +stick,verb,,通用,pool,, +sticker,noun,,通用,pool,, +sticky,adjective,,通用,pool,, +stir,verb,,通用,pool,, +storage,noun,,通用,pool,, +stormy,adjective,,通用,pool,, +storyteller,noun,Personal identification,日常,pool,, +strain,noun,,其他,excluded,, +strangely,adverb,,通用,pool,, +strategic,adjective,,其他,excluded,, +straw,noun,,通用,pool,, +strawberry,noun,Food and drink,日常,pool,, +stream,noun/verb,,通用,pool,, +strengthen,verb,,通用,pool,, +stress,noun,Health and body care,日常,pool,, +stressed,adjective,,通用,pool,, +stressful,adjective,,通用,pool,, +stretch,verb,,通用,pool,, +stricken,adjective,,其他,excluded,, +strip,noun,,通用,pool,, +stripe,noun,,通用,pool,, +struggle,noun,,通用,pool,, +stubborn,adjective,,通用,pool,, +stuck,adjective,,通用,pool,, +studio,noun,Places,日常,pool,, +stuffed,adjective,,通用,pool,, +stumble,verb,,通用,pool,, +stun,verb,,通用,pool,, +stunning,adjective,,通用,pool,, +stupid,adjective,,通用,pool,, +stylish,adjective,,通用,pool,, +subconscious,adjective,,其他,excluded,, +submarine,noun,,其他,excluded,, +substantial,adjective,,其他,excluded,, +substitute,noun,,通用,pool,, +suddenly,adverb,,通用,pool,, +suffer,verb,,通用,pool,, +sufficient,adjective,,其他,excluded,, +suffix,noun,,学校与学术,excluded,, +suicide,noun,,其他,excluded,, +summarize/summarise,verb,,学校与学术,excluded,, +summit,noun,,通用,pool,, +sunbathe,verb,,通用,pool,, +sundial,noun,,其他,excluded,, +sunrise,noun,Weather,日常,pool,, +sunset,noun,Weather,日常,pool,, +superior,adjective,,其他,excluded,, +superstition,noun,,其他,excluded,, +supply,noun,,通用,pool,, +supporter,noun,,通用,pool,, +supportive,adjective,,通用,pool,, +suppose,verb,,通用,pool,, +supposedly,adverb,,其他,excluded,, +surely,adverb,,通用,pool,, +surface,noun,,通用,pool,, +surgeon,noun,,其他,excluded,, +surgery,noun,,通用,pool,, +surprisingly,adverb,,通用,pool,, +surround,verb,,通用,pool,, +surrounding,adjective,,通用,pool,, +survival,noun,,通用,pool,, +survivor,noun,Personal identification,日常,pool,, +suspect,noun,,通用,pool,, +suspicion,noun,,其他,excluded,, +swarm,noun,,其他,excluded,, +swear,verb,,其他,excluded,, +sweatshirt,noun,Shopping,日常,pool,, +swell,verb,,通用,pool,, +swimmer,noun,Personal identification,日常,pool,, +switch,noun/verb,,通用,pool,, +swollen,adjective,,通用,pool,, +sword,noun,,其他,excluded,, +sympathy,noun,,通用,pool,, +symptom,noun,,通用,pool,, +syndrome,noun,Health and body care,其他,excluded,, +systematic,adjective,,学校与学术,excluded,, +tablet,noun,Shopping,日常,pool,, +takeaway,noun,,通用,pool,, +takeoff/take-off,noun,Travel,旅行,pool,, +tale,noun,"Free time, entertainment",日常,pool,, +talented,adjective,,通用,pool,, +talkative,adjective,,通用,pool,, +tank,noun,,通用,pool,, +taste,noun/verb,Food and drink,日常,pool,, +tasteless,adjective,,通用,pool,, +tasty,adjective,,通用,pool,, +tax,noun,Shopping,日常,pool,, +teaching,noun,Education,通用,pool,, +teammate,noun,,通用,pool,, +teamwork,noun,,工作,work_only,, +tease,noun,,通用,pool,, +technique,noun,Education,通用,pool,, +technological,adjective,,其他,excluded,, +teen,noun,Personal identification,其他,excluded,, +telecommunications,noun,Services,其他,excluded,, +telegram,noun,Services,其他,excluded,, +teller,noun,Personal identification,日常,pool,, +temper,noun,,通用,pool,, +temporary,adjective,,通用,pool,, +tempt,verb,,其他,excluded,, +tend,verb,,通用,pool,, +tendency,noun,,其他,excluded,, +tense,adjective/noun,,其他,excluded,, +tension,noun,,其他,excluded,, +tent,noun,Travel,旅行,pool,, +term,noun,,通用,pool,, +terminal,noun,,通用,pool,, +terribly,adverb,,通用,pool,, +terrific,adjective,,通用,pool,, +terrified,adjective,,通用,pool,, +terror,noun,,其他,excluded,, +terrorism,noun,,其他,excluded,, +thankful,adjective,,通用,pool,, +theft,noun,Personal identification,日常,pool,, +theory,noun,,学校与学术,excluded,, +thirst,verb,,通用,pool,, +thorough,adjective,,通用,pool,, +threat,noun,,通用,pool,, +threatening,adjective,,通用,pool,, +thriller,noun,"Free time, entertainment",日常,pool,, +throughout,preposition,,通用,pool,,yes +thumb,noun,Health and body care,日常,pool,, +thump,verb,,其他,excluded,, +thunder,noun,Weather,日常,pool,, +thunderous,adjective,,其他,excluded,, +thus,adverb,,通用,pool,, +tick,noun/verb,,通用,pool,, +tide,noun,,通用,pool,, +tighten,verb,,通用,pool,, +tightly,adverb,,通用,pool,, +tile,noun,,通用,pool,, +timely,adjective,,通用,pool,, +tin,noun,,通用,pool,, +tiny,adjective,,通用,pool,, +tire,verb,,通用,pool,, +tiring,adjective,,通用,pool,, +tissue,noun,Shopping,日常,pool,, +tobacco,noun,,通用,pool,, +tongue,noun,Health and body care,日常,pool,, +toothpaste,noun,Shopping,日常,pool,, +tornado,noun,Weather,日常,pool,, +toss,verb,,通用,pool,, +total,adjective/noun,,通用,pool,, +totally,adverb,,通用,pool,, +tourism,noun,Travel,旅行,pool,, +tournament,noun,,其他,excluded,, +trace,noun,,通用,pool,, +tracksuit,noun,,通用,pool,, +traditionally,adverb,,通用,pool,, +traffic jam,noun,Travel,旅行,pool,, +tragedy,noun,"Free time, entertainment",日常,pool,, +tragic,adjective,,其他,excluded,, +trail,noun,,通用,pool,, +transfer,verb,,通用,pool,, +transform,verb,,通用,pool,, +transformation,noun,,其他,excluded,, +transitional,adjective,,其他,excluded,, +translate,verb,,通用,pool,, +transport,noun,Travel,旅行,pool,, +transportation,noun,Travel,旅行,pool,, +trash,noun,,通用,pool,, +travel agent,noun,Services,日常,pool,, +treat,noun,,通用,pool,, +treatment,noun,,通用,pool,, +tremble,verb,,通用,pool,, +tremendous,adjective,,通用,pool,, +trend,noun,,通用,pool,, +trigger,noun,,其他,excluded,, +trim,noun,,通用,pool,, +triumph,noun,,其他,excluded,, +tropical,adjective,,通用,pool,, +trumpet,noun,,其他,excluded,, +trustworthy,adjective,,通用,pool,, +tumble,verb,,其他,excluded,, +tuna,noun,Food and drink,日常,pool,, +turbulence,noun,,通用,pool,, +turning,noun,,通用,pool,, +turtle,noun,,通用,pool,, +twin,noun,Personal identification,日常,pool,, +twist,noun/verb,,通用,pool,, +typical,adjective,,通用,pool,, +typically,adverb,,通用,pool,, +unable,adjective,,通用,pool,, +unafraid,adjective,,通用,pool,, +unbelievable,adjective,,通用,pool,, +uncertainty,noun,,通用,pool,, +unclear,adjective,,通用,pool,, +uncontrollable,adjective,,通用,pool,, +uncover,verb,,通用,pool,, +underage,adjective,,其他,excluded,, +undergo,verb,,其他,excluded,, +underneath,preposition,,其他,excluded,,yes +underpants,noun,Shopping,日常,pool,, +undo,verb,,通用,pool,, +undress,verb,,通用,pool,, +unemployed,adjective,,工作,work_only,, +unemployment,noun,Daily life,工作,work_only,, +unexpected,adjective,,通用,pool,, +unexpectedly,adverb,,通用,pool,, +unfairly,adverb,,通用,pool,, +unfit,adjective,,通用,pool,, +unfold,verb,,通用,pool,, +unfortunate,adjective,,通用,pool,, +unfriendly,adjective,,通用,pool,, +unheard,adjective,,其他,excluded,, +unify,verb,,其他,excluded,, +uninterested,adjective,,通用,pool,, +uninteresting,adjective,,通用,pool,, +union,noun,,其他,excluded,, +unique,adjective,,通用,pool,, +unite,verb,,其他,excluded,, +universe,noun,,其他,excluded,, +unless,conjunction,,通用,pool,,yes +unlikely,adjective,,通用,pool,, +unlucky,adjective,,通用,pool,, +unpack,verb,,通用,pool,, +unpredictable,adjective,,通用,pool,, +unrelated,adjective,,通用,pool,, +untidy,adjective,,通用,pool,, +unusually,adverb,,通用,pool,, +unwanted,adjective,,通用,pool,, +unwell,adjective,,通用,pool,, +update,verb,,通用,pool,, +uplifted,adjective,,其他,excluded,, +upload,verb,,通用,pool,, +upper,adjective,,通用,pool,, +up-to-date,adjective,,通用,pool,, +upward,adjective,,通用,pool,, +urge,noun,,通用,pool,, +urgent,adjective,,通用,pool,, +usage,noun,,其他,excluded,, +used to,modal auxiliary,,通用,pool,,yes +useless,adjective,,通用,pool,, +vacancy,noun,,通用,pool,, +vague,adjective,,通用,pool,, +vain,adjective,,其他,excluded,, +valuable,adjective,,通用,pool,, +van,noun,Travel,旅行,pool,, +variety,noun,,通用,pool,, +various,adjective,,通用,pool,, +vary,verb,,通用,pool,, +vast,adjective,,通用,pool,, +vegetarian,adjective/noun,Personal identification,日常,pool,, +vehicle,noun,Travel,旅行,pool,, +vein,noun,,其他,excluded,, +vessel,noun,"House and home, environment",其他,excluded,, +vet,noun,Personal identification,日常,pool,, +via,preposition,,通用,pool,,yes +vice,adjective,,其他,excluded,, +vice president,noun,,其他,excluded,, +victim,noun,Relations with other people,日常,pool,, +victory,noun,Relations with other people,其他,excluded,, +video clip,noun,"Free time, entertainment",日常,pool,, +viewpoint,noun,,通用,pool,, +violence,noun,Relations with other people,日常,pool,, +violently,adverb,,通用,pool,, +virtual,adjective,,通用,pool,, +virus,noun,Health and body care,日常,pool,, +visa,noun,Travel,旅行,pool,, +visible,adjective,,通用,pool,, +vision,noun,,其他,excluded,, +visual,adjective,,通用,pool,, +visually,adverb,,其他,excluded,, +vivid,adjective,,通用,pool,, +vividly,adverb,,其他,excluded,, +volcano,noun,"House and home, environment",日常,pool,, +volume,noun,,通用,pool,, +volunteer,verb,,通用,pool,, +vowel,noun,,学校与学术,excluded,, +voyage,noun,Travel,旅行,pool,, +wagon,noun,Travel,其他,excluded,, +ward,noun,,其他,excluded,, +wardrobe,noun,Shopping,日常,pool,, +warmly,adverb,,通用,pool,, +warmth,noun,Weather,日常,pool,, +warn,verb,,通用,pool,, +warning,noun,,通用,pool,, +warranty,noun,,通用,pool,, +warrior,noun,,其他,excluded,, +washbowl,noun,"House and home, environment",其他,excluded,, +waste,adjective/noun/verb,,通用,pool,, +wasteful,adjective,,其他,excluded,, +waterfall,noun,,通用,pool,, +wax,noun/verb,,其他,excluded,, +weakness,noun,,通用,pool,, +weapon,noun,Relations with other people,其他,excluded,, +weather forecast,noun,Weather,日常,pool,, +webcam,noun,"Free time, entertainment",日常,pool,, +weird,adjective,,通用,pool,, +well-dressed,adjective,,通用,pool,, +westward,adverb,,其他,excluded,, +wetland,noun,,通用,pool,, +whale,noun,,通用,pool,, +whenever,adverb/conjunction,,通用,pool,, +wherever,conjunction,,通用,pool,,yes +whether,conjunction,,通用,pool,,yes +whichever,determiner,,通用,pool,,yes +whisper,noun,,通用,pool,, +whistle,noun,,通用,pool,, +whoever,pronoun,,通用,pool,,yes +widespread,adjective,,通用,pool,, +wildlife,noun,,通用,pool,, +wildly,adverb,,通用,pool,, +willingness,noun,,其他,excluded,, +windscreen,noun,"Free time, entertainment",日常,pool,, +windsurfing,noun,"Free time, entertainment",日常,pool,, +wing,noun,,通用,pool,, +wire,noun,,通用,pool,, +wither,verb,,其他,excluded,, +witness,verb,,通用,pool,, +wizard,adjective,,其他,excluded,, +working,adjective,,通用,pool,, +workout,noun,,通用,pool,, +workplace,noun,Daily life,工作,work_only,, +workshop,noun,Education,工作,work_only,, +worn,adjective,,通用,pool,yes, +worth,adjective,,通用,pool,, +worthwhile,adjective,,通用,pool,, +worthy,adjective,,通用,pool,, +wound,noun,,通用,pool,, +wrap,noun/verb,Shopping,日常,pool,, +wrapping,noun,,通用,pool,, +wrist,noun,Health and body care,日常,pool,, +wristwatch,noun,Shopping,日常,pool,, +written,adjective,,通用,pool,yes, +yell,noun,,通用,pool,, +yoga,noun,"Free time, entertainment",日常,pool,, diff --git a/kouyu_english/tool/courses/validate.dart b/kouyu_english/tool/courses/validate.dart new file mode 100644 index 0000000..8d9dee2 --- /dev/null +++ b/kouyu_english/tool/courses/validate.dart @@ -0,0 +1,62 @@ +// 校验 assets/courses 下的单元内容包并报告词池覆盖。 +// +// dart run tool/courses/validate.dart # 报告错误和覆盖率 +// dart run tool/courses/validate.dart --uncovered A1 # 列出未覆盖的词 +// dart run tool/courses/validate.dart --levels A1-U01 # 打印条目的计算等级 +import 'dart:io'; + +import 'package:kouyu_english/core/a0_core.dart'; + +import 'course_validator.dart'; + +void main(List args) { + final validator = CourseValidator( + projectRoot: Directory.current, + a0Texts: [ + // 去掉 [name] 这类槽位占位符,它们不是教过的词。 + for (final item in a0CoreItems.values) + item.replaceAll(RegExp(r'\[[^\]]*\]'), ''), + for (final sentence in a0DictationSentences.values) sentence.sentence, + ], + ); + final report = validator.validate(); + + for (final issue in report.errors) { + stdout.writeln('错误 $issue'); + } + if (report.missingUnits.isNotEmpty) { + stdout.writeln('待编写 ${report.missingUnits.length} 个单元:' + '${report.missingUnits.first} … ${report.missingUnits.last}'); + } + for (final coverage in report.coverage.values) { + stdout.writeln('${coverage.level} 词池覆盖 ${coverage.covered}/${coverage.poolSize} ' + '(${(coverage.ratio * 100).toStringAsFixed(1)}%)' + '${coverage.unitsReady ? '' : ',单元未写完'}'); + } + + final uncoveredIndex = args.indexOf('--uncovered'); + if (uncoveredIndex >= 0 && uncoveredIndex + 1 < args.length) { + final coverage = report.coverage[args[uncoveredIndex + 1]]; + final byTopic = >{}; + for (final word in coverage?.uncovered ?? const []) { + byTopic.putIfAbsent(word.topic.isEmpty ? '(无主题)' : word.topic, () => []) + .add(word.headword); + } + final topics = byTopic.keys.toList() + ..sort((a, b) => byTopic[b]!.length - byTopic[a]!.length); + for (final topic in topics) { + stdout.writeln('\n[$topic] ${byTopic[topic]!.length}'); + stdout.writeln(byTopic[topic]!.join(', ')); + } + } + + final levelsIndex = args.indexOf('--levels'); + if (levelsIndex >= 0 && levelsIndex + 1 < args.length) { + final levels = report.itemLevels[args[levelsIndex + 1]] ?? const {}; + for (final MapEntry(:key, :value) in levels.entries) { + stdout.writeln('$key\t$value'); + } + } + + exitCode = report.errors.isEmpty ? 0 : 1; +}