auto-sync: contextual-word-allocation 2026-04-07_14:45
This commit is contained in:
commit
1ced106d76
112
SKILL.md
Normal file
112
SKILL.md
Normal file
@ -0,0 +1,112 @@
|
||||
---
|
||||
name: contextual-word-allocation
|
||||
description: >
|
||||
儿童教育游戏动画剧本的情境化选词工具。将词库(Excel/列表)中的单词知识点,
|
||||
按照故事情境(而非词义类别)分组,分配至每个Unit的Lesson中,
|
||||
使每个Lesson的4个单词能自然地支撑一个贴近日常的小故事情境。
|
||||
|
||||
**触发场景:**
|
||||
(1) 用户提供单词表(含单词/词性/词义)和Unit故事背景设定
|
||||
(2) 需要将词库拆分为每4词一组的情境化分配方案
|
||||
(3) 需要给出情境名称(≤6字)和聚合理由
|
||||
(4) 用户提到「情境化选词」「单词分配」「词库分组」「Lesson选词」
|
||||
---
|
||||
|
||||
# 情境化选词工作流
|
||||
|
||||
## 核心概念
|
||||
|
||||
**情境化选词 ≠ 词义分类**
|
||||
- ❌ 传统:blue/red/yellow/pink → 【颜色】
|
||||
- ✅ 情境化:autumn/leaf/yellow/orange → 【秋季拾叶】(配秋天捡落叶做艺术品的故事)
|
||||
|
||||
词汇从属于情境,情境服务于故事,故事符合儿童日常体验。
|
||||
|
||||
## 输入规格
|
||||
|
||||
1. **词库文件**(Excel/列表):包含 `单词 | 词性 | 词义 | 原始主题分类`
|
||||
2. **Unit背景设定**:每个Unit的故事一句话概要、关键剧情、出场角色
|
||||
3. **分配规格**:Units数量 × 5 Lessons/Unit × 4词/Lesson = 总词数
|
||||
|
||||
## 工作流程(5步)
|
||||
|
||||
### Step 1:词库预处理
|
||||
- 读取词库文件,提取全部词条(含词性,同词多词性视为独立词条)
|
||||
- 统计虚词(adv/pron/det/prep)数量
|
||||
- 验证:总词数 = Units × 5 × 4
|
||||
|
||||
### Step 2:虚词规划
|
||||
先统计词库中虚词占总词数的比例,据此推算每个Unit应分配的虚词数量,使各Unit的虚词密度尽量均衡,避免虚词在靠后Unit中扎堆。
|
||||
- **规划公式**:虚词总数 / Units数 ≈ 每Unit虚词配额(可允许±1的浮动,但不得有Unit为0或过度集中)
|
||||
- **调整原则**:在满足均衡分布的前提下,与Unit故事情境自然契合的虚词优先分配(如ago=「以前」适合「收到旧包裹」的情节)
|
||||
- 提前制作虚词分配表,后续Step 4严格遵守,不得在实词分配阶段随意调换虚词所属Unit
|
||||
|
||||
### Step 3:主题-Unit映射
|
||||
对照Unit故事背景,将词库中天然契合该Unit主题的词群预标注:
|
||||
- 扫描词义/原始主题,找出与Unit场景强相关的词
|
||||
- 避免强行「凑主题」——无强关联的词可放入暂空池(若有)
|
||||
|
||||
### Step 4:逐Lesson分配(核心步骤)
|
||||
每组4词需同时满足:
|
||||
1. **≥3词与本Lesson角色行为/话题强相关**(第4词可为虚词或弱关联词)
|
||||
2. **4词共同指向同一个生活化情境**(可用一句话描述这个场景)
|
||||
3. **虚词自然嵌入**,不显突兀
|
||||
|
||||
分配顺序建议:
|
||||
1. 先锁定Lesson核心情境(来自Unit故事)
|
||||
2. 找3个与情境强相关的实词
|
||||
3. 从该Unit的虚词配额中选1个最契合的虚词补位
|
||||
4. 若虚词已配完,可用弱关联实词补位
|
||||
|
||||
### Step 5:全局验证
|
||||
分配完成后必须执行:
|
||||
- [ ] 总词条数 = 预期数(无遗漏)
|
||||
- [ ] 无重复(每个词条仅出现一次)
|
||||
- [ ] 各Unit虚词数量符合Step 2规划的配额(无大幅偏差)
|
||||
- [ ] 所有Unit虚词合计 = 词库虚词总数
|
||||
|
||||
## 输出格式
|
||||
|
||||
每个Lesson输出:
|
||||
```
|
||||
| Lesson编号 | 情境名称(≤6字) | 单词1(词性,词义) 单词2 单词3 单词4 | 聚合理由(说明4词如何共同构建一个情境)|
|
||||
```
|
||||
|
||||
按Unit分组,表格形式呈现。
|
||||
|
||||
## 质量标准
|
||||
|
||||
**好的情境聚合(符合以下特征):**
|
||||
- 4词放在一起,能在脑海中浮现一个具体场景画面
|
||||
- 虚词的用法在情境里是自然的(孩子能感受到它的意思)
|
||||
- 情境贴近5-9岁儿童日常,符合「低风险高情绪」原则
|
||||
- 4词组合能支撑完整的有故事感的Lesson剧本,而非仅组成单一静态画面
|
||||
- 名词和动词形成天然的动作链环(如pencil/write/paper/eraser),符合真实场景逻辑
|
||||
|
||||
## 强制选词规范(在开始分组前必须熟知并遵守,违反任一条则该分组无效)
|
||||
|
||||
> 以下规范在 **Step 4 逐Lesson分配之前**必须牢记,用于指导分组决策,而非在完成后再做纠错。
|
||||
|
||||
### 1. 词性/词义唯一性规则
|
||||
- **禁止**同一Lesson中出现同一拼写但不同词性/词义的单词(如 answer(n,答复) 与 answer(v,回答) 必须分属不同Lesson;phone(v,打电话) 与 phone(n,电话) 必须分属不同Lesson)
|
||||
- **禁止**同一Lesson中出现同义词或近义词;不在Lesson内做同义词辨析(如 apartment 与 flat、shop 与 store、go to bed 与 go to sleep 必须分属不同Lesson)
|
||||
- **禁止**同一Lesson中出现可触发同词多义联想的搭配(如 try(n,尝试) 所在Lesson的情境中,禁止出现「try again」等会触发动词 try 用法的搭配;该Lesson内 try 必须全程作名词)
|
||||
- **必须**使用词库中为该词条指定的单一词义(如 lime 只能用「酸橙」词义,禁止构建「青绿色」相关情境)
|
||||
|
||||
### 2. 词义搭配规则
|
||||
- **禁止**同一Lesson中出现3个及以上意义完全并列的同词性词(如3-4个并列形容词、3个并列动词、4个并列同类名词);纯词义分类聚合不是情境化
|
||||
- **必须**让语义可成对对应的词成对出现在同一Lesson(如 these/those、good/bad、clever/silly 等语义对立词对,须放在同一Lesson方便教学时区分词义)
|
||||
- **必须**确保同一Lesson中的词属于同一真实场景,禁止场景冲突(如 tennis racket 只能与 tennis 相关场景同组,禁止与 table tennis 同组;armchair/bookcase/lamp 必须搭配 living room,禁止搭配 dining room)
|
||||
- **必须**确保同一Lesson中有强关联逻辑的词对,其关联性在现实中成立(如 crocodile 与 evening 同组,须先确认「鳄鱼为夜行动物、evening时更活跃」的逻辑成立方可保留)
|
||||
|
||||
### 3. 故事适配规则
|
||||
- **必须**确保4词组合能支撑一个有故事感的Lesson剧本——4词共同指向一个有行动、有情绪、有情节推进的场景,禁止4词仅组成一幅静止画面
|
||||
- **必须**在为含动词的Lesson构建情境时,考虑该动词以一般现在时呈现的用法(动词教学通常以一般现在时出现):若该动词的一般现在时表达的是某人的日常习惯或状态(如 wear 的一般现在时表示「某人通常穿着什么」),则情境须对应构建为描述日常习惯的场景
|
||||
- **必须**根据故事背景和角色人设选词(如速猴登场的Lesson须包含 motorbike 等符合角色特征的词汇)
|
||||
- **禁止**引入会干扰当前故事聚焦的无关词汇(如在无需母亲角色出场的故事单元中,禁止将 mother 放入该Unit的任一Lesson)
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 同拼写不同词性/词义的词,视为独立词条,禁止放入同一Lesson
|
||||
- 暂空池Unit(若有)用于放置其余Unit塞不下的词,词汇选择灵活度最高
|
||||
- 分配草稿完成后,等待用户逐Unit微调,不要急于输出剧本正文
|
||||
65
references/workflow-example.md
Normal file
65
references/workflow-example.md
Normal file
@ -0,0 +1,65 @@
|
||||
# 情境化选词工作示例
|
||||
|
||||
## 实际案例:L1-S2 U17~U24(2026-04-03)
|
||||
|
||||
### 基本参数
|
||||
- 词库:160词条(含虚词18个)
|
||||
- 分配目标:8 Units × 5 Lessons × 4词 = 160词
|
||||
- 虚词分布:U17×2, U18×2, U19×2, U20×3, U21×2, U22×2, U23×3, U24×2 = 18 ✓
|
||||
|
||||
### 虚词统计与分配示例
|
||||
|
||||
词库中共18个虚词(adv/pron/det/prep):
|
||||
|
||||
| 虚词 | 词性 | 词义 | 分配Unit | 分配理由 |
|
||||
|------|------|------|---------|---------|
|
||||
| ago | adv | 以前 | U17-L1 | 包裹数年前寄出,ago天然嵌入「时间跨越」情境 |
|
||||
| home | adv | 回家/在家 | U17-L4 | 速猴行为神秘,主角回home,自然收尾 |
|
||||
| early | adv | 早地 | U18-L1 | 上学场景,early早起天然匹配 |
|
||||
| now | adv | 现在 | U18-L3 | 课堂进行中,now强调当下 |
|
||||
| again | adv | 再一次 | U19-L2 | 再试一次完成任务,again语义完全贴合 |
|
||||
| like | prep | 像 | U19-L3 | 打比方情境,like作比喻连接词 |
|
||||
| a lot | adv | 非常 | U20-L3 | 乒乓球a lot地弹跳,副词修饰动作 |
|
||||
| many | det | 许多 | U20-L1 | 运动会many项目,限定词描述规模 |
|
||||
| very | adv | 非常 | U20-L1 | 运动会very exciting,强调程度 |
|
||||
| some | det | 一些 | U21-L1 | 迷路学者ask有没有some水 |
|
||||
| these | det | 这些 | U21-L2 | 搭基地时「把these材料add进去」 |
|
||||
| a lot of | det | 大量的 | U22-L1 | 速猴备好a lot of糖果诱惑孩子 |
|
||||
| a lot | pron | 大量 | U22-L4 | 蜡烛仪式,a lot of children聚集 |
|
||||
| lots | adv | 非常 | U23-L1 | 假镇长发布lots of奇怪命令 |
|
||||
| lots | pron | 大量 | U23-L3 | 还有lots of证据要查 |
|
||||
| really | adv | 真正地 | U23-L2 | 「这person really是镇长吗?」 |
|
||||
| one | det | 一个 | U24-L4 | one by one分配任务 |
|
||||
| those | det | 那些 | U24-L3 | those圆球机器人所需的零件 |
|
||||
|
||||
### 词库预处理脚本参考
|
||||
|
||||
读取Excel词库时的Python核心逻辑:
|
||||
```python
|
||||
import openpyxl
|
||||
wb = openpyxl.load_workbook('wordlist.xlsx')
|
||||
ws = wb['单词表']
|
||||
words = []
|
||||
for row in ws.iter_rows(min_row=2, values_only=True):
|
||||
word, pos, meaning, theme = row[1], row[2], row[3], row[4]
|
||||
if word:
|
||||
words.append((word, pos, meaning, theme))
|
||||
virtual = [(w,p,m,t) for w,p,m,t in words if p in ('adv','pron','det','prep')]
|
||||
```
|
||||
|
||||
### 验证脚本参考
|
||||
|
||||
```python
|
||||
used = {}
|
||||
def assign(word, pos, unit, lesson):
|
||||
key = (word, pos)
|
||||
if key in used:
|
||||
print(f"DUPLICATE [{unit}-{lesson}]: {word}({pos}) -- already in {used[key]}")
|
||||
return False
|
||||
used[key] = f"{unit}-{lesson}"
|
||||
return True
|
||||
|
||||
# 分配完成后验证
|
||||
remaining = ALL_WORDS_SET - set(used.keys())
|
||||
assert len(remaining) == 0, f"Missing words: {remaining}"
|
||||
```
|
||||
Loading…
Reference in New Issue
Block a user