diff --git a/Doc/LEARNING-ENGINE-SPEC.md b/Doc/LEARNING-ENGINE-SPEC.md index 7f4c863..4ab425e 100644 --- a/Doc/LEARNING-ENGINE-SPEC.md +++ b/Doc/LEARNING-ENGINE-SPEC.md @@ -178,8 +178,16 @@ AI 对话中的词条必须来自当前允许语言范围,或是事先标为 | 产出核心(会用) | 单元内容包中需要主动说、写的词、词块和句型;每单元 10–15 项 | 3.1–3.2 的五种状态和掌握规则 | 计入 | | 理解词(会认) | 听懂、看懂即可的词;每单元 A1 20–35 项、A2 30–50 项、B1 50–80 项 | 新学 → 认识 → 熟悉 | 不逐项计入;升级时抽查(4.2) | | 扩展词 | 听读材料中查过或多次出现、由用户加入复习的词 | 同理解词 | 不计入,也不参与升级抽查 | +| 词库词 | 独立词库中该等级的词,不依赖课程进度 | 同理解词 | 不计入,也不参与升级抽查 | -**学习流程**:单词不单独背,跟着单元场景学。 +**独立词库**:理解词只能跟着单元走,学完 A0 十课词汇量也只增加约 22 个实词, +不足以解决“记不住单词”。因此另设一份独立词库(`assets/words/wordbank.json`), +词表范围和等级由 CEFR-J Vocabulary Profile 决定,从第一天起全部可用。 +新词按**口语频率**发放(同等级内从最常用的开始),不按字母序。 +词库词与理解词共用同一套状态机和间隔阶梯,同样不进产出核心的升级分母。 +数据来源与许可见 `kouyu_english/tool/words/DATA-NOTE.md`。 + +**学习流程**:会用的词不单独背,跟着单元场景学;会认的词另有独立入口。 1. 会用的词:预热(只记“见过”)→ 在场景句中听辨 → 说、读、写的替换练习 → 受控对话中用出来 → 独立尝试 → 按 3.1 间隔复习,每次复习换语境(如从地铁站换到火车站)。 2. 会认的词:不进预热,直接出现在教学段的听读材料里,首次出现可点开释义;教学段结束时做 2–3 道快速识别题,之后按下述理解词规则复习。 @@ -195,9 +203,29 @@ AI 对话中的词条必须来自当前允许语言范围,或是事先标为 理解词规则: -- 一次独立的听辨或阅读识别成功进入“认识”;至少间隔 7 天后,换题、换语境再次独立识别成功,进入“熟悉”,之后每 30 天抽查。 -- 识别失败回到“认识”,次日换题复核;不做诊断降级。 +- 一次独立的听辨或阅读识别成功进入“认识”。 +- 之后按间隔阶梯复习,每连续答对一次上一级:**1 → 3 → 7 → 15 → 30 → 60 → 120 天**,到 120 天封顶。 + 第四次连续答对且距首次“认识”已满 7 天,进入“熟悉”。最快需要 1+3+7=11 天, + 满足“至少间隔 7 天后再次识别成功”的要求。每次复习换题、换语境。 +- 识别失败回到阶梯第一级,次日换题复核;状态最多回到“认识”,不做诊断降级。 +- **三个方向轮转**:新词第一次、以及答错后的次日复核,用看词题(英→中)—— + 没见过拼写就先听音或先回想,都只是一串没有落点的声音。从第一次答对起按阶梯层级轮转: + **看词(英→中)→ 听词(音→中)→ 想词(中→英)**,每个词三条通道都要过。 + 只在纸面上认得的词,在口语里听不出来;只认得出、想不起来的词,用的时候不在手边。 +- 听词题只放音、不显示拼写,答完才一并给出拼写和音标,那一刻才是音与形对上的地方。 + 想词题给中文、从几个**拼写**里选,答完前不放音(放了就是念答案)。 +- 想词题**仍然是识别**,不是产出:从选项里认出来,不要求自己拼写或说出。 + 因此理解词的定位不变 —— 不计入产出核心的升级分母,也不走掌握五态。 + 选项之间互不同义(释义重合的词不作干扰项),否则一道题会有两个正确答案。 +- **每日新词上限**:按每日时长设定,10 分钟 8 个、20 分钟 15 个、30 分钟 20 个。 + 阶梯第一级是次日,今天引入的新词就是明天的工作量;没有上限时一次可以引入上百个词, + 第二天全部到期砸回来,正是“记不住”的成因。上限只限制**新引入**, + 到期复习和已引入但未作答的词不受限,中途退出的一轮下次可以接着做完。 - 复习以 5–10 秒的快速识别题为主,可以成组出现,占复习预算不超过三分之一。 + 该上限约束的是插进复习流的识别题;用户主动打开的单词页不受此限。 +- **入口**:单词页有独立 tab,同时在首页今日任务卡下方给一张认词卡,显示今天该过几个词、 + 预计几分钟。认词与今日任务是并行的,不参与“今天最该做的一件事”的排序, + 所以它单独占一行而不抢主卡;今天没题时缩成一行状态,但入口始终在。 - 在听读材料中答对与某个理解词直接相关的理解题,可计一次该词的识别证据。 - 后续单元把某个理解词列为产出核心时,保留已有识别证据,从“认识”开始走完整掌握流程。 diff --git a/kouyu_english/assets/courses/A0/a0-01.json b/kouyu_english/assets/courses/A0/a0-01.json index dc18d27..2735161 100644 --- a/kouyu_english/assets/courses/A0/a0-01.json +++ b/kouyu_english/assets/courses/A0/a0-01.json @@ -77,6 +77,17 @@ "sentence": "I’m Tom.", "meaning": "我是 Tom。" } + }, + "usage": { + "when": "想让对方知道你叫什么,自我介绍的时候说。", + "reply": "对方通常回一句 Nice to meet you.", + "swap": "My name is Tom. 意思一样,正式一点。", + "confuse": [ + { + "id": "A0-P02", + "note": "What's your name? 是问对方,I'm Tom. 是说自己;别人问了你才用这句回答。" + } + ] } }, { @@ -95,6 +106,24 @@ "sentence": "What’s your name?", "meaning": "你叫什么名字?" } + }, + "usage": { + "when": "你想知道对方叫什么名字。", + "reply": "对方会回 I'm Tom. 或 My name is Tom.", + "confuse": [ + { + "id": "A0-P01", + "note": "I'm Tom. 是回答,What's your name? 是提问;想知道对方名字才用这句。" + }, + { + "id": "A0-P05", + "note": "How are you? 问的是对方今天状态好不好,不是名字;见面先问好,想认识对方才问名字。" + }, + { + "id": "A0-P07", + "note": "What's your phone number? 问的是号码;两句都以 What's your 开头,区别全在后面那个词。" + } + ] } }, { @@ -112,6 +141,20 @@ "sentence": "Nice to meet you.", "meaning": "很高兴认识你。" } + }, + "usage": { + "when": "刚认识、知道对方名字之后,说一句客气话。", + "reply": "对方会回 Nice to meet you, too.", + "confuse": [ + { + "id": "A0-P01", + "note": "I'm Tom. 是告诉对方你叫什么,Nice to meet you. 是知道名字之后才说的客气话。" + }, + { + "id": "A0-P05", + "note": "How are you? 是在问状态,要回答好不好;Nice to meet you. 只是客气话,不用回答。" + } + ] } } ], diff --git a/kouyu_english/assets/courses/A0/a0-02.json b/kouyu_english/assets/courses/A0/a0-02.json index 2366b0d..a7fc1d9 100644 --- a/kouyu_english/assets/courses/A0/a0-02.json +++ b/kouyu_english/assets/courses/A0/a0-02.json @@ -22,6 +22,20 @@ "sentence": "How do you spell that?", "meaning": "那个怎么拼写?" } + }, + "usage": { + "when": "听到一个词(多半是名字),但不确定怎么写。", + "reply": "对方会一个字母一个字母念给你听。", + "confuse": [ + { + "id": "A0-P02", + "note": "What's your name? 是问对方叫什么,How do you spell that? 是已经听到了名字、只是不知道怎么写。" + }, + { + "id": "A0-P20", + "note": "Please say that again. 是没听清、要对方重说;这句是听清了、只是不会写。" + } + ] } } ], diff --git a/kouyu_english/assets/courses/A0/a0-03.json b/kouyu_english/assets/courses/A0/a0-03.json index 4c42010..9c5207b 100644 --- a/kouyu_english/assets/courses/A0/a0-03.json +++ b/kouyu_english/assets/courses/A0/a0-03.json @@ -75,6 +75,16 @@ "sentence": "How are you?", "meaning": "你怎么样?" } + }, + "usage": { + "when": "见面打招呼,问对方今天好不好。", + "reply": "对方会回 I'm good. / I'm okay. / I'm tired.", + "confuse": [ + { + "id": "A0-P02", + "note": "What's your name? 问的是名字;见面先说 How are you? 打招呼,想认识对方才问名字。" + } + ] } }, { @@ -98,6 +108,17 @@ "sentence": "I’m tired today.", "meaning": "我今天很累。" } + }, + "usage": { + "when": "别人问你 How are you? 的时候,说出你今天的状态。", + "reply": "说完可以反问一句 How are you?", + "swap": "熟悉的人之间也可以只说 Good. 或 Okay.", + "confuse": [ + { + "id": "A0-P01", + "note": "I'm Tom. 说的是名字,I'm tired. 说的是状态;I'm 后面放什么,看对方问的是哪一个。" + } + ] } } ], diff --git a/kouyu_english/assets/courses/A0/a0-04.json b/kouyu_english/assets/courses/A0/a0-04.json index 6af343c..fa82d39 100644 --- a/kouyu_english/assets/courses/A0/a0-04.json +++ b/kouyu_english/assets/courses/A0/a0-04.json @@ -237,6 +237,16 @@ "sentence": "What’s your phone number?", "meaning": "你的电话号码是多少?" } + }, + "usage": { + "when": "你想记下对方的电话号码。", + "reply": "对方会回 My number is 123.", + "confuse": [ + { + "id": "A0-P02", + "note": "What's your name? 问名字,这句问号码;都以 What's your 开头,听清后面的词再答。" + } + ] } }, { @@ -255,6 +265,16 @@ "sentence": "My number is one-three-eight.", "meaning": "我的号码是一三八。" } + }, + "usage": { + "when": "别人问你电话号码的时候,把号码报出来。", + "reply": "对方多半会复述一遍跟你确认。", + "confuse": [ + { + "id": "A0-P01", + "note": "I'm Tom. 回答的是名字,My number is 123. 回答的是号码。" + } + ] } } ], diff --git a/kouyu_english/assets/courses/A0/a0-05.json b/kouyu_english/assets/courses/A0/a0-05.json index 42a8757..867e97f 100644 --- a/kouyu_english/assets/courses/A0/a0-05.json +++ b/kouyu_english/assets/courses/A0/a0-05.json @@ -93,6 +93,16 @@ "sentence": "What’s this?", "meaning": "这是什么?" } + }, + "usage": { + "when": "指着身边一样东西,问它叫什么。", + "reply": "对方会回 It's a book.", + "confuse": [ + { + "id": "A0-P02", + "note": "What's your name? 问的是人叫什么,What's this? 问的是东西是什么。" + } + ] } }, { @@ -118,6 +128,20 @@ "sentence": "It’s a pen.", "meaning": "这是一支笔。" } + }, + "usage": { + "when": "别人指着一样东西问你那是什么,你来回答。", + "reply": "对方可能接着问 How do you spell that?", + "confuse": [ + { + "id": "A0-P09", + "note": "What's this? 是问,It's a book. 是答;别人指着东西问你,才用这句。" + }, + { + "id": "A0-P13", + "note": "This is my mother. 是把人介绍给别人,It's a book. 是说这东西是什么。" + } + ] } } ], diff --git a/kouyu_english/assets/courses/A0/a0-06.json b/kouyu_english/assets/courses/A0/a0-06.json index d533b3f..a7bf4b2 100644 --- a/kouyu_english/assets/courses/A0/a0-06.json +++ b/kouyu_english/assets/courses/A0/a0-06.json @@ -21,6 +21,16 @@ "sentence": "Where are you from?", "meaning": "你来自哪里?" } + }, + "usage": { + "when": "想知道对方是哪里人。", + "reply": "对方会回 I'm from China.", + "confuse": [ + { + "id": "A0-P02", + "note": "What's your name? 问名字,Where are you from? 问地方;Where 开头的一定是在问地点。" + } + ] } }, { @@ -43,6 +53,16 @@ "sentence": "I’m from China.", "meaning": "我来自中国。" } + }, + "usage": { + "when": "别人问 Where are you from? 的时候,说出你来自哪里。", + "reply": "对方常接一句 Nice to meet you.", + "confuse": [ + { + "id": "A0-P01", + "note": "I'm Tom. 是名字,I'm from China. 是地方;from 后面跟的一定是地点。" + } + ] } } ], diff --git a/kouyu_english/assets/courses/A0/a0-07.json b/kouyu_english/assets/courses/A0/a0-07.json index 7755b7d..2cafc9d 100644 --- a/kouyu_english/assets/courses/A0/a0-07.json +++ b/kouyu_english/assets/courses/A0/a0-07.json @@ -93,6 +93,16 @@ "sentence": "This is my sister.", "meaning": "这是我的姐妹。" } + }, + "usage": { + "when": "把身边的家人介绍给别人。", + "reply": "对方会说 Nice to meet you.", + "confuse": [ + { + "id": "A0-P01", + "note": "I'm Tom. 介绍的是你自己,This is my mother. 介绍的是别人。" + } + ] } } ], diff --git a/kouyu_english/assets/courses/A0/a0-08.json b/kouyu_english/assets/courses/A0/a0-08.json index 59225b9..8308bdf 100644 --- a/kouyu_english/assets/courses/A0/a0-08.json +++ b/kouyu_english/assets/courses/A0/a0-08.json @@ -147,6 +147,16 @@ "sentence": "What day is it today?", "meaning": "今天星期几?" } + }, + "usage": { + "when": "不确定今天星期几,问别人。", + "reply": "对方会回 It's Monday.", + "confuse": [ + { + "id": "A0-P16", + "note": "What time is it? 问的是现在几点钟,What day is it today? 问的是今天星期几。" + } + ] } }, { @@ -173,6 +183,16 @@ "sentence": "It’s Friday.", "meaning": "今天星期五。" } + }, + "usage": { + "when": "别人问今天星期几的时候回答。", + "swap": "熟人之间也可以只说 Monday.", + "confuse": [ + { + "id": "A0-P17", + "note": "It's Monday. 回答星期,It's three o'clock. 回答钟点;后面跟哪个,看别人问的是什么。" + } + ] } }, { @@ -190,6 +210,16 @@ "sentence": "What time is it?", "meaning": "现在几点?" } + }, + "usage": { + "when": "想知道现在几点钟。", + "reply": "对方会回 It's three o'clock.", + "confuse": [ + { + "id": "A0-P14", + "note": "What day is it today? 问的是星期几,这句问的是几点钟。" + } + ] } }, { @@ -213,6 +243,15 @@ "sentence": "It’s three o’clock.", "meaning": "现在三点。" } + }, + "usage": { + "when": "别人问几点的时候,报出整点时间。", + "confuse": [ + { + "id": "A0-P15", + "note": "It's Monday. 回答的是星期,It's three o'clock. 回答的是钟点。" + } + ] } } ], diff --git a/kouyu_english/assets/courses/A0/a0-09.json b/kouyu_english/assets/courses/A0/a0-09.json index 5578689..ccf585a 100644 --- a/kouyu_english/assets/courses/A0/a0-09.json +++ b/kouyu_english/assets/courses/A0/a0-09.json @@ -130,6 +130,16 @@ "sentence": "I like music.", "meaning": "我喜欢音乐。" } + }, + "usage": { + "when": "说出你喜欢的一样东西。", + "reply": "对方可能反问一句 Do you like coffee?", + "confuse": [ + { + "id": "A0-P19", + "note": "I like tea. 是在说自己,Do you like tea? 才是问对方;问对方要把 Do you 放在最前面。" + } + ] } }, { @@ -147,6 +157,16 @@ "sentence": "Do you like coffee?", "meaning": "你喜欢咖啡吗?" } + }, + "usage": { + "when": "想知道对方喜不喜欢某样东西。", + "reply": "对方会回 Yes. 或 No.", + "confuse": [ + { + "id": "A0-P18", + "note": "Do you like tea? 是问对方,I like tea. 是说自己喜欢。" + } + ] } } ], diff --git a/kouyu_english/assets/courses/A0/a0-10.json b/kouyu_english/assets/courses/A0/a0-10.json index 8706baf..8f4a2c0 100644 --- a/kouyu_english/assets/courses/A0/a0-10.json +++ b/kouyu_english/assets/courses/A0/a0-10.json @@ -40,6 +40,16 @@ "sentence": "Please say that again.", "meaning": "请再说一遍。" } + }, + "usage": { + "when": "没听清对方说了什么,请他再说一次。", + "reply": "对方会把刚才的话重说一遍,通常会慢一点。", + "confuse": [ + { + "id": "A0-P04", + "note": "How do you spell that? 是听清了但不会写,这句是根本没听清。" + } + ] } } ], diff --git a/kouyu_english/assets/words/wordbank.json b/kouyu_english/assets/words/wordbank.json new file mode 100644 index 0000000..2005f55 --- /dev/null +++ b/kouyu_english/assets/words/wordbank.json @@ -0,0 +1 @@ +{"version":1,"source":"CEFR-J Vocabulary Profile 1.5 (levels) + 公开词书 (音标) + AI 重写 (释义与例句)","words":[{"id":"V-a-m","en":"a.m.","zh":"上午","ipa":"[ˌeɪ ˈem]","level":"A1","ex":"I usually get up at seven a.m. on weekdays.","exZh":"我工作日一般早上七点起床。","rank":3034},{"id":"V-ability","en":"ability","zh":"能力","more":"才能","ipa":"[əˈbɪləti]","level":"A2","ex":"She has the ability to learn new things fast.","exZh":"她学新东西很快。","rank":2691},{"id":"V-able","en":"able","zh":"能够","more":"有能力的","ipa":"[ˈeɪbl]","level":"B1","ex":"I was able to finish the work on time.","exZh":"我按时完成了工作。","rank":477},{"id":"V-about","en":"about","zh":"关于","more":"大约","ipa":"[əˈbaʊt]","level":"A1","ex":"We talked about our weekend plans for an hour.","exZh":"我们聊了一个小时的周末计划。","rank":50},{"id":"V-above","en":"above","zh":"在上方","more":"超过","ipa":"[əˈbʌv]","level":"A1","ex":"The clock is above the door in our kitchen.","exZh":"钟挂在我们厨房门的上方。","rank":1271},{"id":"V-abroad","en":"abroad","zh":"在国外","more":"到海外","ipa":"[əˈbrɔːd]","level":"A2","ex":"My sister is studying abroad in Canada this year.","exZh":"我姐姐今年在加拿大留学。","rank":4193},{"id":"V-absent","en":"absent","zh":"缺席的","more":"心不在焉的","ipa":"[ˈæbsənt]","level":"B1","ex":"Three students were absent from class today.","exZh":"今天有三个学生没来上课。","rank":8553},{"id":"V-absolute","en":"absolute","zh":"绝对的","more":"完全的","ipa":"[ˈæbsəluːt]","level":"B1","ex":"I have absolute trust in my best friend.","exZh":"我对我最好的朋友绝对信任。","rank":3587},{"id":"V-absolutely","en":"absolutely","zh":"绝对地","more":"完全地","ipa":"[ˈæbsəluːtli]","level":"B1","ex":"You are absolutely right about this problem.","exZh":"这个问题你说得完全对。","rank":692},{"id":"V-accent","en":"accent","zh":"口音","more":"重音","ipa":"[ˈæksent]","level":"B1","ex":"He speaks English with a strong French accent.","exZh":"他说英语带着很重的法国口音。","rank":2905},{"id":"V-accept","en":"accept","zh":"接受","more":"同意","ipa":"[əkˈsept]","level":"A2","ex":"She accepted my invitation to the party.","exZh":"她接受了我的派对邀请。","rank":1010},{"id":"V-acceptable","en":"acceptable","zh":"可接受的","more":"令人满意的","ipa":"[əkˈseptəbl]","level":"A2","ex":"Your work is acceptable, but it could be better.","exZh":"你的活儿还说得过去,不过还能更好。","rank":7395},{"id":"V-acceptance","en":"acceptance","zh":"接受","more":"认可","ipa":"[əkˈseptəns]","level":"B1","ex":"Her acceptance of the job surprised everyone.","exZh":"她接受这份工作让所有人都很意外。","rank":11049},{"id":"V-access","en":"access","zh":"使用权","more":"进入;访问","ipa":"[ˈækses]","level":"B1","ex":"Students have free access to the library.","exZh":"学生可以免费使用图书馆。","rank":1763},{"id":"V-accident","en":"accident","zh":"事故","more":"意外","ipa":"[ˈæksɪdənt]","level":"A2","ex":"There was a car accident near my house yesterday.","exZh":"昨天我家附近出了起车祸。","rank":892},{"id":"V-accidental","en":"accidental","zh":"意外的","more":"偶然的","ipa":"[ˌæksɪˈdentl]","level":"B1","ex":"His mistake was accidental, so nobody was angry.","exZh":"他那个错是无意的,所以没人生气。","rank":10113},{"id":"V-accompany","en":"accompany","zh":"陪伴","more":"伴奏","ipa":"[əˈkʌmpəni]","level":"B1","ex":"I will accompany you to the doctor tomorrow.","exZh":"我明天陪你去医院。","rank":5478},{"id":"V-account","en":"account","zh":"账户","more":"解释;账目","ipa":"[əˈkaʊnt]","level":"A2","ex":"I opened a bank account last week.","exZh":"我上周开了个银行账户。","rank":1466},{"id":"V-accurate","en":"accurate","zh":"准确的","more":"精确的","ipa":"[ˈækjərət]","level":"B1","ex":"His answer was accurate and easy to understand.","exZh":"他的回答很准确,也很好懂。","rank":5258},{"id":"V-ache","en":"ache","zh":"疼痛","more":"疼","ipa":"[eɪk]","level":"B1","ex":"I have an ache in my back today.","exZh":"我今天后背疼。","rank":9829},{"id":"V-achieve","en":"achieve","zh":"实现","more":"取得;达到","ipa":"[əˈtʃiːv]","level":"A2","ex":"She worked hard to achieve her dream.","exZh":"她努力奋斗,实现了自己的梦想。","rank":4177},{"id":"V-achievement","en":"achievement","zh":"成就","more":"成绩;完成","ipa":"[əˈtʃiːvmənt]","level":"B1","ex":"Winning the game was a big achievement for him.","exZh":"赢下那场比赛对他来说是个很大的成就。","rank":8377},{"id":"V-across","en":"across","zh":"穿过","more":"在对面;横跨","ipa":"[əˈkrɔːs]","level":"A2","ex":"She ran across the street to catch the bus.","exZh":"她跑过马路去赶公交车。","rank":817},{"id":"V-act","en":"act","zh":"表演","more":"行为;行动","ipa":"[ækt]","level":"A2","ex":"He likes to act in school plays.","exZh":"他喜欢在学校的话剧里表演。","rank":721},{"id":"V-action","en":"action","zh":"行动","more":"行为;作用","ipa":"[ˈækʃ(ə)n]","level":"A1","ex":"We need to take action right now.","exZh":"我们现在就得采取行动。","rank":1174},{"id":"V-active","en":"active","zh":"活跃的","more":"积极的;主动的","ipa":"[ˈæktɪv]","level":"B1","ex":"My grandma is still very active at eighty.","exZh":"我奶奶八十岁了还很活跃。","rank":3751},{"id":"V-activity","en":"activity","zh":"活动","more":"活跃","ipa":"[ækˈtɪvəti]","level":"A1","ex":"What activities do you do after school?","exZh":"你放学后都参加什么活动?","rank":3376},{"id":"V-actor","en":"actor","zh":"男演员","ipa":"[ˈæktər]","level":"A1","ex":"My brother wants to be a famous actor.","exZh":"我哥哥想当一名著名演员。","rank":2498},{"id":"V-actress","en":"actress","zh":"女演员","ipa":"[ˈæktrəs]","level":"B1","ex":"The actress won a big prize for that movie.","exZh":"那位女演员凭那部电影拿了个大奖。","rank":3412},{"id":"V-actually","en":"actually","zh":"实际上","more":"其实","ipa":"[ˈæktʃuəli]","level":"A2","ex":"It looks easy, but actually it's very hard.","exZh":"这看起来容易,实际上很难。","rank":282},{"id":"V-ad","en":"ad","zh":"广告","ipa":"[æd]","level":"B1","ex":"I saw an ad for a new phone today.","exZh":"我今天看到一个新手机的广告。","rank":3473},{"id":"V-add","en":"add","zh":"添加","more":"增加;补充","ipa":"[æd]","level":"A1","ex":"Add some salt to the soup, please.","exZh":"请往汤里加点盐。","rank":1747},{"id":"V-addition","en":"addition","zh":"增加","more":"加法;此外","ipa":"[əˈdɪʃn]","level":"A2","ex":"The addition of a new player made the team stronger.","exZh":"新加了一名球员,球队变得更强了。","rank":4998},{"id":"V-additional","en":"additional","zh":"额外的","more":"附加的;另外的","ipa":"[əˈdɪʃənl]","level":"A2","ex":"We need some additional chairs for the party.","exZh":"派对还需要几把椅子。","rank":6662},{"id":"V-address","en":"address","zh":"地址","more":"演讲;致辞","ipa":"[əˈdres; ˈædres]","level":"A1","ex":"Please write your name and address here.","exZh":"请在这儿写下你的姓名和地址。","rank":1140},{"id":"V-admire","en":"admire","zh":"钦佩","more":"欣赏;赞美","ipa":"[ədˈmaɪər]","level":"A2","ex":"I really admire her for helping so many people.","exZh":"她帮了那么多人,我真的很钦佩她。","rank":4009},{"id":"V-admission","en":"admission","zh":"入场费","more":"承认;进入许可","ipa":"[ədˈmɪʃn]","level":"B1","ex":"The admission to this concert is fifty yuan.","exZh":"这场音乐会的门票是五十元。","rank":8666},{"id":"V-admit","en":"admit","zh":"承认","more":"准许进入","ipa":"[ədˈmɪt]","level":"A2","ex":"I have to admit I was wrong.","exZh":"我得承认是我错了。","rank":1228},{"id":"V-adult","en":"adult","zh":"成年人","more":"成年的","ipa":"[əˈdʌlt; ˈædʌlt]","level":"A2","ex":"Each adult must buy a ticket for the show.","exZh":"每位成人都得买票才能看演出。","rank":2861},{"id":"V-advanced","en":"advanced","zh":"高级的","more":"先进的;晚期的","ipa":"[ədˈvænst]","level":"A2","ex":"She is taking an advanced English class this year.","exZh":"她今年在上高级英语课。","rank":4210},{"id":"V-advantage","en":"advantage","zh":"优势","more":"有利条件;好处","ipa":"[ədˈvæntɪdʒ]","level":"A2","ex":"Speaking English is a big advantage at work.","exZh":"工作中会英语是个很大的优势。","rank":2167},{"id":"V-adventure","en":"adventure","zh":"冒险","more":"冒险经历;奇遇","ipa":"[ədˈventʃər]","level":"A2","ex":"We had a great adventure in the mountains.","exZh":"我们在山里经历了一次很棒的冒险。","rank":3335},{"id":"V-advert","en":"advert","zh":"广告","ipa":"[ˈædvɜːrt]","level":"B1","ex":"I saw an advert for a new phone.","exZh":"我看到一则新手机的广告。","rank":22113},{"id":"V-advertise","en":"advertise","zh":"做广告","more":"宣传;登广告","ipa":"[ˈædvərtaɪz]","level":"B1","ex":"They advertise their new cars on TV.","exZh":"他们在电视上给新车做广告。","rank":14329},{"id":"V-advertisement","en":"advertisement","zh":"广告","ipa":"[ˌædvərˈtaɪzmənt]","level":"A2","ex":"She put an advertisement in the newspaper.","exZh":"她在报纸上登了一则广告。","rank":12788},{"id":"V-advertising","en":"advertising","zh":"广告业","more":"广告;做广告","ipa":"[ˈædvərtaɪzɪŋ]","level":"A2","ex":"She has worked in advertising for ten years.","exZh":"她做广告这行已经十年了。","rank":5958},{"id":"V-advice","en":"advice","zh":"建议","more":"忠告;意见","ipa":"[ədˈvaɪs]","level":"A2","ex":"Let me give you some advice.","exZh":"让我给你点建议吧。","rank":1449},{"id":"V-advise","en":"advise","zh":"建议","more":"劝告;忠告","ipa":"[ədˈvaɪz]","level":"A2","ex":"I advise you to see a doctor.","exZh":"我建议你去看看医生。","rank":4629},{"id":"V-aeroplane","en":"aeroplane","zh":"飞机","ipa":"[ˈerəpleɪn]","level":"A1","ex":"We went to Paris by aeroplane.","exZh":"我们坐飞机去的巴黎。","rank":17178},{"id":"V-affect","en":"affect","zh":"影响","more":"感染;感动","ipa":"[əˈfekt]","level":"B1","ex":"The weather can affect your mood.","exZh":"天气会影响你的心情。","rank":4124},{"id":"V-afford","en":"afford","zh":"买得起","more":"负担得起;承受得起","ipa":"[əˈfɔːrd]","level":"B1","ex":"We can't afford a new car.","exZh":"我们买不起新车。","rank":1655},{"id":"V-afraid","en":"afraid","zh":"害怕的","more":"恐怕;担心的","ipa":"[əˈfreɪd]","level":"A1","ex":"My little sister is afraid of big dogs.","exZh":"我妹妹害怕大狗。","rank":423},{"id":"V-afternoon","en":"afternoon","zh":"下午","ipa":"[ˌæftərˈnuːn]","level":"A1","ex":"Let's meet at the park this afternoon.","exZh":"我们今天下午在公园见面吧。","rank":922},{"id":"V-afterwards","en":"afterwards","zh":"后来","ipa":"[ˈæftərwərdz]","level":"B1","ex":"We had dinner and went for a walk afterwards.","exZh":"我们吃了晚饭,后来去散了步。","rank":2987},{"id":"V-again","en":"again","zh":"再一次","more":"又","ipa":"[əˈɡen; əˈɡeɪn]","level":"A1","ex":"Can you say that again, please?","exZh":"你能再说一遍吗?","rank":153},{"id":"V-age","en":"age","zh":"年龄","more":"时代;变老","ipa":"[eɪdʒ]","level":"A1","ex":"My sister is the same age as me.","exZh":"我妹妹和我同岁。","rank":755},{"id":"V-aged","en":"aged","zh":"年老的","more":"…岁的;陈年的","ipa":"[eɪdʒd; ˈeɪdʒɪd]","level":"A2","ex":"My aged grandmother lives with us now.","exZh":"我年老的奶奶现在和我们一起住。","rank":7588},{"id":"V-agent","en":"agent","zh":"代理人","more":"特工;经纪人","ipa":"[ˈeɪdʒənt]","level":"A2","ex":"Our agent will meet you at the airport.","exZh":"我们的代理人会去机场接你。","rank":937},{"id":"V-ago","en":"ago","zh":"以前","ipa":"[əˈɡoʊ]","level":"A1","ex":"She moved to Beijing two years ago.","exZh":"她两年前搬到了北京。","rank":341},{"id":"V-agree","en":"agree","zh":"同意","more":"赞成;意见一致","ipa":"[əˈɡriː]","level":"A1","ex":"I agree with you about the new plan.","exZh":"这个新计划我同意你的看法。","rank":902},{"id":"V-ahead","en":"ahead","zh":"在前面","more":"向前;提前","ipa":"[əˈhed]","level":"A2","ex":"There is a small hotel just ahead.","exZh":"前面就有一家小旅馆。","rank":555},{"id":"V-aim","en":"aim","zh":"目标","more":"瞄准;旨在","ipa":"[eɪm]","level":"B1","ex":"Our aim is to finish the work today.","exZh":"我们的目标是今天把活干完。","rank":3251},{"id":"V-air","en":"air","zh":"空气","more":"空中;神态","ipa":"[er]","level":"A2","ex":"The air here is fresh in the morning.","exZh":"早上这里的空气很新鲜。","rank":618},{"id":"V-air-conditioning","en":"air conditioning","zh":"空调","ipa":"","level":"B1","ex":"Please turn on the air conditioning; it's hot.","exZh":"请把空调打开,太热了。","rank":11060},{"id":"V-airline","en":"airline","zh":"航空公司","ipa":"[ˈerlaɪn]","level":"B1","ex":"The airline lost my bag on the way home.","exZh":"航空公司在我回家路上把我的行李弄丢了。","rank":9204},{"id":"V-airport","en":"airport","zh":"机场","ipa":"[ˈerpɔːrt]","level":"A1","ex":"We got to the airport two hours early.","exZh":"我们提前两个小时到了机场。","rank":1992},{"id":"V-alarm","en":"alarm","zh":"闹钟","more":"警报;惊慌","ipa":"[əˈlɑːrm]","level":"A2","ex":"I set my alarm for six every morning.","exZh":"我每天早上把闹钟定在六点。","rank":1750},{"id":"V-alarm-clock","en":"alarm clock","zh":"闹钟","ipa":"","level":"A2","ex":"My alarm clock did not go off this morning.","exZh":"我的闹钟今天早上没响。","rank":1940},{"id":"V-album","en":"album","zh":"专辑","more":"相册;集邮册","ipa":"[ˈælbəm]","level":"A1","ex":"Her new album has ten great songs on it.","exZh":"她的新专辑里有十首好听的歌。","rank":3712},{"id":"V-alike","en":"alike","zh":"相似的","more":"同样地","ipa":"[əˈlaɪk]","level":"B1","ex":"The two sisters look very much alike.","exZh":"这两姐妹长得很像。","rank":4527},{"id":"V-alive","en":"alive","zh":"活着的","more":"有活力的","ipa":"[əˈlaɪv]","level":"A2","ex":"My grandfather is still alive and very healthy.","exZh":"我爷爷还活着,身体很好。","rank":550},{"id":"V-allow","en":"allow","zh":"允许","ipa":"[əˈlaʊ]","level":"A2","ex":"My parents do not allow me to stay out late.","exZh":"我父母不允许我在外面待到很晚。","rank":1205},{"id":"V-almost","en":"almost","zh":"几乎","more":"差不多","ipa":"[ˈɔːlmoʊst]","level":"A1","ex":"It is almost time to go home.","exZh":"差不多该回家了。","rank":474},{"id":"V-alone","en":"alone","zh":"独自","more":"仅仅","ipa":"[əˈloʊn]","level":"A1","ex":"She lives alone in a small apartment.","exZh":"她一个人住在一间小公寓里。","rank":325},{"id":"V-along","en":"along","zh":"沿着","more":"一起;向前","ipa":"[əˈlɔːŋ]","level":"A1","ex":"We walked along the river after dinner.","exZh":"晚饭后我们沿着河边散步。","rank":530},{"id":"V-aloud","en":"aloud","zh":"大声地","more":"出声地","ipa":"[əˈlaʊd]","level":"B1","ex":"The teacher asked me to read the story aloud.","exZh":"老师让我把故事朗读出来。","rank":13196},{"id":"V-alphabet","en":"alphabet","zh":"字母表","ipa":"[ˈælfəbet]","level":"B1","ex":"The English alphabet has twenty-six letters.","exZh":"英语字母表有二十六个字母。","rank":12663},{"id":"V-already","en":"already","zh":"已经","ipa":"[ɔːlˈredi]","level":"A1","ex":"I have already finished my homework.","exZh":"我已经做完作业了。","rank":276},{"id":"V-also","en":"also","zh":"也","more":"而且;同样","ipa":"[ˈɔːlsoʊ]","level":"A1","ex":"I like tea and I also like coffee.","exZh":"我喜欢喝茶,也喜欢喝咖啡。","rank":300},{"id":"V-altogether","en":"altogether","zh":"总共","more":"完全地;总而言之","ipa":"[ˌɔːltəˈɡeðər]","level":"B1","ex":"The meal cost fifty dollars altogether.","exZh":"这顿饭总共花了五十美元。","rank":6244},{"id":"V-always","en":"always","zh":"总是","more":"一直;永远","ipa":"[ˈɔːlweɪz]","level":"A1","ex":"He always comes to class on time.","exZh":"他总是按时来上课。","rank":179},{"id":"V-am","en":"am","zh":"是","more":"上午","ipa":"[æm; əm]","level":"A1","ex":"I am a student at this school.","exZh":"我是这所学校的学生。","rank":129},{"id":"V-amazed","en":"amazed","zh":"大为惊讶","ipa":"[əˈmeɪzd]","level":"B1","ex":"I was amazed by how fast he ran.","exZh":"他跑得那么快,让我很惊讶。","rank":6922},{"id":"V-amazing","en":"amazing","zh":"令人惊叹","more":"很棒的","ipa":"[əˈmeɪzɪŋ]","level":"B1","ex":"The view from the mountain was amazing.","exZh":"山上的景色美得让人惊叹。","rank":718},{"id":"V-ambition","en":"ambition","zh":"抱负","more":"野心","ipa":"[æmˈbɪʃ(ə)n]","level":"A2","ex":"His ambition is to run his own company.","exZh":"他的抱负是经营自己的公司。","rank":5794},{"id":"V-ambulance","en":"ambulance","zh":"救护车","ipa":"[ˈæmbjələns]","level":"B1","ex":"Call an ambulance, he is badly hurt!","exZh":"快叫救护车,他伤得很重!","rank":2453},{"id":"V-amount","en":"amount","zh":"数量","more":"总额;金额","ipa":"[əˈmaʊnt]","level":"B1","ex":"We need a large amount of water.","exZh":"我们需要大量的水。","rank":1814},{"id":"V-amusing","en":"amusing","zh":"好笑的","more":"有趣的","ipa":"[əˈmjuːzɪŋ]","level":"B1","ex":"He told us an amusing story.","exZh":"他给我们讲了一个好笑的故事。","rank":6407},{"id":"V-ancient","en":"ancient","zh":"古代的","more":"古老的","ipa":"[ˈeɪnʃənt]","level":"A2","ex":"We visited an ancient city in China last year.","exZh":"我们去年参观了中国的一座古城。","rank":1733},{"id":"V-angle","en":"angle","zh":"角度","more":"观点","ipa":"[ˈæŋɡ(ə)l]","level":"B1","ex":"Try to look at the problem from a different angle.","exZh":"试着从另一个角度看这个问题。","rank":3580},{"id":"V-angry","en":"angry","zh":"生气的","ipa":"[ˈæŋɡri]","level":"A1","ex":"My dad was angry because I came home late.","exZh":"我回家晚了,爸爸很生气。","rank":931},{"id":"V-animal","en":"animal","zh":"动物","ipa":"[ˈænɪm(ə)l]","level":"A1","ex":"The zoo has many animals from different countries.","exZh":"动物园里有很多来自不同国家的动物。","rank":1338},{"id":"V-animation","en":"animation","zh":"动画","more":"动画片","ipa":"[ˌænɪˈmeɪʃ(ə)n]","level":"B1","ex":"The children love watching animation on Saturday mornings.","exZh":"孩子们喜欢在周六早上看动画片。","rank":11779},{"id":"V-ankle","en":"ankle","zh":"脚踝","ipa":"[ˈæŋk(ə)l]","level":"A2","ex":"I hurt my ankle while playing basketball yesterday.","exZh":"我昨天打篮球时伤了脚踝。","rank":5801},{"id":"V-anniversary","en":"anniversary","zh":"周年纪念日","ipa":"[ˌænɪˈvɜːrsəri]","level":"A2","ex":"We had dinner to celebrate our tenth wedding anniversary.","exZh":"我们吃了顿饭,庆祝结婚十周年。","rank":3273},{"id":"V-announce","en":"announce","zh":"宣布","more":"宣告","ipa":"[əˈnaʊns]","level":"B1","ex":"The company will announce the results tomorrow morning.","exZh":"公司明天上午将宣布结果。","rank":4507},{"id":"V-announcement","en":"announcement","zh":"公告","more":"通知;声明","ipa":"[əˈnaʊnsmənt]","level":"B1","ex":"There was an important announcement at the train station.","exZh":"火车站里有一则重要公告。","rank":4620},{"id":"V-annoy","en":"annoy","zh":"惹恼","more":"使烦恼","ipa":"[əˈnɔɪ]","level":"A2","ex":"The loud noise from upstairs really annoys me.","exZh":"楼上很大的噪音真让我心烦。","rank":10176},{"id":"V-annoyed","en":"annoyed","zh":"恼火的","more":"生气的","ipa":"[əˈnɔɪd]","level":"B1","ex":"She was annoyed when her friend arrived an hour late.","exZh":"朋友晚到了一个小时,她很恼火。","rank":7554},{"id":"V-annoying","en":"annoying","zh":"烦人的","more":"讨厌的","ipa":"[əˈnɔɪɪŋ]","level":"A2","ex":"That noise from the street is really annoying.","exZh":"街上那个噪音真烦人。","rank":3398},{"id":"V-annual","en":"annual","zh":"每年的","more":"年度的;一年一度的","ipa":"[ˈænjuəl]","level":"B1","ex":"We have an annual party at work.","exZh":"我们公司每年办一次聚会。","rank":5905},{"id":"V-answer","en":"answer","zh":"回答","more":"答案","ipa":"[ˈænsər]","level":"A1","ex":"She didn't answer my question at all.","exZh":"她根本没有回答我的问题。","rank":516},{"id":"V-ant","en":"ant","zh":"蚂蚁","ipa":"[ænt]","level":"B1","ex":"A small ant is on my table.","exZh":"我桌子上有一只小蚂蚁。","rank":7490},{"id":"V-antique","en":"antique","zh":"古董","more":"古老的","ipa":"[ænˈtiːk]","level":"B1","ex":"This old chair is a real antique.","exZh":"这把旧椅子是真正的古董。","rank":7509},{"id":"V-anxious","en":"anxious","zh":"焦虑的","more":"担心的;渴望的","ipa":"[ˈæŋkʃəs]","level":"A2","ex":"She felt anxious before the big test.","exZh":"大考前她心里很焦虑。","rank":3984},{"id":"V-anymore","en":"anymore","zh":"不再","ipa":"[ˌeniˈmɔːr]","level":"A2","ex":"I don't watch TV anymore, I read books.","exZh":"我不再看电视了,我看书。","rank":479},{"id":"V-anyway","en":"anyway","zh":"无论如何","more":"反正;总之","ipa":"[ˈeniweɪ]","level":"A2","ex":"It's raining, but I'll go anyway.","exZh":"正在下雨,但我还是要去。","rank":429},{"id":"V-anywhere","en":"anywhere","zh":"任何地方","more":"到处","ipa":"[ˈeniwer]","level":"A2","ex":"I can't find my keys anywhere.","exZh":"我到处都找不到钥匙。","rank":832},{"id":"V-apart","en":"apart","zh":"分开","more":"相距;除了","ipa":"[əˈpɑːrt]","level":"A2","ex":"They live apart now, in different cities.","exZh":"他们现在分开了,住在不同的城市。","rank":1210},{"id":"V-apartment","en":"apartment","zh":"公寓","ipa":"[əˈpɑːrtmənt]","level":"A2","ex":"They live in a small apartment near the park.","exZh":"他们住在公园附近的一间小公寓里。","rank":1020},{"id":"V-apologise","en":"apologise","zh":"道歉","ipa":"[əˈpɑːlədʒaɪz]","level":"A2","ex":"You should apologise to her right now.","exZh":"你现在就该向她道歉。","rank":5112},{"id":"V-apology","en":"apology","zh":"道歉","more":"歉意","ipa":"[əˈpɑːlədʒi]","level":"B1","ex":"He gave me a quick apology and left.","exZh":"他匆匆跟我说了声对不起就走了。","rank":3339},{"id":"V-apparent","en":"apparent","zh":"明显的","more":"表面上的","ipa":"[əˈpærənt]","level":"B1","ex":"It was apparent that he did not want to talk.","exZh":"很明显,他不想说话。","rank":8425},{"id":"V-appear","en":"appear","zh":"出现","more":"显得;似乎","ipa":"[əˈpɪr]","level":"A2","ex":"A man appeared at the door and asked for help.","exZh":"一个男人出现在门口,请我们帮忙。","rank":2105},{"id":"V-appearance","en":"appearance","zh":"外貌","more":"出现","ipa":"[əˈpɪrəns]","level":"A2","ex":"She cares a lot about her appearance.","exZh":"她很在意自己的外貌。","rank":3990},{"id":"V-apple","en":"apple","zh":"苹果","ipa":"[ˈæpl]","level":"A1","ex":"I eat an apple every morning.","exZh":"我每天早上吃一个苹果。","rank":2627},{"id":"V-application","en":"application","zh":"申请","more":"应用;应用程序","ipa":"[ˌæplɪˈkeɪʃn]","level":"B1","ex":"I sent my application to the company last week.","exZh":"我上周把申请交给了那家公司。","rank":4759},{"id":"V-apply","en":"apply","zh":"申请","more":"适用;涂抹","ipa":"[əˈplaɪ]","level":"A2","ex":"He applied for a job at the bank.","exZh":"他申请了银行的一份工作。","rank":3519},{"id":"V-appointment","en":"appointment","zh":"预约","more":"约会;任命","ipa":"[əˈpɔɪntmənt]","level":"A2","ex":"I have a doctor's appointment at three.","exZh":"我三点约好了看医生。","rank":2142},{"id":"V-appreciate","en":"appreciate","zh":"感激","more":"欣赏;理解","ipa":"[əˈpriːʃieɪt]","level":"A2","ex":"I really appreciate your help with my homework.","exZh":"非常感谢你帮我做作业。","rank":1039},{"id":"V-approach","en":"approach","zh":"方法","more":"接近;途径","ipa":"[əˈproʊtʃ]","level":"B1","ex":"We need a new approach to this problem.","exZh":"我们需要用新方法解决这个问题。","rank":2600},{"id":"V-approve","en":"approve","zh":"批准","more":"赞成","ipa":"[əˈpruːv]","level":"B1","ex":"The boss approved my plan this morning.","exZh":"老板今天早上批准了我的计划。","rank":4535},{"id":"V-approximately","en":"approximately","zh":"大约","ipa":"[əˈprɑːksɪmətli]","level":"B1","ex":"The trip takes approximately two hours by car.","exZh":"开车去大约要两个小时。","rank":5742},{"id":"V-april","en":"April","zh":"四月","ipa":"[ˈeɪprəl]","level":"A1","ex":"My birthday is in April.","exZh":"我的生日在四月。","rank":2359},{"id":"V-architect","en":"architect","zh":"建筑师","more":"缔造者","ipa":"[ˈɑːrkɪtekt]","level":"B1","ex":"She wants to be an architect when she grows up.","exZh":"她长大后想当建筑师。","rank":6594},{"id":"V-architecture","en":"architecture","zh":"建筑学","more":"建筑风格;建筑结构","ipa":"[ˈɑːrkɪtektʃər]","level":"A2","ex":"I love the old architecture in this city.","exZh":"我很喜欢这座城市的老建筑。","rank":8463},{"id":"V-area","en":"area","zh":"区域","more":"面积;范围","ipa":"[ˈeriə]","level":"A2","ex":"This area is very quiet at night.","exZh":"这一带晚上很安静。","rank":872},{"id":"V-argue","en":"argue","zh":"争论","more":"主张;辩论","ipa":"[ˈɑːrɡjuː]","level":"A2","ex":"My parents often argue about small things.","exZh":"我爸妈经常为小事吵嘴。","rank":2896},{"id":"V-argument","en":"argument","zh":"争吵","more":"论点;论据","ipa":"[ˈɑːrɡjumənt]","level":"A2","ex":"They had a big argument about the money.","exZh":"他们为了钱大吵了一架。","rank":3149},{"id":"V-arm","en":"arm","zh":"手臂","more":"武器","ipa":"[ɑːrm]","level":"A1","ex":"He broke his arm playing football.","exZh":"他踢球时把胳膊摔断了。","rank":1233},{"id":"V-armchair","en":"armchair","zh":"扶手椅","ipa":"[ˈɑːrmtʃer]","level":"A2","ex":"Grandpa is sleeping in his old armchair.","exZh":"爷爷在旧扶手椅上睡着了。","rank":21051},{"id":"V-arrange","en":"arrange","zh":"安排","more":"整理;布置","ipa":"[əˈreɪndʒ]","level":"B1","ex":"Can you arrange a meeting for next week?","exZh":"你能安排下周开个会吗?","rank":3002},{"id":"V-arrangement","en":"arrangement","zh":"安排","more":"布置;协议","ipa":"[əˈreɪndʒmənt]","level":"B1","ex":"We have made all the arrangements for the party.","exZh":"聚会的事我们全安排好了。","rank":5105},{"id":"V-arrest","en":"arrest","zh":"逮捕","ipa":"[əˈrest]","level":"B1","ex":"The police arrested the man this morning.","exZh":"警察今天早上逮捕了那名男子。","rank":1108},{"id":"V-arrival","en":"arrival","zh":"到达","more":"到达者","ipa":"[əˈraɪvl]","level":"B1","ex":"Her arrival surprised everyone at the party.","exZh":"她的到来让聚会上的每个人都很意外。","rank":4550},{"id":"V-arrive","en":"arrive","zh":"到达","ipa":"[əˈraɪv]","level":"A1","ex":"We arrived at the hotel very late.","exZh":"我们很晚才到酒店。","rank":2292},{"id":"V-art","en":"art","zh":"艺术","more":"美术;艺术品","ipa":"[ɑːrt]","level":"A1","ex":"She studies art at school.","exZh":"她在学校学艺术。","rank":998},{"id":"V-artist","en":"artist","zh":"艺术家","more":"画家","ipa":"[ˈɑːrtɪst]","level":"B1","ex":"The artist painted a picture of my dog.","exZh":"那位艺术家画了一幅我狗的画像。","rank":1867},{"id":"V-ashamed","en":"ashamed","zh":"惭愧的","more":"羞耻的","ipa":"[əˈʃeɪmd]","level":"B1","ex":"I feel ashamed of what I said.","exZh":"我为自己说的话感到惭愧。","rank":2036},{"id":"V-ask","en":"ask","zh":"问","more":"要求;请求","ipa":"[æsk]","level":"A1","ex":"Can I ask you a question?","exZh":"我能问你一个问题吗?","rank":237},{"id":"V-asleep","en":"asleep","zh":"睡着的","more":"麻木的","ipa":"[əˈsliːp]","level":"A2","ex":"The baby is asleep in her room.","exZh":"宝宝在她房间里睡着了。","rank":1353},{"id":"V-aspect","en":"aspect","zh":"方面","ipa":"[ˈæspekt]","level":"B1","ex":"One important aspect of the job is teamwork.","exZh":"这份工作的一个重要方面是团队合作。","rank":7860},{"id":"V-aspirin","en":"aspirin","zh":"阿司匹林","ipa":"[ˈæsprɪn]","level":"B1","ex":"He took an aspirin for his headache.","exZh":"他吃了一片阿司匹林治头痛。","rank":7888},{"id":"V-assist","en":"assist","zh":"帮助","ipa":"[əˈsɪst]","level":"B1","ex":"Could you assist me with this heavy box?","exZh":"你能帮我搬一下这个重箱子吗?","rank":5655},{"id":"V-assistant","en":"assistant","zh":"助手","more":"店员","ipa":"[əˈsɪstənt]","level":"A2","ex":"My assistant will send you the file today.","exZh":"我的助手今天会把文件发给你。","rank":1901},{"id":"V-atmosphere","en":"atmosphere","zh":"气氛","more":"大气;空气","ipa":"[ˈætməsfɪr]","level":"B1","ex":"The restaurant has a warm and friendly atmosphere.","exZh":"这家餐厅的气氛温馨友好。","rank":3355},{"id":"V-attach","en":"attach","zh":"附上","ipa":"[əˈtætʃ]","level":"B1","ex":"Please attach the photo to your email.","exZh":"请把照片附在邮件里。","rank":10620},{"id":"V-attack","en":"attack","zh":"攻击","more":"抨击;发作","ipa":"[əˈtæk]","level":"A2","ex":"Don't attack me for saying what I think.","exZh":"别因为我说的心里话就攻击我。","rank":793},{"id":"V-attempt","en":"attempt","zh":"尝试","more":"企图","ipa":"[əˈtempt]","level":"A2","ex":"She made an attempt to fix the bike.","exZh":"她试着修那辆自行车。","rank":2708},{"id":"V-attend","en":"attend","zh":"出席","more":"参加;照料","ipa":"[əˈtend]","level":"B1","ex":"I have to attend a meeting this afternoon.","exZh":"我今天下午得去参加一个会议。","rank":3044},{"id":"V-attention","en":"attention","zh":"注意力","more":"关心","ipa":"[əˈtenʃn]","level":"A2","ex":"Please pay attention to what the teacher says.","exZh":"请注意听老师说的话。","rank":844},{"id":"V-attitude","en":"attitude","zh":"态度","more":"看法","ipa":"[ˈætɪtuːd]","level":"A2","ex":"I don't like his attitude toward his work.","exZh":"我不喜欢他对工作的态度。","rank":2529},{"id":"V-attract","en":"attract","zh":"吸引","more":"引起","ipa":"[əˈtrækt]","level":"B1","ex":"The show attracted a large crowd last night.","exZh":"昨晚的演出吸引了一大群人。","rank":6245},{"id":"V-attraction","en":"attraction","zh":"吸引力","more":"景点","ipa":"[əˈtrækʃn]","level":"B1","ex":"The beach has a special attraction for children.","exZh":"海滩对孩子们有一种特别的吸引力。","rank":7243},{"id":"V-attractive","en":"attractive","zh":"吸引人的","more":"漂亮的","ipa":"[əˈtræktɪv]","level":"A2","ex":"She looks very attractive in that red dress.","exZh":"她穿那条红裙子真好看。","rank":3083},{"id":"V-audience","en":"audience","zh":"观众","more":"听众;读者","ipa":"[ˈɔːdiəns]","level":"A2","ex":"The audience clapped loudly after the show.","exZh":"演出结束后,观众热烈鼓掌。","rank":1604},{"id":"V-august","en":"August","zh":"八月","ipa":"[ˈɔːɡəst]","level":"A1","ex":"We always visit my grandma in August.","exZh":"我们每年八月都去看奶奶。","rank":3573},{"id":"V-aunt","en":"aunt","zh":"阿姨","more":"姑妈;伯母","ipa":"[ænt]","level":"A1","ex":"My aunt gave me a nice gift.","exZh":"我阿姨送了我一件不错的礼物。","rank":1124},{"id":"V-author","en":"author","zh":"作者","more":"作家","ipa":"[ˈɔːθər]","level":"A2","ex":"Who is the author of this book?","exZh":"这本书的作者是谁?","rank":5297},{"id":"V-automatically","en":"automatically","zh":"自动地","more":"无意识地","ipa":"[ˌɔːtəˈmætɪkli]","level":"A2","ex":"The door opens automatically when you walk in.","exZh":"你一走进去,门就会自动打开。","rank":8096},{"id":"V-autumn","en":"autumn","zh":"秋天","ipa":"[ˈɔːtəm; ˈɑːtəm]","level":"A1","ex":"I love walking in the park in autumn.","exZh":"我喜欢在秋天去公园散步。","rank":5712},{"id":"V-available","en":"available","zh":"可获得的","more":"有空的;可用的","ipa":"[əˈveɪləbl]","level":"B1","ex":"Tickets are still available for tonight's show.","exZh":"今晚的演出还有票。","rank":2201},{"id":"V-average","en":"average","zh":"平均的","more":"平均数;普通的","ipa":"[ˈævərɪdʒ]","level":"A2","ex":"The average price of a house here is very high.","exZh":"这里的房子平均价格很高。","rank":3264},{"id":"V-avoid","en":"avoid","zh":"避免","more":"避开;躲避","ipa":"[əˈvɔɪd]","level":"A2","ex":"You should avoid eating too much sugar.","exZh":"你应该避免吃太多糖。","rank":1983},{"id":"V-awake","en":"awake","zh":"醒着的","more":"清醒的","ipa":"[əˈweɪk]","level":"A1","ex":"I was still awake at two in the morning.","exZh":"凌晨两点我还醒着。","rank":2181},{"id":"V-award","en":"award","zh":"奖项","more":"奖品;授予","ipa":"[əˈwɔːrd]","level":"A2","ex":"She won an award for her new film.","exZh":"她因为新电影得了一个奖。","rank":3743},{"id":"V-aware","en":"aware","zh":"意识到的","more":"知道的","ipa":"[əˈwer]","level":"B1","ex":"Are you aware of the new rules?","exZh":"你知道新规定吗?","rank":1641},{"id":"V-away","en":"away","zh":"离开","more":"在远处;不在","ipa":"[əˈweɪ]","level":"A1","ex":"She walked away without saying a word.","exZh":"她一句话没说就走开了。","rank":164},{"id":"V-awesome","en":"awesome","zh":"极好的","more":"了不起的","ipa":"[ˈɔːsəm]","level":"B1","ex":"We had an awesome time at the beach yesterday.","exZh":"我们昨天在海滩玩得特别开心。","rank":1188},{"id":"V-awful","en":"awful","zh":"糟糕的","more":"可怕的;难受的","ipa":"[ˈɔːf(ə)l]","level":"A2","ex":"The weather was awful all weekend.","exZh":"整个周末天气都糟透了。","rank":1358},{"id":"V-baby","en":"baby","zh":"婴儿","more":"宝贝;幼崽","ipa":"[ˈbeɪbi]","level":"A1","ex":"The baby is sleeping in the next room.","exZh":"宝宝在隔壁房间睡觉。","rank":273},{"id":"V-babysit","en":"babysit","zh":"照看孩子","ipa":"[ˈbeɪbisɪt]","level":"B1","ex":"Can you babysit my kids on Friday night?","exZh":"周五晚上你能帮我照看孩子吗?","rank":11753},{"id":"V-babysitter","en":"babysitter","zh":"临时保姆","ipa":"[ˈbeɪbisɪtər]","level":"B1","ex":"We hired a babysitter for tonight.","exZh":"我们今晚请了个保姆看孩子。","rank":8216},{"id":"V-back","en":"back","zh":"后面","more":"背部;返回","ipa":"[bæk]","level":"A1","ex":"Write your name on the back of the paper.","exZh":"把你的名字写在纸的背面。","rank":82},{"id":"V-backache","en":"backache","zh":"背痛","ipa":"[ˈbækeɪk]","level":"B1","ex":"I have a bad backache from sitting too long.","exZh":"我坐得太久,背很痛。","rank":45293},{"id":"V-background","en":"background","zh":"背景","more":"出身;后台","ipa":"[ˈbækɡraʊnd]","level":"A2","ex":"The mountains in the background look beautiful.","exZh":"背景里的山看起来很美。","rank":2681},{"id":"V-backpack","en":"backpack","zh":"双肩包","ipa":"[ˈbækpæk]","level":"B1","ex":"He put his books in his backpack.","exZh":"他把书放进了双肩包里。","rank":7443},{"id":"V-backpacker","en":"backpacker","zh":"背包客","ipa":"[ˈbækpækər]","level":"B1","ex":"The hostel is full of young backpackers.","exZh":"这家旅舍住满了年轻的背包客。","rank":99999},{"id":"V-backpacking","en":"backpacking","zh":"背包旅行","ipa":"[ˈbækˌpækɪŋ]","level":"B1","ex":"They went backpacking in the mountains last summer.","exZh":"去年夏天他们去山里背包旅行了。","rank":37284},{"id":"V-bad","en":"bad","zh":"坏的","more":"糟糕的;严重的","ipa":"[bæd]","level":"A1","ex":"The food at that restaurant was really bad.","exZh":"那家餐厅的饭菜很糟糕。","rank":228},{"id":"V-badly","en":"badly","zh":"严重地","more":"非常;糟糕地","ipa":"[ˈbædli]","level":"A2","ex":"He was badly hurt in the game.","exZh":"他在比赛中受了重伤。","rank":2085},{"id":"V-badminton","en":"badminton","zh":"羽毛球","ipa":"[ˈbædmɪntən]","level":"A2","ex":"We play badminton every Sunday morning.","exZh":"我们每周日早上打羽毛球。","rank":25579},{"id":"V-bag","en":"bag","zh":"袋子","more":"包;手提包","ipa":"[bæɡ]","level":"A1","ex":"Put the apples in this paper bag.","exZh":"把苹果放进这个纸袋里。","rank":800},{"id":"V-baggage","en":"baggage","zh":"行李","ipa":"[ˈbæɡɪdʒ]","level":"B1","ex":"Where can I leave my baggage?","exZh":"我的行李可以放在哪里?","rank":7957},{"id":"V-bake","en":"bake","zh":"烘烤","ipa":"[beɪk]","level":"A2","ex":"I like to bake bread on Sundays.","exZh":"我喜欢在周日烤面包。","rank":6798},{"id":"V-balance","en":"balance","zh":"平衡","more":"余额;结余","ipa":"[ˈbæləns]","level":"B1","ex":"He lost his balance and fell down.","exZh":"他失去平衡摔倒了。","rank":2921},{"id":"V-balcony","en":"balcony","zh":"阳台","ipa":"[ˈbælkəni]","level":"A2","ex":"We had coffee on the balcony.","exZh":"我们在阳台上喝了咖啡。","rank":6015},{"id":"V-bald","en":"bald","zh":"秃顶的","more":"光秃的","ipa":"[bɔːld]","level":"B1","ex":"My uncle is bald and wears a hat.","exZh":"我叔叔秃顶,戴着帽子。","rank":5262},{"id":"V-ball","en":"ball","zh":"皮球","more":"舞会","ipa":"[bɔːl]","level":"A1","ex":"The boy has a red ball.","exZh":"这个男孩有一个红色的皮球。","rank":879},{"id":"V-balloon","en":"balloon","zh":"气球","ipa":"[bəˈluːn]","level":"A2","ex":"The red balloon flew high into the sky.","exZh":"红气球飞上了高高的天空。","rank":5143},{"id":"V-banana","en":"banana","zh":"香蕉","ipa":"[bəˈnænə]","level":"A1","ex":"I eat a banana every morning before work.","exZh":"我每天早上上班前吃一根香蕉。","rank":4731},{"id":"V-band","en":"band","zh":"乐队","more":"带子;波段","ipa":"[bænd]","level":"A1","ex":"The band plays music at my school.","exZh":"这个乐队在我的学校演奏音乐。","rank":1312},{"id":"V-bandage","en":"bandage","zh":"绷带","more":"包扎","ipa":"[ˈbændɪdʒ]","level":"B1","ex":"The nurse put a clean bandage on my arm.","exZh":"护士在我胳膊上缠了干净的绷带。","rank":10337},{"id":"V-bank","en":"bank","zh":"银行","more":"岸;堤岸","ipa":"[bæŋk]","level":"A1","ex":"I need to go to the bank to get some money.","exZh":"我得去银行取点钱。","rank":916},{"id":"V-banking","en":"banking","zh":"银行业务","more":"银行业","ipa":"[ˈbæŋkɪŋ]","level":"A2","ex":"Online banking is easy and safe to use.","exZh":"网上银行业务用起来既方便又安全。","rank":9865},{"id":"V-bar","en":"bar","zh":"酒吧","more":"条;栏杆","ipa":"[bɑːr]","level":"A1","ex":"We go to the bar after work.","exZh":"我们下班后去酒吧。","rank":886},{"id":"V-barbecue","en":"barbecue","zh":"烧烤","more":"烤肉;烧烤聚会","ipa":"[ˈbɑːrbɪkjuː]","level":"A2","ex":"We had a barbecue in the garden yesterday.","exZh":"我们昨天在花园里烧烤了。","rank":6032},{"id":"V-barber","en":"barber","zh":"理发师","ipa":"[ˈbɑːrbər]","level":"A2","ex":"The barber cut my hair very short.","exZh":"理发师把我的头发剪得很短。","rank":7586},{"id":"V-bare","en":"bare","zh":"赤裸的","more":"光秃的;空的","ipa":"[ber]","level":"B1","ex":"He stood in the sun with his bare back.","exZh":"他光着背站在太阳下。","rank":5101},{"id":"V-bargain","en":"bargain","zh":"便宜货","more":"交易;讨价还价","ipa":"[ˈbɑːrɡən]","level":"A2","ex":"This jacket was a real bargain at half price.","exZh":"这件夹克半价买到,真划算。","rank":4795},{"id":"V-bark","en":"bark","zh":"狗叫","more":"树皮","ipa":"[bɑːrk]","level":"B1","ex":"Our dog's loud bark woke up the baby.","exZh":"我们家狗的叫声把宝宝吵醒了。","rank":6684},{"id":"V-base","en":"base","zh":"基础","more":"底部;基地","ipa":"[beɪs]","level":"A2","ex":"This course gives you a strong base in English.","exZh":"这门课能帮你打下扎实的英语基础。","rank":1644},{"id":"V-basement","en":"basement","zh":"地下室","more":"地窖","ipa":"[ˈbeɪsmənt]","level":"B1","ex":"We keep our bikes in the basement.","exZh":"我们把自行车放在地下室。","rank":2806},{"id":"V-basic","en":"basic","zh":"基本的","ipa":"[ˈbeɪsɪk]","level":"A2","ex":"These are the basic rules of the game.","exZh":"这些都是游戏的基本规则。","rank":3256},{"id":"V-basin","en":"basin","zh":"水盆","more":"流域;盆地","ipa":"[ˈbeɪsn]","level":"B1","ex":"She washed her face in a small basin.","exZh":"她在一个小盆里洗了脸。","rank":13353},{"id":"V-basis","en":"basis","zh":"基础","more":"依据;方式","ipa":"[ˈbeɪsɪs]","level":"B1","ex":"Trust is the basis of any good friendship.","exZh":"信任是一切好朋友情的基础。","rank":4111},{"id":"V-basket","en":"basket","zh":"篮子","more":"一篮之量","ipa":"[ˈbæskɪt]","level":"A2","ex":"She put the apples in a small basket.","exZh":"她把苹果放进一个小篮子里。","rank":4552},{"id":"V-basketball","en":"basketball","zh":"篮球","more":"篮球运动","ipa":"[ˈbæskɪtbɔːl]","level":"A1","ex":"My brother plays basketball every Saturday morning.","exZh":"我弟弟每周六早上都打篮球。","rank":3987},{"id":"V-bath","en":"bath","zh":"洗澡","more":"浴缸;浴室","ipa":"[bæθ]","level":"A1","ex":"I take a hot bath before bed.","exZh":"我睡前会洗个热水澡。","rank":2023},{"id":"V-bathroom","en":"bathroom","zh":"浴室","more":"厕所;洗手间","ipa":"[ˈbæθruːm]","level":"A1","ex":"The bathroom is next to my bedroom.","exZh":"浴室在我卧室旁边。","rank":1307},{"id":"V-bay","en":"bay","zh":"海湾","ipa":"[beɪ]","level":"A2","ex":"We watched the boats in the bay.","exZh":"我们看着海湾里的那些船。","rank":2670},{"id":"V-beach","en":"beach","zh":"海滩","more":"沙滩","ipa":"[biːtʃ]","level":"A1","ex":"The kids are playing on the beach.","exZh":"孩子们在海滩上玩。","rank":1377},{"id":"V-bean","en":"bean","zh":"豆子","more":"豆类植物","ipa":"[biːn]","level":"A1","ex":"I like to eat beans with rice.","exZh":"我喜欢用豆子配米饭吃。","rank":5797},{"id":"V-beard","en":"beard","zh":"胡须","ipa":"[bɪrd]","level":"B1","ex":"He grew a long beard over the winter.","exZh":"他过了一个冬天,留起了长胡子。","rank":3848},{"id":"V-beat","en":"beat","zh":"打败","more":"敲打;节拍","ipa":"[biːt]","level":"B1","ex":"Our team beat theirs in the final game.","exZh":"我们队在决赛里打败了他们队。","rank":663},{"id":"V-beautiful","en":"beautiful","zh":"美丽的","ipa":"[ˈbjuːtɪf(ə)l]","level":"A1","ex":"The flowers in the garden are beautiful.","exZh":"花园里的花很漂亮。","rank":369},{"id":"V-beautifully","en":"beautifully","zh":"漂亮地","more":"动听地","ipa":"[ˈbjuːtɪfli]","level":"B1","ex":"She sang beautifully at the school show.","exZh":"她在学校演出上唱得很动听。","rank":6237},{"id":"V-beauty","en":"beauty","zh":"美丽","more":"美人;美景","ipa":"[ˈbjuːti]","level":"A2","ex":"I love the beauty of this small town.","exZh":"我喜欢这个小镇的美丽。","rank":1354},{"id":"V-become","en":"become","zh":"成为","more":"变得","ipa":"[bɪˈkʌm]","level":"A1","ex":"She wants to become a doctor.","exZh":"她想成为一名医生。","rank":529},{"id":"V-bed","en":"bed","zh":"床","more":"河床;花坛","ipa":"[bed]","level":"A1","ex":"I go to bed at ten every night.","exZh":"我每天晚上十点上床睡觉。","rank":523},{"id":"V-bedroom","en":"bedroom","zh":"卧室","ipa":"[ˈbedruːm; ˈbedrʊm]","level":"A1","ex":"My bedroom is small but very clean.","exZh":"我的卧室很小,但非常干净。","rank":1964},{"id":"V-beef","en":"beef","zh":"牛肉","more":"抱怨","ipa":"[biːf]","level":"A1","ex":"We had beef and potatoes for dinner.","exZh":"我们晚饭吃了牛肉和土豆。","rank":3172},{"id":"V-before","en":"before","zh":"之前","more":"以前;在面前","ipa":"[bɪˈfɔːr]","level":"A1","ex":"Wash your hands before you eat dinner.","exZh":"吃晚饭前先洗手。","rank":156},{"id":"V-begin","en":"begin","zh":"开始","ipa":"[bɪˈɡɪn]","level":"A1","ex":"The film will begin at seven o'clock.","exZh":"电影七点开始。","rank":1192},{"id":"V-beginner","en":"beginner","zh":"初学者","more":"新手","ipa":"[bɪˈɡɪnər]","level":"A2","ex":"I'm just a beginner at playing the guitar.","exZh":"我弹吉他只是个初学者。","rank":15437},{"id":"V-beginning","en":"beginning","zh":"开始","more":"起点","ipa":"[bɪˈɡɪnɪŋ]","level":"A2","ex":"This is just the beginning of our story.","exZh":"这只是我们故事的开始。","rank":1057},{"id":"V-behave","en":"behave","zh":"表现","more":"举止;守规矩","ipa":"[bɪˈheɪv]","level":"B1","ex":"He behaved badly at the meeting.","exZh":"他在会上表现得很差。","rank":2786},{"id":"V-behaviour","en":"behaviour","zh":"行为","more":"举止","ipa":"[bɪˈheɪvjər]","level":"A2","ex":"His behaviour at school was very good.","exZh":"他在学校的行为很好。","rank":5154},{"id":"V-behind","en":"behind","zh":"在后面","more":"落后","ipa":"[bɪˈhaɪnd]","level":"A1","ex":"The cat is hiding behind the door.","exZh":"猫躲在门后面。","rank":473},{"id":"V-believe","en":"believe","zh":"相信","more":"认为","ipa":"[bɪˈliːv]","level":"A1","ex":"I believe you can do this job.","exZh":"我相信你能做好这份工作。","rank":204},{"id":"V-belong","en":"belong","zh":"属于","more":"归属","ipa":"[bɪˈlɔːŋ]","level":"A2","ex":"This book belongs to my sister.","exZh":"这本书属于我妹妹。","rank":1572},{"id":"V-below","en":"below","zh":"在下面","more":"低于","ipa":"[bɪˈloʊ]","level":"A1","ex":"Please write your name below the line.","exZh":"请在横线下面写上你的名字。","rank":2160},{"id":"V-belt","en":"belt","zh":"腰带","more":"带子;地带","ipa":"[belt]","level":"A2","ex":"He wore a black belt with his jeans.","exZh":"他穿牛仔裤时系了条黑腰带。","rank":2685},{"id":"V-bend","en":"bend","zh":"弯曲","more":"弯腰","ipa":"[bend]","level":"A2","ex":"You need to bend your knees to jump.","exZh":"你需要弯曲膝盖来跳。","rank":3843},{"id":"V-benefit","en":"benefit","zh":"好处","more":"利益;受益","ipa":"[ˈbenɪfɪt]","level":"B1","ex":"Regular exercise has many health benefits.","exZh":"经常锻炼对健康有很多好处。","rank":3334},{"id":"V-besides","en":"besides","zh":"此外","more":"而且","ipa":"[bɪˈsaɪdz]","level":"A2","ex":"I don't want to go; besides, it's too late.","exZh":"我不想去,再说也太晚了。","rank":1012},{"id":"V-best","en":"best","zh":"最好的","more":"最佳状态;最出色的人","ipa":"[best]","level":"A1","ex":"This is the best cake in town.","exZh":"这是城里最好的蛋糕。","rank":260},{"id":"V-bet","en":"bet","zh":"打赌","more":"赌注;敢断定","ipa":"[bet]","level":"B1","ex":"I bet you ten dollars he will come.","exZh":"我跟你赌十美元,他会来。","rank":653},{"id":"V-better","en":"better","zh":"更好的","more":"更好地;好转","ipa":"[ˈbetər]","level":"A1","ex":"This book is better than that one.","exZh":"这本书比那本好。","rank":173},{"id":"V-bicycle","en":"bicycle","zh":"自行车","ipa":"[ˈbaɪsɪkl]","level":"A1","ex":"I ride my bicycle to school every day.","exZh":"我每天骑自行车上学。","rank":5632},{"id":"V-big","en":"big","zh":"大的","more":"重要的;大量的","ipa":"[bɪɡ]","level":"A1","ex":"This bag is too big for me.","exZh":"这个包对我来说太大了。","rank":199},{"id":"V-bike","en":"bike","zh":"自行车","more":"摩托车","ipa":"[baɪk]","level":"A1","ex":"I ride my bike to school every day.","exZh":"我每天骑自行车上学。","rank":1918},{"id":"V-bill","en":"bill","zh":"账单","more":"钞票;议案","ipa":"[bɪl]","level":"A2","ex":"Can you pay the bill, please?","exZh":"请你把账单付一下好吗?","rank":834},{"id":"V-bin","en":"bin","zh":"垃圾桶","more":"箱子;容器","ipa":"[bɪn]","level":"B1","ex":"Please put your rubbish in the bin.","exZh":"请把垃圾扔进垃圾桶。","rank":4738},{"id":"V-bird","en":"bird","zh":"鸟","ipa":"[bɜːrd]","level":"A1","ex":"A little bird is singing in the tree.","exZh":"一只小鸟在树上唱歌。","rank":1349},{"id":"V-birth","en":"birth","zh":"出生","more":"诞生;血统","ipa":"[bɜːrθ]","level":"A1","ex":"What is your date of birth?","exZh":"你的出生日期是哪天?","rank":1661},{"id":"V-birthday","en":"birthday","zh":"生日","ipa":"[ˈbɜːrθdeɪ]","level":"A1","ex":"Happy birthday to you, my dear friend!","exZh":"生日快乐,我亲爱的朋友!","rank":772},{"id":"V-biscuit","en":"biscuit","zh":"饼干","ipa":"[ˈbɪskɪt]","level":"A1","ex":"Would you like a biscuit with your tea?","exZh":"你喝茶的时候要来块饼干吗?","rank":9248},{"id":"V-bit","en":"bit","zh":"一点儿","more":"小块;比特","ipa":"[bɪt]","level":"A2","ex":"I am a bit tired after work today.","exZh":"我今天下班后有点儿累。","rank":302},{"id":"V-bite","en":"bite","zh":"咬","more":"一口;咬伤","ipa":"[baɪt]","level":"A2","ex":"Don't bite your nails, it's a bad habit.","exZh":"别咬指甲,那是个坏习惯。","rank":1723},{"id":"V-bitter","en":"bitter","zh":"苦的","more":"痛苦的;尖刻的","ipa":"[ˈbɪtər]","level":"B1","ex":"This coffee tastes very bitter without sugar.","exZh":"这咖啡不加糖,喝着很苦。","rank":3820},{"id":"V-black","en":"black","zh":"黑色的","more":"黑暗的","ipa":"[blæk]","level":"A1","ex":"She always wears a black coat in winter.","exZh":"冬天她总穿一件黑色大衣。","rank":548},{"id":"V-blame","en":"blame","zh":"责备","more":"归咎于;责任","ipa":"[bleɪm]","level":"A2","ex":"Don't blame me for your own mistakes.","exZh":"别把你自己的错怪到我头上。","rank":1158},{"id":"V-blanket","en":"blanket","zh":"毯子","more":"覆盖层","ipa":"[ˈblæŋkɪt]","level":"A2","ex":"She put a warm blanket on the bed.","exZh":"她在床上铺了一条暖和的毯子。","rank":4259},{"id":"V-bleed","en":"bleed","zh":"流血","more":"出血;渗出","ipa":"[bliːd]","level":"B1","ex":"My nose started to bleed this morning.","exZh":"今天早上我的鼻子开始流血了。","rank":4952},{"id":"V-blind","en":"blind","zh":"瞎的","more":"盲目的;百叶窗","ipa":"[blaɪnd]","level":"B1","ex":"He has been blind since he was a child.","exZh":"他从小就看不见。","rank":1435},{"id":"V-block","en":"block","zh":"街区","more":"块;阻挡","ipa":"[blɑːk]","level":"A1","ex":"Our office is two blocks away from here.","exZh":"我们办公室离这儿有两个街区。","rank":1822},{"id":"V-blog","en":"blog","zh":"博客","ipa":"[blɑːɡ]","level":"B1","ex":"She writes a blog about food and travel.","exZh":"她写一个关于美食和旅行的博客。","rank":8495},{"id":"V-blogger","en":"blogger","zh":"博主","more":"博客作者","ipa":"[ˈblɑːɡər]","level":"B1","ex":"He is a famous blogger in China.","exZh":"他是中国很有名的博主。","rank":28273},{"id":"V-blonde","en":"blonde","zh":"金发的","more":"金发女郎","ipa":"[blɑːnd]","level":"A2","ex":"She has long blonde hair and blue eyes.","exZh":"她有一头金色长发和蓝色的眼睛。","rank":3917},{"id":"V-blood","en":"blood","zh":"血液","more":"血统;血气","ipa":"[blʌd]","level":"A2","ex":"He lost a lot of blood in the accident.","exZh":"他在事故中流了很多血。","rank":476},{"id":"V-blow","en":"blow","zh":"吹动","more":"吹奏;打击","ipa":"[bloʊ]","level":"A1","ex":"The wind blew my hat off the table.","exZh":"风把我的帽子从桌上吹掉了。","rank":938},{"id":"V-blue","en":"blue","zh":"蓝色的","more":"沮丧的;忧郁的","ipa":"[bluː]","level":"A1","ex":"She wore a blue dress to the party.","exZh":"她穿了一条蓝色连衣裙去参加派对。","rank":802},{"id":"V-blush","en":"blush","zh":"脸红","more":"羞愧","ipa":"[blʌʃ]","level":"B1","ex":"She blushed when he said she looked nice.","exZh":"他说她好看时,她脸红了。","rank":11844},{"id":"V-board","en":"board","zh":"木板","more":"董事会","ipa":"[bɔːrd]","level":"A1","ex":"Please write your name on the board.","exZh":"请把你的名字写在板上。","rank":1077},{"id":"V-boast","en":"boast","zh":"吹嘘","more":"自夸","ipa":"[boʊst]","level":"B1","ex":"He likes to boast about his new car.","exZh":"他喜欢炫耀他那辆新车。","rank":15064},{"id":"V-boat","en":"boat","zh":"小船","more":"船","ipa":"[boʊt]","level":"A1","ex":"We went across the lake in a small boat.","exZh":"我们坐一条小船过了湖。","rank":883},{"id":"V-body","en":"body","zh":"身体","more":"尸体;主体","ipa":"[ˈbɑːdi]","level":"A1","ex":"My whole body hurts after the long walk.","exZh":"走了那么久,我全身都疼。","rank":422},{"id":"V-boil","en":"boil","zh":"煮沸","more":"沸腾","ipa":"[bɔɪl]","level":"A2","ex":"Boil some water for the tea, please.","exZh":"请烧点水泡茶。","rank":7193},{"id":"V-boiled","en":"boiled","zh":"煮熟的","ipa":"[bɔɪld]","level":"A2","ex":"We had boiled eggs and bread for breakfast.","exZh":"我们早餐吃了煮鸡蛋和面包。","rank":9031},{"id":"V-bold","en":"bold","zh":"大胆的","more":"粗体的;鲜明的","ipa":"[boʊld]","level":"B1","ex":"She made a bold decision to start her own shop.","exZh":"她大胆决定自己开店。","rank":4921},{"id":"V-book","en":"book","zh":"书本","more":"预订","ipa":"[bʊk]","level":"A1","ex":"I read a book before I go to sleep.","exZh":"我睡觉前会看会儿书。","rank":571},{"id":"V-booking","en":"booking","zh":"预订","more":"预约","ipa":"[ˈbʊkɪŋ]","level":"B1","ex":"I made a booking for two nights at the hotel.","exZh":"我在那家酒店订了两晚。","rank":10446},{"id":"V-bookshelf","en":"bookshelf","zh":"书架","ipa":"[ˈbʊkʃelf]","level":"A2","ex":"There are many books on the bookshelf.","exZh":"书架上有很多书。","rank":31006},{"id":"V-bookshop","en":"bookshop","zh":"书店","ipa":"[ˈbʊkʃɑːp]","level":"A2","ex":"I bought this dictionary at a small bookshop.","exZh":"我在一家小书店买了这本词典。","rank":24653},{"id":"V-bookstore","en":"bookstore","zh":"书店","ipa":"[ˈbʊkstɔːr]","level":"A1","ex":"The bookstore closes at nine every evening.","exZh":"这家书店每天晚上九点关门。","rank":11981},{"id":"V-boot","en":"boot","zh":"靴子","more":"汽车行李箱;踢","ipa":"[buːt]","level":"B1","ex":"These boots are too small for my feet.","exZh":"这双靴子我穿太小了。","rank":4431},{"id":"V-border","en":"border","zh":"边界","more":"边境;镶边","ipa":"[ˈbɔːrdər]","level":"B1","ex":"The river forms the border between the two countries.","exZh":"这条河是两个国家之间的边界。","rank":2628},{"id":"V-bore","en":"bore","zh":"使厌烦","more":"钻孔;令人厌烦的人","ipa":"[bɔːr]","level":"B1","ex":"Long meetings like this really bore me.","exZh":"像这样的长会真让我觉得无聊。","rank":5449},{"id":"V-bored","en":"bored","zh":"无聊的","more":"厌烦的","ipa":"[bɔːrd]","level":"A2","ex":"I was bored during the long film.","exZh":"那部电影太长,我看得很无聊。","rank":2534},{"id":"V-boring","en":"boring","zh":"无聊的","more":"令人厌烦的","ipa":"[ˈbɔːrɪŋ]","level":"A1","ex":"This game is very boring for me.","exZh":"这个游戏对我来说太无聊了。","rank":1954},{"id":"V-borrow","en":"borrow","zh":"借来","more":"借用;借入","ipa":"[ˈbɔːroʊ]","level":"A1","ex":"Can I borrow your pen for a minute?","exZh":"我能借你的笔用一下吗?","rank":2328},{"id":"V-both","en":"both","zh":"两者都","more":"双方都","ipa":"[boʊθ]","level":"A1","ex":"Both of my sisters are teachers.","exZh":"我的两个姐姐都是老师。","rank":285},{"id":"V-bother","en":"bother","zh":"打扰","more":"使烦恼;费心","ipa":"[ˈbɑːðər]","level":"A2","ex":"Don't bother me while I am working.","exZh":"我工作的时候别来打扰我。","rank":1155},{"id":"V-bottle","en":"bottle","zh":"瓶子","more":"一瓶","ipa":"[ˈbɑːtl]","level":"A1","ex":"Please give me a bottle of water.","exZh":"请给我一瓶水。","rank":1329},{"id":"V-bottom","en":"bottom","zh":"底部","more":"末端;臀部","ipa":"[ˈbɑːtəm]","level":"A1","ex":"My keys are at the bottom of my bag.","exZh":"我的钥匙在包的最下面。","rank":1387},{"id":"V-bounce","en":"bounce","zh":"弹跳","more":"使弹起","ipa":"[baʊns]","level":"B1","ex":"The kids like to bounce on the bed.","exZh":"孩子们喜欢在床上蹦来蹦去。","rank":5746},{"id":"V-bowl","en":"bowl","zh":"碗","more":"一碗","ipa":"[boʊl]","level":"A1","ex":"I eat a bowl of rice every day.","exZh":"我每天吃一碗米饭。","rank":2842},{"id":"V-box","en":"box","zh":"盒子","more":"箱子;包厢","ipa":"[bɑːks]","level":"A1","ex":"There are some old books in this box.","exZh":"这个盒子里有一些旧书。","rank":850},{"id":"V-boy","en":"boy","zh":"男孩","more":"儿子","ipa":"[bɔɪ]","level":"A1","ex":"The little boy is playing with his dog.","exZh":"那个小男孩在跟他的狗玩。","rank":265},{"id":"V-boyfriend","en":"boyfriend","zh":"男朋友","ipa":"[ˈbɔɪfrend]","level":"A1","ex":"She came to the party with her boyfriend.","exZh":"她带着男朋友来参加聚会。","rank":1011},{"id":"V-bracelet","en":"bracelet","zh":"手镯","more":"手链","ipa":"[ˈbreɪslət]","level":"B1","ex":"She wears a silver bracelet on her arm.","exZh":"她手臂上戴着一个银手镯。","rank":5713},{"id":"V-brake","en":"brake","zh":"刹车","more":"制动器","ipa":"[breɪk]","level":"A2","ex":"He hit the brake to stop the car.","exZh":"他踩下刹车把车停住。","rank":6346},{"id":"V-branch","en":"branch","zh":"树枝","more":"分部;分店","ipa":"[bræntʃ]","level":"A2","ex":"A bird is sitting on that tree branch.","exZh":"一只鸟停在那根树枝上。","rank":3904},{"id":"V-brand-new","en":"brand-new","zh":"崭新的","more":"全新的","ipa":"[ˌbrænd ˈnuː]","level":"B1","ex":"He is wearing a brand-new pair of shoes.","exZh":"他穿着一双崭新的鞋。","rank":6184},{"id":"V-brave","en":"brave","zh":"勇敢的","ipa":"[breɪv]","level":"A2","ex":"The brave girl saved the little cat.","exZh":"那个勇敢的女孩救了小猫。","rank":1758},{"id":"V-bread","en":"bread","zh":"面包","more":"生计","ipa":"[bred]","level":"A1","ex":"I eat bread and eggs for breakfast.","exZh":"我早饭吃面包和鸡蛋。","rank":1881},{"id":"V-break","en":"break","zh":"打破","more":"弄坏;折断","ipa":"[breɪk]","level":"A1","ex":"Be careful not to break the glass.","exZh":"小心别把杯子打破了。","rank":485},{"id":"V-breakfast","en":"breakfast","zh":"早餐","ipa":"[ˈbrekfəst]","level":"A1","ex":"I have breakfast at seven every morning.","exZh":"我每天早上七点吃早饭。","rank":1275},{"id":"V-breath","en":"breath","zh":"呼吸","more":"一口气","ipa":"[breθ]","level":"B1","ex":"Take a deep breath and relax.","exZh":"深呼吸,放松一下。","rank":1496},{"id":"V-breathe","en":"breathe","zh":"呼吸","more":"松口气","ipa":"[briːð]","level":"A1","ex":"I can't breathe when I run very fast.","exZh":"我跑太快的时候就喘不上气。","rank":1510},{"id":"V-breeze","en":"breeze","zh":"微风","more":"轻而易举的事","ipa":"[briːz]","level":"A2","ex":"A cool breeze came through the open window.","exZh":"一阵凉风从开着的窗户吹进来。","rank":5229},{"id":"V-bride","en":"bride","zh":"新娘","ipa":"[braɪd]","level":"A2","ex":"The bride looked beautiful in her white dress.","exZh":"新娘穿着白裙子,看起来很漂亮。","rank":2298},{"id":"V-bridge","en":"bridge","zh":"桥","more":"桥牌;桥接","ipa":"[brɪdʒ]","level":"A1","ex":"We walked across the bridge to the other side.","exZh":"我们走过桥,到了河对面。","rank":1520},{"id":"V-brief","en":"brief","zh":"简短的","more":"短暂的","ipa":"[briːf]","level":"B1","ex":"He gave a brief talk before the meeting.","exZh":"开会前他做了个简短的发言。","rank":3793},{"id":"V-briefly","en":"briefly","zh":"简短地","more":"短暂地;略微","ipa":"[ˈbriːfli]","level":"B1","ex":"She told us briefly what happened.","exZh":"她简短地跟我们说了发生的事。","rank":8913},{"id":"V-bright","en":"bright","zh":"明亮的","more":"聪明的;鲜艳的","ipa":"[braɪt]","level":"A1","ex":"The sun is very bright today.","exZh":"今天太阳很亮。","rank":1794},{"id":"V-brilliant","en":"brilliant","zh":"杰出的","more":"明亮的;极好的","ipa":"[ˈbrɪliənt]","level":"A2","ex":"She is a brilliant student in our class.","exZh":"她是我们班上很出色的学生。","rank":1670},{"id":"V-bring","en":"bring","zh":"带来","more":"引起","ipa":"[brɪŋ]","level":"A1","ex":"Please bring me a glass of water.","exZh":"请给我拿杯水来。","rank":318},{"id":"V-broad","en":"broad","zh":"宽阔的","more":"广泛的;大概的","ipa":"[brɔːd]","level":"B1","ex":"The river is very broad here.","exZh":"这条河在这里很宽。","rank":4599},{"id":"V-broadcast","en":"broadcast","zh":"广播","more":"播送;广播节目","ipa":"[ˈbrɔːdkæst]","level":"B1","ex":"The match will be broadcast live tonight.","exZh":"这场比赛今晚会现场直播。","rank":5145},{"id":"V-broccoli","en":"broccoli","zh":"西兰花","ipa":"[ˈbrɑːkəli]","level":"B1","ex":"I like broccoli with my chicken.","exZh":"我喜欢吃鸡肉配西兰花。","rank":13849},{"id":"V-broken","en":"broken","zh":"坏掉的","more":"破碎的","ipa":"[ˈbroʊkən]","level":"A1","ex":"My watch is broken, so I need a new one.","exZh":"我的表坏了,得买块新的。","rank":968},{"id":"V-brother","en":"brother","zh":"兄弟","more":"哥哥;弟弟","ipa":"[ˈbrʌðər]","level":"A1","ex":"I have one brother and two sisters.","exZh":"我有一个兄弟和两个姐妹。","rank":299},{"id":"V-brown","en":"brown","zh":"棕色的","more":"褐色;晒黑的","ipa":"[braʊn]","level":"A1","ex":"She has long brown hair and blue eyes.","exZh":"她有一头棕色长发和一双蓝眼睛。","rank":1601},{"id":"V-brush","en":"brush","zh":"刷子","more":"画笔","ipa":"[brʌʃ]","level":"A1","ex":"I use a brush to clean my shoes.","exZh":"我用刷子刷鞋。","rank":4040},{"id":"V-bubble","en":"bubble","zh":"气泡","more":"泡沫","ipa":"[ˈbʌb(ə)l]","level":"B1","ex":"The soap made big bubbles in the water.","exZh":"肥皂在水里弄出了很多大泡泡。","rank":5288},{"id":"V-bug","en":"bug","zh":"虫子","more":"故障;窃听器","ipa":"[bʌɡ]","level":"A2","ex":"There is a bug on the wall.","exZh":"墙上有一只小虫。","rank":3205},{"id":"V-build","en":"build","zh":"建造","more":"建立;培养","ipa":"[bɪld]","level":"A1","ex":"They plan to build a new school here.","exZh":"他们打算在这里建一所新学校。","rank":1263},{"id":"V-builder","en":"builder","zh":"建筑工人","more":"建造者","ipa":"[ˈbɪldər]","level":"B1","ex":"The builder is working on a new house.","exZh":"那个建筑工人正在盖一栋新房子。","rank":12005},{"id":"V-building","en":"building","zh":"建筑物","more":"大楼","ipa":"[ˈbɪldɪŋ]","level":"A1","ex":"That tall building is our new school.","exZh":"那座高楼是我们的新学校。","rank":752},{"id":"V-bulb","en":"bulb","zh":"灯泡","more":"球茎;球状物","ipa":"[bʌlb]","level":"A2","ex":"The light bulb in my room is broken.","exZh":"我房间的灯泡坏了。","rank":9611},{"id":"V-bunch","en":"bunch","zh":"一束","more":"一群;一串","ipa":"[bʌntʃ]","level":"B1","ex":"He gave me a bunch of flowers this morning.","exZh":"今天早上他送给我一束花。","rank":1221},{"id":"V-burden","en":"burden","zh":"负担","more":"重担;责任","ipa":"[ˈbɜːrdn]","level":"B1","ex":"The heavy bag was a burden for the old man.","exZh":"那个沉甸甸的包对老人来说是个负担。","rank":4014},{"id":"V-burger","en":"burger","zh":"汉堡包","ipa":"[ˈbɜːrɡər]","level":"A1","ex":"I want a burger and some fries.","exZh":"我想要一个汉堡和一份薯条。","rank":4531},{"id":"V-burglar","en":"burglar","zh":"窃贼","more":"入室盗贼","ipa":"[ˈbɜːrɡlər]","level":"B1","ex":"The police caught the burglar last night.","exZh":"警察昨晚抓住了那个窃贼。","rank":9005},{"id":"V-burn","en":"burn","zh":"燃烧","more":"烧伤;烧毁","ipa":"[bɜːrn]","level":"A2","ex":"The fire was burning all night long.","exZh":"火整晚都在烧。","rank":1289},{"id":"V-burning","en":"burning","zh":"燃烧的","more":"强烈的;灼热的","ipa":"[ˈbɜːrnɪŋ]","level":"B1","ex":"The building was burning for three hours.","exZh":"那栋楼烧了三个小时。","rank":1988},{"id":"V-bus","en":"bus","zh":"公共汽车","ipa":"[bʌs]","level":"A1","ex":"I take the bus to school every day.","exZh":"我每天坐公共汽车上学。","rank":1102},{"id":"V-bus-station","en":"bus station","zh":"公交车总站","more":"客运站","ipa":"[bʌs ˈsteɪʃn]","level":"A2","ex":"The bus station is next to the train station.","exZh":"公交车总站就在火车站旁边。","rank":1102},{"id":"V-bus-stop","en":"bus stop","zh":"公交车站","ipa":"","level":"A2","ex":"Wait for me at the bus stop.","exZh":"在公交车站等我。","rank":1102},{"id":"V-bush","en":"bush","zh":"灌木丛","more":"灌木","ipa":"[bʊʃ]","level":"A2","ex":"The cat is hiding under the bush.","exZh":"猫躲在灌木丛下面。","rank":3597},{"id":"V-busy","en":"busy","zh":"忙碌的","more":"热闹的;占线的","ipa":"[ˈbɪzi]","level":"A1","ex":"I'm too busy to go out tonight.","exZh":"我今晚太忙了,出不去。","rank":747},{"id":"V-butcher","en":"butcher","zh":"屠夫","more":"肉铺","ipa":"[ˈbʊtʃər]","level":"B1","ex":"The butcher cut the meat for me.","exZh":"屠夫帮我切了肉。","rank":5104},{"id":"V-butter","en":"butter","zh":"黄油","ipa":"[ˈbʌtər]","level":"A1","ex":"Put some butter on your bread.","exZh":"往你的面包上抹点黄油。","rank":3014},{"id":"V-button","en":"button","zh":"按钮","more":"纽扣","ipa":"[ˈbʌt(ə)n]","level":"A1","ex":"Press this button to start the machine.","exZh":"按这个按钮就能启动机器。","rank":2441},{"id":"V-buy","en":"buy","zh":"购买","more":"买","ipa":"[baɪ]","level":"A1","ex":"I want to buy a new phone.","exZh":"我想买一部新手机。","rank":510},{"id":"V-buyer","en":"buyer","zh":"买家","more":"采购员","ipa":"[ˈbaɪər]","level":"B1","ex":"The buyer paid for the house in cash.","exZh":"买家付现金买下了这栋房子。","rank":6859},{"id":"V-bye","en":"bye","zh":"再见","ipa":"[baɪ]","level":"A1","ex":"Bye, I have to go home now.","exZh":"再见,我现在得回家了。","rank":509},{"id":"V-cab","en":"cab","zh":"出租车","more":"驾驶室","ipa":"[kæb]","level":"A2","ex":"Let's take a cab to the airport.","exZh":"我们打车去机场吧。","rank":2380},{"id":"V-cabbage","en":"cabbage","zh":"卷心菜","more":"甘蓝;脑袋","ipa":"[ˈkæbɪdʒ]","level":"B1","ex":"I bought a cabbage to make soup for dinner.","exZh":"我买了个卷心菜,晚上做汤喝。","rank":8741},{"id":"V-cabin","en":"cabin","zh":"小屋","more":"客舱;船舱","ipa":"[ˈkæbɪn]","level":"B1","ex":"We stayed in a small cabin in the woods.","exZh":"我们住在树林里的一间小木屋里。","rank":3059},{"id":"V-cafe","en":"cafe","zh":"咖啡馆","more":"小餐馆","ipa":"[kæˈfeɪ]","level":"A1","ex":"Let's meet at the cafe near my office.","exZh":"我们在办公室附近那家咖啡馆见吧。","rank":5095},{"id":"V-cafeteria","en":"cafeteria","zh":"自助餐厅","more":"食堂","ipa":"[ˌkæfəˈtɪriə]","level":"A2","ex":"We eat lunch in the school cafeteria every day.","exZh":"我们每天在学校食堂吃午饭。","rank":8340},{"id":"V-caf","en":"café","zh":"咖啡馆","more":"小餐馆","ipa":"","level":"A1","ex":"She works at a café on the corner.","exZh":"她在街角的咖啡馆上班。","rank":7247},{"id":"V-cage","en":"cage","zh":"笼子","more":"牢房","ipa":"[keɪdʒ]","level":"B1","ex":"The bird is singing inside its cage.","exZh":"小鸟在笼子里唱歌。","rank":3237},{"id":"V-cake","en":"cake","zh":"蛋糕","more":"块状物","ipa":"[keɪk]","level":"A1","ex":"She made a big chocolate cake for my birthday.","exZh":"她为我的生日做了一个大巧克力蛋糕。","rank":1493},{"id":"V-calculator","en":"calculator","zh":"计算器","ipa":"[ˈkælkjuleɪtər]","level":"B1","ex":"I used a calculator to do my math homework.","exZh":"我用计算器做的数学作业。","rank":19257},{"id":"V-calendar","en":"calendar","zh":"日历","more":"日程表;历法","ipa":"[ˈkælɪndər]","level":"A2","ex":"I wrote the meeting on my calendar.","exZh":"我把会议记在日历上了。","rank":6012},{"id":"V-call","en":"call","zh":"打电话","more":"电话;称呼","ipa":"[kɔːl]","level":"A1","ex":"I will call you when I get home.","exZh":"我到家就给你打电话。","rank":160},{"id":"V-calm","en":"calm","zh":"平静的","more":"冷静的;使镇静","ipa":"[kɑːm]","level":"B1","ex":"The sea is calm this morning.","exZh":"今天早上大海很平静。","rank":684},{"id":"V-camel","en":"camel","zh":"骆驼","ipa":"[ˈkæm(ə)l]","level":"B1","ex":"We rode a camel in the desert last year.","exZh":"去年我们在沙漠里骑了骆驼。","rank":7565},{"id":"V-camera","en":"camera","zh":"照相机","more":"摄像机;镜头","ipa":"[ˈkæm(ə)rə]","level":"A1","ex":"He took photos with his new camera.","exZh":"他用新相机拍了些照片。","rank":959},{"id":"V-camp","en":"camp","zh":"露营","more":"营地;帐篷","ipa":"[kæmp]","level":"A1","ex":"We will camp by the lake this weekend.","exZh":"这个周末我们要在湖边露营。","rank":1343},{"id":"V-camping","en":"camping","zh":"露营","ipa":"[ˈkæmpɪŋ]","level":"A2","ex":"We went camping in the mountains last summer.","exZh":"去年夏天我们去山里露营了。","rank":5898},{"id":"V-campsite","en":"campsite","zh":"营地","more":"露营地","ipa":"[ˈkæmpsaɪt]","level":"B1","ex":"We found a nice campsite near the river.","exZh":"我们在河边找到了一处不错的营地。","rank":19143},{"id":"V-canal","en":"canal","zh":"运河","more":"水渠;管道","ipa":"[kəˈnæl]","level":"B1","ex":"Boats can travel along this old canal.","exZh":"船可以沿着这条古老的运河行驶。","rank":6493},{"id":"V-cancel","en":"cancel","zh":"取消","more":"撤销;废除","ipa":"[ˈkænsl]","level":"B1","ex":"I have to cancel my trip to Beijing.","exZh":"我不得不取消去北京的行程。","rank":3148},{"id":"V-candle","en":"candle","zh":"蜡烛","more":"烛光","ipa":"[ˈkændl]","level":"B1","ex":"She lit a candle in the dark room.","exZh":"她在黑屋子里点了一支蜡烛。","rank":5117},{"id":"V-candy","en":"candy","zh":"糖果","ipa":"[ˈkændi]","level":"A1","ex":"The kids ate too much candy at the party.","exZh":"孩子们在派对上吃了太多糖。","rank":2273},{"id":"V-canteen","en":"canteen","zh":"食堂","more":"水壶","ipa":"[kænˈtiːn]","level":"B1","ex":"We usually eat lunch in the school canteen.","exZh":"我们通常在学校食堂吃午饭。","rank":10746},{"id":"V-cap","en":"cap","zh":"帽子","more":"盖子;上限","ipa":"[kæp]","level":"A1","ex":"He has a red cap on his head.","exZh":"他头上戴着一顶红帽子。","rank":3049},{"id":"V-capable","en":"capable","zh":"有能力的","more":"能干的;能够","ipa":"[ˈkeɪpəbl]","level":"B1","ex":"She is capable of doing this job well.","exZh":"她有能力做好这份工作。","rank":2242},{"id":"V-capital","en":"capital","zh":"首都","more":"资本;大写字母","ipa":"[ˈkæpɪt(ə)l]","level":"A2","ex":"Beijing is the capital of China.","exZh":"北京是中国的首都。","rank":2755},{"id":"V-captain","en":"captain","zh":"队长","more":"船长;上尉","ipa":"[ˈkæptɪn]","level":"A2","ex":"He is the captain of our football team.","exZh":"他是我们足球队的队长。","rank":544},{"id":"V-car","en":"car","zh":"汽车","more":"车厢","ipa":"[kɑːr]","level":"A1","ex":"My father has a new car.","exZh":"我爸爸有一辆新车。","rank":248},{"id":"V-car-park","en":"car park","zh":"停车场","ipa":"","level":"A2","ex":"We left the car in the car park.","exZh":"我们把车停在停车场了。","rank":932},{"id":"V-card","en":"card","zh":"卡片","more":"纸牌;信用卡","ipa":"[kɑːrd]","level":"A1","ex":"I make a card for my friend.","exZh":"我给朋友做了一张卡片。","rank":962},{"id":"V-care","en":"care","zh":"关心","more":"照料;在乎","ipa":"[ker]","level":"A1","ex":"She cares about her friends and family.","exZh":"她很关心自己的朋友和家人。","rank":247},{"id":"V-career","en":"career","zh":"职业","more":"事业;生涯","ipa":"[kəˈrɪr]","level":"B1","ex":"She is starting a new career in teaching.","exZh":"她刚开始从事教学这一新职业。","rank":1481},{"id":"V-careful","en":"careful","zh":"小心的","more":"仔细的;谨慎的","ipa":"[ˈkerfl]","level":"A1","ex":"Be careful with the hot water.","exZh":"小心热水。","rank":664},{"id":"V-carefully","en":"carefully","zh":"小心地","more":"仔细地","ipa":"[ˈkerfəli]","level":"A1","ex":"She drives carefully on the wet road.","exZh":"她在湿滑的路上小心地开车。","rank":2045},{"id":"V-careless","en":"careless","zh":"粗心的","more":"不小心的;漫不经心的","ipa":"[ˈkerləs]","level":"B1","ex":"He made a careless mistake in the test.","exZh":"他在考试中犯了一个粗心的错误。","rank":7705},{"id":"V-carpet","en":"carpet","zh":"地毯","ipa":"[ˈkɑːrpɪt]","level":"B1","ex":"We bought a soft carpet for the living room.","exZh":"我们给客厅买了一块柔软的地毯。","rank":4659},{"id":"V-carrot","en":"carrot","zh":"胡萝卜","ipa":"[ˈkærət]","level":"A2","ex":"My mother put some carrots in the soup.","exZh":"我妈妈在汤里放了一些胡萝卜。","rank":8556},{"id":"V-carry","en":"carry","zh":"携带","more":"搬运;拿","ipa":"[ˈkæri]","level":"A1","ex":"She always carries an umbrella in her bag.","exZh":"她包里总是带着一把伞。","rank":1018},{"id":"V-case","en":"case","zh":"情况","more":"箱子;案例","ipa":"[keɪs]","level":"A1","ex":"In this case, you should call a doctor.","exZh":"在这种情况下,你应该叫医生。","rank":353},{"id":"V-cash","en":"cash","zh":"现金","ipa":"[kæʃ]","level":"A2","ex":"I don't have any cash with me.","exZh":"我身上没带现金。","rank":1058},{"id":"V-cashpoint","en":"cashpoint","zh":"自动取款机","ipa":"[ˈkæʃpɔɪnt]","level":"B1","ex":"I need to find a cashpoint to get money.","exZh":"我需要找个自动取款机取钱。","rank":99999},{"id":"V-castle","en":"castle","zh":"城堡","ipa":"[ˈkæsl]","level":"A2","ex":"The old castle stands on a hill.","exZh":"那座古老的城堡坐落在山丘上。","rank":1862},{"id":"V-casual","en":"casual","zh":"随意的","more":"非正式的;临时的","ipa":"[ˈkæʒuəl]","level":"B1","ex":"We had a casual talk before the meeting started.","exZh":"开会前我们随便聊了几句。","rank":6688},{"id":"V-cat","en":"cat","zh":"猫","ipa":"[kæt]","level":"A1","ex":"My cat likes to sleep on my bed.","exZh":"我的猫喜欢睡在我的床上。","rank":1040},{"id":"V-catch","en":"catch","zh":"抓住","more":"接住;赶上","ipa":"[kætʃ]","level":"A1","ex":"I can catch the cat in the garden.","exZh":"我能在花园里抓住那只猫。","rank":635},{"id":"V-cause","en":"cause","zh":"原因","more":"引起;导致","ipa":"[kɔːz]","level":"A2","ex":"What is the cause of this problem?","exZh":"这个问题的原因是什么?","rank":554},{"id":"V-cautious","en":"cautious","zh":"谨慎的","more":"小心的;慎重的","ipa":"[ˈkɔːʃəs]","level":"B1","ex":"She is cautious when she makes new friends.","exZh":"她交新朋友时很谨慎。","rank":8635},{"id":"V-cave","en":"cave","zh":"洞穴","more":"山洞","ipa":"[keɪv]","level":"B1","ex":"We found a cave near the beach.","exZh":"我们在海滩附近发现了一个洞穴。","rank":2999},{"id":"V-celebrate","en":"celebrate","zh":"庆祝","ipa":"[ˈselɪbreɪt]","level":"A1","ex":"We celebrate my birthday with a big cake.","exZh":"我们用大蛋糕庆祝我的生日。","rank":2030},{"id":"V-celebration","en":"celebration","zh":"庆祝活动","more":"庆典;庆祝","ipa":"[ˌselɪˈbreɪʃn]","level":"A1","ex":"We had a big celebration for her birthday.","exZh":"我们为她的生日办了一场盛大的庆祝活动。","rank":4438},{"id":"V-celebrity","en":"celebrity","zh":"名人","more":"明星;名流","ipa":"[səˈlebrəti]","level":"B1","ex":"The celebrity smiled and waved at the crowd.","exZh":"那位名人微笑着向人群挥手。","rank":5222},{"id":"V-cent","en":"cent","zh":"美分","more":"分;分币","ipa":"[sent]","level":"A2","ex":"This candy only costs fifty cents.","exZh":"这颗糖只要五十美分。","rank":6010},{"id":"V-center","en":"center","zh":"中心","more":"中央;中心点","ipa":"[ˈsentər]","level":"A2","ex":"The shopping center is near my house.","exZh":"购物中心离我家很近。","rank":1534},{"id":"V-centimetre","en":"centimetre","zh":"厘米","more":"公分","ipa":"[ˈsentɪmiːtər]","level":"A2","ex":"The ruler is thirty centimetres long.","exZh":"这把尺子有三十厘米长。","rank":99999},{"id":"V-central","en":"central","zh":"中心的","more":"主要的;中央的","ipa":"[ˈsentrəl]","level":"B1","ex":"The hotel is in a very central place.","exZh":"这家酒店的位置在很中心的地段。","rank":2205},{"id":"V-central-heating","en":"central heating","zh":"集中供暖","ipa":"[ˌsentrəl ˈhiːtɪŋ]","level":"B1","ex":"Our house has central heating, so it stays warm.","exZh":"我们家有集中供暖,所以一直很暖和。","rank":8461},{"id":"V-centre","en":"centre","zh":"中心","more":"中央;市中心","ipa":"[ˈsentər]","level":"A2","ex":"The town centre is always busy on Saturdays.","exZh":"周六市中心总是很热闹。","rank":3117},{"id":"V-century","en":"century","zh":"世纪","more":"一百年","ipa":"[ˈsentʃəri]","level":"A2","ex":"This old building is over a century old.","exZh":"这座老建筑有一百多年了。","rank":1911},{"id":"V-cereal","en":"cereal","zh":"麦片","more":"谷物;谷类作物","ipa":"[ˈsɪriəl]","level":"A2","ex":"I have a bowl of cereal for breakfast.","exZh":"我早饭吃一碗麦片。","rank":8189},{"id":"V-ceremony","en":"ceremony","zh":"典礼","more":"仪式;礼节","ipa":"[ˈserəmoʊni]","level":"B1","ex":"The wedding ceremony was short and simple.","exZh":"婚礼典礼简短又朴素。","rank":2950},{"id":"V-certain","en":"certain","zh":"确定的","more":"某个;肯定的","ipa":"[ˈsɜːrtn]","level":"A2","ex":"I'm certain I left my keys on the table.","exZh":"我确定我把钥匙放在桌子上了。","rank":897},{"id":"V-certainly","en":"certainly","zh":"当然","more":"肯定;一定","ipa":"[ˈsɜːrtnli]","level":"A2","ex":"I will certainly help you with your homework.","exZh":"我当然会帮你做作业。","rank":781},{"id":"V-chain","en":"chain","zh":"链条","more":"连锁店;一连串","ipa":"[tʃeɪn]","level":"A2","ex":"He keeps his bike safe with a strong chain.","exZh":"他用一条结实的链条锁住自行车。","rank":2539},{"id":"V-chair","en":"chair","zh":"椅子","more":"主席;教授职位","ipa":"[tʃer]","level":"A1","ex":"Please sit on this chair and wait here.","exZh":"请坐在这把椅子上在这儿等。","rank":1589},{"id":"V-challenge","en":"challenge","zh":"挑战","more":"质疑;向某人挑战","ipa":"[ˈtʃælɪndʒ]","level":"A2","ex":"Learning a new language is a big challenge.","exZh":"学一门新语言是个很大的挑战。","rank":1500},{"id":"V-challenging","en":"challenging","zh":"有挑战性的","more":"困难的;考验人的","ipa":"[ˈtʃælɪndʒɪŋ]","level":"B1","ex":"The exam was challenging, but I did well.","exZh":"这次考试挺有挑战性,不过我考得不错。","rank":7233},{"id":"V-chance","en":"chance","zh":"机会","more":"可能性;运气","ipa":"[tʃæns]","level":"A2","ex":"Please give me a chance to try again.","exZh":"请再给我一次机会试试。","rank":425},{"id":"V-change","en":"change","zh":"改变","more":"零钱;变化","ipa":"[tʃeɪndʒ]","level":"A1","ex":"You can change your mind any time.","exZh":"你随时都可以改变主意。","rank":392},{"id":"V-channel","en":"channel","zh":"频道","more":"渠道;海峡","ipa":"[ˈtʃænl]","level":"B1","ex":"This TV channel shows old movies.","exZh":"这个电视频道放老电影。","rank":2799},{"id":"V-charge","en":"charge","zh":"收费","more":"充电;指控","ipa":"[tʃɑːrdʒ]","level":"B1","ex":"They charge ten dollars for parking.","exZh":"他们停车收费十美元。","rank":873},{"id":"V-charity","en":"charity","zh":"慈善","more":"慈善机构;施舍","ipa":"[ˈtʃærəti]","level":"B1","ex":"She gives money to charity every month.","exZh":"她每个月都给慈善机构捐钱。","rank":2913},{"id":"V-charm","en":"charm","zh":"魅力","more":"魔力;迷住","ipa":"[tʃɑːrm]","level":"B1","ex":"Her smile has a special charm.","exZh":"她的微笑有一种特别的魅力。","rank":3517},{"id":"V-chase","en":"chase","zh":"追赶","more":"追逐;追求","ipa":"[tʃeɪs]","level":"B1","ex":"The little dog is chasing a cat.","exZh":"那只小狗正在追一只猫。","rank":2078},{"id":"V-chat","en":"chat","zh":"聊天","ipa":"[tʃæt]","level":"A2","ex":"We sat and chatted for an hour.","exZh":"我们坐着聊了一个小时。","rank":2667},{"id":"V-chat-show","en":"chat show","zh":"访谈节目","ipa":"","level":"B1","ex":"I watched a chat show last night.","exZh":"我昨晚看了一个访谈节目。","rank":2667},{"id":"V-cheap","en":"cheap","zh":"便宜的","more":"廉价的;小气的","ipa":"[tʃiːp]","level":"A2","ex":"This bag is cheap but very good.","exZh":"这个包很便宜,但质量很好。","rank":1977},{"id":"V-check","en":"check","zh":"检查","more":"核对;账单","ipa":"[tʃek]","level":"A1","ex":"Please check your answers before you leave.","exZh":"走之前请检查一下你的答案。","rank":409},{"id":"V-check-in","en":"check-in","zh":"登记入住","more":"签到;办理登机","ipa":"[ˈtʃek ɪn]","level":"B1","ex":"The hotel check-in starts at three.","exZh":"酒店入住登记三点开始。","rank":24059},{"id":"V-checkout","en":"checkout","zh":"收银台","more":"结账;退房","ipa":"[ˈtʃekaʊt]","level":"B1","ex":"You can pay for these at the checkout.","exZh":"这些东西你可以在收银台付款。","rank":21843},{"id":"V-cheek","en":"cheek","zh":"脸颊","more":"臀部","ipa":"[tʃiːk]","level":"A2","ex":"A tear ran down her cheek.","exZh":"一滴眼泪从她的脸颊上流下来。","rank":5437},{"id":"V-cheer","en":"cheer","zh":"欢呼","more":"喝彩;为…加油","ipa":"[tʃɪr]","level":"A2","ex":"The crowd cheered when the team scored a goal.","exZh":"球队进球时,人群欢呼起来。","rank":2823},{"id":"V-cheerful","en":"cheerful","zh":"快乐的","more":"愉快的;高兴的","ipa":"[ˈtʃɪrfl]","level":"B1","ex":"She is always cheerful, even on rainy days.","exZh":"她总是很快乐,连下雨天也一样。","rank":7393},{"id":"V-cheese","en":"cheese","zh":"奶酪","ipa":"[tʃiːz]","level":"A1","ex":"I like cheese on my bread.","exZh":"我喜欢在面包上放奶酪。","rank":1856},{"id":"V-chef","en":"chef","zh":"厨师","ipa":"[ʃef]","level":"A2","ex":"The chef is cooking fish in the kitchen.","exZh":"厨师正在厨房里做鱼。","rank":1825},{"id":"V-chess","en":"chess","zh":"国际象棋","ipa":"[tʃes]","level":"A2","ex":"My father taught me how to play chess.","exZh":"我爸爸教我下国际象棋。","rank":4848},{"id":"V-chest","en":"chest","zh":"胸部","more":"箱子;柜子","ipa":"[tʃest]","level":"A2","ex":"He put his hand on his chest.","exZh":"他把手放在胸口上。","rank":1828},{"id":"V-chest-of-drawers","en":"chest of drawers","zh":"五斗橱","more":"抽屉柜","ipa":"","level":"B1","ex":"The socks are in the top drawer of the chest of drawers.","exZh":"袜子在五斗橱最上面的抽屉里。","rank":9896},{"id":"V-chicken","en":"chicken","zh":"鸡肉","more":"小鸡;胆小鬼","ipa":"[ˈtʃɪkɪn]","level":"A1","ex":"We had chicken and rice for dinner.","exZh":"我们晚饭吃了鸡肉和米饭。","rank":1223},{"id":"V-chief","en":"chief","zh":"首领","more":"主要的;负责人","ipa":"[tʃiːf]","level":"B1","ex":"The chief spoke to all the workers this morning.","exZh":"今天早上头儿对全体工人讲了话。","rank":731},{"id":"V-child","en":"child","zh":"孩子","more":"儿童;子女","ipa":"[tʃaɪld]","level":"A1","ex":"She is reading a book to her child.","exZh":"她正在给她的孩子读书。","rank":468},{"id":"V-childhood","en":"childhood","zh":"童年","more":"幼年时期","ipa":"[ˈtʃaɪldhʊd]","level":"A2","ex":"I had a happy childhood in a small town.","exZh":"我在一个小镇度过了快乐的童年。","rank":2720},{"id":"V-chilli","en":"chilli","zh":"辣椒","ipa":"[ˈtʃɪli]","level":"A2","ex":"This chilli is too hot for me.","exZh":"这个辣椒对我来说太辣了。","rank":17492},{"id":"V-chin","en":"chin","zh":"下巴","ipa":"[tʃɪn]","level":"A2","ex":"He hit his chin on the table.","exZh":"他的下巴撞到了桌子上。","rank":3983},{"id":"V-chocolate","en":"chocolate","zh":"巧克力","more":"巧克力色","ipa":"[ˈtʃɔːklət]","level":"A1","ex":"I bought some chocolate for my sister.","exZh":"我给妹妹买了一些巧克力。","rank":2106},{"id":"V-choice","en":"choice","zh":"选择","more":"选择权;精选品","ipa":"[tʃɔɪs]","level":"A2","ex":"You have to make a choice now.","exZh":"你现在必须做出选择。","rank":729},{"id":"V-choke","en":"choke","zh":"窒息","more":"噎住;堵塞","ipa":"[tʃoʊk]","level":"B1","ex":"The room was full of smoke and I began to choke.","exZh":"房间里全是烟,我开始喘不上气。","rank":6734},{"id":"V-choose","en":"choose","zh":"选择","ipa":"[tʃuːz]","level":"A1","ex":"You can choose any book you like.","exZh":"你可以挑任何一本你喜欢的书。","rank":1149},{"id":"V-church","en":"church","zh":"教堂","more":"礼拜","ipa":"[tʃɜːrtʃ]","level":"A1","ex":"They go to church every Sunday morning.","exZh":"他们每个周日早上都去教堂。","rank":954},{"id":"V-cinema","en":"cinema","zh":"电影院","more":"电影;电影业","ipa":"[ˈsɪnəmə]","level":"A1","ex":"Let's go to the cinema tonight.","exZh":"今晚我们去电影院吧。","rank":4027},{"id":"V-circular","en":"circular","zh":"圆形的","more":"循环的","ipa":"[ˈsɜːrkjələr]","level":"B1","ex":"The table has a circular top.","exZh":"这张桌子有个圆形的桌面。","rank":13527},{"id":"V-circus","en":"circus","zh":"马戏团","more":"马戏","ipa":"[ˈsɜːrkəs]","level":"B1","ex":"The children loved the animals at the circus.","exZh":"孩子们很喜欢马戏团里的动物。","rank":3466},{"id":"V-city","en":"city","zh":"城市","ipa":"[ˈsɪti]","level":"A1","ex":"I live in a big city.","exZh":"我住在一座大城市里。","rank":487},{"id":"V-claim","en":"claim","zh":"声称","more":"要求;索赔","ipa":"[kleɪm]","level":"A2","ex":"He claims that he saw a big dog.","exZh":"他声称自己看见了一只大狗。","rank":2301},{"id":"V-class","en":"class","zh":"班级","more":"课;阶级","ipa":"[klæs]","level":"A1","ex":"Our class has twenty students this year.","exZh":"我们班今年有二十个学生。","rank":742},{"id":"V-classical","en":"classical","zh":"古典的","more":"经典的;传统的","ipa":"[ˈklæsɪkl]","level":"B1","ex":"She loves classical music and old books.","exZh":"她喜欢古典音乐和旧书。","rank":6285},{"id":"V-classical-music","en":"classical music","zh":"古典音乐","ipa":"","level":"A2","ex":"My father listens to classical music every morning.","exZh":"我爸爸每天早上都听古典音乐。","rank":6285},{"id":"V-clean","en":"clean","zh":"干净的","more":"打扫;清洁的","ipa":"[kliːn]","level":"A1","ex":"Please keep your room clean and tidy.","exZh":"请保持你的房间干净整洁。","rank":695},{"id":"V-cleaner","en":"cleaner","zh":"清洁工","more":"清洁剂","ipa":"[ˈkliːnər]","level":"A2","ex":"The cleaner comes to our office every evening.","exZh":"清洁工每天晚上来我们办公室打扫。","rank":5749},{"id":"V-clear","en":"clear","zh":"清楚的","more":"晴朗的;清澈的","ipa":"[klɪr]","level":"A2","ex":"Her instructions were clear and easy to follow.","exZh":"她的说明很清楚,很容易照着做。","rank":539},{"id":"V-clearly","en":"clearly","zh":"清楚地","more":"明显地;显然","ipa":"[ˈklɪrli]","level":"A2","ex":"Please speak clearly so everyone can hear you.","exZh":"请说清楚一点,让大家都能听见。","rank":1408},{"id":"V-clerk","en":"clerk","zh":"职员","more":"店员;办事员","ipa":"[klɜːrk]","level":"A2","ex":"The clerk at the hotel was very helpful.","exZh":"酒店的那位职员非常热心。","rank":5091},{"id":"V-clever","en":"clever","zh":"聪明的","more":"机灵的;巧妙的","ipa":"[ˈklevər]","level":"A1","ex":"She is a clever girl and learns fast.","exZh":"她是个聪明的女孩,学东西很快。","rank":2107},{"id":"V-click","en":"click","zh":"点击","more":"咔哒声","ipa":"[klɪk]","level":"A2","ex":"Click the green button to start the game.","exZh":"点击绿色的按钮开始游戏。","rank":4339},{"id":"V-cliff","en":"cliff","zh":"悬崖","ipa":"[klɪf]","level":"B1","ex":"They walked carefully along the edge of the cliff.","exZh":"他们沿着悬崖边小心翼翼地走着。","rank":3259},{"id":"V-climate","en":"climate","zh":"气候","more":"风气;氛围","ipa":"[ˈklaɪmət]","level":"B1","ex":"The climate in this city is warm and wet.","exZh":"这个城市的气候温暖潮湿。","rank":5589},{"id":"V-climb","en":"climb","zh":"攀爬","more":"攀登;上升","ipa":"[klaɪm]","level":"A1","ex":"The children love to climb trees.","exZh":"孩子们喜欢爬树。","rank":2577},{"id":"V-climber","en":"climber","zh":"登山者","more":"攀岩者;攀缘植物","ipa":"[ˈklaɪmər]","level":"B1","ex":"The climber reached the top of the mountain.","exZh":"那名登山者爬到了山顶。","rank":20428},{"id":"V-climbing","en":"climbing","zh":"攀登","more":"攀岩","ipa":"[ˈklaɪmɪŋ]","level":"A2","ex":"We go climbing every weekend in summer.","exZh":"夏天我们每个周末都去爬山。","rank":4827},{"id":"V-clinic","en":"clinic","zh":"诊所","more":"门诊;科室","ipa":"[ˈklɪnɪk]","level":"B1","ex":"I have an appointment at the clinic today.","exZh":"我今天约了去诊所看病。","rank":3153},{"id":"V-clip","en":"clip","zh":"夹子","more":"剪辑;片段","ipa":"[klɪp]","level":"B1","ex":"She used a clip to hold the papers together.","exZh":"她用夹子把文件夹在一起。","rank":6288},{"id":"V-clock","en":"clock","zh":"时钟","more":"钟;计时器","ipa":"[klɑːk]","level":"A1","ex":"The clock on the wall says ten past nine.","exZh":"墙上的钟显示九点十分。","rank":1940},{"id":"V-close","en":"close","zh":"关闭","more":"结束;靠近","ipa":"[kloʊz; kloʊs]","level":"A1","ex":"Please close the door when you leave.","exZh":"你走的时候请把门关上。","rank":430},{"id":"V-closed","en":"closed","zh":"关着的","more":"不公开的;打烊的","ipa":"[kloʊzd]","level":"A1","ex":"The shop is closed on Sundays.","exZh":"这家店星期天不开门。","rank":1229},{"id":"V-clothes","en":"clothes","zh":"衣服","more":"服装;衣物","ipa":"[kloʊðz; kloʊz]","level":"A1","ex":"I need to buy some new clothes for winter.","exZh":"冬天我得买些新衣服。","rank":789},{"id":"V-cloud","en":"cloud","zh":"云朵","more":"云层;阴云","ipa":"[klaʊd]","level":"A1","ex":"There are dark clouds in the sky.","exZh":"天上乌云密布。","rank":3478},{"id":"V-cloudy","en":"cloudy","zh":"多云的","more":"阴天的;模糊的","ipa":"[ˈklaʊdi]","level":"A1","ex":"It was cloudy all day yesterday.","exZh":"昨天一整天都是阴天。","rank":13206},{"id":"V-club","en":"club","zh":"俱乐部","more":"夜总会;棍棒","ipa":"[klʌb]","level":"A1","ex":"I go to the club every Friday night.","exZh":"我每周五晚上去俱乐部。","rank":845},{"id":"V-coach","en":"coach","zh":"教练","more":"长途汽车;旅客车厢","ipa":"[koʊtʃ]","level":"A1","ex":"My coach says I can play very well.","exZh":"我的教练说我可以踢得很好。","rank":1524},{"id":"V-coast","en":"coast","zh":"海岸","more":"滑行","ipa":"[koʊst]","level":"A2","ex":"We walked along the coast after lunch.","exZh":"午饭后我们沿着海岸散步。","rank":2363},{"id":"V-coat","en":"coat","zh":"外套","more":"大衣;涂层","ipa":"[koʊt]","level":"A1","ex":"Put on your coat, it is cold outside.","exZh":"穿上外套,外面很冷。","rank":1854},{"id":"V-coffee","en":"coffee","zh":"咖啡","more":"咖啡豆;咖啡色","ipa":"[ˈkɔːfi]","level":"A1","ex":"I drink a cup of coffee every morning.","exZh":"我每天早上喝一杯咖啡。","rank":665},{"id":"V-coin","en":"coin","zh":"硬币","ipa":"[kɔɪn]","level":"A2","ex":"He found a coin under the old chair.","exZh":"他在旧椅子下面发现了一枚硬币。","rank":4166},{"id":"V-coke","en":"Coke","zh":"可口可乐","ipa":"[koʊk]","level":"A1","ex":"I would like a Coke, please.","exZh":"请给我来一杯可口可乐。","rank":3729},{"id":"V-cola","en":"cola","zh":"可乐","more":"可乐树","ipa":"[ˈkoʊlə]","level":"A2","ex":"Do you want a cola with your pizza?","exZh":"你吃披萨要配可乐吗?","rank":13025},{"id":"V-cold","en":"cold","zh":"寒冷","more":"感冒","ipa":"[kəʊld]","level":"A1","ex":"It is very cold outside today.","exZh":"今天外面很冷。","rank":624},{"id":"V-collar","en":"collar","zh":"衣领","more":"项圈","ipa":"[ˈkɑːlər]","level":"B1","ex":"He turned up his collar against the wind.","exZh":"他竖起衣领挡风。","rank":4820},{"id":"V-collect","en":"collect","zh":"收集","more":"收藏;领取","ipa":"[kəˈlekt]","level":"A1","ex":"I collect small stones from the beach.","exZh":"我在海滩上收集小石头。","rank":2544},{"id":"V-collection","en":"collection","zh":"收藏品","more":"收集;募捐","ipa":"[kəˈlekʃn]","level":"A1","ex":"My collection of toys is very small.","exZh":"我收藏的玩具很少。","rank":2902},{"id":"V-college","en":"college","zh":"大学","more":"学院;学会","ipa":"[ˈkɑːlɪdʒ]","level":"A1","ex":"My sister is going to college next year.","exZh":"我姐姐明年上大学。","rank":1001},{"id":"V-color","en":"color","zh":"颜色","more":"肤色;颜料","ipa":"[ˈkʌlər]","level":"A1","ex":"What color is your new bike?","exZh":"你的新自行车是什么颜色的?","rank":1511},{"id":"V-colour","en":"colour","zh":"颜色","more":"肤色;气色","ipa":"[ˈkʌlər]","level":"A1","ex":"The colour of your shirt is very nice.","exZh":"你衬衫的颜色很好看。","rank":3447},{"id":"V-colourful","en":"colourful","zh":"色彩鲜艳的","more":"丰富多彩的;生动的","ipa":"[ˈkʌlərfl]","level":"A2","ex":"Her garden is full of colourful flowers.","exZh":"她的花园里开满了色彩鲜艳的花。","rank":15643},{"id":"V-comb","en":"comb","zh":"梳子","more":"梳理;蜂巢","ipa":"[koʊm]","level":"A2","ex":"I need a comb for my long hair.","exZh":"我长头发,需要一把梳子。","rank":7722},{"id":"V-combination","en":"combination","zh":"组合","more":"结合;联合","ipa":"[ˌkɑːmbɪˈneɪʃn]","level":"B1","ex":"This dish is a combination of sweet and sour.","exZh":"这道菜是甜味和酸味的组合。","rank":4473},{"id":"V-combine","en":"combine","zh":"结合","more":"合并;混合","ipa":"[kəmˈbaɪn]","level":"B1","ex":"Let's combine our money to buy a gift.","exZh":"咱们把钱凑到一起买份礼物吧。","rank":9702},{"id":"V-come","en":"come","zh":"来","more":"到来;出现","ipa":"[kʌm]","level":"A1","ex":"Come here and look at this photo.","exZh":"过来看看这张照片。","rank":57},{"id":"V-comedian","en":"comedian","zh":"喜剧演员","more":"滑稽的人","ipa":"[kəˈmiːdiən]","level":"B1","ex":"He is a famous comedian in our country.","exZh":"他是我们国家很有名的喜剧演员。","rank":8174},{"id":"V-comedy","en":"comedy","zh":"喜剧","more":"喜剧片;滑稽","ipa":"[ˈkɑːmədi]","level":"B1","ex":"We watched a funny comedy last night.","exZh":"我们昨晚看了一部很好笑的喜剧片。","rank":3924},{"id":"V-comfort","en":"comfort","zh":"舒适","more":"安慰;慰藉","ipa":"[ˈkʌmfərt]","level":"B1","ex":"My grandparents live in comfort in the countryside.","exZh":"我爷爷奶奶在乡下过得很舒适。","rank":2988},{"id":"V-comfortable","en":"comfortable","zh":"舒适的","more":"自在的;宽裕的","ipa":"[ˈkʌmftəbl; ˈkʌmfərtəbl]","level":"A2","ex":"This sofa is very comfortable to sit on.","exZh":"这张沙发坐着很舒服。","rank":1611},{"id":"V-comic","en":"comic","zh":"漫画","more":"连环画;喜剧演员","ipa":"[ˈkɑːmɪk]","level":"A2","ex":"My little brother reads a comic every night.","exZh":"我弟弟每天晚上都看漫画。","rank":4947},{"id":"V-comment","en":"comment","zh":"评论","more":"意见;批评","ipa":"[ˈkɑːment]","level":"B1","ex":"She left a nice comment on my photo.","exZh":"她在我的照片下面留了句好评。","rank":3375},{"id":"V-commercial","en":"commercial","zh":"商业的","more":"广告;营利的","ipa":"[kəˈmɜːrʃl]","level":"B1","ex":"Their new commercial building is very tall.","exZh":"他们新建的商业大楼很高。","rank":3618},{"id":"V-common","en":"common","zh":"常见的","more":"共同的;普通的","ipa":"[ˈkɑːmən]","level":"A2","ex":"It's a common mistake for beginners.","exZh":"这是初学者常犯的错误。","rank":1386},{"id":"V-communicate","en":"communicate","zh":"交流","more":"沟通;传达","ipa":"[kəˈmjuːnɪkeɪt]","level":"A2","ex":"We communicate with each other by email.","exZh":"我们用电子邮件互相交流。","rank":4718},{"id":"V-communication","en":"communication","zh":"交流","more":"通讯;沟通","ipa":"[kəˌmjuːnɪˈkeɪʃn]","level":"A2","ex":"Good communication is important in a team.","exZh":"在团队里,良好的沟通很重要。","rank":3998},{"id":"V-companion","en":"companion","zh":"同伴","more":"伙伴;伴侣","ipa":"[kəmˈpænjən]","level":"B1","ex":"My dog is my best companion.","exZh":"我的狗是我最好的伙伴。","rank":5543},{"id":"V-company","en":"company","zh":"公司","more":"陪伴;同伴","ipa":"[ˈkʌmpəni]","level":"A2","ex":"She works for a big company in Shanghai.","exZh":"她在上海一家大公司上班。","rank":589},{"id":"V-compare","en":"compare","zh":"比较","more":"对比;比作","ipa":"[kəmˈper]","level":"A2","ex":"Let's compare the prices before we buy.","exZh":"买之前我们先比比价格。","rank":4798},{"id":"V-comparison","en":"comparison","zh":"比较","more":"对比;比喻","ipa":"[kəmˈpærɪsn]","level":"B1","ex":"The comparison between the two cities is interesting.","exZh":"这两座城市的对比很有意思。","rank":8638},{"id":"V-compete","en":"compete","zh":"竞争","more":"比赛;对抗","ipa":"[kəmˈpiːt]","level":"B1","ex":"Small shops find it hard to compete with big ones.","exZh":"小商店很难和大商店竞争。","rank":5033},{"id":"V-competition","en":"competition","zh":"比赛","more":"竞争","ipa":"[ˌkɑːmpəˈtɪʃn]","level":"A2","ex":"She won first prize in the singing competition.","exZh":"她在歌唱比赛里拿了一等奖。","rank":1950},{"id":"V-competitor","en":"competitor","zh":"竞争对手","more":"参赛者","ipa":"[kəmˈpetɪtər]","level":"B1","ex":"Our main competitor just cut their prices.","exZh":"我们主要的竞争对手刚刚降价了。","rank":12435},{"id":"V-complain","en":"complain","zh":"抱怨","more":"投诉;诉苦","ipa":"[kəmˈpleɪn]","level":"A2","ex":"My mother complains about the weather every day.","exZh":"我妈每天都抱怨天气。","rank":3485},{"id":"V-complaint","en":"complaint","zh":"抱怨","more":"投诉;疾病","ipa":"[kəmˈpleɪnt]","level":"A2","ex":"His main complaint is that the room is too small.","exZh":"他最大的抱怨就是房间太小。","rank":4052},{"id":"V-complete","en":"complete","zh":"完整的","more":"完成;完全的","ipa":"[kəmˈpliːt]","level":"A2","ex":"We need the complete list of students.","exZh":"我们需要一份完整的学生名单。","rank":1278},{"id":"V-completely","en":"completely","zh":"完全地","more":"彻底地","ipa":"[kəmˈpliːtli]","level":"B1","ex":"I completely forgot about the meeting this morning.","exZh":"我完全忘了今天早上的会。","rank":769},{"id":"V-complex","en":"complex","zh":"复杂的","more":"建筑群;情结","ipa":"[kəmˈpleks; ˈkɑːmpleks]","level":"B1","ex":"This math problem is too complex for me.","exZh":"这道数学题对我来说太复杂了。","rank":3284},{"id":"V-complicated","en":"complicated","zh":"复杂的","more":"难懂的;麻烦的","ipa":"[ˈkɑːmplɪkeɪtɪd]","level":"B1","ex":"The rules of this game are very complicated.","exZh":"这个游戏的规则特别复杂。","rank":1973},{"id":"V-compose","en":"compose","zh":"组成","more":"创作;使平静","ipa":"[kəmˈpoʊz]","level":"B1","ex":"The team is composed of twelve players.","exZh":"这支队伍由十二名队员组成。","rank":15770},{"id":"V-computer","en":"computer","zh":"电脑","ipa":"[kəmˈpjuːtər]","level":"A1","ex":"My computer is really slow today.","exZh":"我的电脑今天特别慢。","rank":1098},{"id":"V-concentrate","en":"concentrate","zh":"集中","more":"专心;浓缩","ipa":"[ˈkɑːns(ə)ntreɪt]","level":"A2","ex":"I can't concentrate on my homework with the TV on.","exZh":"开着电视我没法专心写作业。","rank":3248},{"id":"V-concentration","en":"concentration","zh":"注意力","more":"浓度;集中","ipa":"[ˌkɑːnsnˈtreɪʃn]","level":"B1","ex":"This game needs a lot of concentration.","exZh":"这个游戏很考验注意力。","rank":6574},{"id":"V-concern","en":"concern","zh":"关心","more":"担心;涉及","ipa":"[kənˈsɜːrn]","level":"A2","ex":"Thank you for your concern about my family.","exZh":"谢谢你关心我的家人。","rank":2199},{"id":"V-concert","en":"concert","zh":"音乐会","ipa":"[ˈkɑːnsərt]","level":"A1","ex":"We went to a concert last night.","exZh":"我们昨晚去听了一场音乐会。","rank":2937},{"id":"V-conclusion","en":"conclusion","zh":"结论","more":"结尾;结束","ipa":"[kənˈkluːʒn]","level":"B1","ex":"We finally reached a conclusion after a long talk.","exZh":"聊了很久之后,我们终于得出了结论。","rank":4968},{"id":"V-condition","en":"condition","zh":"条件","more":"状况;环境","ipa":"[kənˈdɪʃn]","level":"A2","ex":"I will help you on one condition.","exZh":"我可以帮你,但有一个条件。","rank":1594},{"id":"V-confidence","en":"confidence","zh":"信心","more":"信任;把握","ipa":"[ˈkɑːnfɪdəns]","level":"B1","ex":"She lost her confidence after the mistake.","exZh":"出了那次错以后,她就没了信心。","rank":2632},{"id":"V-confident","en":"confident","zh":"自信的","more":"确信的","ipa":"[ˈkɑːnfɪdənt]","level":"A2","ex":"I feel confident about the test tomorrow.","exZh":"我对明天的考试挺有信心的。","rank":3420},{"id":"V-confirm","en":"confirm","zh":"确认","more":"证实;确定","ipa":"[kənˈfɜːrm]","level":"B1","ex":"Please call to confirm your booking before Friday.","exZh":"请在周五之前打电话确认你的预订。","rank":3102},{"id":"V-conflict","en":"conflict","zh":"冲突","more":"矛盾;争执","ipa":"[ˈkɑːnflɪkt]","level":"B1","ex":"There was a conflict between the two teams.","exZh":"这两个队之间发生了冲突。","rank":4432},{"id":"V-confuse","en":"confuse","zh":"使困惑","more":"混淆;搞混","ipa":"[kənˈfjuːz]","level":"A2","ex":"These two words always confuse me.","exZh":"这两个词总是把我搞糊涂。","rank":8278},{"id":"V-confused","en":"confused","zh":"困惑的","more":"糊涂的;搞不清的","ipa":"[kənˈfjuːzd]","level":"A2","ex":"I was confused by his strange question.","exZh":"他那个奇怪的问题让我很困惑。","rank":2087},{"id":"V-confusing","en":"confusing","zh":"令人困惑的","more":"难懂的;混乱的","ipa":"[kənˈfjuːzɪŋ]","level":"B1","ex":"The instructions were confusing, so I asked for help.","exZh":"说明写得太让人糊涂了,我就找人问了问。","rank":5273},{"id":"V-connect","en":"connect","zh":"连接","more":"联系;接通","ipa":"[kəˈnekt]","level":"B1","ex":"Connect your phone to the wifi here.","exZh":"把你的手机连上这里的无线网。","rank":3845},{"id":"V-connection","en":"connection","zh":"联系","more":"连接;关系","ipa":"[kəˈnekʃn]","level":"B1","ex":"There is a clear connection between diet and health.","exZh":"饮食和健康之间有明显的关系。","rank":1900},{"id":"V-consequence","en":"consequence","zh":"后果","more":"结果;重要性","ipa":"[ˈkɑːnsɪkwens]","level":"A2","ex":"If you skip class, the consequence will be bad.","exZh":"你要是逃课,后果会很糟。","rank":9811},{"id":"V-consider","en":"consider","zh":"考虑","more":"认为;细想","ipa":"[kənˈsɪdər]","level":"A2","ex":"I need to consider your idea before I say yes.","exZh":"我得先考虑一下你的想法再答复。","rank":1366},{"id":"V-consist","en":"consist","zh":"由…组成","more":"在于;一致","ipa":"[kənˈsɪst]","level":"A2","ex":"Our class consists of twelve boys and eight girls.","exZh":"我们班由十二个男生和八个女生组成。","rank":25618},{"id":"V-contact","en":"contact","zh":"联系","more":"接触;熟人","ipa":"[ˈkɑːntækt]","level":"A2","ex":"Please contact me when you get home.","exZh":"你到家以后请联系我。","rank":1028},{"id":"V-contain","en":"contain","zh":"包含","more":"容纳;抑制","ipa":"[kənˈteɪn]","level":"B1","ex":"The report contains a lot of useful information.","exZh":"这份报告包含很多有用的信息。","rank":5714},{"id":"V-container","en":"container","zh":"容器","more":"集装箱","ipa":"[kənˈteɪnər]","level":"A2","ex":"Please put the rice in a big container.","exZh":"请把米装进一个大容器里。","rank":7672},{"id":"V-content","en":"content","zh":"内容","more":"满足的;含量","ipa":"[ˈkɑːntent; kənˈtent]","level":"B1","ex":"The content of this book is very interesting.","exZh":"这本书的内容很有意思。","rank":4743},{"id":"V-continue","en":"continue","zh":"继续","more":"持续;接着说","ipa":"[kənˈtɪnjuː]","level":"A2","ex":"Please continue your story, I want to hear it.","exZh":"请继续讲你的故事,我想听。","rank":1038},{"id":"V-control","en":"control","zh":"控制","more":"管理;抑制","ipa":"[kənˈtroʊl]","level":"A2","ex":"He could not control the car on the ice.","exZh":"在冰面上他控制不住那辆车。","rank":608},{"id":"V-convenient","en":"convenient","zh":"方便的","ipa":"[kənˈviːniənt]","level":"A2","ex":"Is it convenient for you to meet tomorrow?","exZh":"你明天见面方便吗?","rank":5231},{"id":"V-conversation","en":"conversation","zh":"谈话","more":"对话;交谈","ipa":"[ˌkɑːnvərˈseɪʃn]","level":"A1","ex":"We had a long conversation about our jobs.","exZh":"我们聊各自的工作聊了很久。","rank":1440},{"id":"V-convince","en":"convince","zh":"说服","more":"使确信","ipa":"[kənˈvɪns]","level":"B1","ex":"She convinced me to try the new restaurant.","exZh":"她说服我去尝尝那家新餐厅。","rank":2374},{"id":"V-cook","en":"cook","zh":"烹饪","more":"厨师","ipa":"[kʊk]","level":"A1","ex":"I cook dinner for my family every day.","exZh":"我每天给家人做晚饭。","rank":1390},{"id":"V-cooker","en":"cooker","zh":"炊具","ipa":"[ˈkʊkər]","level":"A2","ex":"This cooker is easy to clean.","exZh":"这个炊具很容易清洗。","rank":20143},{"id":"V-cookie","en":"cookie","zh":"饼干","more":"小甜点","ipa":"[ˈkʊki]","level":"A1","ex":"My mom made cookies for us.","exZh":"我妈妈给我们做了饼干。","rank":4159},{"id":"V-cooking","en":"cooking","zh":"烹饪","more":"做饭","ipa":"[ˈkʊkɪŋ]","level":"A2","ex":"I love cooking for my friends on weekends.","exZh":"我喜欢周末给朋友做饭。","rank":2197},{"id":"V-cool","en":"cool","zh":"凉爽的","more":"酷;冷静的","ipa":"[kuːl]","level":"A1","ex":"It is cool in the evening.","exZh":"晚上很凉爽。","rank":503},{"id":"V-cooler","en":"cooler","zh":"冷藏箱","more":"冷却器;冰桶","ipa":"[ˈkuːlər]","level":"A2","ex":"Put the drinks in the cooler, please.","exZh":"请把饮料放进冷藏箱里。","rank":6330},{"id":"V-copy","en":"copy","zh":"复制","more":"副本;抄写","ipa":"[ˈkɑːpi]","level":"A1","ex":"Can you copy this for me, please?","exZh":"你能帮我复制一下这个吗?","rank":1490},{"id":"V-corn","en":"corn","zh":"玉米","more":"谷物","ipa":"[kɔːrn]","level":"A1","ex":"I like to eat corn in summer.","exZh":"我喜欢夏天吃玉米。","rank":3822},{"id":"V-corner","en":"corner","zh":"角落","more":"拐角;困境","ipa":"[ˈkɔːrnər]","level":"A1","ex":"The cat is sleeping in the corner.","exZh":"猫在角落里睡觉。","rank":1412},{"id":"V-correct","en":"correct","zh":"正确的","more":"改正;恰当的","ipa":"[kəˈrekt]","level":"A1","ex":"This is the correct way to do it.","exZh":"这是正确的做法。","rank":1417},{"id":"V-correction","en":"correction","zh":"改正","more":"修正;批改","ipa":"[kəˈrekʃn]","level":"B1","ex":"The teacher made a correction to my homework.","exZh":"老师对我的作业做了一处改正。","rank":10672},{"id":"V-cost","en":"cost","zh":"花费","more":"费用;成本","ipa":"[kɔːst]","level":"A2","ex":"How much does this ticket cost?","exZh":"这张票多少钱?","rank":1297},{"id":"V-cotton","en":"cotton","zh":"棉花","more":"棉布;棉线","ipa":"[ˈkɑːtn]","level":"B1","ex":"This shirt is made of cotton.","exZh":"这件衬衫是棉做的。","rank":4623},{"id":"V-cough","en":"cough","zh":"咳嗽","more":"咳出;咳嗽声","ipa":"[kɔːf]","level":"B1","ex":"He coughed a lot during the night.","exZh":"他夜里咳得很厉害。","rank":5628},{"id":"V-count","en":"count","zh":"数数","more":"计算;认为","ipa":"[kaʊnt]","level":"A2","ex":"The child can count from one to ten.","exZh":"这孩子能从一数到十。","rank":871},{"id":"V-country","en":"country","zh":"国家","more":"乡下;国民","ipa":"[ˈkʌntri]","level":"A2","ex":"China is a very large country.","exZh":"中国是一个很大的国家。","rank":538},{"id":"V-countryside","en":"countryside","zh":"乡村","more":"农村;乡下","ipa":"[ˈkʌntrisaɪd]","level":"A2","ex":"We spent the weekend in the countryside.","exZh":"我们周末去了乡下。","rank":6812},{"id":"V-couple","en":"couple","zh":"夫妇","more":"一对;几个","ipa":"[ˈkʌpl]","level":"A2","ex":"A young couple moved in next door.","exZh":"一对年轻夫妇搬到了隔壁。","rank":500},{"id":"V-courage","en":"courage","zh":"勇气","more":"胆量","ipa":"[ˈkɜːrɪdʒ]","level":"B1","ex":"It takes courage to speak in public.","exZh":"当众讲话需要勇气。","rank":2130},{"id":"V-course","en":"course","zh":"课程","more":"过程;一道菜","ipa":"[kɔːrs]","level":"A1","ex":"I'm taking a French course this year.","exZh":"我今年在上一门法语课。","rank":217},{"id":"V-court","en":"court","zh":"法院","more":"球场;宫廷","ipa":"[kɔːrt]","level":"A2","ex":"The case will go to court next week.","exZh":"这个案子下周开庭。","rank":751},{"id":"V-cousin","en":"cousin","zh":"表兄弟姐妹","ipa":"[ˈkʌzn]","level":"A1","ex":"My cousin is coming to visit us tomorrow.","exZh":"我表姐明天要来看我们。","rank":1458},{"id":"V-cover","en":"cover","zh":"覆盖","more":"封面;盖子","ipa":"[ˈkʌvər]","level":"A1","ex":"Snow covered the whole garden last night.","exZh":"昨晚大雪盖住了整个花园。","rank":896},{"id":"V-crash","en":"crash","zh":"撞车","more":"坠毁;崩溃","ipa":"[kræʃ]","level":"B1","ex":"He crashed his bike into a tree.","exZh":"他骑着自行车撞到了树上。","rank":1963},{"id":"V-crazy","en":"crazy","zh":"疯狂的","more":"着迷的;生气的","ipa":"[ˈkreɪzi]","level":"A2","ex":"That crazy dog runs after cars every day.","exZh":"那只疯狗每天都追着汽车跑。","rank":388},{"id":"V-cream","en":"cream","zh":"奶油","more":"面霜;精华","ipa":"[kriːm]","level":"A1","ex":"Do you want cream in your coffee or just milk?","exZh":"你的咖啡要加奶油,还是只加牛奶?","rank":1650},{"id":"V-create","en":"create","zh":"创造","more":"造成;创建","ipa":"[kriˈeɪt]","level":"A2","ex":"They want to create a new game for kids.","exZh":"他们想为孩子们创造一个新游戏。","rank":1653},{"id":"V-creative","en":"creative","zh":"有创造力的","more":"创意的;创作的","ipa":"[kriˈeɪtɪv]","level":"A2","ex":"My sister is very creative and draws beautiful pictures.","exZh":"我妹妹很有创造力,画的画特别好看。","rank":4140},{"id":"V-creativity","en":"creativity","zh":"创造力","more":"创造性","ipa":"[ˌkriːeɪˈtɪvəti]","level":"A2","ex":"The teacher likes to see creativity in her students.","exZh":"这位老师喜欢看到学生身上的创造力。","rank":11728},{"id":"V-creature","en":"creature","zh":"生物","more":"动物;人","ipa":"[ˈkriːtʃər]","level":"A2","ex":"Many small creatures live under the rocks in the river.","exZh":"河里石头底下住着很多小生物。","rank":2391},{"id":"V-credit","en":"credit","zh":"信用","more":"学分;赞扬","ipa":"[ˈkredɪt]","level":"A2","ex":"I paid for the tickets with my credit card.","exZh":"我用信用卡付了票钱。","rank":1582},{"id":"V-crime","en":"crime","zh":"犯罪","more":"罪行;罪恶","ipa":"[kraɪm]","level":"A2","ex":"Stealing is a crime and you can go to prison.","exZh":"偷东西是犯罪,弄不好要坐牢。","rank":867},{"id":"V-criminal","en":"criminal","zh":"罪犯","more":"犯罪的;刑事的","ipa":"[ˈkrɪmɪnl]","level":"B1","ex":"The police caught the criminal near the train station.","exZh":"警察在火车站附近抓住了那个罪犯。","rank":1553},{"id":"V-critical","en":"critical","zh":"批评的","more":"关键的;危急的","ipa":"[ˈkrɪtɪkl]","level":"B1","ex":"She was very critical of my new idea.","exZh":"她对我的新想法批评得很厉害。","rank":3890},{"id":"V-crop","en":"crop","zh":"农作物","more":"收成;一批","ipa":"[krɑːp]","level":"B1","ex":"The farmers grow crops like rice and corn.","exZh":"农民们种水稻、玉米这类农作物。","rank":7700},{"id":"V-cross","en":"cross","zh":"穿过","more":"十字架;生气的","ipa":"[krɔːs]","level":"A2","ex":"Look both ways before you cross the road.","exZh":"过马路前要两边都看看。","rank":1238},{"id":"V-crossing","en":"crossing","zh":"十字路口","more":"人行横道;横渡","ipa":"[ˈkrɔːsɪŋ]","level":"B1","ex":"Turn left at the next crossing.","exZh":"在下一个路口向左拐。","rank":4258},{"id":"V-crossroads","en":"crossroads","zh":"十字路口","more":"关键时刻;抉择关头","ipa":"[ˈkrɔːsroʊdz]","level":"B1","ex":"The shop is just past the crossroads.","exZh":"商店就在过了十字路口的地方。","rank":13039},{"id":"V-crowd","en":"crowd","zh":"人群","more":"拥挤;一群","ipa":"[kraʊd]","level":"A2","ex":"A large crowd waited outside the stadium.","exZh":"一大群人在体育场外等着。","rank":1291},{"id":"V-crowded","en":"crowded","zh":"拥挤的","more":"挤满的","ipa":"[ˈkraʊdɪd]","level":"A2","ex":"The bus is very crowded in the morning.","exZh":"早上公交车很挤。","rank":5929},{"id":"V-cruel","en":"cruel","zh":"残酷的","more":"无情的;残忍的","ipa":"[ˈkruːəl]","level":"B1","ex":"It was cruel of him to laugh at her.","exZh":"他嘲笑她,真是太无情了。","rank":2783},{"id":"V-cruise","en":"cruise","zh":"乘船游览","more":"巡航;游轮","ipa":"[kruːz]","level":"A2","ex":"We went on a cruise to the islands.","exZh":"我们坐游轮去了那些岛。","rank":4850},{"id":"V-cry","en":"cry","zh":"哭泣","more":"喊叫;叫声","ipa":"[kraɪ]","level":"A1","ex":"The baby started to cry in the night.","exZh":"宝宝半夜里开始哭起来。","rank":1004},{"id":"V-cucumber","en":"cucumber","zh":"黄瓜","ipa":"[ˈkjuːkʌmbər]","level":"B1","ex":"She put some cucumber in the salad.","exZh":"她在沙拉里放了些黄瓜。","rank":12879},{"id":"V-cultural","en":"cultural","zh":"文化的","more":"文化上的","ipa":"[ˈkʌltʃərəl]","level":"B1","ex":"There are many cultural differences between us.","exZh":"我们之间有很多文化差异。","rank":6060},{"id":"V-culture","en":"culture","zh":"文化","more":"教养;栽培","ipa":"[ˈkʌltʃər]","level":"A1","ex":"I love learning about Chinese culture.","exZh":"我很喜欢了解中国文化。","rank":2694},{"id":"V-cup","en":"cup","zh":"杯子","more":"奖杯;一杯","ipa":"[kʌp]","level":"A1","ex":"Can I have a cup of tea?","exZh":"能给我来杯茶吗?","rank":1437},{"id":"V-cupboard","en":"cupboard","zh":"橱柜","more":"碗柜","ipa":"[ˈkʌbərd]","level":"A2","ex":"The plates are in the kitchen cupboard.","exZh":"盘子在厨房的橱柜里。","rank":7688},{"id":"V-cure","en":"cure","zh":"治愈","more":"疗法;解决办法","ipa":"[kjʊr]","level":"B1","ex":"This medicine will cure your cough in a few days.","exZh":"这药几天就能治好你的咳嗽。","rank":2420},{"id":"V-curious","en":"curious","zh":"好奇的","more":"奇怪的","ipa":"[ˈkjʊriəs]","level":"B1","ex":"The little boy was curious about the big box.","exZh":"小男孩对那个大盒子很好奇。","rank":2271},{"id":"V-curiously","en":"curiously","zh":"好奇地","more":"奇怪的是","ipa":"[ˈkjʊriəsli]","level":"B1","ex":"She looked at me curiously and asked my name.","exZh":"她好奇地看着我,问了我的名字。","rank":25856},{"id":"V-curly","en":"curly","zh":"卷曲的","more":"卷发的","ipa":"[ˈkɜːrli]","level":"B1","ex":"My sister has long curly hair.","exZh":"我妹妹留着一头长长的卷发。","rank":8274},{"id":"V-currency","en":"currency","zh":"货币","more":"通用;流通","ipa":"[ˈkɜːrənsi]","level":"B1","ex":"You need local currency when you travel abroad.","exZh":"出国旅行时你需要当地的货币。","rank":8342},{"id":"V-current","en":"current","zh":"当前的","more":"水流;电流","ipa":"[ˈkɜːrənt]","level":"B1","ex":"The current situation is much better than last year.","exZh":"现在的情况比去年好多了。","rank":2618},{"id":"V-currently","en":"currently","zh":"目前","more":"现在;眼下","ipa":"[ˈkɜːrəntli]","level":"B1","ex":"I am currently looking for a new job.","exZh":"我目前正在找新工作。","rank":3963},{"id":"V-curry","en":"curry","zh":"咖喱","more":"咖喱饭","ipa":"[ˈkɜːri]","level":"A2","ex":"We had chicken curry and rice for dinner.","exZh":"我们晚饭吃了咖喱鸡配米饭。","rank":7042},{"id":"V-curtain","en":"curtain","zh":"窗帘","more":"幕布;帷幕","ipa":"[ˈkɜːrtn]","level":"B1","ex":"Please close the curtains, it is getting dark.","exZh":"请把窗帘拉上,天快黑了。","rank":5293},{"id":"V-curve","en":"curve","zh":"曲线","more":"弯曲;弯道","ipa":"[kɜːrv]","level":"B1","ex":"Draw a curve from A to B on the paper.","exZh":"在纸上从A到B画一条曲线。","rank":8489},{"id":"V-cushion","en":"cushion","zh":"垫子","more":"坐垫;缓冲","ipa":"[ˈkʊʃn]","level":"B1","ex":"She put a soft cushion behind her back.","exZh":"她在背后垫了一个软垫子。","rank":12947},{"id":"V-custom","en":"custom","zh":"风俗","more":"习惯;海关","ipa":"[ˈkʌstəm]","level":"A2","ex":"In my country, it is a custom to eat dumplings.","exZh":"在我们国家,吃饺子是一种习俗。","rank":6380},{"id":"V-customer","en":"customer","zh":"顾客","ipa":"[ˈkʌstəmər]","level":"A2","ex":"The customer wants a cup of hot tea.","exZh":"这位顾客想要一杯热茶。","rank":2910},{"id":"V-customs","en":"customs","zh":"海关","more":"关税;风俗","ipa":"[ˈkʌstəmz]","level":"B1","ex":"We went through customs at the airport.","exZh":"我们在机场过了海关。","rank":5663},{"id":"V-cut","en":"cut","zh":"切开","more":"削减;伤口","ipa":"[kʌt]","level":"A1","ex":"Please cut the apple open for me.","exZh":"请帮我把苹果切开。","rank":463},{"id":"V-cute","en":"cute","zh":"可爱","more":"漂亮;聪明","ipa":"[kjuːt]","level":"A1","ex":"Your little dog is so cute.","exZh":"你的小狗真可爱。","rank":1025},{"id":"V-cycle","en":"cycle","zh":"循环","more":"周期;自行车","ipa":"[ˈsaɪkl]","level":"B1","ex":"The water cycle is important for all life.","exZh":"水循环对所有生命都很重要。","rank":4963},{"id":"V-cycling","en":"cycling","zh":"骑自行车","ipa":"[ˈsaɪklɪŋ]","level":"A2","ex":"I go cycling with my friends every weekend.","exZh":"我每个周末都和朋友们去骑自行车。","rank":16514},{"id":"V-dad","en":"dad","zh":"爸爸","ipa":"[dæd]","level":"A1","ex":"My dad makes breakfast for me every morning.","exZh":"我爸爸每天早上给我做早饭。","rank":220},{"id":"V-daily","en":"daily","zh":"每日的","more":"日报;日常的","ipa":"[ˈdeɪli]","level":"A2","ex":"Daily exercise is good for your health.","exZh":"每天锻炼对健康有好处。","rank":2805},{"id":"V-damage","en":"damage","zh":"损害","more":"损坏;损失","ipa":"[ˈdæmɪdʒ]","level":"B1","ex":"The storm caused a lot of damage.","exZh":"暴风雨造成了很大的损害。","rank":1806},{"id":"V-damaged","en":"damaged","zh":"损坏的","ipa":"[ˈdæmɪdʒd]","level":"B1","ex":"This box is damaged, so I can't use it.","exZh":"这个箱子坏了,所以我不能用。","rank":4201},{"id":"V-damp","en":"damp","zh":"潮湿的","more":"潮气","ipa":"[dæmp]","level":"B1","ex":"The walls in my room feel damp.","exZh":"我房间的墙壁摸起来很潮湿。","rank":10047},{"id":"V-dance","en":"dance","zh":"跳舞","more":"舞蹈;舞会","ipa":"[dæns]","level":"A1","ex":"We dance together at the party.","exZh":"我们在聚会上一起跳舞。","rank":631},{"id":"V-dancer","en":"dancer","zh":"舞蹈演员","more":"舞者;跳舞的人","ipa":"[ˈdænsər]","level":"A2","ex":"My sister is a very good dancer.","exZh":"我姐姐舞跳得很好。","rank":3700},{"id":"V-dancing","en":"dancing","zh":"跳舞","more":"舞蹈","ipa":"[ˈdænsɪŋ]","level":"A1","ex":"I love dancing with my friends.","exZh":"我喜欢和朋友们一起跳舞。","rank":1489},{"id":"V-danger","en":"danger","zh":"危险","more":"危险物;威胁","ipa":"[ˈdeɪndʒər]","level":"A2","ex":"His life was in great danger.","exZh":"他的生命处于极大的危险之中。","rank":1296},{"id":"V-dangerous","en":"dangerous","zh":"危险的","ipa":"[ˈdeɪndʒərəs]","level":"A2","ex":"It is dangerous to swim in this river.","exZh":"在这条河里游泳很危险。","rank":833},{"id":"V-dangerously","en":"dangerously","zh":"危险地","more":"不安全地","ipa":"[ˈdeɪndʒərəsli]","level":"B1","ex":"She drives dangerously in the rain.","exZh":"她雨天开车很危险。","rank":13483},{"id":"V-dark","en":"dark","zh":"黑暗的","more":"深色的;昏暗的","ipa":"[dɑːrk]","level":"A1","ex":"It is very dark outside now.","exZh":"现在外面很黑。","rank":761},{"id":"V-darkness","en":"darkness","zh":"黑暗","more":"漆黑;夜色","ipa":"[ˈdɑːrknəs]","level":"B1","ex":"We could not see anything in the darkness.","exZh":"黑暗中我们什么也看不见。","rank":2416},{"id":"V-date","en":"date","zh":"日期","more":"约会;年代","ipa":"[deɪt]","level":"A1","ex":"What is the date today?","exZh":"今天是几号?","rank":670},{"id":"V-daughter","en":"daughter","zh":"女儿","ipa":"[ˈdɔːtər]","level":"A1","ex":"My daughter is six years old.","exZh":"我女儿六岁了。","rank":442},{"id":"V-day","en":"day","zh":"一天","more":"白天;日子","ipa":"[deɪ]","level":"A1","ex":"I spent the whole day at home.","exZh":"我在家待了一整天。","rank":148},{"id":"V-dead","en":"dead","zh":"死的","more":"枯萎的;没电的","ipa":"[ded]","level":"A2","ex":"The old tree in our garden is dead.","exZh":"我们花园里的那棵老树死了。","rank":255},{"id":"V-deaf","en":"deaf","zh":"聋的","more":"听不见的","ipa":"[def]","level":"B1","ex":"He is deaf, so he cannot hear you.","exZh":"他耳朵聋了,听不见你说话。","rank":3536},{"id":"V-deal","en":"deal","zh":"交易","more":"协议;处理","ipa":"[diːl]","level":"A2","ex":"I made a good deal at the store today.","exZh":"我今天在商店买得很划算。","rank":412},{"id":"V-dear","en":"dear","zh":"亲爱的","more":"昂贵的;尊敬的","ipa":"[dɪr]","level":"A1","ex":"Hello, dear, how are you today?","exZh":"亲爱的,你今天好吗?","rank":426},{"id":"V-death","en":"death","zh":"死亡","more":"死神;去世","ipa":"[deθ]","level":"A2","ex":"His death made everyone very sad.","exZh":"他的去世让大家非常难过。","rank":385},{"id":"V-debt","en":"debt","zh":"债务","more":"欠款;人情债","ipa":"[det]","level":"B1","ex":"He is working hard to pay off his debt.","exZh":"他正努力工作还清债务。","rank":2594},{"id":"V-december","en":"December","zh":"十二月","ipa":"[dɪˈsembər]","level":"A1","ex":"My birthday is in December and it is cold.","exZh":"我的生日在十二月,那时候很冷。","rank":4686},{"id":"V-decide","en":"decide","zh":"决定","ipa":"[dɪˈsaɪd]","level":"A2","ex":"I can't decide what to eat tonight.","exZh":"我决定不了今晚吃什么。","rank":1151},{"id":"V-decision","en":"decision","zh":"决定","more":"决策;判决","ipa":"[dɪˈsɪʒn]","level":"B1","ex":"Making this decision was not easy for me.","exZh":"做出这个决定对我来说不容易。","rank":1050},{"id":"V-declare","en":"declare","zh":"宣布","more":"声明;申报","ipa":"[dɪˈkler]","level":"B1","ex":"The teacher declared the test over.","exZh":"老师宣布考试结束。","rank":5281},{"id":"V-decrease","en":"decrease","zh":"减少","more":"下降;减少量","ipa":"[dɪˈkriːs; ˈdiːkriːs]","level":"B1","ex":"The number of students decreased this year.","exZh":"今年学生人数减少了。","rank":18363},{"id":"V-deep","en":"deep","zh":"深的","more":"深刻的;深奥的","ipa":"[diːp]","level":"A2","ex":"The water is too deep for the kids.","exZh":"这水对孩子来说太深了。","rank":899},{"id":"V-deeply","en":"deeply","zh":"深深地","more":"深刻地;非常","ipa":"[ˈdiːpli]","level":"A2","ex":"I am deeply sorry for what I said.","exZh":"我对我所说的话深感抱歉。","rank":2259},{"id":"V-definitely","en":"definitely","zh":"肯定","more":"绝对;明确地","ipa":"[ˈdefɪnətli]","level":"B1","ex":"I will definitely come to your party.","exZh":"我一定会来参加你的聚会。","rank":779},{"id":"V-degree","en":"degree","zh":"程度","more":"度;学位","ipa":"[dɪˈɡriː]","level":"A2","ex":"I agree with you to some degree.","exZh":"我在某种程度上同意你。","rank":3071},{"id":"V-delay","en":"delay","zh":"延迟","more":"耽误;延期","ipa":"[dɪˈleɪ]","level":"A2","ex":"Sorry for the delay, I am on my way.","exZh":"抱歉耽误了,我马上到。","rank":4045},{"id":"V-delete","en":"delete","zh":"删除","ipa":"[dɪˈliːt]","level":"B1","ex":"Please delete that message before she sees it.","exZh":"请在她看到之前把那条消息删掉。","rank":8240},{"id":"V-delicate","en":"delicate","zh":"微妙的","more":"精致的;脆弱的","ipa":"[ˈdelɪkət]","level":"B1","ex":"This is a delicate problem, so be careful.","exZh":"这个问题很微妙,要小心处理。","rank":4275},{"id":"V-delicious","en":"delicious","zh":"美味的","ipa":"[dɪˈlɪʃəs]","level":"A1","ex":"This cake is really delicious, can I have more?","exZh":"这个蛋糕真好吃,我能再要一块吗?","rank":2017},{"id":"V-delight","en":"delight","zh":"高兴","more":"使高兴;乐事","ipa":"[dɪˈlaɪt]","level":"B1","ex":"To my delight, she said yes.","exZh":"让我高兴的是,她答应了。","rank":7349},{"id":"V-delighted","en":"delighted","zh":"高兴的","ipa":"[dɪˈlaɪtɪd]","level":"B1","ex":"I'm delighted to hear your good news.","exZh":"听到你的好消息,我很高兴。","rank":4149},{"id":"V-deliver","en":"deliver","zh":"递送","more":"交付;发表","ipa":"[dɪˈlɪvər]","level":"B1","ex":"They deliver pizza to my house every Friday.","exZh":"他们每周五都送披萨到我家。","rank":2065},{"id":"V-delivery","en":"delivery","zh":"递送","more":"分娩;演讲风格","ipa":"[dɪˈlɪvəri]","level":"B1","ex":"We offer free delivery on all orders.","exZh":"所有订单我们都免费送货。","rank":2746},{"id":"V-demand","en":"demand","zh":"要求","more":"需求","ipa":"[dɪˈmænd]","level":"B1","ex":"The workers demand better pay and shorter hours.","exZh":"工人们要求提高工资、缩短工时。","rank":2856},{"id":"V-demonstration","en":"demonstration","zh":"示范","more":"示威游行;证明","ipa":"[ˌdemənˈstreɪʃn]","level":"B1","ex":"The teacher gave a demonstration of the new app.","exZh":"老师演示了这个新应用。","rank":6701},{"id":"V-dentist","en":"dentist","zh":"牙医","ipa":"[ˈdentɪst]","level":"A2","ex":"I have to see the dentist at three.","exZh":"我三点得去看牙医。","rank":5347},{"id":"V-deny","en":"deny","zh":"否认","more":"拒绝;拒绝给予","ipa":"[dɪˈnaɪ]","level":"B1","ex":"He denied taking the money from my desk.","exZh":"他否认从我桌上拿了钱。","rank":2763},{"id":"V-depart","en":"depart","zh":"出发","more":"离开;背离","ipa":"[dɪˈpɑːrt]","level":"B1","ex":"The train departs from the station at nine.","exZh":"火车九点从车站出发。","rank":9663},{"id":"V-department","en":"department","zh":"部门","more":"系;科","ipa":"[dɪˈpɑːrtmənt]","level":"B1","ex":"She works in the sales department of a big company.","exZh":"她在一家大公司的销售部工作。","rank":1208},{"id":"V-department-store","en":"department store","zh":"百货商店","ipa":"","level":"A2","ex":"I bought this coat at a department store downtown.","exZh":"这件外套是我在市中心一家百货商店买的。","rank":1208},{"id":"V-departure","en":"departure","zh":"离开","more":"出发;背离","ipa":"[dɪˈpɑːrtʃər]","level":"B1","ex":"His departure made everyone in the office sad.","exZh":"他的离开让办公室里每个人都很伤心。","rank":6968},{"id":"V-depend","en":"depend","zh":"依赖","more":"取决于;信赖","ipa":"[dɪˈpend]","level":"A2","ex":"Children depend on their parents for food and clothes.","exZh":"孩子们的吃穿都依赖父母。","rank":5027},{"id":"V-dependent","en":"dependent","zh":"依赖的","more":"依靠的;取决于的","ipa":"[dɪˈpendənt]","level":"B1","ex":"He is still dependent on his parents for money.","exZh":"他花钱还得靠父母。","rank":10329},{"id":"V-deposit","en":"deposit","zh":"存款","more":"押金;定金","ipa":"[dɪˈpɑːzɪt]","level":"B1","ex":"He made a deposit of two thousand yuan yesterday.","exZh":"他昨天存了两千块钱。","rank":4624},{"id":"V-depressed","en":"depressed","zh":"沮丧的","more":"萧条的;忧郁的","ipa":"[dɪˈprest]","level":"B1","ex":"She felt depressed after losing her job.","exZh":"丢了工作以后,她一直很沮丧。","rank":3968},{"id":"V-depth","en":"depth","zh":"深度","more":"深处;深奥","ipa":"[depθ]","level":"B1","ex":"The depth of the pool is two meters.","exZh":"这个泳池的深度是两米。","rank":5891},{"id":"V-describe","en":"describe","zh":"描述","more":"形容;描绘","ipa":"[dɪˈskraɪb]","level":"A1","ex":"Can you describe the man you saw?","exZh":"你能说说你看到的那个男的长什么样吗?","rank":3040},{"id":"V-description","en":"description","zh":"描述","more":"说明;类型","ipa":"[dɪˈskrɪpʃn]","level":"A2","ex":"The police asked for a description of the thief.","exZh":"警方要求描述一下那个小偷的样子。","rank":4057},{"id":"V-desert","en":"desert","zh":"沙漠","more":"抛弃;荒原","ipa":"[ˈdezərt; dɪˈzɜːrt]","level":"A2","ex":"We walked across the hot desert all day.","exZh":"我们在炎热的沙漠里走了一整天。","rank":2261},{"id":"V-deserve","en":"deserve","zh":"值得","more":"应得;活该","ipa":"[dɪˈzɜːrv]","level":"B1","ex":"You deserve all the good things in life.","exZh":"你值得拥有生活中的一切美好。","rank":1361},{"id":"V-design","en":"design","zh":"设计","more":"图案;构思","ipa":"[dɪˈzaɪn]","level":"A1","ex":"She wants to design clothes for children.","exZh":"她想为孩子们设计衣服。","rank":2567},{"id":"V-designer","en":"designer","zh":"设计师","more":"设计者;谋划者","ipa":"[dɪˈzaɪnər]","level":"B1","ex":"My sister works as a fashion designer.","exZh":"我姐姐是一名时装设计师。","rank":4969},{"id":"V-desk","en":"desk","zh":"书桌","more":"办公桌;服务台","ipa":"[desk]","level":"A1","ex":"There are some books on my desk.","exZh":"我的书桌上放着几本书。","rank":1714},{"id":"V-despair","en":"despair","zh":"绝望","ipa":"[dɪˈsper]","level":"B1","ex":"He looked at the empty room in despair.","exZh":"他绝望地望着空荡荡的房间。","rank":6068},{"id":"V-desperate","en":"desperate","zh":"极度渴望","more":"绝望;不顾一切","ipa":"[ˈdespərət]","level":"B1","ex":"I was desperate for a cup of coffee.","exZh":"我当时特别想喝杯咖啡。","rank":2303},{"id":"V-dessert","en":"dessert","zh":"甜点","ipa":"[dɪˈzɜːrt]","level":"A2","ex":"We had ice cream for dessert.","exZh":"我们吃了冰淇淋当甜点。","rank":4022},{"id":"V-destination","en":"destination","zh":"目的地","more":"终点;目标","ipa":"[ˌdestɪˈneɪʃn]","level":"B1","ex":"We reached our destination after a long drive.","exZh":"开了很久的车,我们终于到了目的地。","rank":5077},{"id":"V-destroy","en":"destroy","zh":"摧毁","more":"毁坏;消灭","ipa":"[dɪˈstrɔɪ]","level":"A2","ex":"The fire destroyed the whole building.","exZh":"大火摧毁了整栋大楼。","rank":1219},{"id":"V-detail","en":"detail","zh":"细节","more":"详情;细目","ipa":"[ˈdiːteɪlˌdɪˈteɪl]","level":"A2","ex":"Please tell me every detail about the plan.","exZh":"请把计划的每个细节都告诉我。","rank":2677},{"id":"V-detective","en":"detective","zh":"侦探","more":"警探","ipa":"[dɪˈtektɪv]","level":"B1","ex":"The detective asked me a lot of questions.","exZh":"那个侦探问了我很多问题。","rank":904},{"id":"V-determine","en":"determine","zh":"决定","more":"确定;查明","ipa":"[dɪˈtɜːrmɪn]","level":"B1","ex":"We must determine the best time to leave.","exZh":"我们必须定好最佳出发时间。","rank":4641},{"id":"V-develop","en":"develop","zh":"发展","more":"开发;培养","ipa":"[dɪˈveləp]","level":"A2","ex":"The small town developed into a big city.","exZh":"这个小镇发展成了一个大城市。","rank":4477},{"id":"V-developed","en":"developed","zh":"发达的","more":"成熟的;先进的","ipa":"[dɪˈveləpt]","level":"A2","ex":"Japan is a developed country in Asia.","exZh":"日本是亚洲的一个发达国家。","rank":3346},{"id":"V-development","en":"development","zh":"发展","more":"开发;进展","ipa":"[dɪˈveləpmənt]","level":"B1","ex":"The development of the town was very slow.","exZh":"这个小镇的发展非常缓慢。","rank":3815},{"id":"V-device","en":"device","zh":"设备","more":"装置;手段","ipa":"[dɪˈvaɪs]","level":"B1","ex":"He bought a small device to clean the floor.","exZh":"他买了一个清洁地板的小设备。","rank":2564},{"id":"V-dial","en":"dial","zh":"拨号","more":"表盘;刻度盘","ipa":"[ˈdaɪəl]","level":"B1","ex":"I dialed his number, but no one answered.","exZh":"我拨了他的号码,但没人接。","rank":4930},{"id":"V-diary","en":"diary","zh":"日记","more":"日记本;记事簿","ipa":"[ˈdaɪəri]","level":"A2","ex":"She writes in her diary every night.","exZh":"她每天晚上都写日记。","rank":4328},{"id":"V-die","en":"die","zh":"死亡","more":"枯萎;消失","ipa":"[daɪ]","level":"A2","ex":"My old dog died last year.","exZh":"我的老狗去年死了。","rank":357},{"id":"V-diet","en":"diet","zh":"饮食","more":"节食;规定饮食","ipa":"[ˈdaɪət]","level":"A2","ex":"She eats a healthy diet every day.","exZh":"她每天的饮食都很健康。","rank":3735},{"id":"V-differ","en":"differ","zh":"不同","more":"有差异;意见不一","ipa":"[ˈdɪfər]","level":"B1","ex":"Our opinions differ on this matter.","exZh":"在这件事上我们的意见不一样。","rank":12572},{"id":"V-difference","en":"difference","zh":"差别","more":"差异;分歧","ipa":"[ˈdɪfrəns]","level":"A1","ex":"There is a big difference between them.","exZh":"他们之间有很大的差别。","rank":1062},{"id":"V-different","en":"different","zh":"不同的","more":"各种各样的;与众不同的","ipa":"[ˈdɪfrənt]","level":"A1","ex":"We have different ideas about the plan.","exZh":"我们对这个计划有不一样的想法。","rank":413},{"id":"V-differently","en":"differently","zh":"不同地","ipa":"[ˈdɪfrəntli]","level":"A2","ex":"She always does things differently from me.","exZh":"她做事的方式总是和我不同。","rank":3954},{"id":"V-difficult","en":"difficult","zh":"困难的","more":"难对付的;棘手的","ipa":"[ˈdɪfɪkəlt]","level":"A1","ex":"This question is too difficult for me.","exZh":"这个问题对我来说太难了。","rank":909},{"id":"V-difficulty","en":"difficulty","zh":"困难","more":"难题","ipa":"[ˈdɪfɪkəlti]","level":"A2","ex":"I had difficulty finding my keys this morning.","exZh":"今天早上我找钥匙找了半天。","rank":6339},{"id":"V-digital","en":"digital","zh":"数字的","more":"数码的","ipa":"[ˈdɪdʒɪtl]","level":"B1","ex":"I bought a new digital camera last week.","exZh":"我上周买了一台新的数码相机。","rank":6321},{"id":"V-dining-room","en":"dining room","zh":"餐厅","more":"饭厅","ipa":"","level":"A1","ex":"We eat dinner in the dining room.","exZh":"我们在餐厅吃晚饭。","rank":4835},{"id":"V-dinner","en":"dinner","zh":"晚餐","more":"正餐;宴会","ipa":"[ˈdɪnər]","level":"A1","ex":"What do you want for dinner tonight?","exZh":"你今晚想吃点什么?","rank":559},{"id":"V-direct","en":"direct","zh":"直接的","more":"直达的;执导","ipa":"[dəˈrekt; daɪˈrekt]","level":"A2","ex":"He gave a direct answer to my question.","exZh":"他直接回答了我的问题。","rank":2406},{"id":"V-direction","en":"direction","zh":"方向","more":"指导;指示","ipa":"[dəˈrekʃn; daɪˈrekʃn]","level":"A2","ex":"Which direction is the train station?","exZh":"火车站在哪个方向?","rank":2052},{"id":"V-directly","en":"directly","zh":"直接地","more":"立即;马上","ipa":"[dəˈrektli; daɪˈrektli]","level":"B1","ex":"He went directly home after work.","exZh":"他下班后直接回家了。","rank":2314},{"id":"V-director","en":"director","zh":"导演","more":"主任;负责人","ipa":"[dəˈrektər]","level":"A2","ex":"The director of the movie was very young.","exZh":"这部电影的导演很年轻。","rank":1190},{"id":"V-dirt","en":"dirt","zh":"污垢","more":"泥土;灰尘","ipa":"[dɜːrt]","level":"B1","ex":"Wash the dirt off your hands.","exZh":"把你手上的泥洗掉。","rank":2758},{"id":"V-dirty","en":"dirty","zh":"脏的","more":"下流的","ipa":"[ˈdɜːrti]","level":"A1","ex":"My new shoes are dirty now.","exZh":"我的新鞋现在脏了。","rank":1104},{"id":"V-disabled","en":"disabled","zh":"残疾的","more":"丧失能力的;已禁用的","ipa":"[dɪsˈeɪbld]","level":"B1","ex":"She works with disabled children every day.","exZh":"她每天和残疾儿童一起工作。","rank":7924},{"id":"V-disadvantage","en":"disadvantage","zh":"不利条件","more":"缺点;劣势","ipa":"[ˌdɪsədˈvæntɪdʒ]","level":"A2","ex":"Not speaking English is a big disadvantage here.","exZh":"不会说英语在这里很吃亏。","rank":16201},{"id":"V-disagree","en":"disagree","zh":"不同意","more":"有分歧;不一致","ipa":"[ˌdɪsəˈɡriː]","level":"A2","ex":"I disagree with you about this plan.","exZh":"关于这个计划,我不同意你的看法。","rank":5216},{"id":"V-disappear","en":"disappear","zh":"消失","more":"失踪;不复存在","ipa":"[ˌdɪsəˈpɪr]","level":"A2","ex":"My phone disappeared from my bag.","exZh":"我的手机从包里不见了。","rank":2237},{"id":"V-disappoint","en":"disappoint","zh":"使失望","more":"使落空;辜负","ipa":"[ˌdɪsəˈpɔɪnt]","level":"B1","ex":"I hope I didn't disappoint you.","exZh":"我希望我没有让你失望。","rank":5462},{"id":"V-disappointed","en":"disappointed","zh":"失望的","more":"沮丧的;受挫的","ipa":"[ˌdɪsəˈpɔɪntɪd]","level":"A2","ex":"I was disappointed by the movie.","exZh":"我对那部电影很失望。","rank":2672},{"id":"V-disappointing","en":"disappointing","zh":"令人失望的","more":"令人扫兴的","ipa":"[ˌdɪsəˈpɔɪntɪŋ]","level":"A2","ex":"The game was really disappointing for us.","exZh":"那场比赛真让我们失望。","rank":8549},{"id":"V-disappointment","en":"disappointment","zh":"失望","more":"令人失望的人或事;沮丧","ipa":"[ˌdɪsəˈpɔɪntmənt]","level":"B1","ex":"She couldn't hide her disappointment about the result.","exZh":"她无法掩饰对结果的失望。","rank":7039},{"id":"V-disc","en":"disc","zh":"圆盘","more":"光盘;唱片","ipa":"[dɪsk]","level":"B1","ex":"He found a small metal disc on the floor.","exZh":"他在地板上发现了一个小金属圆盘。","rank":9491},{"id":"V-disc-jockey","en":"disc jockey","zh":"唱片骑师","more":"电台音乐主持人;DJ","ipa":"","level":"B1","ex":"The disc jockey played my favorite song.","exZh":"那位唱片骑师放了我最喜欢的歌。","rank":10136},{"id":"V-disco","en":"disco","zh":"迪斯科舞厅","more":"迪斯科舞曲;迪斯科舞会","ipa":"[ˈdɪskoʊ]","level":"A2","ex":"We danced at a disco last night.","exZh":"我们昨晚在一家迪斯科舞厅跳舞。","rank":6633},{"id":"V-discount","en":"discount","zh":"折扣","more":"减价;贴现率","ipa":"[ˈdɪskaʊnt]","level":"B1","ex":"Can you give me a discount?","exZh":"你能给我打个折吗?","rank":6437},{"id":"V-discourage","en":"discourage","zh":"使气馁","more":"劝阻;阻碍","ipa":"[dɪsˈkɜːrɪdʒ]","level":"B1","ex":"Don't let one mistake discourage you from trying again.","exZh":"别因为一次失误就不敢再尝试了。","rank":19171},{"id":"V-discover","en":"discover","zh":"发现","more":"发觉","ipa":"[dɪˈskʌvər]","level":"A2","ex":"I discovered a small cafe near my house.","exZh":"我在家附近发现了一家小咖啡馆。","rank":3522},{"id":"V-discovery","en":"discovery","zh":"发现","more":"被发现的事物","ipa":"[dɪˈskʌvəri]","level":"B1","ex":"The discovery of this old letter changed his life.","exZh":"发现这封旧信改变了他的一生。","rank":4145},{"id":"V-discussion","en":"discussion","zh":"讨论","more":"商讨","ipa":"[dɪˈskʌʃn]","level":"A2","ex":"We had a long discussion about our holiday plans.","exZh":"我们围绕假期计划聊了很久。","rank":4229},{"id":"V-disease","en":"disease","zh":"疾病","more":"弊病","ipa":"[dɪˈziːz]","level":"B1","ex":"The doctor said the disease was not serious.","exZh":"医生说这种病不严重。","rank":2138},{"id":"V-disgusting","en":"disgusting","zh":"令人厌恶","more":"恶心的;糟糕的","ipa":"[dɪsˈɡʌstɪŋ]","level":"B1","ex":"The food in that place was really disgusting.","exZh":"那家店的东西真让人恶心。","rank":2158},{"id":"V-dish","en":"dish","zh":"盘子","more":"菜肴;一道菜","ipa":"[dɪʃ]","level":"A1","ex":"This dish is dirty, please wash it.","exZh":"这个盘子脏了,请洗一下。","rank":2795},{"id":"V-dishwasher","en":"dishwasher","zh":"洗碗机","more":"洗碗工","ipa":"[ˈdɪʃwɔːʃər]","level":"B1","ex":"We put all the plates in the dishwasher.","exZh":"我们把盘子都放进了洗碗机。","rank":13277},{"id":"V-disk","en":"disk","zh":"磁盘","more":"圆盘;唱片","ipa":"[dɪsk]","level":"B1","ex":"Save the file to your disk before you go.","exZh":"走之前把文件存到磁盘上。","rank":9241},{"id":"V-dislike","en":"dislike","zh":"不喜欢","more":"厌恶","ipa":"[dɪsˈlaɪk]","level":"A2","ex":"I dislike cold weather and long meetings.","exZh":"我不喜欢冷天,也不喜欢开长会。","rank":8367},{"id":"V-display","en":"display","zh":"展示","more":"显示;显示器","ipa":"[dɪˈspleɪ]","level":"A2","ex":"She displayed her photos on the wall.","exZh":"她把照片展示在墙上。","rank":4780},{"id":"V-distance","en":"distance","zh":"距离","more":"远方;疏远","ipa":"[ˈdɪstəns]","level":"B1","ex":"What is the distance between your home and school?","exZh":"从你家到学校有多远?","rank":1700},{"id":"V-distant","en":"distant","zh":"遥远的","more":"疏远的;冷漠的","ipa":"[ˈdɪstənt]","level":"B1","ex":"He lives in a distant country and rarely visits us.","exZh":"他住在一个遥远的国家,很少来看我们。","rank":3113},{"id":"V-district","en":"district","zh":"地区","more":"行政区;街区","ipa":"[ˈdɪstrɪkt]","level":"B1","ex":"This district is famous for its old buildings.","exZh":"这个地区以老建筑出名。","rank":2701},{"id":"V-disturb","en":"disturb","zh":"打扰","more":"使不安;妨碍","ipa":"[dɪˈstɜːrb]","level":"A2","ex":"Please don't disturb me while I am studying.","exZh":"我学习的时候请别打扰我。","rank":3853},{"id":"V-dive","en":"dive","zh":"跳水","more":"潜水;俯冲","ipa":"[daɪv]","level":"B1","ex":"He likes to dive into the pool.","exZh":"他喜欢跳进泳池里。","rank":4151},{"id":"V-diver","en":"diver","zh":"潜水员","more":"跳水运动员","ipa":"[ˈdaɪvər]","level":"B1","ex":"The diver jumped into the sea.","exZh":"潜水员跳进了海里。","rank":12265},{"id":"V-divide","en":"divide","zh":"分开","more":"划分;除","ipa":"[dɪˈvaɪd]","level":"A2","ex":"Let's divide the cake into four pieces.","exZh":"我们把蛋糕分成四块吧。","rank":6435},{"id":"V-diving","en":"diving","zh":"跳水","more":"潜水","ipa":"[ˈdaɪvɪŋ]","level":"B1","ex":"She is very good at diving.","exZh":"她跳水跳得特别好。","rank":6999},{"id":"V-dizzy","en":"dizzy","zh":"头晕的","more":"令人头晕的;昏乱的","ipa":"[ˈdɪzi]","level":"A2","ex":"I felt dizzy and had to sit down.","exZh":"我觉得头晕,只好坐下来。","rank":5382},{"id":"V-dj","en":"DJ","zh":"唱片骑师","more":"音乐节目主持人","ipa":"[ˈdiː dʒeɪ]","level":"B1","ex":"The DJ played my favorite song at the party.","exZh":"派对上的DJ放了我最喜欢的那首歌。","rank":6416},{"id":"V-doctor","en":"doctor","zh":"医生","more":"博士","ipa":"[ˈdɑːktər]","level":"A1","ex":"My mother is a doctor at a big hospital.","exZh":"我妈妈在一家大医院当医生。","rank":370},{"id":"V-document","en":"document","zh":"文件","more":"证件;文档","ipa":"[ˈdɑːkjumənt]","level":"B1","ex":"Please save this document before you close it.","exZh":"关掉之前请先保存这个文件。","rank":4598},{"id":"V-documentary","en":"documentary","zh":"纪录片","ipa":"[ˌdɑːkjuˈmentri]","level":"B1","ex":"We watched a documentary about wild animals last night.","exZh":"我们昨晚看了一部关于野生动物的纪录片。","rank":6745},{"id":"V-dog","en":"dog","zh":"狗","more":"尾随;缠着","ipa":"[dɔːɡ]","level":"A1","ex":"My dog likes to run in the park.","exZh":"我的狗喜欢在公园里跑。","rank":537},{"id":"V-dollar","en":"dollar","zh":"美元","ipa":"[ˈdɑːlər]","level":"A1","ex":"This shirt only costs twenty dollars.","exZh":"这件衬衫只要二十美元。","rank":2849},{"id":"V-dolphin","en":"dolphin","zh":"海豚","ipa":"[ˈdɑːlfɪn]","level":"B1","ex":"We saw a dolphin jump out of the water.","exZh":"我们看到一只海豚跃出水面。","rank":9661},{"id":"V-door","en":"door","zh":"门","more":"门口;家门","ipa":"[dɔːr]","level":"A1","ex":"Please close the door when you leave.","exZh":"你走的时候请把门关上。","rank":296},{"id":"V-dot","en":"dot","zh":"点","more":"小圆点;小数点","ipa":"[dɑːt]","level":"B1","ex":"There is a small dot on the map.","exZh":"地图上有一个小点。","rank":5966},{"id":"V-double","en":"double","zh":"两倍的","more":"双人的;成双的","ipa":"[ˈdʌbl]","level":"A2","ex":"The price is double what it was last year.","exZh":"价格是去年的两倍。","rank":1294},{"id":"V-doubt","en":"doubt","zh":"怀疑","more":"疑问;疑惑","ipa":"[daʊt]","level":"A2","ex":"I doubt he will come to the party.","exZh":"我怀疑他不会来参加聚会。","rank":1037},{"id":"V-down","en":"down","zh":"向下","more":"在下面;沿着","ipa":"[daʊn]","level":"A1","ex":"She looked down at her shoes.","exZh":"她低头看着自己的鞋子。","rank":112},{"id":"V-downstairs","en":"downstairs","zh":"在楼下","more":"楼下的","ipa":"[ˌdaʊnˈsterz]","level":"A2","ex":"My room is downstairs, next to the kitchen.","exZh":"我的房间在楼下,挨着厨房。","rank":1979},{"id":"V-downtown","en":"downtown","zh":"市中心","more":"在市中心;往市中心","ipa":"[ˌdaʊnˈtaʊn]","level":"A2","ex":"We went downtown to do some shopping.","exZh":"我们去市中心买了点东西。","rank":3361},{"id":"V-dozen","en":"dozen","zh":"一打","more":"十几个;许多","ipa":"[ˈdʌzn]","level":"B1","ex":"She bought a dozen eggs at the store.","exZh":"她在商店买了一打鸡蛋。","rank":2745},{"id":"V-drag","en":"drag","zh":"拖拽","more":"费力地移动;累人的事","ipa":"[dræɡ]","level":"B1","ex":"He dragged the heavy box across the room.","exZh":"他把那个重箱子拖过了房间。","rank":2379},{"id":"V-drama","en":"drama","zh":"戏剧","more":"戏剧性事件","ipa":"[ˈdrɑːmə]","level":"A1","ex":"We watched a funny drama on TV last night.","exZh":"我们昨晚在电视上看了一部搞笑的剧。","rank":2859},{"id":"V-dramatic","en":"dramatic","zh":"戏剧性的","more":"急剧的;引人注目的","ipa":"[drəˈmætɪk]","level":"B1","ex":"The film has a dramatic ending.","exZh":"这部电影的结局很戏剧性。","rank":2305},{"id":"V-draw","en":"draw","zh":"画画","more":"拉;吸引","ipa":"[drɔː]","level":"A1","ex":"Can you draw a cat for me?","exZh":"你能给我画一只猫吗?","rank":1686},{"id":"V-drawer","en":"drawer","zh":"抽屉","ipa":"[drɔːr]","level":"A2","ex":"My keys are in the top drawer.","exZh":"我的钥匙在最上面的抽屉里。","rank":4495},{"id":"V-drawing","en":"drawing","zh":"图画","more":"绘画;素描","ipa":"[ˈdrɔːɪŋ]","level":"A2","ex":"She showed me her drawing of a house.","exZh":"她给我看了她画的一栋房子。","rank":3079},{"id":"V-dream","en":"dream","zh":"梦想","more":"梦;做梦","ipa":"[driːm]","level":"A1","ex":"My dream is to travel around the world.","exZh":"我的梦想是环游世界。","rank":643},{"id":"V-dress","en":"dress","zh":"连衣裙","more":"穿衣;打扮","ipa":"[dres]","level":"A1","ex":"She wore a red dress to the party.","exZh":"她穿了一条红色连衣裙去参加聚会。","rank":940},{"id":"V-dressed","en":"dressed","zh":"穿好衣服","ipa":"[drest]","level":"A2","ex":"Get dressed quickly, or we will be late.","exZh":"快点穿好衣服,不然我们要迟到了。","rank":1521},{"id":"V-drink","en":"drink","zh":"饮料","more":"喝;酒","ipa":"[drɪŋk]","level":"A1","ex":"Can I have a cold drink, please?","exZh":"请给我一杯冷饮好吗?","rank":397},{"id":"V-drive","en":"drive","zh":"开车","more":"驾车;驱动器","ipa":"[draɪv]","level":"A1","ex":"I drive my son to school every morning.","exZh":"我每天早上开车送儿子上学。","rank":611},{"id":"V-driver","en":"driver","zh":"司机","more":"驾驶员;驱动程序","ipa":"[ˈdraɪvər]","level":"A1","ex":"The bus driver stopped the bus here.","exZh":"公交车司机把车停在了这里。","rank":1355},{"id":"V-driving-licence","en":"driving licence","zh":"驾照","more":"驾驶执照","ipa":"[ˈdraɪvɪŋ laɪsns]","level":"A2","ex":"I got my driving licence last week.","exZh":"我上周拿到了驾照。","rank":8219},{"id":"V-drop","en":"drop","zh":"落下","more":"下降;滴","ipa":"[drɑːp]","level":"A1","ex":"The apple dropped from the tree.","exZh":"苹果从树上掉了下来。","rank":688},{"id":"V-drown","en":"drown","zh":"淹死","more":"溺水;淹没","ipa":"[draʊn]","level":"B1","ex":"He almost drowned in the river last summer.","exZh":"去年夏天他差点在河里淹死。","rank":4526},{"id":"V-drugstore","en":"drugstore","zh":"药店","more":"杂货店","ipa":"[ˈdrʌɡstɔːr]","level":"A2","ex":"I bought some medicine at the drugstore.","exZh":"我在药店买了些药。","rank":12926},{"id":"V-dry","en":"dry","zh":"干的","more":"口渴的;枯燥的","ipa":"[draɪ]","level":"A1","ex":"My clothes are dry now, so I can wear them.","exZh":"我的衣服干了,所以我可以穿了。","rank":1615},{"id":"V-duck","en":"duck","zh":"鸭子","more":"鸭肉;躲避","ipa":"[dʌk]","level":"A2","ex":"The duck is swimming in the lake.","exZh":"那只鸭子在湖里游泳。","rank":2630},{"id":"V-due","en":"due","zh":"到期的","more":"预期的;由于","ipa":"[duː]","level":"A1","ex":"My book is due today, so I need to give it back.","exZh":"我的书今天到期,所以我需要还回去。","rank":1416},{"id":"V-dull","en":"dull","zh":"无聊的","more":"钝的;迟钝的","ipa":"[dʌl]","level":"B1","ex":"That movie was really dull, and I fell asleep.","exZh":"那部电影真的很无聊,我都睡着了。","rank":4873},{"id":"V-dust","en":"dust","zh":"灰尘","more":"尘土;掸去","ipa":"[dʌst]","level":"A2","ex":"There is a lot of dust on the table.","exZh":"桌子上有很多灰尘。","rank":2338},{"id":"V-dustbin","en":"dustbin","zh":"垃圾箱","ipa":"[ˈdʌstbɪn]","level":"B1","ex":"Please throw the paper into the dustbin.","exZh":"请把纸扔进垃圾箱。","rank":32029},{"id":"V-dusty","en":"dusty","zh":"布满灰尘的","ipa":"[ˈdʌsti]","level":"B1","ex":"The old books are dusty and need cleaning.","exZh":"这些旧书布满灰尘,需要清理。","rank":7866},{"id":"V-duty","en":"duty","zh":"责任","more":"职责;关税","ipa":"[ˈduːti]","level":"B1","ex":"It is my duty to help my parents.","exZh":"帮助父母是我的责任。","rank":1212},{"id":"V-duty-free","en":"duty-free","zh":"免税的","ipa":"[ˌduːti ˈfriː]","level":"B1","ex":"I bought some perfume at the duty-free shop.","exZh":"我在免税店买了些香水。","rank":99999},{"id":"V-duvet","en":"duvet","zh":"羽绒被","ipa":"[ˈduːveɪˌduːˈveɪ]","level":"B1","ex":"I bought a warm duvet for my bed.","exZh":"我给自己的床买了一条暖和的羽绒被。","rank":27917},{"id":"V-e-mail","en":"e-mail","zh":"电子邮件","ipa":"[ˈiː meɪl]","level":"A1","ex":"I send an e-mail to my teacher every day.","exZh":"我每天都给老师发电子邮件。","rank":4137},{"id":"V-ear","en":"ear","zh":"耳朵","more":"听力;穗","ipa":"[ɪr]","level":"A1","ex":"My left ear hurts a little today.","exZh":"我今天左耳朵有点疼。","rank":2234},{"id":"V-earache","en":"earache","zh":"耳朵痛","ipa":"[ˈɪreɪk]","level":"B1","ex":"I have an earache and I can't sleep.","exZh":"我耳朵疼,睡不着觉。","rank":99999},{"id":"V-early","en":"early","zh":"提早","more":"早期的;早的","ipa":"[ˈɜːrli]","level":"A1","ex":"I got up early to catch the bus.","exZh":"我起得很早去赶公交车。","rank":693},{"id":"V-earn","en":"earn","zh":"赚钱","more":"获得;赢得","ipa":"[ɜːrn]","level":"A2","ex":"She earns a lot of money at her new job.","exZh":"她做新工作赚了不少钱。","rank":2584},{"id":"V-earring","en":"earring","zh":"耳环","ipa":"[ˈɪrɪŋ]","level":"A2","ex":"She lost one earring at the party.","exZh":"她在聚会上丢了一只耳环。","rank":11554},{"id":"V-earth","en":"earth","zh":"地球","more":"土地;泥土","ipa":"[ɜːrθ]","level":"A2","ex":"The earth goes around the sun.","exZh":"地球绕着太阳转。","rank":596},{"id":"V-easily","en":"easily","zh":"容易地","more":"无疑地","ipa":"[ˈiːzəli]","level":"A2","ex":"She can finish the work easily today.","exZh":"她今天能轻松做完这份工作。","rank":1766},{"id":"V-east","en":"east","zh":"东方","more":"东边的;东部","ipa":"[iːst]","level":"A2","ex":"The sun rises in the east every morning.","exZh":"太阳每天早上从东方升起。","rank":1433},{"id":"V-eastern","en":"eastern","zh":"东方的","more":"东部的","ipa":"[ˈiːstərn]","level":"B1","ex":"She lives in the eastern part of the city.","exZh":"她住在城市的东部。","rank":4676},{"id":"V-easy","en":"easy","zh":"容易的","more":"轻松的;舒适的","ipa":"[ˈiːzi]","level":"A1","ex":"This book is very easy to read.","exZh":"这本书读起来很容易。","rank":407},{"id":"V-easy-going","en":"easy-going","zh":"随和的","more":"好相处的;悠闲的","ipa":"[ˌiːzi ˈɡoʊɪŋ]","level":"B1","ex":"My new teacher is easy-going and always smiles.","exZh":"我的新老师很随和,总是笑眯眯的。","rank":36658},{"id":"V-eat","en":"eat","zh":"吃","more":"用餐;侵蚀","ipa":"[iːt]","level":"A1","ex":"We usually eat dinner at seven in the evening.","exZh":"我们一般晚上七点吃晚饭。","rank":372},{"id":"V-edge","en":"edge","zh":"边缘","more":"刀刃;优势","ipa":"[edʒ]","level":"B1","ex":"Don't stand too close to the edge of the pool.","exZh":"别站得离泳池边太近。","rank":2276},{"id":"V-educate","en":"educate","zh":"教育","more":"培养;训练","ipa":"[ˈedʒukeɪt]","level":"B1","ex":"Schools should educate children to think for themselves.","exZh":"学校应该教育孩子自己动脑思考。","rank":11925},{"id":"V-effect","en":"effect","zh":"影响","more":"效果;作用","ipa":"[ɪˈfekt]","level":"A2","ex":"The new rule had a big effect on our work.","exZh":"新规定对我们的工作影响很大。","rank":2174},{"id":"V-effective","en":"effective","zh":"有效的","more":"实际的;生效的","ipa":"[ɪˈfektɪv]","level":"B1","ex":"This medicine is very effective against a bad cough.","exZh":"这种药治咳嗽很有效。","rank":4097},{"id":"V-efficient","en":"efficient","zh":"高效的","more":"效率高的;能干的","ipa":"[ɪˈfɪʃnt]","level":"B1","ex":"She is very efficient and finishes her work early.","exZh":"她做事效率很高,总能早早把活干完。","rank":6762},{"id":"V-effort","en":"effort","zh":"努力","more":"力气;尝试","ipa":"[ˈefərt]","level":"A2","ex":"Please make an effort to arrive on time today.","exZh":"今天请尽量准时到。","rank":2445},{"id":"V-egg","en":"egg","zh":"鸡蛋","more":"卵;蛋","ipa":"[eɡ]","level":"A1","ex":"I had two eggs and some bread for breakfast.","exZh":"我早饭吃了两个鸡蛋和一些面包。","rank":2322},{"id":"V-either","en":"either","zh":"两者之一","more":"也;任一","ipa":"[ˈiːðər]","level":"A1","ex":"You can take either bus to get to the station.","exZh":"这两路公交车你坐哪路都能到车站。","rank":505},{"id":"V-elbow","en":"elbow","zh":"肘部","more":"弯头;扶手","ipa":"[ˈelboʊ]","level":"B1","ex":"I hit my elbow on the door and it hurts.","exZh":"我胳膊肘撞到门上了,好疼。","rank":7786},{"id":"V-elderly","en":"elderly","zh":"年长的","more":"上了年纪的;老年人","ipa":"[ˈeldərli]","level":"A2","ex":"He often helps elderly people carry their bags home.","exZh":"他常帮上年纪的人把东西拎回家。","rank":7694},{"id":"V-election","en":"election","zh":"选举","more":"当选","ipa":"[ɪˈlekʃn]","level":"B1","ex":"The election is next month and everyone is talking about it.","exZh":"选举下个月举行,大家都在议论这件事。","rank":3275},{"id":"V-electric","en":"electric","zh":"电动的","more":"电的","ipa":"[ɪˈlektrɪk]","level":"A2","ex":"He bought an electric car last year.","exZh":"他去年买了一辆电动汽车。","rank":3257},{"id":"V-electrical","en":"electrical","zh":"电气的","more":"用电的","ipa":"[ɪˈlektrɪkl]","level":"B1","ex":"The electrical system in this building is old.","exZh":"这栋楼的电力系统很旧了。","rank":5023},{"id":"V-electricity","en":"electricity","zh":"电力","more":"电;电流","ipa":"[ɪˌlekˈtrɪsəti]","level":"B1","ex":"The electricity went off during the storm.","exZh":"暴风雨的时候停电了。","rank":3116},{"id":"V-electronic","en":"electronic","zh":"电子的","ipa":"[ɪˌlekˈtrɑːnɪk]","level":"B1","ex":"My electronic watch needs a new battery.","exZh":"我的电子表该换电池了。","rank":4569},{"id":"V-elephant","en":"elephant","zh":"大象","ipa":"[ˈelɪfənt]","level":"A2","ex":"The elephant is the largest animal on land.","exZh":"大象是陆地上最大的动物。","rank":3773},{"id":"V-elevator","en":"elevator","zh":"电梯","more":"升降机","ipa":"[ˈelɪveɪtər]","level":"A2","ex":"Take the elevator to the fifth floor.","exZh":"坐电梯到五楼。","rank":2517},{"id":"V-else","en":"else","zh":"别的","more":"否则;另外","ipa":"[els]","level":"A1","ex":"Is there anything else you want to eat?","exZh":"你还想吃点别的吗?","rank":241},{"id":"V-email","en":"email","zh":"电子邮件","ipa":"[ˈiːmeɪl]","level":"A1","ex":"I will send you an email tonight.","exZh":"我今晚给你发封邮件。","rank":5520},{"id":"V-embarrassed","en":"embarrassed","zh":"尴尬的","more":"窘迫的","ipa":"[ɪmˈbærəst]","level":"B1","ex":"I felt embarrassed when I forgot her name.","exZh":"我忘了她的名字,当时特别尴尬。","rank":2908},{"id":"V-embarrassing","en":"embarrassing","zh":"令人尴尬的","ipa":"[ɪmˈbærəsɪŋ]","level":"A2","ex":"That was an embarrassing moment for everyone.","exZh":"那一刻大家都觉得挺尴尬的。","rank":2719},{"id":"V-emergency","en":"emergency","zh":"紧急情况","more":"突发事件","ipa":"[ɪˈmɜːrdʒənsi]","level":"A2","ex":"Call this number in an emergency.","exZh":"遇到紧急情况就打这个电话。","rank":1460},{"id":"V-emotion","en":"emotion","zh":"情绪","more":"情感","ipa":"[ɪˈmoʊʃn]","level":"B1","ex":"He tried to hide his emotions from his friends.","exZh":"他尽量不让朋友们看出自己的情绪。","rank":4733},{"id":"V-emphasis","en":"emphasis","zh":"强调","more":"重点","ipa":"[ˈemfəsɪs]","level":"B1","ex":"Our teacher puts great emphasis on speaking practice.","exZh":"我们老师特别强调口语练习。","rank":16262},{"id":"V-empty","en":"empty","zh":"空的","more":"空虚的","ipa":"[ˈempti]","level":"A2","ex":"This bottle is empty, so please throw it away.","exZh":"这个瓶子是空的,请把它扔掉。","rank":1298},{"id":"V-encourage","en":"encourage","zh":"鼓励","more":"支持;促进","ipa":"[ɪnˈkɜːrɪdʒ]","level":"A2","ex":"My parents always encourage me to try new things.","exZh":"我父母总是鼓励我尝试新事物。","rank":6266},{"id":"V-end","en":"end","zh":"结束","more":"末端;尽头","ipa":"[end]","level":"A1","ex":"The meeting will end at five o'clock.","exZh":"会议五点结束。","rank":330},{"id":"V-ending","en":"ending","zh":"结局","more":"结尾","ipa":"[ˈendɪŋ]","level":"A2","ex":"I didn't like the ending of that movie.","exZh":"我不喜欢那部电影的结局。","rank":3109},{"id":"V-energetic","en":"energetic","zh":"精力充沛","more":"充满活力的","ipa":"[ˌenərˈdʒetɪk]","level":"A2","ex":"My grandpa is still very energetic at eighty.","exZh":"我爷爷八十岁了还很有活力。","rank":13193},{"id":"V-engaged","en":"engaged","zh":"订婚的","more":"忙于的;使用中的","ipa":"[ɪnˈɡeɪdʒd]","level":"B1","ex":"They got engaged last month and will get married soon.","exZh":"他们上个月订婚了,很快就要结婚。","rank":2506},{"id":"V-engine","en":"engine","zh":"发动机","more":"引擎;火车头","ipa":"[ˈendʒɪn]","level":"B1","ex":"The car's engine stopped working on the highway.","exZh":"汽车的发动机在高速上坏了。","rank":1276},{"id":"V-engineering","en":"engineering","zh":"工程学","more":"工程","ipa":"[ˌendʒɪˈnɪrɪŋ]","level":"B1","ex":"She is studying engineering at a famous university.","exZh":"她在一所名牌大学学工程。","rank":5141},{"id":"V-enjoy","en":"enjoy","zh":"享受","more":"喜欢;欣赏","ipa":"[ɪnˈdʒɔɪ]","level":"A1","ex":"I really enjoy walking in the park after work.","exZh":"我很喜欢下班后去公园散步。","rank":865},{"id":"V-enjoyable","en":"enjoyable","zh":"令人愉快的","more":"有趣的","ipa":"[ɪnˈdʒɔɪəbl]","level":"B1","ex":"The party was really enjoyable and we stayed late.","exZh":"派对很有意思,我们待到很晚。","rank":13702},{"id":"V-enormous","en":"enormous","zh":"巨大的","more":"庞大的;极大的","ipa":"[ɪˈnɔːrməs]","level":"A2","ex":"That dog is enormous and very friendly.","exZh":"那只狗很大,而且很友好。","rank":3894},{"id":"V-enough","en":"enough","zh":"足够的","more":"充足;足够","ipa":"[ɪˈnʌf]","level":"A2","ex":"I don't have enough money to buy that.","exZh":"我没有足够的钱买那个。","rank":221},{"id":"V-enter","en":"enter","zh":"进入","more":"参加;输入","ipa":"[ˈentər]","level":"A2","ex":"Please enter the room and close the door.","exZh":"请进入房间并把门关上。","rank":1754},{"id":"V-entertain","en":"entertain","zh":"招待","more":"娱乐;怀有","ipa":"[ˌentərˈteɪn]","level":"B1","ex":"We will entertain some friends this weekend.","exZh":"这个周末我们要招待一些朋友。","rank":6900},{"id":"V-entertainment","en":"entertainment","zh":"娱乐","more":"消遣;文娱","ipa":"[ˌentərˈteɪnmənt]","level":"A2","ex":"Music is my favorite kind of entertainment.","exZh":"音乐是我最喜欢的娱乐方式。","rank":4253},{"id":"V-enthusiastic","en":"enthusiastic","zh":"热情的","more":"热心的;热衷的","ipa":"[ɪnˌθuːziˈæstɪk]","level":"B1","ex":"She is very enthusiastic about learning English.","exZh":"她对学英语非常热情。","rank":10751},{"id":"V-entire","en":"entire","zh":"整个的","more":"全部的;完整的","ipa":"[ɪnˈtaɪər]","level":"B1","ex":"He ate the entire cake by himself.","exZh":"他一个人吃掉了整个蛋糕。","rank":813},{"id":"V-entrance","en":"entrance","zh":"入口","more":"进入;大门","ipa":"[ˈentrəns; ɪnˈtræns]","level":"A2","ex":"Let's meet at the main entrance of the school.","exZh":"我们在学校正门入口见吧。","rank":2968},{"id":"V-entry","en":"entry","zh":"进入","more":"入口;条目","ipa":"[ˈentri]","level":"B1","ex":"The sign says no entry for cars.","exZh":"牌子上写着汽车禁止进入。","rank":4012},{"id":"V-envelope","en":"envelope","zh":"信封","more":"封套","ipa":"[ˈenvəloʊp; ˈɑːnvəloʊp]","level":"A2","ex":"She put the letter in a white envelope.","exZh":"她把信放进一个白色信封里。","rank":4804},{"id":"V-environmental","en":"environmental","zh":"环境的","more":"环保的","ipa":"[ɪnˌvaɪrənˈmentl]","level":"B1","ex":"We should care about environmental problems.","exZh":"我们应该关心环境问题。","rank":8051},{"id":"V-envy","en":"envy","zh":"羡慕","more":"嫉妒","ipa":"[ˈenvi]","level":"A2","ex":"I envy people who can speak English well.","exZh":"我羡慕英语说得好的人。","rank":4928},{"id":"V-equal","en":"equal","zh":"相等的","more":"平等的;胜任的","ipa":"[ˈiːkwəl]","level":"B1","ex":"Two plus two is equal to four.","exZh":"二加二等于四。","rank":3194},{"id":"V-equality","en":"equality","zh":"平等","more":"相等","ipa":"[iˈkwɑːləti]","level":"B1","ex":"We all want equality between men and women.","exZh":"我们都希望男女平等。","rank":11189},{"id":"V-equipment","en":"equipment","zh":"设备","more":"器材;装备","ipa":"[ɪˈkwɪpmənt]","level":"B1","ex":"Our office needs some new equipment.","exZh":"我们办公室需要一些新设备。","rank":2467},{"id":"V-error","en":"error","zh":"错误","more":"误差;过失","ipa":"[ˈerər]","level":"A2","ex":"I made an error in my homework.","exZh":"我作业里出了一个错。","rank":4693},{"id":"V-escalator","en":"escalator","zh":"自动扶梯","ipa":"[ˈeskəleɪtər]","level":"A2","ex":"Let's take the escalator to the second floor.","exZh":"我们坐自动扶梯上二楼吧。","rank":24859},{"id":"V-escape","en":"escape","zh":"逃跑","more":"逃离;逃避","ipa":"[ɪˈskeɪp]","level":"A2","ex":"The bird tried to escape from the cage.","exZh":"那只鸟想从笼子里逃出去。","rank":1135},{"id":"V-especially","en":"especially","zh":"尤其","more":"特别;格外","ipa":"[ɪˈspeʃəli]","level":"A2","ex":"I love fruit, especially apples and oranges.","exZh":"我喜欢水果,尤其是苹果和橙子。","rank":995},{"id":"V-essential","en":"essential","zh":"必要的","more":"基本的;必不可少的","ipa":"[ɪˈsenʃl]","level":"B1","ex":"Water is essential for all living things.","exZh":"水对所有生物来说都是必需的。","rank":5587},{"id":"V-estimate","en":"estimate","zh":"估计","more":"估算;判断","ipa":"[ˈestɪmeɪt]","level":"B1","ex":"Can you estimate how much this will cost?","exZh":"你能估计一下这要花多少钱吗?","rank":8243},{"id":"V-euro","en":"Euro","zh":"欧元","ipa":"[ˈjʊroʊ]","level":"A2","ex":"I paid ten euros for this T-shirt.","exZh":"这件T恤我花了十欧元。","rank":11289},{"id":"V-even","en":"even","zh":"甚至","more":"连;更加","ipa":"[ˈiːvn]","level":"A2","ex":"He didn't even say goodbye before he left.","exZh":"他走之前甚至没说再见。","rank":133},{"id":"V-evening","en":"evening","zh":"晚上","more":"傍晚;晚会","ipa":"[ˈiːvnɪŋ]","level":"A1","ex":"We often watch TV in the evening.","exZh":"我们晚上经常看电视。","rank":640},{"id":"V-event","en":"event","zh":"事件","more":"活动;比赛项目","ipa":"[ɪˈvent]","level":"A1","ex":"The event was big news in our town.","exZh":"那件事在我们镇上是大事。","rank":1972},{"id":"V-ever","en":"ever","zh":"曾经","more":"永远;究竟","ipa":"[ˈevər]","level":"A2","ex":"Have you ever been to Beijing?","exZh":"你去过北京吗?","rank":190},{"id":"V-everywhere","en":"everywhere","zh":"到处","ipa":"[ˈevriwer]","level":"A1","ex":"I looked everywhere for my keys.","exZh":"我到处找我的钥匙。","rank":1136},{"id":"V-exact","en":"exact","zh":"确切的","more":"精确的;准确的","ipa":"[ɪɡˈzækt]","level":"B1","ex":"What is the exact time of the meeting?","exZh":"会议的确切时间是什么?","rank":2401},{"id":"V-exactly","en":"exactly","zh":"恰好","more":"确切地;正是","ipa":"[ɪɡˈzæktli]","level":"A2","ex":"The train arrived exactly at eight.","exZh":"火车正好八点到达。","rank":383},{"id":"V-examine","en":"examine","zh":"检查","more":"调查;审查","ipa":"[ɪɡˈzæmɪn]","level":"B1","ex":"The doctor will examine you in a few minutes.","exZh":"医生几分钟后给你检查。","rank":5115},{"id":"V-example","en":"example","zh":"例子","more":"榜样","ipa":"[ɪɡˈzæmpl]","level":"A1","ex":"Can you give me an example?","exZh":"你能给我举个例子吗?","rank":1542},{"id":"V-excellence","en":"excellence","zh":"优秀","more":"卓越;优点","ipa":"[ˈeksələns]","level":"B1","ex":"She won a prize for excellence in science.","exZh":"她因科学方面的优秀表现获奖。","rank":14004},{"id":"V-excellent","en":"excellent","zh":"极好的","more":"优秀的;杰出的","ipa":"[ˈeksələnt]","level":"A1","ex":"The food at this restaurant is excellent.","exZh":"这家餐厅的食物非常好。","rank":1375},{"id":"V-exchange","en":"exchange","zh":"交换","more":"交流;兑换","ipa":"[ɪksˈtʃeɪndʒ]","level":"A2","ex":"We can exchange phone numbers after class.","exZh":"我们可以在课后交换电话号码。","rank":2371},{"id":"V-exchange-rate","en":"exchange rate","zh":"汇率","ipa":"","level":"B1","ex":"What is the exchange rate for dollars today?","exZh":"今天美元的汇率是多少?","rank":2371},{"id":"V-excited","en":"excited","zh":"兴奋的","more":"激动的","ipa":"[ɪkˈsaɪtɪd]","level":"A1","ex":"I am excited about the trip tomorrow.","exZh":"我对明天的旅行感到兴奋。","rank":1315},{"id":"V-excitement","en":"excitement","zh":"兴奋","more":"激动;令人兴奋的事","ipa":"[ɪkˈsaɪtmənt]","level":"B1","ex":"The kids couldn't hide their excitement about the trip.","exZh":"孩子们对这次旅行兴奋得藏都藏不住。","rank":4596},{"id":"V-exciting","en":"exciting","zh":"令人兴奋的","more":"使人激动的","ipa":"[ɪkˈsaɪtɪŋ]","level":"A1","ex":"We had an exciting trip to the zoo.","exZh":"我们去动物园的那趟旅行真让人兴奋。","rank":1869},{"id":"V-excuse","en":"excuse","zh":"借口","more":"理由;原谅","ipa":"[ɪkˈskjuːs]","level":"A1","ex":"He always makes an excuse for missing class.","exZh":"他总为自己缺课找借口。","rank":350},{"id":"V-exercise","en":"exercise","zh":"锻炼","more":"练习;运用","ipa":"[ˈeksərsaɪz]","level":"A1","ex":"I try to exercise every morning before work.","exZh":"我尽量每天早上上班前锻炼一下。","rank":3082},{"id":"V-exhausted","en":"exhausted","zh":"精疲力尽","more":"累坏的;耗尽的","ipa":"[ɪɡˈzɔːstɪd]","level":"B1","ex":"I was exhausted after working all day.","exZh":"干了一整天活,我累得不行。","rank":3665},{"id":"V-exhibition","en":"exhibition","zh":"展览","more":"展览会;展出","ipa":"[ˌeksɪˈbɪʃn]","level":"A2","ex":"We went to an art exhibition on Sunday.","exZh":"我们周日去看了一个艺术展。","rank":7133},{"id":"V-exist","en":"exist","zh":"存在","more":"生存;活着","ipa":"[ɪɡˈzɪst]","level":"A2","ex":"Do you think ghosts really exist?","exZh":"你觉得鬼真的存在吗?","rank":1683},{"id":"V-existence","en":"existence","zh":"存在","more":"生存;生活","ipa":"[ɪɡˈzɪstəns]","level":"B1","ex":"Do you believe in the existence of aliens?","exZh":"你相信外星人是存在的吗?","rank":3404},{"id":"V-exit","en":"exit","zh":"出口","more":"退出;离开","ipa":"[ˈeksɪt; ˈeɡzɪt]","level":"B1","ex":"The exit is on the left side.","exZh":"出口在左边。","rank":3146},{"id":"V-expect","en":"expect","zh":"期待","more":"预料;指望","ipa":"[ɪkˈspekt]","level":"A2","ex":"I expect to hear from her tomorrow.","exZh":"我盼着明天能收到她的消息。","rank":796},{"id":"V-expense","en":"expense","zh":"费用","more":"开支;代价","ipa":"[ɪkˈspens]","level":"B1","ex":"The company pays all my travel expenses.","exZh":"公司承担我所有的差旅费用。","rank":6274},{"id":"V-expensive","en":"expensive","zh":"昂贵的","ipa":"[ɪkˈspensɪv]","level":"A1","ex":"This bag is too expensive for me.","exZh":"这个包对我来说太贵了。","rank":1872},{"id":"V-experience","en":"experience","zh":"经验","more":"经历;体验","ipa":"[ɪkˈspɪriəns]","level":"A2","ex":"She has a lot of experience in teaching.","exZh":"她教书很有经验。","rank":1094},{"id":"V-experienced","en":"experienced","zh":"有经验的","more":"老练的","ipa":"[ɪkˈspɪriənst]","level":"B1","ex":"He is an experienced driver.","exZh":"他是个经验丰富的司机。","rank":3674},{"id":"V-expert","en":"expert","zh":"专家","more":"行家;熟练的","ipa":"[ˈekspɜːrt]","level":"A2","ex":"She is an expert in Chinese history.","exZh":"她是中国历史方面的专家。","rank":2404},{"id":"V-explain","en":"explain","zh":"解释","more":"说明","ipa":"[ɪkˈspleɪn]","level":"A2","ex":"Can you explain this word to me?","exZh":"你能给我解释一下这个词吗?","rank":694},{"id":"V-explanation","en":"explanation","zh":"解释","more":"说明","ipa":"[ˌekspləˈneɪʃn]","level":"A2","ex":"He gave a simple explanation of the rules.","exZh":"他把规则简单地解释了一下。","rank":2772},{"id":"V-explore","en":"explore","zh":"探索","more":"探险;考察","ipa":"[ɪkˈsplɔːr]","level":"A2","ex":"Let's explore the forest this weekend.","exZh":"这个周末我们去那片森林探险吧。","rank":5620},{"id":"V-explosion","en":"explosion","zh":"爆炸","more":"爆发;激增","ipa":"[ɪkˈsploʊʒn]","level":"B1","ex":"The explosion broke all the windows.","exZh":"爆炸把窗户都震碎了。","rank":2431},{"id":"V-express","en":"express","zh":"表达","more":"快递;特快的","ipa":"[ɪkˈspres]","level":"A2","ex":"I can't express how happy I am.","exZh":"我高兴得没法形容。","rank":2884},{"id":"V-expression","en":"expression","zh":"表情","more":"表达;说法","ipa":"[ɪkˈspreʃn]","level":"A2","ex":"She had a strange expression on her face.","exZh":"她脸上的表情很奇怪。","rank":3962},{"id":"V-extend","en":"extend","zh":"延长","more":"延伸;扩大","ipa":"[ɪkˈstend]","level":"B1","ex":"We decided to extend our stay by two days.","exZh":"我们决定多待两天。","rank":6786},{"id":"V-extra","en":"extra","zh":"额外的","more":"另外的;额外费用","ipa":"[ˈekstrə]","level":"A2","ex":"Do we have any extra chairs?","exZh":"我们还有多余的椅子吗?","rank":1328},{"id":"V-extraordinary","en":"extraordinary","zh":"非凡的","more":"特别的;离奇的","ipa":"[ɪkˈstrɔːrdəneri]","level":"B1","ex":"She has an extraordinary memory for names.","exZh":"她记名字的本事特别厉害。","rank":2661},{"id":"V-extreme","en":"extreme","zh":"极端的","more":"极度的;偏激的","ipa":"[ɪkˈstriːm]","level":"B1","ex":"His ideas are too extreme for most people.","exZh":"他的想法在大多数人看来太极端了。","rank":3553},{"id":"V-extremely","en":"extremely","zh":"非常","more":"极其;极端地","ipa":"[ɪkˈstriːmli]","level":"A2","ex":"I'm extremely tired after a long day.","exZh":"忙了一整天,我累得不行。","rank":2239},{"id":"V-eye","en":"eye","zh":"眼睛","more":"视力;眼光","ipa":"[aɪ]","level":"A1","ex":"Look me in the eye and say that.","exZh":"看着我的眼睛,把刚才的话再说一遍。","rank":710},{"id":"V-face","en":"face","zh":"脸","more":"面对;表面","ipa":"[feɪs]","level":"A1","ex":"She washed her face with cold water.","exZh":"她用冷水洗了把脸。","rank":346},{"id":"V-face-to-face","en":"face-to-face","zh":"面对面","more":"当面","ipa":"[ˌfeɪs tə ˈfeɪs]","level":"B1","ex":"We finally met face-to-face after two years.","exZh":"时隔两年,我们终于见了一面。","rank":11300},{"id":"V-facility","en":"facility","zh":"设施","more":"设备","ipa":"[fəˈsɪləti]","level":"B1","ex":"The new sports facility opens next month.","exZh":"新的运动设施下个月开放。","rank":3931},{"id":"V-fact","en":"fact","zh":"事实","more":"真相;实际上","ipa":"[fækt]","level":"A2","ex":"It is a fact that the earth is round.","exZh":"地球是圆的,这是事实。","rank":542},{"id":"V-fade","en":"fade","zh":"褪色","more":"逐渐消失;凋谢","ipa":"[feɪd]","level":"B1","ex":"The blue shirt faded after a few washes.","exZh":"这件蓝衬衫洗了几次就褪色了。","rank":7126},{"id":"V-fail","en":"fail","zh":"失败","more":"不及格;出故障","ipa":"[feɪl]","level":"A2","ex":"The plan failed, so we started again.","exZh":"计划失败了,我们只好从头再来。","rank":2297},{"id":"V-failure","en":"failure","zh":"失败","more":"故障;失败的人","ipa":"[ˈfeɪljər]","level":"B1","ex":"His first try was a failure, but he kept going.","exZh":"他第一次尝试失败了,但他没有放弃。","rank":2619},{"id":"V-faint","en":"faint","zh":"微弱的","more":"昏倒;模糊的","ipa":"[feɪnt]","level":"B1","ex":"There was a faint light in the dark room.","exZh":"黑暗的房间里有一丝微弱的光。","rank":4948},{"id":"V-fair","en":"fair","zh":"公平的","more":"集市;晴朗的","ipa":"[fer]","level":"A1","ex":"The teacher tries to be fair to everyone.","exZh":"老师尽量公平对待每个人。","rank":840},{"id":"V-fairly","en":"fairly","zh":"相当地","more":"公平地","ipa":"[ˈferli]","level":"A2","ex":"The test was fairly easy for most students.","exZh":"这次考试对大多数学生来说相当容易。","rank":4443},{"id":"V-fall","en":"fall","zh":"落下","more":"跌倒;秋天","ipa":"[fɔːl]","level":"A2","ex":"The leaves fall from the trees in autumn.","exZh":"秋天树叶从树上落下。","rank":672},{"id":"V-false","en":"false","zh":"错误的","more":"虚假的;伪造的","ipa":"[fɔːls]","level":"A1","ex":"That answer is false, so please try again.","exZh":"那个答案是错的,请再试一次。","rank":2316},{"id":"V-familiar","en":"familiar","zh":"熟悉的","more":"常见的;亲近的","ipa":"[fəˈmɪliər]","level":"A2","ex":"This song sounds familiar to me.","exZh":"这首歌我听着很熟悉。","rank":1986},{"id":"V-family","en":"family","zh":"家庭","more":"家人;家族","ipa":"[ˈfæməli]","level":"A1","ex":"There are five people in my family.","exZh":"我家有五口人。","rank":270},{"id":"V-famous","en":"famous","zh":"著名的","ipa":"[ˈfeɪməs]","level":"A1","ex":"He is a famous singer in China.","exZh":"他是中国一位著名的歌手。","rank":1352},{"id":"V-fan","en":"fan","zh":"粉丝","more":"风扇;扇子","ipa":"[fæn]","level":"A1","ex":"She is a big fan of that singer.","exZh":"她是那位歌手的忠实粉丝。","rank":1740},{"id":"V-fancy","en":"fancy","zh":"花哨的","more":"高档的;想要","ipa":"[ˈfænsi]","level":"A2","ex":"He wore a fancy shirt to the party.","exZh":"他穿了一件花哨的衬衫去参加聚会。","rank":1824},{"id":"V-fantastic","en":"fantastic","zh":"极好的","more":"奇异的;难以置信的","ipa":"[fænˈtæstɪk]","level":"A2","ex":"We had a fantastic time at the beach.","exZh":"我们在海滩上玩得非常开心。","rank":1529},{"id":"V-far","en":"far","zh":"远的","more":"很;久远","ipa":"[fɑːr]","level":"A2","ex":"The school is not far from my home.","exZh":"学校离我家不远。","rank":398},{"id":"V-fare","en":"fare","zh":"车费","more":"票价;费用","ipa":"[fer]","level":"A2","ex":"How much is the bus fare to the city?","exZh":"去市里的公交车费是多少?","rank":6781},{"id":"V-farewell","en":"farewell","zh":"告别","more":"再见","ipa":"[ˌferˈwel]","level":"B1","ex":"They held a farewell party for their teacher.","exZh":"他们为老师举办了一场告别聚会。","rank":3532},{"id":"V-farming","en":"farming","zh":"农业","more":"耕作;养殖","ipa":"[ˈfɑːrmɪŋ]","level":"B1","ex":"My uncle works in farming and grows rice.","exZh":"我叔叔从事农业,种水稻。","rank":9124},{"id":"V-farmland","en":"farmland","zh":"农田","ipa":"[ˈfɑːrmlænd]","level":"B1","ex":"There is a lot of farmland near my town.","exZh":"我的镇子附近有很多农田。","rank":26156},{"id":"V-fascinate","en":"fascinate","zh":"使着迷","more":"吸引;使感兴趣","ipa":"[ˈfæsɪneɪt]","level":"B1","ex":"Old maps fascinate me for some reason.","exZh":"不知为什么,老地图让我着迷。","rank":34103},{"id":"V-fascinating","en":"fascinating","zh":"迷人的","more":"极有趣的;吸引人的","ipa":"[ˈfæsɪneɪtɪŋ]","level":"A2","ex":"Her smile is fascinating and hard to forget.","exZh":"她的微笑很迷人,让人难以忘记。","rank":3658},{"id":"V-fashion","en":"fashion","zh":"时尚","more":"时装;方式","ipa":"[ˈfæʃn]","level":"A2","ex":"She likes to read about fashion and clothes.","exZh":"她喜欢看时尚和服装方面的内容。","rank":2587},{"id":"V-fashionable","en":"fashionable","zh":"时髦的","more":"流行的;时尚的","ipa":"[ˈfæʃnəbl]","level":"B1","ex":"That coat is very fashionable this year.","exZh":"那件外套今年很时髦。","rank":12840},{"id":"V-fast","en":"fast","zh":"快的","more":"快速地;禁食","ipa":"[fæst]","level":"A1","ex":"My new bike is very fast.","exZh":"我的新自行车很快。","rank":623},{"id":"V-fasten","en":"fasten","zh":"系上","more":"扣紧;固定","ipa":"[ˈfæsn]","level":"B1","ex":"Please fasten your seat belt before we start.","exZh":"出发前请系好安全带。","rank":12691},{"id":"V-fat","en":"fat","zh":"胖的","more":"肥的;脂肪","ipa":"[fæt]","level":"A1","ex":"That cat is very fat and lazy.","exZh":"那只猫很胖,也很懒。","rank":1128},{"id":"V-father","en":"father","zh":"父亲","more":"神父;创始人","ipa":"[ˈfɑːðər]","level":"A1","ex":"My father cooks dinner every Sunday.","exZh":"我父亲每个星期天做晚饭。","rank":193},{"id":"V-fault","en":"fault","zh":"过错","more":"缺点;故障","ipa":"[fɔːlt]","level":"A2","ex":"It was my fault, so I said sorry.","exZh":"这是我的错,所以我道了歉。","rank":675},{"id":"V-favor","en":"favor","zh":"帮忙","more":"恩惠;赞成","ipa":"[ˈfeɪvər]","level":"A2","ex":"Can you do me a favor today?","exZh":"你今天能帮我一个忙吗?","rank":1185},{"id":"V-favorite","en":"favorite","zh":"最喜欢的东西","more":"最喜欢的;特别喜爱的人","ipa":"[ˈfeɪvərɪt]","level":"A1","ex":"This is my favorite song.","exZh":"这是我最喜欢的一首歌。","rank":1249},{"id":"V-favour","en":"favour","zh":"帮忙","more":"偏爱;赞同","ipa":"[ˈfeɪvər]","level":"A2","ex":"Can you do me a favour?","exZh":"你能帮我个忙吗?","rank":2932},{"id":"V-favourite","en":"favourite","zh":"最喜爱的事物","more":"最喜欢的","ipa":"[ˈfeɪvərɪt]","level":"A1","ex":"Blue is my favourite colour.","exZh":"蓝色是我最喜欢的颜色。","rank":3352},{"id":"V-fear","en":"fear","zh":"害怕","more":"恐惧;担心","ipa":"[fɪr]","level":"A2","ex":"I have a fear of heights.","exZh":"我恐高。","rank":856},{"id":"V-feast","en":"feast","zh":"盛宴","more":"节日;尽情享用","ipa":"[fiːst]","level":"B1","ex":"The family had a big feast last night.","exZh":"昨晚全家人大吃了一顿。","rank":4756},{"id":"V-feature","en":"feature","zh":"特色","more":"特征;专题节目","ipa":"[ˈfiːtʃər]","level":"A2","ex":"The best feature of this phone is the camera.","exZh":"这款手机最大的特色是摄像头。","rank":6388},{"id":"V-february","en":"February","zh":"二月","ipa":"[ˈfebrueri]","level":"A1","ex":"My birthday is in February.","exZh":"我的生日在二月。","rank":5510},{"id":"V-fee","en":"fee","zh":"费用","more":"酬金;会费","ipa":"[fiː]","level":"A2","ex":"The school fee is very high.","exZh":"学费很高。","rank":4444},{"id":"V-feed","en":"feed","zh":"喂养","more":"饲料;进食","ipa":"[fiːd]","level":"A1","ex":"I feed my cat twice a day.","exZh":"我一天喂猫两次。","rank":1562},{"id":"V-feel","en":"feel","zh":"觉得","more":"感觉;摸起来","ipa":"[fiːl]","level":"A1","ex":"I feel happy when I see you.","exZh":"看到你我就觉得开心。","rank":191},{"id":"V-feeling","en":"feeling","zh":"感觉","more":"感情;心情","ipa":"[ˈfiːlɪŋ]","level":"A1","ex":"I had a strange feeling last night.","exZh":"昨晚我有种奇怪的感觉。","rank":552},{"id":"V-female","en":"female","zh":"女性的","more":"雌性的;女性","ipa":"[ˈfiːmeɪl]","level":"A2","ex":"The female doctor is very kind.","exZh":"那位女医生很和善。","rank":1620},{"id":"V-fence","en":"fence","zh":"栅栏","more":"篱笆;击剑","ipa":"[fens]","level":"A2","ex":"The fence around the garden is made of wood.","exZh":"花园周围的栅栏是木头做的。","rank":3417},{"id":"V-ferry","en":"ferry","zh":"渡船","more":"渡口;运送","ipa":"[ˈferi]","level":"B1","ex":"We took the ferry to cross the river.","exZh":"我们坐渡船过河。","rank":7328},{"id":"V-festival","en":"festival","zh":"节日","more":"节庆;音乐节","ipa":"[ˈfestɪvl]","level":"A1","ex":"We sing and dance at the festival.","exZh":"我们在节日里唱歌跳舞。","rank":3314},{"id":"V-festive","en":"festive","zh":"节日的","more":"喜庆的;欢乐的","ipa":"[ˈfestɪv]","level":"B1","ex":"The streets look festive at Christmas.","exZh":"圣诞节时街上很有节日气氛。","rank":14251},{"id":"V-fetch","en":"fetch","zh":"取来","more":"接来","ipa":"[fetʃ]","level":"B1","ex":"Can you fetch me a glass of water?","exZh":"你能去给我拿杯水来吗?","rank":3279},{"id":"V-fever","en":"fever","zh":"发烧","more":"狂热","ipa":"[ˈfiːvər]","level":"A1","ex":"She has a fever and cannot go to school.","exZh":"她发烧了,不能去学校。","rank":2834},{"id":"V-fiction","en":"fiction","zh":"小说","more":"虚构;杜撰","ipa":"[ˈfɪkʃn]","level":"A2","ex":"I like reading fiction before I go to sleep.","exZh":"我喜欢睡觉前读小说。","rank":5990},{"id":"V-fifth","en":"fifth","zh":"第五","more":"五分之一","ipa":"[fɪfθ]","level":"B1","ex":"She is the fifth person in line.","exZh":"她是队伍里的第五个人。","rank":2958},{"id":"V-figure","en":"figure","zh":"数字","more":"人物;图形","ipa":"[ˈfɪɡjər]","level":"A2","ex":"Look at the figures on the paper.","exZh":"看纸上的这些数字。","rank":713},{"id":"V-fill","en":"fill","zh":"装满","more":"填写;充满","ipa":"[fɪl]","level":"A1","ex":"Please fill the bottle with water.","exZh":"请把瓶子装满水。","rank":1593},{"id":"V-film","en":"film","zh":"电影","more":"胶卷;薄膜","ipa":"[fɪlm]","level":"A2","ex":"We watched a good film last night.","exZh":"我们昨晚看了一部好电影。","rank":782},{"id":"V-final","en":"final","zh":"最后的","more":"决赛;期末考试","ipa":"[ˈfaɪnl]","level":"A2","ex":"This is your final chance to win.","exZh":"这是你赢的最后机会。","rank":1131},{"id":"V-finally","en":"finally","zh":"终于","more":"最后","ipa":"[ˈfaɪnəli]","level":"A2","ex":"We waited for hours, and finally the bus came.","exZh":"我们等了几个小时,公交车终于来了。","rank":621},{"id":"V-find","en":"find","zh":"找到","more":"发现;认为","ipa":"[faɪnd]","level":"A1","ex":"I can't find my keys anywhere.","exZh":"我到处都找不到我的钥匙。","rank":144},{"id":"V-fine","en":"fine","zh":"好的","more":"罚款;晴朗的","ipa":"[faɪn]","level":"A1","ex":"Don't worry about the test, you'll be fine.","exZh":"别担心考试,你会没事的。","rank":207},{"id":"V-finger","en":"finger","zh":"手指","more":"指针","ipa":"[ˈfɪŋɡər]","level":"B1","ex":"She cut her finger on a piece of glass.","exZh":"她被一块玻璃划破了手指。","rank":1761},{"id":"V-finish","en":"finish","zh":"完成","more":"结束;用完","ipa":"[ˈfɪnɪʃ]","level":"A1","ex":"I need to finish my homework before dinner.","exZh":"我得在晚饭前写完作业。","rank":753},{"id":"V-fire","en":"fire","zh":"火","more":"解雇;开火","ipa":"[ˈfaɪər]","level":"A1","ex":"We sat by the fire and told stories.","exZh":"我们坐在火边讲故事。","rank":454},{"id":"V-fire-station","en":"fire station","zh":"消防站","ipa":"","level":"B1","ex":"The fire station is next to our school.","exZh":"消防站就在我们学校旁边。","rank":805},{"id":"V-firefighter","en":"firefighter","zh":"消防员","ipa":"[ˈfaɪərfaɪtər]","level":"B1","ex":"The firefighters put out the fire very quickly.","exZh":"消防员很快就扑灭了火。","rank":15964},{"id":"V-firework","en":"firework","zh":"烟花","ipa":"[ˈfaɪərwɜːrk]","level":"B1","ex":"We watched the fireworks over the river last night.","exZh":"昨晚我们在河边看烟花。","rank":29367},{"id":"V-firm","en":"firm","zh":"公司","more":"坚定的;牢固的","ipa":"[fɜːrm]","level":"B1","ex":"She works for a small firm in the city.","exZh":"她在城里一家小公司工作。","rank":2189},{"id":"V-first","en":"first","zh":"第一","more":"首先;最初","ipa":"[fɜːrst]","level":"A1","ex":"This is my first time in Beijing.","exZh":"这是我第一次来北京。","rank":140},{"id":"V-first-name","en":"first name","zh":"名字","ipa":"","level":"A2","ex":"Her first name is Lucy, not Mary.","exZh":"她的名字叫露西,不是玛丽。","rank":188},{"id":"V-fish","en":"fish","zh":"鱼类","more":"鱼肉;钓鱼","ipa":"[fɪʃ]","level":"A1","ex":"There are many kinds of fish in the sea.","exZh":"海里有很多种鱼。","rank":887},{"id":"V-fisherman","en":"fisherman","zh":"渔夫","ipa":"[ˈfɪʃərmən]","level":"A2","ex":"The fisherman caught a big fish this morning.","exZh":"渔夫今天早上钓到了一条大鱼。","rank":8505},{"id":"V-fishing","en":"fishing","zh":"钓鱼","more":"捕鱼;渔业","ipa":"[ˈfɪʃɪŋ]","level":"A1","ex":"My father likes fishing on Sundays.","exZh":"我爸爸喜欢在星期天钓鱼。","rank":2527},{"id":"V-fit","en":"fit","zh":"合身","more":"健康;适合","ipa":"[fɪt]","level":"A2","ex":"This shirt fits me very well.","exZh":"这件衬衫我穿很合身。","rank":1183},{"id":"V-fitness","en":"fitness","zh":"健康","more":"健身;体能","ipa":"[ˈfɪtnəs]","level":"B1","ex":"Exercise is good for your fitness.","exZh":"锻炼对你的健康有好处。","rank":12396},{"id":"V-fix","en":"fix","zh":"修理","more":"固定;解决","ipa":"[fɪks]","level":"A2","ex":"Can you fix my bike for me?","exZh":"你能帮我修一下自行车吗?","rank":924},{"id":"V-flash","en":"flash","zh":"闪光","more":"闪现;闪光灯","ipa":"[flæʃ]","level":"B1","ex":"The flash from the camera was bright.","exZh":"相机的闪光很亮。","rank":2836},{"id":"V-flat","en":"flat","zh":"公寓","more":"平的;没电的","ipa":"[flæt]","level":"A1","ex":"I live in a small flat.","exZh":"我住在一间小公寓里。","rank":1765},{"id":"V-flavor","en":"flavor","zh":"味道","more":"风味;口味","ipa":"[ˈfleɪvər]","level":"B1","ex":"This soup has a nice flavor.","exZh":"这汤味道不错。","rank":6486},{"id":"V-flavour","en":"flavour","zh":"味道","more":"风味;口味","ipa":"[ˈfleɪvər]","level":"B1","ex":"I love the flavour of fresh coffee.","exZh":"我喜欢新鲜咖啡的味道。","rank":13414},{"id":"V-flight","en":"flight","zh":"航班","more":"飞行;逃跑","ipa":"[flaɪt]","level":"A2","ex":"Our flight leaves at six tomorrow morning.","exZh":"我们的航班明天早上六点起飞。","rank":1319},{"id":"V-float","en":"float","zh":"漂浮","more":"浮动;彩车","ipa":"[floʊt]","level":"A2","ex":"The boat floats on the water.","exZh":"船漂浮在水面上。","rank":5678},{"id":"V-flood","en":"flood","zh":"洪水","more":"淹没;泛滥","ipa":"[flʌd]","level":"A2","ex":"The flood filled the streets after the storm.","exZh":"暴风雨过后,洪水灌满了街道。","rank":5358},{"id":"V-floor","en":"floor","zh":"地板","more":"楼层","ipa":"[flɔːr]","level":"A1","ex":"The children are sitting on the floor.","exZh":"孩子们坐在地板上。","rank":826},{"id":"V-flour","en":"flour","zh":"面粉","ipa":"[ˈflaʊər]","level":"A2","ex":"She needs some flour to make a cake.","exZh":"她需要一些面粉来做蛋糕。","rank":7863},{"id":"V-flow","en":"flow","zh":"流动","more":"流量;流出","ipa":"[floʊ]","level":"B1","ex":"The river flows slowly under the old bridge.","exZh":"河水在旧桥下缓缓流动。","rank":3382},{"id":"V-flower","en":"flower","zh":"花朵","more":"开花","ipa":"[ˈflaʊər]","level":"A1","ex":"I put a flower in the water.","exZh":"我把一朵花放进水里。","rank":2304},{"id":"V-flu","en":"flu","zh":"流感","ipa":"[fluː]","level":"B1","ex":"She stayed home because she had the flu.","exZh":"她得了流感,所以待在家里。","rank":5705},{"id":"V-fly","en":"fly","zh":"飞行","more":"苍蝇","ipa":"[flaɪ]","level":"A1","ex":"Birds fly high in the sky.","exZh":"鸟儿在天空中高飞。","rank":963},{"id":"V-fog","en":"fog","zh":"雾气","more":"迷惑","ipa":"[fɑːɡ]","level":"A2","ex":"There was fog on the road this morning.","exZh":"今天早上路上有雾。","rank":5704},{"id":"V-foggy","en":"foggy","zh":"有雾的","more":"模糊的","ipa":"[ˈfɑːɡi]","level":"A1","ex":"It is foggy today, so go slow.","exZh":"今天有雾,所以慢点走。","rank":15426},{"id":"V-fold","en":"fold","zh":"折叠","more":"折痕;合拢","ipa":"[foʊld]","level":"B1","ex":"Please fold your clothes and put them away.","exZh":"请把衣服叠好收起来。","rank":6019},{"id":"V-folder","en":"folder","zh":"文件夹","ipa":"[ˈfoʊldər]","level":"A2","ex":"I saved the file in a new folder.","exZh":"我把文件保存到了一个新文件夹里。","rank":12881},{"id":"V-folk","en":"folk","zh":"人们","more":"民间的;家人","ipa":"[foʊk]","level":"B1","ex":"Some folk like to walk in the park.","exZh":"有些人喜欢在公园散步。","rank":4838},{"id":"V-follow","en":"follow","zh":"跟随","more":"关注;遵循","ipa":"[ˈfɑːloʊ]","level":"A2","ex":"Follow me and I will show you the way.","exZh":"跟我来,我给你带路。","rank":636},{"id":"V-following","en":"following","zh":"接下来的","more":"下列的;下面的","ipa":"[ˈfɑːloʊɪŋ]","level":"A1","ex":"The following day, we went to the beach.","exZh":"第二天我们去了海滩。","rank":1306},{"id":"V-fond","en":"fond","zh":"喜爱的","more":"温柔的;深情的","ipa":"[fɑːnd]","level":"B1","ex":"She is very fond of cats and dogs.","exZh":"她非常喜欢猫和狗。","rank":4028},{"id":"V-food","en":"food","zh":"食物","more":"食品;养料","ipa":"[fuːd]","level":"A1","ex":"The food at this place is very good.","exZh":"这家店的食物很好吃。","rank":532},{"id":"V-fool","en":"fool","zh":"傻瓜","more":"愚弄;欺骗","ipa":"[fuːl]","level":"A2","ex":"Don't be a fool; listen to me.","exZh":"别犯傻,听我的。","rank":843},{"id":"V-foolish","en":"foolish","zh":"愚蠢的","more":"傻的","ipa":"[ˈfuːlɪʃ]","level":"B1","ex":"It was foolish to go out in the rain.","exZh":"下雨天出去真傻。","rank":3227},{"id":"V-foot","en":"foot","zh":"脚部","more":"英尺;底部","ipa":"[fʊt]","level":"B1","ex":"My left foot hurts when I walk.","exZh":"我走路时左脚疼。","rank":1156},{"id":"V-football","en":"football","zh":"足球","more":"橄榄球","ipa":"[ˈfʊtbɔːl]","level":"A1","ex":"We play football in the park after school.","exZh":"放学后我们在公园踢足球。","rank":1843},{"id":"V-footballer","en":"footballer","zh":"足球运动员","more":"橄榄球运动员","ipa":"[ˈfʊtbɔːlər]","level":"A2","ex":"My cousin wants to be a footballer.","exZh":"我表弟想当足球运动员。","rank":25093},{"id":"V-forbid","en":"forbid","zh":"禁止","more":"不准;不允许","ipa":"[fərˈbɪd]","level":"A2","ex":"The school forbids students to use phones.","exZh":"学校禁止学生用手机。","rank":4956},{"id":"V-forbidden","en":"forbidden","zh":"被禁止的","more":"严禁的","ipa":"[fərˈbɪdn]","level":"B1","ex":"Smoking is forbidden in this building.","exZh":"这栋楼里禁止吸烟。","rank":4125},{"id":"V-force","en":"force","zh":"力量","more":"武力;强迫","ipa":"[fɔːrs]","level":"A2","ex":"The force of the wind broke the window.","exZh":"风的力量打破了窗户。","rank":860},{"id":"V-forecast","en":"forecast","zh":"预测","more":"预报","ipa":"[ˈfɔːrkæst]","level":"B1","ex":"The weather forecast says it will rain tomorrow.","exZh":"天气预报说明天有雨。","rank":12579},{"id":"V-foreign","en":"foreign","zh":"外国的","more":"外来的;陌生的","ipa":"[ˈfɔːrən]","level":"A1","ex":"She likes learning foreign languages.","exZh":"她喜欢学外语。","rank":1908},{"id":"V-foreigner","en":"foreigner","zh":"外国人","ipa":"[ˈfɔːrənər]","level":"A1","ex":"Many foreigners come to China to work.","exZh":"很多外国人来中国工作。","rank":8427},{"id":"V-forest","en":"forest","zh":"森林","ipa":"[ˈfɔːrɪst]","level":"A2","ex":"We walked through the forest for two hours.","exZh":"我们在森林里走了两个小时。","rank":1874},{"id":"V-forever","en":"forever","zh":"永远","more":"老是;一直","ipa":"[fərˈevər]","level":"A2","ex":"I will love you forever.","exZh":"我会永远爱你。","rank":807},{"id":"V-forget","en":"forget","zh":"忘记","more":"忘了做","ipa":"[fərˈɡet]","level":"A1","ex":"Don't forget to call me tonight.","exZh":"别忘了今晚给我打电话。","rank":389},{"id":"V-forgive","en":"forgive","zh":"原谅","ipa":"[fərˈɡɪv]","level":"B1","ex":"Please forgive me for being late.","exZh":"对不起,我迟到了,请原谅我。","rank":774},{"id":"V-fork","en":"fork","zh":"叉子","more":"岔路;分岔","ipa":"[fɔːrk]","level":"A2","ex":"Can I have a clean fork, please?","exZh":"能给我一把干净的叉子吗?","rank":6307},{"id":"V-form","en":"form","zh":"形式","more":"表格;形成","ipa":"[fɔːrm]","level":"A1","ex":"This is a new form of music.","exZh":"这是一种新的音乐形式。","rank":1259},{"id":"V-formal","en":"formal","zh":"正式的","more":"正规的;庄重的","ipa":"[ˈfɔːrml]","level":"B1","ex":"You should wear formal clothes to the meeting.","exZh":"你开会应该穿正式的衣服。","rank":5046},{"id":"V-former","en":"former","zh":"以前的","more":"前任的","ipa":"[ˈfɔːrmər]","level":"B1","ex":"My former teacher still lives in this city.","exZh":"我以前的那位老师还住在这个城市。","rank":2282},{"id":"V-fortnight","en":"fortnight","zh":"两周","ipa":"[ˈfɔːrtnaɪt]","level":"B1","ex":"We are going on holiday for a fortnight.","exZh":"我们要去度两个星期的假。","rank":13997},{"id":"V-fortunate","en":"fortunate","zh":"幸运的","more":"侥幸的","ipa":"[ˈfɔːrtʃənət]","level":"B1","ex":"I was fortunate to find a seat on the train.","exZh":"我很幸运,在火车上找到了一个座位。","rank":5459},{"id":"V-fortunately","en":"fortunately","zh":"幸运地","more":"幸好","ipa":"[ˈfɔːrtʃənətli]","level":"A2","ex":"Fortunately, I caught the last bus home.","exZh":"幸好我赶上了回家的末班车。","rank":5136},{"id":"V-forward","en":"forward","zh":"向前地","more":"向将来;转发","ipa":"[ˈfɔːrwərd]","level":"A2","ex":"Please move forward so others can pass.","exZh":"请往前走一点,好让别人过去。","rank":930},{"id":"V-fountain","en":"fountain","zh":"喷泉","more":"源泉","ipa":"[ˈfaʊnt(ə)n]","level":"B1","ex":"The kids love playing near the fountain.","exZh":"孩子们喜欢在喷泉旁边玩。","rank":6299},{"id":"V-frame","en":"frame","zh":"框架","more":"相框;身材","ipa":"[freɪm]","level":"A2","ex":"I put our photo in a wooden frame.","exZh":"我把我们的照片放进了木相框里。","rank":3377},{"id":"V-frank","en":"frank","zh":"坦白的","more":"老实的;直言不讳的","ipa":"[fræŋk]","level":"A2","ex":"To be frank, I don't like this idea.","exZh":"说实话,我不喜欢这个主意。","rank":809},{"id":"V-free","en":"free","zh":"免费的","more":"自由的;空闲的","ipa":"[friː]","level":"A1","ex":"The museum is free for students on Sundays.","exZh":"周日的博物馆对学生免费。","rank":504},{"id":"V-freedom","en":"freedom","zh":"自由","more":"自由权;自主","ipa":"[ˈfriːdəm]","level":"A2","ex":"Everyone should have the freedom to choose.","exZh":"每个人都应该有选择的自由。","rank":1494},{"id":"V-freeze","en":"freeze","zh":"结冰","more":"冻住;冻结","ipa":"[friːz]","level":"A2","ex":"If you leave water outside, it will freeze.","exZh":"你要是把水放在外面,它会结冰的。","rank":2492},{"id":"V-freezer","en":"freezer","zh":"冰柜","more":"冷冻室","ipa":"[ˈfriːzər]","level":"B1","ex":"Put the ice cream back in the freezer.","exZh":"把冰淇淋放回冰柜里去。","rank":7316},{"id":"V-freezing","en":"freezing","zh":"冰冷的","more":"严寒的","ipa":"[ˈfriːzɪŋ]","level":"B1","ex":"It's freezing outside, so wear a warm coat.","exZh":"外面冷死了,穿件厚外套吧。","rank":4017},{"id":"V-frequent","en":"frequent","zh":"频繁的","more":"经常的","ipa":"[ˈfriːkwənt; friˈkwent]","level":"B1","ex":"He is a frequent visitor to our shop.","exZh":"他常来我们店里。","rank":10689},{"id":"V-frequently","en":"frequently","zh":"频繁地","more":"经常;时常","ipa":"[ˈfriːkwəntli]","level":"B1","ex":"She frequently goes to the gym after work.","exZh":"她下班后经常去健身房。","rank":9580},{"id":"V-fresh","en":"fresh","zh":"新鲜的","more":"清新的;淡水的","ipa":"[freʃ]","level":"A2","ex":"I bought some fresh fruit at the market.","exZh":"我在市场上买了些新鲜水果。","rank":1283},{"id":"V-friday","en":"Friday","zh":"星期五","ipa":"[ˈfraɪdeɪ]","level":"A1","ex":"We will meet again next Friday afternoon.","exZh":"我们下周五下午再见。","rank":1724},{"id":"V-fridge","en":"fridge","zh":"冰箱","ipa":"[frɪdʒ]","level":"A2","ex":"Put the milk back in the fridge, please.","exZh":"请把牛奶放回冰箱。","rank":4033},{"id":"V-fried","en":"fried","zh":"油炸的","more":"煎的","ipa":"[fraɪd]","level":"A2","ex":"We had fried chicken and rice for dinner.","exZh":"我们晚饭吃了炸鸡和米饭。","rank":4363},{"id":"V-friend","en":"friend","zh":"朋友","more":"加为好友","ipa":"[frend]","level":"A1","ex":"My best friend lives next door to me.","exZh":"我最好的朋友住在我隔壁。","rank":259},{"id":"V-friendship","en":"friendship","zh":"友谊","more":"友好的关系","ipa":"[ˈfrendʃɪp]","level":"A2","ex":"Their friendship started when they were in school.","exZh":"他们的友谊是从上学时开始的。","rank":2302},{"id":"V-frighten","en":"frighten","zh":"使害怕","more":"吓唬","ipa":"[ˈfraɪtn]","level":"A2","ex":"Don't frighten the little girl like that.","exZh":"别那样吓唬那个小女孩。","rank":6977},{"id":"V-frightened","en":"frightened","zh":"害怕的","more":"受惊的","ipa":"[ˈfraɪtnd]","level":"A2","ex":"The child was frightened by the loud noise.","exZh":"那孩子被巨大的响声吓到了。","rank":2863},{"id":"V-frightening","en":"frightening","zh":"吓人的","more":"可怕的","ipa":"[ˈfraɪtnɪŋ]","level":"A2","ex":"That was a frightening experience for everyone.","exZh":"那对大家来说是一次可怕的经历。","rank":6673},{"id":"V-front","en":"front","zh":"前面","more":"正面的;前排的","ipa":"[frʌnt]","level":"A1","ex":"There is a small garden in front of the house.","exZh":"房子前面有一个小花园。","rank":514},{"id":"V-frost","en":"frost","zh":"霜冻","more":"霜","ipa":"[frɔːst]","level":"B1","ex":"There was frost on the grass this morning.","exZh":"今天早上草地上结了霜。","rank":6850},{"id":"V-frozen","en":"frozen","zh":"冷冻的","more":"结冰的;冻僵的","ipa":"[ˈfroʊzn]","level":"B1","ex":"We bought frozen pizza for dinner tonight.","exZh":"我们今晚买了冷冻披萨当晚饭。","rank":3285},{"id":"V-fruit","en":"fruit","zh":"水果","more":"成果;果实","ipa":"[fruːt]","level":"A1","ex":"I eat fruit every morning for breakfast.","exZh":"我每天早饭都吃水果。","rank":2435},{"id":"V-fry","en":"fry","zh":"油炸","more":"煎;炒","ipa":"[fraɪ]","level":"A2","ex":"Fry the eggs in a little oil.","exZh":"放一点油把鸡蛋煎一下。","rank":5006},{"id":"V-frying-pan","en":"frying pan","zh":"平底锅","ipa":"[ˈfraɪɪŋ pæn]","level":"B1","ex":"Heat the oil in a frying pan.","exZh":"把油倒进平底锅里加热。","rank":12626},{"id":"V-fuel","en":"fuel","zh":"燃料","more":"助长;加油","ipa":"[ˈfjuːəl]","level":"B1","ex":"The car needs fuel before we leave.","exZh":"我们出发前得给车加油。","rank":3078},{"id":"V-full","en":"full","zh":"满的","more":"饱的;全部的","ipa":"[fʊl]","level":"A1","ex":"This box is full of old books.","exZh":"这个箱子里装满了旧书。","rank":525},{"id":"V-full-time","en":"full-time","zh":"全职的","more":"全日制的","ipa":"[ˌfʊl ˈtaɪm]","level":"B1","ex":"She has a full-time job at a bank.","exZh":"她在一家银行做全职工作。","rank":8693},{"id":"V-fully","en":"fully","zh":"完全地","more":"充分地;彻底地","ipa":"[ˈfʊli]","level":"A2","ex":"I fully agree with your idea.","exZh":"我完全同意你的想法。","rank":2542},{"id":"V-fun","en":"fun","zh":"乐趣","more":"有趣的;好玩的事","ipa":"[fʌn]","level":"A1","ex":"We had a lot of fun at the party.","exZh":"我们在聚会上玩得很开心。","rank":433},{"id":"V-funeral","en":"funeral","zh":"葬礼","ipa":"[ˈfjuːnərəl]","level":"B1","ex":"Many people came to the funeral.","exZh":"很多人来参加了葬礼。","rank":1841},{"id":"V-funny","en":"funny","zh":"好笑的","more":"奇怪的;滑稽的","ipa":"[ˈfʌni]","level":"A1","ex":"He told a funny story at lunch.","exZh":"他午饭时讲了个好笑的故事。","rank":547},{"id":"V-fur","en":"fur","zh":"毛皮","more":"软毛","ipa":"[fɜːr]","level":"B1","ex":"The cat has soft white fur.","exZh":"这只猫长着一身柔软的白毛。","rank":5434},{"id":"V-furnish","en":"furnish","zh":"提供","more":"布置家具","ipa":"[ˈfɜːrnɪʃ]","level":"B1","ex":"Can you furnish me with some more information?","exZh":"你能再给我提供一些信息吗?","rank":24276},{"id":"V-furniture","en":"furniture","zh":"家具","ipa":"[ˈfɜːrnɪtʃər]","level":"A2","ex":"We bought some new furniture for the living room.","exZh":"我们给客厅买了些新家具。","rank":3633},{"id":"V-further","en":"further","zh":"进一步","more":"更远的","ipa":"[ˈfɜːrðər]","level":"A2","ex":"I need further information before I decide.","exZh":"在决定之前,我还需要了解更多情况。","rank":1172},{"id":"V-future","en":"future","zh":"未来","more":"前途","ipa":"[ˈfjuːtʃər]","level":"A1","ex":"I want to be a doctor in the future.","exZh":"我将来想当医生。","rank":679},{"id":"V-gain","en":"gain","zh":"获得","more":"增加;收益","ipa":"[ɡeɪn]","level":"B1","ex":"He gained a lot of useful experience from the job.","exZh":"他从这份工作里获得了很多有用的经验。","rank":3161},{"id":"V-gallery","en":"gallery","zh":"画廊","more":"美术馆","ipa":"[ˈɡæləri]","level":"A2","ex":"We spent the morning looking around an art gallery.","exZh":"我们上午逛了一家画廊。","rank":4903},{"id":"V-game","en":"game","zh":"游戏","more":"比赛","ipa":"[ɡeɪm]","level":"A1","ex":"The children are playing a game in the garden.","exZh":"孩子们在花园里玩游戏。","rank":455},{"id":"V-gap","en":"gap","zh":"差距","more":"间隔;缺口","ipa":"[ɡæp]","level":"B1","ex":"There is a big gap between the two teams.","exZh":"这两支队伍之间差距很大。","rank":6364},{"id":"V-garage","en":"garage","zh":"车库","more":"修车厂","ipa":"[ɡəˈrɑːʒ; ɡəˈrɑːdʒ]","level":"A2","ex":"He parked his car in the garage.","exZh":"他把车停在了车库里。","rank":2451},{"id":"V-garden","en":"garden","zh":"花园","more":"菜园","ipa":"[ˈɡɑːrdn]","level":"A1","ex":"My mother plants flowers in the garden.","exZh":"我妈妈在花园里种花。","rank":1756},{"id":"V-garlic","en":"garlic","zh":"大蒜","ipa":"[ˈɡɑːrlɪk]","level":"A2","ex":"I put garlic in almost everything I cook.","exZh":"我做什么菜都放大蒜。","rank":7205},{"id":"V-garment","en":"garment","zh":"服装","more":"衣服","ipa":"[ˈɡɑːrmənt]","level":"B1","ex":"This shop sells garments for men and women.","exZh":"这家店卖男女服装。","rank":14617},{"id":"V-gas","en":"gas","zh":"气体","more":"汽油;煤气","ipa":"[ɡæs]","level":"A2","ex":"This gas smells bad, so please open the window.","exZh":"这种气体很难闻,请把窗户打开。","rank":1242},{"id":"V-gate","en":"gate","zh":"大门","more":"登机口;闸门","ipa":"[ɡeɪt]","level":"A2","ex":"Please close the gate when you leave the house.","exZh":"你出门的时候请把大门关上。","rank":1848},{"id":"V-gay","en":"gay","zh":"同性恋的","more":"快乐的","ipa":"[ɡeɪ]","level":"B1","ex":"My uncle is gay and lives in London.","exZh":"我叔叔是同性恋,他住在伦敦。","rank":1207},{"id":"V-general","en":"general","zh":"一般的","more":"将军;总的","ipa":"[ˈdʒen(ə)rəl]","level":"B1","ex":"This is a general rule for all new students.","exZh":"这是适用于所有新生的一条一般规则。","rank":734},{"id":"V-generally","en":"generally","zh":"通常","more":"普遍地;总的来说","ipa":"[ˈdʒenrəli]","level":"B1","ex":"I generally get up at seven on weekdays.","exZh":"工作日我通常七点起床。","rank":5278},{"id":"V-generation","en":"generation","zh":"一代人","more":"一代;产生","ipa":"[ˌdʒenəˈreɪʃn]","level":"A2","ex":"My grandfather's generation grew up without phones.","exZh":"我爷爷那一代人是没有手机长大的。","rank":3058},{"id":"V-generous","en":"generous","zh":"慷慨的","more":"大方的;宽厚的","ipa":"[ˈdʒenərəs]","level":"B1","ex":"My friend is very generous with his money.","exZh":"我朋友花钱特别大方。","rank":3160},{"id":"V-gentle","en":"gentle","zh":"温和的","more":"轻柔的;文雅的","ipa":"[ˈdʒentl]","level":"A2","ex":"He is very gentle with the baby.","exZh":"他对宝宝非常温柔。","rank":3128},{"id":"V-gentleman","en":"gentleman","zh":"绅士","more":"先生","ipa":"[ˈdʒent(ə)lmən]","level":"B1","ex":"He is a real gentleman and always helps others.","exZh":"他是个真正的绅士,总是帮助别人。","rank":1741},{"id":"V-get","en":"get","zh":"得到","more":"变得;到达","ipa":"[ɡet]","level":"A1","ex":"I got a present from my sister today.","exZh":"我今天从姐姐那儿得到了一份礼物。","rank":44},{"id":"V-giant","en":"giant","zh":"巨大的","more":"巨人","ipa":"[ˈdʒaɪənt]","level":"B1","ex":"They built a giant tree house in the garden.","exZh":"他们在花园里搭了一个巨大的树屋。","rank":1997},{"id":"V-gift","en":"gift","zh":"礼物","more":"天赋","ipa":"[ɡɪft]","level":"A1","ex":"This is a gift for my mother's birthday.","exZh":"这是我给妈妈买的生日礼物。","rank":1073},{"id":"V-gifted","en":"gifted","zh":"有天赋的","more":"有才华的","ipa":"[ˈɡɪftɪd]","level":"B1","ex":"She is a gifted singer and learns songs fast.","exZh":"她是个有天赋的歌手,学歌特别快。","rank":7980},{"id":"V-giraffe","en":"giraffe","zh":"长颈鹿","ipa":"[dʒəˈræf]","level":"B1","ex":"The giraffe at the zoo has a very long neck.","exZh":"动物园里那只长颈鹿的脖子特别长。","rank":13463},{"id":"V-girl","en":"girl","zh":"女孩","more":"姑娘;女儿","ipa":"[ɡɜːrl]","level":"A1","ex":"That girl in the red coat is my sister.","exZh":"那个穿红外套的女孩是我妹妹。","rank":205},{"id":"V-girlfriend","en":"girlfriend","zh":"女朋友","ipa":"[ˈɡɜːrlfrend]","level":"A1","ex":"He bought some flowers for his girlfriend.","exZh":"他给女朋友买了些花。","rank":965},{"id":"V-give","en":"give","zh":"给","more":"赠送;提供","ipa":"[ɡɪv]","level":"A1","ex":"Please give this book to your brother.","exZh":"请把这本书给你弟弟。","rank":127},{"id":"V-glad","en":"glad","zh":"高兴的","more":"乐意的","ipa":"[ɡlæd]","level":"A1","ex":"I'm glad to see you again today.","exZh":"今天又见到你,我很高兴。","rank":607},{"id":"V-glance","en":"glance","zh":"瞥一眼","more":"扫视","ipa":"[ɡlæns]","level":"B1","ex":"She glanced at her watch and left quickly.","exZh":"她瞥了一眼手表,就匆匆走了。","rank":8498},{"id":"V-glass","en":"glass","zh":"玻璃","more":"玻璃杯","ipa":"[ɡlæs]","level":"A1","ex":"The window is made of glass.","exZh":"这扇窗户是玻璃做的。","rank":1056},{"id":"V-glasses","en":"glasses","zh":"眼镜","more":"玻璃杯","ipa":"[ˈɡlæsɪz]","level":"A1","ex":"I can't read without my glasses.","exZh":"我不戴眼镜就看不了书。","rank":2038},{"id":"V-glimpse","en":"glimpse","zh":"一瞥","more":"瞥见","ipa":"[ɡlɪmps]","level":"B1","ex":"I caught a glimpse of her in the crowd.","exZh":"我在人群里瞥见了她一眼。","rank":8333},{"id":"V-glove","en":"glove","zh":"手套","ipa":"[ɡlʌv]","level":"A2","ex":"He lost one glove on the bus yesterday.","exZh":"他昨天在公交车上丢了一只手套。","rank":5688},{"id":"V-go","en":"go","zh":"去","more":"走;进行","ipa":"[ɡoʊ]","level":"A1","ex":"I go to school by bus every morning.","exZh":"我每天早上坐公交车去上学。","rank":46},{"id":"V-goal","en":"goal","zh":"目标","more":"球门;进球","ipa":"[ɡoʊl]","level":"A1","ex":"My goal is to learn English this year.","exZh":"我的目标是今年学会英语。","rank":2403},{"id":"V-golden","en":"golden","zh":"金色的","more":"金制的;宝贵的","ipa":"[ˈɡoʊldən]","level":"A2","ex":"The little girl has long golden hair.","exZh":"那个小女孩有一头金色的长发。","rank":2096},{"id":"V-golf","en":"golf","zh":"高尔夫球","ipa":"[ɡɑːlf]","level":"A2","ex":"My father plays golf every Sunday morning.","exZh":"我爸爸每周日早上都去打高尔夫球。","rank":3010},{"id":"V-good","en":"good","zh":"好的","more":"擅长的;愉快的","ipa":"[ɡʊd]","level":"A1","ex":"This is a good book for young children.","exZh":"这是一本适合小孩子看的好书。","rank":70},{"id":"V-good-looking","en":"good-looking","zh":"好看的","ipa":"[ˌɡʊd ˈlʊkɪŋ]","level":"A2","ex":"Her new boyfriend is very good-looking.","exZh":"她的新男友长得很帅。","rank":5706},{"id":"V-goods","en":"goods","zh":"商品","more":"货物","ipa":"[ɡʊdz]","level":"B1","ex":"The shop sells goods from many countries.","exZh":"这家店卖来自很多国家的商品。","rank":3351},{"id":"V-gorgeous","en":"gorgeous","zh":"漂亮极了","more":"华丽的;极好的","ipa":"[ˈɡɔːrdʒəs]","level":"B1","ex":"You look gorgeous in that red dress.","exZh":"你穿那条红裙子漂亮极了。","rank":2545},{"id":"V-grab","en":"grab","zh":"抓住","more":"抢走;拿起","ipa":"[ɡræb]","level":"B1","ex":"He grabbed my arm and pulled me away.","exZh":"他抓住我的胳膊,把我拉走了。","rank":1078},{"id":"V-graduation","en":"graduation","zh":"毕业","more":"毕业典礼","ipa":"[ˌɡrædʒuˈeɪʃn]","level":"B1","ex":"After graduation, he found a job in Shanghai.","exZh":"毕业之后,他在上海找到了工作。","rank":6126},{"id":"V-gram","en":"gram","zh":"克","ipa":"[ɡræm]","level":"A2","ex":"Add one hundred grams of sugar to the bowl.","exZh":"往碗里加一百克糖。","rank":12577},{"id":"V-gramme","en":"gramme","zh":"克","ipa":"[ɡræm]","level":"A2","ex":"This box weighs about one gramme.","exZh":"这个盒子大约重一克。","rank":99999},{"id":"V-grandchild","en":"grandchild","zh":"孙辈","more":"孙子;孙女","ipa":"[ˈɡræntʃaɪld]","level":"A2","ex":"Their first grandchild was born in May.","exZh":"他们的第一个孙辈是五月出生的。","rank":12694},{"id":"V-granddad","en":"granddad","zh":"爷爷","more":"外公","ipa":"[ˈɡrændæd]","level":"A2","ex":"My granddad tells funny stories every night.","exZh":"我爷爷每天晚上都讲好玩的故事。","rank":7769},{"id":"V-granddaughter","en":"granddaughter","zh":"孙女","more":"外孙女","ipa":"[ˈɡrændɔːtər]","level":"A2","ex":"My granddaughter is five years old now.","exZh":"我孙女现在五岁了。","rank":6531},{"id":"V-grandfather","en":"grandfather","zh":"祖父","more":"外公","ipa":"[ˈɡrænfɑːðər]","level":"A1","ex":"My grandfather likes to walk in the park.","exZh":"我爷爷喜欢在公园里散步。","rank":1929},{"id":"V-grandma","en":"grandma","zh":"奶奶","more":"外婆","ipa":"[ˈɡrænmɑː]","level":"A1","ex":"My grandma cooks dinner for us every Sunday.","exZh":"我奶奶每个星期天都给我们做晚饭。","rank":1428},{"id":"V-grandmother","en":"grandmother","zh":"祖母","more":"外婆","ipa":"[ˈɡrænmʌðər]","level":"A1","ex":"My grandmother lives in a small village.","exZh":"我奶奶住在一个小村子里。","rank":2186},{"id":"V-grandpa","en":"grandpa","zh":"爷爷","more":"外公","ipa":"[ˈɡrænpɑː]","level":"A1","ex":"Grandpa takes me to the park every morning.","exZh":"爷爷每天早上带我去公园。","rank":1549},{"id":"V-grandparent","en":"grandparent","zh":"祖父母","more":"外祖父母","ipa":"[ˈɡrænperənt]","level":"A1","ex":"My grandparent lives with us now.","exZh":"我爷爷现在和我们住在一起。","rank":47491},{"id":"V-grandson","en":"grandson","zh":"孙子","more":"外孙","ipa":"[ˈɡrænsʌn]","level":"A2","ex":"Her grandson is a doctor in Beijing.","exZh":"她孙子在北京当医生。","rank":4279},{"id":"V-granny","en":"granny","zh":"奶奶","more":"外婆;老太太","ipa":"[ˈɡræni]","level":"A2","ex":"My granny always gives me candy.","exZh":"我奶奶总是给我糖吃。","rank":3832},{"id":"V-grape","en":"grape","zh":"葡萄","ipa":"[ɡreɪp]","level":"A1","ex":"These grapes are sweet and very fresh.","exZh":"这些葡萄又甜又新鲜。","rank":10764},{"id":"V-grateful","en":"grateful","zh":"感激的","ipa":"[ˈɡreɪtfl]","level":"A2","ex":"I'm very grateful for all your help.","exZh":"非常感谢你的帮助。","rank":2238},{"id":"V-grave","en":"grave","zh":"坟墓","more":"严重的;严肃的","ipa":"[ɡreɪv; ɡrɑːv]","level":"B1","ex":"We put flowers on his grave every year.","exZh":"我们每年都去他的墓前献花。","rank":2077},{"id":"V-great","en":"great","zh":"极好的","more":"伟大的;重大的","ipa":"[ɡreɪt]","level":"A1","ex":"I think this is a great game.","exZh":"我觉得这个游戏很棒。","rank":170},{"id":"V-greedy","en":"greedy","zh":"贪婪的","more":"贪吃的;渴望的","ipa":"[ˈɡriːdi]","level":"A2","ex":"He is too greedy to share his candy.","exZh":"他太贪心了,不肯分享他的糖果。","rank":5697},{"id":"V-green","en":"green","zh":"绿色的","more":"青涩的;环保的","ipa":"[ɡriːn]","level":"A1","ex":"The tree turns green in spring.","exZh":"春天树变绿了。","rank":1022},{"id":"V-greet","en":"greet","zh":"问候","more":"迎接;致敬","ipa":"[ɡriːt]","level":"A1","ex":"I greet my teacher every morning.","exZh":"我每天早上向老师问好。","rank":5497},{"id":"V-greeting","en":"greeting","zh":"问候","more":"招呼;祝词","ipa":"[ˈɡriːtɪŋ]","level":"B1","ex":"He sent me a warm greeting on my birthday.","exZh":"我生日时他给我发来温暖的问候。","rank":8878},{"id":"V-grey","en":"grey","zh":"灰色的","more":"灰白的;阴沉的","ipa":"[ɡreɪ]","level":"A1","ex":"The sky is grey before rain.","exZh":"下雨前天空是灰色的。","rank":3577},{"id":"V-grill","en":"grill","zh":"烤架","more":"烧烤;拷问","ipa":"[ɡrɪl]","level":"B1","ex":"We cook burgers on the grill in summer.","exZh":"夏天我们在烤架上烤汉堡。","rank":7050},{"id":"V-grilled","en":"grilled","zh":"烤过的","ipa":"[ɡrɪld]","level":"A2","ex":"I ordered grilled chicken with rice and salad.","exZh":"我点了烤鸡配米饭和沙拉。","rank":10284},{"id":"V-grocery-store","en":"grocery store","zh":"杂货店","ipa":"","level":"A2","ex":"I need to stop at the grocery store after work.","exZh":"下班后我得去一趟杂货店。","rank":7121},{"id":"V-groom","en":"groom","zh":"新郎","more":"培养;打扮","ipa":"[ɡruːm]","level":"B1","ex":"The groom looked very happy at the wedding.","exZh":"婚礼上新郎看起来非常开心。","rank":4518},{"id":"V-ground","en":"ground","zh":"地面","more":"土地;场地","ipa":"[ɡraʊnd]","level":"A1","ex":"The kids sit on the ground to play.","exZh":"孩子们坐在地上玩。","rank":869},{"id":"V-ground-floor","en":"ground floor","zh":"一楼","more":"底层","ipa":"","level":"B1","ex":"My office is on the ground floor.","exZh":"我的办公室在一楼。","rank":869},{"id":"V-group","en":"group","zh":"小组","more":"群体;集团","ipa":"[ɡruːp]","level":"A1","ex":"We study English in a small group every day.","exZh":"我们每天在一个小组里学英语。","rank":851},{"id":"V-grow","en":"grow","zh":"生长","more":"成长;种植","ipa":"[ɡroʊ]","level":"A1","ex":"These flowers grow well in the sun.","exZh":"这些花在阳光下长得很好。","rank":1121},{"id":"V-growth","en":"growth","zh":"增长","more":"生长;发展","ipa":"[ɡroʊθ]","level":"B1","ex":"The company's growth was very fast last year.","exZh":"这家公司去年的增长非常快。","rank":5470},{"id":"V-guarantee","en":"guarantee","zh":"保证","more":"担保;保修","ipa":"[ˌɡærənˈtiː]","level":"B1","ex":"I can't guarantee that he will come.","exZh":"我不能保证他会来。","rank":2712},{"id":"V-guard","en":"guard","zh":"警卫","more":"守卫;看守","ipa":"[ɡɑːrd]","level":"A2","ex":"The guard stands at the door all night.","exZh":"警卫整晚都站在门口。","rank":1191},{"id":"V-guess","en":"guess","zh":"猜","more":"猜测;估计","ipa":"[ɡes]","level":"A1","ex":"Can you guess how old she is?","exZh":"你能猜出她多大吗?","rank":314},{"id":"V-guest","en":"guest","zh":"客人","more":"宾客;房客","ipa":"[ɡest]","level":"A1","ex":"We have guests for dinner tonight.","exZh":"今晚我们有客人来吃晚饭。","rank":1613},{"id":"V-guide","en":"guide","zh":"向导","more":"指南;引导","ipa":"[ɡaɪd]","level":"B1","ex":"Our guide showed us the old city.","exZh":"我们的向导带我们逛了老城区。","rank":2813},{"id":"V-guidebook","en":"guidebook","zh":"旅行指南","ipa":"[ˈɡaɪdbʊk]","level":"A2","ex":"I bought a guidebook before my trip.","exZh":"出发旅游前我买了一本旅行指南。","rank":32196},{"id":"V-guilty","en":"guilty","zh":"内疚的","more":"有罪的","ipa":"[ˈɡɪlti]","level":"B1","ex":"I feel guilty about what I said.","exZh":"我为自己说过的话感到内疚。","rank":1209},{"id":"V-guitar","en":"guitar","zh":"吉他","ipa":"[ɡɪˈtɑːr]","level":"A1","ex":"He plays the guitar every evening after work.","exZh":"他每天下班后都弹吉他。","rank":2743},{"id":"V-guitarist","en":"guitarist","zh":"吉他手","more":"吉他演奏者","ipa":"[ɡɪˈtɑːrɪst]","level":"B1","ex":"My brother is a great guitarist.","exZh":"我哥哥是个很棒的吉他手。","rank":21172},{"id":"V-guy","en":"guy","zh":"男人","more":"家伙;伙计","ipa":"[ɡaɪ]","level":"A1","ex":"That guy is my brother's best friend.","exZh":"那个男的是我哥最好的朋友。","rank":194},{"id":"V-gym","en":"gym","zh":"健身房","more":"体育馆;体育课","ipa":"[dʒɪm]","level":"B1","ex":"I go to the gym after work every day.","exZh":"我每天下班后都去健身房。","rank":2991},{"id":"V-habit","en":"habit","zh":"习惯","more":"嗜好","ipa":"[ˈhæbɪt]","level":"A1","ex":"I have a habit of drinking tea in the morning.","exZh":"我有早上喝茶的习惯。","rank":3380},{"id":"V-hair","en":"hair","zh":"头发","more":"毛发","ipa":"[her]","level":"A1","ex":"She has long black hair and a big smile.","exZh":"她留着黑色长发,笑容很好看。","rank":612},{"id":"V-haircut","en":"haircut","zh":"理发","more":"发型","ipa":"[ˈherkʌt]","level":"A1","ex":"I need a haircut before the party tonight.","exZh":"今晚聚会前我得去理个发。","rank":6131},{"id":"V-hairdresser","en":"hairdresser","zh":"理发师","more":"发型师","ipa":"[ˈherdresər]","level":"B1","ex":"My hairdresser always knows what looks good on me.","exZh":"我的理发师总是知道什么发型适合我。","rank":10854},{"id":"V-hairdryer","en":"hairdryer","zh":"吹风机","ipa":"[ˈherdraɪər]","level":"B1","ex":"I use a hairdryer every morning after I wash my hair.","exZh":"我每天早上洗完头都用吹风机。","rank":41139},{"id":"V-half","en":"half","zh":"一半","more":"半场","ipa":"[hæf]","level":"A1","ex":"Half of my friends live in another city.","exZh":"我有一半朋友住在别的城市。","rank":501},{"id":"V-half-price","en":"half-price","zh":"半价","ipa":"[ˌhæf ˈpraɪs]","level":"A2","ex":"All the shoes in this shop are half-price today.","exZh":"这家店所有的鞋今天都半价。","rank":38615},{"id":"V-hall","en":"hall","zh":"大厅","more":"走廊;礼堂","ipa":"[hɔːl]","level":"A1","ex":"We waited for her in the hotel hall.","exZh":"我们在酒店大厅等她。","rank":1394},{"id":"V-ham","en":"ham","zh":"火腿","ipa":"[hæm]","level":"A2","ex":"I'd like a ham sandwich and a cup of coffee.","exZh":"我想要一个火腿三明治和一杯咖啡。","rank":4506},{"id":"V-hamburger","en":"hamburger","zh":"汉堡包","ipa":"[ˈhæmbɜːrɡər]","level":"A1","ex":"He ordered a hamburger and fries for lunch.","exZh":"他午饭点了一个汉堡和薯条。","rank":9247},{"id":"V-hand","en":"hand","zh":"手","more":"帮助;指针","ipa":"[hænd]","level":"A1","ex":"Please wash your hands before dinner.","exZh":"吃晚饭前请先洗手。","rank":366},{"id":"V-hand-held","en":"hand-held","zh":"手持的","more":"手提式的","ipa":"[ˈhænd ˌheld]","level":"B1","ex":"My dad bought a hand-held camera for our trip.","exZh":"我爸买了个手持相机,旅游时用。","rank":43329},{"id":"V-handbag","en":"handbag","zh":"手提包","ipa":"[ˈhændbæɡ]","level":"A2","ex":"She left her handbag on the bus.","exZh":"她把手提包落在公交车上了。","rank":11501},{"id":"V-handkerchief","en":"handkerchief","zh":"手帕","ipa":"[ˈhæŋkərtʃɪf; ˈhæŋkərtʃiːf]","level":"B1","ex":"He used a handkerchief to wipe his face.","exZh":"他用手帕擦了擦脸。","rank":8591},{"id":"V-handle","en":"handle","zh":"把手","more":"处理","ipa":"[ˈhændl]","level":"A2","ex":"Turn the handle to open the door.","exZh":"转动把手就能把门打开。","rank":820},{"id":"V-handsome","en":"handsome","zh":"英俊的","more":"可观的;大方的","ipa":"[ˈhænsəm]","level":"A1","ex":"He is a very handsome young man.","exZh":"他是个非常英俊的年轻人。","rank":1734},{"id":"V-handwriting","en":"handwriting","zh":"笔迹","more":"书法;书写","ipa":"[ˈhændraɪtɪŋ]","level":"B1","ex":"Her handwriting is neat and easy to read.","exZh":"她的字写得很工整,很好认。","rank":7231},{"id":"V-handy","en":"handy","zh":"方便的","more":"手边的;有用的","ipa":"[ˈhændi]","level":"B1","ex":"This small tool is very handy in the kitchen.","exZh":"这个小工具在厨房里特别好用。","rank":5149},{"id":"V-hang","en":"hang","zh":"悬挂","more":"绞死;挂断","ipa":"[hæŋ]","level":"B1","ex":"Please hang your coat behind the door.","exZh":"请把外套挂在门后。","rank":630},{"id":"V-happen","en":"happen","zh":"发生","more":"碰巧","ipa":"[ˈhæpən]","level":"A1","ex":"Something strange happened to me last night.","exZh":"昨晚我身上发生了件怪事。","rank":394},{"id":"V-happily","en":"happily","zh":"快乐地","more":"幸福地;乐意地","ipa":"[ˈhæpɪli]","level":"A2","ex":"The children played happily in the garden all afternoon.","exZh":"孩子们在花园里开心地玩了一下午。","rank":3905},{"id":"V-happiness","en":"happiness","zh":"幸福","more":"快乐","ipa":"[ˈhæpinəs]","level":"A2","ex":"Money cannot buy true happiness in life.","exZh":"钱买不来生活中真正的幸福。","rank":1711},{"id":"V-happy","en":"happy","zh":"高兴的","more":"幸福的;满意的","ipa":"[ˈhæpi]","level":"A1","ex":"I am happy to see you today.","exZh":"今天见到你我很高兴。","rank":295},{"id":"V-harbor","en":"harbor","zh":"海港","more":"避难所;心怀","ipa":"[ˈhɑːrbər]","level":"B1","ex":"The boats are safe in the harbor.","exZh":"船停在港口里很安全。","rank":5359},{"id":"V-harbour","en":"harbour","zh":"海港","more":"避难所;心怀","ipa":"[ˈhɑːrbər]","level":"B1","ex":"The old harbour is full of small boats.","exZh":"老港口里停满了小船。","rank":9785},{"id":"V-hard","en":"hard","zh":"困难的","more":"硬的;努力的","ipa":"[hɑːrd]","level":"A1","ex":"This game is too hard for me.","exZh":"这个游戏对我来说太难了。","rank":323},{"id":"V-hard-working","en":"hard-working","zh":"勤奋的","ipa":"[ˌhɑːrd ˈwɜːrkɪŋ]","level":"B1","ex":"She is a hard-working student in our class.","exZh":"她是我们班很用功的学生。","rank":17131},{"id":"V-hardly","en":"hardly","zh":"几乎不","ipa":"[ˈhɑːrdli]","level":"A2","ex":"I can hardly hear you from here.","exZh":"我从这儿几乎听不见你说话。","rank":1455},{"id":"V-hardship","en":"hardship","zh":"艰难困苦","more":"苦难;艰辛","ipa":"[ˈhɑːrdʃɪp]","level":"B1","ex":"They lived through years of hardship together.","exZh":"他们一起熬过了多年的苦日子。","rank":12826},{"id":"V-harm","en":"harm","zh":"伤害","more":"危害;损害","ipa":"[hɑːrm]","level":"A2","ex":"Too much sun can harm your skin.","exZh":"晒太多太阳会伤到皮肤。","rank":1778},{"id":"V-hat","en":"hat","zh":"帽子","ipa":"[hæt]","level":"A1","ex":"Put on your hat before we go out.","exZh":"出门前把帽子戴上。","rank":1409},{"id":"V-hate","en":"hate","zh":"讨厌","more":"憎恨;不喜欢","ipa":"[heɪt]","level":"A2","ex":"I hate waiting in long lines.","exZh":"我讨厌排长队。","rank":531},{"id":"V-head","en":"head","zh":"头部","more":"负责人;头脑","ipa":"[hed]","level":"A1","ex":"He hit his head on the door.","exZh":"他的头撞到了门上。","rank":289},{"id":"V-headache","en":"headache","zh":"头痛","more":"麻烦事;令人头疼的事","ipa":"[ˈhedeɪk]","level":"A1","ex":"I have a bad headache this morning.","exZh":"今天早上我头疼得厉害。","rank":3755},{"id":"V-headline","en":"headline","zh":"标题","more":"头条新闻;大标题","ipa":"[ˈhedlaɪn]","level":"B1","ex":"The headline says it will rain all week.","exZh":"标题说这一周都会下雨。","rank":9939},{"id":"V-heal","en":"heal","zh":"治愈","more":"愈合;和解","ipa":"[hiːl]","level":"B1","ex":"Time can heal a broken heart.","exZh":"时间可以治愈受伤的心。","rank":3885},{"id":"V-health","en":"health","zh":"健康","more":"卫生;保健","ipa":"[helθ]","level":"A1","ex":"My health is good, so I can play.","exZh":"我身体很好,所以能去玩。","rank":1448},{"id":"V-healthy","en":"healthy","zh":"健康的","more":"有益健康的;状况良好的","ipa":"[ˈhelθi]","level":"A1","ex":"Eating fruit every day keeps you healthy.","exZh":"每天吃水果让你保持健康。","rank":2151},{"id":"V-hear","en":"hear","zh":"听见","more":"听说;倾听","ipa":"[hɪr]","level":"A1","ex":"Can you hear me from over there?","exZh":"你在那边能听见我说话吗?","rank":235},{"id":"V-heart","en":"heart","zh":"心脏","more":"内心;勇气","ipa":"[hɑːrt]","level":"A1","ex":"I can feel my heart beat.","exZh":"我能感觉到自己的心跳。","rank":358},{"id":"V-heart-attack","en":"heart attack","zh":"心脏病发作","more":"心肌梗塞","ipa":"","level":"B1","ex":"He had a heart attack and went to hospital.","exZh":"他心脏病发作,去了医院。","rank":793},{"id":"V-heat","en":"heat","zh":"热量","more":"高温;加热","ipa":"[hiːt]","level":"A2","ex":"I can feel the heat from the sun.","exZh":"我能感觉到太阳的热量。","rank":1636},{"id":"V-heater","en":"heater","zh":"加热器","more":"取暖器;暖气","ipa":"[ˈhiːtər]","level":"B1","ex":"Please turn on the heater; it's cold.","exZh":"请打开加热器,好冷。","rank":11707},{"id":"V-heating","en":"heating","zh":"暖气","more":"供暖;加热","ipa":"[ˈhiːtɪŋ]","level":"A2","ex":"The heating is not working in my flat.","exZh":"我公寓的暖气坏了。","rank":8461},{"id":"V-heavy","en":"heavy","zh":"沉重的","more":"繁重的;大量的","ipa":"[ˈhevi]","level":"A1","ex":"This box is too heavy for me.","exZh":"这个箱子对我来说太重了。","rank":1331},{"id":"V-heel","en":"heel","zh":"脚后跟","more":"鞋跟;后跟","ipa":"[hiːl]","level":"B1","ex":"My new shoes hurt my heel.","exZh":"我的新鞋磨脚后跟。","rank":7080},{"id":"V-height","en":"height","zh":"高度","more":"身高;高处","ipa":"[haɪt]","level":"B1","ex":"What is the height of that tall building?","exZh":"那栋高楼有多高?","rank":4203},{"id":"V-hello","en":"hello","zh":"你好","more":"招呼;问候","ipa":"[həˈləʊ]","level":"A1","ex":"Hello, my name is Anna. What is your name?","exZh":"你好,我叫安娜,你叫什么名字?","rank":202},{"id":"V-helmet","en":"helmet","zh":"头盔","more":"防护帽","ipa":"[ˈhelmɪt]","level":"B1","ex":"You must wear a helmet when you ride a bike.","exZh":"骑自行车的时候一定要戴头盔。","rank":4800},{"id":"V-help","en":"help","zh":"帮助","more":"帮忙;有助于","ipa":"[help]","level":"A1","ex":"Can you help me with this heavy box?","exZh":"你能帮我搬这个重箱子吗?","rank":139},{"id":"V-helpful","en":"helpful","zh":"有帮助的","more":"有用的;乐于助人的","ipa":"[ˈhelpfl]","level":"A2","ex":"Your advice was very helpful. Thank you.","exZh":"你的建议很有帮助,谢谢你。","rank":3715},{"id":"V-here","en":"here","zh":"这里","more":"在这里;这时","ipa":"[hɪr]","level":"A1","ex":"Please sit here and wait for me.","exZh":"请坐在这儿等我。","rank":40},{"id":"V-hero","en":"hero","zh":"英雄","more":"男主角;偶像","ipa":"[ˈhɪroʊˌˈhiːroʊ]","level":"A2","ex":"He is a hero to all of us.","exZh":"他是我们大家心目中的英雄。","rank":1218},{"id":"V-hesitate","en":"hesitate","zh":"犹豫","more":"迟疑;顾虑","ipa":"[ˈhezɪteɪt]","level":"B1","ex":"Don't hesitate to ask me if you need help.","exZh":"如果需要帮忙,别犹豫,尽管问我。","rank":5980},{"id":"V-hidden","en":"hidden","zh":"隐藏的","more":"隐蔽的;秘密的","ipa":"[ˈhɪdn]","level":"B1","ex":"There is a hidden door behind the bookshelf.","exZh":"书架后面有一扇隐藏的门。","rank":1863},{"id":"V-high","en":"high","zh":"高的","more":"高级的;高水平的","ipa":"[haɪ]","level":"A1","ex":"That mountain is too high for us to climb.","exZh":"那座山太高了,我们爬不上去。","rank":498},{"id":"V-hike","en":"hike","zh":"徒步","more":"远足;涨价","ipa":"[haɪk]","level":"A2","ex":"We went for a hike in the mountains yesterday.","exZh":"我们昨天去山里徒步了。","rank":7224},{"id":"V-hiking","en":"hiking","zh":"徒步旅行","more":"远足","ipa":"[ˈhaɪkɪŋ]","level":"A2","ex":"Hiking is my favorite thing to do on weekends.","exZh":"徒步是我周末最喜欢做的事。","rank":11467},{"id":"V-hill","en":"hill","zh":"小山","more":"斜坡","ipa":"[hɪl]","level":"A1","ex":"We walked up the hill to see the view.","exZh":"我们爬上小山去看风景。","rank":1868},{"id":"V-hip-hop","en":"hip hop","zh":"嘻哈音乐","more":"嘻哈文化","ipa":"","level":"A2","ex":"He listens to hip hop when he runs.","exZh":"他跑步的时候听嘻哈音乐。","rank":4060},{"id":"V-hire","en":"hire","zh":"雇用","more":"租用;聘用","ipa":"[ˈhaɪər]","level":"B1","ex":"Our school hired two new teachers.","exZh":"我们学校雇了两名新老师。","rank":2552},{"id":"V-historic","en":"historic","zh":"有历史意义的","more":"历史上著名的","ipa":"[hɪˈstɔːrɪk]","level":"B1","ex":"This is a historic day for our country.","exZh":"今天对我国来说是具有历史意义的一天。","rank":8517},{"id":"V-historical","en":"historical","zh":"历史的","more":"史学的;基于史实的","ipa":"[hɪˈstɔːrɪkl]","level":"B1","ex":"She likes reading historical novels about ancient China.","exZh":"她喜欢读关于古代中国的历史小说。","rank":6553},{"id":"V-history","en":"History","zh":"历史","more":"历史记录;来历","ipa":"[ˈhɪstri]","level":"A1","ex":"We studied Chinese history at school.","exZh":"我们上学时学过中国历史。","rank":801},{"id":"V-hit","en":"hit","zh":"击中","more":"打;撞击","ipa":"[hɪt]","level":"A2","ex":"The ball hit me in the face.","exZh":"球打在了我的脸上。","rank":405},{"id":"V-hobby","en":"hobby","zh":"爱好","more":"业余爱好","ipa":"[ˈhɑːbi]","level":"A1","ex":"My favorite hobby is playing the guitar.","exZh":"我最大的爱好是弹吉他。","rank":5979},{"id":"V-hold","en":"hold","zh":"拿着","more":"举行;容纳","ipa":"[hoʊld]","level":"A1","ex":"Can you hold my bag for a minute?","exZh":"你能帮我拿一会儿包吗?","rank":294},{"id":"V-hole","en":"hole","zh":"洞穴","more":"孔;漏洞","ipa":"[hoʊl]","level":"A1","ex":"There is a big hole in the ground.","exZh":"地上有一个大洞。","rank":1265},{"id":"V-holiday","en":"holiday","zh":"假日","more":"假期;节日","ipa":"[ˈhɑːlədeɪ]","level":"A1","ex":"We spent our holiday at the beach.","exZh":"我们在海边度过了假期。","rank":2283},{"id":"V-home","en":"home","zh":"家里","more":"家乡;住宅","ipa":"[hoʊm]","level":"A1","ex":"I left my keys at home this morning.","exZh":"今天早上我把钥匙落在家里了。","rank":167},{"id":"V-honest","en":"honest","zh":"诚实的","more":"坦率的;可靠的","ipa":"[ˈɑːnɪst]","level":"B1","ex":"She is an honest person and never tells lies.","exZh":"她是个诚实的人,从不说谎。","rank":970},{"id":"V-honestly","en":"honestly","zh":"说实话","more":"诚实地;真诚地","ipa":"[ˈɑːnɪstli]","level":"B1","ex":"Honestly, I don't know the answer.","exZh":"说实话,我不知道答案。","rank":1557},{"id":"V-honey","en":"honey","zh":"蜂蜜","more":"宝贝;亲爱的","ipa":"[ˈhʌni]","level":"A2","ex":"She put some honey in her tea.","exZh":"她在茶里加了点蜂蜜。","rank":512},{"id":"V-honeymoon","en":"honeymoon","zh":"蜜月","more":"蜜月旅行;和谐的初期","ipa":"[ˈhʌnimuːn]","level":"B1","ex":"They went to Italy for their honeymoon.","exZh":"他们去意大利度蜜月了。","rank":3887},{"id":"V-hop","en":"hop","zh":"蹦跳","more":"单脚跳;跳上","ipa":"[hɑːp]","level":"B1","ex":"The little bird hopped across the grass.","exZh":"小鸟蹦蹦跳跳地穿过草地。","rank":3631},{"id":"V-hope","en":"hope","zh":"希望","more":"期望;指望","ipa":"[hoʊp]","level":"A1","ex":"I hope you feel better soon.","exZh":"希望你快点好起来。","rank":345},{"id":"V-hopeful","en":"hopeful","zh":"充满希望","more":"有前途的","ipa":"[ˈhoʊpfl]","level":"B1","ex":"We are hopeful about the future.","exZh":"我们对未来充满希望。","rank":11057},{"id":"V-hopefully","en":"hopefully","zh":"但愿","more":"满怀希望地","ipa":"[ˈhoʊpfəli]","level":"B1","ex":"Hopefully, the weather will be nice tomorrow.","exZh":"但愿明天天气好。","rank":2846},{"id":"V-hopeless","en":"hopeless","zh":"绝望的","more":"无可救药的;没希望的","ipa":"[ˈhoʊpləs]","level":"B1","ex":"He felt hopeless after losing his job.","exZh":"丢了工作以后,他感到很绝望。","rank":4748},{"id":"V-horizon","en":"horizon","zh":"地平线","more":"眼界;范围","ipa":"[həˈraɪzn]","level":"B1","ex":"The sun sank below the horizon.","exZh":"太阳沉到了地平线下面。","rank":7029},{"id":"V-horn","en":"horn","zh":"喇叭","more":"角;号角","ipa":"[hɔːrn]","level":"B1","ex":"He honked his horn at the slow car.","exZh":"他对着前面那辆慢吞吞的车按了喇叭。","rank":2032},{"id":"V-horrible","en":"horrible","zh":"可怕的","more":"糟糕的;讨厌的","ipa":"[ˈhɔːrəbl]","level":"B1","ex":"I had a horrible dream last night.","exZh":"我昨晚做了个可怕的梦。","rank":1523},{"id":"V-hospital","en":"hospital","zh":"医院","ipa":"[ˈhɑːspɪtl]","level":"A1","ex":"I need to go to the hospital.","exZh":"我得去一趟医院。","rank":628},{"id":"V-host","en":"host","zh":"主人","more":"主持人;东道主","ipa":"[hoʊst]","level":"A2","ex":"Our host made us a nice dinner.","exZh":"主人给我们做了一顿好吃的晚饭。","rank":3462},{"id":"V-hostel","en":"hostel","zh":"旅社","more":"宿舍","ipa":"[ˈhɑːstl]","level":"B1","ex":"We stayed in a cheap hostel near the beach.","exZh":"我们住在海滩附近一家便宜的旅社。","rank":11571},{"id":"V-hot","en":"hot","zh":"热的","more":"辣的;热门的","ipa":"[hɑːt]","level":"A1","ex":"The soup is too hot to eat now.","exZh":"这汤太烫了,现在没法喝。","rank":546},{"id":"V-hotel","en":"hotel","zh":"酒店","more":"旅馆","ipa":"[hoʊˈtel]","level":"A1","ex":"We stayed at a hotel in the city centre.","exZh":"我们住在市中心的一家酒店。","rank":791},{"id":"V-hour","en":"hour","zh":"小时","more":"钟头","ipa":"[ˈaʊər]","level":"A1","ex":"The trip takes about two hours by train.","exZh":"坐火车去大约要两个小时。","rank":574},{"id":"V-house","en":"house","zh":"房子","more":"家庭","ipa":"[haʊs]","level":"A1","ex":"They live in a big house with a garden.","exZh":"他们住在一栋带花园的大房子里。","rank":212},{"id":"V-housework","en":"housework","zh":"家务","ipa":"[ˈhaʊswɜːrk]","level":"B1","ex":"I do the housework every Saturday morning.","exZh":"我每个星期六早上做家务。","rank":17616},{"id":"V-how","en":"how","zh":"怎样","more":"多少;多么","ipa":"[haʊ]","level":"A1","ex":"How do you get to work every day?","exZh":"你每天怎么去上班?","rank":60},{"id":"V-however","en":"however","zh":"然而","more":"无论如何","ipa":"[haʊˈevər]","level":"A2","ex":"He was tired. However, he kept working.","exZh":"他很累,但还是接着干活。","rank":1281},{"id":"V-hug","en":"hug","zh":"拥抱","ipa":"[hʌɡ]","level":"A2","ex":"She gave her mother a big hug.","exZh":"她给了妈妈一个大大的拥抱。","rank":2566},{"id":"V-huge","en":"huge","zh":"巨大的","ipa":"[hjuːdʒ]","level":"B1","ex":"Their new house is really huge.","exZh":"他们的新房子特别大。","rank":1031},{"id":"V-human","en":"human","zh":"人","more":"人类的","ipa":"[ˈhjuːmən]","level":"A2","ex":"Every human needs food and water to live.","exZh":"每个人都需要食物和水才能活下去。","rank":610},{"id":"V-humid","en":"humid","zh":"潮湿的","more":"湿润的","ipa":"[ˈhjuːmɪd]","level":"B1","ex":"The weather is hot and humid in summer here.","exZh":"这里夏天又热又潮。","rank":21358},{"id":"V-hungry","en":"hungry","zh":"饥饿的","more":"渴望的","ipa":"[ˈhʌŋɡri]","level":"A1","ex":"I am so hungry that I could eat anything.","exZh":"我饿得什么都吃得下。","rank":982},{"id":"V-hunt","en":"hunt","zh":"打猎","more":"搜寻","ipa":"[hʌnt]","level":"B1","ex":"My uncle likes to hunt in the forest.","exZh":"我叔叔喜欢在森林里打猎。","rank":2131},{"id":"V-hurry","en":"hurry","zh":"匆忙","more":"赶快;急忙","ipa":"[ˈhɜːri]","level":"A1","ex":"Why are you in such a hurry today?","exZh":"你今天怎么这么匆忙?","rank":524},{"id":"V-hurt","en":"hurt","zh":"弄伤","more":"疼痛;伤害","ipa":"[hɜːrt]","level":"A1","ex":"Be careful with that knife, or you will hurt yourself.","exZh":"小心那把刀,不然你会弄伤自己。","rank":445},{"id":"V-husband","en":"husband","zh":"丈夫","ipa":"[ˈhʌzbənd]","level":"A1","ex":"Her husband cooks dinner for the family every night.","exZh":"她丈夫每天晚上给一家人做晚饭。","rank":450},{"id":"V-hut","en":"hut","zh":"小屋","more":"棚屋","ipa":"[hʌt]","level":"B1","ex":"They lived in a small hut near the beach.","exZh":"他们住在海边的一间小屋里。","rank":4610},{"id":"V-ice","en":"ice","zh":"冰","more":"冰块","ipa":"[aɪs]","level":"A1","ex":"Put some ice in your drink to keep it cold.","exZh":"往饮料里加点冰,让它凉着。","rank":950},{"id":"V-ice-skating","en":"ice skating","zh":"滑冰","ipa":"[aɪs ˈskeɪtɪŋ]","level":"B1","ex":"We go ice skating every winter when the lake freezes.","exZh":"每年冬天湖面结冰,我们都去滑冰。","rank":9396},{"id":"V-id","en":"ID","zh":"身份证明","more":"证件","ipa":"[ˌaɪ ˈdiː]","level":"A2","ex":"You need to show your ID at the airport.","exZh":"你在机场需要出示身份证件。","rank":2556},{"id":"V-id-card","en":"ID card","zh":"身份证","ipa":"","level":"A2","ex":"Don't forget to bring your ID card tomorrow.","exZh":"明天别忘了带身份证。","rank":2556},{"id":"V-idea","en":"idea","zh":"想法","more":"主意;概念","ipa":"[aɪˈdiːə]","level":"A1","ex":"I have a new idea about our plan.","exZh":"我对我们的计划有一个新想法。","rank":292},{"id":"V-identity","en":"identity","zh":"身份","more":"特性;认同","ipa":"[aɪˈdentəti]","level":"B1","ex":"I need to prove my identity at the airport.","exZh":"我需要在机场证明我的身份。","rank":2737},{"id":"V-ignore","en":"ignore","zh":"忽视","more":"不理;忽略","ipa":"[ɪɡˈnɔːr]","level":"B1","ex":"You can't ignore this problem for long.","exZh":"你不能长时间忽视这个问题。","rank":2705},{"id":"V-ill","en":"ill","zh":"生病的","more":"坏的;有害的","ipa":"[ɪl]","level":"A2","ex":"She was ill and stayed home from school.","exZh":"她生病了,没去上学。","rank":1886},{"id":"V-illness","en":"illness","zh":"疾病","more":"生病;病","ipa":"[ˈɪlnəs]","level":"B1","ex":"The illness made him very weak.","exZh":"这种疾病让他非常虚弱。","rank":4170},{"id":"V-image","en":"image","zh":"形象","more":"图像;影像","ipa":"[ˈɪmɪdʒ]","level":"A2","ex":"The store wants to improve its image.","exZh":"这家店想改善自己的形象。","rank":2094},{"id":"V-imagine","en":"imagine","zh":"想象","more":"设想;猜想","ipa":"[ɪˈmædʒɪn]","level":"A1","ex":"I can't imagine life without my phone.","exZh":"我无法想象没有手机的生活。","rank":776},{"id":"V-immediate","en":"immediate","zh":"立即的","more":"直接的;直系的","ipa":"[ɪˈmiːdiət]","level":"B1","ex":"We need immediate help from the police.","exZh":"我们需要警察立即提供帮助。","rank":4467},{"id":"V-immediately","en":"immediately","zh":"立即","more":"马上;直接地","ipa":"[ɪˈmiːdiətli]","level":"B1","ex":"Please call me immediately after the meeting.","exZh":"会议结束后请马上给我打电话。","rank":1090},{"id":"V-immigration","en":"immigration","zh":"移民","more":"移居;入境","ipa":"[ˌɪmɪˈɡreɪʃn]","level":"B1","ex":"The country has strict rules about immigration.","exZh":"这个国家对移民有严格的规定。","rank":7812},{"id":"V-impatient","en":"impatient","zh":"不耐烦","more":"急躁的;无耐心的","ipa":"[ɪmˈpeɪʃnt]","level":"A2","ex":"He gets impatient when he waits in line.","exZh":"他排队时就会不耐烦。","rank":8382},{"id":"V-importance","en":"importance","zh":"重要性","more":"重要;重大","ipa":"[ɪmˈpɔːrtns]","level":"A2","ex":"He understands the importance of good sleep.","exZh":"他明白好好睡觉的重要性。","rank":4971},{"id":"V-important","en":"important","zh":"重要的","more":"有地位的","ipa":"[ɪmˈpɔːrtnt]","level":"A1","ex":"This is an important day for me and my family.","exZh":"今天对我和家人来说是个重要的日子。","rank":437},{"id":"V-impossible","en":"impossible","zh":"不可能的","more":"难以忍受的","ipa":"[ɪmˈpɑːsəbl]","level":"A2","ex":"It is impossible for me to finish this today.","exZh":"我今天不可能做完这个。","rank":1007},{"id":"V-impression","en":"impression","zh":"印象","more":"感想","ipa":"[ɪmˈpreʃn]","level":"B1","ex":"You made a very good impression on my parents.","exZh":"你给我父母留下了很好的印象。","rank":2928},{"id":"V-improve","en":"improve","zh":"提高","more":"改善;改进","ipa":"[ɪmˈpruːv]","level":"A2","ex":"I want to improve my English before the trip.","exZh":"我想在旅行前提高一下英语。","rank":4910},{"id":"V-improvement","en":"improvement","zh":"改进","more":"改善;进步","ipa":"[ɪmˈpruːvmənt]","level":"B1","ex":"Your new plan is a big improvement on the old one.","exZh":"你的新计划比旧的强多了。","rank":8653},{"id":"V-inch","en":"inch","zh":"英寸","ipa":"[ɪntʃ]","level":"A2","ex":"The phone screen is six inches wide.","exZh":"这个手机屏幕宽六英寸。","rank":4546},{"id":"V-include","en":"include","zh":"包括","ipa":"[ɪnˈkluːd]","level":"A2","ex":"The price includes breakfast and free Wi-Fi.","exZh":"这个价格包括早餐和免费无线网。","rank":4635},{"id":"V-income","en":"income","zh":"收入","more":"收益","ipa":"[ˈɪnkʌm; ˈɪnkəm]","level":"B1","ex":"Her income is not enough to pay the rent.","exZh":"她的收入不够付房租。","rank":5250},{"id":"V-inconvenient","en":"inconvenient","zh":"不方便的","more":"麻烦的","ipa":"[ˌɪnkənˈviːniənt]","level":"B1","ex":"Sorry, that time is a bit inconvenient for me.","exZh":"抱歉,那个时间我有点不方便。","rank":12749},{"id":"V-increase","en":"increase","zh":"增加","more":"增长;提高","ipa":"[ɪnˈkriːs; ˈɪŋkriːs; ˈɪnkriːs]","level":"A2","ex":"The number of students here has increased this year.","exZh":"这里的学生人数今年增加了。","rank":3603},{"id":"V-incredibly","en":"incredibly","zh":"极其","more":"难以置信地","ipa":"[ɪnˈkredəbli]","level":"B1","ex":"The food at that new place is incredibly good.","exZh":"那家新店的菜非常好吃。","rank":3199},{"id":"V-indeed","en":"indeed","zh":"的确","more":"实际上","ipa":"[ɪnˈdiːd]","level":"A2","ex":"That is indeed a very good idea.","exZh":"那的确是个很好的主意。","rank":1241},{"id":"V-independent","en":"independent","zh":"独立的","more":"自主的;无党派的","ipa":"[ˌɪndɪˈpendənt]","level":"B1","ex":"She is independent and makes her own decisions.","exZh":"她很独立,什么事都自己拿主意。","rank":4276},{"id":"V-individual","en":"individual","zh":"个人的","more":"个别的;独特的","ipa":"[ˌɪndɪˈvɪdʒuəl]","level":"B1","ex":"I made this choice for my own individual reasons.","exZh":"我做这个选择有我个人的理由。","rank":3414},{"id":"V-indoor","en":"indoor","zh":"室内的","ipa":"[ˈɪndɔːr]","level":"A2","ex":"We play indoor games when it rains.","exZh":"下雨的时候我们就在屋里玩游戏。","rank":16218},{"id":"V-indoors","en":"indoors","zh":"在室内","ipa":"[ˌɪnˈdɔːrz]","level":"B1","ex":"It's cold outside, so let's stay indoors today.","exZh":"外面很冷,我们今天待在家里吧。","rank":12256},{"id":"V-industry","en":"industry","zh":"工业","more":"行业;产业","ipa":"[ˈɪndəstri]","level":"B1","ex":"The car industry is very important in this country.","exZh":"汽车工业在这个国家非常重要。","rank":3061},{"id":"V-inexpensive","en":"inexpensive","zh":"便宜的","ipa":"[ˌɪnɪkˈspensɪv]","level":"A2","ex":"This restaurant is inexpensive but the food is great.","exZh":"这家餐厅不贵,但菜很好吃。","rank":27238},{"id":"V-influence","en":"influence","zh":"影响","more":"影响力;势力","ipa":"[ˈɪnfluəns]","level":"A2","ex":"His friends had a big influence on his decision.","exZh":"他的朋友对他的决定影响很大。","rank":3077},{"id":"V-inform","en":"inform","zh":"通知","more":"告知;告发","ipa":"[ɪnˈfɔːrm]","level":"B1","ex":"Please inform me when you arrive at the hotel.","exZh":"你到酒店后请通知我一声。","rank":3127},{"id":"V-information","en":"information","zh":"信息","more":"资料;情报","ipa":"[ˌɪnfərˈmeɪʃn]","level":"A1","ex":"I need more information about this English course.","exZh":"我想多了解一些这个英语课程的信息。","rank":777},{"id":"V-ingredient","en":"ingredient","zh":"原料","more":"成分;要素","ipa":"[ɪnˈɡriːdiənt]","level":"B1","ex":"Flour is the main ingredient in this cake.","exZh":"面粉是这块蛋糕的主要原料。","rank":10596},{"id":"V-initial","en":"initial","zh":"最初的","more":"首字母","ipa":"[ɪˈnɪʃl]","level":"B1","ex":"My initial plan was to stay for one week.","exZh":"我最初只打算待一个星期。","rank":6045},{"id":"V-injure","en":"injure","zh":"使受伤","more":"伤害;损害","ipa":"[ˈɪndʒər]","level":"A2","ex":"She injured her back while lifting the heavy box.","exZh":"她抬那个重箱子的时候把背弄伤了。","rank":20831},{"id":"V-injury","en":"injury","zh":"受伤","more":"伤害;损伤","ipa":"[ˈɪndʒəri]","level":"B1","ex":"He got a bad injury while playing football last week.","exZh":"他上周踢足球时伤得不轻。","rank":4013},{"id":"V-ink","en":"ink","zh":"墨水","more":"油墨","ipa":"[ɪŋk]","level":"B1","ex":"My pen has no ink, so I can't write.","exZh":"我的笔没墨水了,写不了字。","rank":5591},{"id":"V-innocent","en":"innocent","zh":"无辜的","more":"无罪的;天真的","ipa":"[ˈɪnəsnt]","level":"B1","ex":"He said he was innocent, but nobody believed him.","exZh":"他说自己是无辜的,可没人信他。","rank":1195},{"id":"V-inquiry","en":"inquiry","zh":"调查","more":"询问;探究","ipa":"[ˈɪnkwəri; ɪnˈkwaɪəri]","level":"B1","ex":"The police started an inquiry into the accident.","exZh":"警方对这起事故展开了调查。","rank":7498},{"id":"V-insect","en":"insect","zh":"昆虫","ipa":"[ˈɪnsekt]","level":"A2","ex":"A small insect flew into my room last night.","exZh":"昨晚一只小虫子飞进了我的房间。","rank":8550},{"id":"V-insist","en":"insist","zh":"坚持","more":"坚决要求","ipa":"[ɪnˈsɪst]","level":"B1","ex":"She insisted on paying for the whole meal.","exZh":"她坚持要付整顿饭的钱。","rank":3019},{"id":"V-inspire","en":"inspire","zh":"激励","more":"启发;激发","ipa":"[ɪnˈspaɪər]","level":"B1","ex":"His story inspired me to work much harder.","exZh":"他的故事激励我更加努力。","rank":8749},{"id":"V-install","en":"install","zh":"安装","more":"任命","ipa":"[ɪnˈstɔːl]","level":"B1","ex":"Can you help me install this new app?","exZh":"你能帮我装一下这个新应用吗?","rank":10321},{"id":"V-instance","en":"instance","zh":"例子","more":"情况","ipa":"[ˈɪnstəns]","level":"B1","ex":"For instance, I often walk to work.","exZh":"比如说,我经常走路去上班。","rank":3662},{"id":"V-instant","en":"instant","zh":"立即的","more":"瞬间;速食的","ipa":"[ˈɪnstənt]","level":"A2","ex":"He gave an instant answer to my question.","exZh":"他马上就回答了我的问题。","rank":4563},{"id":"V-instead","en":"instead","zh":"代替","more":"反而;相反","ipa":"[ɪnˈsted]","level":"A2","ex":"There was no coffee, so I drank tea instead.","exZh":"没有咖啡了,我就改喝茶了。","rank":778},{"id":"V-instruction","en":"instruction","zh":"说明","more":"指令;教导","ipa":"[ɪnˈstrʌkʃ(ə)n]","level":"B1","ex":"Please read the instructions before you use the machine.","exZh":"用这台机器前请先看说明书。","rank":11065},{"id":"V-instructor","en":"instructor","zh":"教练","more":"讲师;导师","ipa":"[ɪnˈstrʌktər]","level":"B1","ex":"My driving instructor is very patient with me.","exZh":"我的驾校教练对我很有耐心。","rank":7421},{"id":"V-instrument","en":"instrument","zh":"乐器","more":"仪器;工具","ipa":"[ˈɪnstrəmənt]","level":"A2","ex":"My sister can play three different instruments.","exZh":"我妹妹会演奏三种不同的乐器。","rank":5616},{"id":"V-insurance","en":"insurance","zh":"保险","more":"保险费;保险业","ipa":"[ɪnˈʃʊrəns]","level":"B1","ex":"Do you have insurance for your new car?","exZh":"你的新车买保险了吗?","rank":1998},{"id":"V-intelligent","en":"intelligent","zh":"聪明的","more":"智能的","ipa":"[ɪnˈtelɪdʒənt]","level":"A2","ex":"She is a very intelligent young woman.","exZh":"她是个非常聪明的年轻女人。","rank":3451},{"id":"V-intend","en":"intend","zh":"打算","more":"计划;想要","ipa":"[ɪnˈtend]","level":"B1","ex":"I intend to finish my work before dinner.","exZh":"我打算晚饭前把工作做完。","rank":2700},{"id":"V-interest","en":"interest","zh":"兴趣","more":"利息;利益","ipa":"[ˈɪntrəst]","level":"A2","ex":"He has a strong interest in Chinese history.","exZh":"他对中国历史很感兴趣。","rank":1303},{"id":"V-interested","en":"interested","zh":"感兴趣的","more":"关心的","ipa":"[ˈɪntrəstɪd; ˈɪntrestɪd]","level":"A1","ex":"I'm very interested in learning Chinese.","exZh":"我对学中文很感兴趣。","rank":898},{"id":"V-interesting","en":"interesting","zh":"有趣的","ipa":"[ˈɪntrəstɪŋ; ˈɪntrestɪŋ]","level":"A1","ex":"This is a really interesting book about animals.","exZh":"这是一本讲动物的书,特别有趣。","rank":847},{"id":"V-international","en":"international","zh":"国际的","ipa":"[ˌɪntərˈnæʃnəl]","level":"A2","ex":"She works for an international company in Shanghai.","exZh":"她在上海一家跨国公司上班。","rank":2550},{"id":"V-internet","en":"internet","zh":"互联网","more":"因特网","ipa":"[ˈɪntərnet]","level":"A1","ex":"I use the internet every day for work.","exZh":"我每天用互联网工作。","rank":2346},{"id":"V-interrupt","en":"interrupt","zh":"打断","more":"打扰;插嘴","ipa":"[ˌɪntəˈrʌpt]","level":"B1","ex":"Please don't interrupt me while I'm talking.","exZh":"我说话的时候请别打断我。","rank":3267},{"id":"V-interval","en":"interval","zh":"间隔","more":"幕间休息;间隙","ipa":"[ˈɪntərv(ə)l]","level":"B1","ex":"There is a short interval between the two classes.","exZh":"两节课之间有一小段间隔。","rank":19630},{"id":"V-introduce","en":"introduce","zh":"介绍","more":"引进;提出","ipa":"[ˌɪntrəˈduːs]","level":"A1","ex":"Let me introduce my friend to you.","exZh":"我来把我的朋友介绍给你。","rank":1742},{"id":"V-introduction","en":"introduction","zh":"介绍","more":"引言;引进","ipa":"[ˌɪntrəˈdʌkʃ(ə)n]","level":"B1","ex":"She gave a short introduction before the talk.","exZh":"她在演讲前做了简短的介绍。","rank":8528},{"id":"V-invitation","en":"invitation","zh":"邀请","more":"请帖","ipa":"[ˌɪnvɪˈteɪʃn]","level":"B1","ex":"Thank you for your invitation to the party.","exZh":"谢谢你邀请我参加派对。","rank":3581},{"id":"V-invite","en":"invite","zh":"邀请","more":"招致","ipa":"[ɪnˈvaɪt]","level":"A2","ex":"Did you invite Tom to your birthday party?","exZh":"你邀请汤姆来你的生日派对了吗?","rank":1980},{"id":"V-involve","en":"involve","zh":"涉及","more":"包含;牵涉","ipa":"[ɪnˈvɑːlv]","level":"B1","ex":"This job involves a lot of travel.","exZh":"这份工作要经常出差。","rank":5862},{"id":"V-iron","en":"iron","zh":"铁","more":"熨斗;熨","ipa":"[ˈaɪərn]","level":"B1","ex":"This gate is made of iron.","exZh":"这扇门是铁做的。","rank":2212},{"id":"V-ironing","en":"ironing","zh":"熨衣服","ipa":"[ˈaɪərnɪŋ]","level":"B1","ex":"I have to do the ironing tonight.","exZh":"我今晚得熨衣服。","rank":15674},{"id":"V-island","en":"island","zh":"岛","ipa":"[ˈaɪlənd]","level":"A1","ex":"We spent a week on a small island.","exZh":"我们在一个小岛上待了一个星期。","rank":1055},{"id":"V-issue","en":"issue","zh":"问题","more":"期号;发行","ipa":"[ˈɪʃuː]","level":"A2","ex":"We need to talk about this issue.","exZh":"我们得谈谈这个问题。","rank":1703},{"id":"V-it","en":"it","zh":"它","ipa":"[ɪt]","level":"A2","ex":"Where is my phone? I can't find it.","exZh":"我的手机在哪儿?我找不到了。","rank":6},{"id":"V-item","en":"item","zh":"物品","more":"项目;条款","ipa":"[ˈaɪtəm]","level":"A1","ex":"She put each item in the box.","exZh":"她把每件物品都放进了箱子里。","rank":4117},{"id":"V-jacket","en":"jacket","zh":"夹克","more":"外套","ipa":"[ˈdʒækɪt]","level":"A1","ex":"It's cold, so put on your jacket.","exZh":"天冷了,穿上你的夹克吧。","rank":2075},{"id":"V-jail","en":"jail","zh":"监狱","more":"拘留所;监禁","ipa":"[dʒeɪl]","level":"B1","ex":"He spent two years in jail for stealing.","exZh":"他因为偷东西在监狱里待了两年。","rank":1034},{"id":"V-jam","en":"jam","zh":"果酱","more":"堵塞;困境","ipa":"[dʒæm]","level":"A2","ex":"I put some strawberry jam on my bread.","exZh":"我在面包上抹了点草莓酱。","rank":3781},{"id":"V-january","en":"January","zh":"一月","ipa":"[ˈdʒænjueri]","level":"A1","ex":"We go skiing every January with my family.","exZh":"我们每年一月都和家人去滑雪。","rank":4899},{"id":"V-jar","en":"jar","zh":"罐子","more":"广口瓶;震动","ipa":"[dʒɑːr]","level":"B1","ex":"She put the honey in a glass jar.","exZh":"她把蜂蜜装进了一个玻璃罐里。","rank":5736},{"id":"V-jazz","en":"jazz","zh":"爵士乐","ipa":"[dʒæz]","level":"B1","ex":"My dad loves listening to jazz in the evening.","exZh":"我爸爸喜欢晚上听爵士乐。","rank":3693},{"id":"V-jealous","en":"jealous","zh":"嫉妒的","more":"吃醋的;眼红的","ipa":"[ˈdʒeləs]","level":"B1","ex":"He gets jealous when I talk to other boys.","exZh":"我跟别的男生说话,他就会吃醋。","rank":1606},{"id":"V-jeans","en":"jeans","zh":"牛仔裤","ipa":"[dʒiːnz]","level":"A1","ex":"She wore blue jeans and a white shirt.","exZh":"她穿着蓝色的牛仔裤和一件白衬衫。","rank":5600},{"id":"V-jet","en":"jet","zh":"喷气式飞机","more":"喷射;喷流","ipa":"[dʒet]","level":"A1","ex":"The jet flew high above the clouds.","exZh":"那架喷气式飞机在云层上方飞得很高。","rank":3737},{"id":"V-jewel","en":"jewel","zh":"宝石","more":"珠宝;珍宝","ipa":"[ˈdʒuːəl]","level":"B1","ex":"The ring has a small blue jewel in it.","exZh":"这枚戒指上镶着一颗蓝色的小宝石。","rank":7320},{"id":"V-jewellery","en":"jewellery","zh":"珠宝","more":"首饰","ipa":"[ˈdʒuːəlri]","level":"A1","ex":"She keeps her jewellery in a wooden box.","exZh":"她把首饰放在一个木盒子里。","rank":9233},{"id":"V-job","en":"job","zh":"工作","more":"职业;任务","ipa":"[dʒɑːb]","level":"A1","ex":"He found a new job at a bank.","exZh":"他在一家银行找到了新工作。","rank":268},{"id":"V-jogging","en":"jogging","zh":"慢跑","ipa":"[ˈdʒɑːɡɪŋ]","level":"B1","ex":"I go jogging in the park every morning.","exZh":"我每天早上都去公园慢跑。","rank":12110},{"id":"V-join","en":"join","zh":"参加","more":"加入;连接","ipa":"[dʒɔɪn]","level":"A1","ex":"Do you want to join us for dinner?","exZh":"你想和我们一起吃晚饭吗?","rank":855},{"id":"V-joint","en":"joint","zh":"关节","more":"共同的;联合的","ipa":"[dʒɔɪnt]","level":"B1","ex":"My knee joint hurts when I run.","exZh":"我跑步的时候膝盖关节会疼。","rank":2872},{"id":"V-joke","en":"joke","zh":"笑话","more":"玩笑;开玩笑","ipa":"[dʒoʊk]","level":"A2","ex":"He told a funny joke at lunch.","exZh":"他午饭时讲了个好笑的笑话。","rank":1029},{"id":"V-journalist","en":"journalist","zh":"记者","more":"新闻工作者","ipa":"[ˈdʒɜːrnəlɪst]","level":"B1","ex":"The journalist asked the mayor a question.","exZh":"那名记者向市长提了一个问题。","rank":4666},{"id":"V-journey","en":"journey","zh":"旅程","more":"旅行;行程","ipa":"[ˈdʒɜːrni]","level":"A2","ex":"The journey to the beach took three hours.","exZh":"去海滩的旅程花了三个小时。","rank":1835},{"id":"V-joy","en":"joy","zh":"快乐","more":"喜悦;乐趣","ipa":"[dʒɔɪ]","level":"A2","ex":"Her face was full of joy.","exZh":"她脸上满是快乐。","rank":1699},{"id":"V-judgement","en":"judgement","zh":"判断力","more":"判断;评价","ipa":"[ˈdʒʌdʒmənt]","level":"B1","ex":"I trust your judgement on this.","exZh":"这件事我相信你的判断力。","rank":8921},{"id":"V-jug","en":"jug","zh":"罐子","more":"壶;一罐","ipa":"[dʒʌɡ]","level":"B1","ex":"She poured milk from a small jug.","exZh":"她从小罐子里倒出了牛奶。","rank":12563},{"id":"V-juice","en":"juice","zh":"果汁","more":"汁;汁液","ipa":"[dʒuːs]","level":"A1","ex":"Can I have a glass of juice?","exZh":"我可以喝一杯果汁吗?","rank":2426},{"id":"V-july","en":"July","zh":"七月","ipa":"[dʒʊˈlaɪ]","level":"A1","ex":"We visit the lake every July.","exZh":"我们每年七月都去那个湖玩。","rank":3694},{"id":"V-jump","en":"jump","zh":"跳","more":"跳跃;跳过","ipa":"[dʒʌmp]","level":"A1","ex":"The cat jumped onto the table.","exZh":"猫跳到了桌子上。","rank":1115},{"id":"V-jumper","en":"jumper","zh":"套头毛衣","more":"跳跃者;跳高运动员","ipa":"[ˈdʒʌmpər]","level":"B1","ex":"She wore a warm jumper to school.","exZh":"她穿着暖和的套头毛衣去上学。","rank":9984},{"id":"V-june","en":"June","zh":"六月","ipa":"[dʒuːn]","level":"A1","ex":"My birthday is in June, so we can have a party.","exZh":"我的生日在六月,所以我们可以办个派对。","rank":2881},{"id":"V-jungle","en":"jungle","zh":"丛林","more":"危险地带","ipa":"[ˈdʒʌŋɡl]","level":"B1","ex":"We got lost in the jungle for two days.","exZh":"我们在丛林里迷路了两天。","rank":3165},{"id":"V-junk","en":"junk","zh":"垃圾","more":"废旧物品;舢板","ipa":"[dʒʌŋk]","level":"A2","ex":"There is too much junk in my room.","exZh":"我房间里垃圾太多了。","rank":3678},{"id":"V-just","en":"just","zh":"只是","more":"刚才;正好","ipa":"[dʒʌst]","level":"A1","ex":"I just want a cup of tea.","exZh":"我只想要一杯茶。","rank":38},{"id":"V-keep","en":"keep","zh":"保持","more":"保存;经营","ipa":"[kiːp]","level":"A1","ex":"Please keep your room clean every day.","exZh":"请每天保持房间干净。","rank":180},{"id":"V-kettle","en":"kettle","zh":"水壶","more":"壶","ipa":"[ˈketl]","level":"B1","ex":"I'll put the kettle on and make some tea.","exZh":"我去烧壶水,泡点茶。","rank":8336},{"id":"V-key","en":"key","zh":"钥匙","more":"关键;键","ipa":"[kiː]","level":"A1","ex":"I can't find my house key.","exZh":"我找不到家门钥匙了。","rank":882},{"id":"V-keyboard","en":"keyboard","zh":"键盘","more":"键盘乐器","ipa":"[ˈkiːbɔːrd]","level":"B1","ex":"I spilled coffee on my computer keyboard.","exZh":"我把咖啡洒在电脑键盘上了。","rank":8937},{"id":"V-kid","en":"kid","zh":"小孩","more":"开玩笑;小山羊","ipa":"[kɪd]","level":"A1","ex":"The kids are playing in the park.","exZh":"孩子们在公园里玩。","rank":391},{"id":"V-kilo","en":"kilo","zh":"公斤","more":"千克","ipa":"[ˈkilo]","level":"A2","ex":"I bought two kilos of apples.","exZh":"我买了两公斤苹果。","rank":10359},{"id":"V-kilogramme","en":"kilogramme","zh":"公斤","more":"千克","ipa":"[ˈkɪləɡræm]","level":"A2","ex":"This bag weighs about one kilogramme.","exZh":"这个包大约重一公斤。","rank":99999},{"id":"V-kind","en":"kind","zh":"种类","more":"善良的;友善的","ipa":"[kaɪnd]","level":"A1","ex":"What kind of food do you like?","exZh":"你喜欢哪种食物?","rank":210},{"id":"V-kiss","en":"kiss","zh":"亲吻","more":"轻触","ipa":"[kɪs]","level":"A1","ex":"She gave her baby a kiss good night.","exZh":"她亲了亲宝宝,跟他说晚安。","rank":750},{"id":"V-kit","en":"kit","zh":"成套工具","more":"工具箱;配套元件","ipa":"[kɪt]","level":"A2","ex":"This kit has everything you need to fix a bike.","exZh":"这套工具里有修自行车需要的所有东西。","rank":3524},{"id":"V-kitchen","en":"kitchen","zh":"厨房","ipa":"[ˈkɪtʃɪn]","level":"A1","ex":"My mother is cooking in the kitchen.","exZh":"我妈妈正在厨房做饭。","rank":1126},{"id":"V-kitten","en":"kitten","zh":"小猫","ipa":"[ˈkɪt(ə)n]","level":"B1","ex":"The kitten is playing with a ball of wool.","exZh":"小猫正在玩一个毛线球。","rank":8454},{"id":"V-knee","en":"knee","zh":"膝盖","ipa":"[niː]","level":"A1","ex":"I hurt my knee while playing football.","exZh":"我踢足球时伤了膝盖。","rank":3758},{"id":"V-knife","en":"knife","zh":"刀","more":"匕首;餐刀","ipa":"[naɪf]","level":"A1","ex":"Please cut the bread with a sharp knife.","exZh":"请用一把锋利的刀切面包。","rank":1398},{"id":"V-knit","en":"knit","zh":"编织","more":"针织;使结合","ipa":"[nɪt]","level":"B1","ex":"My grandma likes to knit sweaters in winter.","exZh":"我奶奶喜欢在冬天织毛衣。","rank":14694},{"id":"V-knock","en":"knock","zh":"敲","more":"碰撞;打击","ipa":"[nɑːk]","level":"A2","ex":"Someone is knocking at the door.","exZh":"有人在敲门。","rank":1118},{"id":"V-know","en":"know","zh":"知道","more":"认识;懂得","ipa":"[noʊ]","level":"A1","ex":"I don't know the answer to this question.","exZh":"我不知道这个问题的答案。","rank":32},{"id":"V-knowledge","en":"knowledge","zh":"知识","more":"了解;知悉","ipa":"[ˈnɑːlɪdʒ]","level":"A2","ex":"He has a lot of knowledge about animals.","exZh":"他对动物了解很多。","rank":2026},{"id":"V-lack","en":"lack","zh":"缺乏","more":"不足;缺少","ipa":"[læk]","level":"A2","ex":"The plants died because of a lack of water.","exZh":"因为缺水,这些植物都死了。","rank":2635},{"id":"V-ladder","en":"ladder","zh":"梯子","more":"阶梯;途径","ipa":"[ˈlædər]","level":"B1","ex":"He climbed the ladder to fix the roof.","exZh":"他爬上梯子去修屋顶。","rank":4832},{"id":"V-lady","en":"lady","zh":"女士","more":"小姐;妻子","ipa":"[ˈleɪdi]","level":"A1","ex":"The lady in the red coat is my aunt.","exZh":"那位穿红大衣的女士是我姑姑。","rank":478},{"id":"V-lake","en":"lake","zh":"湖","ipa":"[leɪk]","level":"A2","ex":"We went swimming in the lake last summer.","exZh":"去年夏天我们去湖里游泳了。","rank":1793},{"id":"V-lamb","en":"lamb","zh":"小羊","more":"羔羊肉","ipa":"[læm]","level":"B1","ex":"The little lamb is running after its mother.","exZh":"那只小羊正跟在妈妈后面跑。","rank":4101},{"id":"V-lamp","en":"lamp","zh":"灯","ipa":"[læmp]","level":"A2","ex":"Please turn on the lamp next to the bed.","exZh":"请把床边那盏灯打开。","rank":4644},{"id":"V-land","en":"land","zh":"陆地","more":"土地;降落","ipa":"[lænd]","level":"A2","ex":"After many days at sea, they saw land.","exZh":"在海上漂了好多天后,他们看见了陆地。","rank":700},{"id":"V-landlord","en":"landlord","zh":"房东","more":"地主","ipa":"[ˈlændlɔːrd]","level":"B1","ex":"Our landlord fixed the broken window yesterday.","exZh":"房东昨天把坏掉的窗户修好了。","rank":6056},{"id":"V-landscape","en":"landscape","zh":"风景","more":"风景画","ipa":"[ˈlændskeɪp]","level":"A2","ex":"The landscape here is beautiful in autumn.","exZh":"这里的风景在秋天很美。","rank":6160},{"id":"V-lane","en":"lane","zh":"小巷","more":"车道","ipa":"[leɪn]","level":"A2","ex":"They walked down a quiet lane to the river.","exZh":"他们沿着一条安静的小巷走到河边。","rank":2943},{"id":"V-language","en":"language","zh":"语言","ipa":"[ˈlæŋɡwɪdʒ]","level":"A1","ex":"Learning a new language takes time and practice.","exZh":"学一门新语言需要时间和练习。","rank":1419},{"id":"V-large","en":"large","zh":"大的","more":"大量的","ipa":"[lɑːrdʒ]","level":"A1","ex":"They live in a large house near the park.","exZh":"他们住在公园附近一栋大房子里。","rank":1359},{"id":"V-last-name","en":"last name","zh":"姓","ipa":"","level":"A1","ex":"Please write your last name on this form.","exZh":"请在这张表上写下你的姓。","rank":188},{"id":"V-late","en":"late","zh":"晚的","more":"迟到的;已故的","ipa":"[leɪt]","level":"A1","ex":"Sorry I'm late, the bus didn't come.","exZh":"对不起我迟到了,公交车一直没来。","rank":381},{"id":"V-lately","en":"lately","zh":"最近","ipa":"[ˈleɪtli]","level":"B1","ex":"I haven't seen him lately at all.","exZh":"我最近完全没见到他。","rank":1693},{"id":"V-later","en":"later","zh":"稍后","more":"后来;以后","ipa":"[ˈleɪtər]","level":"A1","ex":"I will call you later tonight.","exZh":"我今晚晚点给你打电话。","rank":362},{"id":"V-latest","en":"latest","zh":"最新的","more":"最迟的","ipa":"[ˈleɪtɪst]","level":"A2","ex":"This is the latest news about the team.","exZh":"这是关于这个团队的最新消息。","rank":2752},{"id":"V-latter","en":"latter","zh":"后者","more":"后半的;末尾的","ipa":"[ˈlætər]","level":"A2","ex":"Of the two roads, I prefer the latter.","exZh":"这两条路里,我更喜欢后一条。","rank":14618},{"id":"V-laugh","en":"laugh","zh":"笑","more":"嘲笑;笑声","ipa":"[læf]","level":"A1","ex":"We all laughed at his funny story.","exZh":"他讲的故事很好笑,我们都笑了。","rank":966},{"id":"V-launch","en":"launch","zh":"发起","more":"发射;推出","ipa":"[lɔːntʃ]","level":"B1","ex":"They launched a campaign to help poor children.","exZh":"他们发起了一项帮助贫困儿童的活动。","rank":3007},{"id":"V-law","en":"law","zh":"法律","more":"规律;法则","ipa":"[lɔː]","level":"A2","ex":"Everyone must follow the law in this country.","exZh":"在这个国家,每个人都必须遵守法律。","rank":724},{"id":"V-lawyer","en":"lawyer","zh":"律师","ipa":"[ˈlɔɪər]","level":"A2","ex":"My sister is a lawyer in a big city.","exZh":"我姐姐在大城市当律师。","rank":1036},{"id":"V-layer","en":"layer","zh":"层","more":"层次;地层","ipa":"[ˈleɪər]","level":"B1","ex":"Put another layer of paint on the wall.","exZh":"在墙上再刷一层漆。","rank":6807},{"id":"V-lazy","en":"lazy","zh":"懒惰的","more":"懒散的;慵懒的","ipa":"[ˈleɪzi]","level":"A1","ex":"He is too lazy to clean his room.","exZh":"他太懒了,连房间都不打扫。","rank":4003},{"id":"V-lead","en":"lead","zh":"领导","more":"领先;铅","ipa":"[liːd; led]","level":"A2","ex":"She will lead the team to the final.","exZh":"她将带领球队打进决赛。","rank":837},{"id":"V-leading","en":"leading","zh":"领先的","more":"主要的;最重要的","ipa":"[ˈliːdɪŋ; ˈledɪŋ]","level":"B1","ex":"This company is a leading maker of phones.","exZh":"这家公司是领先的手机制造商。","rank":2502},{"id":"V-lean","en":"lean","zh":"倚靠","more":"瘦的;倾斜","ipa":"[liːn]","level":"B1","ex":"You can lean on me if you feel tired.","exZh":"你累了可以靠着我。","rank":4578},{"id":"V-leap","en":"leap","zh":"跳跃","more":"剧增;飞跃","ipa":"[liːp]","level":"B1","ex":"The cat leaped over the small wall.","exZh":"猫跳过了那堵矮墙。","rank":5731},{"id":"V-learn","en":"learn","zh":"学习","more":"得知;学会","ipa":"[lɜːrn]","level":"A1","ex":"I want to learn English with you.","exZh":"我想和你一起学英语。","rank":690},{"id":"V-leather","en":"leather","zh":"皮革","more":"皮革制品","ipa":"[ˈleðər]","level":"A2","ex":"This bag is made of real leather.","exZh":"这个包是用真皮做的。","rank":4395},{"id":"V-leave","en":"leave","zh":"离开","more":"留下;遗忘","ipa":"[liːv]","level":"A1","ex":"I have to leave now, see you tomorrow.","exZh":"我现在得走了,明天见。","rank":183},{"id":"V-left","en":"left","zh":"左边","more":"左边的;剩下的","ipa":"[left]","level":"A1","ex":"Look to your left and see me.","exZh":"往你的左边看,就能看见我。","rank":219},{"id":"V-left-hand","en":"left-hand","zh":"左侧的","more":"左手的","ipa":"[ˈleft hænd]","level":"A2","ex":"The shop is on the left-hand side.","exZh":"那家店在左侧。","rank":21722},{"id":"V-leg","en":"leg","zh":"腿部","more":"裤腿;支柱","ipa":"[leɡ]","level":"A1","ex":"My leg feels much better today.","exZh":"我的腿今天感觉好多了。","rank":1270},{"id":"V-legal","en":"legal","zh":"合法的","more":"法律的;法定的","ipa":"[ˈliːɡl]","level":"B1","ex":"Is it legal to park here?","exZh":"在这里停车合法吗?","rank":1884},{"id":"V-leisure","en":"leisure","zh":"闲暇","more":"空闲;休闲","ipa":"[ˈliːʒər]","level":"A2","ex":"I like reading books in my leisure time.","exZh":"我喜欢在闲暇时间看书。","rank":11275},{"id":"V-lemon","en":"lemon","zh":"柠檬","ipa":"[ˈlemən]","level":"A2","ex":"I put a slice of lemon in my tea.","exZh":"我在茶里放了一片柠檬。","rank":3884},{"id":"V-lemonade","en":"lemonade","zh":"柠檬水","ipa":"[ˌleməˈneɪd]","level":"A2","ex":"She made cold lemonade for us on a hot day.","exZh":"天热时她给我们做了冰柠檬水。","rank":7862},{"id":"V-lend","en":"lend","zh":"借给","more":"借出;提供","ipa":"[lend]","level":"A2","ex":"Can you lend me your bike for an hour?","exZh":"你能把自行车借我用一个小时吗?","rank":3387},{"id":"V-length","en":"length","zh":"长度","more":"时长;篇幅","ipa":"[leŋkθ]","level":"B1","ex":"What is the length of this table?","exZh":"这张桌子有多长?","rank":5346},{"id":"V-less","en":"less","zh":"更少","more":"较少;不如","ipa":"[les]","level":"A2","ex":"This coat costs less than that one.","exZh":"这件外套比那件便宜。","rank":661},{"id":"V-lesson","en":"lesson","zh":"课","more":"教训;一节课","ipa":"[ˈlesn]","level":"A1","ex":"Our English lesson starts at nine.","exZh":"我们的英语课九点开始。","rank":1879},{"id":"V-let","en":"let","zh":"允许","more":"让;出租","ipa":"[let]","level":"A1","ex":"Let me help you with those bags.","exZh":"让我帮你拿那些袋子吧。","rank":74},{"id":"V-letter","en":"letter","zh":"信","more":"字母","ipa":"[ˈletər]","level":"A1","ex":"I got a long letter from my sister.","exZh":"我收到了姐姐寄来的一封长信。","rank":842},{"id":"V-lettuce","en":"lettuce","zh":"生菜","ipa":"[ˈletɪs]","level":"B1","ex":"Wash the lettuce before you make the salad.","exZh":"做沙拉前先把生菜洗一下。","rank":11028},{"id":"V-level","en":"level","zh":"水平","more":"层次;楼层","ipa":"[ˈlevl]","level":"A2","ex":"Her English is at a high level.","exZh":"她的英语水平很高。","rank":1299},{"id":"V-librarian","en":"librarian","zh":"图书管理员","ipa":"[laɪˈbreriən]","level":"B1","ex":"The librarian helped me find the book.","exZh":"图书管理员帮我找到了那本书。","rank":12546},{"id":"V-library","en":"library","zh":"图书馆","more":"藏书","ipa":"[ˈlaɪbreri]","level":"A1","ex":"I study in the library every afternoon.","exZh":"我每天下午都在图书馆学习。","rank":2610},{"id":"V-licence","en":"licence","zh":"执照","more":"许可证;牌照","ipa":"[ˈlaɪsns]","level":"A2","ex":"You need a licence to drive a car.","exZh":"开车需要驾照。","rank":8219},{"id":"V-lie","en":"lie","zh":"躺","more":"撒谎;位于","ipa":"[laɪ]","level":"A2","ex":"I want to lie down for a while.","exZh":"我想躺一会儿。","rank":639},{"id":"V-life","en":"life","zh":"生活","more":"生命;寿命","ipa":"[laɪf]","level":"A1","ex":"I have a happy life with my family.","exZh":"我和家人过着幸福的生活。","rank":145},{"id":"V-lifeguard","en":"lifeguard","zh":"救生员","ipa":"[ˈlaɪfɡɑːrd]","level":"B1","ex":"The lifeguard saved the boy in the sea.","exZh":"救生员救起了海里的男孩。","rank":15901},{"id":"V-lifestyle","en":"lifestyle","zh":"生活方式","ipa":"[ˈlaɪfstaɪl]","level":"A2","ex":"A healthy lifestyle is good for you.","exZh":"健康的生活方式对你有好处。","rank":6708},{"id":"V-lift","en":"lift","zh":"举起","more":"电梯;搭便车","ipa":"[lɪft]","level":"B1","ex":"Can you help me lift this heavy box?","exZh":"你能帮我抬起这个重箱子吗?","rank":1646},{"id":"V-light","en":"light","zh":"光线","more":"灯;浅色的","ipa":"[laɪt]","level":"A1","ex":"The light in this room is very bright.","exZh":"这个房间的光线很亮。","rank":534},{"id":"V-lighter","en":"lighter","zh":"打火机","more":"更轻的","ipa":"[ˈlaɪtər]","level":"B1","ex":"Can I borrow your lighter for a minute?","exZh":"我能借你的打火机用一下吗?","rank":4520},{"id":"V-lightning","en":"lightning","zh":"闪电","ipa":"[ˈlaɪtnɪŋ]","level":"B1","ex":"We saw lightning in the sky last night.","exZh":"昨晚我们看到天上有闪电。","rank":3655},{"id":"V-like","en":"like","zh":"喜欢","more":"像;想要","ipa":"[laɪk]","level":"A1","ex":"I like to play football with my friends.","exZh":"我喜欢和朋友一起踢足球。","rank":42},{"id":"V-likely","en":"likely","zh":"很可能","more":"可能的;有希望的","ipa":"[ˈlaɪkli]","level":"A2","ex":"It is likely to rain this afternoon.","exZh":"今天下午可能会下雨。","rank":1898},{"id":"V-limit","en":"limit","zh":"限制","more":"限度;界限","ipa":"[ˈlɪmɪt]","level":"B1","ex":"Please limit your time on the phone.","exZh":"请限制你玩手机的时间。","rank":3423},{"id":"V-limited","en":"limited","zh":"有限的","ipa":"[ˈlɪmɪtɪd]","level":"B1","ex":"We have a limited amount of time.","exZh":"我们的时间有限。","rank":4263},{"id":"V-line","en":"line","zh":"线条","more":"路线;排队","ipa":"[laɪn]","level":"A1","ex":"Draw a straight line on the paper.","exZh":"在纸上画一条直线。","rank":519},{"id":"V-link","en":"link","zh":"链接","more":"连接;联系","ipa":"[lɪŋk]","level":"B1","ex":"Click the link to see the full story.","exZh":"点这个链接看完整的故事。","rank":3166},{"id":"V-lip","en":"lip","zh":"嘴唇","more":"边缘","ipa":"[lɪp]","level":"A2","ex":"She has a cut on her lip.","exZh":"她嘴唇上有个伤口。","rank":4682},{"id":"V-liquid","en":"liquid","zh":"液体","more":"液体的;流动的","ipa":"[ˈlɪkwɪd]","level":"B1","ex":"The bottle is full of a green liquid.","exZh":"瓶子里装满了绿色的液体。","rank":4753},{"id":"V-list","en":"list","zh":"清单","more":"名单;列表","ipa":"[lɪst]","level":"A1","ex":"I made a list of things to buy.","exZh":"我列了一份要买的东西的清单。","rank":921},{"id":"V-listen","en":"listen","zh":"听","more":"听从;倾听","ipa":"[ˈlɪsn]","level":"A1","ex":"Listen to me, this is very important.","exZh":"听我说,这很重要。","rank":232},{"id":"V-little","en":"little","zh":"小的","more":"很少的;一点点","ipa":"[ˈlɪtl]","level":"A1","ex":"They live in a little house near the park.","exZh":"他们住在公园附近的一栋小房子里。","rank":120},{"id":"V-live","en":"live","zh":"居住","more":"生活;活着","ipa":"[lɪv; laɪv]","level":"A1","ex":"I live in Beijing with my parents.","exZh":"我和爸妈住在北京。","rank":280},{"id":"V-lively","en":"lively","zh":"活泼的","more":"热闹的;生动的","ipa":"[ˈlaɪvli]","level":"A2","ex":"The party was lively and everyone had fun.","exZh":"派对很热闹,大家都玩得很开心。","rank":7289},{"id":"V-liver","en":"liver","zh":"肝脏","ipa":"[ˈlɪvər]","level":"B1","ex":"Too much alcohol is bad for your liver.","exZh":"酒喝多了对肝不好。","rank":3688},{"id":"V-living","en":"living","zh":"活着的","more":"生活;生计","ipa":"[ˈlɪvɪŋ]","level":"A1","ex":"She is the oldest living person in the town.","exZh":"她是镇上年纪最大的在世老人。","rank":553},{"id":"V-living-room","en":"living room","zh":"客厅","more":"起居室","ipa":"[ˈlɪvɪŋ ruːm]","level":"A1","ex":"We watch TV in the living room.","exZh":"我们在客厅看电视。","rank":553},{"id":"V-load","en":"load","zh":"装载","more":"负担;货物","ipa":"[loʊd]","level":"A2","ex":"The truck was carrying a heavy load of wood.","exZh":"卡车装着一车很重的木头。","rank":2277},{"id":"V-loaf","en":"loaf","zh":"一条面包","more":"游荡;闲逛","ipa":"[loʊf]","level":"B1","ex":"I bought a loaf of bread this morning.","exZh":"我今天早上买了一条面包。","rank":10177},{"id":"V-local","en":"local","zh":"当地的","more":"本地人;局部的","ipa":"[ˈloʊkl]","level":"A2","ex":"We had lunch at a local restaurant.","exZh":"我们在一家当地餐馆吃了午饭。","rank":1360},{"id":"V-locate","en":"locate","zh":"定位","more":"位于;找到","ipa":"[ˈloʊkeɪt]","level":"B1","ex":"The app can locate your phone quickly.","exZh":"这个应用能快速定位你的手机。","rank":5111},{"id":"V-location","en":"location","zh":"位置","more":"地点;外景拍摄地","ipa":"[loʊˈkeɪʃn]","level":"B1","ex":"Please tell me your exact location.","exZh":"请告诉我你的确切位置。","rank":2057},{"id":"V-lock","en":"lock","zh":"锁上","more":"锁;水闸","ipa":"[lɑːk]","level":"A2","ex":"Don't forget to lock the door.","exZh":"别忘了锁门。","rank":1269},{"id":"V-lodge","en":"lodge","zh":"旅馆","more":"小屋;提出","ipa":"[lɑːdʒ]","level":"B1","ex":"We stayed at a mountain lodge.","exZh":"我们住在一家山间旅馆。","rank":6133},{"id":"V-log","en":"log","zh":"记录","more":"原木;日志","ipa":"[lɔːɡ]","level":"B1","ex":"Please log the time you arrive.","exZh":"请记录你到达的时间。","rank":4071},{"id":"V-logo","en":"logo","zh":"标志","more":"商标","ipa":"[ˈloʊɡoʊ]","level":"B1","ex":"The company has a new logo.","exZh":"这家公司有了一个新标志。","rank":11418},{"id":"V-lonely","en":"lonely","zh":"孤独的","more":"寂寞的;偏僻的","ipa":"[ˈloʊnli]","level":"A1","ex":"I feel lonely in this big city.","exZh":"我在这座大城市里感到孤独。","rank":1710},{"id":"V-long","en":"long","zh":"长的","more":"长时间的;渴望","ipa":"[lɔːŋ]","level":"A1","ex":"My sister has very long hair.","exZh":"我妹妹头发很长。","rank":181},{"id":"V-look","en":"look","zh":"看一看","more":"看起来;表情","ipa":"[lʊk]","level":"A1","ex":"Please look at my new shoes.","exZh":"请看看我的新鞋。","rank":83},{"id":"V-loose","en":"loose","zh":"宽松的","more":"松动的;散漫的","ipa":"[luːs]","level":"A2","ex":"This shirt is too loose for me.","exZh":"这件衬衫对我来说太宽松了。","rank":1790},{"id":"V-lorry","en":"lorry","zh":"卡车","more":"货车","ipa":"[ˈlɔːri]","level":"B1","ex":"A big lorry stopped in front of our house.","exZh":"一辆大卡车停在了我们家门口。","rank":12125},{"id":"V-lose","en":"lose","zh":"失去","more":"输掉;丢失","ipa":"[luːz]","level":"A2","ex":"I don't want to lose my best friend.","exZh":"我不想失去我最好的朋友。","rank":556},{"id":"V-loss","en":"loss","zh":"损失","more":"亏损;失败","ipa":"[lɔːs]","level":"B1","ex":"The company had a big loss last year.","exZh":"这家公司去年损失很大。","rank":1894},{"id":"V-lost","en":"lost","zh":"丢失的","more":"迷路的;失去的","ipa":"[lɔːst]","level":"A2","ex":"I found my lost keys under the sofa.","exZh":"我在沙发底下找到了丢失的钥匙。","rank":348},{"id":"V-lot","en":"lot","zh":"许多","more":"大量;一块地","ipa":"[lɑːt]","level":"A1","ex":"There are a lot of people in the park today.","exZh":"今天公园里人很多。","rank":200},{"id":"V-lottery","en":"lottery","zh":"彩票","more":"抽奖;碰运气的事","ipa":"[ˈlɑːtəri]","level":"B1","ex":"He won a lot of money in the lottery.","exZh":"他买彩票中了很多钱。","rank":5544},{"id":"V-loud","en":"loud","zh":"大声的","more":"吵闹的;响亮的","ipa":"[laʊd]","level":"B1","ex":"The music was too loud, so we left.","exZh":"音乐太吵了,我们就走了。","rank":1513},{"id":"V-loudly","en":"loudly","zh":"大声地","ipa":"[ˈlaʊdli]","level":"A2","ex":"She spoke loudly so everyone could hear her.","exZh":"她大声说话,好让大家都能听见。","rank":5167},{"id":"V-love","en":"love","zh":"喜爱","more":"爱情;热爱","ipa":"[lʌv]","level":"A1","ex":"I love my family more than anything.","exZh":"我爱我的家人胜过一切。","rank":122},{"id":"V-lovely","en":"lovely","zh":"可爱的","more":"美好的;令人愉快的","ipa":"[ˈlʌvli]","level":"A1","ex":"Your little baby looks so lovely in that hat.","exZh":"你家小宝宝戴那顶帽子真可爱。","rank":819},{"id":"V-low","en":"low","zh":"低的","more":"矮的;低级的","ipa":"[loʊ]","level":"A2","ex":"The prices in this shop are very low.","exZh":"这家店的价格很低。","rank":1226},{"id":"V-loyal","en":"loyal","zh":"忠诚的","more":"忠实的","ipa":"[ˈlɔɪəl]","level":"B1","ex":"He has been a loyal friend to me for years.","exZh":"多年来他一直是我忠实的朋友。","rank":3354},{"id":"V-luck","en":"luck","zh":"运气","more":"好运;幸运","ipa":"[lʌk]","level":"A1","ex":"Good luck with your test tomorrow morning.","exZh":"祝你明天早上考试好运。","rank":615},{"id":"V-luckily","en":"luckily","zh":"幸好","more":"幸运地","ipa":"[ˈlʌkɪli]","level":"A2","ex":"Luckily, I found my keys under the sofa.","exZh":"幸好我在沙发下面找到了钥匙。","rank":4751},{"id":"V-lucky","en":"lucky","zh":"幸运的","more":"侥幸的","ipa":"[ˈlʌki]","level":"A1","ex":"You are lucky to have such good friends.","exZh":"你有这么好的朋友,真幸运。","rank":651},{"id":"V-luggage","en":"luggage","zh":"行李","ipa":"[ˈlʌɡɪdʒ]","level":"B1","ex":"Please put your luggage in the car.","exZh":"请把你的行李放到车里。","rank":4517},{"id":"V-lunch","en":"lunch","zh":"午餐","ipa":"[lʌntʃ]","level":"A1","ex":"Let's have lunch at that new place.","exZh":"我们去那家新店吃午饭吧。","rank":875},{"id":"V-lunchtime","en":"lunchtime","zh":"午餐时间","ipa":"[ˈlʌntʃtaɪm]","level":"A2","ex":"I'll call you at lunchtime today.","exZh":"我今天午饭时间给你打电话。","rank":10926},{"id":"V-lung","en":"lung","zh":"肺","ipa":"[lʌŋ]","level":"B1","ex":"Smoking is very bad for your lungs.","exZh":"吸烟对你的肺很不好。","rank":4934},{"id":"V-luxury","en":"luxury","zh":"奢侈","more":"奢侈品;豪华","ipa":"[ˈlʌkʃəri]","level":"B1","ex":"A long hot bath is a luxury for me.","exZh":"泡个热水澡对我来说是种奢侈。","rank":5129},{"id":"V-machine","en":"machine","zh":"机器","more":"机械","ipa":"[məˈʃiːn]","level":"A1","ex":"This machine makes coffee in two minutes.","exZh":"这台机器两分钟就能做好咖啡。","rank":996},{"id":"V-mad","en":"mad","zh":"疯狂的","more":"生气的;着迷的","ipa":"[mæd]","level":"A2","ex":"The dog went mad and ran around the yard.","exZh":"那只狗疯了似的在院子里乱跑。","rank":686},{"id":"V-magazine","en":"magazine","zh":"杂志","ipa":"[ˈmæɡəziːn]","level":"A1","ex":"She reads a fashion magazine on the train.","exZh":"她在火车上看一本时尚杂志。","rank":2479},{"id":"V-magic","en":"magic","zh":"魔法","more":"魔术;魅力","ipa":"[ˈmædʒɪk]","level":"A2","ex":"The witch used magic to turn him into a frog.","exZh":"女巫用魔法把他变成了一只青蛙。","rank":1081},{"id":"V-magical","en":"magical","zh":"神奇的","more":"有魔力的;魔术的","ipa":"[ˈmædʒɪkl]","level":"B1","ex":"It was a magical night with my friends.","exZh":"和朋友一起的那晚真神奇。","rank":4007},{"id":"V-magician","en":"magician","zh":"魔术师","ipa":"[məˈdʒɪʃn]","level":"B1","ex":"The magician pulled a rabbit out of his hat.","exZh":"魔术师从帽子里变出一只兔子。","rank":6090},{"id":"V-magnificent","en":"magnificent","zh":"壮丽的","more":"宏伟的;华丽的","ipa":"[mæɡˈnɪfɪsnt]","level":"B1","ex":"The view from the mountain was magnificent.","exZh":"从山上看到的景色非常壮观。","rank":3955},{"id":"V-mail","en":"mail","zh":"邮件","more":"邮寄;邮政","ipa":"[meɪl]","level":"A1","ex":"I checked my mail this morning.","exZh":"我今天早上看了邮件。","rank":2172},{"id":"V-main","en":"main","zh":"主要的","ipa":"[meɪn]","level":"B1","ex":"The main problem is that we have no time.","exZh":"主要问题是我们没时间。","rank":1397},{"id":"V-main-course","en":"main course","zh":"主菜","more":"主要课程","ipa":"","level":"A2","ex":"I had fish for my main course.","exZh":"我的主菜吃的是鱼。","rank":1397},{"id":"V-mainly","en":"mainly","zh":"主要地","ipa":"[ˈmeɪnli]","level":"A2","ex":"This book is mainly about animals.","exZh":"这本书主要是讲动物的。","rank":6175},{"id":"V-majority","en":"majority","zh":"多数","more":"大多数;成年","ipa":"[məˈdʒɔːrəti]","level":"B1","ex":"The majority of students like the new teacher.","exZh":"大多数学生都喜欢新老师。","rank":5581},{"id":"V-make","en":"make","zh":"制作","more":"使得;让","ipa":"[meɪk]","level":"A1","ex":"Let's make a cake for your birthday.","exZh":"我们做个蛋糕给你过生日吧。","rank":113},{"id":"V-make-up","en":"make-up","zh":"化妆品","more":"补考;构成","ipa":"[ˈmeɪk ʌp]","level":"A2","ex":"She wears a lot of make-up.","exZh":"她妆化得很浓。","rank":6442},{"id":"V-male","en":"male","zh":"男性","more":"雄性的;男人","ipa":"[meɪl]","level":"A2","ex":"How many male students are in your class?","exZh":"你们班有多少男生?","rank":1643},{"id":"V-mall","en":"mall","zh":"购物中心","more":"商场","ipa":"[mɔːl]","level":"A2","ex":"We spent the afternoon at the mall.","exZh":"我们一下午都在逛商场。","rank":4050},{"id":"V-man","en":"man","zh":"男人","more":"人;人类","ipa":"[mæn]","level":"A1","ex":"That man is my father, and he is very tall.","exZh":"那个男人是我爸爸,他很高。","rank":98},{"id":"V-manage","en":"manage","zh":"管理","more":"设法做到;应付","ipa":"[ˈmænɪdʒ]","level":"A2","ex":"She manages a small shop near the station.","exZh":"她在车站附近管理一家小店。","rank":1817},{"id":"V-manager","en":"manager","zh":"经理","more":"管理者;主管","ipa":"[ˈmænɪdʒər]","level":"A2","ex":"The manager will talk to us after lunch.","exZh":"经理午饭后会跟我们谈谈。","rank":1476},{"id":"V-manner","en":"manner","zh":"方式","more":"举止;态度","ipa":"[ˈmænər]","level":"A2","ex":"He spoke in a friendly manner.","exZh":"他说话的方式很友好。","rank":4016},{"id":"V-map","en":"map","zh":"地图","more":"示意图","ipa":"[mæp]","level":"A1","ex":"I looked at the map to find the park.","exZh":"我看着地图找公园。","rank":2031},{"id":"V-maple","en":"maple","zh":"枫树","more":"枫木;枫糖浆","ipa":"[ˈmeɪpl]","level":"B1","ex":"The maple leaves turn red in autumn.","exZh":"秋天枫叶变红。","rank":11896},{"id":"V-marble","en":"marble","zh":"大理石","more":"弹珠","ipa":"[ˈmɑːrbl]","level":"B1","ex":"The table is made of white marble.","exZh":"这张桌子是白色大理石做的。","rank":8271},{"id":"V-march","en":"March","zh":"三月","ipa":"[mɑːrtʃ]","level":"A1","ex":"My birthday is in March, so I have a party.","exZh":"我的生日在三月,所以我会办个聚会。","rank":2163},{"id":"V-market","en":"market","zh":"市场","more":"行情;推销","ipa":"[ˈmɑːrkɪt]","level":"A2","ex":"We buy fresh fruit at the market every Sunday.","exZh":"我们每周日都在市场买新鲜水果。","rank":1501},{"id":"V-marriage","en":"marriage","zh":"婚姻","more":"结婚;婚姻生活","ipa":"[ˈmærɪdʒ]","level":"B1","ex":"Their marriage has lasted for over twenty years.","exZh":"他们的婚姻已经持续了二十多年。","rank":854},{"id":"V-married","en":"married","zh":"已婚","more":"结婚的;婚姻的","ipa":"[ˈmærid]","level":"A2","ex":"My sister is married and has two kids.","exZh":"我姐姐已婚,有两个孩子。","rank":453},{"id":"V-marry","en":"marry","zh":"结婚","more":"嫁;娶","ipa":"[ˈmæri]","level":"A2","ex":"She is going to marry her boyfriend.","exZh":"她要和男朋友结婚了。","rank":758},{"id":"V-marvellous","en":"marvellous","zh":"极好的","more":"令人惊叹的;不可思议的","ipa":"[ˈmɑːrvələs]","level":"A2","ex":"We had a marvellous time at the beach.","exZh":"我们在海滩玩得非常开心。","rank":7163},{"id":"V-mass","en":"mass","zh":"大量","more":"群众;质量","ipa":"[mæs]","level":"B1","ex":"A mass of people came to see the new bridge.","exZh":"一大群人来看这座新桥。","rank":2470},{"id":"V-match","en":"match","zh":"比赛","more":"火柴;相配","ipa":"[mætʃ]","level":"A1","ex":"We watched a football match on TV last night.","exZh":"我们昨晚在电视上看了一场足球比赛。","rank":1142},{"id":"V-material","en":"material","zh":"材料","more":"布料;素材","ipa":"[məˈtɪriəl]","level":"A2","ex":"This bag is made of a very strong material.","exZh":"这个包是用一种很结实的材料做的。","rank":2365},{"id":"V-matter","en":"matter","zh":"事情","more":"要紧;物质","ipa":"[ˈmætər]","level":"A1","ex":"I have an important matter to talk about with you.","exZh":"我有一件重要的事要跟你谈。","rank":316},{"id":"V-maximum","en":"maximum","zh":"最大量","more":"最高的;上限","ipa":"[ˈmæksɪməm]","level":"B1","ex":"The car can hold a maximum of five people.","exZh":"这辆车最多能坐五个人。","rank":5290},{"id":"V-may","en":"May","zh":"可以","more":"可能;祝愿","ipa":"[meɪ]","level":"A1","ex":"May I use your phone for a minute?","exZh":"我可以用一下你的手机吗?","rank":224},{"id":"V-maybe","en":"maybe","zh":"也许","ipa":"[ˈmeɪbi]","level":"A1","ex":"Maybe we can go to the park later.","exZh":"也许我们晚点可以去公园。","rank":154},{"id":"V-mayor","en":"mayor","zh":"市长","ipa":"[ˈmeɪər]","level":"B1","ex":"The mayor opened the new school this morning.","exZh":"市长今天上午为这所新学校揭幕。","rank":1731},{"id":"V-meal","en":"meal","zh":"一餐","ipa":"[miːl]","level":"A1","ex":"We had a big meal with our family.","exZh":"我们和家人吃了一顿大餐。","rank":2064},{"id":"V-mean","en":"mean","zh":"意思是","more":"打算;小气的","ipa":"[miːn]","level":"A1","ex":"What does this word mean in English?","exZh":"这个词在英语里是什么意思?","rank":124},{"id":"V-meaning","en":"meaning","zh":"意思","ipa":"[ˈmiːnɪŋ]","level":"A2","ex":"I don't know the meaning of this word.","exZh":"我不知道这个词的意思。","rank":1612},{"id":"V-meanwhile","en":"meanwhile","zh":"同时","more":"与此同时","ipa":"[ˈmiːnwaɪl]","level":"B1","ex":"I'll cook the rice. Meanwhile, you can cut the vegetables.","exZh":"我来煮饭。同时,你可以把菜切了。","rank":3609},{"id":"V-measure","en":"measure","zh":"测量","more":"措施;衡量","ipa":"[ˈmeʒər]","level":"B1","ex":"Can you measure how long this table is?","exZh":"你能量一下这张桌子有多长吗?","rank":4059},{"id":"V-meat","en":"meat","zh":"肉类","ipa":"[miːt]","level":"A1","ex":"I don't eat meat, so I'll have a salad.","exZh":"我不吃肉,所以我要一份沙拉。","rank":1502},{"id":"V-mechanic","en":"mechanic","zh":"修理工","more":"技工;机械师","ipa":"[məˈkænɪk]","level":"B1","ex":"The mechanic fixed my car in about an hour.","exZh":"修理工用了一个小时左右就把我的车修好了。","rank":6772},{"id":"V-medicine","en":"medicine","zh":"药物","more":"医学","ipa":"[ˈmedɪsn]","level":"A1","ex":"Take this medicine twice a day after meals.","exZh":"这种药一天吃两次,饭后服用。","rank":1762},{"id":"V-medium","en":"medium","zh":"中等的","more":"媒介;中号","ipa":"[ˈmiːdiəm]","level":"B1","ex":"I'd like a medium coffee and a sandwich.","exZh":"我要一杯中杯咖啡和一个三明治。","rank":5840},{"id":"V-meet","en":"meet","zh":"见面","more":"满足;遇见","ipa":"[miːt]","level":"A1","ex":"Let's meet in front of the coffee shop.","exZh":"我们在咖啡店门口见吧。","rank":317},{"id":"V-melon","en":"melon","zh":"甜瓜","more":"瓜","ipa":"[ˈmelən]","level":"A2","ex":"This melon is very sweet and full of juice.","exZh":"这个甜瓜很甜,汁水也多。","rank":11245},{"id":"V-melt","en":"melt","zh":"融化","more":"熔化","ipa":"[melt]","level":"B1","ex":"The ice will melt quickly in this hot sun.","exZh":"这么大的太阳,冰很快就会化。","rank":5798},{"id":"V-member","en":"member","zh":"成员","more":"会员","ipa":"[ˈmembər]","level":"A2","ex":"She is a member of our tennis club.","exZh":"她是我们网球俱乐部的成员。","rank":1751},{"id":"V-membership","en":"membership","zh":"会员资格","more":"会员身份;会籍","ipa":"[ˈmembərʃɪp]","level":"B1","ex":"My gym membership ends next month.","exZh":"我的健身房会员下个月就到期了。","rank":9625},{"id":"V-memory","en":"memory","zh":"记忆","more":"回忆;内存","ipa":"[ˈmeməri]","level":"A1","ex":"She has a very good memory for faces.","exZh":"她记人脸记得特别清楚。","rank":1300},{"id":"V-mend","en":"mend","zh":"修补","more":"修理;改善","ipa":"[mend]","level":"B1","ex":"Can you mend this hole in my shirt?","exZh":"你能帮我补一下衬衫上的这个洞吗?","rank":9960},{"id":"V-mental","en":"mental","zh":"精神的","more":"心理的;脑力的","ipa":"[ˈmentl]","level":"B1","ex":"She is in a good mental state.","exZh":"她的精神状态很好。","rank":2639},{"id":"V-mention","en":"mention","zh":"提到","ipa":"[ˈmenʃn]","level":"A2","ex":"She didn't mention anything about the party.","exZh":"她完全没有提到聚会的事。","rank":1262},{"id":"V-menu","en":"menu","zh":"菜单","ipa":"[ˈmenjuː]","level":"A2","ex":"Can I see the menu, please?","exZh":"我可以看一下菜单吗?","rank":4327},{"id":"V-mess","en":"mess","zh":"混乱","more":"困境;脏乱","ipa":"[mes]","level":"B1","ex":"Your room is a real mess!","exZh":"你的房间真是一团乱!","rank":951},{"id":"V-message","en":"message","zh":"消息","more":"信息;留言","ipa":"[ˈmesɪdʒ]","level":"A1","ex":"I got a message from my sister.","exZh":"我收到了姐姐发来的一条消息。","rank":812},{"id":"V-messy","en":"messy","zh":"凌乱的","more":"脏乱的;麻烦的","ipa":"[ˈmesi]","level":"B1","ex":"My room is very messy today.","exZh":"我的房间今天特别乱。","rank":5848},{"id":"V-metal","en":"metal","zh":"金属","ipa":"[ˈmetl]","level":"A2","ex":"This box is made of metal.","exZh":"这个盒子是金属做的。","rank":2236},{"id":"V-method","en":"method","zh":"方法","ipa":"[ˈmeθəd]","level":"A2","ex":"We need a better method to do this.","exZh":"我们需要一个更好的方法来做这件事。","rank":4292},{"id":"V-metre","en":"metre","zh":"米","more":"公尺","ipa":"[ˈmiːtər]","level":"A2","ex":"The rope is about two metres long.","exZh":"这根绳子大概两米长。","rank":18525},{"id":"V-midday","en":"midday","zh":"中午","more":"正午","ipa":"[ˌmɪdˈdeɪ]","level":"A2","ex":"Let's meet at midday for lunch.","exZh":"我们中午见面一起吃个饭吧。","rank":14017},{"id":"V-middle","en":"middle","zh":"中间","more":"中部;中间的","ipa":"[ˈmɪd(ə)l]","level":"A1","ex":"She sat in the middle of the room.","exZh":"她坐在房间中间。","rank":821},{"id":"V-middle-aged","en":"middle-aged","zh":"中年的","more":"具有中年人特点的","ipa":"[ˌmɪdl ˈeɪdʒd]","level":"B1","ex":"My parents are middle-aged and they love quiet weekends.","exZh":"我父母都到了中年,他们喜欢安静的周末。","rank":11864},{"id":"V-midnight","en":"midnight","zh":"午夜","more":"半夜;深夜","ipa":"[ˈmɪdnaɪt]","level":"A2","ex":"The party ended at midnight and we took a taxi home.","exZh":"派对到午夜才结束,我们打车回了家。","rank":2165},{"id":"V-mild","en":"mild","zh":"温和的","more":"轻微的;味道淡的","ipa":"[maɪld]","level":"B1","ex":"The weather is mild today, so let's walk outside.","exZh":"今天天气挺温和,我们出去走走吧。","rank":8017},{"id":"V-mile","en":"mile","zh":"英里","ipa":"[maɪl]","level":"B1","ex":"The shop is only a mile from my house.","exZh":"那家店离我家只有一英里。","rank":3104},{"id":"V-milk","en":"milk","zh":"牛奶","more":"乳汁;挤奶","ipa":"[mɪlk]","level":"A1","ex":"I drink a glass of milk every morning.","exZh":"我每天早上喝一杯牛奶。","rank":1472},{"id":"V-mind","en":"mind","zh":"介意","more":"头脑;心思","ipa":"[maɪnd]","level":"A1","ex":"Do you mind if I open the window?","exZh":"我开一下窗户,你介意吗?","rank":257},{"id":"V-mineral-water","en":"mineral water","zh":"矿泉水","ipa":"","level":"A2","ex":"Can I have a bottle of mineral water, please?","exZh":"请给我一瓶矿泉水,好吗?","rank":9854},{"id":"V-minimum","en":"minimum","zh":"最低限度","more":"最小值;最低的","ipa":"[ˈmɪnɪməm]","level":"B1","ex":"The minimum age to drive a car is eighteen.","exZh":"开车的最低年龄是十八岁。","rank":5391},{"id":"V-minor","en":"minor","zh":"次要的","more":"轻微的;未成年的","ipa":"[ˈmaɪnər]","level":"B1","ex":"It was only a minor problem, so we fixed it fast.","exZh":"这只是个小问题,我们很快就修好了。","rank":3563},{"id":"V-minute","en":"minute","zh":"分钟","more":"片刻;一会儿","ipa":"[ˈmɪnɪt]","level":"A1","ex":"The film starts in five minutes, let's hurry.","exZh":"电影五分钟后开始,我们快点吧。","rank":386},{"id":"V-mirror","en":"mirror","zh":"镜子","more":"反映;写照","ipa":"[ˈmɪrər]","level":"A2","ex":"She looked at herself in the mirror and smiled.","exZh":"她照着镜子笑了笑。","rank":2207},{"id":"V-miserable","en":"miserable","zh":"痛苦的","more":"悲惨的;糟糕的","ipa":"[ˈmɪzrəbl]","level":"B1","ex":"I felt miserable when my best friend moved away.","exZh":"我最好的朋友搬走时,我特别难受。","rank":2885},{"id":"V-miss","en":"miss","zh":"想念","more":"错过;小姐","ipa":"[mɪs]","level":"A1","ex":"I miss you and want to see you.","exZh":"我想你,想见你。","rank":281},{"id":"V-missing","en":"missing","zh":"失踪的","more":"缺少的;丢失的","ipa":"[ˈmɪsɪŋ]","level":"A2","ex":"The police are looking for the missing child.","exZh":"警察正在寻找那个失踪的孩子。","rank":728},{"id":"V-mistake","en":"mistake","zh":"错误","more":"误会;弄错","ipa":"[mɪˈsteɪk]","level":"A2","ex":"I made a mistake on my test.","exZh":"我在考试中犯了一个错误。","rank":749},{"id":"V-mix","en":"mix","zh":"混合","more":"搅拌;调配","ipa":"[mɪks]","level":"A2","ex":"Mix the eggs and milk in a bowl.","exZh":"把鸡蛋和牛奶在碗里混合。","rank":3009},{"id":"V-mobile","en":"mobile","zh":"可移动的","more":"移动的;手机","ipa":"[ˈmoʊbl]","level":"A1","ex":"This table is mobile and easy to move.","exZh":"这张桌子可移动,很容易搬动。","rank":2909},{"id":"V-mobile-phone","en":"mobile phone","zh":"手机","more":"移动电话","ipa":"","level":"A1","ex":"My mobile phone is in my bag.","exZh":"我的手机在包里。","rank":2909},{"id":"V-model","en":"model","zh":"模型","more":"模特;榜样","ipa":"[ˈmɑːdl]","level":"A2","ex":"He built a model plane with his son.","exZh":"他和儿子一起做了一架飞机模型。","rank":1760},{"id":"V-moderate","en":"moderate","zh":"适度的","more":"温和的;中等的","ipa":"[ˈmɑːdərət]","level":"B1","ex":"We do moderate exercise three times a week.","exZh":"我们每周做三次适度运动。","rank":16263},{"id":"V-modern","en":"modern","zh":"现代的","more":"时髦的;现代化的","ipa":"[ˈmɑːdərn]","level":"A2","ex":"This modern city has many new buildings.","exZh":"这座现代城市有许多新建筑。","rank":2187},{"id":"V-mom","en":"mom","zh":"妈妈","ipa":"[mɑːm]","level":"A1","ex":"My mom makes breakfast for me every morning.","exZh":"我妈妈每天早上给我做早饭。","rank":261},{"id":"V-moment","en":"moment","zh":"片刻","more":"时刻;一会儿","ipa":"[ˈmoʊmənt]","level":"A1","ex":"Please wait a moment and I will come.","exZh":"请等一会儿,我就来。","rank":447},{"id":"V-monday","en":"Monday","zh":"星期一","ipa":"[ˈmʌndeɪ]","level":"A1","ex":"I have an English class every Monday morning.","exZh":"我每周一上午都有英语课。","rank":2143},{"id":"V-money","en":"money","zh":"钱","more":"货币;财富","ipa":"[ˈmʌni]","level":"A1","ex":"I don't have enough money for a taxi.","exZh":"我的钱不够打车。","rank":185},{"id":"V-month","en":"month","zh":"月","more":"月份","ipa":"[mʌnθ]","level":"A1","ex":"I'm going to visit my family next month.","exZh":"我下个月要去看我家人。","rank":783},{"id":"V-monthly","en":"monthly","zh":"每月的","more":"每月一次","ipa":"[ˈmʌnθli]","level":"B1","ex":"My monthly salary goes into the bank.","exZh":"我每个月的工资都打进银行账户。","rank":8846},{"id":"V-monument","en":"monument","zh":"纪念碑","more":"历史遗迹","ipa":"[ˈmɑːnjumənt]","level":"B1","ex":"There is a big monument in the city center.","exZh":"市中心有一座很大的纪念碑。","rank":9664},{"id":"V-mood","en":"mood","zh":"情绪","more":"心情;气氛","ipa":"[muːd]","level":"A2","ex":"His mood changed quickly after the phone call.","exZh":"接完那个电话,他的情绪一下子变了。","rank":1888},{"id":"V-moon","en":"moon","zh":"月亮","more":"月球","ipa":"[muːn]","level":"A1","ex":"The moon is very bright tonight.","exZh":"今晚的月亮很亮。","rank":1137},{"id":"V-morning","en":"morning","zh":"早上","more":"上午","ipa":"[ˈmɔːrnɪŋ]","level":"A1","ex":"I drink coffee every morning before work.","exZh":"我每天早上上班前都喝咖啡。","rank":263},{"id":"V-mosque","en":"mosque","zh":"清真寺","ipa":"[mɑːsk]","level":"A2","ex":"There is a beautiful mosque near my house.","exZh":"我家附近有一座很漂亮的清真寺。","rank":8791},{"id":"V-mosquito","en":"mosquito","zh":"蚊子","ipa":"[məˈskiːtoʊ]","level":"B1","ex":"A mosquito bit me on the arm last night.","exZh":"昨晚一只蚊子咬了我的胳膊。","rank":10818},{"id":"V-mother","en":"mother","zh":"母亲","more":"妈妈","ipa":"[ˈmʌðər]","level":"A1","ex":"My mother cooks dinner for us every day.","exZh":"我母亲每天给我们做晚饭。","rank":225},{"id":"V-motive","en":"motive","zh":"动机","ipa":"[ˈməʊtɪv]","level":"B1","ex":"The police don't know his motive for the crime.","exZh":"警方不知道他作案的动机。","rank":3320},{"id":"V-motor","en":"motor","zh":"发动机","more":"汽车","ipa":"[ˈmoʊtər]","level":"B1","ex":"The motor in this old car is very loud.","exZh":"这辆旧车的发动机声音特别大。","rank":3939},{"id":"V-motorcycle","en":"motorcycle","zh":"摩托车","ipa":"[ˈmoʊtərsaɪkl]","level":"B1","ex":"He rides his motorcycle to work every day.","exZh":"他每天骑摩托车上班。","rank":4855},{"id":"V-motorway","en":"motorway","zh":"高速公路","ipa":"[ˈmoʊtərweɪ]","level":"A2","ex":"The motorway was busy with cars all morning.","exZh":"整个上午高速公路上车都很多。","rank":20406},{"id":"V-mountain","en":"mountain","zh":"山","more":"山脉;大量","ipa":"[ˈmaʊntn]","level":"A1","ex":"We climbed a high mountain last summer.","exZh":"去年夏天我们爬了一座高山。","rank":1595},{"id":"V-mouth","en":"mouth","zh":"嘴","more":"河口;开口","ipa":"[maʊθ]","level":"A1","ex":"Please close your mouth when you eat.","exZh":"吃东西的时候请把嘴闭上。","rank":770},{"id":"V-move","en":"move","zh":"移动","more":"搬家;感动","ipa":"[muːv]","level":"A1","ex":"Can you help me move this table?","exZh":"你能帮我搬一下这张桌子吗?","rank":277},{"id":"V-movie","en":"movie","zh":"电影","ipa":"[ˈmuːvi]","level":"A1","ex":"We watched a funny movie last night.","exZh":"我们昨晚看了一部很好笑的电影。","rank":766},{"id":"V-mr","en":"Mr.","zh":"先生","ipa":"[ˈmɪstər]","level":"A1","ex":"Mr. Smith is our new English teacher.","exZh":"史密斯先生是我们的新英语老师。","rank":176},{"id":"V-mrs","en":"Mrs.","zh":"太太","more":"夫人","ipa":"[ˈmɪsɪz]","level":"A1","ex":"Mrs. Green lives next door to us.","exZh":"格林太太住在我们隔壁。","rank":549},{"id":"V-ms","en":"Ms.","zh":"女士","ipa":"[mɪz; məz]","level":"A2","ex":"Ms. Lee is the manager of this shop.","exZh":"李女士是这家店的经理。","rank":1286},{"id":"V-much","en":"much","zh":"很多","more":"非常;…得多","ipa":"[mʌtʃ]","level":"A1","ex":"There isn't much milk left in the fridge.","exZh":"冰箱里剩下的牛奶不多了。","rank":134},{"id":"V-mug","en":"mug","zh":"马克杯","more":"一大杯;抢劫","ipa":"[mʌɡ]","level":"A2","ex":"She drank a mug of hot coffee.","exZh":"她喝了一杯热咖啡。","rank":6295},{"id":"V-mum","en":"mum","zh":"妈妈","ipa":"[mʌm]","level":"A1","ex":"My mum makes the best cakes in town.","exZh":"我妈妈做的蛋糕是全城最好吃的。","rank":969},{"id":"V-muscle","en":"muscle","zh":"肌肉","more":"力量","ipa":"[ˈmʌsl]","level":"B1","ex":"He goes to the gym to build muscle.","exZh":"他去健身房练肌肉。","rank":3911},{"id":"V-museum","en":"museum","zh":"博物馆","ipa":"[mjuˈziːəm]","level":"A2","ex":"We spent the whole morning in the science museum.","exZh":"我们在科学博物馆待了一上午。","rank":2857},{"id":"V-mushroom","en":"mushroom","zh":"蘑菇","more":"迅速增长","ipa":"[ˈmʌʃrʊm; ˈmʌʃruːm]","level":"A2","ex":"She added fresh mushrooms to the soup.","exZh":"她在汤里加了新鲜的蘑菇。","rank":10165},{"id":"V-music","en":"music","zh":"音乐","ipa":"[ˈmjuːzɪk]","level":"A1","ex":"I listen to music every morning on the bus.","exZh":"我每天早上坐公交时听音乐。","rank":365},{"id":"V-musical","en":"musical","zh":"音乐的","more":"音乐剧","ipa":"[ˈmjuːzɪkl]","level":"A2","ex":"She has a lot of musical talent.","exZh":"她很有音乐天赋。","rank":3991},{"id":"V-musician","en":"musician","zh":"音乐家","ipa":"[mjuˈzɪʃn]","level":"A1","ex":"My brother is a musician in a small band.","exZh":"我弟弟在一个小乐队里当乐手。","rank":6005},{"id":"V-mustard","en":"mustard","zh":"芥末","more":"芥菜;深黄色","ipa":"[ˈmʌstərd]","level":"B1","ex":"I like mustard on my hot dog.","exZh":"我喜欢在热狗上放芥末。","rank":7792},{"id":"V-mysterious","en":"mysterious","zh":"神秘的","more":"难以理解的","ipa":"[mɪˈstɪriəs]","level":"A2","ex":"A mysterious man called me last night.","exZh":"昨晚有个神秘的男人给我打了电话。","rank":2967},{"id":"V-mystery","en":"mystery","zh":"谜团","more":"神秘;悬疑小说","ipa":"[ˈmɪstəri]","level":"A2","ex":"Her sudden disappearance is still a mystery.","exZh":"她的突然失踪至今还是个谜。","rank":2125},{"id":"V-nail","en":"nail","zh":"指甲","more":"钉子","ipa":"[neɪl]","level":"B1","ex":"She painted her nails a bright red color.","exZh":"她把指甲涂成了鲜红色。","rank":3260},{"id":"V-naked","en":"naked","zh":"裸体的","more":"无遮盖的","ipa":"[ˈneɪkɪd]","level":"B1","ex":"The baby ran around the room completely naked.","exZh":"宝宝光着身子在房间里跑来跑去。","rank":1801},{"id":"V-name","en":"name","zh":"名字","more":"名称;名誉","ipa":"[neɪm]","level":"A1","ex":"Please write your name at the top.","exZh":"请把你的名字写在最上面。","rank":188},{"id":"V-narrow","en":"narrow","zh":"狭窄的","more":"狭隘的;勉强的","ipa":"[ˈnæroʊ]","level":"B1","ex":"This street is too narrow for two cars to pass.","exZh":"这条街太窄了,两辆车过不去。","rank":4955},{"id":"V-nasty","en":"nasty","zh":"令人讨厌的","more":"恶劣的;肮脏的","ipa":"[ˈnæsti]","level":"B1","ex":"That was a nasty thing to say to your friend.","exZh":"你对朋友说那种话真让人讨厌。","rank":2477},{"id":"V-national","en":"national","zh":"国家的","more":"全国的;民族的","ipa":"[ˈnæʃ(ə)nəl]","level":"A2","ex":"The national team plays a big game tomorrow.","exZh":"国家队明天有一场重要比赛。","rank":1480},{"id":"V-nationality","en":"nationality","zh":"国籍","more":"民族","ipa":"[ˌnæʃəˈnæləti]","level":"A1","ex":"What is your nationality? I am Chinese.","exZh":"你是什么国籍?我是中国人。","rank":19350},{"id":"V-native","en":"native","zh":"本地的","more":"本国的;母语的","ipa":"[ˈneɪtɪv]","level":"A2","ex":"Only native people can enter this special park.","exZh":"只有本地人才能进入这个特别的公园。","rank":3972},{"id":"V-natural","en":"natural","zh":"自然的","more":"天生的;天然的","ipa":"[ˈnætʃ(ə)rəl]","level":"A2","ex":"It is natural to feel tired after work.","exZh":"下班后感到累是很自然的。","rank":1488},{"id":"V-nature","en":"nature","zh":"自然","more":"本性;性质","ipa":"[ˈneɪtʃər]","level":"A2","ex":"We should spend more time enjoying nature.","exZh":"我们应该多花时间享受大自然。","rank":1320},{"id":"V-navy-blue","en":"navy blue","zh":"海军蓝","more":"深蓝色","ipa":"[ˌneɪvi ˈbluː]","level":"B1","ex":"She wore a navy blue dress to the party.","exZh":"她穿了一条海军蓝的连衣裙去参加聚会。","rank":2811},{"id":"V-nearby","en":"nearby","zh":"附近的","more":"在附近","ipa":"[ˌnɪrˈbaɪ]","level":"B1","ex":"We stayed at a nearby hotel.","exZh":"我们住在一家附近的酒店。","rank":3329},{"id":"V-nearly","en":"nearly","zh":"几乎","more":"差不多;将近","ipa":"[ˈnɪrli]","level":"A2","ex":"I nearly forgot your birthday today.","exZh":"我今天差点忘了你的生日。","rank":1516},{"id":"V-necessary","en":"necessary","zh":"必要的","more":"必需的;必然的","ipa":"[ˈnesəseri]","level":"A2","ex":"It is necessary to book a table tonight.","exZh":"今晚有必要订个位子。","rank":1400},{"id":"V-neck","en":"neck","zh":"脖子","more":"衣领;领口","ipa":"[nek]","level":"A1","ex":"My neck hurts from sitting all day.","exZh":"坐了一整天,我脖子疼。","rank":1325},{"id":"V-necklace","en":"necklace","zh":"项链","ipa":"[ˈnekləs]","level":"B1","ex":"She wore a beautiful gold necklace to the party.","exZh":"她戴着一条漂亮的金项链去参加派对。","rank":3676},{"id":"V-needle","en":"needle","zh":"针","more":"指针","ipa":"[ˈniːdl]","level":"B1","ex":"I need a needle and thread to fix this shirt.","exZh":"我需要针和线来补这件衬衫。","rank":4272},{"id":"V-negative","en":"negative","zh":"消极的","more":"否定的;阴性的","ipa":"[ˈneɡətɪv]","level":"A2","ex":"Don't be so negative about your English test.","exZh":"别对你的英语考试那么消极。","rank":2531},{"id":"V-neighbor","en":"neighbor","zh":"邻居","ipa":"[ˈneɪbər]","level":"A1","ex":"Our neighbor helped us carry the boxes upstairs.","exZh":"我们邻居帮我们把箱子搬上了楼。","rank":2972},{"id":"V-neighborhood","en":"neighborhood","zh":"社区","more":"附近;街区","ipa":"[ˈneɪbərhʊd]","level":"B1","ex":"Many families in my neighborhood have young children.","exZh":"我们社区里很多家庭都有小孩。","rank":2162},{"id":"V-neighbour","en":"neighbour","zh":"邻居","ipa":"[ˈneɪbər]","level":"A1","ex":"My neighbour often brings us fresh vegetables.","exZh":"我的邻居经常给我们送新鲜蔬菜。","rank":6320},{"id":"V-neighbourhood","en":"neighbourhood","zh":"社区","more":"附近;街区","ipa":"[ˈneɪbərhʊd]","level":"B1","ex":"The whole neighbourhood came to the street party.","exZh":"整个社区的人都来参加街头派对了。","rank":7526},{"id":"V-nephew","en":"nephew","zh":"侄子","more":"外甥","ipa":"[ˈnefjuː; ˈnevjuː]","level":"B1","ex":"My nephew is learning to ride a bike.","exZh":"我侄子正在学骑自行车。","rank":3214},{"id":"V-nervous","en":"nervous","zh":"紧张的","more":"焦虑的;神经的","ipa":"[ˈnɜːrvəs]","level":"A2","ex":"I always feel nervous before a job interview.","exZh":"面试前我总是很紧张。","rank":1147},{"id":"V-network","en":"network","zh":"网络","more":"人脉;广播网","ipa":"[ˈnetwɜːrk]","level":"B1","ex":"I can't connect to the network at home.","exZh":"我在家里连不上网络。","rank":2934},{"id":"V-never","en":"never","zh":"从不","more":"决不","ipa":"[ˈnevər]","level":"A1","ex":"I have never been to Japan.","exZh":"我从没去过日本。","rank":115},{"id":"V-new","en":"new","zh":"新的","more":"新来的;崭新的","ipa":"[nuː]","level":"A1","ex":"I bought a new phone last week.","exZh":"我上周买了一部新手机。","rank":177},{"id":"V-news","en":"news","zh":"新闻","more":"消息","ipa":"[nuːz]","level":"A1","ex":"I watch the news every night before bed.","exZh":"我每晚睡觉前都看新闻。","rank":521},{"id":"V-newspaper","en":"newspaper","zh":"报纸","ipa":"[ˈnuːzpeɪpər]","level":"A1","ex":"My dad reads the newspaper at breakfast every morning.","exZh":"我爸每天吃早饭的时候都看报纸。","rank":2499},{"id":"V-next","en":"next","zh":"下一个","more":"接下来;紧挨着的","ipa":"[nekst]","level":"A2","ex":"Who is the next person in line?","exZh":"排在队伍里的下一个人是谁?","rank":245},{"id":"V-nice","en":"nice","zh":"美好的","more":"友好的;不错的","ipa":"[naɪs]","level":"A1","ex":"It was a nice day, so we walked outside.","exZh":"那天天气很好,我们就出去走了走。","rank":203},{"id":"V-nickname","en":"nickname","zh":"昵称","more":"绰号;外号","ipa":"[ˈnɪkneɪm]","level":"B1","ex":"His friends gave him the nickname Big Bear.","exZh":"朋友们给他起了个外号叫“大熊”。","rank":5965},{"id":"V-niece","en":"niece","zh":"侄女","more":"外甥女","ipa":"[niːs]","level":"B1","ex":"My niece is coming to visit us this weekend.","exZh":"我侄女这周末要来看我们。","rank":4269},{"id":"V-night","en":"night","zh":"夜晚","ipa":"[naɪt]","level":"A1","ex":"The city looks beautiful at night.","exZh":"这座城市晚上很美。","rank":168},{"id":"V-nightlife","en":"nightlife","zh":"夜生活","ipa":"[ˈnaɪtlaɪf]","level":"B1","ex":"This area is famous for its nightlife.","exZh":"这一带以夜生活闻名。","rank":30708},{"id":"V-no","en":"no","zh":"不","more":"没有","ipa":"[noʊ]","level":"A1","ex":"No, I don't want any coffee, thanks.","exZh":"不用了,我不想喝咖啡,谢谢。","rank":26},{"id":"V-nod","en":"nod","zh":"点头","more":"打盹","ipa":"[nɑːd]","level":"B1","ex":"She nodded and smiled at me.","exZh":"她冲我点点头,笑了笑。","rank":9601},{"id":"V-noise","en":"noise","zh":"噪音","more":"响声;杂音","ipa":"[nɔɪz]","level":"A1","ex":"Please stop making so much noise!","exZh":"请别弄出这么大的噪音!","rank":1665},{"id":"V-noisy","en":"noisy","zh":"吵闹的","more":"嘈杂的","ipa":"[ˈnɔɪzi]","level":"A2","ex":"The kids next door are very noisy at night.","exZh":"隔壁的孩子晚上特别吵。","rank":7027},{"id":"V-nonsense","en":"nonsense","zh":"胡说","more":"废话;荒唐的事","ipa":"[ˈnɑːnsens; ˈnɑːnsns]","level":"B1","ex":"Don't talk nonsense, I never said that.","exZh":"别胡说,我从没说过那种话。","rank":1538},{"id":"V-noon","en":"noon","zh":"中午","more":"正午","ipa":"[nuːn]","level":"A2","ex":"We can meet at noon in front of the library.","exZh":"我们可以中午在图书馆前面见。","rank":3513},{"id":"V-normal","en":"normal","zh":"正常的","more":"普通的;正规的","ipa":"[ˈnɔːrm(ə)l]","level":"A2","ex":"It's normal to feel nervous before a test.","exZh":"考试前感到紧张是很正常的。","rank":862},{"id":"V-normally","en":"normally","zh":"通常","more":"正常地","ipa":"[ˈnɔːrməli]","level":"B1","ex":"I normally get up at seven on weekdays.","exZh":"工作日我通常七点起床。","rank":2605},{"id":"V-north","en":"north","zh":"北方","more":"北部;向北","ipa":"[nɔːrθ]","level":"A2","ex":"My uncle lives in the north of China.","exZh":"我叔叔住在中国的北方。","rank":1069},{"id":"V-northeast","en":"northeast","zh":"东北","more":"东北部;向东北","ipa":"[ˌnɔːrθˈiːst]","level":"B1","ex":"The wind is coming from the northeast today.","exZh":"今天风是从东北方向吹来的。","rank":11223},{"id":"V-northern","en":"northern","zh":"北方的","more":"北部的","ipa":"[ˈnɔːrðərn]","level":"B1","ex":"She comes from a small northern town.","exZh":"她来自北方的一个小镇。","rank":4300},{"id":"V-northwest","en":"northwest","zh":"西北","more":"西北部;向西北","ipa":"[ˌnɔːrθˈwest]","level":"B1","ex":"The lake is in the northwest of the country.","exZh":"这个湖在国家的西北部。","rank":10312},{"id":"V-nose","en":"nose","zh":"鼻子","more":"嗅觉","ipa":"[noʊz]","level":"A1","ex":"My nose is running because of my cold.","exZh":"我感冒了,鼻子一直在流鼻涕。","rank":1304},{"id":"V-not","en":"not","zh":"不","more":"没有","ipa":"[nɑːt]","level":"A1","ex":"I am not hungry, so I won't eat now.","exZh":"我不饿,所以现在不吃了。","rank":27},{"id":"V-note","en":"note","zh":"笔记","more":"便条;音符","ipa":"[noʊt]","level":"A1","ex":"She wrote a note to remind herself.","exZh":"她写了张便条提醒自己。","rank":1414},{"id":"V-notebook","en":"notebook","zh":"笔记本","more":"笔记本电脑","ipa":"[ˈnoʊtbʊk]","level":"A1","ex":"I wrote his phone number in my notebook.","exZh":"我把他的电话号码写在了笔记本上。","rank":6823},{"id":"V-notice","en":"notice","zh":"注意到","more":"通知;公告","ipa":"[ˈnoʊtɪs]","level":"A2","ex":"I didn't notice the sign on the door.","exZh":"我没注意到门上的牌子。","rank":1187},{"id":"V-noticeboard","en":"noticeboard","zh":"布告栏","ipa":"[ˈnoʊtɪsbɔːrd]","level":"B1","ex":"The teacher put the list on the noticeboard.","exZh":"老师把名单贴在了布告栏上。","rank":99999},{"id":"V-novel","en":"novel","zh":"小说","more":"新颖的","ipa":"[ˈnɑːv(ə)l]","level":"A2","ex":"I am reading a good novel this week.","exZh":"我这周在看一本不错的小说。","rank":3760},{"id":"V-novelist","en":"novelist","zh":"小说家","ipa":"[ˈnɑːvəlɪst]","level":"B1","ex":"She wants to be a famous novelist one day.","exZh":"她想有一天成为著名的小说家。","rank":16168},{"id":"V-november","en":"November","zh":"十一月","ipa":"[noʊˈvembər]","level":"A1","ex":"My birthday is in November this year.","exZh":"我的生日在今年十一月。","rank":4430},{"id":"V-now","en":"now","zh":"现在","more":"如今;立刻","ipa":"[naʊ]","level":"A1","ex":"I am busy now, please wait.","exZh":"我现在很忙,请等一下。","rank":54},{"id":"V-nowadays","en":"nowadays","zh":"如今","more":"现今;时下","ipa":"[ˈnaʊədeɪz]","level":"A2","ex":"Nowadays many people work from home.","exZh":"如今很多人在家工作。","rank":4298},{"id":"V-nowhere","en":"nowhere","zh":"无处","more":"哪里都不;毫无结果","ipa":"[ˈnoʊwer]","level":"B1","ex":"He has nowhere to go today.","exZh":"他今天无处可去。","rank":1597},{"id":"V-number","en":"number","zh":"数字","more":"号码;期","ipa":"[ˈnʌmbər]","level":"A1","ex":"Three is a very small number.","exZh":"三是一个很小的数字。","rank":441},{"id":"V-numerous","en":"numerous","zh":"许多的","ipa":"[ˈnuːmərəs]","level":"B1","ex":"There are numerous books in the library.","exZh":"图书馆里有很多书。","rank":8327},{"id":"V-nurse","en":"nurse","zh":"护士","more":"护理","ipa":"[nɜːrs]","level":"A1","ex":"The nurse is kind to my mother.","exZh":"护士对我妈妈很好。","rank":1563},{"id":"V-o-clock","en":"o'clock","zh":"点钟","ipa":"","level":"A1","ex":"I get up at six o'clock every day.","exZh":"我每天六点钟起床。","rank":99999},{"id":"V-object","en":"object","zh":"物体","more":"目标;反对","ipa":"[ˈɑːbdʒɪkt; əbˈdʒekt]","level":"B1","ex":"What is that strange object in the sky?","exZh":"天上那个奇怪的东西是什么?","rank":2570},{"id":"V-objection","en":"objection","zh":"反对","more":"异议","ipa":"[əbˈdʒekʃ(ə)n]","level":"B1","ex":"She has no objection to our plan.","exZh":"她对我们的计划没有意见。","rank":3786},{"id":"V-observe","en":"observe","zh":"观察","more":"遵守;庆祝","ipa":"[əbˈzɜːrv]","level":"B1","ex":"I like to observe the birds in the park.","exZh":"我喜欢在公园里看鸟。","rank":4962},{"id":"V-obtain","en":"obtain","zh":"获得","more":"得到","ipa":"[əbˈteɪn]","level":"B1","ex":"You can obtain a free ticket at the door.","exZh":"你可以在门口领一张免费票。","rank":8010},{"id":"V-obvious","en":"obvious","zh":"明显的","more":"显而易见的","ipa":"[ˈɑːbviəs]","level":"B1","ex":"It is obvious that he doesn't like the food.","exZh":"很明显他不喜欢这顿饭。","rank":1919},{"id":"V-obviously","en":"obviously","zh":"显然","more":"明明","ipa":"[ˈɑːbviəsli]","level":"B1","ex":"She is obviously tired after the long trip.","exZh":"长途旅行之后她显然累坏了。","rank":1008},{"id":"V-occasion","en":"occasion","zh":"场合","more":"时机;时刻","ipa":"[əˈkeɪʒn]","level":"B1","ex":"It is a special occasion for our family.","exZh":"这对我们家来说是个特别的场合。","rank":3470},{"id":"V-occasional","en":"occasional","zh":"偶尔的","more":"不经常的","ipa":"[əˈkeɪʒənl]","level":"B1","ex":"He pays an occasional visit to his old school.","exZh":"他偶尔会去看看他的老学校。","rank":9950},{"id":"V-occasionally","en":"occasionally","zh":"偶尔","more":"有时候","ipa":"[əˈkeɪʒnəli]","level":"B1","ex":"We occasionally go out for dinner on Fridays.","exZh":"我们周五偶尔出去吃晚饭。","rank":6276},{"id":"V-occur","en":"occur","zh":"发生","more":"出现;想到","ipa":"[əˈkɜːr]","level":"B1","ex":"The accident occurred right in front of me.","exZh":"事故就发生在我眼前。","rank":5896},{"id":"V-ocean","en":"ocean","zh":"海洋","more":"大海","ipa":"[ˈoʊʃn]","level":"B1","ex":"We swam in the ocean every morning.","exZh":"我们每天早上都去海里游泳。","rank":1941},{"id":"V-off","en":"off","zh":"关掉","more":"离开;休假","ipa":"[ɔːf]","level":"A1","ex":"Please turn off the lights when you leave.","exZh":"你走的时候请把灯关掉。","rank":128},{"id":"V-offer","en":"offer","zh":"提供","more":"出价;主动提出","ipa":"[ˈɔːfər]","level":"A2","ex":"Can I offer you some coffee?","exZh":"我给你倒点咖啡好吗?","rank":908},{"id":"V-office","en":"office","zh":"办公室","more":"政府机关;职务","ipa":"[ˈɑːfɪs]","level":"A1","ex":"My office is near the train station.","exZh":"我的办公室在火车站附近。","rank":493},{"id":"V-official","en":"official","zh":"官方的","more":"正式的;官员","ipa":"[əˈfɪʃl]","level":"A2","ex":"This is the official website for the city.","exZh":"这是这座城市的官方网站。","rank":2074},{"id":"V-often","en":"often","zh":"常常","ipa":"[ˈɔːf(ə)n]","level":"A1","ex":"I often walk to school with my friends.","exZh":"我常常和朋友走路去学校。","rank":971},{"id":"V-oil","en":"oil","zh":"食用油","more":"石油;机油","ipa":"[ɔɪl]","level":"A2","ex":"I put some oil in the pan to cook eggs.","exZh":"我在锅里倒了点油煎鸡蛋。","rank":1570},{"id":"V-ok","en":"OK","zh":"好的","more":"可以;没问题","ipa":"[ˌoʊ'keɪ]","level":"A1","ex":"OK, I will meet you at six.","exZh":"好的,我六点见你。","rank":214},{"id":"V-okay","en":"okay","zh":"可以","more":"好的;没问题","ipa":"[oʊˈkeɪ]","level":"A1","ex":"Is it okay if I open the window?","exZh":"我开一下窗户可以吗?","rank":81},{"id":"V-old","en":"old","zh":"年老的","more":"旧的;年纪大的","ipa":"[oʊld]","level":"A1","ex":"My old dog sleeps all day.","exZh":"我那只老狗整天睡觉。","rank":196},{"id":"V-old-fashioned","en":"old-fashioned","zh":"过时的","more":"老式的;守旧的","ipa":"[ˌoʊld ˈfæʃnd]","level":"B1","ex":"His old-fashioned ideas make him hard to talk to.","exZh":"他那些过时的想法让人很难跟他沟通。","rank":5168},{"id":"V-omelet","en":"omelet","zh":"煎蛋卷","ipa":"[ˈɑːmlət]","level":"A2","ex":"I made a cheese omelet for breakfast.","exZh":"我早餐做了个芝士煎蛋卷。","rank":13146},{"id":"V-omelette","en":"omelette","zh":"煎蛋卷","ipa":"[ˈɑːmlət]","level":"A2","ex":"She ordered a ham omelette at the cafe.","exZh":"她在咖啡馆点了一份火腿煎蛋卷。","rank":18079},{"id":"V-once","en":"once","zh":"一次","more":"曾经;一旦","ipa":"[wʌns]","level":"A1","ex":"I go swimming once a week.","exZh":"我每周去游泳一次。","rank":287},{"id":"V-onion","en":"onion","zh":"洋葱","ipa":"[ˈʌnjən]","level":"A2","ex":"I put some onion in the soup.","exZh":"我在汤里放了点洋葱。","rank":7742},{"id":"V-online","en":"online","zh":"在线的","more":"联机的;网上的","ipa":"[ˌɑːnˈlaɪn]","level":"A2","ex":"I bought these shoes online last night.","exZh":"这双鞋是我昨晚在网上买的。","rank":2727},{"id":"V-only","en":"only","zh":"仅仅","more":"唯一的;只","ipa":"[ˈoʊnli]","level":"A1","ex":"She only eats vegetables for lunch.","exZh":"她午饭只吃蔬菜。","rank":116},{"id":"V-open","en":"open","zh":"打开","more":"打开的;公开的","ipa":"[ˈoʊpən]","level":"A1","ex":"Please open the window for me.","exZh":"请帮我把窗户打开。","rank":342},{"id":"V-opera","en":"opera","zh":"歌剧","more":"歌剧院","ipa":"[ˈɑːprə]","level":"A1","ex":"We went to the opera last night.","exZh":"我们昨晚去看了歌剧。","rank":3783},{"id":"V-operate","en":"operate","zh":"操作","more":"动手术;运转","ipa":"[ˈɑːpəreɪt]","level":"A2","ex":"Can you operate this machine by yourself?","exZh":"你能自己操作这台机器吗?","rank":4231},{"id":"V-operation","en":"operation","zh":"手术","more":"操作;行动","ipa":"[ˌɑːpəˈreɪʃ(ə)n]","level":"B1","ex":"She had an operation on her knee.","exZh":"她膝盖做了一次手术。","rank":1497},{"id":"V-opinion","en":"opinion","zh":"意见","more":"看法;观点","ipa":"[əˈpɪnjən]","level":"A2","ex":"What's your opinion about this book?","exZh":"你对这本书有什么看法?","rank":1631},{"id":"V-opportunity","en":"opportunity","zh":"机会","more":"时机","ipa":"[ˌɑːpərˈtuːnəti]","level":"A2","ex":"This is a good opportunity for you.","exZh":"这对你来说是个好机会。","rank":1385},{"id":"V-opposite","en":"opposite","zh":"相反的","more":"对面的;对立的","ipa":"[ˈɑːpəzɪt]","level":"A2","ex":"Hot is the opposite of cold.","exZh":"热和冷是相反的。","rank":2663},{"id":"V-option","en":"option","zh":"选择","more":"选项;选择权","ipa":"[ˈɑːpʃ(ə)n]","level":"B1","ex":"You have two options for dinner tonight.","exZh":"今晚吃饭你有两个选择。","rank":2899},{"id":"V-oral","en":"oral","zh":"口头的","more":"口试;口服的","ipa":"[ˈɔːrəl]","level":"B1","ex":"There will be an oral exam next week.","exZh":"下周有一场口语考试。","rank":10055},{"id":"V-orange","en":"orange","zh":"橙子","more":"橙色;橙色的","ipa":"[ˈɔrɪndʒ]","level":"A1","ex":"I eat an orange every morning after breakfast.","exZh":"我每天早饭后吃一个橙子。","rank":2953},{"id":"V-orchestra","en":"orchestra","zh":"管弦乐队","more":"乐团","ipa":"[ˈɔːrkɪstrə]","level":"B1","ex":"She plays the violin in a big orchestra.","exZh":"她在一个大管弦乐队里拉小提琴。","rank":6497},{"id":"V-order","en":"order","zh":"命令","more":"顺序;点餐","ipa":"[ˈɔːrdər]","level":"A1","ex":"He gave an order, and everyone stood up.","exZh":"他下了个命令,大家都站了起来。","rank":540},{"id":"V-ordinary","en":"ordinary","zh":"普通的","more":"平常的","ipa":"[ˈɔːrdneri]","level":"B1","ex":"It was just an ordinary day at school.","exZh":"那天在学校就跟平常一样。","rank":2383},{"id":"V-organisation","en":"organisation","zh":"组织","more":"机构","ipa":"[ɔrɡənəˈzeʃən]","level":"B1","ex":"She works for a large organisation in London.","exZh":"她在伦敦一家大机构工作。","rank":10157},{"id":"V-organise","en":"organise","zh":"组织","more":"安排","ipa":"[ˈɔːrɡənaɪz]","level":"A2","ex":"We organised a party for her birthday.","exZh":"我们为她的生日办了一个派对。","rank":13183},{"id":"V-organised","en":"organised","zh":"有条理的","more":"有组织的;安排好的","ipa":"[ˈɔːrɡənaɪzd]","level":"A2","ex":"She is very organised and never forgets anything.","exZh":"她做事很有条理,从来不会忘事。","rank":9632},{"id":"V-organization","en":"organization","zh":"组织","more":"机构","ipa":"[ˌɔːrɡənəˈzeɪʃn]","level":"B1","ex":"The organization helps poor children in Africa.","exZh":"这个组织帮助非洲的贫困儿童。","rank":3369},{"id":"V-origin","en":"origin","zh":"起源","more":"出身;原点","ipa":"[ˈɔːrɪdʒɪn]","level":"B1","ex":"What is the origin of this strange custom?","exZh":"这个奇怪的习俗是怎么来的?","rank":6471},{"id":"V-original","en":"original","zh":"最初的","more":"原来的;原创的","ipa":"[əˈrɪdʒənl]","level":"A2","ex":"The original plan was much better than this.","exZh":"最初的计划比这个好多了。","rank":1578},{"id":"V-out","en":"out","zh":"出去","more":"在外;出局","ipa":"[aʊt]","level":"A1","ex":"He went out to buy some milk.","exZh":"他出去买牛奶了。","rank":49},{"id":"V-outdoor","en":"outdoor","zh":"户外的","more":"露天的","ipa":"[ˈaʊtdɔːr]","level":"B1","ex":"We had an outdoor party in the garden.","exZh":"我们在花园里办了一个户外派对。","rank":12193},{"id":"V-outdoors","en":"outdoors","zh":"在户外","more":"户外;野外","ipa":"[ˌaʊtˈdɔːrz]","level":"B1","ex":"The kids love to play outdoors after school.","exZh":"孩子们喜欢放学后在户外玩。","rank":12507},{"id":"V-outside","en":"outside","zh":"在外面","more":"外部;室外","ipa":"[ˌaʊtˈsaɪd]","level":"A1","ex":"It's cold outside, so wear a warm coat.","exZh":"外面很冷,穿件暖和的外套吧。","rank":533},{"id":"V-outstanding","en":"outstanding","zh":"杰出的","more":"显著的;未解决的","ipa":"[aʊtˈstændɪŋ]","level":"B1","ex":"Her work on this project is outstanding.","exZh":"她在这个项目上的表现非常出色。","rank":6626},{"id":"V-oven","en":"oven","zh":"烤箱","more":"烤炉;炉子","ipa":"[ˈʌvn]","level":"A2","ex":"Put the cake in the oven for thirty minutes.","exZh":"把蛋糕放进烤箱烤三十分钟。","rank":4815},{"id":"V-overcome","en":"overcome","zh":"克服","more":"战胜;解决","ipa":"[ˌoʊvərˈkʌm]","level":"B1","ex":"She worked hard to overcome her fear of flying.","exZh":"她努力克服了坐飞机的恐惧。","rank":5067},{"id":"V-overnight","en":"overnight","zh":"一夜之间","more":"过夜;整夜","ipa":"[ˌoʊvərˈnaɪt]","level":"B1","ex":"He became famous overnight after the video went online.","exZh":"那个视频传到网上后,他一夜之间就出名了。","rank":4571},{"id":"V-owe","en":"owe","zh":"欠钱","more":"归功于;感激","ipa":"[oʊ]","level":"B1","ex":"I still owe my friend fifty dollars.","exZh":"我还欠我朋友五十美元。","rank":1119},{"id":"V-own","en":"own","zh":"自己的","more":"拥有;特有的","ipa":"[oʊn]","level":"A1","ex":"She wants to start her own business one day.","exZh":"她想有一天开一家自己的公司。","rank":238},{"id":"V-owner","en":"owner","zh":"主人","more":"所有者;业主","ipa":"[ˈoʊnər]","level":"A1","ex":"The owner of the dog is looking for it.","exZh":"狗的主人正在找它。","rank":1889},{"id":"V-p-m","en":"p.m.","zh":"下午","more":"午后;晚上","ipa":"[ˌpiː ˈem]","level":"A1","ex":"The meeting starts at three p.m. tomorrow.","exZh":"会议明天下午三点开始。","rank":3930},{"id":"V-pace","en":"pace","zh":"速度","more":"步伐;节奏","ipa":"[peɪs]","level":"B1","ex":"He walked at a fast pace to catch the bus.","exZh":"他快步走着去赶公交车。","rank":5155},{"id":"V-pack","en":"pack","zh":"打包","more":"一包;一群","ipa":"[pæk]","level":"A2","ex":"I need to pack my bags before we leave.","exZh":"我们出发前我得把行李收拾好。","rank":1536},{"id":"V-package","en":"package","zh":"包裹","more":"包装;套餐","ipa":"[ˈpækɪdʒ]","level":"B1","ex":"I sent a package to my sister yesterday.","exZh":"我昨天给姐姐寄了一个包裹。","rank":2874},{"id":"V-packing","en":"packing","zh":"打包","more":"包装;填充物","ipa":"[ˈpækɪŋ]","level":"B1","ex":"I'm packing my bags for the trip.","exZh":"我在为旅行打包行李。","rank":4350},{"id":"V-page","en":"page","zh":"书页","more":"页面;网页","ipa":"[peɪdʒ]","level":"A1","ex":"Open your book to page ten.","exZh":"把书翻到第十页。","rank":1859},{"id":"V-pain","en":"pain","zh":"疼痛","more":"痛苦;辛劳","ipa":"[peɪn]","level":"B1","ex":"I have a pain in my back.","exZh":"我后背有点疼。","rank":735},{"id":"V-painful","en":"painful","zh":"痛苦的","more":"疼痛的;令人不快的","ipa":"[ˈpeɪnfl]","level":"B1","ex":"The news was very painful for her family.","exZh":"这个消息让她家人非常痛苦。","rank":3072},{"id":"V-paint","en":"paint","zh":"画画","more":"油漆;绘画","ipa":"[peɪnt]","level":"A1","ex":"I like to paint on weekends.","exZh":"我喜欢在周末画画。","rank":1798},{"id":"V-painter","en":"painter","zh":"画家","more":"油漆工","ipa":"[ˈpeɪntər]","level":"A2","ex":"My uncle is a famous painter.","exZh":"我叔叔是个著名的画家。","rank":5649},{"id":"V-painting","en":"painting","zh":"绘画","more":"油画;画作","ipa":"[ˈpeɪntɪŋ]","level":"A1","ex":"She is very good at painting.","exZh":"她很擅长绘画。","rank":1904},{"id":"V-pair","en":"pair","zh":"一双","more":"一对;一副","ipa":"[per]","level":"A1","ex":"I need a pair of new shoes.","exZh":"我需要一双新鞋。","rank":1913},{"id":"V-palace","en":"palace","zh":"宫殿","more":"王宫","ipa":"[ˈpæləs]","level":"A1","ex":"They live in a big palace.","exZh":"他们住在一座大宫殿里。","rank":2159},{"id":"V-pale","en":"pale","zh":"苍白的","more":"暗淡的;浅色的","ipa":"[peɪl]","level":"B1","ex":"You look pale. Are you feeling okay?","exZh":"你脸色苍白。你还好吗?","rank":4772},{"id":"V-palm","en":"palm","zh":"手掌","more":"棕榈树;手心","ipa":"[pɑːm]","level":"B1","ex":"She held the coin in her palm.","exZh":"她把硬币握在手掌里。","rank":4183},{"id":"V-pan","en":"pan","zh":"平底锅","more":"盘子;淘洗","ipa":"[pæn]","level":"A2","ex":"I cooked two eggs in a hot pan.","exZh":"我用热平底锅煎了两个鸡蛋。","rank":3961},{"id":"V-pants","en":"pants","zh":"裤子","more":"内裤","ipa":"[pænts]","level":"A1","ex":"These pants are too long for me.","exZh":"这条裤子对我来说太长了。","rank":1372},{"id":"V-paper","en":"paper","zh":"纸","more":"论文;报纸","ipa":"[ˈpeɪpər]","level":"A1","ex":"Can you give me a piece of paper?","exZh":"你能给我一张纸吗?","rank":881},{"id":"V-paradise","en":"paradise","zh":"天堂","more":"乐园;极美的地方","ipa":"[ˈpærədaɪs]","level":"B1","ex":"This quiet beach feels like paradise to me.","exZh":"这片安静的海滩对我来说就像天堂。","rank":3366},{"id":"V-parcel","en":"parcel","zh":"包裹","more":"一块土地","ipa":"[ˈpɑːrsl]","level":"B1","ex":"A parcel came for you this morning.","exZh":"今天早上有你的一个包裹。","rank":10958},{"id":"V-pardon","en":"pardon","zh":"原谅","more":"赦免;请再说一遍","ipa":"[ˈpɑːrd(ə)n]","level":"A1","ex":"Pardon me, I did not hear your name.","exZh":"对不起,我没听清你的名字。","rank":1477},{"id":"V-parent","en":"parent","zh":"父母","more":"家长;父亲或母亲","ipa":"[ˈperənt]","level":"A1","ex":"Every parent wants their child to be happy.","exZh":"每个家长都希望自己的孩子快乐。","rank":3710},{"id":"V-park","en":"park","zh":"公园","more":"停车","ipa":"[pɑːrk]","level":"A1","ex":"We had a picnic in the park today.","exZh":"我们今天在公园里野餐了。","rank":932},{"id":"V-parking","en":"parking","zh":"停车","more":"停车场","ipa":"[ˈpɑːrkɪŋ]","level":"B1","ex":"Parking is free after six in the evening.","exZh":"晚上六点以后停车免费。","rank":2452},{"id":"V-part","en":"part","zh":"部分","more":"角色;零件","ipa":"[pɑːrt]","level":"A2","ex":"I only read part of the book.","exZh":"这本书我只读了一部分。","rank":379},{"id":"V-part-time","en":"part-time","zh":"兼职的","more":"兼职地","ipa":"[ˌpɑːrt ˈtaɪm]","level":"B1","ex":"She has a part-time job at a cafe.","exZh":"她在一家咖啡馆做兼职。","rank":8537},{"id":"V-participate","en":"participate","zh":"参与","more":"参加比赛","ipa":"[pɑːrˈtɪsɪpeɪt]","level":"B1","ex":"Everyone in the class must participate in the game.","exZh":"班上每个人都必须参加这个游戏。","rank":6659},{"id":"V-particularly","en":"particularly","zh":"特别地","more":"尤其是;详细地","ipa":"[pərˈtɪkjələrli]","level":"B1","ex":"I don't like coffee, particularly in the morning.","exZh":"我不喜欢咖啡,尤其是早上。","rank":2869},{"id":"V-partly","en":"partly","zh":"部分地","more":"在一定程度上","ipa":"[ˈpɑːrtli]","level":"A2","ex":"The road was partly closed this morning.","exZh":"今天早上这条路部分封了。","rank":8756},{"id":"V-partner","en":"partner","zh":"伙伴","more":"合伙人;配偶","ipa":"[ˈpɑːrtnər]","level":"A1","ex":"He is my partner in this game.","exZh":"他是我在这个游戏里的搭档。","rank":1085},{"id":"V-party","en":"party","zh":"聚会","more":"政党;当事人","ipa":"[ˈpɑːrti]","level":"A1","ex":"We had a party at my house last night.","exZh":"昨晚我们在我家办了个聚会。","rank":432},{"id":"V-pass","en":"pass","zh":"通过","more":"及格;经过","ipa":"[pæs]","level":"A2","ex":"I hope I can pass the English test.","exZh":"我希望我能通过英语考试。","rank":740},{"id":"V-passage","en":"passage","zh":"段落","more":"通道;走廊","ipa":"[ˈpæsɪdʒ]","level":"A2","ex":"Read this passage and answer my questions.","exZh":"读一下这段文字,然后回答我的问题。","rank":5121},{"id":"V-passenger","en":"passenger","zh":"乘客","more":"旅客","ipa":"[ˈpæsɪndʒər]","level":"A2","ex":"The bus was full of passengers this morning.","exZh":"今天早上公交车上挤满了乘客。","rank":5476},{"id":"V-passport","en":"passport","zh":"护照","ipa":"[ˈpæspɔːrt]","level":"B1","ex":"I need my passport to travel abroad.","exZh":"我出国需要护照。","rank":3505},{"id":"V-password","en":"password","zh":"密码","more":"口令","ipa":"[ˈpæswɜːrd]","level":"B1","ex":"I forgot my password for this website.","exZh":"我忘了这个网站的密码。","rank":5409},{"id":"V-past","en":"past","zh":"过去","more":"往事","ipa":"[pæst]","level":"A1","ex":"In the past, people wrote letters.","exZh":"过去人们都是写信的。","rank":595},{"id":"V-pasta","en":"pasta","zh":"意大利面","ipa":"[ˈpɑːstə]","level":"A2","ex":"I made pasta for dinner tonight.","exZh":"我今晚做了意大利面当晚饭。","rank":6588},{"id":"V-path","en":"path","zh":"小路","more":"道路;路径","ipa":"[pæθ]","level":"A2","ex":"We walked along a small path in the park.","exZh":"我们沿着公园里的一条小路走。","rank":1776},{"id":"V-patience","en":"patience","zh":"耐心","more":"耐性","ipa":"[ˈpeɪʃns]","level":"B1","ex":"You need patience to learn a new language.","exZh":"学一门新语言需要耐心。","rank":3225},{"id":"V-patient","en":"patient","zh":"病人","more":"患者;有耐心的","ipa":"[ˈpeɪʃnt]","level":"A2","ex":"The patient is waiting to see the doctor.","exZh":"病人在等着看医生。","rank":1125},{"id":"V-pattern","en":"pattern","zh":"模式","more":"图案;方式","ipa":"[ˈpætərn]","level":"B1","ex":"There is a clear pattern in the data.","exZh":"这些数据里有一个明显的模式。","rank":3243},{"id":"V-pause","en":"pause","zh":"暂停","more":"停顿;间歇","ipa":"[pɔːz]","level":"B1","ex":"Please pause the video for a moment.","exZh":"请把视频暂停一下。","rank":7662},{"id":"V-pay","en":"pay","zh":"支付","more":"工资;报答","ipa":"[peɪ]","level":"A1","ex":"I will pay for the coffee.","exZh":"我来付咖啡的钱。","rank":387},{"id":"V-pc","en":"PC","zh":"个人电脑","ipa":"","level":"A2","ex":"I use my PC to do homework.","exZh":"我用个人电脑做作业。","rank":11054},{"id":"V-pea","en":"pea","zh":"豌豆","ipa":"[piː]","level":"A2","ex":"She put a pea on her plate.","exZh":"她把一颗豌豆放在盘子里。","rank":10940},{"id":"V-peaceful","en":"peaceful","zh":"和平的","more":"平静的;安宁的","ipa":"[ˈpiːsfl]","level":"A2","ex":"We all want a peaceful world.","exZh":"我们都想要一个和平的世界。","rank":3766},{"id":"V-peanut","en":"peanut","zh":"花生","ipa":"[ˈpiːnʌt]","level":"B1","ex":"I ate a peanut for the first time.","exZh":"我第一次吃了一颗花生。","rank":5708},{"id":"V-pear","en":"pear","zh":"梨子","ipa":"[per]","level":"A2","ex":"This pear is sweet and juicy.","exZh":"这个梨子又甜又多汁。","rank":13342},{"id":"V-pen","en":"pen","zh":"钢笔","ipa":"[pen]","level":"A1","ex":"I have a blue pen in my bag.","exZh":"我包里有一支蓝色钢笔。","rank":2572},{"id":"V-pencil","en":"pencil","zh":"铅笔","ipa":"[ˈpensl]","level":"A1","ex":"I like to draw with a pencil.","exZh":"我喜欢用铅笔画画。","rank":5820},{"id":"V-penny","en":"penny","zh":"便士","more":"一分钱;美分","ipa":"[ˈpeni]","level":"B1","ex":"I found a penny on the street today.","exZh":"我今天在街上捡到一便士。","rank":2300},{"id":"V-people","en":"people","zh":"人们","more":"人;民族","ipa":"[ˈpiːpl]","level":"A1","ex":"Many people like to walk in the park.","exZh":"很多人喜欢在公园里散步。","rank":117},{"id":"V-pepper","en":"pepper","zh":"胡椒","more":"辣椒;胡椒粉","ipa":"[ˈpepər]","level":"A2","ex":"I put some pepper on my eggs.","exZh":"我在鸡蛋上撒了些胡椒。","rank":4796},{"id":"V-per-cent","en":"per cent","zh":"百分之","ipa":"","level":"B1","ex":"About sixty per cent of students passed the exam.","exZh":"大约百分之六十的学生通过了考试。","rank":6010},{"id":"V-percent","en":"percent","zh":"百分之","more":"百分比","ipa":"[pərˈsent]","level":"B1","ex":"The price went up ten percent last month.","exZh":"上个月价格上涨了百分之十。","rank":2604},{"id":"V-perfect","en":"perfect","zh":"完美的","more":"极好的;完全的","ipa":"[ˈpɜːrfɪkt]","level":"A2","ex":"Her English is almost perfect now.","exZh":"她的英语现在几乎完美。","rank":577},{"id":"V-perfectly","en":"perfectly","zh":"完美地","more":"完全地;绝对地","ipa":"[ˈpɜːrfɪktli]","level":"A2","ex":"She can speak English perfectly now.","exZh":"她现在能完美地说英语。","rank":1574},{"id":"V-perform","en":"perform","zh":"表演","more":"执行;演奏","ipa":"[pərˈfɔːrm]","level":"A2","ex":"The students will perform a play tonight.","exZh":"学生们今晚将表演一个短剧。","rank":2732},{"id":"V-performance","en":"performance","zh":"表演","more":"表现;性能","ipa":"[pərˈfɔːrməns]","level":"A2","ex":"Her performance in the school show was great.","exZh":"她在学校演出中的表演非常棒。","rank":2256},{"id":"V-performer","en":"performer","zh":"表演者","more":"演员;演奏者","ipa":"[pərˈfɔːrmər]","level":"B1","ex":"The performer sang a beautiful song for us.","exZh":"这位表演者为我们唱了一首动听的歌。","rank":11226},{"id":"V-perfume","en":"perfume","zh":"香水","more":"香味;香气","ipa":"[pərˈfjuːm]","level":"A2","ex":"She wears a sweet perfume every day.","exZh":"她每天都喷一种甜甜的香水。","rank":4894},{"id":"V-perhaps","en":"perhaps","zh":"也许","ipa":"[pərˈhæps]","level":"A2","ex":"Perhaps we can meet for coffee tomorrow.","exZh":"也许我们明天可以一起喝咖啡。","rank":585},{"id":"V-permanent","en":"permanent","zh":"永久的","more":"长期的;固定的","ipa":"[ˈpɜːrmənənt]","level":"B1","ex":"He is looking for a permanent job in the city.","exZh":"他正在城里找一份长期的工作。","rank":4342},{"id":"V-permit","en":"permit","zh":"允许","more":"许可证;执照","ipa":"[pərˈmɪt]","level":"B1","ex":"My parents don't permit me to stay out late.","exZh":"我父母不允许我在外面待到很晚。","rank":4295},{"id":"V-person","en":"person","zh":"人","more":"个人;本人","ipa":"[ˈpɜːrsn]","level":"A1","ex":"She is a very kind person.","exZh":"她是个非常善良的人。","rank":378},{"id":"V-personal","en":"personal","zh":"个人的","more":"私人的;亲自的","ipa":"[ˈpɜːrsənl]","level":"A1","ex":"This is my personal opinion, not the company's.","exZh":"这是我个人的看法,不代表公司。","rank":911},{"id":"V-personality","en":"personality","zh":"个性","more":"性格;名人","ipa":"[ˌpɜːrsəˈnæləti]","level":"A2","ex":"He has a strong personality and never follows others.","exZh":"他个性很强,从不随大流。","rank":3443},{"id":"V-personally","en":"personally","zh":"亲自","more":"就个人而言;个人看来","ipa":"[ˈpɜːrsənəli]","level":"B1","ex":"I will deal with this problem personally.","exZh":"这个问题我会亲自处理。","rank":1866},{"id":"V-persuade","en":"persuade","zh":"说服","more":"劝说;使相信","ipa":"[pərˈsweɪd]","level":"B1","ex":"I tried to persuade him to come with us.","exZh":"我试着说服他跟我们一起走。","rank":5991},{"id":"V-pet","en":"pet","zh":"宠物","more":"宠爱的;宝贝","ipa":"[pet]","level":"A1","ex":"My pet dog likes to sleep on my bed.","exZh":"我的宠物狗喜欢睡在我的床上。","rank":3236},{"id":"V-petrol","en":"petrol","zh":"汽油","ipa":"[ˈpetrəl]","level":"A2","ex":"We need to buy petrol before the long drive.","exZh":"开长途之前我们得先买点汽油。","rank":7249},{"id":"V-petrol-station","en":"petrol station","zh":"加油站","ipa":"[ˈpetrəl steɪʃn]","level":"A2","ex":"Stop at the next petrol station to buy snacks.","exZh":"在下一个加油站停车买点零食。","rank":7249},{"id":"V-pharmacy","en":"pharmacy","zh":"药房","more":"药店;药剂学","ipa":"[ˈfɑːrməsi]","level":"B1","ex":"The pharmacy is next to the bank.","exZh":"药房就在银行旁边。","rank":8678},{"id":"V-phone","en":"phone","zh":"电话","more":"手机;打电话","ipa":"[foʊn]","level":"A1","ex":"My phone is dead, so I can't call you.","exZh":"我手机没电了,没法给你打电话。","rank":332},{"id":"V-photo","en":"photo","zh":"照片","ipa":"[ˈfoʊtoʊ]","level":"A1","ex":"I took a photo of my dog in the park.","exZh":"我在公园里给我的狗拍了张照片。","rank":1514},{"id":"V-photocopy","en":"photocopy","zh":"复印","more":"复印件","ipa":"[ˈfoʊtoʊkɑːpi]","level":"B1","ex":"Can you photocopy these papers for me?","exZh":"你能帮我把这些文件复印一下吗?","rank":26204},{"id":"V-photograph","en":"photograph","zh":"照片","more":"拍照","ipa":"[ˈfoʊtəɡræf]","level":"A2","ex":"She took a photograph of the old house.","exZh":"她给那栋老房子拍了张照片。","rank":3527},{"id":"V-photographer","en":"photographer","zh":"摄影师","ipa":"[fəˈtɑːɡrəfər]","level":"A2","ex":"The photographer took pictures at our wedding.","exZh":"摄影师在我们的婚礼上拍了照。","rank":4726},{"id":"V-photography","en":"photography","zh":"摄影","more":"摄影术","ipa":"[fəˈtɑːɡrəfi]","level":"A2","ex":"He is learning photography at school this year.","exZh":"他今年在学校学摄影。","rank":6349},{"id":"V-physical","en":"physical","zh":"身体的","more":"物质的;物理的","ipa":"[ˈfɪzɪkl]","level":"A2","ex":"Playing sports is good for your physical health.","exZh":"运动对身体健康有好处。","rank":2147},{"id":"V-piano","en":"piano","zh":"钢琴","ipa":"[piˈænoʊ]","level":"A1","ex":"My sister plays the piano every evening.","exZh":"我妹妹每天晚上都弹钢琴。","rank":2195},{"id":"V-pick","en":"pick","zh":"挑选","more":"采摘;捡起","ipa":"[pɪk]","level":"A1","ex":"You can pick any book you like from the shelf.","exZh":"你可以从书架上挑任何一本你喜欢的书。","rank":551},{"id":"V-picnic","en":"picnic","zh":"野餐","ipa":"[ˈpɪknɪk]","level":"A1","ex":"We had a picnic in the park on Sunday.","exZh":"我们周日去公园野餐了。","rank":5079},{"id":"V-picture","en":"picture","zh":"图片","more":"照片;图画","ipa":"[ˈpɪktʃər]","level":"A1","ex":"Look at the picture on the wall.","exZh":"看墙上的那幅图。","rank":699},{"id":"V-pie","en":"pie","zh":"馅饼","more":"派;饼图","ipa":"[paɪ]","level":"B1","ex":"My mother made an apple pie for us.","exZh":"我妈妈给我们做了个苹果派。","rank":2444},{"id":"V-piece","en":"piece","zh":"块","more":"件;片","ipa":"[piːs]","level":"A1","ex":"Can I have a piece of cake, please?","exZh":"能给我来一块蛋糕吗?","rank":696},{"id":"V-pile","en":"pile","zh":"堆","more":"大量;桩","ipa":"[paɪl]","level":"A2","ex":"There is a pile of books on my desk.","exZh":"我桌上有一堆书。","rank":3943},{"id":"V-pill","en":"pill","zh":"药丸","more":"药片;口服避孕药","ipa":"[pɪl]","level":"A2","ex":"Take this pill after dinner every day.","exZh":"每天晚饭后吃一片这个药。","rank":4042},{"id":"V-pillow","en":"pillow","zh":"枕头","ipa":"[ˈpɪloʊ]","level":"B1","ex":"I need a soft pillow to sleep well.","exZh":"我得有个软枕头才能睡好。","rank":4500},{"id":"V-pilot","en":"pilot","zh":"飞行员","more":"领航员","ipa":"[ˈpaɪlət]","level":"A2","ex":"The pilot landed the plane in heavy rain.","exZh":"飞行员冒着大雨把飞机降落了。","rank":2414},{"id":"V-pin","en":"pin","zh":"别针","more":"钉住;胸针","ipa":"[pɪn]","level":"B1","ex":"I used a pin to hold the papers together.","exZh":"我用一枚别针把文件别在了一起。","rank":3669},{"id":"V-pink","en":"pink","zh":"粉红色","more":"粉红色的;石竹","ipa":"[pɪŋk]","level":"A1","ex":"She wore a pink dress to the party.","exZh":"她穿了条粉红色的裙子去参加聚会。","rank":2678},{"id":"V-pipe","en":"pipe","zh":"管子","more":"烟斗","ipa":"[paɪp]","level":"B1","ex":"Water goes through this pipe to the kitchen.","exZh":"水通过这根管子流到厨房。","rank":3348},{"id":"V-pity","en":"pity","zh":"遗憾","more":"同情;怜悯","ipa":"[ˈpɪti]","level":"A2","ex":"It's a pity you can't come to my party.","exZh":"你不能来我的聚会,真遗憾。","rank":2034},{"id":"V-pizza","en":"pizza","zh":"披萨","ipa":"[ˈpiːtsə]","level":"A1","ex":"We ordered a big pizza for dinner tonight.","exZh":"我们今晚点了个大披萨当晚饭。","rank":2093},{"id":"V-place","en":"place","zh":"地方","more":"位置;放置","ipa":"[pleɪs]","level":"A1","ex":"We found a quiet place to have lunch.","exZh":"我们找了个安静的地方吃午饭。","rank":189},{"id":"V-plain","en":"plain","zh":"朴素的","more":"简单的;平的","ipa":"[pleɪn]","level":"B1","ex":"She wore a plain black dress to the party.","exZh":"她穿了条朴素的黑裙子去参加聚会。","rank":3089},{"id":"V-plan","en":"plan","zh":"计划","more":"打算;平面图","ipa":"[plæn]","level":"A1","ex":"What are your plans for the weekend?","exZh":"你周末有什么计划?","rank":558},{"id":"V-plane","en":"plane","zh":"飞机","more":"平面","ipa":"[pleɪn]","level":"A1","ex":"I took a plane to Beijing last week.","exZh":"我上周坐飞机去了北京。","rank":1063},{"id":"V-planet","en":"planet","zh":"行星","ipa":"[ˈplænɪt]","level":"A2","ex":"Earth is the third planet from the Sun.","exZh":"地球是离太阳第三近的行星。","rank":1100},{"id":"V-plant","en":"plant","zh":"植物","more":"种植;工厂","ipa":"[plænt]","level":"A2","ex":"These plants need water every day.","exZh":"这些植物每天都要浇水。","rank":1958},{"id":"V-plastic","en":"plastic","zh":"塑料","more":"塑料的","ipa":"[ˈplæstɪk]","level":"A2","ex":"The bottle is made of plastic.","exZh":"这个瓶子是塑料做的。","rank":2956},{"id":"V-plate","en":"plate","zh":"盘子","more":"金属板;车牌","ipa":"[pleɪt]","level":"A2","ex":"Put the plates on the table, please.","exZh":"请把盘子放到桌子上。","rank":2104},{"id":"V-platform","en":"platform","zh":"平台","more":"站台;讲台","ipa":"[ˈplætfɔːrm]","level":"B1","ex":"This app works on many different platforms.","exZh":"这个应用能在很多不同的平台上运行。","rank":5326},{"id":"V-play","en":"play","zh":"玩","more":"播放;戏剧","ipa":"[pleɪ]","level":"A1","ex":"Let's play a game after dinner.","exZh":"晚饭后咱们玩个游戏吧。","rank":333},{"id":"V-player","en":"player","zh":"运动员","more":"播放器;演奏者","ipa":"[ˈpleɪər]","level":"A1","ex":"He is a very good football player.","exZh":"他是个非常棒的足球运动员。","rank":2005},{"id":"V-playground","en":"playground","zh":"操场","more":"游乐场","ipa":"[ˈpleɪɡraʊnd]","level":"A2","ex":"The kids are playing on the playground.","exZh":"孩子们正在操场上玩。","rank":8249},{"id":"V-pleasant","en":"pleasant","zh":"令人愉快的","more":"宜人的;和蔼的","ipa":"[ˈpleznt]","level":"A2","ex":"We had a pleasant walk in the park.","exZh":"我们在公园里散步,走得很愉快。","rank":3258},{"id":"V-please","en":"please","zh":"请","more":"使高兴","ipa":"[pliːz]","level":"A1","ex":"Please close the door when you leave.","exZh":"你走的时候请把门关上。","rank":121},{"id":"V-pleased","en":"pleased","zh":"高兴的","more":"满意的","ipa":"[pliːzd]","level":"A2","ex":"I'm very pleased to meet you.","exZh":"见到你我很高兴。","rank":2002},{"id":"V-pleasure","en":"pleasure","zh":"愉快","more":"乐事;荣幸","ipa":"[ˈpleʒər]","level":"A1","ex":"It was a pleasure to meet you.","exZh":"见到你真高兴。","rank":999},{"id":"V-plenty","en":"plenty","zh":"大量","more":"充足;丰富","ipa":"[ˈplenti]","level":"A2","ex":"We have plenty of time before the movie starts.","exZh":"电影开场前我们时间还很多。","rank":1370},{"id":"V-plug","en":"plug","zh":"插头","more":"塞子;堵塞","ipa":"[plʌɡ]","level":"B1","ex":"I can't find the plug for my laptop.","exZh":"我找不到笔记本电脑的插头了。","rank":5175},{"id":"V-pm","en":"pm","zh":"下午","ipa":"[ˌpiː ˈem]","level":"A1","ex":"Let's meet at three pm tomorrow.","exZh":"我们明天下午三点见吧。","rank":4486},{"id":"V-pocket","en":"pocket","zh":"口袋","more":"衣袋;小型的","ipa":"[ˈpɑːkɪt]","level":"A1","ex":"He put the keys in his pocket.","exZh":"他把钥匙放进了口袋。","rank":1915},{"id":"V-pocket-money","en":"pocket money","zh":"零用钱","ipa":"","level":"B1","ex":"I get ten dollars a week as pocket money.","exZh":"我每周有十美元零用钱。","rank":1915},{"id":"V-point","en":"point","zh":"要点","more":"观点;得分","ipa":"[pɔɪnt]","level":"A1","ex":"The point is that we don't have enough time.","exZh":"关键在于我们时间不够。","rank":415},{"id":"V-poisonous","en":"poisonous","zh":"有毒的","more":"恶毒的","ipa":"[ˈpɔɪzənəs]","level":"B1","ex":"Some snakes are poisonous, so be careful.","exZh":"有些蛇有毒,小心点。","rank":7915},{"id":"V-police","en":"police","zh":"警察","more":"警方","ipa":"[pəˈliːs]","level":"A2","ex":"The police are looking for the man.","exZh":"警察正在找那个人。","rank":349},{"id":"V-police-officer","en":"police officer","zh":"警官","ipa":"[pəˈlis ˈɔfɪsɚ]","level":"A2","ex":"A police officer asked me for my name.","exZh":"一位警官问了我的名字。","rank":743},{"id":"V-police-station","en":"police station","zh":"警察局","more":"派出所","ipa":"[pəˈliːs steɪʃn]","level":"A2","ex":"He took the lost bag to the police station.","exZh":"他把捡到的包送到了警察局。","rank":805},{"id":"V-policeman","en":"policeman","zh":"男警察","ipa":"[pəˈliːsmən]","level":"A2","ex":"A policeman helped the old lady cross the road.","exZh":"一位男警察扶老太太过了马路。","rank":3429},{"id":"V-policewoman","en":"policewoman","zh":"女警察","more":"女警官","ipa":"[pəˈliːswʊmən]","level":"A2","ex":"The policewoman helped the lost child find his mother.","exZh":"那位女警察帮走丢的孩子找到了妈妈。","rank":23568},{"id":"V-polite","en":"polite","zh":"有礼貌的","more":"客气的;文雅的","ipa":"[pəˈlaɪt]","level":"A2","ex":"She is always polite to her teachers and classmates.","exZh":"她对老师和同学总是很有礼貌。","rank":4357},{"id":"V-politician","en":"politician","zh":"政治家","more":"政客","ipa":"[ˌpɑːləˈtɪʃn]","level":"B1","ex":"The politician promised to build more schools in our town.","exZh":"这位政治家承诺要在我们镇上建更多学校。","rank":6914},{"id":"V-pollute","en":"pollute","zh":"污染","more":"弄脏;败坏","ipa":"[pəˈluːt]","level":"A2","ex":"Factories near the river pollute the water every day.","exZh":"河边的工厂每天都在污染河水。","rank":29359},{"id":"V-pollution","en":"pollution","zh":"污染","ipa":"[pəˈluːʃn]","level":"A1","ex":"Air pollution in big cities is getting worse.","exZh":"大城市的空气污染越来越严重了。","rank":11627},{"id":"V-pond","en":"pond","zh":"池塘","ipa":"[pɑːnd]","level":"B1","ex":"There are some small fish in the pond.","exZh":"池塘里有一些小鱼。","rank":5652},{"id":"V-pool","en":"pool","zh":"游泳池","more":"水塘;台球","ipa":"[puːl]","level":"A1","ex":"The children are swimming in the pool.","exZh":"孩子们正在游泳池里游泳。","rank":1715},{"id":"V-poor","en":"poor","zh":"贫穷的","more":"可怜的;差的","ipa":"[pʊr; pɔːr]","level":"A1","ex":"My grandparents were very poor when they were young.","exZh":"我爷爷奶奶年轻时非常穷。","rank":593},{"id":"V-popcorn","en":"popcorn","zh":"爆米花","ipa":"[ˈpɑːpkɔːrn]","level":"B1","ex":"We ate popcorn while watching the movie.","exZh":"我们一边看电影一边吃爆米花。","rank":6741},{"id":"V-popular","en":"popular","zh":"受欢迎的","more":"流行的;大众的","ipa":"[ˈpɑːpjələr]","level":"A2","ex":"This song is very popular with young people.","exZh":"这首歌在年轻人中很受欢迎。","rank":2331},{"id":"V-population","en":"population","zh":"人口","ipa":"[ˌpɑːpjuˈleɪʃn]","level":"A2","ex":"The population of our city is growing very fast.","exZh":"我们城市的人口增长得很快。","rank":3644},{"id":"V-port","en":"port","zh":"港口","more":"端口","ipa":"[pɔːrt]","level":"B1","ex":"The ship arrived at the port this morning.","exZh":"那条船今天早上到达了港口。","rank":3211},{"id":"V-position","en":"position","zh":"位置","more":"职位;姿态","ipa":"[pəˈzɪʃn]","level":"A2","ex":"The hotel is in a good position near the beach.","exZh":"这家酒店位置很好,离海滩很近。","rank":991},{"id":"V-positive","en":"positive","zh":"积极的","more":"确定的;肯定的","ipa":"[ˈpɑːzətɪv]","level":"B1","ex":"Try to stay positive, even when things are hard.","exZh":"就算事情不顺,也尽量保持积极。","rank":2050},{"id":"V-positively","en":"positively","zh":"积极地","more":"肯定地;确定地","ipa":"[ˈpɑːzətɪvli]","level":"B1","ex":"You should think positively about your new job.","exZh":"你应该积极地看待你的新工作。","rank":8750},{"id":"V-possess","en":"possess","zh":"拥有","more":"具有;控制","ipa":"[pəˈzes]","level":"B1","ex":"She possesses a great talent for music.","exZh":"她拥有很高的音乐天赋。","rank":6383},{"id":"V-possibility","en":"possibility","zh":"可能性","more":"可能发生的事","ipa":"[ˌpɑːsəˈbɪləti]","level":"B1","ex":"There is a possibility that it will rain tomorrow.","exZh":"明天有可能下雨。","rank":2878},{"id":"V-possible","en":"possible","zh":"可能的","more":"可行的","ipa":"[ˈpɑːsəbl]","level":"A2","ex":"It is possible that she will come later.","exZh":"她可能晚点会来。","rank":597},{"id":"V-possibly","en":"possibly","zh":"也许","more":"可能;或许","ipa":"[ˈpɑːsəbli]","level":"A2","ex":"I will possibly be a little late tonight.","exZh":"我今晚可能会晚一点到。","rank":1456},{"id":"V-post","en":"post","zh":"邮寄","more":"邮件;帖子","ipa":"[poʊst]","level":"A1","ex":"I will post the letter this afternoon.","exZh":"我今天下午会把信寄出去。","rank":1802},{"id":"V-post-office","en":"post office","zh":"邮局","ipa":"[ˈpost ɔfɪs]","level":"A2","ex":"I need to go to the post office.","exZh":"我得去一趟邮局。","rank":1802},{"id":"V-postcard","en":"postcard","zh":"明信片","ipa":"[ˈpoʊstkɑːrd]","level":"B1","ex":"She sent me a postcard from Paris.","exZh":"她从巴黎给我寄了一张明信片。","rank":9312},{"id":"V-postman","en":"postman","zh":"邮递员","ipa":"[ˈpoʊstmən]","level":"B1","ex":"The postman brings our letters every morning.","exZh":"邮递员每天早上给我们送信。","rank":11566},{"id":"V-pot","en":"pot","zh":"锅","more":"罐;壶","ipa":"[pɑːt]","level":"B1","ex":"She put the soup in a big pot.","exZh":"她把汤盛进了一个大锅里。","rank":2447},{"id":"V-pound","en":"pound","zh":"英镑","more":"磅;猛击","ipa":"[paʊnd]","level":"B1","ex":"I need to change some money into pounds at the bank.","exZh":"我需要去银行换些英镑。","rank":4023},{"id":"V-pour","en":"pour","zh":"倒出","more":"倾泻;涌入","ipa":"[pɔːr]","level":"A2","ex":"Can you pour me a glass of water, please?","exZh":"你能给我倒杯水吗?","rank":3304},{"id":"V-poverty","en":"poverty","zh":"贫困","more":"贫穷;缺乏","ipa":"[ˈpɑːvərti]","level":"B1","ex":"Many families in this area still live in poverty.","exZh":"这个地区的许多家庭仍然生活在贫困中。","rank":5791},{"id":"V-powder","en":"powder","zh":"粉末","more":"粉;火药","ipa":"[ˈpaʊdər]","level":"B1","ex":"Mix the powder with warm water before you drink it.","exZh":"喝之前把粉末和温水混合。","rank":3716},{"id":"V-power","en":"power","zh":"力量","more":"电力;权力","ipa":"[ˈpaʊər]","level":"A2","ex":"She used all her power to push the heavy door open.","exZh":"她用尽全力把沉重的门推开。","rank":507},{"id":"V-powerful","en":"powerful","zh":"强大的","more":"有力的;有影响力的","ipa":"[ˈpaʊərfl]","level":"A2","ex":"This car is very powerful and quite fast.","exZh":"这辆车非常强劲,而且相当快。","rank":1473},{"id":"V-practical","en":"practical","zh":"实用的","more":"实际的;切实可行的","ipa":"[ˈpræktɪkl]","level":"B1","ex":"This bag is small but very practical for travel.","exZh":"这个包很小,但旅行时很实用。","rank":4645},{"id":"V-practice","en":"practice","zh":"练习","more":"实践;惯例","ipa":"[ˈpræktɪs]","level":"A1","ex":"You need practice every day to get better.","exZh":"你需要每天练习才能变得更好。","rank":1475},{"id":"V-practise","en":"practise","zh":"练习","more":"实践;从事","ipa":"[ˈpræktɪs]","level":"A1","ex":"I practise speaking English every day after school.","exZh":"我每天放学后练习说英语。","rank":9756},{"id":"V-prayer","en":"prayer","zh":"祈祷","more":"祷告;祷文","ipa":"[prer]","level":"B1","ex":"She said a short prayer before going to bed.","exZh":"她睡觉前做了一个简短的祈祷。","rank":3287},{"id":"V-precious","en":"precious","zh":"珍贵的","more":"宝贵的;珍稀的","ipa":"[ˈpreʃəs]","level":"B1","ex":"This old ring is very precious to my family.","exZh":"这枚旧戒指对我家来说非常珍贵。","rank":2361},{"id":"V-predict","en":"predict","zh":"预测","more":"预言;预料","ipa":"[prɪˈdɪkt]","level":"A2","ex":"It is hard to predict the weather tomorrow.","exZh":"明天的天气很难预测。","rank":7097},{"id":"V-prediction","en":"prediction","zh":"预测","more":"预报;预言","ipa":"[prɪˈdɪkʃn]","level":"A2","ex":"My prediction about the weather was wrong.","exZh":"我对天气的预测错了。","rank":14645},{"id":"V-prefer","en":"prefer","zh":"更喜欢","more":"宁愿","ipa":"[prɪˈfɜːr]","level":"A2","ex":"I prefer tea to coffee in the morning.","exZh":"早上我更喜欢喝茶,而不是咖啡。","rank":1640},{"id":"V-pregnant","en":"pregnant","zh":"怀孕的","more":"意味深长的;充满的","ipa":"[ˈpreɡnənt]","level":"B1","ex":"My sister is pregnant and she is very happy.","exZh":"我姐姐怀孕了,她非常开心。","rank":1245},{"id":"V-preparation","en":"preparation","zh":"准备","more":"预备;制剂","ipa":"[ˌprepəˈreɪʃn]","level":"B1","ex":"We need more preparation before the meeting starts.","exZh":"会议开始前我们需要做更多准备。","rank":8438},{"id":"V-prepare","en":"prepare","zh":"准备","more":"预备;调制","ipa":"[prɪˈper]","level":"A2","ex":"I will prepare some food for the party.","exZh":"我要为派对准备一些食物。","rank":1630},{"id":"V-prepared","en":"prepared","zh":"准备好的","more":"愿意的;预制的","ipa":"[prɪˈperd]","level":"B1","ex":"I am prepared for the test tomorrow.","exZh":"我为明天的考试做好了准备。","rank":1544},{"id":"V-prescription","en":"prescription","zh":"处方","more":"药方;秘诀","ipa":"[prɪˈskrɪpʃn]","level":"B1","ex":"The doctor gave me a prescription for my cough.","exZh":"医生给我开了一张治咳嗽的处方。","rank":6123},{"id":"V-present","en":"present","zh":"礼物","more":"现在;赠送","ipa":"[ˈpreznt]","level":"A1","ex":"I got a nice present from my friend.","exZh":"我从朋友那里收到一份很好的礼物。","rank":864},{"id":"V-presentation","en":"presentation","zh":"演讲","more":"展示;介绍","ipa":"[ˌpriːzenˈteɪʃn]","level":"B1","ex":"I gave a short presentation in class today.","exZh":"我今天在课上做了一个简短的演讲。","rank":5565},{"id":"V-preserve","en":"preserve","zh":"保护","more":"保存;保留","ipa":"[prɪˈzɜːrv]","level":"B1","ex":"We need to preserve these old buildings.","exZh":"我们需要保护这些老建筑。","rank":6598},{"id":"V-president","en":"president","zh":"总统","more":"主席;校长","ipa":"[ˈprezɪdənt]","level":"B1","ex":"The president spoke to the country last night.","exZh":"总统昨晚向全国发表了讲话。","rank":709},{"id":"V-press","en":"press","zh":"按下","more":"压;新闻界","ipa":"[pres]","level":"B1","ex":"Please press this button to open the door.","exZh":"请按这个按钮开门。","rank":1154},{"id":"V-pressure","en":"pressure","zh":"压力","more":"压强;施压","ipa":"[ˈpreʃər]","level":"A2","ex":"I'm under a lot of pressure at work.","exZh":"我工作压力很大。","rank":1282},{"id":"V-pretend","en":"pretend","zh":"假装","ipa":"[prɪˈtend]","level":"A2","ex":"He pretended to be sick and stayed home.","exZh":"他假装生病,待在家里。","rank":1607},{"id":"V-pretty","en":"pretty","zh":"漂亮的","more":"相当;挺","ipa":"[ˈprɪti]","level":"A1","ex":"Your new dress is very pretty.","exZh":"你的新裙子很漂亮。","rank":301},{"id":"V-prevent","en":"prevent","zh":"阻止","more":"预防;防止","ipa":"[prɪˈvent]","level":"A2","ex":"I couldn't prevent him from leaving.","exZh":"我没能阻止他离开。","rank":3385},{"id":"V-previous","en":"previous","zh":"以前的","more":"上一个;早先的","ipa":"[ˈpriːviəs]","level":"B1","ex":"I didn't know his previous name.","exZh":"我不知道他以前的名字。","rank":3523},{"id":"V-price","en":"price","zh":"价格","more":"代价;物价","ipa":"[praɪs]","level":"A1","ex":"The price of this shirt is too high.","exZh":"这件衬衫的价格太高了。","rank":1178},{"id":"V-print","en":"print","zh":"打印","more":"印刷;刊登","ipa":"[prɪnt]","level":"A2","ex":"Can you print two copies for me?","exZh":"你能帮我打印两份吗?","rank":3028},{"id":"V-printer","en":"printer","zh":"打印机","more":"印刷工","ipa":"[ˈprɪntər]","level":"A2","ex":"The printer is not working again.","exZh":"打印机又坏了。","rank":10918},{"id":"V-prison","en":"prison","zh":"监狱","more":"监禁","ipa":"[ˈprɪzn]","level":"B1","ex":"He spent three years in prison.","exZh":"他在监狱里待了三年。","rank":905},{"id":"V-private","en":"private","zh":"私人的","more":"私下的;私立的","ipa":"[ˈpraɪvət]","level":"A2","ex":"This is my private room, so please knock first.","exZh":"这是我的私人房间,请先敲门。","rank":987},{"id":"V-prize","en":"prize","zh":"奖品","more":"奖金;奖赏","ipa":"[praɪz]","level":"B1","ex":"The prize for the winner is a new bike.","exZh":"给获胜者的奖品是一辆新自行车。","rank":2590},{"id":"V-probably","en":"probably","zh":"大概","more":"很可能;或许","ipa":"[ˈprɑːbəbli]","level":"A2","ex":"He is probably at home right now.","exZh":"他现在大概在家。","rank":368},{"id":"V-problem","en":"problem","zh":"问题","more":"难题;麻烦","ipa":"[ˈprɑːbləm]","level":"A1","ex":"This is a big problem for us.","exZh":"这对我们来说是个大问题。","rank":337},{"id":"V-produce","en":"produce","zh":"生产","more":"制造;产生","ipa":"[prəˈduːs]","level":"A2","ex":"The farm produces milk and eggs.","exZh":"这个农场生产牛奶和鸡蛋。","rank":3397},{"id":"V-product","en":"product","zh":"产品","more":"产物;作品","ipa":"[ˈprɑːdʌkt]","level":"A2","ex":"Their new product sells very well.","exZh":"他们的新产品卖得很好。","rank":3171},{"id":"V-production","en":"production","zh":"生产","more":"产量;制作","ipa":"[prəˈdʌkʃn]","level":"A2","ex":"The production of this car takes a long time.","exZh":"生产这种汽车需要很长时间。","rank":2778},{"id":"V-profession","en":"profession","zh":"职业","more":"行业;同行","ipa":"[prəˈfeʃn]","level":"B1","ex":"Teaching is a good profession for her.","exZh":"教书对她来说是个不错的职业。","rank":4760},{"id":"V-professional","en":"professional","zh":"专业的","more":"职业的;专业人士","ipa":"[prəˈfeʃənl]","level":"A2","ex":"Her work is always very professional.","exZh":"她的工作总是很专业。","rank":1922},{"id":"V-program","en":"program","zh":"程序","more":"节目;计划","ipa":"[ˈproʊɡræm]","level":"A1","ex":"This computer program helps us do our work.","exZh":"这个电脑程序能帮我们干活。","rank":1635},{"id":"V-programme","en":"programme","zh":"节目","more":"计划;程序","ipa":"[ˈproʊɡræm]","level":"A1","ex":"We watched a TV programme about animals.","exZh":"我们看了一个关于动物的电视节目。","rank":5527},{"id":"V-progress","en":"progress","zh":"进步","more":"进展;前进","ipa":"[ˈprɑːɡres; ˈprɑːɡrəs]","level":"B1","ex":"You are making good progress in English.","exZh":"你的英语进步很大。","rank":2459},{"id":"V-promise","en":"promise","zh":"承诺","more":"答应;希望","ipa":"[ˈprɑːmɪs]","level":"A2","ex":"I promise I will be there on time.","exZh":"我保证我会准时到那儿。","rank":567},{"id":"V-promote","en":"promote","zh":"促进","more":"晋升;推广","ipa":"[prəˈmoʊt]","level":"B1","ex":"Daily exercise helps promote good health.","exZh":"每天运动有助于促进健康。","rank":8519},{"id":"V-pronounce","en":"pronounce","zh":"发音","more":"宣布;宣判","ipa":"[prəˈnaʊns]","level":"A2","ex":"How do you pronounce this word?","exZh":"这个词怎么读?","rank":7544},{"id":"V-pronunciation","en":"pronunciation","zh":"发音","more":"读法","ipa":"[prəˌnʌnsiˈeɪʃn]","level":"A2","ex":"Your pronunciation is much better now.","exZh":"你的发音现在好多了。","rank":25594},{"id":"V-proof","en":"proof","zh":"证据","more":"证明;校样","ipa":"[pruːf]","level":"B1","ex":"Do you have any proof that he took it?","exZh":"你有他拿走它的证据吗?","rank":1649},{"id":"V-proper","en":"proper","zh":"适当的","more":"合适的;正规的","ipa":"[ˈprɑːpər]","level":"A2","ex":"You need to wear proper clothes for the interview.","exZh":"面试要穿合适的衣服。","rank":2019},{"id":"V-properly","en":"properly","zh":"正确地","more":"恰当地;好好地","ipa":"[ˈprɑːpərli]","level":"B1","ex":"Make sure you do the job properly.","exZh":"一定要把这件事做好。","rank":2310},{"id":"V-property","en":"property","zh":"财产","more":"房产;性质","ipa":"[ˈprɑːpərti]","level":"B1","ex":"This house is his private property.","exZh":"这栋房子是他的私人财产。","rank":1716},{"id":"V-proposal","en":"proposal","zh":"提议","more":"求婚;提案","ipa":"[prəˈpoʊzl]","level":"B1","ex":"I think his proposal is a good idea.","exZh":"我觉得他的提议是个好主意。","rank":4104},{"id":"V-protect","en":"protect","zh":"保护","more":"防护","ipa":"[prəˈtekt]","level":"B1","ex":"This cream will protect your skin from the sun.","exZh":"这款面霜能保护你的皮肤不受日晒。","rank":824},{"id":"V-protest","en":"protest","zh":"抗议","more":"反对","ipa":"[ˈproʊtest; prəˈtest]","level":"B1","ex":"Hundreds of people came to protest against the new law.","exZh":"数百人前来抗议这项新法律。","rank":4711},{"id":"V-proud","en":"proud","zh":"自豪的","more":"骄傲的;得意的","ipa":"[praʊd]","level":"B1","ex":"I am very proud of my little sister.","exZh":"我为我妹妹感到非常自豪。","rank":926},{"id":"V-prove","en":"prove","zh":"证明","more":"证实;结果是","ipa":"[pruːv]","level":"B1","ex":"Can you prove that you were at home?","exZh":"你能证明你当时在家吗?","rank":986},{"id":"V-provide","en":"provide","zh":"提供","more":"供应;规定","ipa":"[prəˈvaɪd]","level":"A2","ex":"The hotel provides free breakfast for all guests.","exZh":"这家酒店为所有客人提供免费早餐。","rank":2580},{"id":"V-pub","en":"pub","zh":"酒吧","more":"酒馆","ipa":"[pʌb]","level":"B1","ex":"Let's meet at the pub after work.","exZh":"下班后我们在酒吧见吧。","rank":4095},{"id":"V-public","en":"public","zh":"公共的","more":"公众;公开的","ipa":"[ˈpʌblɪk]","level":"A2","ex":"You can use this public library for free.","exZh":"你可以免费使用这个公共图书馆。","rank":920},{"id":"V-public-transport","en":"public transport","zh":"公共交通","ipa":"","level":"B1","ex":"I take public transport to work every day.","exZh":"我每天坐公共交通上班。","rank":3643},{"id":"V-publish","en":"publish","zh":"出版","more":"发表;发行","ipa":"[ˈpʌblɪʃ]","level":"A2","ex":"They will publish his new book next month.","exZh":"他们下个月会出版他的新书。","rank":7092},{"id":"V-pull","en":"pull","zh":"拉","more":"拔;拖","ipa":"[pʊl]","level":"A2","ex":"Pull the door open, don't push it.","exZh":"把门拉开,别推。","rank":662},{"id":"V-pullover","en":"pullover","zh":"套头毛衣","ipa":"[ˈpʊloʊvər]","level":"B1","ex":"He put on a warm pullover before going out.","exZh":"他出门前穿上了一件暖和的套头毛衣。","rank":45223},{"id":"V-pump","en":"pump","zh":"打气筒","more":"泵;打气","ipa":"[pʌmp]","level":"B1","ex":"I need a pump to fill my bike tires.","exZh":"我需要一个打气筒给自行车轮胎打气。","rank":4162},{"id":"V-punish","en":"punish","zh":"惩罚","more":"处罚","ipa":"[ˈpʌnɪʃ]","level":"B1","ex":"The teacher will punish students who cheat.","exZh":"老师会惩罚作弊的学生。","rank":3794},{"id":"V-puppy","en":"puppy","zh":"小狗","ipa":"[ˈpʌpi]","level":"B1","ex":"Their new puppy likes to sleep all day.","exZh":"他们新养的小狗喜欢整天睡觉。","rank":4617},{"id":"V-pure","en":"pure","zh":"纯净的","more":"纯粹的;纯洁的","ipa":"[pjʊr]","level":"B1","ex":"This bottle of water is pure and safe to drink.","exZh":"这瓶水很纯净,可以放心喝。","rank":2168},{"id":"V-purple","en":"purple","zh":"紫色","more":"紫色的","ipa":"[ˈpɜːrpl]","level":"A1","ex":"She wore a purple dress to the party.","exZh":"她穿了一条紫色的裙子去参加派对。","rank":4649},{"id":"V-purpose","en":"purpose","zh":"目的","more":"用途;意图","ipa":"[ˈpɜːrpəs]","level":"A2","ex":"I don't understand the purpose of this meeting.","exZh":"我不明白这个会议的目的是什么。","rank":1687},{"id":"V-purse","en":"purse","zh":"钱包","more":"手提包","ipa":"[pɜːrs]","level":"B1","ex":"She took some money out of her purse.","exZh":"她从钱包里拿出了一些钱。","rank":3130},{"id":"V-push","en":"push","zh":"推","more":"推动;促使","ipa":"[pʊʃ]","level":"A1","ex":"Just push the door and it will open.","exZh":"推一下门,门就开了。","rank":1064},{"id":"V-put","en":"put","zh":"放","more":"提出;表达","ipa":"[pʊt]","level":"A1","ex":"Please put your bag on the chair.","exZh":"请把你的包放在椅子上。","rank":169},{"id":"V-puzzle","en":"puzzle","zh":"谜题","more":"拼图;使困惑","ipa":"[ˈpʌzl]","level":"B1","ex":"I can't solve this puzzle by myself.","exZh":"这个谜题我一个人解不开。","rank":5215},{"id":"V-quality","en":"quality","zh":"质量","more":"品质;特性","ipa":"[ˈkwɑːləti]","level":"A2","ex":"The quality of this coat is very good.","exZh":"这件外套的质量很好。","rank":2817},{"id":"V-quantity","en":"quantity","zh":"数量","more":"大量;总量","ipa":"[ˈkwɑːntəti]","level":"B1","ex":"We need a large quantity of water.","exZh":"我们需要大量的水。","rank":12236},{"id":"V-quarter","en":"quarter","zh":"四分之一","more":"季度;一刻钟","ipa":"[ˈkwɔːrtər]","level":"A1","ex":"I ate a quarter of the cake.","exZh":"我吃了四分之一块蛋糕。","rank":2808},{"id":"V-question","en":"question","zh":"问题","more":"询问;疑问","ipa":"[ˈkwestʃən]","level":"A1","ex":"Can I ask you a question?","exZh":"我可以问你一个问题吗?","rank":494},{"id":"V-questionnaire","en":"questionnaire","zh":"问卷","more":"调查表","ipa":"[ˌkwestʃəˈner]","level":"B1","ex":"Please fill in this questionnaire before you leave.","exZh":"请在离开前填好这份问卷。","rank":23537},{"id":"V-queue","en":"queue","zh":"队伍","more":"排队;队列","ipa":"[kjuː]","level":"B1","ex":"There is a long queue at the bus stop.","exZh":"公交站那儿排着长长的队伍。","rank":9906},{"id":"V-quick","en":"quick","zh":"快的","more":"迅速的;敏捷的","ipa":"[kwɪk]","level":"A2","ex":"She gave me a quick answer.","exZh":"她很快给了我一个答复。","rank":711},{"id":"V-quickly","en":"quickly","zh":"迅速地","more":"很快地","ipa":"[ˈkwɪkli]","level":"A1","ex":"He quickly finished his homework and went out.","exZh":"他很快写完作业就出去了。","rank":884},{"id":"V-quiet","en":"quiet","zh":"安静的","more":"平静的;文静的","ipa":"[ˈkwaɪət]","level":"A1","ex":"Please be quiet, the baby is sleeping.","exZh":"请安静点,宝宝在睡觉。","rank":659},{"id":"V-quietly","en":"quietly","zh":"安静地","more":"轻声地;悄悄地","ipa":"[ˈkwaɪətli]","level":"A2","ex":"She closed the door quietly and went to bed.","exZh":"她轻轻地把门关上,然后去睡觉了。","rank":2748},{"id":"V-quit","en":"quit","zh":"停止","more":"放弃;辞职","ipa":"[kwɪt]","level":"A2","ex":"My father quit smoking last year.","exZh":"我爸爸去年戒烟了。","rank":1046},{"id":"V-quite","en":"quite","zh":"相当","more":"完全;很","ipa":"[kwaɪt]","level":"A2","ex":"The film was quite good, but a bit long.","exZh":"这部电影相当不错,就是有点长。","rank":427},{"id":"V-race","en":"race","zh":"赛跑","more":"比赛;种族","ipa":"[reɪs]","level":"B1","ex":"He won the race by two seconds.","exZh":"他以两秒的优势赢了这场比赛。","rank":1169},{"id":"V-racket","en":"racket","zh":"球拍","more":"吵闹;喧哗","ipa":"[ˈrækɪt]","level":"A2","ex":"I bought a new tennis racket yesterday.","exZh":"我昨天买了一个新网球拍。","rank":6956},{"id":"V-radio","en":"radio","zh":"收音机","more":"广播;电台","ipa":"[ˈreɪdioʊ]","level":"A1","ex":"My grandfather listens to the radio every evening.","exZh":"我爷爷每天晚上都听收音机。","rank":877},{"id":"V-rail","en":"rail","zh":"铁轨","more":"扶手;栏杆","ipa":"[reɪl]","level":"B1","ex":"The train ran off the rails.","exZh":"火车冲出了铁轨。","rank":7668},{"id":"V-railway","en":"railway","zh":"铁路","more":"铁道;铁路系统","ipa":"[ˈreɪlweɪ]","level":"B1","ex":"The new railway goes through my town.","exZh":"这条新铁路穿过我们镇。","rank":6376},{"id":"V-rain","en":"rain","zh":"雨","more":"下雨;雨天","ipa":"[reɪn]","level":"A1","ex":"The rain stopped and the sun came out.","exZh":"雨停了,太阳出来了。","rank":1357},{"id":"V-raincoat","en":"raincoat","zh":"雨衣","ipa":"[ˈreɪnkoʊt]","level":"A2","ex":"Put on your raincoat before you go out.","exZh":"出门前把雨衣穿上。","rank":16415},{"id":"V-rainforest","en":"rainforest","zh":"雨林","ipa":"[ˈreɪnfɔːrɪst]","level":"B1","ex":"Many animals live in the rainforest.","exZh":"很多动物生活在雨林里。","rank":16284},{"id":"V-rainy","en":"rainy","zh":"下雨的","more":"多雨的","ipa":"[ˈreɪni]","level":"A1","ex":"I don't like rainy days at all.","exZh":"我一点也不喜欢下雨天。","rank":9556},{"id":"V-raise","en":"raise","zh":"提高","more":"抚养;筹集","ipa":"[reɪz]","level":"A2","ex":"The shop raised its prices last week.","exZh":"这家店上周涨价了。","rank":1321},{"id":"V-rapid","en":"rapid","zh":"迅速的","ipa":"[ˈræpɪd]","level":"B1","ex":"The city has seen rapid growth in recent years.","exZh":"这座城市近年来发展迅速。","rank":7197},{"id":"V-rare","en":"rare","zh":"稀有","more":"半熟的","ipa":"[rer]","level":"B1","ex":"This bird is so rare that few people have seen it.","exZh":"这种鸟非常稀有,很少有人见过。","rank":2423},{"id":"V-rarely","en":"rarely","zh":"很少","more":"难得","ipa":"[ˈrerli]","level":"B1","ex":"He rarely eats out because he likes cooking.","exZh":"他很少在外面吃饭,因为他喜欢做饭。","rank":5525},{"id":"V-rather","en":"rather","zh":"相当","more":"宁愿","ipa":"[ˈræðər]","level":"A2","ex":"The test was rather easy for most students.","exZh":"这次考试对大多数学生来说相当容易。","rank":648},{"id":"V-raw","en":"raw","zh":"生的","more":"未加工的;原始的","ipa":"[rɔː]","level":"A2","ex":"Don't eat raw meat; it can make you sick.","exZh":"别吃生肉,会让你生病的。","rank":3910},{"id":"V-reach","en":"reach","zh":"到达","more":"伸手够;达到","ipa":"[riːtʃ]","level":"A2","ex":"We walked all day and finally reached the top.","exZh":"我们走了一整天,终于到达了山顶。","rank":1086},{"id":"V-react","en":"react","zh":"反应","more":"回应","ipa":"[riˈækt]","level":"B1","ex":"How did she react when you told her the news?","exZh":"你告诉她这个消息时,她是什么反应?","rank":4709},{"id":"V-read","en":"read","zh":"阅读","more":"读起来","ipa":"[riːd]","level":"A1","ex":"I like to read books before I go to sleep.","exZh":"我喜欢睡前看书。","rank":461},{"id":"V-reader","en":"reader","zh":"读者","more":"阅读器","ipa":"[ˈriːdər]","level":"A1","ex":"She is a fast reader and finishes a book a week.","exZh":"她读书很快,一周就能看完一本。","rank":8936},{"id":"V-reading","en":"reading","zh":"阅读","more":"读物;读数","ipa":"[ˈriːdɪŋ]","level":"A1","ex":"Reading before bed helps me relax.","exZh":"睡前阅读能让我放松。","rank":1290},{"id":"V-ready","en":"ready","zh":"准备好","more":"现成的","ipa":"[ˈredi]","level":"A1","ex":"Are you ready to go now?","exZh":"你现在准备好出发了吗?","rank":288},{"id":"V-real","en":"real","zh":"真实的","more":"真正的","ipa":"[ˈriːəl]","level":"A1","ex":"Is that a real dog or a toy?","exZh":"那是真的狗还是玩具?","rank":271},{"id":"V-realise","en":"realise","zh":"意识到","more":"实现","ipa":"[ˈrɪəlaɪz]","level":"A2","ex":"I didn't realise you were here.","exZh":"我没意识到你在这儿。","rank":3086},{"id":"V-realistic","en":"realistic","zh":"现实的","more":"逼真的;切实的","ipa":"[ˌriːəˈlɪstɪk]","level":"B1","ex":"That's not a realistic plan for us.","exZh":"那对我们来说不是个现实的计划。","rank":7396},{"id":"V-reality","en":"reality","zh":"现实","more":"真实;事实","ipa":"[riˈæləti]","level":"B1","ex":"In reality, things are never that simple.","exZh":"现实中,事情从没那么简单。","rank":1844},{"id":"V-realize","en":"realize","zh":"意识到","more":"实现","ipa":"[ˈriːəlaɪz]","level":"A2","ex":"I just realized I left my phone at home.","exZh":"我刚意识到手机落家里了。","rank":993},{"id":"V-really","en":"really","zh":"真的","more":"确实;到底","ipa":"[ˈriːəli]","level":"A1","ex":"Do you really want to move to Beijing?","exZh":"你真的想搬到北京去吗?","rank":97},{"id":"V-reason","en":"reason","zh":"原因","more":"理由;理性","ipa":"[ˈriːzn]","level":"A1","ex":"Tell me the reason you were late.","exZh":"告诉我你迟到的原因。","rank":483},{"id":"V-reasonable","en":"reasonable","zh":"合理的","more":"通情达理的;公道的","ipa":"[ˈriːz(ə)nəb(ə)l]","level":"B1","ex":"The price seems reasonable to me.","exZh":"这个价格我觉得挺合理。","rank":3311},{"id":"V-rebuild","en":"rebuild","zh":"重建","more":"修复;改建","ipa":"[ˌriːˈbɪld]","level":"B1","ex":"They had to rebuild the bridge after the flood.","exZh":"洪水过后,他们不得不重建那座桥。","rank":8146},{"id":"V-receipt","en":"receipt","zh":"收据","more":"收到","ipa":"[rɪˈsiːt]","level":"A2","ex":"Can I have a receipt, please?","exZh":"能给我一张收据吗?","rank":5727},{"id":"V-receive","en":"receive","zh":"收到","more":"受到;接待","ipa":"[rɪˈsiːv]","level":"A2","ex":"I received your letter this morning.","exZh":"我今天早上收到了你的信。","rank":2411},{"id":"V-recently","en":"recently","zh":"最近","more":"近来","ipa":"[ˈriːsntli]","level":"A2","ex":"I haven't seen him much recently.","exZh":"我最近很少见到他。","rank":1745},{"id":"V-reception","en":"reception","zh":"接待处","more":"招待会;接收","ipa":"[rɪˈsepʃn]","level":"B1","ex":"Please wait at reception for your room key.","exZh":"请在接待处等一下拿房间钥匙。","rank":4031},{"id":"V-receptionist","en":"receptionist","zh":"接待员","more":"前台","ipa":"[rɪˈsepʃənɪst]","level":"A2","ex":"The receptionist gave me a warm smile.","exZh":"接待员对我热情地笑了笑。","rank":11616},{"id":"V-recognise","en":"recognise","zh":"认出","more":"承认;认可","ipa":"[ˈrekəɡnaɪz]","level":"B1","ex":"I didn't recognise you with your new haircut.","exZh":"你换了新发型,我没认出你。","rank":4445},{"id":"V-recognize","en":"recognize","zh":"认出","more":"承认;认可","ipa":"[ˈrekəɡnaɪz]","level":"B1","ex":"I didn't recognize you at first.","exZh":"我一开始没认出你。","rank":1602},{"id":"V-recommend","en":"recommend","zh":"推荐","more":"建议;劝告","ipa":"[ˌrekəˈmend]","level":"B1","ex":"Can you recommend a good restaurant near here?","exZh":"你能推荐一家附近的好餐厅吗?","rank":4039},{"id":"V-record","en":"record","zh":"记录","more":"录音;唱片","ipa":"[ˈrekərd; rɪˈkɔːrd]","level":"A2","ex":"I record my daily spending in a notebook.","exZh":"我把每天的开销记录在笔记本上。","rank":912},{"id":"V-recording","en":"recording","zh":"录音","more":"录像;唱片","ipa":"[rɪˈkɔːrdɪŋ]","level":"B1","ex":"I listened to the recording of our call.","exZh":"我听了我们通话的录音。","rank":3226},{"id":"V-recover","en":"recover","zh":"恢复","more":"康复;找回","ipa":"[rɪˈkʌvər]","level":"B1","ex":"It took him weeks to recover from the flu.","exZh":"他得了流感,过了好几周才恢复。","rank":4113},{"id":"V-recovery","en":"recovery","zh":"恢复","more":"康复;复苏","ipa":"[rɪˈkʌvəri]","level":"B1","ex":"She is making a slow recovery after surgery.","exZh":"她手术后正在慢慢康复。","rank":4949},{"id":"V-recycle","en":"recycle","zh":"回收","more":"再利用;再循环","ipa":"[ˌriːˈsaɪkl]","level":"A2","ex":"We recycle paper and glass at home.","exZh":"我们在家回收纸张和玻璃。","rank":19172},{"id":"V-recycled","en":"recycled","zh":"回收的","more":"再生的","ipa":"[ˌriːˈsaɪk(ə)ld]","level":"B1","ex":"This bag is made from recycled plastic.","exZh":"这个包是用回收塑料做的。","rank":20513},{"id":"V-recycling","en":"recycling","zh":"回收","more":"回收利用;再循环","ipa":"[ˌriːˈsaɪklɪŋ]","level":"B1","ex":"Recycling helps keep our city clean.","exZh":"回收有助于保持城市清洁。","rank":13586},{"id":"V-red","en":"red","zh":"红色的","more":"红肿的","ipa":"[red]","level":"A1","ex":"My red ball is on the table.","exZh":"我的红球在桌子上。","rank":594},{"id":"V-reduce","en":"reduce","zh":"减少","more":"降低;缩小","ipa":"[rɪˈduːs]","level":"B1","ex":"We need to reduce the noise here.","exZh":"我们得把这里的噪音降下来。","rank":6395},{"id":"V-reduction","en":"reduction","zh":"减少","more":"下降;缩小","ipa":"[rɪˈdʌkʃn]","level":"B1","ex":"There is a big reduction in prices.","exZh":"价格大幅下降了。","rank":14486},{"id":"V-refer","en":"refer","zh":"提到","more":"涉及;参考","ipa":"[rɪˈfɜːr]","level":"A2","ex":"Don't refer to that again, please.","exZh":"请别再提那件事了。","rank":6755},{"id":"V-reflect","en":"reflect","zh":"反映","more":"反射;思考","ipa":"[rɪˈflekt]","level":"A2","ex":"These numbers reflect our hard work.","exZh":"这些数字反映了我们的努力。","rank":7371},{"id":"V-refrigerator","en":"refrigerator","zh":"冰箱","ipa":"[rɪˈfrɪdʒəreɪtər]","level":"A2","ex":"Please put the milk in the refrigerator.","exZh":"请把牛奶放进冰箱里。","rank":7420},{"id":"V-refund","en":"refund","zh":"退款","more":"退还;偿还","ipa":"[ˈriːfʌnd; rɪˈfʌnd]","level":"B1","ex":"Can I get a refund for this shirt?","exZh":"这件衬衫能退款吗?","rank":12457},{"id":"V-refusal","en":"refusal","zh":"拒绝","ipa":"[rɪˈfjuːzl]","level":"B1","ex":"His refusal to help surprised everyone.","exZh":"他拒绝帮忙,让大家很吃惊。","rank":15385},{"id":"V-refuse","en":"refuse","zh":"拒绝","more":"垃圾;废物","ipa":"[rɪˈfjuːz; ˈrefjuːs]","level":"B1","ex":"I refuse to eat this cold soup.","exZh":"我拒绝喝这碗凉汤。","rank":2306},{"id":"V-region","en":"region","zh":"地区","more":"区域;范围","ipa":"[ˈriːdʒən]","level":"B1","ex":"This region is famous for its tea.","exZh":"这个地区以茶叶闻名。","rank":4226},{"id":"V-regional","en":"regional","zh":"地区的","more":"区域性的;地方性的","ipa":"[ˈriːdʒənl]","level":"B1","ex":"We have a regional meeting every month.","exZh":"我们每个月开一次地区会议。","rank":9354},{"id":"V-register","en":"register","zh":"注册","more":"登记;记录","ipa":"[ˈredʒɪstər]","level":"B1","ex":"You need to register to use this app.","exZh":"你需要注册才能用这个应用。","rank":4452},{"id":"V-registration","en":"registration","zh":"注册","more":"登记;挂号","ipa":"[ˌredʒɪˈstreɪʃn]","level":"B1","ex":"You can complete your registration on our website.","exZh":"你可以在我们的网站上完成注册。","rank":6851},{"id":"V-regret","en":"regret","zh":"后悔","more":"遗憾;抱歉","ipa":"[rɪˈɡret]","level":"A2","ex":"I regret what I said to her yesterday.","exZh":"我后悔昨天对她说的那些话。","rank":1878},{"id":"V-regular","en":"regular","zh":"定期的","more":"有规律的;经常的","ipa":"[ˈreɡjələr]","level":"A2","ex":"We have regular meetings every Monday morning.","exZh":"我们每周一上午都有例会。","rank":2072},{"id":"V-regularly","en":"regularly","zh":"定期地","more":"有规律地","ipa":"[ˈreɡjələrli]","level":"A2","ex":"I exercise regularly to stay healthy and strong.","exZh":"为了保持健康强壮,我定期锻炼。","rank":7776},{"id":"V-reject","en":"reject","zh":"拒绝","more":"否决;排斥","ipa":"[rɪˈdʒekt]","level":"B1","ex":"He rejected my idea without even listening to me.","exZh":"他连听都没听就把我的主意否了。","rank":7070},{"id":"V-relate","en":"relate","zh":"相关联","more":"讲述;产生共鸣","ipa":"[rɪˈleɪt]","level":"B1","ex":"His question relates to what we learned last week.","exZh":"他的问题跟我们上周学的内容有关。","rank":7861},{"id":"V-relation","en":"relation","zh":"关系","more":"亲属;关联","ipa":"[rɪˈleɪʃn]","level":"B1","ex":"There is a close relation between diet and health.","exZh":"饮食和健康之间有密切的关系。","rank":6778},{"id":"V-relationship","en":"relationship","zh":"关系","more":"恋爱关系","ipa":"[rɪˈleɪʃnʃɪp]","level":"B1","ex":"They have a good relationship with their new neighbors.","exZh":"他们和新邻居关系很好。","rank":984},{"id":"V-relative","en":"relative","zh":"亲戚","more":"亲属;相对的","ipa":"[ˈrelətɪv]","level":"B1","ex":"We visited our relatives during the summer holiday.","exZh":"暑假期间我们去探望了亲戚。","rank":4529},{"id":"V-relatively","en":"relatively","zh":"相对地","more":"相当地","ipa":"[ˈrelətɪvli]","level":"B1","ex":"The test was relatively easy for most of us.","exZh":"这次考试对我们大多数人来说相对容易。","rank":8305},{"id":"V-relax","en":"relax","zh":"放松","more":"休息;缓和","ipa":"[rɪˈlæks]","level":"A2","ex":"After work, I like to relax at home.","exZh":"下班后我喜欢在家放松放松。","rank":918},{"id":"V-relaxed","en":"relaxed","zh":"放松的","more":"悠闲的;轻松的","ipa":"[rɪˈlækst]","level":"A2","ex":"She felt relaxed after the long holiday.","exZh":"长假过后,她觉得很放松。","rank":5784},{"id":"V-relaxing","en":"relaxing","zh":"令人放松的","ipa":"[rɪˈlæksɪŋ]","level":"B1","ex":"Listening to music is very relaxing for me.","exZh":"听音乐让我很放松。","rank":8735},{"id":"V-release","en":"release","zh":"释放","more":"发布;上映","ipa":"[rɪˈliːs]","level":"A2","ex":"They released the birds back into the wild.","exZh":"他们把小鸟放回了大自然。","rank":1621},{"id":"V-reliable","en":"reliable","zh":"可靠的","ipa":"[rɪˈlaɪəbl]","level":"B1","ex":"She is a reliable friend and always helps me.","exZh":"她是个可靠的朋友,总是帮我。","rank":5866},{"id":"V-remain","en":"remain","zh":"保持","more":"留下;仍然是","ipa":"[rɪˈmeɪn]","level":"A2","ex":"Please remain calm during the fire drill.","exZh":"消防演习时请保持冷静。","rank":1577},{"id":"V-remarkable","en":"remarkable","zh":"非凡的","more":"显著的","ipa":"[rɪˈmɑːrkəbl]","level":"B1","ex":"She has made remarkable progress in English this year.","exZh":"她今年英语进步惊人。","rank":3933},{"id":"V-remedy","en":"remedy","zh":"补救办法","more":"疗法;治疗","ipa":"[ˈremədi]","level":"B1","ex":"There is no simple remedy for this problem.","exZh":"这个问题没有简单的解决办法。","rank":10046},{"id":"V-remember","en":"remember","zh":"记得","more":"记住;想起","ipa":"[rɪˈmembər]","level":"A1","ex":"I remember my first day at school.","exZh":"我还记得上学的第一天。","rank":236},{"id":"V-remind","en":"remind","zh":"提醒","more":"使想起","ipa":"[rɪˈmaɪnd]","level":"A2","ex":"Please remind me to call my mother tonight.","exZh":"请提醒我今晚给妈妈打电话。","rank":1799},{"id":"V-remote-control","en":"remote control","zh":"遥控器","more":"遥控","ipa":"","level":"B1","ex":"Where is the remote control for the TV?","exZh":"电视遥控器在哪儿?","rank":3701},{"id":"V-remove","en":"remove","zh":"移开","more":"去除;脱掉","ipa":"[rɪˈmuːv]","level":"B1","ex":"Can you remove this box from the table?","exZh":"你能把这个盒子从桌上移开吗?","rank":2254},{"id":"V-rent","en":"rent","zh":"租金","more":"房租;租用","ipa":"[rent]","level":"A2","ex":"The rent for this flat is too high.","exZh":"这套公寓的租金太高了。","rank":1899},{"id":"V-repair","en":"repair","zh":"修理","more":"修补","ipa":"[rɪˈper]","level":"A2","ex":"He is trying to repair his old bike.","exZh":"他正在试着修理他那辆旧自行车。","rank":4280},{"id":"V-repeat","en":"repeat","zh":"重复","more":"重做;重说","ipa":"[rɪˈpiːt]","level":"A1","ex":"Can you repeat that one more time?","exZh":"你能再说一遍吗?","rank":2009},{"id":"V-replace","en":"replace","zh":"取代","more":"替换;更换","ipa":"[rɪˈpleɪs]","level":"A2","ex":"We need to replace the old computer.","exZh":"我们得把旧电脑换掉。","rank":3286},{"id":"V-reply","en":"reply","zh":"回答","more":"回复;答复","ipa":"[rɪˈplaɪ]","level":"A2","ex":"She did not reply to my message.","exZh":"她没有回我的消息。","rank":5461},{"id":"V-report","en":"report","zh":"报告","more":"报道;举报","ipa":"[rɪˈpɔːrt]","level":"A2","ex":"I have to write a report tonight.","exZh":"我今晚得写一份报告。","rank":726},{"id":"V-request","en":"request","zh":"请求","more":"要求;申请","ipa":"[rɪˈkwest]","level":"A2","ex":"I have a small request for you.","exZh":"我有个小小的请求。","rank":2041},{"id":"V-require","en":"require","zh":"需要","more":"要求;规定","ipa":"[rɪˈkwaɪər]","level":"B1","ex":"This job requires a lot of time.","exZh":"这份工作要花很多时间。","rank":4173},{"id":"V-rescue","en":"rescue","zh":"营救","more":"救援;解救","ipa":"[ˈreskjuː]","level":"B1","ex":"They rescued the cat from the tree.","exZh":"他们把猫从树上救了下来。","rank":2241},{"id":"V-reservation","en":"reservation","zh":"预订","more":"预约;保留","ipa":"[ˌrezərˈveɪʃn]","level":"B1","ex":"I have a reservation for two people.","exZh":"我订了两个人的位子。","rank":5702},{"id":"V-reserve","en":"reserve","zh":"预订","more":"储备;保留","ipa":"[rɪˈzɜːrv]","level":"B1","ex":"Let's reserve a table for tonight.","exZh":"我们订一张今晚的桌子吧。","rank":5823},{"id":"V-resolve","en":"resolve","zh":"解决","more":"决心;决定","ipa":"[rɪˈzɑːlv]","level":"B1","ex":"We need to resolve this problem today.","exZh":"我们今天得把这个问题解决掉。","rank":6777},{"id":"V-resort","en":"resort","zh":"度假胜地","more":"诉诸;求助","ipa":"[rɪˈzɔːrt]","level":"B1","ex":"We stayed at a nice resort by the sea.","exZh":"我们住在海边一个不错的度假村。","rank":5602},{"id":"V-respect","en":"respect","zh":"尊敬","more":"尊重;方面","ipa":"[rɪˈspekt]","level":"B1","ex":"I respect my teacher very much.","exZh":"我很尊敬我的老师。","rank":948},{"id":"V-responsibility","en":"responsibility","zh":"责任","more":"职责;义务","ipa":"[rɪˌspɑːnsəˈbɪləti]","level":"B1","ex":"It is my responsibility to lock the door.","exZh":"锁门是我的责任。","rank":1701},{"id":"V-responsible","en":"responsible","zh":"负责的","more":"有责任的;应承担责任的","ipa":"[rɪˈspɑːnsəbl]","level":"B1","ex":"She is responsible for the whole team.","exZh":"她负责整个团队。","rank":1382},{"id":"V-rest","en":"rest","zh":"休息","more":"剩余部分;休息时间","ipa":"[rest]","level":"B1","ex":"Let's take a rest after lunch.","exZh":"午饭后我们歇一会儿吧。","rank":452},{"id":"V-restaurant","en":"restaurant","zh":"餐馆","more":"餐厅","ipa":"[ˈrestrɑːnt; ˈrestərɑːnt]","level":"A1","ex":"We had dinner at a new restaurant.","exZh":"我们在一家新开的餐馆吃了晚饭。","rank":1432},{"id":"V-result","en":"result","zh":"结果","more":"成绩;导致","ipa":"[rɪˈzʌlt]","level":"A1","ex":"What was the result of the game?","exZh":"比赛结果怎么样?","rank":2245},{"id":"V-retail","en":"retail","zh":"零售","ipa":"[ˈriːteɪl]","level":"B1","ex":"The shop sells clothes at retail prices.","exZh":"这家店按零售价卖衣服。","rank":12590},{"id":"V-retire","en":"retire","zh":"退休","more":"退役;退出","ipa":"[rɪˈtaɪər]","level":"A2","ex":"My father will retire next year.","exZh":"我爸爸明年就退休了。","rank":5066},{"id":"V-retired","en":"retired","zh":"退休的","more":"退役的","ipa":"[rɪˈtaɪərd]","level":"A2","ex":"My retired neighbour walks every morning.","exZh":"我那位退休的邻居每天早上都去散步。","rank":4120},{"id":"V-return","en":"return","zh":"返回","more":"归还;回报","ipa":"[rɪˈtɜːrn]","level":"A2","ex":"I will return home before it gets dark.","exZh":"我会在天黑前回家。","rank":666},{"id":"V-reveal","en":"reveal","zh":"透露","more":"揭示;显示出","ipa":"[rɪˈviːl]","level":"A2","ex":"She did not reveal the secret to anyone.","exZh":"她没有把那个秘密告诉任何人。","rank":3439},{"id":"V-reward","en":"reward","zh":"奖励","more":"报酬;报答","ipa":"[rɪˈwɔːrd]","level":"B1","ex":"He got a reward for finding the lost dog.","exZh":"他因为找到走丢的狗得到了奖励。","rank":2655},{"id":"V-rice","en":"rice","zh":"米饭","more":"大米;稻","ipa":"[raɪs]","level":"A1","ex":"We eat rice with almost every meal.","exZh":"我们几乎每顿饭都吃米饭。","rank":2370},{"id":"V-rich","en":"rich","zh":"富有的","more":"肥沃的;丰富的","ipa":"[rɪtʃ]","level":"A1","ex":"My uncle is very rich and lives in a big house.","exZh":"我叔叔很有钱,住在一栋大房子里。","rank":936},{"id":"V-ride","en":"ride","zh":"骑乘","more":"乘坐;旅程","ipa":"[raɪd]","level":"A1","ex":"I ride my bike to school every day.","exZh":"我每天骑自行车上学。","rank":767},{"id":"V-ridiculous","en":"ridiculous","zh":"可笑的","more":"荒谬的;荒唐的","ipa":"[rɪˈdɪkjələs]","level":"B1","ex":"That story sounds ridiculous to me.","exZh":"那个故事在我听来太可笑了。","rank":1335},{"id":"V-right","en":"right","zh":"正确的","more":"右边;权利","ipa":"[raɪt]","level":"A1","ex":"You are right, I made a mistake.","exZh":"你说得对,我弄错了。","rank":48},{"id":"V-right-hand","en":"right-hand","zh":"右手的","more":"得力的","ipa":"[ˈraɪt hænd]","level":"A2","ex":"Put the cup in the right-hand drawer.","exZh":"把杯子放到右手边那个抽屉里。","rank":13100},{"id":"V-ring","en":"ring","zh":"戒指","more":"打电话;铃响","ipa":"[rɪŋ]","level":"A1","ex":"She has a nice ring on her finger.","exZh":"她手指上戴着一枚好看的戒指。","rank":831},{"id":"V-ripe","en":"ripe","zh":"成熟的","more":"时机成熟的","ipa":"[raɪp]","level":"B1","ex":"These apples are not ripe yet.","exZh":"这些苹果还没熟。","rank":8765},{"id":"V-rise","en":"rise","zh":"上升","more":"增加;起身","ipa":"[raɪz]","level":"B1","ex":"The sun rises in the east.","exZh":"太阳从东边升起。","rank":2039},{"id":"V-risk","en":"risk","zh":"风险","more":"危险;冒险","ipa":"[rɪsk]","level":"B1","ex":"There is a risk of rain today.","exZh":"今天有下雨的风险。","rank":1170},{"id":"V-river","en":"river","zh":"河流","ipa":"[ˈrɪvər]","level":"A1","ex":"We swam in the river last summer.","exZh":"去年夏天我们在河里游泳。","rank":1123},{"id":"V-road","en":"road","zh":"道路","more":"公路;途径","ipa":"[roʊd]","level":"A2","ex":"This road goes to the city center.","exZh":"这条路通往市中心。","rank":683},{"id":"V-roast","en":"roast","zh":"烘烤","more":"烤熟的","ipa":"[roʊst]","level":"A2","ex":"My mother likes to roast chicken on Sundays.","exZh":"我妈妈喜欢在周日烤鸡。","rank":5354},{"id":"V-rob","en":"rob","zh":"抢劫","more":"剥夺;使丧失","ipa":"[rɑːb]","level":"A2","ex":"Two men robbed the bank yesterday.","exZh":"昨天两个男人抢了那家银行。","rank":2215},{"id":"V-robbery","en":"robbery","zh":"抢劫","more":"抢劫案;盗窃","ipa":"[ˈrɑːbəri]","level":"A2","ex":"There was a robbery at the bank yesterday.","exZh":"昨天那家银行发生了一起抢劫案。","rank":2652},{"id":"V-robot","en":"robot","zh":"机器人","ipa":"[ˈroʊbɑːt]","level":"B1","ex":"This robot can clean the whole house.","exZh":"这个机器人能打扫整栋房子。","rank":3100},{"id":"V-rock","en":"rock","zh":"岩石","more":"摇滚乐;暗礁","ipa":"[rɑːk]","level":"A2","ex":"The children climbed onto a big rock.","exZh":"孩子们爬上了一块大石头。","rank":818},{"id":"V-roll","en":"roll","zh":"滚动","more":"卷;名单","ipa":"[roʊl]","level":"A2","ex":"The ball rolled down the hill quickly.","exZh":"球飞快地滚下了山坡。","rank":1293},{"id":"V-romantic","en":"romantic","zh":"浪漫的","more":"多情的;爱情的","ipa":"[roʊˈmæntɪk]","level":"A2","ex":"They had a romantic dinner last night.","exZh":"他们昨晚吃了一顿浪漫的晚餐。","rank":1978},{"id":"V-roof","en":"roof","zh":"屋顶","more":"车顶","ipa":"[ruːf]","level":"A2","ex":"The cat is sitting on our roof.","exZh":"猫正蹲在我们家屋顶上。","rank":1795},{"id":"V-room","en":"room","zh":"房间","more":"空间;余地","ipa":"[ruːm; rʊm]","level":"A1","ex":"My room is small but very clean.","exZh":"我的房间很小,但很干净。","rank":274},{"id":"V-rope","en":"rope","zh":"绳子","ipa":"[roʊp]","level":"A2","ex":"He tied the boat with a long rope.","exZh":"他用一根长绳子把船拴住了。","rank":2629},{"id":"V-rose","en":"rose","zh":"玫瑰","more":"蔷薇;粉红色","ipa":"[roʊz]","level":"A1","ex":"He gave her a red rose.","exZh":"他送了她一朵红玫瑰。","rank":1406},{"id":"V-rotten","en":"rotten","zh":"腐烂的","more":"变质的;糟糕的","ipa":"[ˈrɑːtn]","level":"B1","ex":"These apples are rotten, so don't eat them.","exZh":"这些苹果烂了,别吃了。","rank":3365},{"id":"V-rough","en":"rough","zh":"粗糙的","more":"粗略的;粗鲁的","ipa":"[rʌf]","level":"B1","ex":"This old table feels rough and hard.","exZh":"这张旧桌子摸起来又粗糙又硬。","rank":1909},{"id":"V-round","en":"round","zh":"圆的","more":"一轮;回合","ipa":"[raʊnd]","level":"A2","ex":"She has a round face and big eyes.","exZh":"她有一张圆脸和一双大眼睛。","rank":795},{"id":"V-roundabout","en":"roundabout","zh":"环岛","more":"绕道的;迂回的","ipa":"[ˈraʊndəbaʊt]","level":"A2","ex":"Turn left at the roundabout and keep going.","exZh":"在环岛左转,然后一直往前开。","rank":21271},{"id":"V-routine","en":"routine","zh":"例行公事","more":"常规;惯例","ipa":"[ruːˈtiːn]","level":"B1","ex":"My morning routine takes about an hour.","exZh":"我早上的例行公事大约要花一个小时。","rank":3182},{"id":"V-row","en":"row","zh":"一排","more":"一行;划船","ipa":"[roʊ; raʊ]","level":"A1","ex":"We sat in the front row at the show.","exZh":"我们坐在演出的第一排。","rank":2408},{"id":"V-rubber","en":"rubber","zh":"橡胶","more":"橡皮;胶皮","ipa":"[ˈrʌbər]","level":"B1","ex":"These boots are made of rubber.","exZh":"这双靴子是橡胶做的。","rank":4648},{"id":"V-rubbish","en":"rubbish","zh":"垃圾","more":"废话;废弃物","ipa":"[ˈrʌbɪʃ]","level":"B1","ex":"Please put the rubbish in the bin.","exZh":"请把垃圾扔进垃圾桶。","rank":3714},{"id":"V-rude","en":"rude","zh":"粗鲁的","more":"无礼的","ipa":"[ruːd]","level":"A1","ex":"Don't be rude to your teacher.","exZh":"别对老师无礼。","rank":2482},{"id":"V-ruin","en":"ruin","zh":"毁掉","more":"废墟;破坏","ipa":"[ˈruːɪn]","level":"A2","ex":"The heavy rain ruined our picnic yesterday.","exZh":"昨天那场大雨把我们的野餐毁了。","rank":1933},{"id":"V-rule","en":"rule","zh":"规则","more":"统治;规定","ipa":"[ruːl]","level":"A1","ex":"The first rule is to have fun.","exZh":"第一条规则就是要玩得开心。","rank":1454},{"id":"V-run","en":"run","zh":"跑步","more":"经营;运行","ipa":"[rʌn]","level":"A1","ex":"I run in the park every morning.","exZh":"我每天早上在公园跑步。","rank":321},{"id":"V-runner","en":"runner","zh":"跑步者","more":"赛跑选手","ipa":"[ˈrʌnər]","level":"A2","ex":"He is the fastest runner in our class.","exZh":"他是我们班跑得最快的。","rank":7569},{"id":"V-running","en":"running","zh":"跑步","more":"运转;经营","ipa":"[ˈrʌnɪŋ]","level":"A2","ex":"Running is good for your health.","exZh":"跑步对健康有好处。","rank":564},{"id":"V-sad","en":"sad","zh":"难过的","more":"悲哀的;凄惨的","ipa":"[sæd]","level":"A1","ex":"I feel sad today because my dog is sick.","exZh":"我今天很难过,因为我的狗生病了。","rank":955},{"id":"V-safe","en":"safe","zh":"安全的","more":"可靠的;平安的","ipa":"[seɪf]","level":"A2","ex":"This place is safe, so you can walk alone.","exZh":"这个地方很安全,你可以一个人走。","rank":569},{"id":"V-safely","en":"safely","zh":"安全地","ipa":"[ˈseɪfli]","level":"B1","ex":"She drove safely home in the heavy rain.","exZh":"她在大雨中安全地开车回家。","rank":3756},{"id":"V-safety","en":"safety","zh":"安全","more":"安全性;安全设备","ipa":"[ˈseɪfti]","level":"B1","ex":"Please wear a helmet for your safety.","exZh":"为了你的安全,请戴上头盔。","rank":1818},{"id":"V-sailing","en":"sailing","zh":"帆船运动","more":"航行;启航","ipa":"[ˈseɪlɪŋ]","level":"A2","ex":"We go sailing on the lake every summer.","exZh":"我们每年夏天都去湖上玩帆船。","rank":5861},{"id":"V-salad","en":"salad","zh":"沙拉","more":"凉拌菜","ipa":"[ˈsæləd]","level":"A1","ex":"I made a green salad for lunch today.","exZh":"我今天午饭做了一份蔬菜沙拉。","rank":3353},{"id":"V-sale","en":"sale","zh":"出售","more":"销售;促销","ipa":"[seɪl]","level":"A1","ex":"That house is not for sale.","exZh":"那栋房子不出售。","rank":2418},{"id":"V-salesman","en":"salesman","zh":"推销员","more":"售货员","ipa":"[ˈseɪlzmən]","level":"B1","ex":"The salesman showed us a new car.","exZh":"那位推销员给我们看了一辆新车。","rank":6171},{"id":"V-salmon","en":"salmon","zh":"三文鱼","more":"鲑肉色","ipa":"[ˈsæmən]","level":"B1","ex":"We had salmon for dinner last night.","exZh":"我们昨晚吃了三文鱼当晚餐。","rank":6203},{"id":"V-salt","en":"salt","zh":"食盐","more":"盐类;加盐","ipa":"[sɔːlt]","level":"A2","ex":"Please add some salt to the soup.","exZh":"请往汤里加点盐。","rank":2640},{"id":"V-same","en":"same","zh":"相同的","more":"同一的;同样的","ipa":"[seɪm]","level":"A1","ex":"We are in the same class this year.","exZh":"我们今年在同一个班。","rank":239},{"id":"V-sand","en":"sand","zh":"沙子","more":"沙滩;沙地","ipa":"[sænd]","level":"B1","ex":"The children played in the sand all afternoon.","exZh":"孩子们在沙子里玩了一下午。","rank":2646},{"id":"V-sandal","en":"sandal","zh":"凉鞋","more":"檀香木","ipa":"[ˈsændl]","level":"B1","ex":"She bought a pair of sandals for the beach.","exZh":"她买了一双凉鞋去海边穿。","rank":26976},{"id":"V-sandwich","en":"sandwich","zh":"三明治","ipa":"[ˈsænwɪtʃ]","level":"A1","ex":"I had a cheese sandwich for lunch today.","exZh":"我今天午饭吃了个奶酪三明治。","rank":2870},{"id":"V-sandy","en":"sandy","zh":"多沙的","more":"沙色的","ipa":"[ˈsændi]","level":"A2","ex":"We walked along the sandy beach.","exZh":"我们沿着多沙的海滩散步。","rank":3707},{"id":"V-satisfied","en":"satisfied","zh":"满意的","ipa":"[ˈsætɪsfaɪd]","level":"B1","ex":"I am satisfied with my new job.","exZh":"我对新工作很满意。","rank":3269},{"id":"V-satisfy","en":"satisfy","zh":"使满意","more":"满足;符合","ipa":"[ˈsætɪsfaɪ]","level":"A2","ex":"Does this answer satisfy all of you?","exZh":"这个答案让你们所有人都满意吗?","rank":6966},{"id":"V-saturday","en":"Saturday","zh":"星期六","ipa":"[ˈsætərdeɪ]","level":"A1","ex":"We are going to the park on Saturday.","exZh":"我们星期六要去公园。","rank":1736},{"id":"V-sauce","en":"sauce","zh":"酱汁","more":"调味汁","ipa":"[sɔːs]","level":"A2","ex":"I put tomato sauce on my pasta.","exZh":"我在意面上加了番茄酱。","rank":3037},{"id":"V-saucepan","en":"saucepan","zh":"深平底锅","more":"炖锅","ipa":"[ˈsɔːspæn]","level":"B1","ex":"Heat the soup in a small saucepan.","exZh":"把汤放在小锅里加热。","rank":46892},{"id":"V-saucer","en":"saucer","zh":"茶托","more":"浅碟","ipa":"[ˈsɔːsər]","level":"B1","ex":"She put the cup on the saucer.","exZh":"她把杯子放在茶托上。","rank":12345},{"id":"V-sausage","en":"sausage","zh":"香肠","more":"腊肠","ipa":"[ˈsɔːsɪdʒ]","level":"A2","ex":"I ate a sausage for breakfast.","exZh":"我早饭吃了一根香肠。","rank":5162},{"id":"V-save","en":"save","zh":"节省","more":"拯救;储蓄","ipa":"[seɪv]","level":"A1","ex":"This app can save you a lot of time.","exZh":"这个应用能帮你省很多时间。","rank":527},{"id":"V-say","en":"say","zh":"说","more":"讲;表明","ipa":"[seɪ]","level":"A1","ex":"What did you say to him?","exZh":"你跟他说了什么?","rank":100},{"id":"V-scare","en":"scare","zh":"使害怕","more":"惊吓;吓跑","ipa":"[sker]","level":"B1","ex":"Don't scare me like that!","exZh":"别那样吓我!","rank":2001},{"id":"V-scared","en":"scared","zh":"害怕的","more":"担心的","ipa":"[skerd]","level":"B1","ex":"I'm scared of big dogs.","exZh":"我怕大狗。","rank":591},{"id":"V-scarf","en":"scarf","zh":"围巾","more":"头巾","ipa":"[skɑːrf]","level":"A2","ex":"She wore a red scarf today.","exZh":"她今天戴了一条红围巾。","rank":6366},{"id":"V-scary","en":"scary","zh":"吓人的","more":"可怕的","ipa":"[ˈskeri]","level":"B1","ex":"That movie last night was really scary.","exZh":"昨晚那部电影真的很吓人。","rank":2069},{"id":"V-scatter","en":"scatter","zh":"散开","more":"撒;驱散","ipa":"[ˈskætər]","level":"B1","ex":"The children scattered when the bell rang.","exZh":"铃一响,孩子们就散开了。","rank":12157},{"id":"V-scene","en":"scene","zh":"场景","more":"现场;一幕","ipa":"[siːn]","level":"A2","ex":"I love the first scene of this movie.","exZh":"我很喜欢这部电影的第一个场景。","rank":943},{"id":"V-scenery","en":"scenery","zh":"风景","more":"景色;舞台布景","ipa":"[ˈsiːnəri]","level":"A2","ex":"The scenery here is beautiful in autumn.","exZh":"这里秋天的风景很美。","rank":9545},{"id":"V-schedule","en":"schedule","zh":"时间表","more":"日程;安排","ipa":"[ˈskedʒuːl]","level":"A2","ex":"My schedule is full this week.","exZh":"我这周日程排满了。","rank":2430},{"id":"V-school","en":"school","zh":"学校","more":"学院;学派","ipa":"[skuːl]","level":"A1","ex":"My son goes to school by bus.","exZh":"我儿子坐公交车上学。","rank":327},{"id":"V-science-fiction","en":"science fiction","zh":"科幻小说","more":"科幻电影","ipa":"[ˌsaɪəns ˈfɪkʃn]","level":"B1","ex":"He reads science fiction every night before bed.","exZh":"他每晚睡前都读科幻小说。","rank":5990},{"id":"V-scissors","en":"scissors","zh":"剪刀","ipa":"[ˈsɪzərz]","level":"A2","ex":"Can I borrow your scissors for a minute?","exZh":"能借你的剪刀用一下吗?","rank":6217},{"id":"V-score","en":"score","zh":"分数","more":"得分;配乐","ipa":"[skɔːr]","level":"B1","ex":"What was your score on the test?","exZh":"你这次考试考了多少分?","rank":2407},{"id":"V-scratch","en":"scratch","zh":"抓挠","more":"划痕;擦伤","ipa":"[skrætʃ]","level":"B1","ex":"The cat scratched my hand and ran away.","exZh":"猫抓了我的手就跑了。","rank":3106},{"id":"V-scream","en":"scream","zh":"尖叫","more":"尖叫声;大喊","ipa":"[skriːm]","level":"A2","ex":"She screamed when she saw the spider.","exZh":"她看到那只蜘蛛时尖叫起来。","rank":2260},{"id":"V-screen","en":"screen","zh":"屏幕","more":"屏风;银幕","ipa":"[skriːn]","level":"A2","ex":"Don't look at your phone screen in bed.","exZh":"别躺在床上看手机屏幕。","rank":2532},{"id":"V-screw","en":"screw","zh":"螺丝钉","more":"拧紧;搞砸","ipa":"[skruː]","level":"A2","ex":"I need a screw to fix this chair.","exZh":"我需要一颗螺丝来修这把椅子。","rank":1769},{"id":"V-sculpture","en":"sculpture","zh":"雕塑","more":"雕刻","ipa":"[ˈskʌlptʃər]","level":"B1","ex":"There is a big sculpture in the park.","exZh":"公园里有一座很大的雕塑。","rank":9439},{"id":"V-sea","en":"sea","zh":"大海","more":"海洋;大量","ipa":"[siː]","level":"A1","ex":"We swam in the sea all afternoon.","exZh":"我们整个下午都在海里游泳。","rank":901},{"id":"V-seafood","en":"seafood","zh":"海鲜","more":"海产品","ipa":"[ˈsiːfuːd]","level":"A2","ex":"We had seafood for dinner last night.","exZh":"我们昨晚晚饭吃了海鲜。","rank":12149},{"id":"V-search","en":"search","zh":"搜索","more":"搜寻;查找","ipa":"[sɜːrtʃ]","level":"A2","ex":"I searched online for a cheap hotel.","exZh":"我在网上搜了一家便宜的酒店。","rank":1105},{"id":"V-seaside","en":"seaside","zh":"海边","more":"海滨","ipa":"[ˈsiːsaɪd]","level":"A2","ex":"We spent the weekend at the seaside.","exZh":"我们在海边过了个周末。","rank":13337},{"id":"V-season","en":"season","zh":"季节","more":"赛季;时期","ipa":"[ˈsiːzn]","level":"B1","ex":"Summer is my favourite season of the year.","exZh":"夏天是我一年中最喜欢的季节。","rank":1696},{"id":"V-seat","en":"seat","zh":"座位","more":"席位;所在地","ipa":"[siːt]","level":"A1","ex":"Excuse me, is this seat taken?","exZh":"打扰一下,这个座位有人吗?","rank":989},{"id":"V-second","en":"second","zh":"第二","more":"秒;次要的","ipa":"[ˈsekənd; sɪˈkɑːnd]","level":"A1","ex":"This is the second time I called you today.","exZh":"这是我今天第二次给你打电话了。","rank":375},{"id":"V-second-hand","en":"second-hand","zh":"二手的","more":"间接的","ipa":"[ˈsekənd hænd]","level":"B1","ex":"I bought a second-hand bike from a friend.","exZh":"我从朋友那里买了一辆二手自行车。","rank":20033},{"id":"V-secret","en":"secret","zh":"秘密","more":"秘诀;机密","ipa":"[ˈsiːkrət]","level":"A2","ex":"Don't tell anyone, but this is a secret.","exZh":"别告诉任何人,这是个秘密。","rank":667},{"id":"V-section","en":"section","zh":"部分","more":"部门;章节","ipa":"[ˈsekʃn]","level":"A1","ex":"Please read the first section of the book.","exZh":"请读这本书的第一部分。","rank":2413},{"id":"V-secure","en":"secure","zh":"安全的","more":"获得;牢固的","ipa":"[sɪˈkjʊr]","level":"B1","ex":"Make sure your password is secure.","exZh":"确保你的密码是安全的。","rank":2643},{"id":"V-security","en":"security","zh":"安全","more":"保安;证券","ipa":"[sɪˈkjʊrəti]","level":"B1","ex":"I care a lot about my online security.","exZh":"我很在意自己的网络安全。","rank":780},{"id":"V-see","en":"see","zh":"看见","more":"明白;见面","ipa":"[siː]","level":"A1","ex":"I can see a bird in the tree.","exZh":"我能看见树上有只鸟。","rank":68},{"id":"V-seed","en":"seed","zh":"种子","more":"播种;种子选手","ipa":"[siːd]","level":"A2","ex":"I planted some seeds in the garden.","exZh":"我在花园里种了一些种子。","rank":5313},{"id":"V-seek","en":"seek","zh":"寻求","more":"寻找;探索","ipa":"[siːk]","level":"A2","ex":"You should seek help if you feel scared.","exZh":"如果你感到害怕,应该寻求帮助。","rank":2582},{"id":"V-seem","en":"seem","zh":"似乎","ipa":"[siːm]","level":"A2","ex":"She seems tired after a long day.","exZh":"她忙了一整天,似乎很累。","rank":625},{"id":"V-select","en":"select","zh":"选择","more":"精选的;选拔","ipa":"[sɪˈlekt]","level":"B1","ex":"Please select one answer from the list.","exZh":"请从列表中选择一个答案。","rank":7754},{"id":"V-selection","en":"selection","zh":"选择","more":"精选品;选拔","ipa":"[sɪˈlekʃn]","level":"B1","ex":"This shop has a great selection of fresh fruit.","exZh":"这家店有各种新鲜水果可供选择。","rank":7272},{"id":"V-self-service","en":"self-service","zh":"自助的","more":"自助服务","ipa":"[ˌself ˈsɜːrvɪs]","level":"B1","ex":"This restaurant is self-service, so you get your own food.","exZh":"这家餐厅是自助的,你得自己去取餐。","rank":99999},{"id":"V-selfish","en":"selfish","zh":"自私的","ipa":"[ˈselfɪʃ]","level":"B1","ex":"He never shares his food because he is very selfish.","exZh":"他从来不分享自己的食物,因为他非常自私。","rank":3022},{"id":"V-sell","en":"sell","zh":"出售","more":"销售;出卖","ipa":"[sel]","level":"A1","ex":"They sell fresh fruit at the market every morning.","exZh":"他们每天早上在市场卖新鲜水果。","rank":760},{"id":"V-send","en":"send","zh":"发送","more":"寄;派遣","ipa":"[send]","level":"A2","ex":"Please send me the photos when you get home.","exZh":"你到家以后把照片发给我。","rank":520},{"id":"V-separate","en":"separate","zh":"分开的","more":"单独的;不同的","ipa":"[ˈseprət]","level":"A2","ex":"My brother and I have separate rooms in our house.","exZh":"我和哥哥在家里各有自己的房间。","rank":2393},{"id":"V-september","en":"September","zh":"九月","ipa":"[sepˈtembər]","level":"A1","ex":"School starts again in September this year.","exZh":"学校今年九月又开学了。","rank":3985},{"id":"V-series","en":"series","zh":"系列","more":"丛书;连续剧","ipa":"[ˈsɪriːz]","level":"B1","ex":"She asked me a series of questions about my job.","exZh":"她问了我一连串关于工作的问题。","rank":2412},{"id":"V-serious","en":"serious","zh":"严肃的","more":"认真的;严重的","ipa":"[ˈsɪriəs]","level":"B1","ex":"He looked serious when he told us the news.","exZh":"他告诉我们这个消息时表情很严肃。","rank":587},{"id":"V-seriously","en":"seriously","zh":"认真地","more":"严重地;说真的","ipa":"[ˈsɪriəsli]","level":"A2","ex":"You should take your studies seriously.","exZh":"你应该认真对待自己的学业。","rank":806},{"id":"V-serve","en":"serve","zh":"服务","more":"提供;上菜","ipa":"[sɜːrv]","level":"A2","ex":"This restaurant serves great food at low prices.","exZh":"这家餐厅的食物很棒,价格也便宜。","rank":1531},{"id":"V-server","en":"server","zh":"服务器","more":"服务员","ipa":"[ˈsɜːrvər]","level":"B1","ex":"The website stopped working because the server was down.","exZh":"网站访问不了,因为服务器坏了。","rank":8512},{"id":"V-service","en":"service","zh":"服务","more":"服役;仪式","ipa":"[ˈsɜːrvɪs]","level":"B1","ex":"The food here is good, but the service is slow.","exZh":"这里的饭菜不错,但服务太慢了。","rank":928},{"id":"V-session","en":"session","zh":"会议","more":"一段时间;开庭","ipa":"[ˈseʃn]","level":"B1","ex":"The team had a two-hour session to plan the project.","exZh":"团队开了两个小时的会来规划这个项目。","rank":3591},{"id":"V-set","en":"set","zh":"放置","more":"设置;一套","ipa":"[set]","level":"A1","ex":"Please set your cup on the table.","exZh":"请把你的杯子放在桌上。","rank":438},{"id":"V-severe","en":"severe","zh":"严重的","more":"严厉的;剧烈的","ipa":"[səˈvɪr]","level":"B1","ex":"She had a severe headache all day.","exZh":"她头疼了一整天,疼得很厉害。","rank":4479},{"id":"V-sew","en":"sew","zh":"缝纫","more":"缝合","ipa":"[soʊ]","level":"A2","ex":"Can you sew this button on my shirt?","exZh":"你能把这颗扣子缝在我的衬衫上吗?","rank":8250},{"id":"V-shade","en":"shade","zh":"阴凉处","more":"树荫;阴影","ipa":"[ʃeɪd]","level":"A2","ex":"We sat in the shade of a big tree.","exZh":"我们坐在一棵大树的阴凉处。","rank":6495},{"id":"V-shadow","en":"shadow","zh":"影子","more":"阴影","ipa":"[ˈʃædoʊ]","level":"A2","ex":"My shadow is longer in the evening.","exZh":"傍晚时我的影子更长。","rank":2515},{"id":"V-shake","en":"shake","zh":"摇动","more":"发抖;握手","ipa":"[ʃeɪk]","level":"A1","ex":"Don't shake the table when I write.","exZh":"我写字的时候别摇桌子。","rank":1789},{"id":"V-shallow","en":"shallow","zh":"浅的","more":"肤浅的","ipa":"[ˈʃæloʊ]","level":"B1","ex":"The water is shallow here, so we can walk.","exZh":"这里水很浅,我们可以走过去。","rank":6998},{"id":"V-shame","en":"shame","zh":"羞耻","more":"遗憾;羞愧","ipa":"[ʃeɪm]","level":"B1","ex":"He felt deep shame after lying to his mother.","exZh":"他对妈妈撒谎后感到深深的羞耻。","rank":1346},{"id":"V-shameful","en":"shameful","zh":"可耻的","more":"不体面的","ipa":"[ˈʃeɪmfl]","level":"B1","ex":"It was shameful to lie to your friends.","exZh":"对朋友撒谎是可耻的。","rank":9325},{"id":"V-shampoo","en":"shampoo","zh":"洗发水","more":"洗头","ipa":"[ʃæmˈpuː]","level":"A2","ex":"This new shampoo smells very nice.","exZh":"这款新洗发水闻起来很香。","rank":9420},{"id":"V-shape","en":"shape","zh":"形状","more":"身材;塑造","ipa":"[ʃeɪp]","level":"A2","ex":"What shape is the moon tonight?","exZh":"今晚月亮是什么形状?","rank":1974},{"id":"V-share","en":"share","zh":"分享","more":"分担;份额","ipa":"[ʃer]","level":"A1","ex":"I share my lunch with my best friend.","exZh":"我和最好的朋友分享我的午餐。","rank":958},{"id":"V-sharp","en":"sharp","zh":"锋利的","more":"急剧的;敏锐的","ipa":"[ʃɑːrp]","level":"B1","ex":"Be careful, that knife is very sharp.","exZh":"小心,那把刀很锋利。","rank":2514},{"id":"V-shave","en":"shave","zh":"刮胡子","more":"剃掉","ipa":"[ʃeɪv]","level":"B1","ex":"He shaves his face every morning before work.","exZh":"他每天早上上班前刮胡子。","rank":4678},{"id":"V-sheet","en":"sheet","zh":"床单","more":"薄片;纸张","ipa":"[ʃiːt]","level":"B1","ex":"Please put a clean sheet on the bed.","exZh":"请给床铺上一条干净的床单。","rank":4362},{"id":"V-shelf","en":"shelf","zh":"架子","more":"搁板","ipa":"[ʃelf]","level":"A1","ex":"The books are on the top shelf.","exZh":"那些书在最上面一层架子上。","rank":6520},{"id":"V-shell","en":"shell","zh":"外壳","more":"炮弹;贝壳","ipa":"[ʃel]","level":"A2","ex":"A turtle hides inside its hard shell.","exZh":"乌龟藏在它坚硬的外壳里。","rank":3657},{"id":"V-shelter","en":"shelter","zh":"避难所","more":"庇护;躲避","ipa":"[ˈʃeltər]","level":"B1","ex":"We took shelter from the rain under a tree.","exZh":"我们在树下躲雨。","rank":3381},{"id":"V-shift","en":"shift","zh":"转移","more":"改变;轮班","ipa":"[ʃɪft]","level":"B1","ex":"He shifted the heavy box to the corner.","exZh":"他把那个重箱子挪到了角落里。","rank":2398},{"id":"V-shine","en":"shine","zh":"照耀","more":"发光;闪耀","ipa":"[ʃaɪn]","level":"A2","ex":"The sun is shining and the sky is blue.","exZh":"阳光照耀,天空湛蓝。","rank":2891},{"id":"V-shiny","en":"shiny","zh":"有光泽的","more":"闪亮的","ipa":"[ˈʃaɪni]","level":"B1","ex":"Her new shoes are nice and shiny.","exZh":"她的新鞋又好看又亮。","rank":6070},{"id":"V-ship","en":"ship","zh":"轮船","more":"舰;运送","ipa":"[ʃɪp]","level":"A1","ex":"The ship arrived at the port this morning.","exZh":"那艘船今天早上到了港口。","rank":756},{"id":"V-shirt","en":"shirt","zh":"衬衫","ipa":"[ʃɜːrt]","level":"A1","ex":"He is wearing a white shirt and black trousers.","exZh":"他穿着一件白衬衫和黑裤子。","rank":1610},{"id":"V-shock","en":"shock","zh":"震惊","more":"冲击;电击","ipa":"[ʃɑːk]","level":"A2","ex":"The news of his death shocked everyone.","exZh":"他去世的消息让大家都很震惊。","rank":2090},{"id":"V-shocked","en":"shocked","zh":"震惊的","more":"感到意外的","ipa":"[ʃɑːkt]","level":"B1","ex":"I was shocked to hear the news.","exZh":"听到这个消息我很震惊。","rank":3616},{"id":"V-shocking","en":"shocking","zh":"令人震惊的","more":"糟糕的;可怕的","ipa":"[ˈʃɑːkɪŋ]","level":"B1","ex":"The news about the accident was shocking.","exZh":"那起事故的消息让人震惊。","rank":5694},{"id":"V-shoe","en":"shoe","zh":"鞋子","more":"蹄铁;轮胎外胎","ipa":"[ʃuː]","level":"A1","ex":"I need to buy a new pair of shoes.","exZh":"我得买一双新鞋。","rank":2825},{"id":"V-shoot","en":"shoot","zh":"射击","more":"拍摄;发芽","ipa":"[ʃuːt]","level":"A2","ex":"He learned to shoot a gun at camp.","exZh":"他在夏令营学会了开枪。","rank":598},{"id":"V-shop","en":"shop","zh":"商店","more":"购物;车间","ipa":"[ʃɑːp]","level":"A1","ex":"There is a small shop near my house.","exZh":"我家附近有一家小商店。","rank":1041},{"id":"V-shop-assistant","en":"shop assistant","zh":"店员","more":"售货员","ipa":"[ˈʃɑːp əsɪstənt]","level":"A2","ex":"The shop assistant helped me find my size.","exZh":"店员帮我找到了我的尺码。","rank":1901},{"id":"V-shopper","en":"shopper","zh":"购物者","more":"顾客","ipa":"[ˈʃɑːpər]","level":"B1","ex":"The streets were full of shoppers on Sunday.","exZh":"周日街上挤满了来买东西的人。","rank":28881},{"id":"V-shopping","en":"shopping","zh":"购物","more":"买东西","ipa":"[ˈʃɑːpɪŋ]","level":"A1","ex":"I go shopping with my mom every weekend.","exZh":"我每个周末都和妈妈去逛街买东西。","rank":2161},{"id":"V-shore","en":"shore","zh":"海岸","more":"湖滨;岸边","ipa":"[ʃɔːr]","level":"A2","ex":"We walked along the shore after lunch.","exZh":"午饭后我们沿着岸边散步。","rank":3873},{"id":"V-short","en":"short","zh":"短的","more":"矮的;不足的","ipa":"[ʃɔːrt]","level":"A1","ex":"She has short hair and a big smile.","exZh":"她留着短发,笑容灿烂。","rank":861},{"id":"V-shortage","en":"shortage","zh":"短缺","more":"不足","ipa":"[ˈʃɔːrtɪdʒ]","level":"B1","ex":"There is a shortage of water in this area.","exZh":"这个地区缺水。","rank":11399},{"id":"V-shortly","en":"shortly","zh":"不久","more":"立刻;简短地","ipa":"[ˈʃɔːrtli]","level":"B1","ex":"The doctor will see you shortly.","exZh":"医生马上就会给你看诊。","rank":3978},{"id":"V-shorts","en":"shorts","zh":"短裤","ipa":"[ʃɔːrts]","level":"A2","ex":"He wears blue shorts in summer.","exZh":"他夏天穿蓝色短裤。","rank":6072},{"id":"V-shoulder","en":"shoulder","zh":"肩膀","more":"承担","ipa":"[ˈʃoʊldər]","level":"A1","ex":"I put my hand on my shoulder.","exZh":"我把手放在肩膀上。","rank":2522},{"id":"V-shout","en":"shout","zh":"喊叫","more":"呼喊;呼叫","ipa":"[ʃaʊt]","level":"A2","ex":"Don't shout in the library, please.","exZh":"请不要在图书馆喊叫。","rank":2925},{"id":"V-show","en":"show","zh":"展示","more":"演出;显示","ipa":"[ʃoʊ]","level":"A1","ex":"Can you show me your new phone?","exZh":"你能给我看看你的新手机吗?","rank":240},{"id":"V-shower","en":"shower","zh":"淋浴","more":"阵雨;一阵","ipa":"[ˈʃaʊər]","level":"A1","ex":"I take a shower every morning.","exZh":"我每天早上淋浴。","rank":1707},{"id":"V-shut","en":"shut","zh":"关上","more":"关闭;停业","ipa":"[ʃʌt]","level":"A2","ex":"Please shut the door when you leave.","exZh":"你走的时候请关上门。","rank":403},{"id":"V-shy","en":"shy","zh":"害羞的","more":"腼腆的;胆怯的","ipa":"[ʃaɪ]","level":"A1","ex":"The shy boy didn't say a word.","exZh":"那个害羞的男孩一句话也没说。","rank":2827},{"id":"V-sick","en":"sick","zh":"生病的","more":"恶心的;厌倦的","ipa":"[sɪk]","level":"A1","ex":"My little brother is sick today.","exZh":"我弟弟今天生病了。","rank":588},{"id":"V-side","en":"side","zh":"旁边","more":"方面;侧面","ipa":"[saɪd]","level":"A1","ex":"She sat by my side on the bus.","exZh":"她在公交车上坐在我旁边。","rank":459},{"id":"V-sidewalk","en":"sidewalk","zh":"人行道","ipa":"[ˈsaɪdwɔːk]","level":"B1","ex":"We walked along the sidewalk to the store.","exZh":"我们沿着人行道走到商店。","rank":9537},{"id":"V-sight","en":"sight","zh":"视力","more":"景象;名胜","ipa":"[saɪt]","level":"A1","ex":"My sight is very good now.","exZh":"我的视力现在很好。","rank":1517},{"id":"V-sightseeing","en":"sightseeing","zh":"观光","more":"游览","ipa":"[ˈsaɪtsiːɪŋ]","level":"A2","ex":"We went sightseeing around the old city.","exZh":"我们在老城区观光。","rank":17278},{"id":"V-sign","en":"sign","zh":"标志","more":"签名;迹象","ipa":"[saɪn]","level":"A1","ex":"The sign on the wall says 'No smoking'.","exZh":"墙上的标志写着“禁止吸烟”。","rank":650},{"id":"V-signal","en":"signal","zh":"信号","more":"暗号;示意","ipa":"[ˈsɪɡnəl]","level":"B1","ex":"My phone has no signal in this room.","exZh":"我的手机在这个房间里没有信号。","rank":1784},{"id":"V-signature","en":"signature","zh":"签名","more":"特色;招牌菜","ipa":"[ˈsɪɡnətʃər]","level":"B1","ex":"Please write your signature at the bottom of the page.","exZh":"请在这页的最下面写上你的签名。","rank":3484},{"id":"V-signpost","en":"signpost","zh":"路标","more":"指示牌","ipa":"[ˈsaɪnpoʊst]","level":"B1","ex":"We got lost because we missed the signpost.","exZh":"我们错过了路标,所以迷路了。","rank":42349},{"id":"V-silence","en":"silence","zh":"沉默","more":"寂静;安静","ipa":"[ˈsaɪləns]","level":"A2","ex":"There was a long silence after his question.","exZh":"他问完问题后,大家沉默了很久。","rank":1807},{"id":"V-silent","en":"silent","zh":"沉默的","more":"安静的;无声的","ipa":"[ˈsaɪlənt]","level":"B1","ex":"He kept silent and said nothing all evening.","exZh":"他一整晚都保持沉默,什么也没说。","rank":2320},{"id":"V-silk","en":"silk","zh":"丝绸","more":"蚕丝;丝织物","ipa":"[sɪlk]","level":"B1","ex":"This dress is made of soft Chinese silk.","exZh":"这条裙子是用柔软的中国丝绸做的。","rank":4725},{"id":"V-silly","en":"silly","zh":"愚蠢的","more":"傻的;幼稚的","ipa":"[ˈsɪli]","level":"A2","ex":"I made a silly mistake on the test.","exZh":"我在考试中犯了一个愚蠢的错误。","rank":1261},{"id":"V-silver","en":"silver","zh":"银","more":"银器;银色的","ipa":"[ˈsɪlvər]","level":"A2","ex":"She wears a silver ring on her finger.","exZh":"她手指上戴着一枚银戒指。","rank":1966},{"id":"V-similar","en":"similar","zh":"相似的","more":"类似的","ipa":"[ˈsɪmələr]","level":"A2","ex":"Your bag is very similar to mine.","exZh":"你的包和我的包很相似。","rank":2536},{"id":"V-similarity","en":"similarity","zh":"相似之处","more":"类似;相似性","ipa":"[ˌsɪməˈlærəti]","level":"B1","ex":"I see a similarity between these two pictures.","exZh":"我觉得这两张图有相似之处。","rank":20904},{"id":"V-simple","en":"simple","zh":"简单的","more":"朴素的;单纯的","ipa":"[ˈsɪmpl]","level":"A2","ex":"I want a simple answer to my question.","exZh":"我的问题想要一个简单的答案。","rank":846},{"id":"V-simply","en":"simply","zh":"简单地","more":"仅仅;简直","ipa":"[ˈsɪmpli]","level":"A2","ex":"Can you say that simply, please?","exZh":"你能简单地说明一下吗?","rank":1336},{"id":"V-sing","en":"sing","zh":"唱歌","ipa":"[sɪŋ]","level":"A1","ex":"She likes to sing with her friends.","exZh":"她喜欢和朋友一起唱歌。","rank":797},{"id":"V-singer","en":"singer","zh":"歌手","ipa":"[ˈsɪŋər]","level":"A1","ex":"My mother is a good singer.","exZh":"我妈妈是个好歌手。","rank":2939},{"id":"V-singing","en":"singing","zh":"唱歌","more":"歌声","ipa":"[ˈsɪŋɪŋ]","level":"A2","ex":"Her singing is really beautiful.","exZh":"她的歌声真美。","rank":1067},{"id":"V-single","en":"single","zh":"单身的","more":"单一的;单人的","ipa":"[ˈsɪŋɡl]","level":"A2","ex":"Are you single or married?","exZh":"你单身还是已婚?","rank":852},{"id":"V-sink","en":"sink","zh":"水槽","more":"下沉;沉没","ipa":"[sɪŋk]","level":"A2","ex":"Put the dirty plates in the sink.","exZh":"把脏盘子放进水槽里。","rank":3418},{"id":"V-sister","en":"sister","zh":"姐妹","more":"修女","ipa":"[ˈsɪstər]","level":"A1","ex":"My little sister is six years old.","exZh":"我妹妹六岁了。","rank":465},{"id":"V-sit","en":"sit","zh":"坐","ipa":"[sɪt]","level":"A1","ex":"Please sit down and have some tea.","exZh":"请坐下喝点茶。","rank":371},{"id":"V-site","en":"site","zh":"网站","more":"地点;场所","ipa":"[saɪt]","level":"A1","ex":"I use this site every day.","exZh":"我每天都用这个网站。","rank":2025},{"id":"V-sitting-room","en":"sitting room","zh":"起居室","more":"客厅","ipa":"","level":"A2","ex":"We watch TV in the sitting room.","exZh":"我们在起居室看电视。","rank":853},{"id":"V-situation","en":"situation","zh":"情况","more":"形势;处境","ipa":"[ˌsɪtʃuˈeɪʃn]","level":"A2","ex":"The situation is getting better now.","exZh":"现在情况在好转。","rank":830},{"id":"V-size","en":"size","zh":"大小","more":"尺寸;尺码","ipa":"[saɪz]","level":"A1","ex":"What size shoes do you wear?","exZh":"你穿多大码的鞋?","rank":1509},{"id":"V-skate","en":"skate","zh":"滑冰","more":"溜冰;冰鞋","ipa":"[skeɪt]","level":"A2","ex":"We can skate on the lake when it is cold.","exZh":"天冷的时候我们可以在湖上滑冰。","rank":9384},{"id":"V-skateboarding","en":"skateboarding","zh":"滑板运动","ipa":"[ˈskeɪtbɔːrdɪŋ]","level":"A2","ex":"My brother loves skateboarding in the park every weekend.","exZh":"我弟弟每个周末都喜欢在公园玩滑板。","rank":26739},{"id":"V-skating","en":"skating","zh":"滑冰","ipa":"[ˈskeɪtɪŋ]","level":"A2","ex":"She goes skating with her friends every Sunday morning.","exZh":"她每个星期天早上都和朋友们去滑冰。","rank":9396},{"id":"V-ski","en":"ski","zh":"滑雪","more":"滑雪板","ipa":"[skiː]","level":"A2","ex":"We plan to ski in the mountains next winter.","exZh":"我们打算明年冬天去山里滑雪。","rank":6484},{"id":"V-skiing","en":"skiing","zh":"滑雪","more":"滑雪运动","ipa":"[ˈskiːɪŋ]","level":"A2","ex":"Skiing is my favorite thing to do in winter.","exZh":"滑雪是我冬天最喜欢做的事。","rank":9423},{"id":"V-skin","en":"skin","zh":"皮肤","more":"外皮;果皮","ipa":"[skɪn]","level":"B1","ex":"The sun can hurt your skin in summer.","exZh":"夏天太阳会伤害你的皮肤。","rank":1374},{"id":"V-skirt","en":"skirt","zh":"裙子","ipa":"[skɜːrt]","level":"A1","ex":"She is wearing a red skirt to the party.","exZh":"她穿着一条红裙子去参加聚会。","rank":4889},{"id":"V-sky","en":"sky","zh":"天空","ipa":"[skaɪ]","level":"A1","ex":"There are many stars in the sky tonight.","exZh":"今晚天上有许多星星。","rank":1285},{"id":"V-sleep","en":"sleep","zh":"睡觉","more":"睡眠","ipa":"[sliːp]","level":"A1","ex":"I need to sleep early tonight.","exZh":"我今晚得早点睡觉。","rank":424},{"id":"V-sleepy","en":"sleepy","zh":"困倦","ipa":"[ˈsliːpi]","level":"A2","ex":"I feel sleepy after lunch every day.","exZh":"我每天午饭后都觉得困。","rank":5418},{"id":"V-sleeve","en":"sleeve","zh":"袖子","more":"套筒","ipa":"[sliːv]","level":"B1","ex":"He rolled up his sleeve and washed his hands.","exZh":"他卷起袖子洗手。","rank":7373},{"id":"V-slice","en":"slice","zh":"薄片","more":"切片;一份","ipa":"[slaɪs]","level":"A2","ex":"I ate a slice of cake with my tea.","exZh":"我喝茶时吃了一块蛋糕。","rank":5152},{"id":"V-slide","en":"slide","zh":"滑动","more":"幻灯片;滑梯","ipa":"[slaɪd]","level":"A2","ex":"The kids like to slide on the ice.","exZh":"孩子们喜欢在冰上滑来滑去。","rank":3993},{"id":"V-slight","en":"slight","zh":"轻微的","more":"细小的;轻视","ipa":"[slaɪt]","level":"B1","ex":"I have a slight headache this morning.","exZh":"我今天早上有点轻微的头痛。","rank":4997},{"id":"V-slightly","en":"slightly","zh":"稍微","more":"略微","ipa":"[ˈslaɪtli]","level":"B1","ex":"The room is slightly bigger than mine.","exZh":"这个房间比我的稍微大一点。","rank":3396},{"id":"V-slim","en":"slim","zh":"苗条的","more":"薄的;变瘦","ipa":"[slɪm]","level":"A2","ex":"She stays slim by running every day.","exZh":"她每天跑步,所以身材很苗条。","rank":6239},{"id":"V-slip","en":"slip","zh":"滑倒","more":"溜走;差错","ipa":"[slɪp]","level":"B1","ex":"Be careful not to slip on the wet floor.","exZh":"小心,别在湿地板上滑倒。","rank":2671},{"id":"V-slope","en":"slope","zh":"斜坡","more":"坡度;倾斜","ipa":"[sloʊp]","level":"B1","ex":"We walked up a long slope to the school.","exZh":"我们走了一段长长的斜坡才到学校。","rank":10628},{"id":"V-slow","en":"slow","zh":"慢的","more":"缓慢的;迟钝的","ipa":"[sloʊ]","level":"A1","ex":"The bus is very slow today.","exZh":"今天公交车开得很慢。","rank":1053},{"id":"V-slowly","en":"slowly","zh":"慢慢地","ipa":"[ˈsloʊli]","level":"A2","ex":"Please speak slowly, I can't understand you.","exZh":"请说慢一点,我听不懂你的话。","rank":1749},{"id":"V-small","en":"small","zh":"小的","more":"年幼的;少量的","ipa":"[smɔːl]","level":"A1","ex":"I have a small dog and two cats.","exZh":"我有一只小狗和两只猫。","rank":576},{"id":"V-smart","en":"smart","zh":"聪明的","more":"时髦的;巧妙的","ipa":"[smɑːrt]","level":"A1","ex":"My sister is smart and works very hard.","exZh":"我妹妹很聪明,学习也很用功。","rank":910},{"id":"V-smell","en":"smell","zh":"气味","more":"闻到;闻起来","ipa":"[smel]","level":"A1","ex":"There is a bad smell in this room.","exZh":"这个房间里有股难闻的气味。","rank":967},{"id":"V-smile","en":"smile","zh":"微笑","more":"笑容","ipa":"[smaɪl]","level":"A1","ex":"She gave me a big smile at the door.","exZh":"她在门口对我笑得很开心。","rank":1189},{"id":"V-smoke","en":"smoke","zh":"烟","more":"抽烟","ipa":"[smoʊk]","level":"A1","ex":"I can see smoke coming from that old house.","exZh":"我看得见烟从那栋老房子里冒出来。","rank":1184},{"id":"V-smoking","en":"smoking","zh":"吸烟","more":"冒烟","ipa":"[ˈsmoʊkɪŋ]","level":"A1","ex":"Smoking is not good for your health.","exZh":"吸烟对你的健康不好。","rank":2356},{"id":"V-smooth","en":"smooth","zh":"光滑的","more":"顺利的;平稳的","ipa":"[smuːð]","level":"A2","ex":"Her hair is very soft and smooth.","exZh":"她的头发又软又滑。","rank":3501},{"id":"V-smoothly","en":"smoothly","zh":"顺利地","more":"平稳地;流畅地","ipa":"[ˈsmuːðli]","level":"A2","ex":"The meeting went smoothly this morning.","exZh":"今天上午的会开得很顺利。","rank":9510},{"id":"V-snack","en":"snack","zh":"零食","more":"小吃","ipa":"[snæk]","level":"A2","ex":"I always take a snack to school.","exZh":"我总是带点零食去学校。","rank":5431},{"id":"V-snow","en":"snow","zh":"雪","more":"下雪","ipa":"[snoʊ]","level":"A1","ex":"There is a lot of snow outside.","exZh":"外面下了很多雪。","rank":1791},{"id":"V-snowboard","en":"snowboard","zh":"滑雪板","ipa":"[ˈsnoʊbɔːrd]","level":"B1","ex":"He put his new snowboard in the car.","exZh":"他把新买的滑雪板放进了车里。","rank":41172},{"id":"V-snowboarding","en":"snowboarding","zh":"单板滑雪","ipa":"[ˈsnoʊbɔːrdɪŋ]","level":"A2","ex":"Snowboarding is my favorite winter sport.","exZh":"单板滑雪是我最喜欢的冬季运动。","rank":30472},{"id":"V-snowy","en":"snowy","zh":"下雪的","more":"被雪覆盖的","ipa":"[ˈsnoʊi]","level":"A1","ex":"It is a cold and snowy day.","exZh":"今天是个寒冷的下雪天。","rank":15168},{"id":"V-soap","en":"soap","zh":"肥皂","ipa":"[soʊp]","level":"A2","ex":"Wash your hands with soap and water.","exZh":"用肥皂和水洗洗手。","rank":3813},{"id":"V-soap-opera","en":"soap opera","zh":"肥皂剧","ipa":"","level":"B1","ex":"My mother watches a soap opera every night.","exZh":"我妈妈每天晚上都看肥皂剧。","rank":3813},{"id":"V-soccer","en":"soccer","zh":"足球","ipa":"[ˈsɑːkər]","level":"A1","ex":"We play soccer after school on Fridays.","exZh":"我们每周五放学后踢足球。","rank":4420},{"id":"V-social","en":"social","zh":"社交的","more":"社会的","ipa":"[ˈsoʊʃ(ə)l]","level":"A1","ex":"She likes social activities with her friends.","exZh":"她喜欢和朋友一起参加社交活动。","rank":1669},{"id":"V-society","en":"society","zh":"社会","more":"社团;协会","ipa":"[səˈsaɪəti]","level":"A2","ex":"Crime is a big problem in our society.","exZh":"犯罪是我们社会的一大问题。","rank":1608},{"id":"V-sock","en":"sock","zh":"短袜","ipa":"[sɑːk]","level":"A2","ex":"I can't find my other sock.","exZh":"我找不到另一只袜子了。","rank":6857},{"id":"V-sofa","en":"sofa","zh":"沙发","ipa":"[ˈsoʊfə]","level":"A1","ex":"Please come and sit on the sofa.","exZh":"请过来坐沙发上。","rank":6146},{"id":"V-soft","en":"soft","zh":"柔软的","more":"温柔的;柔和的","ipa":"[sɔːft]","level":"A2","ex":"This bed is very soft and comfortable.","exZh":"这张床又软又舒服。","rank":1777},{"id":"V-soft-drink","en":"soft drink","zh":"汽水","more":"软饮料","ipa":"","level":"A2","ex":"Would you like a soft drink with your meal?","exZh":"你吃饭时想来杯汽水吗?","rank":1777},{"id":"V-software","en":"software","zh":"软件","ipa":"[ˈsɔːftwer]","level":"A2","ex":"I need to install some new software.","exZh":"我得装一些新软件。","rank":6137},{"id":"V-soil","en":"soil","zh":"土壤","more":"泥土","ipa":"[sɔɪl]","level":"B1","ex":"These plants grow well in rich soil.","exZh":"这些植物在肥沃的土壤里长得很好。","rank":4051},{"id":"V-solid","en":"solid","zh":"固体的","more":"结实的;可靠的","ipa":"[ˈsɑːlɪd]","level":"B1","ex":"Ice is water in a solid form.","exZh":"冰是水的固体形态。","rank":2698},{"id":"V-solution","en":"solution","zh":"解决办法","more":"溶液;答案","ipa":"[səˈluːʃn]","level":"A2","ex":"We need a quick solution to this problem.","exZh":"我们得赶紧想出解决这个问题的办法。","rank":2429},{"id":"V-solve","en":"solve","zh":"解决","more":"解答","ipa":"[sɑːlv]","level":"A1","ex":"Can you solve this math problem?","exZh":"你能解出这道数学题吗?","rank":2307},{"id":"V-somehow","en":"somehow","zh":"不知怎么","more":"设法;以某种方式","ipa":"[ˈsʌmhaʊ]","level":"B1","ex":"Somehow, I lost my keys again.","exZh":"不知怎么回事,我又把钥匙弄丢了。","rank":1463},{"id":"V-sometimes","en":"sometimes","zh":"有时","ipa":"[ˈsʌmtaɪmz]","level":"B1","ex":"Sometimes I walk to school with my sister.","exZh":"有时我和妹妹一起走路去学校。","rank":528},{"id":"V-somewhere","en":"somewhere","zh":"在某处","more":"到某处","ipa":"[ˈsʌmwer]","level":"A2","ex":"I left my keys somewhere in the house.","exZh":"我把钥匙落在家里某个地方了。","rank":652},{"id":"V-son","en":"son","zh":"儿子","ipa":"[sʌn]","level":"A1","ex":"Their son is ten years old and loves football.","exZh":"他们的儿子十岁了,特别喜欢踢足球。","rank":250},{"id":"V-song","en":"song","zh":"歌曲","more":"歌声;鸟鸣","ipa":"[sɔŋ]","level":"A1","ex":"This song makes me think of my old friends.","exZh":"这首歌让我想起老朋友。","rank":678},{"id":"V-soon","en":"soon","zh":"很快","more":"不久;马上","ipa":"[suːn]","level":"A1","ex":"Dinner will be ready soon, so please wait here.","exZh":"晚饭很快就好了,请在这儿等一下。","rank":359},{"id":"V-sore","en":"sore","zh":"疼痛的","more":"酸痛的;恼火的","ipa":"[sɔːr]","level":"B1","ex":"My throat is sore, so I can't sing today.","exZh":"我嗓子疼,今天唱不了歌。","rank":4439},{"id":"V-sorry","en":"sorry","zh":"抱歉的","more":"难过的;遗憾的","ipa":"[ˈsɑːri]","level":"A1","ex":"I'm sorry I forgot to call you last night.","exZh":"对不起,我昨晚忘了给你打电话。","rank":126},{"id":"V-sort","en":"sort","zh":"种类","more":"整理;分类","ipa":"[sɔːrt]","level":"B1","ex":"What sort of music do you usually listen to?","exZh":"你平时听哪种音乐?","rank":561},{"id":"V-sound","en":"sound","zh":"声音","more":"听起来;声响","ipa":"[saʊnd]","level":"A2","ex":"I heard a strange sound coming from the kitchen.","exZh":"我听到厨房里传来一个奇怪的声音。","rank":600},{"id":"V-soup","en":"soup","zh":"汤","ipa":"[suːp]","level":"A1","ex":"My mother made chicken soup for us last night.","exZh":"昨晚妈妈给我们做了鸡汤。","rank":2124},{"id":"V-sour","en":"sour","zh":"酸的","more":"变质的;酸臭的","ipa":"[ˈsaʊər]","level":"B1","ex":"This milk tastes sour, I think it's too old.","exZh":"这牛奶喝着发酸,我觉得放太久了。","rank":6559},{"id":"V-south","en":"south","zh":"南方","more":"南部;向南","ipa":"[saʊθ]","level":"A2","ex":"My grandparents live in the south of Spain.","exZh":"我爷爷奶奶住在西班牙南部。","rank":1051},{"id":"V-southeast","en":"southeast","zh":"东南","more":"东南地区","ipa":"[ˌsaʊθˈiːst]","level":"B1","ex":"The hotel is in the southeast of the city.","exZh":"这家酒店在城市的东南部。","rank":10581},{"id":"V-southern","en":"southern","zh":"南方的","more":"南部的","ipa":"[ˈsʌðərn]","level":"B1","ex":"She lives in a small town in southern Spain.","exZh":"她住在西班牙南部的一个小镇上。","rank":3683},{"id":"V-southwest","en":"southwest","zh":"西南方","more":"西南地区","ipa":"[ˌsaʊθˈwest]","level":"B1","ex":"The wind is coming from the southwest today.","exZh":"今天风是从西南方吹来的。","rank":10989},{"id":"V-souvenir","en":"souvenir","zh":"纪念品","more":"小礼物","ipa":"[ˌsuːvəˈnɪr; ˈsuːvənɪr]","level":"B1","ex":"I bought a small souvenir for my sister.","exZh":"我给妹妹买了一个小纪念品。","rank":8360},{"id":"V-space","en":"space","zh":"空间","more":"太空;空地","ipa":"[speɪs]","level":"A2","ex":"There isn't enough space for another chair.","exZh":"这儿放不下另一把椅子了。","rank":848},{"id":"V-speak","en":"speak","zh":"说话","more":"讲;发言","ipa":"[spiːk]","level":"A1","ex":"Can you speak more slowly, please?","exZh":"你能说慢一点吗?","rank":471},{"id":"V-speaker","en":"speaker","zh":"演讲者","more":"扬声器;说话者","ipa":"[ˈspiːkər]","level":"A2","ex":"The speaker talked about his life in Africa.","exZh":"演讲者讲了自己在非洲的生活。","rank":4797},{"id":"V-special","en":"special","zh":"特别的","more":"专门的","ipa":"[ˈspeʃl]","level":"A1","ex":"Today is a special day for our family.","exZh":"今天对我们家来说是个特别的日子。","rank":580},{"id":"V-specialist","en":"specialist","zh":"专家","more":"专科医生","ipa":"[ˈspeʃəlɪst]","level":"B1","ex":"You should see a specialist about your knee.","exZh":"你的膝盖应该去看专科医生。","rank":6117},{"id":"V-spectacular","en":"spectacular","zh":"壮观的","more":"令人惊叹的","ipa":"[spekˈtækjələr]","level":"B1","ex":"The view from the top of the hill is spectacular.","exZh":"从山顶看下去,景色非常壮观。","rank":5865},{"id":"V-speed","en":"speed","zh":"速度","more":"迅速;高速","ipa":"[spiːd]","level":"A2","ex":"He drove at high speed down the quiet street.","exZh":"他飞快地开车驶过安静的街道。","rank":1446},{"id":"V-spell","en":"spell","zh":"拼写","more":"拼读;一段时间","ipa":"[spel]","level":"A1","ex":"How do you spell your last name?","exZh":"你的姓怎么拼?","rank":2175},{"id":"V-spelling","en":"spelling","zh":"拼写","more":"拼法;拼写能力","ipa":"[ˈspelɪŋ]","level":"B1","ex":"Can you check my spelling for mistakes?","exZh":"你能帮我看看拼写有没有错吗?","rank":9937},{"id":"V-spend","en":"spend","zh":"花费","more":"度过;消耗","ipa":"[spend]","level":"A1","ex":"I spend too much money on coffee.","exZh":"我花太多钱买咖啡了。","rank":829},{"id":"V-spice","en":"spice","zh":"香料","more":"调味品;情趣","ipa":"[spaɪs]","level":"B1","ex":"This soup needs a little more spice.","exZh":"这汤需要再多一点香料。","rank":7759},{"id":"V-spicy","en":"spicy","zh":"辛辣的","more":"下流的;刺激的","ipa":"[ˈspaɪsi]","level":"B1","ex":"My mother doesn't like spicy food at all.","exZh":"我妈妈一点也不喜欢辣的食物。","rank":7479},{"id":"V-spider","en":"spider","zh":"蜘蛛","ipa":"[ˈspaɪdər]","level":"B1","ex":"There is a big spider on the wall.","exZh":"墙上有一只大蜘蛛。","rank":4299},{"id":"V-spill","en":"spill","zh":"洒出","more":"溢出;泄露","ipa":"[spɪl]","level":"A2","ex":"Be careful not to spill your coffee.","exZh":"小心别把咖啡洒了。","rank":5413},{"id":"V-spinach","en":"spinach","zh":"菠菜","ipa":"[ˈspɪnɪtʃ; ˈspɪnɪdʒ]","level":"B1","ex":"My little brother hates eating spinach.","exZh":"我弟弟讨厌吃菠菜。","rank":13426},{"id":"V-spirit","en":"spirit","zh":"精神","more":"情绪;心灵","ipa":"[ˈspɪrɪt]","level":"B1","ex":"The team showed great spirit in the game.","exZh":"这支队伍在比赛中表现得很有精神。","rank":1295},{"id":"V-split","en":"split","zh":"分开","more":"分裂;分摊","ipa":"[splɪt]","level":"A2","ex":"Let's split the pizza into two parts.","exZh":"我们把披萨分成两份吧。","rank":1744},{"id":"V-spoil","en":"spoil","zh":"破坏","more":"宠坏;变质","ipa":"[spɔɪl]","level":"B1","ex":"Don't let the rain spoil our picnic.","exZh":"别让雨破坏了我们的野餐。","rank":4458},{"id":"V-spoon","en":"spoon","zh":"勺子","more":"一勺的量","ipa":"[spuːn]","level":"A2","ex":"Can I have a clean spoon, please?","exZh":"请给我一把干净的勺子好吗?","rank":5857},{"id":"V-sport","en":"sport","zh":"运动","more":"体育;娱乐","ipa":"[spɔːrt]","level":"A1","ex":"My favorite sport is playing basketball with friends.","exZh":"我最喜欢的运动是和朋友打篮球。","rank":3255},{"id":"V-sports-centre","en":"sports centre","zh":"体育中心","ipa":"","level":"A2","ex":"We play badminton at the sports centre every Friday.","exZh":"我们每周五在体育中心打羽毛球。","rank":3117},{"id":"V-spread","en":"spread","zh":"传播","more":"蔓延;涂抹","ipa":"[spred]","level":"A2","ex":"The news spread quickly through the school.","exZh":"消息很快传遍了学校。","rank":1850},{"id":"V-spring","en":"spring","zh":"春天","more":"泉水;弹簧","ipa":"[sprɪŋ]","level":"A1","ex":"We go to the park in spring.","exZh":"我们春天去公园。","rank":1858},{"id":"V-square","en":"square","zh":"广场","more":"正方形;平方","ipa":"[skwer]","level":"A2","ex":"We met in the town square.","exZh":"我们在镇上的广场见了面。","rank":1928},{"id":"V-stadium","en":"stadium","zh":"体育场","ipa":"[ˈsteɪdiəm]","level":"A2","ex":"The football match is at the big stadium.","exZh":"足球比赛在大体育场举行。","rank":6412},{"id":"V-stair","en":"stair","zh":"楼梯","more":"台阶","ipa":"[ster]","level":"A2","ex":"She ran up the stairs to her room.","exZh":"她跑上楼梯回房间。","rank":25588},{"id":"V-stall","en":"stall","zh":"摊位","more":"熄火;拖延","ipa":"[stɔːl]","level":"B1","ex":"She bought some fruit at a small stall.","exZh":"她在小摊上买了些水果。","rank":5918},{"id":"V-stamp","en":"stamp","zh":"邮票","more":"印章;跺脚","ipa":"[stæmp]","level":"A2","ex":"I need a stamp to send this letter.","exZh":"我需要一张邮票来寄这封信。","rank":5900},{"id":"V-stand","en":"stand","zh":"站立","more":"忍受;看台","ipa":"[stænd]","level":"A1","ex":"Please stand over there by the door.","exZh":"请站在门那边。","rank":460},{"id":"V-standard","en":"standard","zh":"标准","more":"水准;规格","ipa":"[ˈstændərd]","level":"B1","ex":"We must meet the safety standard.","exZh":"我们必须达到安全标准。","rank":3122},{"id":"V-star","en":"star","zh":"星星","more":"明星;星形","ipa":"[stɑːr]","level":"A1","ex":"We can see many stars at night.","exZh":"晚上我们可以看到很多星星。","rank":900},{"id":"V-stare","en":"stare","zh":"凝视","ipa":"[ster]","level":"B1","ex":"He stared at the screen for a long time.","exZh":"他盯着屏幕看了很久。","rank":4608},{"id":"V-start","en":"start","zh":"开始","more":"起点;启动","ipa":"[stɑːrt]","level":"A1","ex":"I start work at eight every morning.","exZh":"我每天早上八点开始工作。","rank":308},{"id":"V-state","en":"state","zh":"状态","more":"国家;州","ipa":"[steɪt]","level":"A2","ex":"The house is in a bad state.","exZh":"这房子状态很差。","rank":714},{"id":"V-station","en":"station","zh":"车站","more":"电台;站点","ipa":"[ˈsteɪʃn]","level":"A1","ex":"I will meet you at the train station.","exZh":"我会在火车站见你。","rank":805},{"id":"V-statue","en":"statue","zh":"雕像","ipa":"[ˈstætʃuː]","level":"A2","ex":"The statue in the park is very old.","exZh":"公园里的雕像很古老。","rank":4032},{"id":"V-stay","en":"stay","zh":"停留","more":"暂住;保持","ipa":"[steɪ]","level":"A1","ex":"I stay at home every day.","exZh":"我每天待在家里。","rank":218},{"id":"V-steadily","en":"steadily","zh":"稳定地","more":"稳步地;持续地","ipa":"[ˈstedəli]","level":"B1","ex":"The company is growing steadily this year.","exZh":"公司今年在稳定增长。","rank":14195},{"id":"V-steady","en":"steady","zh":"稳定的","more":"沉稳的;持续的","ipa":"[ˈstedi]","level":"B1","ex":"He has a steady job now.","exZh":"他现在有一份稳定的工作。","rank":2865},{"id":"V-steak","en":"steak","zh":"牛排","more":"肉排;鱼排","ipa":"[steɪk]","level":"A2","ex":"I would like a steak for dinner.","exZh":"我晚餐想吃牛排。","rank":3956},{"id":"V-steal","en":"steal","zh":"偷窃","more":"剽窃;偷走","ipa":"[stiːl]","level":"A2","ex":"Someone tried to steal my bike.","exZh":"有人想偷我的自行车。","rank":1234},{"id":"V-steam","en":"steam","zh":"蒸汽","more":"水汽;蒸","ipa":"[stiːm]","level":"B1","ex":"The hot water gives off steam.","exZh":"热水冒出蒸汽。","rank":4416},{"id":"V-steel","en":"steel","zh":"钢铁","more":"钢;钢制品","ipa":"[stiːl]","level":"B1","ex":"The bridge is made of steel.","exZh":"这座桥是用钢铁建造的。","rank":3054},{"id":"V-steep","en":"steep","zh":"陡峭的","more":"急剧的;过高的","ipa":"[stiːp]","level":"B1","ex":"The hill is too steep to climb.","exZh":"这座山太陡了,爬不上去。","rank":10068},{"id":"V-step","en":"step","zh":"步骤","more":"脚步;台阶","ipa":"[step]","level":"A1","ex":"The first step is easy for you.","exZh":"第一步对你来说很简单。","rank":691},{"id":"V-stick","en":"stick","zh":"粘贴","more":"棍子;坚持","ipa":"[stɪk]","level":"B1","ex":"Please stick this photo on the wall.","exZh":"请把这张照片贴在墙上。","rank":907},{"id":"V-sticky","en":"sticky","zh":"粘的","more":"棘手的","ipa":"[ˈstɪki]","level":"B1","ex":"My hands are sticky from the candy.","exZh":"我吃了糖,手黏黏的。","rank":7295},{"id":"V-still","en":"still","zh":"仍然","more":"静止的;平静的","ipa":"[stɪl]","level":"A1","ex":"Are you still waiting for the bus?","exZh":"你还在等公交车吗?","rank":143},{"id":"V-stir","en":"stir","zh":"搅拌","more":"搅动;激起","ipa":"[stɜːr]","level":"B1","ex":"Please stir the soup for two minutes.","exZh":"请把汤搅拌两分钟。","rank":6707},{"id":"V-stomach","en":"stomach","zh":"胃","more":"腹部;胃口","ipa":"[ˈstʌmək]","level":"A2","ex":"My stomach hurts after eating too much.","exZh":"我吃太多了,胃疼。","rank":1836},{"id":"V-stomachache","en":"stomachache","zh":"胃痛","more":"肚子疼","ipa":"[ˈstʌməkˌeɪk]","level":"A2","ex":"I have a stomachache and cannot eat.","exZh":"我胃疼,吃不下东西。","rank":24872},{"id":"V-stop","en":"stop","zh":"停止","more":"车站;阻止","ipa":"[stɑːp]","level":"A1","ex":"Please stop talking and listen to me.","exZh":"请别说话了,听我说。","rank":159},{"id":"V-storage","en":"storage","zh":"存储","more":"仓库;储藏","ipa":"[ˈstɔːrɪdʒ]","level":"B1","ex":"This phone has a lot of storage.","exZh":"这部手机的存储空间很大。","rank":4824},{"id":"V-store","en":"store","zh":"商店","more":"储存;仓库","ipa":"[stɔːr]","level":"A1","ex":"I bought some milk at the store.","exZh":"我在商店买了些牛奶。","rank":1033},{"id":"V-storm","en":"storm","zh":"暴风雨","more":"风暴;风波","ipa":"[stɔːrm]","level":"A2","ex":"A big storm is coming this evening.","exZh":"今晚会有一场大暴风雨。","rank":1864},{"id":"V-stormy","en":"stormy","zh":"暴风雨的","more":"激烈的","ipa":"[ˈstɔːrmi]","level":"B1","ex":"The weather was stormy all night long.","exZh":"一整晚都是暴风雨天气。","rank":13953},{"id":"V-story","en":"story","zh":"故事","more":"小说;新闻报道","ipa":"[ˈstɔːri]","level":"A1","ex":"Grandma told us a funny story last night.","exZh":"奶奶昨晚给我们讲了一个有趣的故事。","rank":440},{"id":"V-straight","en":"straight","zh":"直的","more":"笔直地;直接地","ipa":"[streɪt]","level":"A1","ex":"Draw a straight line on the paper.","exZh":"在纸上画一条直线。","rank":676},{"id":"V-strange","en":"strange","zh":"奇怪的","more":"陌生的;不寻常的","ipa":"[streɪndʒ]","level":"A1","ex":"I heard a strange sound outside my window.","exZh":"我听到窗外有个奇怪的声音。","rank":733},{"id":"V-stranger","en":"stranger","zh":"陌生人","more":"外地人;局外人","ipa":"[ˈstreɪndʒər]","level":"A2","ex":"Don't talk to strangers at the train station.","exZh":"别在火车站跟陌生人说话。","rank":2342},{"id":"V-straw","en":"straw","zh":"吸管","more":"稻草;麦秆","ipa":"[strɔː]","level":"B1","ex":"Can I have a straw for my drink?","exZh":"能给我一根吸管喝饮料吗?","rank":6161},{"id":"V-strawberry","en":"strawberry","zh":"草莓","ipa":"[ˈstrɔːberi]","level":"B1","ex":"I ate a sweet strawberry after lunch.","exZh":"午饭后我吃了一颗甜草莓。","rank":7906},{"id":"V-stream","en":"stream","zh":"溪流","more":"流动;直播","ipa":"[striːm]","level":"B1","ex":"We walked along a small stream in the park.","exZh":"我们在公园里沿着一条小溪走。","rank":5119},{"id":"V-street","en":"street","zh":"街道","ipa":"[striːt]","level":"A1","ex":"I met my friend on the street this morning.","exZh":"今天早上我在街上遇到了朋友。","rank":629},{"id":"V-stress","en":"stress","zh":"压力","more":"强调;重音","ipa":"[stres]","level":"B1","ex":"He is under a lot of stress at work.","exZh":"他工作压力很大。","rank":2998},{"id":"V-stressed","en":"stressed","zh":"有压力的","more":"紧张的;焦虑的","ipa":"[strest]","level":"B1","ex":"I feel stressed before every exam.","exZh":"每次考试前我都感到有压力。","rank":5854},{"id":"V-stressful","en":"stressful","zh":"压力大的","more":"紧张的;令人焦虑的","ipa":"[ˈstresfl]","level":"B1","ex":"My new job is very stressful.","exZh":"我的新工作压力很大。","rank":9451},{"id":"V-stretch","en":"stretch","zh":"伸展","more":"拉伸;延伸","ipa":"[stretʃ]","level":"B1","ex":"I stretch my arms after sitting for hours.","exZh":"坐了几个小时后我会伸展一下胳膊。","rank":3596},{"id":"V-strike","en":"strike","zh":"罢工","more":"打击;撞击","ipa":"[straɪk]","level":"A2","ex":"The workers went on strike for better pay.","exZh":"工人们为了加薪举行罢工。","rank":1591},{"id":"V-string","en":"string","zh":"绳子","more":"一串;弦","ipa":"[strɪŋ]","level":"A2","ex":"She tied the box with a piece of string.","exZh":"她用一根绳子把盒子绑好了。","rank":3819},{"id":"V-stripe","en":"stripe","zh":"条纹","more":"种类","ipa":"[straɪp]","level":"B1","ex":"The zebra has black and white stripes.","exZh":"斑马身上有黑白条纹。","rank":20030},{"id":"V-strong","en":"strong","zh":"强壮的","more":"坚强的;坚固的","ipa":"[strɔːŋ]","level":"A1","ex":"My dad is very strong and tall.","exZh":"我爸爸非常强壮,个子也高。","rank":715},{"id":"V-strongly","en":"strongly","zh":"强烈地","more":"坚决地;有力地","ipa":"[ˈstrɔːŋli]","level":"A2","ex":"I strongly feel that this is wrong.","exZh":"我强烈觉得这是错的。","rank":6034},{"id":"V-struggle","en":"struggle","zh":"挣扎","more":"努力;奋斗","ipa":"[ˈstrʌɡl]","level":"B1","ex":"The fish struggled to get back in the water.","exZh":"那条鱼挣扎着想回到水里。","rank":2794},{"id":"V-student","en":"student","zh":"学生","ipa":"[ˈstuːdnt]","level":"A1","ex":"The student is reading a book in class.","exZh":"这个学生在教室里看书。","rank":1506},{"id":"V-studio","en":"studio","zh":"工作室","more":"录音室;演播室","ipa":"[ˈstuːdioʊ]","level":"B1","ex":"She works in a small art studio.","exZh":"她在一个小艺术工作室工作。","rank":2208},{"id":"V-study","en":"study","zh":"学习","more":"研究;书房","ipa":"[ˈstʌdi]","level":"A1","ex":"I study English for one hour every day.","exZh":"我每天学一小时英语。","rank":1288},{"id":"V-stuff","en":"stuff","zh":"东西","more":"材料;填塞","ipa":"[stʌf]","level":"A2","ex":"Put your stuff in the bag.","exZh":"把你的东西放进包里。","rank":382},{"id":"V-stumble","en":"stumble","zh":"绊倒","more":"踉跄;结巴","ipa":"[ˈstʌmbl]","level":"B1","ex":"He stumbled on a rock and fell.","exZh":"他被一块石头绊了一下,摔倒了。","rank":13494},{"id":"V-stupid","en":"stupid","zh":"愚蠢的","ipa":"[ˈstuːpɪd]","level":"B1","ex":"It was stupid to go out without a coat.","exZh":"不穿外套就出门,真傻。","rank":522},{"id":"V-style","en":"style","zh":"风格","more":"样式;款式","ipa":"[staɪl]","level":"A2","ex":"I really like your style of clothes.","exZh":"我很喜欢你的穿衣风格。","rank":1779},{"id":"V-stylish","en":"stylish","zh":"时髦的","more":"时尚的;有格调的","ipa":"[ˈstaɪlɪʃ]","level":"B1","ex":"She always wears stylish clothes to work.","exZh":"她上班总是穿得很时髦。","rank":13405},{"id":"V-substitute","en":"substitute","zh":"替代品","more":"代替;替补","ipa":"[ˈsʌbstɪtuːt]","level":"B1","ex":"Honey can be a substitute for sugar.","exZh":"蜂蜜可以代替糖。","rank":7884},{"id":"V-subway","en":"subway","zh":"地铁","more":"地下通道","ipa":"[ˈsʌbweɪ]","level":"A1","ex":"I take the subway to work every day.","exZh":"我每天坐地铁上班。","rank":5170},{"id":"V-succeed","en":"succeed","zh":"成功","more":"继承;接替","ipa":"[səkˈsiːd]","level":"A2","ex":"If you keep trying, you will succeed.","exZh":"只要坚持努力,你就会成功。","rank":3645},{"id":"V-success","en":"success","zh":"成功","more":"成功的人;成功的事","ipa":"[səkˈses]","level":"A2","ex":"The party was a big success.","exZh":"这次聚会办得很成功。","rank":1811},{"id":"V-sudden","en":"sudden","zh":"突然的","more":"意外的","ipa":"[ˈsʌdn]","level":"A2","ex":"There was a sudden noise outside the door.","exZh":"门外突然传来一声响。","rank":1853},{"id":"V-suddenly","en":"suddenly","zh":"突然","ipa":"[ˈsʌdənli]","level":"B1","ex":"He suddenly stopped talking and looked at me.","exZh":"他突然不说话了,看着我。","rank":1110},{"id":"V-suffer","en":"suffer","zh":"受苦","more":"遭受;受折磨","ipa":"[ˈsʌfər]","level":"B1","ex":"She suffered a lot when her dog died.","exZh":"她的狗死的时候,她非常痛苦。","rank":2101},{"id":"V-sugar","en":"sugar","zh":"糖","more":"白糖;糖分","ipa":"[ˈʃʊɡər]","level":"A1","ex":"Do you take sugar in your tea?","exZh":"你喝茶要加糖吗?","rank":1803},{"id":"V-suggest","en":"suggest","zh":"建议","more":"暗示;表明","ipa":"[səˈdʒestˌsəɡˈdʒest]","level":"A2","ex":"I suggest we take a taxi.","exZh":"我建议我们打车去。","rank":1698},{"id":"V-suit","en":"suit","zh":"西装","more":"适合;一套衣服","ipa":"[suːt]","level":"A2","ex":"He wore a dark suit to the party.","exZh":"他穿了一身深色西装去参加聚会。","rank":1214},{"id":"V-suitable","en":"suitable","zh":"合适的","more":"适宜的;恰当的","ipa":"[ˈsuːtəbl]","level":"A2","ex":"This movie is not suitable for young children.","exZh":"这部电影不适合小孩子看。","rank":6025},{"id":"V-suitcase","en":"suitcase","zh":"行李箱","more":"手提箱","ipa":"[ˈsuːtkeɪs]","level":"A2","ex":"My suitcase is too heavy to carry.","exZh":"我的行李箱太重了,拎不动。","rank":4207},{"id":"V-summer","en":"summer","zh":"夏天","more":"夏季","ipa":"[ˈsʌmər]","level":"A1","ex":"We go swimming every day in summer.","exZh":"夏天我们天天去游泳。","rank":1132},{"id":"V-sun","en":"sun","zh":"太阳","more":"阳光","ipa":"[sʌn]","level":"A1","ex":"The sun is very bright today.","exZh":"今天太阳很晒。","rank":841},{"id":"V-sunbathe","en":"sunbathe","zh":"晒日光浴","ipa":"[ˈsʌnbeɪð]","level":"B1","ex":"We like to sunbathe on the beach.","exZh":"我们喜欢在海滩上晒日光浴。","rank":40203},{"id":"V-sunday","en":"Sunday","zh":"星期日","more":"星期天","ipa":"[ˈsʌndeɪ]","level":"A1","ex":"I usually visit my parents on Sunday.","exZh":"我一般星期天去看爸妈。","rank":1656},{"id":"V-sunglasses","en":"sunglasses","zh":"太阳镜","more":"墨镜","ipa":"[ˈsʌnɡlæsɪz]","level":"A2","ex":"She wears sunglasses on sunny days.","exZh":"出太阳的时候她就戴墨镜。","rank":8984},{"id":"V-sunny","en":"sunny","zh":"晴朗的","more":"阳光充足的","ipa":"[ˈsʌni]","level":"A1","ex":"It was a warm and sunny afternoon.","exZh":"那是个温暖晴朗的下午。","rank":4349},{"id":"V-sunrise","en":"sunrise","zh":"日出","more":"黎明","ipa":"[ˈsʌnraɪz]","level":"B1","ex":"We got up early to watch the sunrise.","exZh":"我们早起去看日出。","rank":7264},{"id":"V-sunset","en":"sunset","zh":"日落","more":"晚霞","ipa":"[ˈsʌnset]","level":"B1","ex":"The sunset over the sea was beautiful.","exZh":"海上的日落真美。","rank":5134},{"id":"V-sunshine","en":"sunshine","zh":"阳光","more":"晴天","ipa":"[ˈsʌnʃaɪn]","level":"A1","ex":"The children played outside in the sunshine.","exZh":"孩子们在阳光下玩耍。","rank":4232},{"id":"V-super","en":"super","zh":"极好的","more":"超级的","ipa":"[ˈsuːpər]","level":"A1","ex":"That was a super idea, thank you!","exZh":"那主意太棒了,谢谢你!","rank":1483},{"id":"V-supermarket","en":"supermarket","zh":"超市","ipa":"[ˈsuːpərmɑːrkɪt]","level":"A1","ex":"I need to buy some milk at the supermarket.","exZh":"我要去超市买点牛奶。","rank":7145},{"id":"V-supper","en":"supper","zh":"晚餐","more":"夜宵","ipa":"[ˈsʌpər]","level":"A2","ex":"What do you want for supper tonight?","exZh":"你今晚晚饭想吃什么?","rank":3724},{"id":"V-supply","en":"supply","zh":"供应","more":"供给;补给品","ipa":"[səˈplaɪ]","level":"B1","ex":"The shop can supply everything we need.","exZh":"这家店能供应我们需要的所有东西。","rank":2844},{"id":"V-support","en":"support","zh":"支持","more":"支撑;赡养","ipa":"[səˈpɔːrt]","level":"A2","ex":"My family always support my decisions.","exZh":"我家人总是支持我的决定。","rank":1082},{"id":"V-supporter","en":"supporter","zh":"支持者","more":"拥护者","ipa":"[səˈpɔːrtər]","level":"B1","ex":"He is a strong supporter of the new plan.","exZh":"他是这个新计划的有力支持者。","rank":17668},{"id":"V-suppose","en":"suppose","zh":"猜想","more":"认为;假设","ipa":"[səˈpoʊz]","level":"B1","ex":"I suppose you are right about that.","exZh":"我想在这件事上你是对的。","rank":764},{"id":"V-sure","en":"sure","zh":"确定的","more":"当然;可靠的","ipa":"[ʃʊr]","level":"A1","ex":"Are you sure you locked the door?","exZh":"你确定你锁门了吗?","rank":136},{"id":"V-surf","en":"surf","zh":"冲浪","more":"海浪","ipa":"[sɜːrf]","level":"A1","ex":"I want to learn to surf this summer.","exZh":"今年夏天我想学冲浪。","rank":6974},{"id":"V-surface","en":"surface","zh":"表面","more":"表层;水面","ipa":"[ˈsɜːrfɪs]","level":"B1","ex":"The surface of the table is very smooth.","exZh":"这张桌子的表面很光滑。","rank":2315},{"id":"V-surfing","en":"surfing","zh":"冲浪","more":"网上浏览","ipa":"[ˈsɜːrfɪŋ]","level":"A2","ex":"He goes surfing every weekend in summer.","exZh":"夏天他每个周末都去冲浪。","rank":9069},{"id":"V-surgery","en":"surgery","zh":"手术","more":"外科;诊所","ipa":"[ˈsɜːrdʒəri]","level":"B1","ex":"She had surgery on her knee last week.","exZh":"她上周做了膝盖手术。","rank":1729},{"id":"V-surname","en":"surname","zh":"姓","more":"姓氏","ipa":"[ˈsɜːrneɪm]","level":"A2","ex":"Please write your surname on this form.","exZh":"请在这张表上写下你的姓。","rank":11386},{"id":"V-surprise","en":"surprise","zh":"惊讶","more":"惊喜;使惊讶","ipa":"[sərˈpraɪz]","level":"A1","ex":"I looked at him in surprise.","exZh":"我惊讶地看着他。","rank":880},{"id":"V-surprised","en":"surprised","zh":"感到惊讶","ipa":"[sərˈpraɪzd]","level":"A2","ex":"I was surprised to see him here.","exZh":"在这儿见到他,我很惊讶。","rank":1194},{"id":"V-surprising","en":"surprising","zh":"令人惊讶","more":"出人意料","ipa":"[sərˈpraɪzɪŋ]","level":"A2","ex":"It is surprising that he came so early.","exZh":"他这么早就来了,真让人惊讶。","rank":4847},{"id":"V-surround","en":"surround","zh":"包围","more":"围绕;环绕","ipa":"[səˈraʊnd]","level":"B1","ex":"The police surrounded the building last night.","exZh":"警察昨晚包围了那栋楼。","rank":9212},{"id":"V-suspect","en":"suspect","zh":"怀疑","more":"嫌疑犯;猜想","ipa":"[səˈspekt]","level":"B1","ex":"I suspect he is lying to us.","exZh":"我怀疑他在骗我们。","rank":1326},{"id":"V-swallow","en":"swallow","zh":"吞下","more":"燕子;忍受","ipa":"[ˈswɑːloʊ]","level":"A2","ex":"She swallowed the last piece of cake.","exZh":"她吞下了最后一块蛋糕。","rank":4359},{"id":"V-sweat","en":"sweat","zh":"出汗","more":"汗水","ipa":"[swet]","level":"A2","ex":"I sweat a lot when I run.","exZh":"我跑步的时候出很多汗。","rank":2974},{"id":"V-sweater","en":"sweater","zh":"毛衣","ipa":"[ˈswetər]","level":"A2","ex":"She wore a warm sweater to school.","exZh":"她穿了一件暖和的毛衣去学校。","rank":5109},{"id":"V-sweatshirt","en":"sweatshirt","zh":"卫衣","more":"运动衫","ipa":"[ˈswetʃɜːrt]","level":"B1","ex":"He put on a blue sweatshirt before going out.","exZh":"他出门前穿上一件蓝色卫衣。","rank":17600},{"id":"V-sweet","en":"sweet","zh":"甜的","more":"糖果;甜蜜的","ipa":"[swiːt]","level":"A1","ex":"This cake is very sweet and I love it.","exZh":"这个蛋糕很甜,我很喜欢。","rank":647},{"id":"V-swell","en":"swell","zh":"肿胀","more":"膨胀;增大","ipa":"[swel]","level":"B1","ex":"My ankle began to swell after the fall.","exZh":"摔倒后,我的脚踝开始肿了。","rank":4754},{"id":"V-swim","en":"swim","zh":"游泳","ipa":"[swɪm]","level":"A1","ex":"I swim in the pool every Sunday.","exZh":"我每个星期天都在泳池里游泳。","rank":2224},{"id":"V-swimmer","en":"swimmer","zh":"游泳者","more":"游泳运动员","ipa":"[ˈswɪmər]","level":"B1","ex":"She is a strong swimmer and swims every morning.","exZh":"她游泳很厉害,每天早上都去游泳。","rank":13456},{"id":"V-swimming","en":"swimming","zh":"游泳","more":"头晕","ipa":"[ˈswɪmɪŋ]","level":"A1","ex":"I go swimming in the lake every summer.","exZh":"每年夏天我都去湖里游泳。","rank":2804},{"id":"V-swimming-costume","en":"swimming costume","zh":"游泳衣","ipa":"","level":"A2","ex":"She packed her swimming costume for the holiday.","exZh":"她把游泳衣装进行李,准备去度假。","rank":3231},{"id":"V-swimming-pool","en":"swimming pool","zh":"游泳池","more":"游泳馆","ipa":"[ˈswɪmɪŋ puːl]","level":"A1","ex":"The children are playing in the swimming pool.","exZh":"孩子们正在游泳池里玩。","rank":2804},{"id":"V-swimsuit","en":"swimsuit","zh":"游泳衣","ipa":"[ˈswɪmsuːt]","level":"A2","ex":"I bought a new swimsuit for the beach.","exZh":"我买了一件新泳衣,准备去海边穿。","rank":15904},{"id":"V-switch","en":"switch","zh":"开关","more":"转换;改变","ipa":"[swɪtʃ]","level":"B1","ex":"Where is the light switch in this room?","exZh":"这个房间的灯开关在哪儿?","rank":2076},{"id":"V-sympathy","en":"sympathy","zh":"同情","more":"同情心;慰问","ipa":"[ˈsɪmpəθi]","level":"B1","ex":"I have great sympathy for people who lost their homes.","exZh":"我很同情那些失去家园的人。","rank":5468},{"id":"V-system","en":"system","zh":"系统","more":"制度;体系","ipa":"[ˈsɪstəm]","level":"A2","ex":"The school has a new computer system.","exZh":"学校有了一套新的电脑系统。","rank":763},{"id":"V-t-shirt","en":"T-shirt","zh":"T恤衫","more":"短袖衫","ipa":"[ˈtiː ʃɜːrt]","level":"A1","ex":"He is wearing a blue T-shirt today.","exZh":"他今天穿着一件蓝色的T恤。","rank":6127},{"id":"V-table","en":"table","zh":"桌子","more":"表格","ipa":"[ˈteɪbl]","level":"A1","ex":"Please put the plates on the table.","exZh":"请把盘子放在桌子上。","rank":815},{"id":"V-table-tennis","en":"table tennis","zh":"乒乓球","more":"乒乓球运动","ipa":"[ˈteɪb(ə)l tenɪs]","level":"A2","ex":"We play table tennis after school on Fridays.","exZh":"我们每周五放学后打乒乓球。","rank":4271},{"id":"V-tablet","en":"tablet","zh":"药片","more":"平板电脑;碑","ipa":"[ˈtæblət]","level":"B1","ex":"Take one tablet after dinner every day.","exZh":"每天晚饭后吃一片药。","rank":9941},{"id":"V-take","en":"take","zh":"拿走","more":"乘坐;花费","ipa":"[teɪk]","level":"A1","ex":"Please take this bag to my room.","exZh":"请把这个包拿到我房间去。","rank":89},{"id":"V-takeaway","en":"takeaway","zh":"外卖","more":"外卖餐馆","ipa":"[ˈteɪkəweɪ]","level":"B1","ex":"Let's get a takeaway from that new place.","exZh":"我们从那家新店点个外卖吧。","rank":25358},{"id":"V-tale","en":"tale","zh":"故事","more":"传说;谎话","ipa":"[teɪl]","level":"B1","ex":"My grandfather told me a tale about the sea.","exZh":"我爷爷给我讲了一个关于大海的故事。","rank":3868},{"id":"V-talent","en":"talent","zh":"才能","more":"天才;人才","ipa":"[ˈtælənt]","level":"A2","ex":"She has a lot of talent for music.","exZh":"她很有音乐才能。","rank":2193},{"id":"V-talented","en":"talented","zh":"有天赋的","ipa":"[ˈtæləntɪd]","level":"B1","ex":"He is a very talented young singer.","exZh":"他是个非常有天赋的年轻歌手。","rank":3770},{"id":"V-talk","en":"talk","zh":"谈话","more":"说话;演讲","ipa":"[tɔːk]","level":"A1","ex":"We need to talk about the party.","exZh":"我们得谈谈聚会的事。","rank":163},{"id":"V-talkative","en":"talkative","zh":"爱说话的","ipa":"[ˈtɔːkətɪv]","level":"B1","ex":"My sister is very talkative in class.","exZh":"我妹妹在课上话特别多。","rank":17256},{"id":"V-tall","en":"tall","zh":"高的","ipa":"[tɔːl]","level":"A1","ex":"My brother is very tall and plays basketball.","exZh":"我哥哥很高,还打篮球。","rank":2086},{"id":"V-tap","en":"tap","zh":"水龙头","more":"轻敲","ipa":"[tæp]","level":"A2","ex":"Please turn off the tap after washing.","exZh":"洗完手请把水龙头关上。","rank":3812},{"id":"V-tape","en":"tape","zh":"胶带","more":"磁带;录音带","ipa":"[teɪp]","level":"A2","ex":"I used tape to fix the box.","exZh":"我用胶带把箱子粘好了。","rank":1471},{"id":"V-task","en":"task","zh":"任务","more":"工作","ipa":"[tæsk]","level":"A2","ex":"This task will take about two hours.","exZh":"这个任务大概要花两个小时。","rank":2697},{"id":"V-taste","en":"taste","zh":"味道","more":"品尝;品味","ipa":"[teɪst]","level":"B1","ex":"I don't like the taste of this coffee.","exZh":"我不喜欢这杯咖啡的味道。","rank":1251},{"id":"V-tasty","en":"tasty","zh":"美味的","more":"可口的","ipa":"[ˈteɪsti]","level":"B1","ex":"The cake you made is really tasty.","exZh":"你做的蛋糕真好吃。","rank":5522},{"id":"V-tax","en":"tax","zh":"税金","more":"征税;负担","ipa":"[tæks]","level":"B1","ex":"We pay tax to the government every year.","exZh":"我们每年都要向政府缴税。","rank":3015},{"id":"V-taxi","en":"taxi","zh":"出租车","ipa":"[ˈtæksi]","level":"A1","ex":"Let's take a taxi to the airport.","exZh":"我们打车去机场吧。","rank":2210},{"id":"V-tea","en":"tea","zh":"茶","more":"茶叶;下午茶","ipa":"[tiː]","level":"A1","ex":"Would you like a cup of tea?","exZh":"你想喝杯茶吗?","rank":927},{"id":"V-teach","en":"teach","zh":"教","more":"教导;讲授","ipa":"[tiːtʃ]","level":"A1","ex":"My father taught me how to swim.","exZh":"我爸爸教我游泳。","rank":1019},{"id":"V-teacher","en":"teacher","zh":"老师","more":"教师","ipa":"[ˈtiːtʃər]","level":"A1","ex":"My English teacher is very kind to us.","exZh":"我的英语老师对我们很好。","rank":1014},{"id":"V-teaching","en":"teaching","zh":"教学","more":"教书;学说","ipa":"[ˈtiːtʃɪŋ]","level":"B1","ex":"Teaching young children is hard but fun.","exZh":"教小孩子很累,但很有趣。","rank":2750},{"id":"V-team","en":"team","zh":"团队","more":"队;组","ipa":"[tiːm]","level":"A1","ex":"Our team won the game last night.","exZh":"我们队昨晚赢了比赛。","rank":515},{"id":"V-teammate","en":"teammate","zh":"队友","ipa":"[ˈtiːmmeɪt]","level":"B1","ex":"I passed the ball to my teammate.","exZh":"我把球传给了队友。","rank":18650},{"id":"V-tear","en":"tear","zh":"眼泪","more":"泪水;撕破","ipa":"[ter]","level":"A2","ex":"She had tears in her eyes.","exZh":"她眼里含着泪。","rank":2344},{"id":"V-technique","en":"technique","zh":"技巧","more":"技术;手法","ipa":"[tekˈniːk]","level":"B1","ex":"He showed me a new technique for painting.","exZh":"他给我演示了一种新的绘画技巧。","rank":4308},{"id":"V-teenage","en":"teenage","zh":"十几岁的","more":"青少年的","ipa":"[ˈtiːneɪdʒ]","level":"A2","ex":"She is a teenage girl who loves pop music.","exZh":"她是个十几岁的女孩,很喜欢流行音乐。","rank":4875},{"id":"V-teenager","en":"teenager","zh":"青少年","ipa":"[ˈtiːneɪdʒər]","level":"A2","ex":"My sister is a teenager, and she loves music.","exZh":"我妹妹十几岁,很喜欢音乐。","rank":5924},{"id":"V-telephone","en":"telephone","zh":"电话","more":"电话机","ipa":"[ˈtelɪfoʊn]","level":"A1","ex":"I talked to my mother on the telephone.","exZh":"我打电话跟妈妈聊了聊。","rank":1987},{"id":"V-television","en":"television","zh":"电视","more":"电视机","ipa":"[ˈtelɪvɪʒn]","level":"A1","ex":"We watched the game on television last night.","exZh":"我们昨晚在电视上看了那场比赛。","rank":2089},{"id":"V-tell","en":"tell","zh":"告诉","more":"讲述;分辨","ipa":"[tel]","level":"A1","ex":"Please tell me your name and address.","exZh":"请告诉我你的名字和地址。","rank":96},{"id":"V-temper","en":"temper","zh":"脾气","more":"情绪;性情","ipa":"[ˈtempər]","level":"B1","ex":"He lost his temper and shouted at me.","exZh":"他发了脾气,冲我大喊大叫。","rank":4228},{"id":"V-temperature","en":"temperature","zh":"温度","more":"体温;气温","ipa":"[ˈtemprətʃər; ˈtemprətʃʊr]","level":"A2","ex":"The temperature is very high today.","exZh":"今天温度很高。","rank":3187},{"id":"V-temple","en":"temple","zh":"寺庙","more":"太阳穴","ipa":"[ˈtempl]","level":"A1","ex":"We visited an old temple in the mountains.","exZh":"我们在山里参观了一座古庙。","rank":2068},{"id":"V-temporary","en":"temporary","zh":"暂时的","more":"临时的;短暂的","ipa":"[ˈtempəreri]","level":"B1","ex":"This is only a temporary job for me.","exZh":"这对我来说只是个临时的工作。","rank":4096},{"id":"V-tennis","en":"tennis","zh":"网球","ipa":"[ˈtenɪs]","level":"A1","ex":"I play tennis with my friends on Sundays.","exZh":"我每个星期天都和朋友打网球。","rank":4271},{"id":"V-tent","en":"tent","zh":"帐篷","ipa":"[tent]","level":"B1","ex":"We put up our tent near the river.","exZh":"我们在河边搭起了帐篷。","rank":3825},{"id":"V-term","en":"term","zh":"学期","more":"术语;期限","ipa":"[tɜːrm]","level":"B1","ex":"The new term starts next Monday.","exZh":"新学期下周一开始。","rank":2959},{"id":"V-terminal","en":"terminal","zh":"终点站","more":"终端;航站楼","ipa":"[ˈtɜːrmɪn(ə)l]","level":"B1","ex":"The bus stopped at the terminal.","exZh":"公交车在终点站停了下来。","rank":7122},{"id":"V-terrible","en":"terrible","zh":"糟糕的","more":"可怕的","ipa":"[ˈterəb(ə)l]","level":"A1","ex":"The weather is really terrible today.","exZh":"今天天气真是糟透了。","rank":798},{"id":"V-terribly","en":"terribly","zh":"非常","more":"糟糕地","ipa":"[ˈterəbli]","level":"B1","ex":"I'm terribly sorry for being late.","exZh":"非常抱歉,我迟到了。","rank":2911},{"id":"V-terrific","en":"terrific","zh":"极好的","ipa":"[təˈrɪfɪk]","level":"B1","ex":"You did a terrific job on the test.","exZh":"你这次考试考得棒极了。","rank":2734},{"id":"V-terrified","en":"terrified","zh":"非常害怕的","more":"被吓坏的","ipa":"[ˈterɪfaɪd]","level":"B1","ex":"I was terrified when I heard the noise.","exZh":"听到那个声音时我吓坏了。","rank":4206},{"id":"V-test","en":"test","zh":"测试","more":"考试;检验","ipa":"[test]","level":"A1","ex":"We have a math test tomorrow morning.","exZh":"我们明天早上有一场数学测试。","rank":849},{"id":"V-text","en":"text","zh":"课文","more":"文本;短信","ipa":"[tekst]","level":"A2","ex":"Read the text and answer the questions.","exZh":"读课文,然后回答问题。","rank":2252},{"id":"V-text-message","en":"text message","zh":"短信","more":"文字信息","ipa":"[ˈtekst mesɪdʒ]","level":"A2","ex":"I sent her a text message this morning.","exZh":"我今天早上给她发了条短信。","rank":2252},{"id":"V-thank","en":"thank","zh":"感谢","ipa":"[θæŋk]","level":"A1","ex":"I want to thank you for your help.","exZh":"我想谢谢你的帮忙。","rank":130},{"id":"V-thanks","en":"thanks","zh":"谢谢","more":"多谢","ipa":"[θæŋks]","level":"A1","ex":"Thanks a lot for helping me yesterday.","exZh":"非常感谢你昨天帮我。","rank":208},{"id":"V-theatre","en":"theatre","zh":"剧院","more":"戏剧","ipa":"[ˈθiːətər]","level":"A1","ex":"We saw a great show at the theatre last night.","exZh":"我们昨晚在剧院看了一场很棒的演出。","rank":3565},{"id":"V-theft","en":"theft","zh":"盗窃","more":"盗窃罪","ipa":"[θeft]","level":"B1","ex":"The police are looking into the theft.","exZh":"警方正在调查这起盗窃案。","rank":4713},{"id":"V-then","en":"then","zh":"然后","more":"那么;当时","ipa":"[ðen]","level":"A1","ex":"We ate dinner and then went home.","exZh":"我们吃了晚饭,然后就回家了。","rank":90},{"id":"V-there","en":"there","zh":"那里","more":"在那里;在那边","ipa":"[ðer; ðər]","level":"A1","ex":"Put the box over there, please.","exZh":"请把箱子放到那边。","rank":39},{"id":"V-therefore","en":"therefore","zh":"因此","ipa":"[ˈðerfɔːr]","level":"A2","ex":"I was tired, therefore I went to bed early.","exZh":"我累了,因此很早就睡了。","rank":2348},{"id":"V-thick","en":"thick","zh":"厚的","more":"浓的;粗的","ipa":"[θɪk]","level":"A1","ex":"Wow, this book is really thick!","exZh":"哇,这本书真厚!","rank":3254},{"id":"V-thief","en":"thief","zh":"小偷","ipa":"[θiːf]","level":"A2","ex":"The thief took my phone and ran away.","exZh":"小偷拿了我的手机就跑了。","rank":1945},{"id":"V-thin","en":"thin","zh":"瘦的","more":"薄的;稀薄的","ipa":"[θɪn]","level":"A1","ex":"My brother is very tall and thin.","exZh":"我弟弟又高又瘦。","rank":2733},{"id":"V-thing","en":"thing","zh":"事情","more":"东西;事物","ipa":"[θɪŋ]","level":"A1","ex":"I have many things to do today.","exZh":"我今天有很多事情要做。","rank":137},{"id":"V-think","en":"think","zh":"认为","more":"想;思考","ipa":"[θɪŋk]","level":"A1","ex":"I think this movie is very good.","exZh":"我认为这部电影很好看。","rank":66},{"id":"V-third","en":"third","zh":"第三","more":"三分之一","ipa":"[θɜːrd]","level":"A2","ex":"This is the third time I called you.","exZh":"这是我第三次给你打电话。","rank":976},{"id":"V-thirst","en":"thirst","zh":"口渴","more":"渴望","ipa":"[θɜːrst]","level":"B1","ex":"I felt a strong thirst after the game.","exZh":"比赛后我感到很口渴。","rank":7753},{"id":"V-thirsty","en":"thirsty","zh":"口渴的","more":"渴望的","ipa":"[ˈθɜːrsti]","level":"A2","ex":"I am really thirsty after that long run.","exZh":"跑了那么久,我真的好渴。","rank":3745},{"id":"V-thorough","en":"thorough","zh":"彻底的","more":"全面的;周密的","ipa":"[ˈθɜːroʊ]","level":"B1","ex":"The room really needs a thorough cleaning.","exZh":"这个房间真需要彻底打扫一下。","rank":7356},{"id":"V-threat","en":"threat","zh":"威胁","more":"恐吓;危险","ipa":"[θret]","level":"B1","ex":"The storm is a threat to the small village.","exZh":"这场风暴对小村庄是个威胁。","rank":2145},{"id":"V-thriller","en":"thriller","zh":"惊悚片","more":"惊悚小说","ipa":"[ˈθrɪlər]","level":"B1","ex":"We watched a thriller last night and it was scary.","exZh":"我们昨晚看了部惊悚片,挺吓人的。","rank":19180},{"id":"V-throw","en":"throw","zh":"扔","more":"投;抛","ipa":"[θroʊ]","level":"A1","ex":"Throw the ball to me, please.","exZh":"请把球扔给我。","rank":698},{"id":"V-thumb","en":"thumb","zh":"拇指","ipa":"[θʌm]","level":"B1","ex":"He hurt his thumb while cutting vegetables.","exZh":"他切菜时弄伤了拇指。","rank":5261},{"id":"V-thunder","en":"thunder","zh":"雷声","more":"打雷;轰隆声","ipa":"[ˈθʌndər]","level":"B1","ex":"The thunder woke me up last night.","exZh":"昨晚雷声把我吵醒了。","rank":2569},{"id":"V-thunderstorm","en":"thunderstorm","zh":"雷雨","more":"雷暴","ipa":"[ˈθʌndərstɔːrm]","level":"A2","ex":"A big thunderstorm is coming this afternoon.","exZh":"今天下午要来一场大雷雨。","rank":21903},{"id":"V-thursday","en":"Thursday","zh":"星期四","ipa":"[ˈθɜːrzdeɪ]","level":"A1","ex":"We have a meeting on Thursday morning.","exZh":"我们星期四上午有个会。","rank":2876},{"id":"V-tick","en":"tick","zh":"滴答声","more":"打勾;对勾","ipa":"[tɪk]","level":"B1","ex":"The tick of the clock kept me awake.","exZh":"钟的滴答声让我一直睡不着。","rank":6505},{"id":"V-ticket","en":"ticket","zh":"票","more":"罚单;入场券","ipa":"[ˈtɪkɪt]","level":"A1","ex":"I bought a ticket for the train.","exZh":"我买了一张火车票。","rank":1638},{"id":"V-tide","en":"tide","zh":"潮水","more":"潮流;趋势","ipa":"[taɪd]","level":"B1","ex":"The tide comes in and out every day.","exZh":"潮水每天涨了又退。","rank":5403},{"id":"V-tidy","en":"tidy","zh":"整洁的","more":"收拾;整理","ipa":"[ˈtaɪdi]","level":"A2","ex":"Please keep your room tidy and clean.","exZh":"请保持房间整洁干净。","rank":7360},{"id":"V-tie","en":"tie","zh":"领带","more":"系;平局","ipa":"[taɪ]","level":"A2","ex":"He is wearing a blue tie today.","exZh":"他今天系着一条蓝色领带。","rank":1672},{"id":"V-tight","en":"tight","zh":"紧的","more":"紧绷的;严格的","ipa":"[taɪt]","level":"A1","ex":"These shoes are too tight for me.","exZh":"这双鞋我穿太紧了。","rank":1439},{"id":"V-tights","en":"tights","zh":"连裤袜","more":"紧身裤","ipa":"[taɪts]","level":"A2","ex":"She wore black tights with her new skirt.","exZh":"她穿着黑色连裤袜配新裙子。","rank":13830},{"id":"V-time","en":"time","zh":"时间","more":"次数;时代","ipa":"[taɪm]","level":"A1","ex":"I don't have time to eat breakfast today.","exZh":"我今天没时间吃早饭。","rank":79},{"id":"V-timetable","en":"timetable","zh":"时间表","more":"时刻表;课程表","ipa":"[ˈtaɪmteɪb(ə)l]","level":"A2","ex":"I checked the timetable for the next train.","exZh":"我查了下一班火车的时间表。","rank":17412},{"id":"V-tin","en":"tin","zh":"罐头","more":"锡;铁罐","ipa":"[tɪn]","level":"B1","ex":"He opened a tin of soup for lunch.","exZh":"他午饭开了一罐汤。","rank":4818},{"id":"V-tiny","en":"tiny","zh":"微小的","ipa":"[ˈtaɪni]","level":"B1","ex":"They live in a tiny flat in London.","exZh":"他们住在伦敦一间很小的公寓里。","rank":1713},{"id":"V-tip","en":"tip","zh":"小费","more":"建议;尖端","ipa":"[tɪp]","level":"A2","ex":"We left a tip for the waiter.","exZh":"我们给服务员留了小费。","rank":2296},{"id":"V-tire","en":"tire","zh":"使疲倦","more":"轮胎","ipa":"[ˈtaɪər]","level":"B1","ex":"The long walk tired the children.","exZh":"走了那么久,孩子们都累了。","rank":4410},{"id":"V-tired","en":"tired","zh":"疲倦的","more":"厌倦的","ipa":"[ˈtaɪərd]","level":"A1","ex":"I am tired and want to go home.","exZh":"我累了,想回家。","rank":741},{"id":"V-tiring","en":"tiring","zh":"累人的","ipa":"[ˈtaɪərɪŋ]","level":"B1","ex":"The trip was long and very tiring.","exZh":"这趟旅行又长又累人。","rank":11497},{"id":"V-tissue","en":"tissue","zh":"纸巾","more":"组织;薄纸","ipa":"[ˈtɪʃuː]","level":"B1","ex":"She took a tissue and blew her nose.","exZh":"她拿了张纸巾擤鼻涕。","rank":4589},{"id":"V-title","en":"title","zh":"标题","more":"头衔;冠军","ipa":"[ˈtaɪt(ə)l]","level":"A2","ex":"Write the title at the top of the page.","exZh":"把标题写在页面最上面。","rank":2826},{"id":"V-toast","en":"toast","zh":"烤面包","more":"干杯;祝酒","ipa":"[toʊst]","level":"A2","ex":"I had toast and eggs for breakfast.","exZh":"我早饭吃了烤面包和鸡蛋。","rank":2351},{"id":"V-today","en":"today","zh":"今天","more":"当今","ipa":"[təˈdeɪ]","level":"A1","ex":"I have a lot to do today.","exZh":"我今天有很多事要做。","rank":231},{"id":"V-toe","en":"toe","zh":"脚趾","more":"脚尖","ipa":"[toʊ]","level":"A2","ex":"I hurt my toe on the table.","exZh":"我的脚趾撞到桌子上了。","rank":5467},{"id":"V-together","en":"together","zh":"一起","more":"共同;同时","ipa":"[təˈɡeðər]","level":"A1","ex":"Let's have dinner together at home tonight.","exZh":"我们今晚一起在家吃晚饭吧。","rank":266},{"id":"V-toilet","en":"toilet","zh":"厕所","more":"马桶","ipa":"[ˈtɔɪlət]","level":"A1","ex":"Can you tell me where the toilet is?","exZh":"你能告诉我厕所在哪里吗?","rank":1971},{"id":"V-tomato","en":"tomato","zh":"西红柿","more":"番茄","ipa":"[təˈmeɪtoʊ]","level":"A1","ex":"I eat a tomato every day.","exZh":"我每天吃一个西红柿。","rank":6651},{"id":"V-tomorrow","en":"tomorrow","zh":"明天","more":"未来","ipa":"[təˈmɑːroʊ]","level":"A1","ex":"I will call you tomorrow morning.","exZh":"我明天早上给你打电话。","rank":315},{"id":"V-tongue","en":"tongue","zh":"舌头","more":"语言","ipa":"[tʌŋ]","level":"B1","ex":"I burned my tongue on the hot soup.","exZh":"我的舌头被热汤烫到了。","rank":1935},{"id":"V-tonight","en":"tonight","zh":"今晚","more":"今夜","ipa":"[təˈnaɪt]","level":"A1","ex":"What are you doing tonight after work?","exZh":"你今晚下班后要做什么?","rank":319},{"id":"V-too","en":"too","zh":"过于","more":"太;也","ipa":"[tuː]","level":"A1","ex":"This shirt is too big for me.","exZh":"这件衬衫对我来说太大了。","rank":109},{"id":"V-tool","en":"tool","zh":"工具","more":"手段","ipa":"[tuːl]","level":"A1","ex":"This is a good tool for the job.","exZh":"这是干这个活儿的好工具。","rank":4293},{"id":"V-tooth","en":"tooth","zh":"牙齿","ipa":"[tuːθ]","level":"A1","ex":"My tooth is very white and clean.","exZh":"我的牙齿又白又干净。","rank":3967},{"id":"V-toothbrush","en":"toothbrush","zh":"牙刷","ipa":"[ˈtuːθbrʌʃ]","level":"A2","ex":"I bought a new toothbrush at the store.","exZh":"我在商店买了一把新牙刷。","rank":8649},{"id":"V-toothpaste","en":"toothpaste","zh":"牙膏","ipa":"[ˈtuːθpeɪst]","level":"B1","ex":"I need to buy toothpaste at the store.","exZh":"我要去商店买牙膏。","rank":11791},{"id":"V-top","en":"top","zh":"顶部","more":"上面;最好的","ipa":"[tɑːp]","level":"A1","ex":"We walked to the top of the hill.","exZh":"我们走到了小山顶上。","rank":601},{"id":"V-total","en":"total","zh":"总数","more":"总计;全部的","ipa":"[ˈtoʊtl]","level":"B1","ex":"What is the total of these numbers?","exZh":"这些数字的总数是多少?","rank":1657},{"id":"V-totally","en":"totally","zh":"完全地","ipa":"[ˈtoʊtəli]","level":"B1","ex":"I totally forgot about the meeting.","exZh":"我完全忘了开会的事。","rank":771},{"id":"V-touch","en":"touch","zh":"触摸","more":"接触;感动","ipa":"[tʌtʃ]","level":"A1","ex":"Please don't touch the wall, the paint is wet.","exZh":"请别碰墙,油漆还没干。","rank":599},{"id":"V-tour","en":"tour","zh":"游览","more":"旅行;巡回演出","ipa":"[tʊr]","level":"A2","ex":"We took a tour of the old city.","exZh":"我们游览了这座老城。","rank":1944},{"id":"V-tour-guide","en":"tour guide","zh":"导游","ipa":"[tʊr ɡaɪd]","level":"A2","ex":"Our tour guide told us about the castle.","exZh":"导游给我们讲了这座城堡的故事。","rank":2813},{"id":"V-tourism","en":"tourism","zh":"旅游业","ipa":"[ˈtʊrɪzəm]","level":"B1","ex":"Tourism brings a lot of money to this area.","exZh":"旅游业给这个地区带来了很多收入。","rank":15285},{"id":"V-tourist","en":"tourist","zh":"游客","more":"旅行者","ipa":"[ˈtʊrɪst]","level":"A2","ex":"Many tourists visit the beach in summer.","exZh":"夏天有很多游客来这个海滩。","rank":6725},{"id":"V-towel","en":"towel","zh":"毛巾","ipa":"[ˈtaʊəl]","level":"A1","ex":"Can you pass me a clean towel?","exZh":"你能递给我一条干净的毛巾吗?","rank":4296},{"id":"V-tower","en":"tower","zh":"塔","more":"高楼","ipa":"[ˈtaʊər]","level":"A1","ex":"We can see the tower from our window.","exZh":"从我们的窗户能看到那座塔。","rank":2428},{"id":"V-town","en":"town","zh":"城镇","more":"市中心","ipa":"[taʊn]","level":"A1","ex":"She lives in a small town near the sea.","exZh":"她住在一个靠海的小镇上。","rank":489},{"id":"V-toy","en":"toy","zh":"玩具","more":"小装饰品;不值钱的东西","ipa":"[tɔɪ]","level":"A1","ex":"The children are playing with a new toy.","exZh":"孩子们在玩一个新玩具。","rank":3157},{"id":"V-trace","en":"trace","zh":"痕迹","more":"微量;追踪","ipa":"[treɪs]","level":"B1","ex":"The police found no trace of the missing car.","exZh":"警察没找到那辆失踪汽车的痕迹。","rank":2476},{"id":"V-track","en":"track","zh":"轨道","more":"足迹;小路","ipa":"[træk]","level":"A2","ex":"The train is moving along the track.","exZh":"火车正沿着轨道行驶。","rank":1267},{"id":"V-tracksuit","en":"tracksuit","zh":"运动服","ipa":"[ˈtræksuːt]","level":"B1","ex":"He wears a tracksuit when he goes running.","exZh":"他跑步的时候穿运动服。","rank":33954},{"id":"V-trade","en":"trade","zh":"贸易","more":"行业;交换","ipa":"[treɪd]","level":"A2","ex":"Trade between the two countries is growing fast.","exZh":"两国之间的贸易增长很快。","rank":1834},{"id":"V-tradition","en":"tradition","zh":"传统","more":"惯例","ipa":"[trəˈdɪʃn]","level":"A2","ex":"It is a family tradition to eat together.","exZh":"一家人一起吃饭是家里的传统。","rank":3315},{"id":"V-traditional","en":"traditional","zh":"传统的","ipa":"[trəˈdɪʃən(ə)l]","level":"A2","ex":"She wore a traditional dress to the party.","exZh":"她穿了一条传统裙子去参加聚会。","rank":4274},{"id":"V-traffic","en":"traffic","zh":"交通","more":"车流;运输","ipa":"[ˈtræfɪk]","level":"A2","ex":"The traffic is very bad this morning.","exZh":"今天早上交通很堵。","rank":2129},{"id":"V-traffic-jam","en":"traffic jam","zh":"堵车","ipa":"[ˈtræfɪk dʒæm]","level":"B1","ex":"We were stuck in a traffic jam for an hour.","exZh":"我们堵车堵了一个小时。","rank":3781},{"id":"V-train","en":"train","zh":"火车","more":"训练;行列","ipa":"[treɪn]","level":"A1","ex":"I take the train to work every day.","exZh":"我每天坐火车上班。","rank":786},{"id":"V-training","en":"training","zh":"训练","more":"培训","ipa":"[ˈtreɪnɪŋ]","level":"A2","ex":"The new staff get two weeks of training.","exZh":"新员工要接受两周的培训。","rank":1541},{"id":"V-tram","en":"tram","zh":"有轨电车","ipa":"[træm]","level":"A2","ex":"We took the tram to the city centre.","exZh":"我们坐有轨电车去了市中心。","rank":13246},{"id":"V-transfer","en":"transfer","zh":"转移","more":"调动;换乘","ipa":"[trænsˈfɜːr]","level":"B1","ex":"Please transfer the money to my bank account.","exZh":"请把钱转到我的银行账户里。","rank":2815},{"id":"V-translate","en":"translate","zh":"翻译","more":"转化;解释","ipa":"[trænzˈleɪt; trænsˈleɪt]","level":"B1","ex":"Can you translate this sentence into Chinese for me?","exZh":"你能帮我把这句话翻译成中文吗?","rank":7285},{"id":"V-transport","en":"transport","zh":"运输","more":"交通工具;运送","ipa":"[ˈtrænspɔːrt]","level":"B1","ex":"The company transports goods all over the country.","exZh":"这家公司把货物运往全国各地。","rank":3643},{"id":"V-transportation","en":"transportation","zh":"交通运输","more":"运输系统;运输工具","ipa":"[ˌtrænspɔːrˈteɪʃn]","level":"B1","ex":"Public transportation in this city is cheap and fast.","exZh":"这座城市的公共交通又便宜又快。","rank":7797},{"id":"V-trash","en":"trash","zh":"垃圾","more":"废物;废话","ipa":"[træʃ]","level":"B1","ex":"Please take out the trash before you go to work.","exZh":"你上班前把垃圾拿出去扔了吧。","rank":2585},{"id":"V-travel","en":"travel","zh":"旅行","more":"行进;传播","ipa":"[ˈtrævl]","level":"A1","ex":"I love to travel with my family in summer.","exZh":"夏天我喜欢和家人一起旅行。","rank":1547},{"id":"V-travel-agent","en":"travel agent","zh":"旅行代理人","more":"旅行社","ipa":"[ˈtrævl eɪdʒənt]","level":"B1","ex":"The travel agent booked a nice hotel for us.","exZh":"旅行代理人帮我们订了一家不错的酒店。","rank":1547},{"id":"V-treat","en":"treat","zh":"对待","more":"请客;治疗","ipa":"[triːt]","level":"B1","ex":"My parents always treat me like a child.","exZh":"我爸妈总把我当小孩对待。","rank":1292},{"id":"V-tree","en":"tree","zh":"树木","more":"树状图;家谱","ipa":"[triː]","level":"A1","ex":"There is a big tree in front of our house.","exZh":"我们家门前有一棵大树。","rank":1071},{"id":"V-tremble","en":"tremble","zh":"发抖","more":"摇晃;颤动","ipa":"[ˈtrembl]","level":"B1","ex":"Her hands were trembling as she opened the letter.","exZh":"她打开信的时候,手一直在发抖。","rank":11404},{"id":"V-tremendous","en":"tremendous","zh":"巨大的","more":"极好的;惊人的","ipa":"[trəˈmendəs]","level":"B1","ex":"There was a tremendous noise from the street.","exZh":"街上传来巨大的响声。","rank":5551},{"id":"V-trend","en":"trend","zh":"趋势","more":"潮流;动向","ipa":"[trend]","level":"B1","ex":"There is a growing trend of working from home.","exZh":"在家办公正成为一种越来越明显的趋势。","rank":12013},{"id":"V-trick","en":"trick","zh":"诡计","more":"恶作剧;窍门","ipa":"[trɪk]","level":"A2","ex":"He used a trick to get my money.","exZh":"他用诡计骗走了我的钱。","rank":1543},{"id":"V-trim","en":"trim","zh":"修剪","more":"削减;整齐","ipa":"[trɪm]","level":"B1","ex":"I need to trim the trees in my garden.","exZh":"我需要修剪花园里的树。","rank":9789},{"id":"V-trip","en":"trip","zh":"旅行","more":"绊倒","ipa":"[trɪp]","level":"A1","ex":"We took a trip to the beach last weekend.","exZh":"上周末我们去海边旅行了。","rank":917},{"id":"V-trouble","en":"trouble","zh":"麻烦","more":"烦恼;故障","ipa":"[ˈtrʌbl]","level":"A2","ex":"I am having trouble with my new computer.","exZh":"我的新电脑遇到了麻烦。","rank":484},{"id":"V-trousers","en":"trousers","zh":"裤子","ipa":"[ˈtraʊzərz]","level":"A1","ex":"These trousers are too long for me.","exZh":"这条裤子对我来说太长了。","rank":5796},{"id":"V-truck","en":"truck","zh":"卡车","more":"手推车","ipa":"[trʌk]","level":"A1","ex":"I see a big truck on the road.","exZh":"我看到路上有一辆大卡车。","rank":1074},{"id":"V-true","en":"true","zh":"真实的","more":"正确的;忠实的","ipa":"[truː]","level":"A1","ex":"I think this story is true.","exZh":"我觉得这个故事是真的。","rank":356},{"id":"V-trust","en":"trust","zh":"信任","more":"相信;托付","ipa":"[trʌst]","level":"A2","ex":"I trust you with all my heart.","exZh":"我全心全意信任你。","rank":490},{"id":"V-truth","en":"truth","zh":"真相","more":"事实;真理","ipa":"[truːθ]","level":"A2","ex":"Please tell me the truth about it.","exZh":"请告诉我这件事的真相。","rank":475},{"id":"V-try","en":"try","zh":"尝试","more":"努力;试用","ipa":"[traɪ]","level":"A1","ex":"I will try this new game.","exZh":"我会试试这个新游戏。","rank":251},{"id":"V-tuesday","en":"Tuesday","zh":"星期二","ipa":"[ˈtuːzdeɪ]","level":"A1","ex":"I have an English class every Tuesday.","exZh":"我每周二都有英语课。","rank":2886},{"id":"V-tuna","en":"tuna","zh":"金枪鱼","ipa":"[ˈtuːnə]","level":"B1","ex":"I made a tuna sandwich for lunch.","exZh":"我午饭做了一个金枪鱼三明治。","rank":6715},{"id":"V-tune","en":"tune","zh":"曲调","more":"调音;调整","ipa":"[tuːn]","level":"A2","ex":"He played a nice tune on the piano.","exZh":"他在钢琴上弹了一首好听的曲子。","rank":3291},{"id":"V-turkey","en":"turkey","zh":"火鸡","more":"土耳其","ipa":"[ˈtɜːrki]","level":"A1","ex":"We eat turkey on Thanksgiving every year.","exZh":"我们每年感恩节都吃火鸡。","rank":3151},{"id":"V-turn","en":"turn","zh":"转弯","more":"变成;轮到","ipa":"[tɜːrn]","level":"A1","ex":"Please turn left at the next corner.","exZh":"请在下一个路口左转。","rank":351},{"id":"V-turning","en":"turning","zh":"转弯处","more":"旋转;转折点","ipa":"[ˈtɜːrnɪŋ]","level":"B1","ex":"Take the first turning on the left.","exZh":"在第一个路口往左拐。","rank":1600},{"id":"V-turtle","en":"turtle","zh":"乌龟","more":"海龟","ipa":"[ˈtɜːrtl]","level":"B1","ex":"The turtle walked slowly across the road.","exZh":"那只乌龟慢慢地爬过马路。","rank":4457},{"id":"V-tv","en":"TV","zh":"电视","more":"电视机","ipa":"[ˌtiː ˈviː]","level":"A1","ex":"We watched TV together after dinner.","exZh":"晚饭后我们一起看了电视。","rank":773},{"id":"V-twice","en":"twice","zh":"两次","more":"两倍","ipa":"[twaɪs]","level":"A2","ex":"I go swimming twice a week.","exZh":"我一周去游两次泳。","rank":1237},{"id":"V-twin","en":"twin","zh":"双胞胎","more":"孪生的","ipa":"[twɪn]","level":"B1","ex":"The twins are wearing the same clothes.","exZh":"这对双胞胎穿着一样的衣服。","rank":4788},{"id":"V-twist","en":"twist","zh":"扭伤","more":"拧;扭曲","ipa":"[twɪst]","level":"B1","ex":"I twisted my ankle while playing basketball.","exZh":"我打篮球的时候把脚踝扭伤了。","rank":4114},{"id":"V-type","en":"type","zh":"类型","more":"打字","ipa":"[taɪp]","level":"A1","ex":"What type of music do you like?","exZh":"你喜欢哪种类型的音乐?","rank":1161},{"id":"V-typical","en":"typical","zh":"典型的","more":"一贯的;特有的","ipa":"[ˈtɪpɪkl]","level":"B1","ex":"This is a typical day at our school.","exZh":"这是我们学校很典型的一天。","rank":3697},{"id":"V-ugly","en":"ugly","zh":"丑陋的","more":"丑恶的;令人不快的","ipa":"[ˈʌɡli]","level":"A1","ex":"That new building is really ugly.","exZh":"那栋新楼真难看。","rank":1678},{"id":"V-umbrella","en":"umbrella","zh":"雨伞","more":"保护伞;庇护","ipa":"[ʌmˈbrelə]","level":"A1","ex":"Take an umbrella with you, it might rain later.","exZh":"带把伞吧,等会儿可能会下雨。","rank":5826},{"id":"V-unable","en":"unable","zh":"不能","more":"无法;不会","ipa":"[ʌnˈeɪb(ə)l]","level":"B1","ex":"I am unable to come to the party tonight.","exZh":"我今晚没法来参加聚会。","rank":3599},{"id":"V-unbelievable","en":"unbelievable","zh":"难以置信","more":"不可信的;太惊人了","ipa":"[ˌʌnbɪˈliːvəbl]","level":"B1","ex":"The view from the top was unbelievable.","exZh":"从山顶看下去的景色美得让人不敢相信。","rank":2267},{"id":"V-uncle","en":"uncle","zh":"叔叔","more":"舅舅;伯父","ipa":"[ˈʌŋkl]","level":"A1","ex":"My uncle lives in a small town near Beijing.","exZh":"我叔叔住在北京附近的一个小镇上。","rank":592},{"id":"V-uncomfortable","en":"uncomfortable","zh":"不舒服","more":"不自在;令人不安","ipa":"[ʌnˈkʌmftəbl; ʌnˈkʌmfərtəbl]","level":"A2","ex":"These shoes are uncomfortable, my feet hurt.","exZh":"这双鞋穿着不舒服,我脚疼。","rank":3426},{"id":"V-underpants","en":"underpants","zh":"内裤","more":"衬裤","ipa":"[ˈʌndərpænts]","level":"B1","ex":"He packed three pairs of underpants for the trip.","exZh":"他带了三条内裤去旅行。","rank":11039},{"id":"V-understand","en":"understand","zh":"理解","more":"懂;明白","ipa":"[ˌʌndərˈstænd]","level":"A2","ex":"I don't understand what you are saying.","exZh":"我不明白你在说什么。","rank":234},{"id":"V-undress","en":"undress","zh":"脱衣服","more":"脱光;给…脱衣","ipa":"[ʌnˈdres]","level":"B1","ex":"The doctor asked him to undress before the examination.","exZh":"医生让他检查前先把衣服脱了。","rank":9660},{"id":"V-unexpected","en":"unexpected","zh":"意外的","more":"出人意料的","ipa":"[ˌʌnɪkˈspektɪd]","level":"B1","ex":"We had an unexpected visit from my aunt yesterday.","exZh":"昨天我姑姑突然来我们家了。","rank":4549},{"id":"V-unfit","en":"unfit","zh":"不适宜","more":"不健康;不能胜任","ipa":"[ʌnˈfɪt]","level":"B1","ex":"This water is unfit to drink.","exZh":"这水不能喝。","rank":14803},{"id":"V-unfortunately","en":"unfortunately","zh":"不幸的是","more":"可惜;遗憾的是","ipa":"[ʌnˈfɔːrtʃənətli]","level":"A2","ex":"Unfortunately, I can't come to your birthday party.","exZh":"很遗憾,我参加不了你的生日聚会了。","rank":1625},{"id":"V-unfriendly","en":"unfriendly","zh":"不友好的","more":"冷淡的","ipa":"[ʌnˈfrendli]","level":"B1","ex":"The new waiter was unfriendly and never smiled.","exZh":"那个新来的服务员不太友好,一直不笑。","rank":22527},{"id":"V-unhappy","en":"unhappy","zh":"不快乐","more":"不幸福的","ipa":"[ʌnˈhæpi]","level":"A2","ex":"She looks unhappy because she lost her phone.","exZh":"她因为丢了手机,看起来很不开心。","rank":3302},{"id":"V-uniform","en":"uniform","zh":"制服","more":"统一的;一致的","ipa":"[ˈjuːnɪfɔːrm]","level":"A2","ex":"All the students here wear a blue uniform.","exZh":"这里的学生都穿蓝色制服。","rank":2367},{"id":"V-unimportant","en":"unimportant","zh":"不重要的","more":"无关紧要的","ipa":"[ˌʌnɪmˈpɔːrtnt]","level":"A2","ex":"Don't worry about such unimportant things.","exZh":"别为这些不重要的小事担心。","rank":14858},{"id":"V-uninterested","en":"uninterested","zh":"不感兴趣的","more":"不关心的","ipa":"[ʌnˈɪntrəstɪd; ʌnˈɪntrestɪd]","level":"B1","ex":"He seemed uninterested in my story.","exZh":"他好像对我的故事不感兴趣。","rank":45313},{"id":"V-uninteresting","en":"uninteresting","zh":"无趣的","more":"没意思的","ipa":"[ʌnˈɪntrəstɪŋ; ʌnˈɪntrestɪŋ]","level":"B1","ex":"The book was long and uninteresting.","exZh":"这本书又长又没意思。","rank":33342},{"id":"V-university","en":"university","zh":"大学","ipa":"[ˌjuːnɪˈvɜːrsəti]","level":"A2","ex":"My sister studies at a university in Beijing.","exZh":"我姐姐在北京的一所大学读书。","rank":1927},{"id":"V-unknown","en":"unknown","zh":"未知的","more":"陌生的;不出名的","ipa":"[ˌʌnˈnoʊn]","level":"A2","ex":"The cause of the fire is still unknown.","exZh":"这场火灾的原因还不清楚。","rank":2858},{"id":"V-unlike","en":"unlike","zh":"不像","more":"与……不同","ipa":"[ˌʌnˈlaɪk]","level":"A2","ex":"Unlike his brother, he loves sports.","exZh":"和他哥哥不一样,他很喜欢运动。","rank":3341},{"id":"V-unlikely","en":"unlikely","zh":"不太可能","ipa":"[ʌnˈlaɪkli]","level":"B1","ex":"It is unlikely to rain this afternoon.","exZh":"今天下午不太可能下雨。","rank":5753},{"id":"V-unlucky","en":"unlucky","zh":"倒霉的","more":"不吉利的;不幸的","ipa":"[ʌnˈlʌki]","level":"B1","ex":"I was unlucky and missed the last bus.","exZh":"我运气不好,错过了末班车。","rank":7221},{"id":"V-unnecessary","en":"unnecessary","zh":"不必要的","more":"多余的","ipa":"[ʌnˈnesəseri]","level":"A2","ex":"It is unnecessary to buy so much food.","exZh":"买这么多吃的没必要。","rank":6408},{"id":"V-unpack","en":"unpack","zh":"打开行李","more":"拆开;取出","ipa":"[ˌʌnˈpæk]","level":"B1","ex":"I need to unpack my bags after the trip.","exZh":"旅行回来后我得把行李打开收拾一下。","rank":12161},{"id":"V-untidy","en":"untidy","zh":"不整洁的","more":"凌乱的;邋遢的","ipa":"[ʌnˈtaɪdi]","level":"B1","ex":"Your room is really untidy, please clean it up.","exZh":"你的房间真乱,快收拾一下吧。","rank":30304},{"id":"V-unusual","en":"unusual","zh":"不寻常的","more":"与众不同的;罕见的","ipa":"[ʌnˈjuːʒuəl]","level":"A2","ex":"It's unusual for him to be late.","exZh":"他迟到可不寻常。","rank":2460},{"id":"V-unusually","en":"unusually","zh":"异常地","more":"特别地;不寻常地","ipa":"[ʌnˈjuːʒuəliˌʌnˈjuːʒəli]","level":"B1","ex":"It was unusually cold this morning.","exZh":"今天早上冷得反常。","rank":13720},{"id":"V-unwell","en":"unwell","zh":"不舒服的","more":"生病的","ipa":"[ʌnˈwel]","level":"B1","ex":"She felt unwell and went home early.","exZh":"她觉得不舒服,就提前回家了。","rank":12673},{"id":"V-up-to-date","en":"up-to-date","zh":"最新的","more":"现代的;时髦的","ipa":"[ˌʌp tə ˈdeɪt]","level":"B1","ex":"This is not an up-to-date map.","exZh":"这不是一份最新的地图。","rank":27741},{"id":"V-update","en":"update","zh":"更新","more":"最新消息;更新版","ipa":"[ˌʌpˈdeɪt]","level":"B1","ex":"Please update the app on your phone.","exZh":"请更新你手机上的应用。","rank":6062},{"id":"V-upload","en":"upload","zh":"上传","ipa":"[ˌʌpˈloʊd]","level":"B1","ex":"I'll upload the photos to the website tonight.","exZh":"我今晚把照片上传到网站上。","rank":14027},{"id":"V-upper","en":"upper","zh":"上面的","more":"较高的;上层的","ipa":"[ˈʌpər]","level":"B1","ex":"Her office is on the upper floor.","exZh":"她的办公室在楼上那层。","rank":3866},{"id":"V-upset","en":"upset","zh":"心烦的","more":"使不安;打翻","ipa":"[ˌʌpˈset]","level":"A2","ex":"She was upset about the bad news.","exZh":"她因为这个坏消息心里很难受。","rank":1021},{"id":"V-upstairs","en":"upstairs","zh":"在楼上","more":"到楼上;楼上的","ipa":"[ˌʌpˈsterz]","level":"A2","ex":"She ran upstairs to get her phone.","exZh":"她跑上楼去拿手机。","rank":1232},{"id":"V-urge","en":"urge","zh":"催促","more":"强烈欲望;冲动","ipa":"[ɜːrdʒ]","level":"B1","ex":"I urged him to see a doctor.","exZh":"我催他去看医生。","rank":6646},{"id":"V-urgent","en":"urgent","zh":"紧急的","more":"急迫的;迫切的","ipa":"[ˈɜːrdʒənt]","level":"B1","ex":"I need to make an urgent phone call.","exZh":"我得打个紧急电话。","rank":2764},{"id":"V-use","en":"use","zh":"使用","more":"利用;用途","ipa":"[juːz]","level":"A1","ex":"Can I use your phone for a minute?","exZh":"我能用一下你的手机吗?","rank":309},{"id":"V-useful","en":"useful","zh":"有用的","more":"有帮助的","ipa":"[ˈjuːsfl]","level":"A2","ex":"This map is very useful for finding hotels.","exZh":"这张地图找旅馆很有用。","rank":2707},{"id":"V-useless","en":"useless","zh":"没用的","more":"无效的;无用的","ipa":"[ˈjuːsləs]","level":"B1","ex":"My old phone is useless now.","exZh":"我那部旧手机现在没用了。","rank":2059},{"id":"V-usual","en":"usual","zh":"通常的","more":"平常的;惯常的","ipa":"[ˈjuːʒuəl]","level":"A2","ex":"I'll meet you at the usual place.","exZh":"我们在老地方见。","rank":1637},{"id":"V-usually","en":"usually","zh":"通常","more":"一般;平常","ipa":"[ˈjuːʒuəli; ˈjuːʒəli]","level":"A1","ex":"I usually get up at seven o'clock.","exZh":"我通常七点起床。","rank":1111},{"id":"V-vacation","en":"vacation","zh":"假期","more":"休假","ipa":"[veɪˈkeɪʃn; vəˈkeɪʃn]","level":"A1","ex":"We are going to Spain for our vacation.","exZh":"我们要去西班牙度假。","rank":2183},{"id":"V-valley","en":"valley","zh":"山谷","more":"峡谷;流域","ipa":"[ˈvæli]","level":"A2","ex":"The river runs through a deep green valley.","exZh":"这条河流经一个绿色的深谷。","rank":2586},{"id":"V-valuable","en":"valuable","zh":"有价值的","more":"贵重的;宝贵的","ipa":"[ˈvæljuəbl]","level":"B1","ex":"Her advice was very valuable to me.","exZh":"她的建议对我很有价值。","rank":3112},{"id":"V-value","en":"value","zh":"价值","more":"价格;重视","ipa":"[ˈvæljuː]","level":"A2","ex":"The value of this house has gone up.","exZh":"这栋房子的价值涨了。","rank":2204},{"id":"V-van","en":"van","zh":"厢式货车","more":"面包车","ipa":"[væn]","level":"B1","ex":"The movers loaded everything into a white van.","exZh":"搬家工人把所有东西都装进了一辆白色货车。","rank":1330},{"id":"V-variety","en":"variety","zh":"种类","more":"多样;多样性","ipa":"[vəˈraɪəti]","level":"B1","ex":"We have a wide variety of shoes here.","exZh":"我们这里有各种各样的鞋子。","rank":6449},{"id":"V-various","en":"various","zh":"各种各样的","more":"不同的;多个的","ipa":"[ˈveriəs; ˈværiəs]","level":"B1","ex":"We talked about various things at lunch.","exZh":"我们吃午饭时聊了各种各样的事。","rank":4143},{"id":"V-vary","en":"vary","zh":"变化","more":"不同;改变","ipa":"[ˈveri]","level":"B1","ex":"The weather can vary a lot in spring.","exZh":"春天天气变化很大。","rank":18882},{"id":"V-vast","en":"vast","zh":"广阔的","more":"巨大的;大量的","ipa":"[væst]","level":"B1","ex":"The farm covers a vast area of land.","exZh":"这个农场占地很广。","rank":4156},{"id":"V-vegetable","en":"vegetable","zh":"蔬菜","more":"植物","ipa":"[ˈvedʒtəbl]","level":"A1","ex":"I eat a lot of vegetables every day.","exZh":"我每天都吃很多蔬菜。","rank":7531},{"id":"V-vegetarian","en":"vegetarian","zh":"素食者","more":"素食的","ipa":"[ˌvedʒəˈteriən]","level":"B1","ex":"She has been a vegetarian for ten years.","exZh":"她吃素已经十年了。","rank":8091},{"id":"V-vehicle","en":"vehicle","zh":"车辆","more":"交通工具;手段","ipa":"[ˈviːəkl; ˈviːhɪkl]","level":"B1","ex":"No vehicles are allowed on this street.","exZh":"这条街上禁止车辆通行。","rank":2262},{"id":"V-very","en":"very","zh":"非常","ipa":"[ˈveri]","level":"A1","ex":"She was very happy to see him again.","exZh":"再次见到他,她特别开心。","rank":114},{"id":"V-vet","en":"vet","zh":"兽医","more":"退伍军人","ipa":"[vet]","level":"B1","ex":"I took my dog to the vet yesterday.","exZh":"昨天我带狗去看了兽医。","rank":6489},{"id":"V-victim","en":"victim","zh":"受害者","more":"牺牲品;遇难者","ipa":"[ˈvɪktɪm]","level":"B1","ex":"The victim was taken to hospital by ambulance.","exZh":"受害者被救护车送去了医院。","rank":1096},{"id":"V-video","en":"video","zh":"视频","more":"录像;录像带","ipa":"[ˈvɪdioʊ]","level":"A1","ex":"I watched a funny video last night.","exZh":"昨晚我看了一个搞笑视频。","rank":1279},{"id":"V-video-clip","en":"video clip","zh":"视频片段","ipa":"","level":"B1","ex":"She sent me a short video clip.","exZh":"她给我发了一小段视频。","rank":6288},{"id":"V-view","en":"view","zh":"景色","more":"看法;视野","ipa":"[vjuː]","level":"A2","ex":"The view from our hotel room is beautiful.","exZh":"从我们酒店房间看出去,景色很美。","rank":1588},{"id":"V-village","en":"village","zh":"村庄","more":"村民","ipa":"[ˈvɪlɪdʒ]","level":"A2","ex":"My grandparents live in a small village.","exZh":"我爷爷奶奶住在一个小村子里。","rank":1045},{"id":"V-violence","en":"violence","zh":"暴力","more":"暴行;激烈","ipa":"[ˈvaɪələns]","level":"B1","ex":"There is too much violence on TV these days.","exZh":"现在电视上的暴力内容太多了。","rank":2184},{"id":"V-violin","en":"violin","zh":"小提琴","ipa":"[ˌvaɪəˈlɪn]","level":"A2","ex":"She plays the violin in the school band.","exZh":"她在学校乐队里拉小提琴。","rank":6706},{"id":"V-virus","en":"virus","zh":"病毒","ipa":"[ˈvaɪrəs]","level":"B1","ex":"A new virus is spreading around the world.","exZh":"一种新病毒正在全世界传播。","rank":3085},{"id":"V-visa","en":"visa","zh":"签证","ipa":"[ˈviːzə]","level":"B1","ex":"I need a visa to travel to China.","exZh":"我去中国旅行需要签证。","rank":7758},{"id":"V-visible","en":"visible","zh":"看得见的","more":"明显的","ipa":"[ˈvɪzəb(ə)l]","level":"B1","ex":"The stars are not visible because of the clouds.","exZh":"因为有云,看不见星星。","rank":6413},{"id":"V-visit","en":"visit","zh":"参观","more":"拜访;访问","ipa":"[ˈvɪzɪt]","level":"A1","ex":"We visited the museum with our teacher.","exZh":"我们和老师一起参观了博物馆。","rank":978},{"id":"V-visitor","en":"visitor","zh":"参观者","more":"访客;游客","ipa":"[ˈvɪzɪtər]","level":"A2","ex":"The museum had many visitors this weekend.","exZh":"这个周末博物馆来了很多参观者。","rank":4702},{"id":"V-voice","en":"voice","zh":"声音","more":"嗓音;发言权","ipa":"[vɔɪs]","level":"A2","ex":"She has a lovely voice when she sings.","exZh":"她唱歌的时候声音很好听。","rank":646},{"id":"V-volcano","en":"volcano","zh":"火山","ipa":"[vɑːlˈkeɪnoʊ]","level":"B1","ex":"The volcano erupted and covered the town in ash.","exZh":"火山喷发了,整个镇子都被火山灰覆盖。","rank":6862},{"id":"V-volume","en":"volume","zh":"音量","more":"体积;卷","ipa":"[ˈvɑːljuːmˌˈvɑːljəm]","level":"B1","ex":"Please turn down the volume on the TV.","exZh":"请把电视的音量调小一点。","rank":5760},{"id":"V-volunteer","en":"volunteer","zh":"志愿者","more":"自愿","ipa":"[ˌvɑːlənˈtɪr]","level":"B1","ex":"She works as a volunteer at the animal shelter.","exZh":"她在动物收容所做志愿者。","rank":4950},{"id":"V-voyage","en":"voyage","zh":"航行","more":"航程;旅行","ipa":"[ˈvɔɪɪdʒ]","level":"B1","ex":"The voyage across the ocean took three weeks.","exZh":"这次横渡大洋的航行花了三个星期。","rank":7041},{"id":"V-wait","en":"wait","zh":"等待","more":"等候;伺候用餐","ipa":"[weɪt]","level":"A1","ex":"Please wait here for a few minutes.","exZh":"请在这里等几分钟。","rank":158},{"id":"V-waiter","en":"waiter","zh":"服务员","ipa":"[ˈweɪtər]","level":"A1","ex":"The waiter brought us two cups of coffee.","exZh":"服务员给我们端来了两杯咖啡。","rank":4067},{"id":"V-waitress","en":"waitress","zh":"女服务员","ipa":"[ˈweɪtrəs]","level":"A1","ex":"The waitress smiled and took our order.","exZh":"女服务员笑着给我们点了单。","rank":5452},{"id":"V-wake","en":"wake","zh":"醒来","more":"唤醒;叫醒","ipa":"[weɪk]","level":"A1","ex":"I wake up at seven every morning.","exZh":"我每天早上七点醒来。","rank":745},{"id":"V-walk","en":"walk","zh":"走路","more":"散步","ipa":"[wɔːk]","level":"A1","ex":"I walk to school with my sister.","exZh":"我和妹妹一起走路上学。","rank":488},{"id":"V-walking","en":"walking","zh":"步行","more":"散步","ipa":"[ˈwɔːkɪŋ]","level":"A2","ex":"Walking is good for your health.","exZh":"步行对健康有好处。","rank":997},{"id":"V-wall","en":"wall","zh":"墙壁","more":"围墙","ipa":"[wɔːl]","level":"A1","ex":"There is a big picture on the wall.","exZh":"墙上挂着一张大画。","rank":988},{"id":"V-wallet","en":"wallet","zh":"钱包","ipa":"[ˈwɑːlɪt]","level":"A2","ex":"I left my wallet at home today.","exZh":"我今天把钱包落在家里了。","rank":2924},{"id":"V-want","en":"want","zh":"想要","more":"需要;希望","ipa":"[wɑːnt]","level":"A1","ex":"I want a cup of hot tea.","exZh":"我想要一杯热茶。","rank":65},{"id":"V-wardrobe","en":"wardrobe","zh":"衣柜","more":"全部衣服","ipa":"[ˈwɔːrdroʊb]","level":"B1","ex":"She hung her coat in the wardrobe.","exZh":"她把外套挂进了衣柜。","rank":6628},{"id":"V-warm","en":"warm","zh":"温暖的","more":"热情的","ipa":"[wɔːrm]","level":"A1","ex":"The water in the pool is warm today.","exZh":"今天泳池里的水是温的。","rank":1327},{"id":"V-warmth","en":"warmth","zh":"温暖","more":"热情;暖意","ipa":"[wɔːrmθ]","level":"B1","ex":"I felt the warmth of the sun on my face.","exZh":"我感到阳光照在脸上的温暖。","rank":7405},{"id":"V-warn","en":"warn","zh":"警告","more":"提醒;告诫","ipa":"[wɔːrn]","level":"B1","ex":"I warned him not to be late again.","exZh":"我警告过他别再迟到了。","rank":2335},{"id":"V-warning","en":"warning","zh":"警告","more":"预兆;提醒","ipa":"[ˈwɔːrnɪŋ]","level":"B1","ex":"She got a warning from the police.","exZh":"她收到了警方的警告。","rank":1960},{"id":"V-wash","en":"wash","zh":"洗","more":"冲洗;洗好的衣物","ipa":"[wɑːʃ]","level":"A1","ex":"I need to wash my hands before dinner.","exZh":"吃饭前我得洗个手。","rank":1634},{"id":"V-washing-machine","en":"washing machine","zh":"洗衣机","ipa":"","level":"A2","ex":"The washing machine is broken again.","exZh":"洗衣机又坏了。","rank":4176},{"id":"V-washing-up","en":"washing-up","zh":"洗碗","more":"待洗的餐具","ipa":"[ˌwɑːʃɪŋ ˈʌp]","level":"A2","ex":"It's your turn to do the washing-up tonight.","exZh":"今晚轮到你洗碗了。","rank":47924},{"id":"V-waste","en":"waste","zh":"浪费","more":"废物;垃圾","ipa":"[weɪst]","level":"B1","ex":"Don't waste your money on that old car.","exZh":"别把钱浪费在那辆旧车上。","rank":1246},{"id":"V-watch","en":"watch","zh":"观看","more":"手表;照看","ipa":"[wɑːtʃ]","level":"A1","ex":"We watched a movie at home last night.","exZh":"我们昨晚在家看了部电影。","rank":364},{"id":"V-water","en":"water","zh":"水","more":"浇水","ipa":"[ˈwɔːtər]","level":"A1","ex":"Please give me a glass of water.","exZh":"请给我一杯水。","rank":377},{"id":"V-waterfall","en":"waterfall","zh":"瀑布","ipa":"[ˈwɔːtərfɔːl]","level":"B1","ex":"We walked to the waterfall and took some photos.","exZh":"我们走到瀑布那儿拍了几张照片。","rank":12080},{"id":"V-wave","en":"wave","zh":"波浪","more":"挥手;浪潮","ipa":"[weɪv]","level":"A2","ex":"The waves were really big at the beach today.","exZh":"今天海滩上的浪特别大。","rank":2523},{"id":"V-way","en":"way","zh":"方法","more":"路;方向","ipa":"[weɪ]","level":"A1","ex":"There must be a better way to do this.","exZh":"做这件事肯定有更好的办法。","rank":111},{"id":"V-weak","en":"weak","zh":"虚弱的","more":"软弱的;不牢固的","ipa":"[wiːk]","level":"A2","ex":"He felt weak after his long illness.","exZh":"久病之后他感觉很虚弱。","rank":1708},{"id":"V-weakness","en":"weakness","zh":"弱点","more":"软弱;嗜好","ipa":"[ˈwiːknəs]","level":"B1","ex":"We all have a weakness, but we can get stronger.","exZh":"我们都有弱点,但我们可以变得更强。","rank":4288},{"id":"V-wear","en":"wear","zh":"穿着","more":"戴;磨损","ipa":"[wer]","level":"A1","ex":"I wear a warm coat when it is cold outside.","exZh":"外面冷的时候我会穿一件暖和的外套。","rank":788},{"id":"V-weather","en":"weather","zh":"天气","ipa":"[ˈweðər]","level":"A1","ex":"The weather is nice today, so let's go outside.","exZh":"今天天气不错,我们出去走走吧。","rank":1772},{"id":"V-weather-forecast","en":"weather forecast","zh":"天气预报","ipa":"","level":"B1","ex":"The weather forecast says it will rain tomorrow morning.","exZh":"天气预报说明天早上会下雨。","rank":12579},{"id":"V-web","en":"web","zh":"网络","more":"蜘蛛网","ipa":"[web]","level":"A2","ex":"I found this song on the web last night.","exZh":"我昨晚在网上找到了这首歌。","rank":4214},{"id":"V-web-page","en":"web page","zh":"网页","ipa":"[ˈweb peɪdʒ]","level":"A2","ex":"Please open the web page and read the news.","exZh":"请打开网页看看新闻。","rank":4214},{"id":"V-webcam","en":"webcam","zh":"网络摄像头","ipa":"[ˈwebkæm]","level":"B1","ex":"We talked on a webcam for an hour last night.","exZh":"昨晚我们用摄像头聊了一个小时。","rank":27968},{"id":"V-website","en":"website","zh":"网站","ipa":"[ˈwebsaɪt]","level":"A2","ex":"This website helps you learn English for free.","exZh":"这个网站可以免费帮你学英语。","rank":5355},{"id":"V-wedding","en":"wedding","zh":"婚礼","ipa":"[ˈwedɪŋ]","level":"A2","ex":"They went to a wedding in the countryside last weekend.","exZh":"上周末他们去乡下参加了一场婚礼。","rank":732},{"id":"V-wednesday","en":"Wednesday","zh":"星期三","ipa":"[ˈwenzdeɪ]","level":"A1","ex":"I have a math class every Wednesday morning.","exZh":"我每周三早上都有数学课。","rank":3427},{"id":"V-week","en":"week","zh":"星期","more":"一周","ipa":"[wiːk]","level":"A1","ex":"I will see my friends next week.","exZh":"我下周去见我的朋友。","rank":449},{"id":"V-weekday","en":"weekday","zh":"工作日","more":"平日","ipa":"[ˈwiːkdeɪ]","level":"A2","ex":"I get up early on weekdays and go to work.","exZh":"工作日我起得很早,然后去上班。","rank":36133},{"id":"V-weekend","en":"weekend","zh":"周末","ipa":"[ˈwiːkend]","level":"A1","ex":"What are you doing this weekend?","exZh":"这个周末你打算做什么?","rank":1367},{"id":"V-weekly","en":"weekly","zh":"每周的","more":"周刊","ipa":"[ˈwiːkli]","level":"A2","ex":"I have a weekly meeting on Monday.","exZh":"我每周一有个例会。","rank":8005},{"id":"V-weigh","en":"weigh","zh":"称重","more":"重达;权衡","ipa":"[weɪ]","level":"A2","ex":"Can you weigh this box for me?","exZh":"你能帮我称一下这个箱子吗?","rank":6178},{"id":"V-weight","en":"weight","zh":"重量","more":"体重;负担","ipa":"[weɪt]","level":"A2","ex":"What is the weight of this bag?","exZh":"这个包有多重?","rank":1720},{"id":"V-welcome","en":"welcome","zh":"欢迎","more":"受欢迎的","ipa":"[ˈwelkəm]","level":"A1","ex":"You are always welcome at our house.","exZh":"我们家随时欢迎你来。","rank":497},{"id":"V-well","en":"well","zh":"很好地","more":"健康的;井","ipa":"[wel]","level":"A1","ex":"My sister plays the piano very well.","exZh":"我妹妹钢琴弹得很好。","rank":58},{"id":"V-well-dressed","en":"well-dressed","zh":"穿着讲究","more":"穿着入时","ipa":"[ˌwel ˈdrest]","level":"B1","ex":"He is always well-dressed at work.","exZh":"他上班总是穿得很讲究。","rank":26760},{"id":"V-well-known","en":"well-known","zh":"著名的","more":"众所周知的","ipa":"[ˌwel ˈnoʊn]","level":"A2","ex":"This is a well-known restaurant in town.","exZh":"这是城里一家很有名的餐厅。","rank":9155},{"id":"V-west","en":"west","zh":"西边","more":"西方;西部的","ipa":"[west]","level":"A2","ex":"The sun goes down in the west.","exZh":"太阳从西边落下。","rank":1216},{"id":"V-wet","en":"wet","zh":"湿的","more":"下雨的","ipa":"[wet]","level":"A2","ex":"My shoes are wet from the rain.","exZh":"我的鞋被雨淋湿了。","rank":1812},{"id":"V-whale","en":"whale","zh":"鲸鱼","ipa":"[weɪl]","level":"B1","ex":"We saw a big whale near the boat.","exZh":"我们在船附近看到了一条大鲸鱼。","rank":4929},{"id":"V-wheel","en":"wheel","zh":"车轮","more":"方向盘;轮子","ipa":"[wiːl]","level":"A1","ex":"The front wheel of my bike is broken.","exZh":"我自行车的前轮坏了。","rank":2432},{"id":"V-wheelchair","en":"wheelchair","zh":"轮椅","ipa":"[ˈwiːltʃer]","level":"A2","ex":"My grandfather uses a wheelchair to go outside.","exZh":"我爷爷用轮椅出门。","rank":6426},{"id":"V-when","en":"when","zh":"什么时候","more":"当…时;既然","ipa":"[wen]","level":"A1","ex":"When do you go to school?","exZh":"你什么时候去上学?","rank":77},{"id":"V-whenever","en":"whenever","zh":"每当","more":"无论何时","ipa":"[wenˈevər]","level":"B1","ex":"I smile whenever I see my dog.","exZh":"每当看到我的狗,我都会笑。","rank":1702},{"id":"V-where","en":"where","zh":"哪里","more":"在…的地方","ipa":"[wer]","level":"A1","ex":"Where do you live with your family?","exZh":"你和家人住在哪里?","rank":87},{"id":"V-whisper","en":"whisper","zh":"低声说","more":"耳语;谣传","ipa":"[ˈwɪspər]","level":"B1","ex":"She whispered a secret in my ear.","exZh":"她在我耳边低声说了一个秘密。","rank":6446},{"id":"V-whistle","en":"whistle","zh":"口哨","more":"吹口哨;汽笛","ipa":"[ˈwɪs(ə)l]","level":"B1","ex":"The teacher blew a whistle and we all stopped.","exZh":"老师吹响口哨,我们都停了下来。","rank":2759},{"id":"V-white","en":"white","zh":"白色","more":"白色的;白种人","ipa":"[waɪt]","level":"A1","ex":"I like white for my new car.","exZh":"我的新车我想选白色。","rank":573},{"id":"V-whole","en":"whole","zh":"整个","more":"完整的;全部的","ipa":"[hoʊl]","level":"A2","ex":"I ate the whole cake by myself.","exZh":"我一个人吃完了整个蛋糕。","rank":307},{"id":"V-why","en":"why","zh":"为什么","ipa":"[waɪ]","level":"A1","ex":"Why are you late for school today?","exZh":"你今天为什么上学迟到了?","rank":72},{"id":"V-wide","en":"wide","zh":"宽的","more":"广泛的;开阔的","ipa":"[waɪd]","level":"A2","ex":"The river is very wide here.","exZh":"这条河在这里很宽。","rank":2427},{"id":"V-wife","en":"wife","zh":"妻子","more":"太太;夫人","ipa":"[waɪf]","level":"A1","ex":"My wife cooks dinner every evening.","exZh":"我妻子每天晚上做晚饭。","rank":312},{"id":"V-wild","en":"wild","zh":"野生的","more":"狂野的;狂热的","ipa":"[waɪld]","level":"A2","ex":"We saw wild animals in the forest.","exZh":"我们在森林里看到了野生动物。","rank":1334},{"id":"V-wildlife","en":"wildlife","zh":"野生动物","more":"野生生物;野生动植物","ipa":"[ˈwaɪldlaɪf]","level":"B1","ex":"We must protect the wildlife in this forest.","exZh":"我们必须保护这片森林里的野生动物。","rank":9729},{"id":"V-win","en":"win","zh":"赢得","more":"获胜;中奖","ipa":"[wɪn]","level":"A1","ex":"I want to win this game today.","exZh":"我今天想赢下这场比赛。","rank":606},{"id":"V-wind","en":"wind","zh":"风","more":"缠绕;上发条","ipa":"[wɪnd]","level":"A1","ex":"The wind is very strong today.","exZh":"今天风很大。","rank":1087},{"id":"V-window","en":"window","zh":"窗户","more":"窗口;橱窗","ipa":"[ˈwɪndoʊ]","level":"A1","ex":"Please open the window for some air.","exZh":"请打开窗户透透气。","rank":981},{"id":"V-windscreen","en":"windscreen","zh":"挡风玻璃","ipa":"[ˈwɪndskriːn]","level":"B1","ex":"The car's windscreen was covered with snow.","exZh":"汽车挡风玻璃上盖满了雪。","rank":26328},{"id":"V-windsurfing","en":"windsurfing","zh":"帆板运动","ipa":"[ˈwɪndsɜːrfɪŋ]","level":"B1","ex":"He goes windsurfing every summer at the beach.","exZh":"他每年夏天都去海边玩帆板。","rank":99999},{"id":"V-windy","en":"windy","zh":"多风的","ipa":"[ˈwɪndi]","level":"A2","ex":"It is too windy to go out today.","exZh":"今天风太大了,不适合出门。","rank":11256},{"id":"V-wing","en":"wing","zh":"翅膀","more":"机翼;侧厅","ipa":"[wɪŋ]","level":"B1","ex":"The bird hurt its wing and could not fly.","exZh":"那只鸟伤了翅膀,飞不起来了。","rank":3000},{"id":"V-winner","en":"winner","zh":"获胜者","more":"赢家;获奖者","ipa":"[ˈwɪnər]","level":"A2","ex":"She is the winner of the race.","exZh":"她是这场比赛的获胜者。","rank":2140},{"id":"V-winter","en":"winter","zh":"冬天","ipa":"[ˈwɪntər]","level":"A1","ex":"I like winter and I like snow.","exZh":"我喜欢冬天,也喜欢雪。","rank":1934},{"id":"V-wire","en":"wire","zh":"电线","more":"金属丝;铁丝","ipa":"[ˈwaɪər]","level":"B1","ex":"Don't touch that wire. It may be dangerous.","exZh":"别碰那根电线,可能很危险。","rank":2597},{"id":"V-wise","en":"wise","zh":"明智的","more":"聪明的;有智慧的","ipa":"[waɪz]","level":"A2","ex":"It was a wise decision to leave early.","exZh":"早点离开是个明智的决定。","rank":2352},{"id":"V-wish","en":"wish","zh":"希望","more":"祝愿;心愿","ipa":"[wɪʃ]","level":"A1","ex":"I wish you good luck in your new job.","exZh":"祝你在新工作中一切顺利。","rank":446},{"id":"V-witness","en":"witness","zh":"目击","more":"目击者;证人","ipa":"[ˈwɪtnəs]","level":"B1","ex":"I witnessed the accident on my way home.","exZh":"我在回家路上目击了那场事故。","rank":1231},{"id":"V-woman","en":"woman","zh":"女人","more":"妇女;女性","ipa":"[ˈwʊmən]","level":"A1","ex":"The woman next to me was very friendly.","exZh":"我旁边那位女士非常友好。","rank":252},{"id":"V-wonder","en":"wonder","zh":"想知道","more":"奇迹;怀疑","ipa":"[ˈwʌndər]","level":"A2","ex":"I wonder why he is late today.","exZh":"我想知道他今天怎么迟到了。","rank":702},{"id":"V-wonderful","en":"wonderful","zh":"极好的","more":"精彩的;美妙的","ipa":"[ˈwʌndərf(ə)l]","level":"A1","ex":"We had a wonderful time at the beach.","exZh":"我们在海边玩得特别开心。","rank":685},{"id":"V-wood","en":"wood","zh":"木材","more":"树林;木头","ipa":"[wʊd]","level":"A2","ex":"This table is made of wood.","exZh":"这张桌子是木头做的。","rank":2177},{"id":"V-wooden","en":"wooden","zh":"木制的","more":"木头的;僵硬的","ipa":"[ˈwʊd(ə)n]","level":"A2","ex":"The old house has a wooden door.","exZh":"那栋老房子有一扇木门。","rank":5640},{"id":"V-wool","en":"wool","zh":"羊毛","more":"毛线;毛织物","ipa":"[wʊl]","level":"A2","ex":"This sweater is made of wool.","exZh":"这件毛衣是羊毛做的。","rank":8726},{"id":"V-word","en":"word","zh":"单词","more":"话;消息","ipa":"[wɜːrd]","level":"A1","ex":"Can you spell this word for me?","exZh":"你能帮我拼一下这个单词吗?","rank":435},{"id":"V-work","en":"work","zh":"工作","more":"起作用;作品","ipa":"[wɜːrk]","level":"A1","ex":"I work in a small office near here.","exZh":"我在附近一个小办公室上班。","rank":150},{"id":"V-worker","en":"worker","zh":"工人","more":"员工;工作者","ipa":"[ˈwɜːrkər]","level":"A1","ex":"The workers are building a new road.","exZh":"工人们正在修一条新路。","rank":3448},{"id":"V-working","en":"working","zh":"工作的","more":"运转的;可行的","ipa":"[ˈwɜːrkɪŋ]","level":"B1","ex":"My working hours are from nine to five.","exZh":"我的工作时间是九点到五点。","rank":376},{"id":"V-workout","en":"workout","zh":"锻炼","more":"训练;考验","ipa":"[ˈwɜːrkaʊt]","level":"B1","ex":"I do a short workout every morning before breakfast.","exZh":"我每天早上吃早饭前都会锻炼一小会儿。","rank":10432},{"id":"V-world","en":"world","zh":"世界","more":"领域;世人","ipa":"[wɜːrld]","level":"A1","ex":"She wants to travel around the world one day.","exZh":"她想有朝一日环游世界。","rank":227},{"id":"V-worried","en":"worried","zh":"担心的","ipa":"[ˈwɜːrid]","level":"A2","ex":"My mother is worried about my school grades.","exZh":"我妈很担心我的成绩。","rank":725},{"id":"V-worry","en":"worry","zh":"担心","more":"烦恼;令人担心的事","ipa":"[ˈwɜːri]","level":"A1","ex":"Don't worry, everything will be fine.","exZh":"别担心,一切都会好的。","rank":361},{"id":"V-worse","en":"worse","zh":"更糟的","more":"更差的;更严重的","ipa":"[wɜːrs]","level":"A2","ex":"Today the weather is worse than yesterday.","exZh":"今天天气比昨天更糟。","rank":746},{"id":"V-worst","en":"worst","zh":"最糟的","more":"最差的;最严重的","ipa":"[wɜːrst]","level":"A2","ex":"That was the worst movie I have ever seen.","exZh":"那是我看过最烂的一部电影。","rank":1122},{"id":"V-worth","en":"worth","zh":"值得","more":"价值;值…钱","ipa":"[wɜːrθ]","level":"B1","ex":"This old watch is worth a lot of money.","exZh":"这块旧表值不少钱。","rank":705},{"id":"V-wrap","en":"wrap","zh":"包起来","more":"缠绕;披肩","ipa":"[ræp]","level":"B1","ex":"Please wrap the gift in pretty paper.","exZh":"请用漂亮的纸把礼物包起来。","rank":3308},{"id":"V-wrist","en":"wrist","zh":"手腕","ipa":"[rɪst]","level":"B1","ex":"She hurt her wrist while playing tennis.","exZh":"她打网球时把手腕弄伤了。","rank":5239},{"id":"V-write","en":"write","zh":"写","more":"写作;写信","ipa":"[raɪt]","level":"A1","ex":"I need to write a letter to my teacher.","exZh":"我得给老师写封信。","rank":644},{"id":"V-writer","en":"writer","zh":"作家","more":"作者","ipa":"[ˈraɪtər]","level":"A1","ex":"She is a famous writer of children's books.","exZh":"她是一位很有名的儿童书作家。","rank":2548},{"id":"V-writing","en":"writing","zh":"写作","more":"文字;著作","ipa":"[ˈraɪtɪŋ]","level":"A2","ex":"Her writing has improved a lot this year.","exZh":"她今年的写作进步很大。","rank":1254},{"id":"V-written","en":"written","zh":"书面的","more":"写下的;成文的","ipa":"[ˈrɪtn]","level":"B1","ex":"The teacher wants a written report by Friday.","exZh":"老师要求周五前交一份书面报告。","rank":1277},{"id":"V-wrong","en":"wrong","zh":"错误的","more":"有毛病的;不合适的","ipa":"[rɔːŋ]","level":"A1","ex":"Sorry, I think you have the wrong number.","exZh":"抱歉,我想你打错电话了。","rank":226},{"id":"V-yard","en":"yard","zh":"院子","ipa":"[jɑːrd]","level":"A1","ex":"The children are playing in the yard.","exZh":"孩子们正在院子里玩。","rank":2633},{"id":"V-yeah","en":"yeah","zh":"是的","ipa":"[jeə]","level":"A2","ex":"Yeah, I'd love to come with you.","exZh":"好啊,我很想跟你一起去。","rank":61},{"id":"V-year","en":"year","zh":"年","more":"年度;岁","ipa":"[jɪr]","level":"A1","ex":"We are going to Japan next year.","exZh":"我们明年要去日本。","rank":363},{"id":"V-yell","en":"yell","zh":"大声喊叫","more":"吼叫;喊声","ipa":"[jel]","level":"B1","ex":"Don't yell at me, I can hear you.","exZh":"别冲我喊,我听得见。","rank":3498},{"id":"V-yellow","en":"yellow","zh":"黄色","more":"黄色的;胆小的","ipa":"[ˈjeloʊ]","level":"A1","ex":"She wore a yellow dress to the party.","exZh":"她穿了条黄色的裙子去参加聚会。","rank":2123},{"id":"V-yes","en":"yes","zh":"是的","ipa":"[jes]","level":"A1","ex":"Yes, I would like some coffee, please.","exZh":"好的,请给我来点咖啡。","rank":76},{"id":"V-yesterday","en":"yesterday","zh":"昨天","ipa":"[ˈjestərdeɪ; ˈjestərdi]","level":"A1","ex":"I saw your brother at the market yesterday.","exZh":"我昨天在市场看到你哥哥了。","rank":697},{"id":"V-yet","en":"yet","zh":"还没","more":"然而;已经","ipa":"[jet]","level":"A1","ex":"I haven't finished my homework yet.","exZh":"我还没做完作业。","rank":305},{"id":"V-yoga","en":"yoga","zh":"瑜伽","ipa":"[ˈjoʊɡə]","level":"B1","ex":"She does yoga every morning before work.","exZh":"她每天早上上班前都练瑜伽。","rank":6438},{"id":"V-yoghurt","en":"yoghurt","zh":"酸奶","ipa":"[ˈjoʊɡərt]","level":"A1","ex":"I eat yoghurt with fruit for breakfast.","exZh":"我早餐吃酸奶配水果。","rank":22256},{"id":"V-yogurt","en":"yogurt","zh":"酸奶","ipa":"[ˈjoʊɡərt]","level":"A1","ex":"I eat yogurt with fruit every morning.","exZh":"我每天早上吃酸奶配水果。","rank":9109},{"id":"V-young","en":"young","zh":"年轻的","more":"幼小的;初期的","ipa":"[jʌŋ]","level":"A1","ex":"She is young and works in a big city.","exZh":"她很年轻,在一座大城市工作。","rank":374},{"id":"V-youth","en":"youth","zh":"青春","more":"青年;年轻人","ipa":"[juːθ]","level":"A2","ex":"She spent her youth in a small town.","exZh":"她在一个小镇度过了青春。","rank":2446},{"id":"V-zoo","en":"zoo","zh":"动物园","ipa":"[zuː]","level":"A1","ex":"We saw many animals at the zoo yesterday.","exZh":"我们昨天在动物园看到了很多动物。","rank":4302}]} diff --git a/kouyu_english/lib/core/app_state.dart b/kouyu_english/lib/core/app_state.dart index 8eb0e72..1a7805a 100644 --- a/kouyu_english/lib/core/app_state.dart +++ b/kouyu_english/lib/core/app_state.dart @@ -21,6 +21,7 @@ part 'app_state_assessment.dart'; part 'app_state_lesson.dart'; part 'app_state_review.dart'; part 'app_state_snapshot.dart'; +part 'app_state_words.dart'; /// Everything the app persists. Behaviour lives in the domain mixins that /// [AppState] composes. @@ -88,11 +89,31 @@ abstract class _AppStateData extends ChangeNotifier { final Map mastery = {}; + /// Recognition-only words, kept apart from [mastery] so they never enter a + /// level's upgrade denominator (learning engine 3.5). + final Map wordKnowledge = {}; + + /// Words saved from lookup. They live outside any unit, so they are kept + /// here to be put back into the word registry on the next start. + final Map savedWords = {}; + void _syncInBackground(); } class AppState extends _AppStateData - with _ReviewAndMastery, _AssessmentProgress, _LessonProgress, _AiContent { + with _ReviewAndMastery, + _ReceptiveWords, + _AssessmentProgress, + _LessonProgress, + _AiContent { + /// Round-trip seam for tests: the real save and load go through + /// `LocalSnapshotStore`, which needs a database. + @visibleForTesting + Map snapshotForTest() => _toSnapshotJson(); + + @visibleForTesting + void restoreForTest(Map data) => _restore(data); + static const _storageKey = 'learning_state_v1'; bool isLoaded = false; bool _writing = false; @@ -114,6 +135,9 @@ class AppState extends _AppStateData // Adapt the A1–B1 JSON packs into the runtime registries before the saved // snapshot is restored, so progress that points at those lessons resolves. await CourseRepository.instance.load(); + // The word bank is independent of the packs, so it loads whatever the + // learner's lesson progress is. + await WordBank.instance.load(); final config = await AiConfigFile.loadFromAsset(); if (config != null) { if (config.apiKey != null && config.apiKey!.trim().isNotEmpty) { diff --git a/kouyu_english/lib/core/app_state_lesson.dart b/kouyu_english/lib/core/app_state_lesson.dart index 01a2e70..167ae21 100644 --- a/kouyu_english/lib/core/app_state_lesson.dart +++ b/kouyu_english/lib/core/app_state_lesson.dart @@ -2,7 +2,8 @@ part of 'app_state.dart'; /// Position in the seed course, the in-lesson step flow, and the evidence /// lesson tasks produce. -mixin _LessonProgress on _AppStateData, _ReviewAndMastery, _AssessmentProgress { +mixin _LessonProgress + on _AppStateData, _ReviewAndMastery, _ReceptiveWords, _AssessmentProgress { bool get hasResumableLessonDialogue => dialogueDraft != null && dialogueDraft!.lessonId == activeLessonId && @@ -259,6 +260,10 @@ mixin _LessonProgress on _AppStateData, _ReviewAndMastery, _AssessmentProgress { recordingPath: recordingPath, assisted: assisted, ); + // The independent attempt closes the teaching segment, so this is where + // the same-day recall is scheduled: the first retrieval happens hours + // later today instead of a full day after teaching. + scheduleSameDayRecap(_activeTargetItemIds); notifyListeners(); } @@ -266,6 +271,9 @@ mixin _LessonProgress on _AppStateData, _ReviewAndMastery, _AssessmentProgress { if (!lessonCanComplete && !isLessonSegmentsAllComplete(activeLessonId)) { return; } + // The unit's recognition-only words count as met once its lesson is + // done; they start at 「新学」 and are asked on the word page. + meetWordsOfUnit(activeLessonId); completedLessonIds.add(activeLessonId); completedLessons = completedLessonIds.length; final next = _nextIncompleteLessonId(); @@ -540,7 +548,7 @@ mixin _LessonProgress on _AppStateData, _ReviewAndMastery, _AssessmentProgress { if (introduced.firstTaughtAt == null) { mastery[id] = introduced.copyWith(firstTaughtAt: DateTime.now()); } - if (reviewQueue.any((item) => item.id == id)) continue; + if (_hasCheckpointTask(id)) continue; final template = coreReviewTemplate(id); reviewQueue.add( ReviewItem( diff --git a/kouyu_english/lib/core/app_state_review.dart b/kouyu_english/lib/core/app_state_review.dart index bee5d97..b677bd3 100644 --- a/kouyu_english/lib/core/app_state_review.dart +++ b/kouyu_english/lib/core/app_state_review.dart @@ -2,13 +2,55 @@ part of 'app_state.dart'; /// Review queue scheduling and the mastery derived from attempt evidence. mixin _ReviewAndMastery on _AppStateData { + /// The spaced checkpoint reviews that are due. Same-day recaps are a + /// separate, unbudgeted queue ([dueRecaps]) and never count as backlog. List get dueReviews { final now = DateTime.now(); - final due = reviewQueue.where((item) => !item.dueAt.isAfter(now)).toList() - ..sort((a, b) => a.dueAt.compareTo(b.dueAt)); + final due = + reviewQueue + .where( + (item) => + item.kind == ReviewKind.checkpoint && + !item.dueAt.isAfter(now), + ) + .toList() + ..sort((a, b) => a.dueAt.compareTo(b.dueAt)); return due; } + /// Same-day recalls and in-session retries that are ready to be asked. They + /// only strengthen encoding, so they are offered after the checkpoint plan + /// and are dropped once the day they belong to has passed. + List get dueRecaps { + final now = DateTime.now(); + final cutoff = now.subtract(const Duration(days: 1)); + final due = + reviewQueue + .where( + (item) => + item.kind == ReviewKind.recap && + !item.dueAt.isAfter(now) && + item.dueAt.isAfter(cutoff), + ) + .toList() + ..sort((a, b) => a.dueAt.compareTo(b.dueAt)); + return due; + } + + /// Learning engine 2.2a: only what fits in today's budget is offered. The + /// rest stay due and come up next time; nothing is dropped or rescheduled + /// behind the learner's back. + List get todayReviewPlan => + dueReviews.take(reviewBudgetSeconds ~/ reviewSecondsPerTask).toList(); + + /// Due checkpoint items left over after today's budget. + int get postponedReviewCount => dueReviews.length - todayReviewPlan.length; + + /// What this review session works through: the budgeted checkpoint tasks + /// first, then the same-day recaps. A retry of an item missed earlier in + /// the session therefore comes back a few tasks later, not immediately. + List get reviewSession => [...todayReviewPlan, ...dueRecaps]; + int get dueReviewCount => dueReviews.length; bool get reviewIsPrimary => dueReviewCount > 0; int get reviewBudgetSeconds => switch (dailyMinutes) { @@ -16,7 +58,10 @@ mixin _ReviewAndMastery on _AppStateData { 30 => 8 * 60, _ => 5 * 60, }; - int get dueReviewEstimatedSeconds => dueReviewCount * 60; + + /// Planned length of one review task, used for the budget and the backlog. + static const reviewSecondsPerTask = 60; + int get dueReviewEstimatedSeconds => dueReviewCount * reviewSecondsPerTask; bool get reviewBacklog { final sevenDaysAgo = DateTime.now().subtract(const Duration(days: 7)); return dueReviewEstimatedSeconds > reviewBudgetSeconds * 2 || @@ -80,6 +125,17 @@ mixin _ReviewAndMastery on _AppStateData { addSavedWord(item); } + /// The queue slot holding [item]. An item can have both a checkpoint task + /// and a same-day recap in flight, so the kind is part of the key. + int _queueIndexOf(ReviewItem item) => reviewQueue.indexWhere( + (candidate) => candidate.id == item.id && candidate.kind == item.kind, + ); + + /// Whether [id] already has a spaced checkpoint task queued. + bool _hasCheckpointTask(String id) => reviewQueue.any( + (item) => item.id == id && item.kind == ReviewKind.checkpoint, + ); + void completeReview( ReviewItem item, { required bool assisted, @@ -88,12 +144,21 @@ mixin _ReviewAndMastery on _AppStateData { String? originalTranscript, String? recordingPath, }) { - final index = reviewQueue.indexWhere( - (candidate) => candidate.id == item.id, - ); + final index = _queueIndexOf(item); if (index < 0) return; final current = reviewQueue[index]; final now = DateTime.now(); + if (current.kind == ReviewKind.recap) { + _finishRecap( + current, + rawAnswer: rawAnswer, + inputMode: inputMode, + originalTranscript: originalTranscript, + recordingPath: recordingPath, + assisted: assisted, + ); + return; + } // UI/network retries may still hold an old item instance. Only the // currently due queue entry is allowed to produce evidence. if (current.dueAt.isAfter(now)) return; @@ -161,10 +226,14 @@ mixin _ReviewAndMastery on _AppStateData { } void reportReviewFailure(ReviewItem item) { - final index = reviewQueue.indexWhere( - (candidate) => candidate.id == item.id, - ); + final index = _queueIndexOf(item); if (index < 0) return; + if (item.kind == ReviewKind.recap) { + // Learning engine 3.1: a same-day recall is encoding practice. Missing + // it shows the answer again and never counts against the item. + _finishRecap(item); + return; + } final existing = mastery[item.id] ?? MasteryItem( @@ -194,13 +263,151 @@ mixin _ReviewAndMastery on _AppStateData { : item.successfulReviews, ); _addAttemptEvidence(item, outcome: EvidenceKind.languageError); + _scheduleSessionRetry(item); notifyListeners(); } - void postponeReview(ReviewItem item) { - final index = reviewQueue.indexWhere( - (candidate) => candidate.id == item.id, + /// Learning engine 3.2: an item missed now comes back once more before the + /// session ends, after the remaining due tasks. That re-ask is practice — + /// it neither advances a checkpoint nor counts as a second failure — so the + /// next real check still happens tomorrow on a different task. + void _scheduleSessionRetry(ReviewItem item) { + if (reviewQueue.any( + (candidate) => candidate.id == item.id && candidate.kind == ReviewKind.recap, + )) { + return; + } + reviewQueue.add( + ReviewItem( + id: item.id, + target: item.target, + prompt: item.prompt, + hint: item.hint, + dueAt: DateTime.now(), + skill: item.skill, + kind: ReviewKind.recap, + ), ); + } + + /// Learning engine 2.2/3.1: one short recall of what was just taught, a + /// couple of hours later on the same day. It is the item's first retrieval + /// outside the lesson it was taught in; the first checkpoint still falls on + /// the next day. Only exposure is recorded, so no checkpoint moves and the + /// day's single checkpoint advance stays available for the real review. + void scheduleSameDayRecap(Iterable itemIds) { + final now = DateTime.now(); + // Yesterday's uncollected recaps are gone: they belonged to that day. + reviewQueue.removeWhere( + (item) => + item.kind == ReviewKind.recap && + item.dueAt.isBefore(now.subtract(const Duration(days: 1))), + ); + var added = false; + for (final id in itemIds) { + if (!isCoreItem(id)) continue; + if (reviewQueue.any( + (item) => item.id == id && item.kind == ReviewKind.recap, + )) { + continue; + } + final template = coreReviewTemplate(id); + reviewQueue.add( + ReviewItem( + id: id, + target: coreItemLabel(id), + prompt: template.prompt, + hint: template.hint, + dueAt: now.add(const Duration(hours: 2)), + skill: template.skill, + kind: ReviewKind.recap, + ), + ); + added = true; + } + if (added) { + notifyListeners(); + _syncInBackground(); + } + } + + /// Learning engine 3.1: the recognition step in front of the first + /// checkpoint review — hear or read the item, pick its meaning. Passing it + /// records 「认识」 evidence, which nothing else in the review flow produced; + /// the checkpoint itself is still earned by producing the item right after. + /// A miss is not a language failure: it shows the meaning and the learner + /// continues to the production task with help. + void recordRecognitionGate(ReviewItem item, {required bool correct}) { + final outcome = correct + ? EvidenceKind.independentSuccess + : EvidenceKind.exposure; + _addAttemptEvidence( + item.copyWith(skill: recognitionGateSkill), + outcome: outcome, + assisted: !correct, + ); + // Exposure neither raises the status nor clears a pending re-check, so a + // miss here leaves the item exactly where it was. + _recordEvidence(item.id, outcome); + notifyListeners(); + } + + /// Whether [item] should open with the recognition question: the first + /// checkpoint of a core item, one day after it was taught. + bool needsRecognitionGate(ReviewItem item) => + item.kind == ReviewKind.checkpoint && + isCoreItem(item.id) && + (mastery[item.id]?.checkpoint ?? 0) == 0 && + recognitionDistractors(item.id).isNotEmpty; + + /// The remediation after a missed review: the course explains when the item + /// is used, then asks which taught sentence a situation calls for. Answering + /// it is 「认识」 evidence and never advances a checkpoint — the miss that led + /// here has already been recorded, and re-asking on the spot is not an + /// independent interval (learning engine 3.1). + void recordContrastAnswer(ReviewItem item, {required bool correct}) { + final outcome = correct + ? EvidenceKind.independentSuccess + : EvidenceKind.exposure; + _addAttemptEvidence( + item.copyWith(skill: contrastSkill), + outcome: outcome, + assisted: !correct, + ); + _recordEvidence(item.id, outcome); + notifyListeners(); + } + + /// Closes a recap: it records the attempt as exposure and leaves the queue. + /// Exposure keeps it out of both the checkpoint count and the mastery + /// status, which is what makes a same-day recall safe to repeat. + void _finishRecap( + ReviewItem item, { + String? rawAnswer, + String inputMode = 'text', + String? originalTranscript, + String? recordingPath, + bool assisted = false, + }) { + reviewQueue.removeWhere( + (candidate) => + candidate.id == item.id && candidate.kind == ReviewKind.recap, + ); + _addAttemptEvidence( + item, + outcome: EvidenceKind.exposure, + assisted: assisted, + rawAnswer: rawAnswer, + inputMode: inputMode, + originalTranscript: originalTranscript, + recordingPath: recordingPath, + ); + notifyListeners(); + _syncInBackground(); + } + + void postponeReview(ReviewItem item) { + final index = _queueIndexOf(item); if (index < 0) return; reviewQueue[index] = item.copyWith( dueAt: DateTime.now().add(const Duration(days: 1)), @@ -241,20 +448,9 @@ mixin _ReviewAndMastery on _AppStateData { ); } - void addSavedWord(VocabularyItem item) { - if (reviewQueue.any((review) => review.id == item.id)) return; - reviewQueue.add( - ReviewItem( - id: item.id, - target: item.word, - prompt: item.example, - hint: item.meaning, - dueAt: DateTime.now().add(const Duration(days: 1)), - skill: '认识与回忆', - ), - ); - notifyListeners(); - } + /// Implemented by [_ReceptiveWords]: a saved word is recognition-only, so + /// it never joins the checkpoint queue. + void addSavedWord(VocabularyItem item); /// Adds one low-priority, non-core recap based on a completed independent /// dialogue. It is deliberately separate from A0 denominator items. @@ -263,7 +459,7 @@ mixin _ReviewAndMastery on _AppStateData { final day = '${now.year}${now.month.toString().padLeft(2, '0')}${now.day.toString().padLeft(2, '0')}'; final id = 'dialogue-$sceneId-$day'; - if (reviewQueue.any((item) => item.id == id)) return; + if (_hasCheckpointTask(id)) return; reviewQueue.add( ReviewItem( id: id, @@ -294,7 +490,9 @@ mixin _ReviewAndMastery on _AppStateData { }); if (candidates.isEmpty) return; final id = candidates.first; - final index = reviewQueue.indexWhere((item) => item.id == id); + final index = reviewQueue.indexWhere( + (item) => item.id == id && item.kind == ReviewKind.checkpoint, + ); if (index >= 0) { final current = reviewQueue[index]; final template = coreReviewVariant(id, current.variantIndex + 1); @@ -324,7 +522,9 @@ mixin _ReviewAndMastery on _AppStateData { void applyGeneratedReviewVariant(GeneratedReviewVariant variant) { final index = reviewQueue.indexWhere( - (item) => item.id == variant.targetItemId, + (item) => + item.id == variant.targetItemId && + item.kind == ReviewKind.checkpoint, ); if (index < 0) return; final current = reviewQueue[index]; @@ -346,9 +546,7 @@ mixin _ReviewAndMastery on _AppStateData { /// its checkpoint contribution is removed; the stable core item remains. void reportGeneratedReviewVariant(ReviewItem item) { if (!item.isAiGenerated) return; - final index = reviewQueue.indexWhere( - (candidate) => candidate.id == item.id, - ); + final index = _queueIndexOf(item); if (index < 0) return; final key = '${item.id}:${item.variantIndex}'; if (!reportedAiVariantKeys.add(key)) return; @@ -393,6 +591,7 @@ mixin _ReviewAndMastery on _AppStateData { } for (var index = 0; index < reviewQueue.length; index++) { final item = reviewQueue[index]; + if (item.kind == ReviewKind.recap) continue; final rebuilt = mastery[item.id]; if (rebuilt != null) { reviewQueue[index] = item.copyWith( @@ -419,6 +618,12 @@ mixin _ReviewAndMastery on _AppStateData { firstTaughtAt = event.createdAt; } if (!isReview) continue; + // The recognition gate and the contrast question are 「认识」 evidence + // only; producing the item is what earns a checkpoint. + if (event.skill == recognitionGateSkill || + event.skill == contrastSkill) { + continue; + } if (event.outcome == EvidenceKind.independentSuccess) { final day = '${event.createdAt.year}-${event.createdAt.month}-${event.createdAt.day}'; @@ -487,6 +692,10 @@ mixin _ReviewAndMastery on _AppStateData { '听力理解', '阅读理解', dictationSkill, + // Picking the right sentence for a situation shows the learner knows when + // to use it. Producing it unaided is a separate, higher bar, so this is + // recognition evidence and never stands in for recall. + contrastSkill, }; /// Controlled lesson steps (follow-reading, scripted dialogue) are practice, diff --git a/kouyu_english/lib/core/app_state_snapshot.dart b/kouyu_english/lib/core/app_state_snapshot.dart index ace415e..b814e84 100644 --- a/kouyu_english/lib/core/app_state_snapshot.dart +++ b/kouyu_english/lib/core/app_state_snapshot.dart @@ -194,6 +194,63 @@ extension _AppStateSnapshot on AppState { ), ); } + final storedWords = data['savedWords'] as List?; + if (storedWords != null) { + savedWords + ..clear() + ..addEntries( + storedWords.whereType>().map( + (item) => MapEntry(item['id'] as String, ( + level: item['level'] as String? ?? 'A0', + unit: '', + en: item['en'] as String? ?? '', + zh: item['zh'] as String? ?? '', + ipa: item['ipa'] as String? ?? '', + )), + ), + ); + restoreSavedWords(); + } + final savedWordStates = data['wordKnowledge'] as List?; + if (savedWordStates != null) { + wordKnowledge + ..clear() + ..addEntries( + savedWordStates.whereType>().map((item) { + final id = item['id'] as String; + return MapEntry( + id, + WordKnowledge( + id: id, + status: _enumValue( + WordStatus.values, + item['status'] as String?, + WordStatus.newWord, + ), + recognizedAt: DateTime.tryParse( + item['recognizedAt'] as String? ?? '', + ), + dueAt: DateTime.tryParse(item['dueAt'] as String? ?? ''), + misses: item['misses'] as int? ?? 0, + // Snapshots written before the spacing ladder carry no step; + // place them on the rung their status implies. + step: item['step'] as int? ?? switch (_enumValue( + WordStatus.values, + item['status'] as String?, + WordStatus.newWord, + )) { + WordStatus.newWord => 0, + WordStatus.recognized => 1, + WordStatus.familiar => 4, + }, + startedAt: DateTime.tryParse( + item['startedAt'] as String? ?? '', + ), + ), + ); + }), + ); + } final savedMastery = data['mastery'] as List?; if (savedMastery != null) { mastery @@ -357,6 +414,7 @@ extension _AppStateSnapshot on AppState { 'hint': item.hint, 'dueAt': item.dueAt.toIso8601String(), 'skill': item.skill, + 'kind': item.kind.name, 'attempts': item.attempts, 'successfulReviews': item.successfulReviews, 'variantIndex': item.variantIndex, @@ -365,6 +423,17 @@ extension _AppStateSnapshot on AppState { }, ) .toList(), + 'wordKnowledge': wordKnowledge.values.map((w) => w.toJson()).toList(), + 'savedWords': [ + for (final entry in savedWords.entries) + { + 'id': entry.key, + 'en': entry.value.en, + 'zh': entry.value.zh, + 'level': entry.value.level, + 'ipa': entry.value.ipa, + }, + ], 'mastery': mastery.values .map( (item) => { @@ -480,6 +549,7 @@ ReviewItem _reviewFromJson(Map data) => ReviewItem( hint: data['hint'] as String, dueAt: DateTime.tryParse(data['dueAt'] as String? ?? '') ?? DateTime.now(), skill: data['skill'] as String, + kind: _enumValue(ReviewKind.values, data['kind'] as String?, ReviewKind.checkpoint), attempts: data['attempts'] as int? ?? 0, successfulReviews: data['successfulReviews'] as int? ?? 0, variantIndex: data['variantIndex'] as int? ?? 0, diff --git a/kouyu_english/lib/core/app_state_words.dart b/kouyu_english/lib/core/app_state_words.dart new file mode 100644 index 0000000..6b7af36 --- /dev/null +++ b/kouyu_english/lib/core/app_state_words.dart @@ -0,0 +1,354 @@ +part of 'app_state.dart'; + +/// Learning engine 3.5: the recognition-only layer. These words are never +/// asked to be produced, they never enter a level's upgrade denominator, and +/// they get their own three states instead of the five of a core item. +mixin _ReceptiveWords on _AppStateData { + /// 「认识」 holds for a week before a second, different question can turn it + /// into 「熟悉」; after that the word is only spot-checked monthly. + /// Days to the next check after each success in a row. The early rungs are + /// short on purpose: a word asked once and then not again for a week is a + /// word that has to be learned from scratch the second time. + static const _ladderDays = [1, 3, 7, 15, 30, 60, 120]; + + /// The rung at which recognition counts as 「熟悉」. Reaching it takes + /// 1 + 3 + 7 = 11 days at the fastest, which satisfies the spec's "a second + /// success at least seven days later". + static const _familiarStep = 4; + static const _firstGap = Duration(days: 7); + + /// One recognition question is 5–10 seconds, so the plan is sized in those + /// rather than in the minute a produced review takes. + static const wordSecondsPerTask = 10; + + /// Records that a word was met in a lesson. It starts as 「新学」 with no + /// question scheduled: meeting a word is exposure, not recognition. + void meetWord(String id) { + if (!isReceptiveWord(id) || wordKnowledge.containsKey(id)) return; + wordKnowledge[id] = WordKnowledge( + id: id, + status: WordStatus.newWord, + startedAt: DateTime.now(), + ); + notifyListeners(); + } + + /// Learning engine 3.5: a word saved from lookup is an extension word. It + /// follows the same recognition-only rules as a unit's receptive words and + /// never enters the checkpoint queue. + void addSavedWord(VocabularyItem item) { + if (savedWords.containsKey(item.id)) return; + final level = allLessons + .where((lesson) => lesson.id == activeLessonId) + .map((lesson) => lesson.level) + .firstOrNull; + savedWords[item.id] = ( + level: level ?? 'A0', + unit: '', + en: item.word, + zh: item.meaning, + ipa: item.ipa ?? '', + ); + _registerSavedWords(); + wordKnowledge[item.id] = WordKnowledge( + id: item.id, + status: WordStatus.newWord, + ); + notifyListeners(); + } + + /// Puts the saved words back into the registry, which is otherwise built + /// from the course packs alone. + void _registerSavedWords() { + for (final entry in savedWords.entries) { + registerSavedWord( + entry.key, + en: entry.value.en, + zh: entry.value.zh, + level: entry.value.level, + ); + } + } + + void restoreSavedWords() => _registerSavedWords(); + + void meetWordsOfUnit(String unit) { + var added = false; + for (final id in receptiveWordsOfUnit(unit)) { + if (wordKnowledge.containsKey(id)) continue; + wordKnowledge[id] = WordKnowledge(id: id, status: WordStatus.newWord); + added = true; + } + if (added) notifyListeners(); + } + + /// One independent recognition attempt. + /// + /// A success moves 「新学」 to 「认识」; it only reaches 「熟悉」 when the + /// success comes at least seven days after the first one. A miss drops the + /// word back to 「认识」 and asks again tomorrow with another question — + /// there is no diagnosis and no further downgrade. + void recordWordRecognition(String id, {required bool correct}) { + if (!isReceptiveWord(id)) return; + final now = DateTime.now(); + final current = + wordKnowledge[id] ?? WordKnowledge(id: id, status: WordStatus.newWord); + if (!correct) { + // A miss drops the word to the bottom of the ladder and asks again + // tomorrow. It never falls below 「认识」 once earned: a single lapse + // does not mean the word was never known (learning engine 3.5). + wordKnowledge[id] = WordKnowledge( + id: id, + status: current.recognizedAt == null + ? WordStatus.newWord + : WordStatus.recognized, + recognizedAt: current.recognizedAt, + dueAt: _tomorrow(now), + misses: current.misses + 1, + startedAt: current.startedAt, + ); + notifyListeners(); + return; + } + final step = current.step + 1; + final earned = current.recognizedAt ?? now; + wordKnowledge[id] = WordKnowledge( + id: id, + status: _statusFor(step, earned, now), + recognizedAt: earned, + dueAt: now.add(Duration(days: _gapDays(step))), + misses: current.misses, + step: step, + // Carried over, or answering a word would take it back out of today's + // count and the daily cap could be spent over and over in one sitting. + startedAt: current.startedAt, + ); + notifyListeners(); + } + + /// The ladder rung for the nth success in a row, holding at the last one. + static int _gapDays(int step) => + _ladderDays[(step < _ladderDays.length ? step : _ladderDays.length) - 1]; + + /// 「熟悉」 needs both enough rungs and enough calendar: a learner who let + /// the word sit for weeks between checks gets there on the same rung, but + /// nobody gets there in three days. + static WordStatus _statusFor(int step, DateTime earned, DateTime now) { + if (step == 0) return WordStatus.newWord; + if (step >= _familiarStep && !now.isBefore(earned.add(_firstGap))) { + return WordStatus.familiar; + } + return WordStatus.recognized; + } + + DateTime _tomorrow(DateTime now) => + DateTime(now.year, now.month, now.day).add(const Duration(days: 1, hours: 9)); + + /// Words whose check has come due, weakest first. + List get dueWords { + final now = DateTime.now(); + final due = wordKnowledge.values + .where((word) => word.dueAt != null && !word.dueAt!.isAfter(now)) + .toList() + ..sort((a, b) { + if (a.misses != b.misses) return b.misses.compareTo(a.misses); + return a.dueAt!.compareTo(b.dueAt!); + }); + return [for (final word in due) word.id]; + } + + /// Words met but never asked yet — the queue the word page offers first. + List get unaskedWords => [ + for (final word in wordKnowledge.values) + if (word.status == WordStatus.newWord && word.dueAt == null) word.id, + ]; + + /// Words that have been missed and are not 「熟悉」 yet. + List get shakyWords { + final shaky = wordKnowledge.values + .where((word) => word.misses > 0 && word.status != WordStatus.familiar) + .toList() + ..sort((a, b) => b.misses.compareTo(a.misses)); + return [for (final word in shaky) word.id]; + } + + /// Learning engine 3.5: word recognition takes no more than a third of the + /// daily review budget. This caps only what is *inserted into a review + /// session*; the word page is opened on purpose and is not budgeted. + int get wordBudgetSeconds => reviewBudgetSeconds ~/ 3; + int get wordPlanSize => wordBudgetSeconds ~/ wordSecondsPerTask; + + /// Which way round this word's next question is asked. + /// + /// A word is always introduced in writing: hearing a word you have never + /// seen spelled gives you nothing to hold on to, and the day after a miss is + /// no time to take the spelling away either. From the first success on the + /// three rotate — see it, hear it, then produce it from the meaning — so a + /// word is not called known on the strength of one direction. Recognising a + /// word on the page is not the same as catching it in speech, and neither + /// one means it comes to mind when you need it. + WordAskMode wordAskMode(String id) { + final step = wordKnowledge[id]?.step ?? 0; + return WordAskMode.values[step % WordAskMode.values.length]; + } + + /// How many questions one round on the word page asks. + static const wordSessionSize = 20; + + /// New words the bank may hand out in a day. + /// + /// Without a cap, one sitting can start a hundred words and every one of + /// them comes back the next day, which is the pile that made them not stick + /// in the first place. The ladder's first rung is one day, so today's new + /// words are tomorrow's workload. + int get newWordsPerDay => switch (dailyMinutes) { + 10 => 8, + 30 => 20, + _ => 15, + }; + + /// New words already started today, whatever they came from. + int get newWordsStartedToday { + final now = DateTime.now(); + return wordKnowledge.values.where((word) { + final started = word.startedAt; + return started != null && + started.year == now.year && + started.month == now.month && + started.day == now.day; + }).length; + } + + /// New words the bank may still hand out today. + int get newWordQuota { + final left = newWordsPerDay - newWordsStartedToday; + return left > 0 ? left : 0; + } + + /// Bank words not started yet: easiest level first, and inside a level the + /// most common in spoken English first. The bank is independent of lesson + /// progress, so these are available from day one. + List get unstartedBankWords { + final byLevel = >{}; + for (final entry in receptiveWordRegistry.entries) { + if (!WordBank.isBankUnit(entry.value.unit)) continue; + if (wordKnowledge.containsKey(entry.key)) continue; + byLevel.putIfAbsent(entry.value.level, () => []).add(entry.key); + } + final bank = WordBank.instance; + final ordered = []; + for (final level in const ['A1', 'A2', 'B1']) { + final words = byLevel[level]; + if (words == null) continue; + words.sort((a, b) { + final byRank = bank.rankOf(a).compareTo(bank.rankOf(b)); + return byRank != 0 ? byRank : a.compareTo(b); + }); + ordered.addAll(words); + } + return ordered; + } + + /// Counted without building and sorting the ordered list: the home card asks + /// for this on every rebuild and the bank is a few thousand words. + int get unstartedBankWordCount { + var count = 0; + for (final entry in receptiveWordRegistry.entries) { + if (!WordBank.isBankUnit(entry.value.unit)) continue; + if (wordKnowledge.containsKey(entry.key)) continue; + count += 1; + } + return count; + } + + /// Minutes a round of [size] questions takes, rounded up, for the cards that + /// offer one. + int wordSessionMinutes(int size) => (size * wordSecondsPerTask + 59) ~/ 60; + + /// How many questions [wordSession] would hand out, without starting any + /// new word: the list view needs the number before the learner taps. + int get wordSessionPreviewSize { + final fresh = unstartedBankWordCount < newWordQuota + ? unstartedBankWordCount + : newWordQuota; + final ready = {...dueWords, ...unaskedWords}.length + fresh; + return ready < wordSessionSize ? ready : wordSessionSize; + } + + /// One round on the word page: what is due first, then words met in a unit + /// but never asked, then new words from the bank. + /// + /// A new word is registered as it is handed out, so a round the learner + /// never finishes does not fill the list with words they have not seen. + List wordSession({int size = wordSessionSize}) { + final plan = []; + final seen = {}; + var quota = newWordQuota; + void take(Iterable ids, {bool start = false}) { + for (final id in ids) { + if (plan.length >= size) return; + if (start && quota <= 0) return; + if (!seen.add(id)) continue; + final question = receptiveQuestion( + id, + variant: wordKnowledge[id]?.misses ?? 0, + mode: wordAskMode(id), + ); + if (question == null) continue; + if (start) { + wordKnowledge[id] = WordKnowledge( + id: id, + status: WordStatus.newWord, + startedAt: DateTime.now(), + ); + quota -= 1; + } + plan.add(question); + } + } + + take(dueWords); + take(unaskedWords); + take(unstartedBankWords, start: true); + return plan; + } + + /// Today's word questions: what is due first, then words never asked. + List get todayWordPlan { + final plan = []; + for (final id in [...dueWords, ...unaskedWords]) { + if (plan.length >= wordPlanSize) break; + final question = receptiveQuestion( + id, + variant: wordKnowledge[id]?.misses ?? 0, + mode: wordAskMode(id), + ); + if (question != null) plan.add(question); + } + return plan; + } + + int get dueWordCount => dueWords.length; + + WordStatus wordStatus(String id) => + wordKnowledge[id]?.status ?? WordStatus.newWord; + + /// Every word met, grouped by the unit that taught it, in unit order. + Map> get wordsByUnit { + final grouped = >{}; + for (final id in wordKnowledge.keys) { + grouped.putIfAbsent(wordUnit(id), () => []).add(id); + } + final units = grouped.keys.toList()..sort(); + return {for (final unit in units) unit: grouped[unit]!..sort()}; + } + + int get familiarWordCount => wordKnowledge.values + .where((word) => word.status == WordStatus.familiar) + .length; + int get recognizedWordCount => wordKnowledge.values + .where((word) => word.status == WordStatus.recognized) + .length; + + int get reviewBudgetSeconds; +} diff --git a/kouyu_english/lib/core/courses/core_items.dart b/kouyu_english/lib/core/courses/core_items.dart index b02c9fc..0198e39 100644 --- a/kouyu_english/lib/core/courses/core_items.dart +++ b/kouyu_english/lib/core/courses/core_items.dart @@ -1,8 +1,13 @@ import 'course_pack.dart'; -/// A produced core item as the registries see it: the level of the pack that -/// teaches it and its English and Chinese forms. -typedef RegisteredCoreItem = ({String level, String en, String zh}); +/// A produced core item as the registries see it: the pack that teaches it, +/// its level, and its English and Chinese forms. +typedef RegisteredCoreItem = ({ + String level, + String unit, + String en, + String zh, +}); /// Every produced core item across A0–B1, in course order, filled from the /// packs' `coreItems` by `CourseRepository`. IDs are separate from the @@ -21,6 +26,192 @@ Map get a0CoreItems => { if (entry.value.level == 'A0') entry.key: entry.value.en, }; +/// A recognition-only word as the registries see it. Learning engine 3.5 +/// keeps these apart from produced core items: they are heard and read, never +/// required to be said or spelled, and they do not count toward a level's +/// upgrade denominator. +typedef RegisteredReceptiveWord = ({ + String level, + String unit, + String en, + String zh, + String ipa, +}); + +final Map receptiveWordRegistry = + {}; + +void registerReceptiveWord( + ReceptiveWord word, { + required String level, + required String unit, +}) { + receptiveWordRegistry[word.id] = ( + level: level, + unit: unit, + en: word.en, + zh: word.zh, + ipa: '', + ); +} + +/// Registers a word saved from lookup. It has no unit, so its distractors +/// come from the same level. +void registerSavedWord( + String id, { + required String en, + required String zh, + required String level, +}) { + receptiveWordRegistry[id] = ( + level: level, + unit: '', + en: en, + zh: zh, + ipa: '', + ); +} + +/// Registers one word of the standalone word bank. Unlike a unit's receptive +/// words, these do not wait for a lesson to be finished. +void registerBankWord( + String id, { + required String en, + required String zh, + required String ipa, + required String level, + required String unit, +}) { + receptiveWordRegistry[id] = ( + level: level, + unit: unit, + en: en, + zh: zh, + ipa: ipa, + ); +} + +/// The IPA of a word, empty when none is known. +String wordIpa(String id) => receptiveWordRegistry[id]?.ipa ?? ''; + +/// Whether [id] is a recognition-only word. +bool isReceptiveWord(String id) => receptiveWordRegistry.containsKey(id); + +/// The English of a word of either layer. +String wordEnglish(String id) => + receptiveWordRegistry[id]?.en ?? coreItemEnglish(id); + +/// The Chinese of a word of either layer. +String wordMeaning(String id) => + receptiveWordRegistry[id]?.zh ?? coreItemMeaning(id); + +/// The unit that teaches [id], in either layer; empty when nothing does. +String wordUnit(String id) => + receptiveWordRegistry[id]?.unit ?? coreItemRegistry[id]?.unit ?? ''; + +/// The receptive words a unit teaches, in pack order. +List receptiveWordsOfUnit(String unit) => [ + for (final entry in receptiveWordRegistry.entries) + if (entry.value.unit == unit) entry.key, +]; + +/// Wrong answers for a receptive word's recognition question, as word ids, +/// from the same unit first, then the same level (learning engine 3.5: +/// distractors come from the same unit or from near meanings). The caller +/// takes the meaning or the spelling off each, depending on which way round +/// it is asking. +/// +/// Words whose meaning overlaps the target's are skipped, and no two options +/// share a meaning, so a question never has two right answers. That matters +/// most when the choice is between spellings: the meaning on screen is then +/// the only thing to go on. +/// +/// A word saved from lookup can be the only one of its level, so anything else +/// in the registry is taken rather than leaving the word unaskable. +List receptiveDistractors(String id, {int count = 2}) { + final target = receptiveWordRegistry[id]; + if (target == null) return const []; + final sameUnit = []; + final sameLevel = []; + final rest = []; + final taken = {}; + for (final entry in receptiveWordRegistry.entries) { + if (entry.key == id) continue; + final option = entry.value.zh.trim(); + if (option.isEmpty || entry.value.en.trim().isEmpty) continue; + if (option == target.zh.trim()) continue; + if (option.contains(target.zh) || target.zh.contains(option)) continue; + if (!taken.add(option)) continue; + if (entry.value.unit == target.unit) { + sameUnit.add(entry.key); + } else if (entry.value.level == target.level) { + sameLevel.add(entry.key); + } else if (rest.length < count) { + rest.add(entry.key); + } + } + return [...sameUnit, ...sameLevel, ...rest].take(count).toList(); +} + +/// Which way round the word is asked. +/// +/// Learning engine 3.5 counts 「听辨或阅读」 as recognition, and a word that +/// can only be recognised in writing is half learned — spoken English arrives +/// as sound. [recall] goes the other way, from the meaning to the word; it +/// stays a choice among spellings rather than something to write, so the word +/// is still only ever recognised and never enters the production ladder. +enum WordAskMode { read, listen, recall } + +/// A 5–10 second recognition question for a receptive word (learning engine +/// 3.5). +/// +/// [shown] is the prompt: the English for [WordAskMode.read], the Chinese for +/// [WordAskMode.recall]. A [WordAskMode.listen] question carries the English +/// too — it is what the synthesiser speaks and what the feedback shows — and +/// only hides it while the question is open. The English is always available +/// from the id through [wordEnglish], which is what the page speaks. +typedef WordQuestion = ({ + String id, + String shown, + String answer, + List options, + WordAskMode mode, +}); + +/// Null when the word has no distractors to offer, which means it cannot be +/// asked as a choice yet. +WordQuestion? receptiveQuestion( + String id, { + int variant = 0, + WordAskMode mode = WordAskMode.read, +}) { + final word = receptiveWordRegistry[id]; + if (word == null || word.en.isEmpty || word.zh.isEmpty) return null; + final wrong = receptiveDistractors(id, count: 3); + if (wrong.isEmpty) return null; + // A different variant asks the same word against other meanings, which is + // what 「换题、换语境」 means for a word this small. + final rotated = [...wrong.skip(variant % wrong.length), ...wrong.take(variant % wrong.length)] + .take(2) + .toList(); + // Asked from the meaning, the options are spellings and the prompt is the + // Chinese; asked either other way, it is the other way round. + final asksSpelling = mode == WordAskMode.recall; + String optionOf(String other) => asksSpelling + ? receptiveWordRegistry[other]!.en + : receptiveWordRegistry[other]!.zh; + final answer = asksSpelling ? word.en : word.zh; + final options = [answer, ...rotated.map(optionOf)]; + final offset = (id.hashCode.abs() + variant) % options.length; + return ( + id: id, + shown: asksSpelling ? word.zh : word.en, + answer: answer, + options: [...options.skip(offset), ...options.take(offset)], + mode: mode, + ); +} + class CoreReviewTemplate { const CoreReviewTemplate({ required this.prompt, @@ -43,9 +234,23 @@ final Map coreReviewHints = {}; final Map coreDictationSentences = {}; -/// Registers [item], taught at [level], with its review data. -void registerCoreItem(CoreItem item, {required String level}) { - coreItemRegistry[item.id] = (level: level, en: item.en, zh: item.zh); +/// How to use each core item that needs explaining, straight from the pack's +/// `usage`. Items whose meaning is the whole story (`book`, `Monday`) have no +/// entry. +final Map coreUsages = {}; + +/// Registers [item], taught in [unit] at [level], with its review data. +void registerCoreItem( + CoreItem item, { + required String level, + String unit = '', +}) { + coreItemRegistry[item.id] = ( + level: level, + unit: unit, + en: item.en, + zh: item.zh, + ); coreItemMatch[item.id] = item.match; coreReviewTemplates[item.id] = CoreReviewTemplate( prompt: item.reviewPrompt.isNotEmpty @@ -55,6 +260,7 @@ void registerCoreItem(CoreItem item, {required String level}) { skill: item.type == 'word' ? '词汇回忆' : '回忆表达', ); if (item.reviewHint.isNotEmpty) coreReviewHints[item.id] = item.reviewHint; + if (!item.usage.isEmpty) coreUsages[item.id] = item.usage; if (item.dictationSentence.isNotEmpty) { coreDictationSentences[item.id] = ( sentence: item.dictationSentence, @@ -70,6 +276,8 @@ void clearCoreItems() { coreReviewTemplates.clear(); coreReviewHints.clear(); coreDictationSentences.clear(); + coreUsages.clear(); + receptiveWordRegistry.clear(); } /// The label a learner sees for a core item, falling back to its id. A0 @@ -85,6 +293,12 @@ String coreItemLabel(String id) { /// English use this. String coreItemEnglish(String id) => coreItemRegistry[id]?.en ?? id; +/// The item as a learner would say it. A pattern is registered with its slot +/// showing — `I'm [state].` — which is right for a matching rule and wrong to +/// read, so the pack's own example sentence stands in when there is one. +String coreItemSpoken(String id) => + coreDictationSentences[id]?.sentence ?? coreItemEnglish(id); + /// Whether [id] is a produced core item the course tracks for mastery. bool isCoreItem(String id) => coreItemRegistry.containsKey(id); @@ -121,6 +335,138 @@ CoreReviewTemplate coreReviewVariant(String id, int variantIndex) { const dictationSkill = '听写'; const spokenRecallSkill = '口头回忆'; +/// The skill of the recognition question asked before the first checkpoint +/// review. Passing it is 「认识」 evidence and never advances a checkpoint. +const recognitionGateSkill = '听辨识别'; + + +/// The skill of a contrast question: a situation is described and the learner +/// picks which taught sentence it calls for. It shows the learner knows *when* +/// to say something, which is not the same as being able to produce it, so it +/// counts as recognition evidence and never advances a checkpoint on its own. +const contrastSkill = '情境辨析'; + +/// Whether two core items are taught in the same unit. +bool _sameUnit(String a, String b) { + final unit = coreItemRegistry[a]?.unit ?? ''; + return unit.isNotEmpty && unit == coreItemRegistry[b]?.unit; +} + +/// The confusables of [id] worth showing a learner now. A pack may pair an +/// item with one taught several units later — `What's your name?` against +/// `Where are you from?` — and naming a sentence the learner has never seen +/// explains nothing, so a pairing only appears once the other item is in the +/// same unit or has been taught. Passing no [isTaught] keeps them all, which +/// is what content checks want. +List visibleConfusables( + String id, { + bool Function(String id)? isTaught, +}) => [ + for (final other in coreUsages[id]?.confuse ?? const []) + if (coreItemRegistry.containsKey(other.id) && + (isTaught == null || _sameUnit(id, other.id) || isTaught(other.id))) + other, +]; + +/// How to use [id], or null when the pack explains nothing about it. +CoreUsage? coreUsage(String id) => coreUsages[id]; + +/// A contrast question built from an item's `confuse` list: the situation from +/// its own `usage.when`, the taught sentences as options, and the note that +/// explains the difference after an answer. +typedef ContrastQuestion = ({ + String situation, + String answer, + List options, + String note, +}); + +ContrastQuestion? coreContrastQuestion( + String id, { + bool Function(String id)? isTaught, +}) { + final usage = coreUsages[id]; + if (usage == null || usage.when.isEmpty) return null; + final answer = coreItemSpoken(id); + final notes = []; + final options = {answer}; + for (final other in visibleConfusables(id, isTaught: isTaught)) { + // Two wrong options is already a real choice; a longer list turns telling + // two sentences apart into a reading exercise. + if (options.length >= 3) break; + final english = coreItemSpoken(other.id); + if (english.isEmpty || english == answer) continue; + options.add(english); + if (other.note.isNotEmpty) notes.add(other.note); + } + if (options.length < 2) return null; + final ordered = options.toList(); + final offset = id.hashCode.abs() % ordered.length; + return ( + situation: usage.when, + answer: answer, + options: [...ordered.skip(offset), ...ordered.take(offset)], + note: notes.join('\n'), + ); +} + +/// What the item means, as a learner would read it: the Chinese form when the +/// pack has one, otherwise the reviewed situation the phrase is used in. +String coreItemMeaning(String id) { + final zh = coreItemRegistry[id]?.zh.trim() ?? ''; + if (zh.isNotEmpty) return zh; + final prompt = coreReviewTemplates[id]?.prompt.trim() ?? ''; + return prompt.isNotEmpty ? prompt : coreItemEnglish(id); +} + +/// A recognition question: what the learner hears or reads, and what the +/// right option says. Learning engine 3.5 asks for recognition inside a +/// sentence or a situation, so the item's dictation sentence is used whenever +/// the pack has one. That also keeps near-synonyms apart: `hello` and `hi` +/// both mean 你好 on their own, but `Hello, how are you?` and +/// `Hi, what's your name?` do not. +typedef RecognitionQuestion = ({String shown, String answer}); + +RecognitionQuestion coreRecognitionQuestion(String id) { + final dictation = coreDictationSentences[id]; + if (dictation != null && dictation.meaning.trim().isNotEmpty) { + return (shown: dictation.sentence, answer: dictation.meaning); + } + return (shown: coreItemEnglish(id), answer: coreItemMeaning(id)); +} + +/// Wrong options for a recognition question, taken from other core items in +/// the same unit (learning engine 3.5: distractors come from the same unit or +/// from near meanings, never from obviously unrelated words). Options are +/// asked in the same form as the answer — sentence against sentence — so the +/// right one cannot be spotted by its length alone. +List recognitionDistractors(String id, {int count = 2}) { + final target = coreItemRegistry[id]; + if (target == null) return const []; + final question = coreRecognitionQuestion(id); + final sentenceForm = coreDictationSentences[id] != null; + final sameUnit = []; + final sameLevel = []; + for (final entry in coreItemRegistry.entries) { + if (entry.key == id) continue; + if ((coreDictationSentences[entry.key] != null) != sentenceForm) continue; + final option = coreRecognitionQuestion(entry.key).answer; + if (option.isEmpty) continue; + // A distractor that contains the answer, or is contained by it, would be + // right too — `嗨,你叫什么名字?` against `你叫什么名字?`. + if (option.contains(question.answer) || question.answer.contains(option)) { + continue; + } + if (target.unit.isNotEmpty && entry.value.unit == target.unit) { + sameUnit.add(option); + } else if (entry.value.level == target.level) { + sameLevel.add(option); + } + } + final options = {...sameUnit, ...sameLevel}; + return options.take(count).toList(); +} + /// A concrete sentence built only from taught language, used to play a core /// item in context and to check dictation. typedef DictationSentence = ({String sentence, String meaning}); diff --git a/kouyu_english/lib/core/courses/course_pack.dart b/kouyu_english/lib/core/courses/course_pack.dart index 87fea38..3058e0d 100644 --- a/kouyu_english/lib/core/courses/course_pack.dart +++ b/kouyu_english/lib/core/courses/course_pack.dart @@ -313,6 +313,56 @@ class PackSegment { } } +/// One taught item that is easy to mistake for another, with the difference +/// spelled out. `A0-P02` (`What's your name?`) lists `A0-P05` +/// (`How are you?`), because knowing both sentences is not the same as +/// knowing which one a situation calls for. +class Confusable { + const Confusable({required this.id, required this.note}); + + final String id; + final String note; + + factory Confusable.fromJson(Map json) => Confusable( + id: json['id'] as String? ?? '', + note: json['note'] as String? ?? '', + ); +} + +/// How a pattern is used, as opposed to what it means: the situation it +/// belongs to, the reply it invites, an alternative wording, and the taught +/// items it is confused with. The course JSON carries this; nothing here is +/// generated at runtime. +class CoreUsage { + const CoreUsage({ + this.when = '', + this.reply = '', + this.swap = '', + this.confuse = const [], + }); + + /// The situation the item is used in, in one line. + final String when; + + /// What the other person usually answers, or how to answer it. + final String reply; + + /// Another taught way to say the same thing. + final String swap; + + final List confuse; + + bool get isEmpty => + when.isEmpty && reply.isEmpty && swap.isEmpty && confuse.isEmpty; + + factory CoreUsage.fromJson(Map json) => CoreUsage( + when: json['when'] as String? ?? '', + reply: json['reply'] as String? ?? '', + swap: json['swap'] as String? ?? '', + confuse: _objectList(json['confuse']).map(Confusable.fromJson).toList(), + ); +} + /// A produced core item (word / phrase / pattern) with its acceptance rule. class CoreItem { const CoreItem({ @@ -327,6 +377,7 @@ class CoreItem { this.reviewHint = '', this.dictationSentence = '', this.dictationMeaning = '', + this.usage = const CoreUsage(), }); final String id; @@ -348,6 +399,9 @@ class CoreItem { final String dictationSentence; final String dictationMeaning; + /// When to use the item, empty for anything that needs no explaining. + final CoreUsage usage; + factory CoreItem.fromJson(Map json) { final example = _objectOrEmpty(json['example']); final review = _objectOrEmpty(json['review']); @@ -364,6 +418,7 @@ class CoreItem { reviewHint: review['hint'] as String? ?? '', dictationSentence: dictation['sentence'] as String? ?? '', dictationMeaning: dictation['meaning'] as String? ?? '', + usage: CoreUsage.fromJson(_objectOrEmpty(json['usage'])), ); } } diff --git a/kouyu_english/lib/core/courses/course_repository.dart b/kouyu_english/lib/core/courses/course_repository.dart index 8de0b08..ef86806 100644 --- a/kouyu_english/lib/core/courses/course_repository.dart +++ b/kouyu_english/lib/core/courses/course_repository.dart @@ -176,7 +176,10 @@ class CourseRepository { // Core items: labels, acceptance rules and offline review prompts. for (final item in pack.coreItems) { - registerCoreItem(item, level: pack.level); + registerCoreItem(item, level: pack.level, unit: pack.id); + } + for (final word in pack.receptiveWords) { + registerReceptiveWord(word, level: pack.level, unit: pack.id); } final segments = []; diff --git a/kouyu_english/lib/core/courses/courses.dart b/kouyu_english/lib/core/courses/courses.dart index 30caedc..af9e0d1 100644 --- a/kouyu_english/lib/core/courses/courses.dart +++ b/kouyu_english/lib/core/courses/courses.dart @@ -9,3 +9,4 @@ export 'core_items.dart'; export 'course_catalog.dart'; export 'course_models.dart'; export 'option_order.dart'; +export 'word_bank.dart'; diff --git a/kouyu_english/lib/core/courses/word_bank.dart b/kouyu_english/lib/core/courses/word_bank.dart new file mode 100644 index 0000000..c099a2a --- /dev/null +++ b/kouyu_english/lib/core/courses/word_bank.dart @@ -0,0 +1,80 @@ +import 'dart:convert'; + +import 'package:flutter/services.dart'; + +import 'core_items.dart'; + +/// A bank word used in a sentence, with the sentence's Chinese. +typedef WordExample = ({String en, String zh}); + +/// The standalone word bank (`assets/words/wordbank.json`). +/// +/// It is deliberately independent of the course packs: the words a learner can +/// study must not be capped by how many units they have finished, which was +/// the whole problem with growing vocabulary out of `receptiveWords` alone. +/// CEFR-J decides which words and at what level; the bank only carries the +/// IPA and the Chinese gloss. +class WordBank { + WordBank._(); + static final instance = WordBank._(); + + static const _asset = 'assets/words/wordbank.json'; + + /// The unit a bank word is filed under, e.g. `bank-A1`. + static String unitOf(String level) => 'bank-$level'; + static bool isBankUnit(String unit) => unit.startsWith('bank-'); + static String levelOfUnit(String unit) => unit.substring('bank-'.length); + + bool _loaded = false; + final Map _extraSenses = {}; + final Map _examples = {}; + final Map _ranks = {}; + + /// Senses beyond the one used as the quiz answer; empty when there are none. + String moreSenses(String id) => _extraSenses[id] ?? ''; + + /// The word in a sentence, which is what the meaning is shown against once + /// the answer is out. Null when the bank has none for this word. + WordExample? exampleOf(String id) => _examples[id]; + + /// How common the word is in spoken English, 0 being the most common. New + /// words are handed out in this order so the bank does not start with a + /// whole week of words beginning with `a`. + static const unranked = 99999; + int rankOf(String id) => _ranks[id] ?? unranked; + + Future load({AssetBundle? bundle}) async { + if (_loaded) return; + final raw = await (bundle ?? rootBundle).loadString(_asset); + final data = jsonDecode(raw) as Map; + for (final entry in (data['words'] as List)) { + final word = entry as Map; + final id = word['id'] as String; + final level = word['level'] as String? ?? 'A1'; + registerBankWord( + id, + en: word['en'] as String? ?? '', + zh: word['zh'] as String? ?? '', + ipa: word['ipa'] as String? ?? '', + level: level, + unit: unitOf(level), + ); + final more = word['more'] as String? ?? ''; + if (more.isNotEmpty) _extraSenses[id] = more; + _ranks[id] = word['rank'] as int? ?? unranked; + final en = word['ex'] as String? ?? ''; + if (en.isNotEmpty) { + _examples[id] = (en: en, zh: word['exZh'] as String? ?? ''); + } + } + _loaded = true; + } + + /// Test seam: drops what was loaded so another bundle can be loaded. + void resetForTest() { + _loaded = false; + _extraSenses.clear(); + _examples.clear(); + _ranks.clear(); + } +} diff --git a/kouyu_english/lib/core/models.dart b/kouyu_english/lib/core/models.dart index b91bdb7..49f3d18 100644 --- a/kouyu_english/lib/core/models.dart +++ b/kouyu_english/lib/core/models.dart @@ -2,7 +2,7 @@ enum LearningGoal { dailyLife, travel, workStarter } enum PlacementLevel { beginner, someBasics, simpleConversation } -enum AppTab { learn, dialogue, review, profile } +enum AppTab { learn, dialogue, review, words, profile } enum LessonStep { preview, @@ -18,6 +18,72 @@ enum LessonStep { enum MasteryStatus { newItem, recognize, recall, use, master, needsReview } +/// Learning engine 3.5: a recognition-only word has its own three states, +/// deliberately shorter than [MasteryStatus]. It is never asked to be spelled +/// or said, and it never counts toward a level's upgrade denominator. +enum WordStatus { newWord, recognized, familiar } + +/// What the app knows about one recognition-only word. +class WordKnowledge { + const WordKnowledge({ + required this.id, + required this.status, + this.recognizedAt, + this.dueAt, + this.misses = 0, + this.step = 0, + this.startedAt, + }); + + final String id; + final WordStatus status; + + /// When it first became 「认识」. 「熟悉」 needs a second success at least + /// seven days after this, on a different question. + final DateTime? recognizedAt; + + /// When it comes up for a check again; null once nothing is scheduled. + final DateTime? dueAt; + + /// How often recognition has failed, used to surface the weak ones. + final int misses; + + /// Successes in a row, which is the rung of the spacing ladder this word is + /// on. A miss puts it back to 0. + final int step; + + /// When the word entered the learner's list, which is what the daily cap on + /// new words is counted against. + final DateTime? startedAt; + + WordKnowledge copyWith({ + WordStatus? status, + DateTime? recognizedAt, + DateTime? dueAt, + int? misses, + int? step, + DateTime? startedAt, + }) => WordKnowledge( + id: id, + status: status ?? this.status, + recognizedAt: recognizedAt ?? this.recognizedAt, + dueAt: dueAt ?? this.dueAt, + misses: misses ?? this.misses, + step: step ?? this.step, + startedAt: startedAt ?? this.startedAt, + ); + + Map toJson() => { + 'id': id, + 'status': status.name, + 'recognizedAt': recognizedAt?.toIso8601String(), + 'dueAt': dueAt?.toIso8601String(), + 'misses': misses, + 'step': step, + 'startedAt': startedAt?.toIso8601String(), + }; +} + enum EvidenceKind { exposure, assisted, @@ -392,6 +458,13 @@ class SentenceAnalysisResult { ); } +/// What a queued review is for. A `checkpoint` task carries the four spaced +/// checkpoints of learning engine 3.1. A `recap` task is the same-day recall +/// after a segment, or the re-ask of an item missed earlier in the session: +/// it only strengthens encoding, so it never advances a checkpoint and a miss +/// is never counted as a language failure. +enum ReviewKind { checkpoint, recap } + class ReviewItem { const ReviewItem({ required this.id, @@ -400,6 +473,7 @@ class ReviewItem { required this.hint, required this.dueAt, required this.skill, + this.kind = ReviewKind.checkpoint, this.attempts = 0, this.successfulReviews = 0, this.variantIndex = 0, @@ -413,6 +487,7 @@ class ReviewItem { final String hint; final DateTime dueAt; final String skill; + final ReviewKind kind; final int attempts; final int successfulReviews; final int variantIndex; @@ -421,6 +496,7 @@ class ReviewItem { ReviewItem copyWith({ DateTime? dueAt, + ReviewKind? kind, int? attempts, int? successfulReviews, int? variantIndex, @@ -436,6 +512,7 @@ class ReviewItem { hint: hint ?? this.hint, dueAt: dueAt ?? this.dueAt, skill: skill ?? this.skill, + kind: kind ?? this.kind, attempts: attempts ?? this.attempts, successfulReviews: successfulReviews ?? this.successfulReviews, variantIndex: variantIndex ?? this.variantIndex, diff --git a/kouyu_english/lib/features/home/home_page.dart b/kouyu_english/lib/features/home/home_page.dart index 55489f8..5f44bc5 100644 --- a/kouyu_english/lib/features/home/home_page.dart +++ b/kouyu_english/lib/features/home/home_page.dart @@ -5,6 +5,7 @@ import '../../core/app_theme.dart'; import '../../widgets/app_widgets.dart'; import 'lesson_path.dart'; import 'today_task_card.dart'; +import 'word_task_card.dart'; /// 学习 tab:今天的任务在上,完整课程路径在下。 class HomePage extends StatelessWidget { @@ -17,6 +18,7 @@ class HomePage extends StatelessWidget { required this.onResumeLessonDialogue, required this.onStartReinforcement, required this.onOpenAssessment, + required this.onOpenWords, }); final AppState state; @@ -26,6 +28,7 @@ class HomePage extends StatelessWidget { final VoidCallback onResumeLessonDialogue; final VoidCallback onStartReinforcement; final ValueChanged onOpenAssessment; + final VoidCallback onOpenWords; @override Widget build(BuildContext context) => AppPage( @@ -41,6 +44,7 @@ class HomePage extends StatelessWidget { onStartReinforcement: onStartReinforcement, onOpenAssessment: onOpenAssessment, ), + WordTaskCard(state: state, onOpenWords: onOpenWords), LessonPath(state: state, onOpenLesson: onOpenLesson), const _FrameworkNote(), ], diff --git a/kouyu_english/lib/features/home/today_task_card.dart b/kouyu_english/lib/features/home/today_task_card.dart index 78de2ee..8cfd2e8 100644 --- a/kouyu_english/lib/features/home/today_task_card.dart +++ b/kouyu_english/lib/features/home/today_task_card.dart @@ -69,15 +69,29 @@ class TodayTaskCard extends StatelessWidget { ); } if (state.reviewIsPrimary) { - final count = state.dueReviewCount; + final planned = state.todayReviewPlan.length; + final postponed = state.postponedReviewCount; return _TodayTask( label: '今日复习', - title: '先复习 $count 项', - note: state.reviewBacklog + title: '先复习 $planned 项', + note: postponed > 0 + ? '今天的复习时间安排 $planned 项,其余 $postponed 项明天接着做,不会丢。' + : state.reviewBacklog ? '有积压项目;先花几分钟清掉到期复习,再开启新课。' : '之前练过的关键句,今天换个情境再用一次。', action: '开始复习', - minutes: '${(count * 2).clamp(2, 10)} 分钟', + minutes: '${(planned * 2).clamp(2, 10)} 分钟', + onPressed: onStartReview, + ); + } + // 学完一段后隔一会儿再想起来一次,明天的第一次检查才不会从零开始。 + if (state.dueRecaps.isNotEmpty) { + return _TodayTask( + label: '课后快闪', + title: '把刚学的 ${state.dueRecaps.length} 项再想一遍', + note: '趁还记得再提取一次,明天更容易想起来。答不出也不算错,不计检查点。', + action: '开始快闪', + minutes: '1 分钟', onPressed: onStartReview, ); } diff --git a/kouyu_english/lib/features/home/word_task_card.dart b/kouyu_english/lib/features/home/word_task_card.dart new file mode 100644 index 0000000..86d5d0f --- /dev/null +++ b/kouyu_english/lib/features/home/word_task_card.dart @@ -0,0 +1,77 @@ +import 'package:flutter/material.dart'; + +import '../../core/app_state.dart'; +import '../../core/app_theme.dart'; +import '../../widgets/app_widgets.dart'; +import '../words/words_page.dart'; + +/// 首页的认词入口。 +/// +/// 认词跟今日任务是并行的,不是竞争关系:一个题几秒钟,不该去抢上面那张 +/// 今日任务卡的「今天最该做的一件事」。所以它单独占一行 —— 有题时是一张能 +/// 直接开始的卡,没题时缩成一行状态,但入口始终在。 +class WordTaskCard extends StatelessWidget { + const WordTaskCard({ + super.key, + required this.state, + required this.onOpenWords, + }); + + final AppState state; + final VoidCallback onOpenWords; + + @override + Widget build(BuildContext context) { + final planned = state.wordSessionPreviewSize; + if (planned == 0) return _restRow(context); + return SectionCard( + tint: AppColors.surfaceMuted, + onTap: onOpenWords, + child: SpacedColumn( + children: [ + Row( + children: [ + const Expanded(child: Eyebrow('认词')), + Text( + '${state.wordSessionMinutes(planned)} 分钟', + style: TextStyle(color: AppColors.muted), + ), + ], + ), + Text( + wordTaskHeadline(state), + style: const TextStyle(fontSize: 17, fontWeight: FontWeight.w600), + ), + Text( + '$planned 个题,听到、看到能认出来就行,不用会说。', + style: Theme.of(context).textTheme.bodyMedium, + ), + SecondaryButton(label: '开始认词', onPressed: onOpenWords), + ], + ), + ); + } + + Widget _restRow(BuildContext context) => SectionCard( + tint: AppColors.surfaceMuted, + onTap: onOpenWords, + child: Row( + children: [ + Icon(Icons.abc_outlined, color: AppColors.muted, size: 20), + const SizedBox(width: 8), + Expanded( + child: Text( + state.newWordQuota > 0 + ? '今天的词都过完了' + : '今天的新词学满 ${state.newWordsPerDay} 个了,明天继续', + style: Theme.of(context).textTheme.bodyMedium, + ), + ), + Text( + '认识 ${state.recognizedWordCount} · 熟悉 ${state.familiarWordCount}', + style: Theme.of(context).textTheme.bodySmall, + ), + ], + ), + ); +} diff --git a/kouyu_english/lib/features/lesson/lesson_flow.dart b/kouyu_english/lib/features/lesson/lesson_flow.dart index e6460ff..e8958e6 100644 --- a/kouyu_english/lib/features/lesson/lesson_flow.dart +++ b/kouyu_english/lib/features/lesson/lesson_flow.dart @@ -12,6 +12,7 @@ import '../../core/voice_service.dart'; import '../../core/writing_feedback.dart'; import '../../widgets/app_widgets.dart'; import '../../widgets/lexicon_lookup.dart'; +import '../../widgets/usage_card.dart'; import '../../widgets/voice_answer.dart'; part 'steps/independent_step.dart'; @@ -148,6 +149,7 @@ class _LessonFlowState extends State { case LessonStep.speaking: content = _SpeakingStep( state: widget.state, + segmentId: segment.id, text: activity.speaking, tip: activity.speakingTip, keepRecording: widget.state.keepRecordings, diff --git a/kouyu_english/lib/features/lesson/steps/preview_step.dart b/kouyu_english/lib/features/lesson/steps/preview_step.dart index e2fe184..8e446fb 100644 --- a/kouyu_english/lib/features/lesson/steps/preview_step.dart +++ b/kouyu_english/lib/features/lesson/steps/preview_step.dart @@ -47,6 +47,7 @@ class _PreviewStep extends StatelessWidget { ], ), ), + UsageCard(itemId: item.id, state: state), Wrap( spacing: 8, children: [ActionChip(label: const Text('查词'), onPressed: onLookup)], diff --git a/kouyu_english/lib/features/lesson/steps/speaking_step.dart b/kouyu_english/lib/features/lesson/steps/speaking_step.dart index b269b7d..845e15a 100644 --- a/kouyu_english/lib/features/lesson/steps/speaking_step.dart +++ b/kouyu_english/lib/features/lesson/steps/speaking_step.dart @@ -3,11 +3,13 @@ part of '../lesson_flow.dart'; class _SpeakingStep extends StatefulWidget { const _SpeakingStep({ required this.state, + required this.segmentId, required this.text, this.tip = '', required this.keepRecording, required this.onContinue, }); + final String segmentId; final String text; final String tip; final AppState state; @@ -92,6 +94,7 @@ class _SpeakingStepState extends State<_SpeakingStep> style: TextStyle(color: AppColors.warmInk), ), ), + SegmentUsage(segmentId: widget.segmentId, state: widget.state), SecondaryButton( label: transcribing ? '正在 AI 识别发音…' diff --git a/kouyu_english/lib/features/lesson/steps/writing_step.dart b/kouyu_english/lib/features/lesson/steps/writing_step.dart index 2a96381..5d70a78 100644 --- a/kouyu_english/lib/features/lesson/steps/writing_step.dart +++ b/kouyu_english/lib/features/lesson/steps/writing_step.dart @@ -91,6 +91,7 @@ class _WritingStepState extends State<_WritingStep> { tint: AppColors.surfaceMuted, child: Text('小提示:${grammarNoteForSegment(widget.segmentId)}'), ), + SegmentUsage(segmentId: widget.segmentId, state: widget.state), if (widget.showHelp) SectionCard( tint: AppColors.softGreen, diff --git a/kouyu_english/lib/features/review/review_page.dart b/kouyu_english/lib/features/review/review_page.dart index 8a2f898..2417489 100644 --- a/kouyu_english/lib/features/review/review_page.dart +++ b/kouyu_english/lib/features/review/review_page.dart @@ -11,6 +11,7 @@ import '../../core/courses/courses.dart'; import '../../core/speech_compare.dart'; import '../../core/voice_service.dart'; import '../../widgets/app_widgets.dart'; +import '../../widgets/usage_card.dart'; import '../../widgets/voice_answer.dart'; class ReviewPage extends StatefulWidget { @@ -50,6 +51,15 @@ class _ReviewPageState extends State ({String answer, String reference, String? audio, bool assisted})? lastResult; bool dictationPlayed = false; + /// Items whose recognition question has been answered in this session. The + /// gate is asked once per item; the production task follows immediately. + final Set gateCleared = {}; + + /// The item whose contrast question is being shown after a miss, and the + /// option picked, if any. Set only while the remediation is on screen. + ReviewItem? contrastFor; + String? contrastPicked; + @override AppState get voiceState => widget.state; @@ -156,10 +166,204 @@ class _ReviewPageState extends State }); } + /// Options for the recognition question: the meaning plus distractors from + /// the same unit. The answer's position is stable per item so it does not + /// move while the learner reads, but it is not always first. + List _recognitionOptions(String id, String answer) { + final options = [answer, ...recognitionDistractors(id)]; + final offset = id.hashCode.abs() % options.length; + return [...options.skip(offset), ...options.take(offset)]; + } + + void _answerGate(ReviewItem item, {required bool correct}) { + widget.state.recordRecognitionGate(item, correct: correct); + setState(() { + gateCleared.add(item.id); + // Being shown the meaning is help, so finishing the production step + // afterwards is recorded as assisted. + if (!correct) usedHelp = true; + }); + if (!correct) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + '它的意思是:${coreRecognitionQuestion(item.id).answer}。下一步试着写出英文。', + ), + ), + ); + } + } + + /// Step one of an item's first checkpoint: hear or read it and pick what it + /// means. Recall of the English comes right after. Learning engine 3.1 puts + /// 「认识」 before 「可回忆」, so the day after a lesson opens with a question + /// the learner can answer instead of the hardest one. + Widget _recognitionView(ReviewItem item) { + final question = coreRecognitionQuestion(item.id); + final answer = question.answer; + final english = question.shown; + final audio = english; + return AppPage( + child: SpacedColumn( + children: [ + Eyebrow('今天复习 · ${widget.state.reviewSession.length} 项待完成'), + Text( + '先认出来:它是什么意思?', + style: Theme.of(context).textTheme.headlineMedium, + ), + Text( + '第 1 步,共 2 步 · 认出来 → 说出来', + style: TextStyle(color: AppColors.green, fontSize: 13), + ), + SectionCard( + tint: AppColors.softGreen, + child: SpacedColumn( + children: [ + Text(english, style: const TextStyle(fontSize: 22)), + Row( + children: [ + IconButton.filled( + tooltip: '播放', + onPressed: () => _play(audio), + icon: const Icon(Icons.volume_up_outlined), + ), + const SizedBox(width: 10), + TextButton( + onPressed: () => _play(audio, slow: true), + child: const Text('慢速'), + ), + ], + ), + ], + ), + ), + for (final option in _recognitionOptions(item.id, answer)) + SizedBox( + width: double.infinity, + child: OutlinedButton( + onPressed: () => _answerGate(item, correct: option == answer), + child: Align( + alignment: Alignment.centerLeft, + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 6), + child: Text(option, style: const TextStyle(fontSize: 16)), + ), + ), + ), + ), + TextButton( + onPressed: () => _answerGate(item, correct: false), + child: const Text('不认识'), + ), + Text( + '选错或选「不认识」都不算答错,会直接告诉你意思,再一起练说出来。', + style: TextStyle(fontSize: 12, color: AppColors.muted), + ), + ], + ), + ); + } + + void _reportMiss(ReviewItem item) { + widget.state.reportReviewFailure(item); + // Being told the answer is the moment to say what the item is for. A + // learner who could not produce `What's your name?` often knows the words + // and not the situation. + if (coreContrastQuestion(item.id, isTaught: widget.state.mastery.containsKey) != null) { + setState(() { + _resetAnswer(); + contrastFor = item; + contrastPicked = null; + }); + return; + } + setState(_resetAnswer); + } + + void _answerContrast(ReviewItem item, String picked, String answer) { + widget.state.recordContrastAnswer(item, correct: picked == answer); + setState(() => contrastPicked = picked); + } + + /// The remediation after a miss: the usage note, then the situation with the + /// taught sentences to choose between. It is teaching, not a checkpoint — + /// the miss is already recorded and answering here cannot undo it. + Widget _contrastView(ReviewItem item) { + final question = coreContrastQuestion( + item.id, + isTaught: widget.state.mastery.containsKey, + )!; + final picked = contrastPicked; + return AppPage( + child: SpacedColumn( + children: [ + const Eyebrow('先弄清楚什么时候用'), + Text( + '这句话用在这种情况:', + style: Theme.of(context).textTheme.headlineMedium, + ), + UsageCard(itemId: item.id, state: widget.state), + SectionCard( + tint: AppColors.surfaceMuted, + child: Text(question.situation, style: const TextStyle(fontSize: 17)), + ), + const Text('这时候该说哪一句?'), + for (final option in question.options) + SizedBox( + width: double.infinity, + child: OutlinedButton( + onPressed: picked == null + ? () => _answerContrast(item, option, question.answer) + : null, + style: picked == null + ? null + : OutlinedButton.styleFrom( + backgroundColor: option == question.answer + ? AppColors.softGreen + : null, + ), + child: Align( + alignment: Alignment.centerLeft, + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 6), + child: Text(option, style: const TextStyle(fontSize: 16)), + ), + ), + ), + ), + if (picked != null) ...[ + SectionCard( + tint: picked == question.answer + ? AppColors.softGreen + : AppColors.warm, + child: Text( + picked == question.answer + ? '对,就是这句。${question.note}' + : '这里要说 ${question.answer}。${question.note}', + style: TextStyle(color: AppColors.warmInk, height: 1.45), + ), + ), + PrimaryButton( + label: '继续复习', + onPressed: () => setState(() { + contrastFor = null; + contrastPicked = null; + }), + ), + ], + Text( + '这一步不算检查点,也不会影响刚才那道题的结果。', + style: TextStyle(fontSize: 12, color: AppColors.muted), + ), + ], + ), + ); + } + Widget _resultView( ({String answer, String reference, String? audio, bool assisted}) result, ) { - final remaining = widget.state.dueReviews.length; + final remaining = widget.state.reviewSession.length; return AppPage( child: SpacedColumn( children: [ @@ -311,11 +515,12 @@ class _ReviewPageState extends State @override Widget build(BuildContext context) { + if (contrastFor case final item?) return _contrastView(item); if (lastResult case final result?) return _resultView(result); - final item = widget.state.dueReviews.isEmpty - ? null - : widget.state.dueReviews.first; + final session = widget.state.reviewSession; + final item = session.isEmpty ? null : session.first; if (item == null) { + final postponed = widget.state.postponedReviewCount; return AppPage( child: SpacedColumn( children: [ @@ -324,12 +529,20 @@ class _ReviewPageState extends State '到期项目已安排下次复练。', style: Theme.of(context).textTheme.headlineMedium, ), - const Text('记住不是一次答对就结束;系统会在不同间隔再次确认你仍能用出来。'), + Text( + postponed > 0 + ? '今天的复习时间用完了,还有 $postponed 项到期,明天接着做,没有被丢掉。' + : '记住不是一次答对就结束;系统会在不同间隔再次确认你仍能用出来。', + ), PrimaryButton(label: '回到首页', onPressed: widget.onFinished), ], ), ); } + if (widget.state.needsRecognitionGate(item) && + !gateCleared.contains(item.id)) { + return _recognitionView(item); + } final dictation = item.skill == dictationSkill ? coreDictationSentences[item.id] : null; @@ -337,17 +550,33 @@ class _ReviewPageState extends State final audioText = reviewAudioText(item.id, item.target); final checkpoint = widget.state.mastery[item.id]?.checkpoint ?? item.successfulReviews; - final checkpointLabel = checkpoint >= 4 + final isRecap = item.kind == ReviewKind.recap; + final checkpointLabel = isRecap + ? '不计检查点 · 只是趁热再想一遍' + : checkpoint >= 4 ? '30 天抽查' : '第 ${checkpoint + 1} / 4 个间隔检查点'; return AppPage( child: SpacedColumn( children: [ - Eyebrow('今天复习 · ${widget.state.dueReviewCount} 项待完成'), + Eyebrow( + isRecap + ? '再想一遍 · 还有 ${widget.state.reviewSession.length} 项' + : '今天复习 · ${widget.state.reviewSession.length} 项待完成', + ), Text( - dictation != null ? '听一听,写下来。' : '不看答案,试着回答。', + dictation != null + ? '听一听,写下来。' + : isRecap + ? '刚学过的,现在还想得起来吗?' + : '不看答案,试着回答。', style: Theme.of(context).textTheme.headlineMedium, ), + if (isRecap) + Text( + '答不出也不算错,看一眼答案就好——这一次只是帮你记住,真正的检查在明天。', + style: TextStyle(fontSize: 12, color: AppColors.muted), + ), Text( '目标技能:${item.skill}', style: Theme.of(context).textTheme.bodyMedium, @@ -465,10 +694,7 @@ class _ReviewPageState extends State ), ActionChip( label: const Text('暂时想不起来'), - onPressed: () { - widget.state.reportReviewFailure(item); - setState(_resetAnswer); - }, + onPressed: () => _reportMiss(item), ), ActionChip( label: Text(generatingVariant ? '正在生成…' : '生成变式'), @@ -509,6 +735,7 @@ class _ReviewPageState extends State icon: const Icon(Icons.volume_up_outlined), label: Text('听示范:$audioText'), ), + UsageCard(itemId: item.id, state: widget.state), ], ), ), diff --git a/kouyu_english/lib/features/shell/learning_shell.dart b/kouyu_english/lib/features/shell/learning_shell.dart index 31c2798..00679e5 100644 --- a/kouyu_english/lib/features/shell/learning_shell.dart +++ b/kouyu_english/lib/features/shell/learning_shell.dart @@ -10,6 +10,7 @@ import "../home/home_page.dart"; import "../lesson/lesson_flow.dart"; import "../profile/profile_page.dart"; import "../review/review_page.dart"; +import "../words/words_page.dart"; class LearningShell extends StatefulWidget { const LearningShell({super.key, required this.state}); @@ -197,6 +198,11 @@ class _LearningShellState extends State { selectedIcon: Icon(Icons.refresh), label: "复习", ), + NavigationDestination( + icon: Icon(Icons.abc_outlined), + selectedIcon: Icon(Icons.abc), + label: "单词", + ), NavigationDestination( icon: Icon(Icons.person_outline), selectedIcon: Icon(Icons.person), @@ -240,6 +246,7 @@ class _LearningShellState extends State { .firstOrNull; if (pack != null) showAssessment(pack); }, + onOpenWords: () => showTab(AppTab.words), ); case AppTab.dialogue: return DialogueScenePage( @@ -252,6 +259,8 @@ class _LearningShellState extends State { onFinished: () => showTab(AppTab.learn), onOpenAdaptiveLesson: showAdaptiveLesson, ); + case AppTab.words: + return WordsPage(state: widget.state); case AppTab.profile: return ProfilePage( state: widget.state, diff --git a/kouyu_english/lib/features/words/words_page.dart b/kouyu_english/lib/features/words/words_page.dart new file mode 100644 index 0000000..4b39cbe --- /dev/null +++ b/kouyu_english/lib/features/words/words_page.dart @@ -0,0 +1,363 @@ +import 'package:flutter/material.dart'; + +import '../../core/app_state.dart'; +import '../../core/app_theme.dart'; +import '../../core/courses/courses.dart'; +import '../../core/models.dart'; +import '../../core/voice_service.dart'; +import '../../widgets/app_widgets.dart'; + +/// What the round of recognition is about right now. The home card and this +/// page share it so the two never describe today's words differently. +String wordTaskHeadline(AppState state) { + final due = state.dueWords.length; + if (due > 0) return '今天有 $due 个词该过一遍'; + final unasked = state.unaskedWords.length; + if (unasked > 0) return '有 $unasked 个新学的词还没问过'; + return '今天还能学 ${state.newWordQuota} 个新词'; +} + +/// The word list the learner can open on its own (learning engine 3.5). +/// +/// Words are never asked to be produced here: the only task is a 5–10 second +/// recognition question, and the rest of the page is just what has been met. +class WordsPage extends StatefulWidget { + const WordsPage({super.key, required this.state}); + + final AppState state; + + @override + State createState() => _WordsPageState(); +} + +class _WordsPageState extends State { + List? quiz; + int index = 0; + String? picked; + int right = 0; + + void _startQuiz() { + final plan = widget.state.wordSession(); + if (plan.isEmpty) return; + setState(() { + quiz = plan; + index = 0; + picked = null; + right = 0; + }); + _playIfHeard(plan.first); + } + + /// A listening question plays itself: the learner should not have to find a + /// button before the question has even been asked. + void _playIfHeard(WordQuestion question) { + if (question.mode != WordAskMode.listen) return; + VoiceService.instance.speak(wordEnglish(question.id)); + } + + void _answer(WordQuestion question, String option) { + final correct = option == question.answer; + widget.state.recordWordRecognition(question.id, correct: correct); + setState(() { + picked = option; + if (correct) right += 1; + }); + } + + void _next() { + final last = index + 1 >= quiz!.length; + setState(() { + if (last) { + quiz = null; + } else { + index += 1; + } + picked = null; + }); + if (!last) _playIfHeard(quiz![index]); + } + + @override + Widget build(BuildContext context) { + if (quiz case final questions?) return _quizView(questions[index]); + return _listView(); + } + + Widget _quizView(WordQuestion question) { + final answered = picked != null; + final english = wordEnglish(question.id); + final ipa = wordIpa(question.id); + // Before the answer each way round gives a different clue; after it all + // three land on the spelling, which is what the question was for. + // Withholding it earlier is the question: a heard word shown spelled is + // a reading question, and a meaning shown next to its word is no question + // at all. + final prompt = switch (question.mode) { + WordAskMode.read => english, + WordAskMode.listen => answered ? english : '· · ·', + WordAskMode.recall => answered ? english : question.shown, + }; + // Speaking the word before a recall answer would just read it out. + final canSpeak = answered || question.mode != WordAskMode.recall; + return AppPage( + child: SpacedColumn( + children: [ + Eyebrow( + '${switch (question.mode) { + WordAskMode.read => '认词', + WordAskMode.listen => '听词', + WordAskMode.recall => '想词', + }} · ${index + 1} / ${quiz!.length}', + ), + Row( + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + prompt, + style: Theme.of(context).textTheme.headlineMedium, + ), + if (answered && + ipa.isNotEmpty && + question.mode != WordAskMode.read) + Text(ipa, style: Theme.of(context).textTheme.bodyMedium), + ], + ), + ), + if (canSpeak) + IconButton( + icon: Icon( + question.mode == WordAskMode.listen + ? Icons.replay_outlined + : Icons.volume_up_outlined, + ), + tooltip: question.mode == WordAskMode.listen ? '再听一遍' : null, + onPressed: () => VoiceService.instance.speak(english), + ), + ], + ), + Text(switch (question.mode) { + WordAskMode.read => '它是什么意思?只要认出来就行,不用会说。', + WordAskMode.listen => '听到的是哪个意思?听不清可以再听一遍。', + WordAskMode.recall => '哪个词是这个意思?认出来就行,不用自己拼。', + }), + for (final option in question.options) + SizedBox( + width: double.infinity, + child: OutlinedButton( + onPressed: answered ? null : () => _answer(question, option), + style: !answered || option != question.answer + ? null + : OutlinedButton.styleFrom( + backgroundColor: AppColors.softGreen, + ), + child: Align( + alignment: Alignment.centerLeft, + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 6), + child: Text(option, style: const TextStyle(fontSize: 16)), + ), + ), + ), + ), + if (answered) ...[ + SectionCard( + tint: picked == question.answer + ? AppColors.softGreen + : AppColors.warm, + child: SpacedColumn( + children: [ + Text( + picked == question.answer + ? '对了。' + : question.mode == WordAskMode.recall + ? '「${question.shown}」是 $english,明天再问你一次。' + : '$english 是「${question.answer}」,明天再问你一次。', + style: TextStyle(color: AppColors.warmInk, height: 1.45), + ), + // The sentence is the point of the feedback: a gloss alone is + // what did not stick the first time. + if (WordBank.instance.exampleOf(question.id) case final sample?) ...[ + Text( + sample.en, + style: TextStyle( + color: AppColors.warmInk, + fontSize: 16, + height: 1.45, + ), + ), + if (sample.zh.isNotEmpty) + Text( + sample.zh, + style: Theme.of(context).textTheme.bodyMedium, + ), + ], + if (WordBank.instance.moreSenses(question.id) case final more + when more.isNotEmpty) + Text( + '也有「$more」的意思。', + style: Theme.of(context).textTheme.bodySmall, + ), + ], + ), + ), + PrimaryButton( + label: index + 1 >= quiz!.length ? '做完了' : '下一个', + onPressed: _next, + ), + ], + TextButton( + onPressed: () => setState(() { + quiz = null; + picked = null; + }), + child: const Text('先不做了'), + ), + ], + ), + ); + } + + Widget _listView() { + final state = widget.state; + final shaky = state.shakyWords; + final grouped = state.wordsByUnit; + final waiting = state.unstartedBankWordCount; + final quota = state.newWordQuota; + final planned = state.wordSessionPreviewSize; + return AppPage( + child: SpacedColumn( + children: [ + const Eyebrow('学过的词'), + Text( + grouped.isEmpty + ? '还没有学过的词' + : '认识 ${state.recognizedWordCount} · 熟悉 ${state.familiarWordCount}', + style: Theme.of(context).textTheme.headlineMedium, + ), + const Text('这些词只要听到、看到能认出来就够了,不用背着写出来。'), + if (planned > 0) + SectionCard( + tint: AppColors.softGreen, + child: SpacedColumn( + children: [ + Text( + wordTaskHeadline(state), + style: const TextStyle(fontSize: 17), + ), + Text( + '$planned 个题,一个题几秒钟。', + style: Theme.of(context).textTheme.bodyMedium, + ), + PrimaryButton(label: '开始认词', onPressed: _startQuiz), + ], + ), + ) + else if (grouped.isNotEmpty) + SectionCard( + tint: AppColors.surfaceMuted, + child: Text( + quota > 0 + ? '今天的词都过完了,剩下的等到期再问。' + : '今天的新词学满 ${state.newWordsPerDay} 个了,到期的也都过完了。' + '明天它们会回来找你。', + ), + ), + if (waiting > 0) + Text( + quota > 0 + ? '词库里还有 $waiting 个词没开始,今天还能学 $quota 个。' + : '词库里还有 $waiting 个词没开始,明天继续。', + style: Theme.of(context).textTheme.bodySmall, + ), + if (shaky.isNotEmpty) ...[ + const Eyebrow('没记住的'), + SectionCard( + tint: AppColors.warm, + child: SpacedColumn( + children: [ + for (final id in shaky.take(8)) _WordRow(id: id, state: state), + ], + ), + ), + ], + for (final entry in grouped.entries) ...[ + Eyebrow(_unitTitle(entry.key)), + SectionCard( + tint: AppColors.surfaceMuted, + child: SpacedColumn( + children: [ + for (final id in entry.value.take(_groupLimit)) + _WordRow(id: id, state: state), + if (entry.value.length > _groupLimit) + Text( + '还有 ${entry.value.length - _groupLimit} 个', + style: Theme.of(context).textTheme.bodySmall, + ), + ], + ), + ), + ], + ], + ), + ); + } + + /// A unit group is a reminder of what has been met, not a dictionary, so it + /// stops before the bank turns it into an endless scroll. + static const _groupLimit = 30; + + String _unitTitle(String unit) { + if (unit.isEmpty) return '查词收藏'; + if (WordBank.isBankUnit(unit)) return '词库 · ${WordBank.levelOfUnit(unit)}'; + final lesson = allLessons.where((item) => item.id == unit); + return lesson.isEmpty ? unit : lesson.first.title; + } +} + +class _WordRow extends StatelessWidget { + const _WordRow({required this.id, required this.state}); + + final String id; + final AppState state; + + @override + Widget build(BuildContext context) { + final status = state.wordStatus(id); + return Row( + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + wordEnglish(id), + style: const TextStyle(fontSize: 16, fontWeight: FontWeight.w600), + ), + Text( + wordIpa(id).isEmpty + ? wordMeaning(id) + : '${wordIpa(id)} ${wordMeaning(id)}', + style: Theme.of(context).textTheme.bodyMedium, + ), + ], + ), + ), + Text( + switch (status) { + WordStatus.newWord => '新学', + WordStatus.recognized => '认识', + WordStatus.familiar => '熟悉', + }, + style: Theme.of(context).textTheme.bodySmall, + ), + IconButton( + icon: const Icon(Icons.volume_up_outlined, size: 20), + onPressed: () => VoiceService.instance.speak(wordEnglish(id)), + ), + ], + ); + } +} diff --git a/kouyu_english/lib/widgets/lexicon_lookup.dart b/kouyu_english/lib/widgets/lexicon_lookup.dart index dd4aa99..f6ab34c 100644 --- a/kouyu_english/lib/widgets/lexicon_lookup.dart +++ b/kouyu_english/lib/widgets/lexicon_lookup.dart @@ -8,6 +8,7 @@ import '../core/models.dart'; import '../core/courses/courses.dart'; import '../core/voice_service.dart'; import 'app_widgets.dart'; +import 'usage_card.dart'; List? _cachedEntries; Map? _cachedExactMap; @@ -454,7 +455,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { try { ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text('已将短语 "${phrase.phrase}" 加入复习计划'), + content: Text('已加入单词,之后在「单词」里认它'), duration: const Duration(seconds: 2), ), ); @@ -469,7 +470,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { try { ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text('已将 "${item.word}" 加入复习计划'), + content: Text('已加入单词,之后在「单词」里认它'), duration: const Duration(seconds: 2), ), ); @@ -663,7 +664,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { _addedToReview.contains(phrase.phrase.toLowerCase()) ? Chip( label: Text( - '已在复习', + '已在单词', style: TextStyle(fontSize: 12), ), avatar: Icon( @@ -688,7 +689,7 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { size: 14, ), label: const Text( - '加复习', + '加到单词', style: TextStyle(fontSize: 12), ), ), @@ -843,14 +844,15 @@ class _LexiconLookupSheetState extends State<_LexiconLookupSheet> { tint: AppColors.softGreen, child: Text('${entry!.example}\n${entry!.exampleMeaning}'), ), + UsageCard(itemId: entry!.id, state: widget.state), Row( children: [ Expanded( child: PrimaryButton( label: _addedToReview.contains(entry!.word.toLowerCase()) - ? '已在复习中' - : '加入复习', + ? '已在单词表' + : '加到单词', onPressed: () { _addVocabItemToReview(entry!); }, diff --git a/kouyu_english/lib/widgets/usage_card.dart b/kouyu_english/lib/widgets/usage_card.dart new file mode 100644 index 0000000..85f7952 --- /dev/null +++ b/kouyu_english/lib/widgets/usage_card.dart @@ -0,0 +1,107 @@ +import 'package:flutter/material.dart'; + +import '../core/app_state.dart'; +import '../core/app_theme.dart'; +import '../core/courses/courses.dart'; +import 'app_widgets.dart'; + +/// What a taught pattern is *for*, next to what it means. Knowing that +/// `How are you?` means 你怎么样 does not tell a learner that it is not the +/// way to ask someone's name, so the course states the situation, the reply +/// it invites, and the items it is easiest to mix up with. +/// +/// The card renders nothing when the pack explains nothing about the item, +/// which is the normal case for a plain word. +class UsageCard extends StatelessWidget { + const UsageCard({ + super.key, + required this.itemId, + required this.state, + this.compact = false, + }); + + final String itemId; + final AppState state; + + /// Inside a task step, only the situation and the difference are shown — + /// the learner is mid-exercise, not reading a reference card. + final bool compact; + + /// A pattern counts as taught once it has a mastery row, which + /// `AppState` creates when the lesson first presents it. + bool _isTaught(String id) => state.mastery.containsKey(id); + + @override + Widget build(BuildContext context) { + final usage = coreUsage(itemId); + if (usage == null) return const SizedBox.shrink(); + final lines = <({String label, String text})>[ + if (usage.when.isNotEmpty) (label: '什么时候用', text: usage.when), + if (!compact && usage.reply.isNotEmpty) (label: '对方会怎么答', text: usage.reply), + if (!compact && usage.swap.isNotEmpty) (label: '换个说法', text: usage.swap), + // Mid-exercise only the nearest confusion is worth a line; the full + // list belongs on the preview and lookup cards. + for (final other in visibleConfusables( + itemId, + isTaught: _isTaught, + ).take(compact ? 1 : 3)) + if (other.note.isNotEmpty) + (label: '别和 ${coreItemSpoken(other.id)} 弄混', text: other.note), + ]; + if (lines.isEmpty) return const SizedBox.shrink(); + return SectionCard( + tint: AppColors.warm, + child: SpacedColumn( + spacing: 8, + children: [ + for (final line in lines) + RichText( + text: TextSpan( + style: DefaultTextStyle.of(context).style.copyWith( + color: AppColors.warmInk, + height: 1.45, + ), + children: [ + TextSpan( + text: '${line.label}:', + style: const TextStyle(fontWeight: FontWeight.w600), + ), + TextSpan(text: line.text), + ], + ), + ), + ], + ), + ); + } +} + +/// Every usage note a teaching segment carries, in course order. Shown in the +/// speaking and writing steps, where a learner is about to produce the pattern +/// and the question is which one this situation calls for. +class SegmentUsage extends StatelessWidget { + const SegmentUsage({ + super.key, + required this.segmentId, + required this.state, + this.compact = true, + }); + + final String segmentId; + final AppState state; + final bool compact; + + @override + Widget build(BuildContext context) { + final ids = findLessonSegment(segmentId)?.targetItemIds ?? const []; + final explained = [for (final id in ids) if (coreUsage(id) != null) id]; + if (explained.isEmpty) return const SizedBox.shrink(); + return SpacedColumn( + spacing: 8, + children: [ + for (final id in explained) + UsageCard(itemId: id, state: state, compact: compact), + ], + ); + } +} diff --git a/kouyu_english/pubspec.yaml b/kouyu_english/pubspec.yaml index 78c68ac..a875f37 100644 --- a/kouyu_english/pubspec.yaml +++ b/kouyu_english/pubspec.yaml @@ -36,6 +36,7 @@ flutter: - assets/config/ - assets/models/sense_voice/ - assets/courses/ + - assets/words/ - assets/courses/A0/ - assets/courses/A1/ - assets/courses/A2/ diff --git a/kouyu_english/test/answer_confirmation_test.dart b/kouyu_english/test/answer_confirmation_test.dart index 930b881..35fe783 100644 --- a/kouyu_english/test/answer_confirmation_test.dart +++ b/kouyu_english/test/answer_confirmation_test.dart @@ -108,6 +108,13 @@ void main() { skill: '回忆表达', ), ); + state.mastery['A0-P12'] = const MasteryItem( + id: 'A0-P12', + label: "I'm from …", + status: MasteryStatus.recall, + evidence: [], + checkpoint: 1, + ); await tester.pumpWidget( MaterialApp( home: Scaffold( diff --git a/kouyu_english/test/course_self_consistency_test.dart b/kouyu_english/test/course_self_consistency_test.dart index fe1e342..d1e1c9d 100644 --- a/kouyu_english/test/course_self_consistency_test.dart +++ b/kouyu_english/test/course_self_consistency_test.dart @@ -59,6 +59,99 @@ void main() { expect(failures, isEmpty); }); + test('every A0 pattern says when it is used', () { + final missing = [ + for (final pack in CourseRepository.instance.units) + if (pack.level == 'A0') + for (final item in pack.coreItems) + if (item.type != 'word' && (coreUsage(item.id)?.when ?? '').isEmpty) + '${item.id} "${item.en}"', + ]; + expect( + missing, + isEmpty, + reason: '句型要写清什么时候用,否则学会了也不知道该用哪一句', + ); + }); + + test('every confusable points at a real taught item with a note', () { + final broken = []; + for (final pack in CourseRepository.instance.units) { + for (final item in pack.coreItems) { + for (final other in item.usage.confuse) { + if (!isCoreItem(other.id)) broken.add('${item.id} → ${other.id} 不存在'); + if (other.note.isEmpty) broken.add('${item.id} → ${other.id} 没写区别'); + if (other.id == item.id) broken.add('${item.id} 指向自己'); + } + } + } + expect(broken, isEmpty); + }); + + test('every A0 pattern has something to be told apart from', () { + final alone = [ + for (final pack in CourseRepository.instance.units) + if (pack.level == 'A0') + for (final item in pack.coreItems) + if (item.type != 'word' && item.usage.confuse.isEmpty) + '${item.id} "${item.en}"', + ]; + expect(alone, isEmpty, reason: '每个句型都要有一句容易混的,才出得了辨析题'); + }); + + test('a pattern can be told apart from something already taught', () { + final order = { + for (var i = 0; i < CourseRepository.instance.units.length; i++) + CourseRepository.instance.units[i].id: i, + }; + final late = []; + for (final pack in CourseRepository.instance.units) { + if (pack.level != 'A0') continue; + for (final item in pack.coreItems) { + if (item.type == 'word' || item.usage.confuse.isEmpty) continue; + // The first review of an item comes a day after its own unit, so a + // pairing that only names later units has nothing to ask about then. + final reachable = item.usage.confuse.any((other) { + final unit = coreItemRegistry[other.id]?.unit; + return unit != null && (order[unit] ?? 999) <= order[pack.id]!; + }); + if (!reachable) late.add('${item.id} 的易混句都在后面的单元'); + } + } + expect(late, isEmpty); + }); + + test('a contrast question offers the item and something else to pick', () { + final broken = []; + for (final id in allCoreItemIds) { + if ((coreUsage(id)?.confuse ?? const []).isEmpty) continue; + final question = coreContrastQuestion(id); + if (question == null) { + broken.add('$id has confusables but no question'); + continue; + } + // Two options is a real choice; more than three turns recall into a + // reading exercise. + if (question.options.length < 2 || question.options.length > 3) { + broken.add('$id has ${question.options.length} options'); + } + // A situation that quotes one of the sentences gives the choice away. + for (final option in question.options) { + if (question.situation.contains(option)) { + broken.add('$id 的情境里写出了选项「$option」'); + } + } + if (!question.options.contains(question.answer)) { + broken.add('$id answer is not among the options'); + } + // Two sentences a learner has to tell apart cannot be the same string. + if (question.options.toSet().length != question.options.length) { + broken.add('$id repeats an option'); + } + } + expect(broken, isEmpty); + }); + test('assessment tasks are answerable and replacements point home', () { final ids = {for (final pack in assessmentPacks) pack.id}; final failures = []; diff --git a/kouyu_english/test/home_word_entry_test.dart b/kouyu_english/test/home_word_entry_test.dart new file mode 100644 index 0000000..6e048a9 --- /dev/null +++ b/kouyu_english/test/home_word_entry_test.dart @@ -0,0 +1,61 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:kouyu_english/core/app_state.dart'; +import 'package:kouyu_english/core/courses/courses.dart'; +import 'package:kouyu_english/features/shell/learning_shell.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +/// The word bank is reachable from its own tab, but nothing on the 学习 tab +/// mentioned it, so a learner who opens the app to today's task never saw +/// that words were waiting. These cover the entry point, not the quiz. +void main() { + setUp(() async { + SharedPreferences.setMockInitialValues({}); + clearCoreItems(); + WordBank.instance.resetForTest(); + await WordBank.instance.load(); + }); + + tearDown(() { + clearCoreItems(); + WordBank.instance.resetForTest(); + }); + + testWidgets('the 学习 tab offers a round of words and opens the word tab', ( + tester, + ) async { + final state = AppState()..finishOnboarding(); + await tester.pumpWidget(MaterialApp(home: LearningShell(state: state))); + await tester.pumpAndSettle(); + + expect(find.text('认词'), findsOneWidget); + expect(find.text('今天还能学 15 个新词'), findsOneWidget); + expect(find.text('15 个题,听到、看到能认出来就行,不用会说。'), findsOneWidget); + + await tester.tap(find.text('开始认词')); + await tester.pumpAndSettle(); + + expect(find.text('学过的词'), findsOneWidget); + }); + + testWidgets('the entry stays once the day is done, as a line not a task', ( + tester, + ) async { + final state = AppState()..finishOnboarding(); + for (final question in state.wordSession()) { + state.recordWordRecognition(question.id, correct: true); + } + await tester.pumpWidget(MaterialApp(home: LearningShell(state: state))); + await tester.pumpAndSettle(); + + expect(state.wordSessionPreviewSize, 0); + expect(find.text('开始认词'), findsNothing); + expect(find.text('今天的新词学满 15 个了,明天继续'), findsOneWidget); + expect(find.text('认识 15 · 熟悉 0'), findsOneWidget); + + await tester.tap(find.text('今天的新词学满 15 个了,明天继续')); + await tester.pumpAndSettle(); + + expect(find.text('学过的词'), findsOneWidget); + }); +} diff --git a/kouyu_english/test/navigation_back_button_test.dart b/kouyu_english/test/navigation_back_button_test.dart index 57a9705..729dfbb 100644 --- a/kouyu_english/test/navigation_back_button_test.dart +++ b/kouyu_english/test/navigation_back_button_test.dart @@ -80,7 +80,8 @@ void main() { await tester.pumpWidget(MaterialApp(home: LearningShell(state: state))); await tester.pumpAndSettle(); - expect(find.byType(NavigationDestination), findsNWidgets(4)); + expect(find.byType(NavigationDestination), findsNWidgets(5)); + expect(find.text('单词'), findsOneWidget); expect(find.text('今日新课'), findsOneWidget); expect(find.text('课程路径'), findsOneWidget); expect(find.textContaining('第 1 课 · '), findsWidgets); diff --git a/kouyu_english/test/receptive_words_test.dart b/kouyu_english/test/receptive_words_test.dart new file mode 100644 index 0000000..200a720 --- /dev/null +++ b/kouyu_english/test/receptive_words_test.dart @@ -0,0 +1,388 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:kouyu_english/core/app_state.dart'; +import 'package:kouyu_english/core/courses/course_pack.dart'; +import 'package:kouyu_english/core/courses/courses.dart'; +import 'package:kouyu_english/core/models.dart'; +import 'package:kouyu_english/features/words/words_page.dart'; + +/// Learning engine 3.5: the recognition-only layer — one success to 「认识」, +/// a second one at least seven days later to 「熟悉」, a monthly spot check +/// after that, and a miss that only ever drops back to 「认识」. +/// Calendar days from today to the day the word is next due. +/// +/// A miss schedules by wall clock (tomorrow morning), not by adding 24 hours, +/// so measuring the gap as a duration answers 0 for a test run in the evening. +/// Counting days on the calendar is what the ladder actually means. +int gapDays(DateTime? due) { + final today = DateTime.now(); + return DateTime(due!.year, due.month, due.day) + .difference(DateTime(today.year, today.month, today.day)) + .inDays; +} + +void main() { + setUp(() { + registerSavedWord('t-ready', en: 'ready', zh: '准备好', level: 'A0'); + registerSavedWord('t-later', en: 'later', zh: '晚点', level: 'A0'); + registerSavedWord('t-busy', en: 'busy', zh: '忙', level: 'A0'); + registerSavedWord('t-tired', en: 'tired', zh: '累', level: 'A0'); + registerSavedWord('t-early', en: 'early', zh: '早', level: 'A0'); + }); + + test('a met word starts as 新学 with nothing scheduled', () { + final state = AppState(); + state.meetWord('t-ready'); + final word = state.wordKnowledge['t-ready']!; + expect(word.status, WordStatus.newWord); + expect(word.dueAt, isNull); + expect(state.unaskedWords, contains('t-ready')); + }); + + test('one success reaches 认识 and comes back the next day', () { + final state = AppState(); + state.meetWord('t-ready'); + state.recordWordRecognition('t-ready', correct: true); + final word = state.wordKnowledge['t-ready']!; + expect(word.status, WordStatus.recognized); + expect(word.step, 1); + expect(gapDays(word.dueAt), 1); + expect(state.dueWords, isEmpty); + }); + + test('each success in a row stretches the gap', () { + final state = AppState(); + state.meetWord('t-ready'); + for (final expected in [1, 3, 7, 15, 30, 60, 120, 120]) { + state.recordWordRecognition('t-ready', correct: true); + expect(gapDays(state.wordKnowledge['t-ready']!.dueAt), expected); + } + }); + + test('successes in a row are not enough for 熟悉 without the days', () { + final state = AppState(); + state.meetWord('t-ready'); + for (var i = 0; i < 5; i++) { + state.recordWordRecognition('t-ready', correct: true); + } + // Five rungs climbed inside one minute: the calendar has not moved. + expect(state.wordKnowledge['t-ready']!.status, WordStatus.recognized); + }); + + test('the fourth success a week on reaches 熟悉', () { + final state = AppState(); + state.wordKnowledge['t-ready'] = WordKnowledge( + id: 't-ready', + status: WordStatus.recognized, + recognizedAt: DateTime.now().subtract(const Duration(days: 8)), + dueAt: DateTime.now().subtract(const Duration(hours: 1)), + step: 3, + ); + state.recordWordRecognition('t-ready', correct: true); + final word = state.wordKnowledge['t-ready']!; + expect(word.status, WordStatus.familiar); + expect(gapDays(word.dueAt), 15); + }); + + test('a miss drops 熟悉 back to 认识 and asks again tomorrow', () { + final state = AppState(); + state.wordKnowledge['t-ready'] = WordKnowledge( + id: 't-ready', + status: WordStatus.familiar, + recognizedAt: DateTime.now().subtract(const Duration(days: 40)), + dueAt: DateTime.now(), + ); + state.recordWordRecognition('t-ready', correct: false); + final word = state.wordKnowledge['t-ready']!; + expect(word.status, WordStatus.recognized); + expect(word.misses, 1); + expect(word.step, 0, reason: 'a miss goes back to the first rung'); + expect(gapDays(word.dueAt), 1); + expect(state.shakyWords, contains('t-ready')); + }); + + test('a miss never touches the core mastery of an item', () { + final state = AppState(); + state.meetWord('t-ready'); + state.recordWordRecognition('t-ready', correct: false); + expect(state.mastery, isEmpty); + expect(state.reviewQueue, isEmpty); + expect(state.knownItemCount, 0); + }); + + test('a recovered word has to wait another week for 熟悉', () { + final state = AppState(); + state.wordKnowledge['t-ready'] = WordKnowledge( + id: 't-ready', + status: WordStatus.familiar, + recognizedAt: DateTime.now().subtract(const Duration(days: 40)), + dueAt: DateTime.now(), + ); + state.recordWordRecognition('t-ready', correct: false); + state.recordWordRecognition('t-ready', correct: true); + final word = state.wordKnowledge['t-ready']!; + expect(word.status, WordStatus.recognized); + expect(word.step, 1, reason: 'the ladder is climbed again from the bottom'); + expect(gapDays(word.dueAt), 1); + }); + + test('a snapshot written before the ladder lands on a sensible rung', () { + final state = AppState(); + state.restoreForTest({ + 'wordKnowledge': [ + { + 'id': 't-ready', + 'status': 'familiar', + 'recognizedAt': DateTime.now() + .subtract(const Duration(days: 40)) + .toIso8601String(), + 'dueAt': DateTime.now().toIso8601String(), + 'misses': 0, + }, + {'id': 't-busy', 'status': 'recognized', 'misses': 1}, + {'id': 't-later', 'status': 'newWord', 'misses': 0}, + ], + }); + expect(state.wordKnowledge['t-ready']!.step, 4); + expect(state.wordKnowledge['t-busy']!.step, 1); + expect(state.wordKnowledge['t-later']!.step, 0); + }); + + test('a question shows the word and offers the meaning among others', () { + final question = receptiveQuestion('t-ready')!; + expect(question.shown, 'ready'); + expect(question.options, contains('准备好')); + expect(question.options.length, greaterThanOrEqualTo(2)); + expect(question.options.toSet().length, question.options.length); + }); + + test('a re-ask after a miss uses another set of wrong meanings', () { + final first = receptiveQuestion('t-ready', variant: 0)!; + final second = receptiveQuestion('t-ready', variant: 1)!; + expect(first.options.toSet(), isNot(second.options.toSet())); + }); + + test('word questions take no more than a third of the review budget', () { + final state = AppState(); + state.dailyMinutes = 20; + expect(state.wordBudgetSeconds * 3, lessThanOrEqualTo(state.reviewBudgetSeconds)); + for (var i = 0; i < 60; i++) { + state.wordKnowledge['t-ready$i'] = WordKnowledge( + id: 't-ready$i', + status: WordStatus.newWord, + ); + registerSavedWord('t-ready$i', en: 'w$i', zh: '意思$i', level: 'A0'); + } + expect(state.todayWordPlan.length, state.wordPlanSize); + expect(state.wordPlanSize, lessThan(60)); + }); + + test('a saved lookup word is recognition-only, not a checkpoint task', () { + final state = AppState(); + state.addSavedWord( + const VocabularyItem( + id: 'saved-ready', + word: 'ready', + meaning: '准备好', + example: '', + exampleMeaning: '', + ), + ); + expect(state.reviewQueue, isEmpty); + expect(state.mastery, isEmpty); + expect(state.wordStatus('saved-ready'), WordStatus.newWord); + expect(isReceptiveWord('saved-ready'), isTrue); + expect(state.wordsByUnit[''], contains('saved-ready')); + }); + + test('word progress survives a save and reload', () async { + final state = AppState(); + state.addSavedWord( + const VocabularyItem( + id: 'saved-later', + word: 'later', + meaning: '晚点', + example: '', + exampleMeaning: '', + ), + ); + state.recordWordRecognition('saved-later', correct: true); + + final restored = AppState()..restoreForTest(state.snapshotForTest()); + expect(restored.wordStatus('saved-later'), WordStatus.recognized); + expect(restored.savedWords['saved-later']?.en, 'later'); + expect(wordEnglish('saved-later'), 'later'); + }); + + test('finishing a unit puts its receptive words on the word page', () { + registerReceptiveWord( + const ReceptiveWord(id: 'u-repeat', en: 'repeat', zh: '重复'), + level: 'A0', + unit: 'a0-01', + ); + final state = AppState(); + state.meetWordsOfUnit('a0-01'); + expect(state.wordsByUnit['a0-01'], contains('u-repeat')); + expect(state.wordStatus('u-repeat'), WordStatus.newWord); + // Meeting a word is exposure, so nothing is scheduled by itself. + expect(state.dueWords, isEmpty); + }); + + testWidgets('the word page asks a word and records the answer', ( + tester, + ) async { + final state = AppState(); + state.meetWord('t-ready'); + await tester.pumpWidget(MaterialApp(home: WordsPage(state: state))); + + expect(find.text('ready'), findsOneWidget); + await tester.tap(find.text('开始认词')); + await tester.pumpAndSettle(); + + final question = state.todayWordPlan.first; + expect(question.id, 't-ready'); + await tester.tap(find.widgetWithText(OutlinedButton, '准备好')); + await tester.pumpAndSettle(); + + expect(state.wordStatus('t-ready'), WordStatus.recognized); + expect(find.text('对了。'), findsOneWidget); + }); + + test('a word is introduced in writing, then heard, then recalled', () { + final state = AppState(); + state.meetWord('t-ready'); + // Nothing to hold on to yet, so the first sight of a word is spelled out. + expect(state.wordAskMode('t-ready'), WordAskMode.read); + for (final expected in [ + WordAskMode.listen, + WordAskMode.recall, + WordAskMode.read, + WordAskMode.listen, + WordAskMode.recall, + ]) { + state.recordWordRecognition('t-ready', correct: true); + expect(state.wordAskMode('t-ready'), expected); + } + }); + + test('a recall question asks for the word and offers spellings', () { + final question = receptiveQuestion('t-ready', mode: WordAskMode.recall)!; + expect(question.shown, '准备好'); + expect(question.answer, 'ready'); + expect(question.options, contains('ready')); + expect(question.options, hasLength(3)); + for (final option in question.options) { + // Options are spellings; a meaning among them would give the answer away. + expect(option, matches(RegExp(r'^[a-zA-Z ]+$')), reason: option); + } + }); + + test('no two options mean the same thing', () { + // A second word glossed 「准备好」 would make both spellings right. + registerSavedWord('t-set', en: 'set', zh: '准备好', level: 'A0'); + final question = receptiveQuestion('t-ready', mode: WordAskMode.recall)!; + expect(question.options, isNot(contains('set'))); + }); + + test('the day after a miss shows the spelling again', () { + final state = AppState(); + state.meetWord('t-ready'); + state.recordWordRecognition('t-ready', correct: true); + expect(state.wordAskMode('t-ready'), WordAskMode.listen); + state.recordWordRecognition('t-ready', correct: false); + // A miss is no time to take the spelling away on top of it. + expect(state.wordAskMode('t-ready'), WordAskMode.read); + }); + + test('a round carries the mode each word is due for', () { + final state = AppState(); + state.meetWord('t-ready'); + state.meetWord('t-later'); + state.recordWordRecognition('t-later', correct: true); + state.wordKnowledge['t-later'] = state.wordKnowledge['t-later']!.copyWith( + dueAt: DateTime.now().subtract(const Duration(hours: 1)), + ); + final modes = { + for (final question in state.wordSession()) question.id: question.mode, + }; + expect(modes['t-ready'], WordAskMode.read); + expect(modes['t-later'], WordAskMode.listen); + }); + + testWidgets('a listening question withholds the spelling until answered', ( + tester, + ) async { + final state = AppState(); + state.meetWord('t-ready'); + state.recordWordRecognition('t-ready', correct: true); + state.wordKnowledge['t-ready'] = state.wordKnowledge['t-ready']!.copyWith( + dueAt: DateTime.now().subtract(const Duration(hours: 1)), + ); + await tester.pumpWidget(MaterialApp(home: WordsPage(state: state))); + await tester.tap(find.text('开始认词')); + await tester.pumpAndSettle(); + + expect(find.text('听词 · 1 / 1'), findsOneWidget); + // Showing 'ready' here would turn the question back into a reading one. + // The list behind the quiz is gone, so this is the whole screen. + expect(find.text('ready'), findsNothing); + expect(find.text('· · ·'), findsOneWidget); + expect(find.byIcon(Icons.replay_outlined), findsOneWidget); + + await tester.tap(find.widgetWithText(OutlinedButton, '准备好')); + await tester.pumpAndSettle(); + + // Now it is worth seeing: this is where the sound meets the spelling. + expect(find.text('ready'), findsOneWidget); + expect(state.wordKnowledge['t-ready']!.step, 2); + }); + + testWidgets('a recall question asks from the meaning, with nothing to play', ( + tester, + ) async { + final state = AppState(); + state.meetWord('t-ready'); + state.recordWordRecognition('t-ready', correct: true); + state.recordWordRecognition('t-ready', correct: true); + expect(state.wordAskMode('t-ready'), WordAskMode.recall); + state.wordKnowledge['t-ready'] = state.wordKnowledge['t-ready']!.copyWith( + dueAt: DateTime.now().subtract(const Duration(hours: 1)), + ); + await tester.pumpWidget(MaterialApp(home: WordsPage(state: state))); + await tester.tap(find.text('开始认词')); + await tester.pumpAndSettle(); + + expect(find.text('想词 · 1 / 1'), findsOneWidget); + // The prompt is the meaning, and it is the only Chinese on screen: the + // options are spellings. + expect(find.text('准备好'), findsOneWidget); + // Playing the word here would simply read out the answer. + expect(find.byIcon(Icons.volume_up_outlined), findsNothing); + + await tester.tap(find.widgetWithText(OutlinedButton, 'ready')); + await tester.pumpAndSettle(); + + // Once the answer is in: the prompt turns into the spelling, which now + // stands beside the option that was picked, and the word can be played. + expect(find.text('ready'), findsNWidgets(2)); + expect(find.byIcon(Icons.volume_up_outlined), findsOneWidget); + expect(state.wordKnowledge['t-ready']!.step, 3); + }); + + testWidgets('a wrong pick tells the learner the meaning', (tester) async { + final state = AppState(); + state.meetWord('t-ready'); + await tester.pumpWidget(MaterialApp(home: WordsPage(state: state))); + await tester.tap(find.text('开始认词')); + await tester.pumpAndSettle(); + + final wrong = state.todayWordPlan.first.options.firstWhere( + (option) => option != '准备好', + ); + await tester.tap(find.widgetWithText(OutlinedButton, wrong)); + await tester.pumpAndSettle(); + + expect(state.wordKnowledge['t-ready']!.misses, 1); + expect(find.textContaining('准备好'), findsWidgets); + }); +} diff --git a/kouyu_english/test/review_ai_check_test.dart b/kouyu_english/test/review_ai_check_test.dart index 26785c3..99d87da 100644 --- a/kouyu_english/test/review_ai_check_test.dart +++ b/kouyu_english/test/review_ai_check_test.dart @@ -106,6 +106,13 @@ void main() { skill: '回忆表达', ), ); + state.mastery['A0-P12'] = const MasteryItem( + id: 'A0-P12', + label: "I'm from …", + status: MasteryStatus.recall, + evidence: [], + checkpoint: 1, + ); final content = jsonEncode({ 'schemaVersion': 'writing-feedback-1', 'verdict': 'rewrite', diff --git a/kouyu_english/test/review_schedule_test.dart b/kouyu_english/test/review_schedule_test.dart new file mode 100644 index 0000000..74ed5ce --- /dev/null +++ b/kouyu_english/test/review_schedule_test.dart @@ -0,0 +1,126 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:kouyu_english/core/app_state.dart'; +import 'package:kouyu_english/core/courses/courses.dart'; +import 'package:kouyu_english/core/models.dart'; + +/// Learning engine 2.2/2.2a/3.1: the same-day recall, the recognition step in +/// front of the first checkpoint, the daily review budget, and the re-ask of +/// an item missed earlier in the session. +void main() { + ReviewItem due(String id) => ReviewItem( + id: id, + target: coreItemEnglish(id), + prompt: coreReviewTemplate(id).prompt, + hint: coreItemEnglish(id), + dueAt: DateTime.now().subtract(const Duration(hours: 1)), + skill: '回忆表达', + ); + + test('a same-day recap is scheduled for later today, not immediately', () { + final state = AppState(); + state.scheduleSameDayRecap(['A0-W36']); + final recap = state.reviewQueue.singleWhere( + (item) => item.kind == ReviewKind.recap, + ); + final now = DateTime.now(); + expect(recap.dueAt.isAfter(now), isTrue); + // 「同一天」指的是隔几小时再提取一次,不是明天再说。深夜学习时它会落在 + // 次日凌晨,那仍然是同一轮学习,所以这里比的是间隔而不是日历日。 + expect(recap.dueAt.difference(now).inMinutes, closeTo(120, 2)); + // It is not offered until it comes due: the point is the delay. + expect(state.dueRecaps, isEmpty); + }); + + test('finishing a same-day recap advances no checkpoint', () { + final state = AppState(); + state.reviewQueue.add( + due('A0-W36').copyWith(kind: ReviewKind.recap, dueAt: DateTime.now()), + ); + state.completeReview(state.dueRecaps.single, assisted: false); + expect(state.mastery['A0-W36']?.checkpoint ?? 0, 0); + expect(state.reviewQueue.where((i) => i.kind == ReviewKind.recap), isEmpty); + }); + + test('missing a same-day recap is not a language failure', () { + final state = AppState(); + state.reviewQueue.add( + due('A0-W36').copyWith(kind: ReviewKind.recap, dueAt: DateTime.now()), + ); + state.reportReviewFailure(state.dueRecaps.single); + expect(state.mastery['A0-W36']?.needsReview ?? false, isFalse); + expect(state.dueRecaps, isEmpty); + }); + + test('the first checkpoint opens with a recognition question', () { + final state = AppState(); + final item = due('A0-W36'); + state.reviewQueue.add(item); + expect(state.needsRecognitionGate(item), isTrue); + expect(recognitionDistractors('A0-W36'), isNotEmpty); + }); + + test('passing recognition records 认识 but no checkpoint', () { + final state = AppState(); + final item = due('A0-W36'); + state.reviewQueue.add(item); + state.recordRecognitionGate(item, correct: true); + final mastery = state.mastery['A0-W36']!; + expect(mastery.checkpoint, 0); + expect(mastery.status, MasteryStatus.recognize); + // The checkpoint is still earned by producing the item afterwards. + state.completeReview(state.dueReviews.single, assisted: false); + expect(state.mastery['A0-W36']!.checkpoint, 1); + }); + + test('a recognition miss does not count against the item', () { + final state = AppState(); + final item = due('A0-W36'); + state.reviewQueue.add(item); + state.recordRecognitionGate(item, correct: false); + final mastery = state.mastery['A0-W36']!; + expect(mastery.needsReview, isFalse); + expect(mastery.checkpoint, 0); + }); + + test('a recognition success survives rebuilding mastery from evidence', () { + final state = AppState(); + final item = due('A0-W36'); + state.reviewQueue.add(item); + state.recordRecognitionGate(item, correct: true); + state.rebuildMasteryFromEvidence(); + expect(state.mastery['A0-W36']!.checkpoint, 0); + expect(state.mastery['A0-W36']!.status, MasteryStatus.recognize); + }); + + test('due reviews beyond the daily budget wait, they are not dropped', () { + final state = AppState(); + state.dailyMinutes = 20; + for (final id in a0CoreItems.keys.take(10)) { + state.reviewQueue.add(due(id)); + } + expect(state.dueReviews.length, 10); + expect(state.todayReviewPlan.length, 5); + expect(state.postponedReviewCount, 5); + // Nothing was rescheduled behind the learner's back. + expect(state.dueReviews.length, 10); + }); + + test('a missed item comes back later in the same session', () { + final state = AppState(); + state.dailyMinutes = 20; + state.reviewQueue.add(due('A0-W36')); + state.reviewQueue.add(due('A0-W37')); + state.reportReviewFailure(state.dueReviews.first); + final session = state.reviewSession; + // The retry is asked after the other due tasks, not straight away. + expect(session.first.id, 'A0-W37'); + expect(session.last.id, 'A0-W36'); + expect(session.last.kind, ReviewKind.recap); + + final checkpointBefore = state.mastery['A0-W36']!.checkpoint; + state.completeReview(session.last, assisted: false); + // The retry is practice: the real check still happens tomorrow. + expect(state.mastery['A0-W36']!.checkpoint, checkpointBefore); + expect(state.mastery['A0-W36']!.needsReview, isTrue); + }); +} diff --git a/kouyu_english/test/sentence_analysis_test.dart b/kouyu_english/test/sentence_analysis_test.dart index 68dd1a8..3666586 100644 --- a/kouyu_english/test/sentence_analysis_test.dart +++ b/kouyu_english/test/sentence_analysis_test.dart @@ -169,14 +169,16 @@ void main() { contextSentence: "I'd like to check in please.", ); - expect(state.reviewQueue.any((r) => r.target == 'check in'), isTrue); - final saved = state.reviewQueue.firstWhere( - (r) => r.target == 'check in', + // Learning engine 3.5: a saved phrase is an extension word. It is + // recognition-only, so it goes to the word list, not the checkpoint + // queue where it would be asked to be produced. + expect(state.reviewQueue, isEmpty); + final id = state.savedWords.keys.singleWhere( + (key) => state.savedWords[key]!.en == 'check in', ); - - expect(saved.hint, contains('办理登机或入住')); - expect(saved.hint, contains('酒店机场高频词')); - expect(saved.prompt, "I'd like to check in please."); + expect(state.savedWords[id]!.zh, contains('办理登机或入住')); + expect(state.savedWords[id]!.zh, contains('酒店机场高频词')); + expect(state.wordStatus(id), WordStatus.newWord); }, ); }); @@ -234,19 +236,20 @@ void main() { expect(find.text('重点短语与搭配 (1)'), findsOneWidget); expect(find.text('departure gate'), findsOneWidget); expect(find.text('登机口'), findsOneWidget); - expect(find.text('加复习'), findsOneWidget); + expect(find.text('加到单词'), findsOneWidget); - // Scroll to '加复习' and tap - await tester.ensureVisible(find.text('加复习')); + // Scroll to '加到单词' and tap + await tester.ensureVisible(find.text('加到单词')); await tester.pumpAndSettle(); - await tester.tap(find.text('加复习')); + await tester.tap(find.text('加到单词')); await tester.pumpAndSettle(); expect( - state.reviewQueue.any((r) => r.target == 'departure gate'), + state.savedWords.values.any((word) => word.en == 'departure gate'), isTrue, ); - expect(find.text('已在复习'), findsOneWidget); + expect(state.reviewQueue, isEmpty); + expect(find.text('已在单词'), findsOneWidget); }); }); } diff --git a/kouyu_english/test/usage_contrast_test.dart b/kouyu_english/test/usage_contrast_test.dart new file mode 100644 index 0000000..ea45317 --- /dev/null +++ b/kouyu_english/test/usage_contrast_test.dart @@ -0,0 +1,175 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:kouyu_english/core/app_state.dart'; +import 'package:kouyu_english/core/courses/courses.dart'; +import 'package:kouyu_english/core/models.dart'; +import 'package:kouyu_english/features/review/review_page.dart'; + +/// Knowing what a sentence means is not knowing when to say it. The packs +/// carry that as `usage`; these cover what the app does with it — learning +/// engine 3.1 (what counts as which evidence) and 3.5 (recognition inside a +/// situation). +void main() { + ReviewItem due(String id) => ReviewItem( + id: id, + target: coreItemEnglish(id), + prompt: coreReviewTemplate(id).prompt, + hint: coreItemEnglish(id), + dueAt: DateTime.now().subtract(const Duration(hours: 1)), + skill: '回忆表达', + ); + + test('the pack says when a pattern is used and what it is confused with', () { + final usage = coreUsage('A0-P02')!; + expect(usage.when, isNotEmpty); + expect(usage.reply, isNotEmpty); + expect( + usage.confuse.map((entry) => entry.id), + contains('A0-P05'), + reason: 'What\'s your name? 和 How are you? 正是分不清的那一对', + ); + }); + + test('a contrast question asks which sentence the situation calls for', () { + final question = coreContrastQuestion('A0-P02')!; + expect(question.situation, coreUsage('A0-P02')!.when); + expect(question.answer, coreItemSpoken('A0-P02')); + expect(question.options, contains(coreItemSpoken('A0-P05'))); + expect(question.note, isNotEmpty); + }); + + test('an untaught confusable is left out of the question', () { + // `How are you?` is taught two units later than `What's your name?`, so + // on the day P02 is first reviewed it is not a choice the learner could + // make sense of. Its same-unit partner still is. + final early = coreContrastQuestion('A0-P02', isTaught: (_) => false)!; + expect(early.options, isNot(contains(coreItemSpoken('A0-P05')))); + expect(early.options, contains(coreItemSpoken('A0-P01'))); + // Once the learner has met it, it is the option worth offering. + final later = coreContrastQuestion( + 'A0-P02', + isTaught: (id) => id == 'A0-P05', + )!; + expect(later.options, contains(coreItemSpoken('A0-P05'))); + }); + + test('a contrast question never offers more than three sentences', () { + // `What's your name?` is confused with three other taught sentences. + expect(coreUsage('A0-P02')!.confuse.length, greaterThan(2)); + expect(coreContrastQuestion('A0-P02')!.options, hasLength(3)); + }); + + test('answering a contrast question records 认识, not a checkpoint', () { + final state = AppState(); + final item = due('A0-P02'); + state.reviewQueue.add(item); + state.recordContrastAnswer(item, correct: true); + final mastery = state.mastery['A0-P02']!; + expect(mastery.status, MasteryStatus.recognize); + expect(mastery.checkpoint, 0); + // It is not recall either: the learner picked the sentence, not said it. + expect(mastery.status, isNot(MasteryStatus.recall)); + }); + + test('a contrast answer survives rebuilding mastery from evidence', () { + final state = AppState(); + final item = due('A0-P02'); + state.reviewQueue.add(item); + state.recordContrastAnswer(item, correct: true); + state.rebuildMasteryFromEvidence(); + expect(state.mastery['A0-P02']!.checkpoint, 0); + expect(state.mastery['A0-P02']!.status, MasteryStatus.recognize); + }); + + test('the contrast question cannot undo the miss that led to it', () { + final state = AppState(); + final item = due('A0-P02'); + state.reviewQueue.add(item); + state.reportReviewFailure(item); + expect(state.mastery['A0-P02']!.needsReview, isTrue); + state.recordContrastAnswer(item, correct: true); + expect(state.mastery['A0-P02']!.needsReview, isTrue); + expect(state.mastery['A0-P02']!.checkpoint, 0); + }); + + test('getting the contrast wrong is not a language failure', () { + final state = AppState(); + final item = due('A0-P02'); + state.reviewQueue.add(item); + state.recordContrastAnswer(item, correct: false); + expect(state.mastery['A0-P02']!.needsReview, isFalse); + expect(state.mastery['A0-P02']!.checkpoint, 0); + }); + + testWidgets('a miss opens the explanation, then the contrast question', ( + tester, + ) async { + final messenger = tester.binding.defaultBinaryMessenger; + for (final name in const [ + 'com.llfbandit.record/messages', + 'xyz.luan/audioplayers', + 'xyz.luan/audioplayers.global', + ]) { + messenger.setMockMethodCallHandler(MethodChannel(name), (_) async => null); + } + messenger.setMockStreamHandler( + const EventChannel('xyz.luan/audioplayers.global/events'), + MockStreamHandler.inline(onListen: (_, _) {}), + ); + final reportError = FlutterError.onError; + FlutterError.onError = (details) { + if (details.exception is! MissingPluginException) { + reportError?.call(details); + } + }; + addTearDown(() => FlutterError.onError = reportError); + + final state = AppState(); + state.reviewQueue.add(due('A0-P02')); + // Past the first checkpoint, so the review opens on the production task + // rather than the recognition question. + state.mastery['A0-P02'] = const MasteryItem( + id: 'A0-P02', + label: "What's your name?", + status: MasteryStatus.recall, + evidence: [], + checkpoint: 1, + ); + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + body: ReviewPage( + state: state, + onFinished: () {}, + onOpenAdaptiveLesson: () {}, + ), + ), + ), + ); + + final giveUp = find.text('暂时想不起来'); + await tester.ensureVisible(giveUp); + await tester.tap(giveUp); + await tester.pumpAndSettle(); + + expect(find.text('先弄清楚什么时候用'), findsOneWidget); + expect(find.textContaining(coreUsage('A0-P02')!.when), findsWidgets); + + final checkpointAfterMiss = state.mastery['A0-P02']!.checkpoint; + final wrong = find.widgetWithText( + OutlinedButton, + coreItemSpoken('A0-P01'), + ); + await tester.ensureVisible(wrong); + await tester.tap(wrong); + await tester.pumpAndSettle(); + // The answer is named and the difference explained, and the miss stands. + expect( + find.textContaining('这里要说 ${coreItemSpoken('A0-P02')}'), + findsOneWidget, + ); + expect(state.mastery['A0-P02']!.needsReview, isTrue); + expect(state.mastery['A0-P02']!.checkpoint, checkpointAfterMiss); + }); +} diff --git a/kouyu_english/test/word_bank_test.dart b/kouyu_english/test/word_bank_test.dart new file mode 100644 index 0000000..98e530e --- /dev/null +++ b/kouyu_english/test/word_bank_test.dart @@ -0,0 +1,216 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:kouyu_english/core/app_state.dart'; +import 'package:kouyu_english/core/courses/courses.dart'; +import 'package:kouyu_english/core/models.dart'; + +/// The word bank exists so vocabulary is not capped by lesson progress: a +/// learner still on A0 must have words to recognise from the first day. +void main() { + TestWidgetsFlutterBinding.ensureInitialized(); + + setUp(() async { + clearCoreItems(); + WordBank.instance.resetForTest(); + await WordBank.instance.load(); + }); + + tearDown(() { + clearCoreItems(); + WordBank.instance.resetForTest(); + }); + + test('the bank carries a few thousand words with gloss and IPA', () { + final ids = receptiveWordRegistry.keys.where( + (id) => WordBank.isBankUnit(receptiveWordRegistry[id]!.unit), + ); + expect(ids.length, greaterThan(2000)); + for (final id in ids) { + expect(wordEnglish(id), isNotEmpty, reason: id); + expect(wordMeaning(id), isNotEmpty, reason: id); + } + final withIpa = ids.where((id) => wordIpa(id).isNotEmpty); + expect(withIpa.length / ids.length, greaterThan(0.98)); + }); + + test('every level pool is filed under its own unit', () { + final units = receptiveWordRegistry.values + .map((word) => word.unit) + .where(WordBank.isBankUnit) + .toSet(); + expect(units, containsAll(['bank-A1', 'bank-A2', 'bank-B1'])); + expect(WordBank.levelOfUnit('bank-A2'), 'A2'); + }); + + test('new words are handed out by spoken frequency, not alphabetically', () { + final state = AppState(); + final first = state.unstartedBankWords.take(12); + final words = first.map(wordEnglish).toList(); + // Alphabetical order would open with `a.m.`, `ability`, `able`. + expect(words, contains('know')); + expect(words.first, isNot('a.m.')); + final ranks = first.map(WordBank.instance.rankOf).toList(); + expect(ranks, orderedEquals(ranks.toList()..sort())); + }); + + test('almost every word has a real frequency rank', () { + final ids = receptiveWordRegistry.keys.where( + (id) => WordBank.isBankUnit(receptiveWordRegistry[id]!.unit), + ); + final ranked = ids.where( + (id) => WordBank.instance.rankOf(id) != WordBank.unranked, + ); + expect(ranked.length / ids.length, greaterThan(0.99)); + }); + + test('a fresh learner has bank words waiting and none started', () { + final state = AppState(); + expect(state.wordKnowledge, isEmpty); + expect(state.unstartedBankWordCount, greaterThan(2000)); + expect(state.wordSessionPreviewSize, state.newWordsPerDay); + }); + + test('a round hands out new bank words, easiest level first', () { + final state = AppState(); + final plan = state.wordSession(size: 5); + expect(plan, hasLength(5)); + for (final question in plan) { + expect(question.options, contains(question.answer)); + expect(question.options, hasLength(3)); + expect(receptiveWordRegistry[question.id]!.level, 'A1'); + expect(state.wordStatus(question.id), WordStatus.newWord); + } + }); + + test('the day has a cap on how many new words the bank starts', () { + final state = AppState(); + expect(state.newWordsPerDay, 15, reason: 'the 20-minute default'); + final first = state.wordSession(size: 20); + expect(first, hasLength(15), reason: 'a round stops at the cap'); + expect(state.newWordQuota, 0); + // A second round adds nothing new. It re-offers the same words, which is + // right: a round left half-finished should be finishable. + final second = state.wordSession(size: 20); + expect(second.map((q) => q.id), first.map((q) => q.id)); + expect(state.newWordsStartedToday, 15); + }); + + test('the cap follows the daily time budget', () { + final state = AppState(); + state.setDailyMinutes(10); + expect(state.newWordsPerDay, 8); + expect(state.wordSession(size: 20), hasLength(8)); + state.setDailyMinutes(30); + // The cap moved, so the rest of today's allowance opens up. + expect(state.newWordQuota, 12); + }); + + test('what is due is asked even after the new-word cap is used up', () { + final state = AppState(); + final started = state.wordSession(size: 20); + expect(state.newWordQuota, 0); + for (final question in started.take(3)) { + state.recordWordRecognition(question.id, correct: false); + } + // Missed words are due tomorrow, so nothing is due right now -- but the + // cap must not be what is stopping them. + state.wordKnowledge[started.first.id] = state + .wordKnowledge[started.first.id]! + .copyWith(dueAt: DateTime.now().subtract(const Duration(hours: 1))); + final next = state.wordSession(size: 20); + expect(next.map((q) => q.id), contains(started.first.id)); + }); + + test('answering a new word does not give the cap back', () { + final state = AppState(); + for (final question in state.wordSession(size: 20)) { + state.recordWordRecognition(question.id, correct: true); + } + // Answering is what a round is for; if it cleared the word off today's + // count, one sitting could start the bank's whole A1 list. + expect(state.newWordsStartedToday, 15); + expect(state.newWordQuota, 0); + expect(state.wordSession(size: 20), isEmpty); + }); + + test('a word started today counts against the cap after a reload', () { + final state = AppState(); + state.wordSession(size: 5); + final restored = AppState()..restoreForTest(state.snapshotForTest()); + expect(restored.newWordsStartedToday, 5); + expect(restored.newWordQuota, 10); + }); + + test('a word handed out once is not handed out again next round', () { + final state = AppState(); + final first = state.wordSession(size: 5).map((q) => q.id).toSet(); + for (final id in first) { + state.recordWordRecognition(id, correct: true); + } + final second = state.wordSession(size: 5).map((q) => q.id).toSet(); + expect(second.intersection(first), isEmpty); + }); + + test('a missed word waits for tomorrow instead of the same round', () { + final state = AppState(); + final missed = state.wordSession(size: 3).map((q) => q.id).toSet(); + for (final id in missed) { + state.recordWordRecognition(id, correct: false); + } + final next = state.wordSession(size: 10).map((q) => q.id).toSet(); + expect(next.intersection(missed), isEmpty); + expect(state.shakyWords.toSet(), missed); + }); + + test('a word met in a unit is asked before a new one from the bank', () { + registerSavedWord('t-unit', en: 'ready', zh: '准备好', level: 'A0'); + final state = AppState(); + state.meetWord('t-unit'); + expect(state.wordSession(size: 4).first.id, 't-unit'); + }); + + test('bank words stay out of the checkpoint queue and mastery', () { + final state = AppState(); + final plan = state.wordSession(size: 3); + for (final question in plan) { + state.recordWordRecognition(question.id, correct: false); + } + expect(state.reviewQueue, isEmpty); + expect(state.mastery, isEmpty); + }); + + test('every word carries an example sentence with its Chinese', () { + final ids = receptiveWordRegistry.keys.where( + (id) => WordBank.isBankUnit(receptiveWordRegistry[id]!.unit), + ); + for (final id in ids) { + final sample = WordBank.instance.exampleOf(id); + expect(sample, isNotNull, reason: id); + expect(sample!.en, isNotEmpty, reason: id); + expect(sample.zh, isNotEmpty, reason: id); + } + }); + + test('a gloss is short enough to be a quiz option', () { + final glosses = receptiveWordRegistry.entries + .where((entry) => WordBank.isBankUnit(entry.value.unit)) + .map((entry) => entry.value.zh); + for (final gloss in glosses) { + expect(gloss.length, lessThanOrEqualTo(10), reason: gloss); + expect(gloss, isNot(contains('(')), reason: gloss); + expect(gloss, isNot(contains('(')), reason: gloss); + } + }); + + test('extra senses are kept aside from the quiz answer', () { + final withMore = receptiveWordRegistry.keys.where( + (id) => WordBank.instance.moreSenses(id).isNotEmpty, + ); + expect(withMore, isNotEmpty); + for (final id in withMore.take(50)) { + expect( + WordBank.instance.moreSenses(id).split(';'), + isNot(contains(wordMeaning(id))), + ); + } + }); +} diff --git a/kouyu_english/tool/words/DATA-NOTE.md b/kouyu_english/tool/words/DATA-NOTE.md new file mode 100644 index 0000000..0553c77 --- /dev/null +++ b/kouyu_english/tool/words/DATA-NOTE.md @@ -0,0 +1,91 @@ +# 词库数据来源与许可 + +`assets/words/wordbank.json` 由两份来源合成,两份的地位不同,处置方式也不同。 + +## 1. 等级与词表范围:CEFR-J Vocabulary Profile 1.5 + +- 决定**哪些词进词库、算哪一级**。 +- 登记在 `tool/courses/lexicon/SOURCES.md`(版本、下载地址、SHA-256、许可原文), + 与 `tool/courses/pools/{a1,a2,b1}-word-pool.csv` 的生成用的是同一份数据。 +- CEFR-J 本身**只有分级,没有释义、音标、例句、词频** —— 它是分级表,不是词典。 + +## 2. 音标:公开词书(有许可风险,未解决) + +- 来源:,由 `tool/words/fetch.sh` 下载其中的 + 入门级词书(KET、PET、小学/初中教材词表)。 +- 许可:仓库标 CC BY-NC-SA 4.0,README 自称「整理自公开来源,仅供个人学习,严禁商用」。 + 上游权利不明,**低于本项目 `SOURCES.md` 对课程数据的标准**。 +- 结论:**自用、不分发,风险基本为零;一旦要分发或上架,这部分必须换掉。** + 换的时候只需要替换音标一列 —— 词表范围和等级由 CEFR-J 决定,释义和例句已经由 AI 重写, + 都不受影响。 + +## 3. 释义与例句:AI 重写(deepseek-flash) + +- `tool/words/enrich_wordbank.py` 把词书释义当**参考**喂给模型,明确告诉它词书质量不稳定、 + 可以推翻;模型返回主释义、次要义项、一个例句和例句中文。 +- `tool/words/apply_enrichment.py` 校验后合并:释义为空、带括号、超过 10 个字的一律丢弃, + 保留词书原值。实际全部 2748 条都通过了校验。 +- 结果缓存在 `ENRICH_CACHE` 指定的 jsonl 里,按 id 去重,中断可续跑,不会重复付费。 +- 一次全量:输入约 10 万 token,输出约 63 万 token(模型会先推理,输出占大头)。 + +## 4. 词频:OpenSubtitles 计数(MIT) + +- 来源: 的 `content/2018/en/en_50k.txt`, + 仓库 MIT 许可,计数来自 OpenSubtitles 字幕语料。 +- 决定**新词按什么顺序发给用户**。同等级内从最常用的开始,不按字母序。 +- 为什么不用网页语料:先试了 `first20hours/google-10000-english`(公共领域), + 对词库只有 78% 覆盖,缺的全是 `ankle`、`ambulance`、`asleep`、`aspirin` 这类日常词 —— + 网页语料对口语词覆盖不好。字幕语料覆盖 97%,缺的只有 `bus stop` 这类多词短语。 +- 多词短语取组成词里**最罕见**那个词的名次:短语不会比它最难的组成词更容易。 +- `tool/words/add_frequency.py` 把名次写进 `rank` 字段;表里完全查不到的 11 个词 + 排在本等级末尾。 + +排序效果: + +| 等级 | 前 12 个词 | +| --- | --- | +| A1 | no not know just there here like get go right out about | +| A2 | it yeah even first name ever enough understand next dead actually bit | +| B1 | working rest able stupid sometimes sort serious scared hang bet beat calm | + +## 合成规则 + +`tool/words/build_wordbank.py`: + +1. 读 `tool/courses/pools/*-word-pool.csv`,只取 `status == pool` 且非虚词的词条; +2. 词书里的词只有落在词池里才进词库,**词书不能往词库里加词**; +3. 释义按词性拆分,优先匹配 CEFR-J 标注的词性,丢掉 `[美俚]` `<美>` 这类限定义项, + 去掉全部括号,每个义项取第一个逗号项; +4. 第一个义项进 `zh`(选择题答案),其余进 `more`(只在词条详情里显示); +5. `add_frequency.py` 最后写入 `rank`,决定发放顺序。 + +## 现状 + +| 项 | 数值 | +| --- | --- | +| 词条总数 | 2748(A1 807 / A2 912 / B1 1029)| +| A1 词池覆盖 | 807 / 828 = 97% | +| A2 词池覆盖 | 912 / 1065 = 86% | +| B1 词池覆盖 | 1029 / 1557 = 66% | +| 有例句 | 2748(100%)| +| 有词频名次 | 2737(99.6%)| +| 有次要义项 | 2304 | +| 无音标 | 37 条 | + +规格 5.4 要求覆盖率 ≥85%:A1、A2 达标,**B1 偏低**,因为只下了入门级词书, +补 B1 需要再下四六级一类的中高级词书。 + +## 释义缺陷的处置 + +词书原始数据有相当一部分词条只收了罕见义,规则清洗修不掉,全部由 AI 重写解决: + +| 词 | 词书原值 | 现值 | +| --- | --- | --- | +| ticket | 加标签于;指派 | 票(次要义:罚单)| +| it | 信息技术information technology | 它 | +| check | 制止;检验 | 检查(次要义:核对;支票)| +| accept | 承认;同意;承兑 | 接受(次要义:同意)| + +`apply_enrichment.py` 还会打印一份「需要人眼看一下」的例句清单:它用词干前缀判断例句里 +是否真的用到了这个词,而 `teach → taught`、`bus stop` 这类变形和词组它判断不了, +所以只报告、不丢弃。最近一次是 9 条,全部核对无误。 diff --git a/kouyu_english/tool/words/add_frequency.py b/kouyu_english/tool/words/add_frequency.py new file mode 100644 index 0000000..b1680c3 --- /dev/null +++ b/kouyu_english/tool/words/add_frequency.py @@ -0,0 +1,69 @@ +"""Writes a frequency rank onto every bank word. + +Without this the bank is handed out in alphabetical order, so the first two +weeks are nothing but words starting with `a`. Rank 0 is the most common word. + +A multi-word entry (`bus stop`, `air conditioning`) is not in a word frequency +list at all, so it takes the rank of its rarest part: a phrase is no easier +than the hardest word in it. +""" + +import json +import os +import re +import sys + +ROOT = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +BANK = os.path.join(ROOT, 'assets/words/wordbank.json') + +# Words the list does not have at all go last, but stay in their level. +UNRANKED = 99999 + + +def load_ranks(path): + ranks = {} + with open(path) as handle: + for position, line in enumerate(handle): + parts = line.split() + if len(parts) == 2: + ranks.setdefault(parts[0], position) + return ranks + + +def rank_of(word, ranks): + direct = ranks.get(word.lower()) + if direct is not None: + return direct + parts = [re.sub(r"[^a-z']", '', part) for part in word.lower().split()] + parts = [part for part in parts if part] + found = [ranks[part] for part in parts if part in ranks] + if len(found) == len(parts) and found: + return max(found) + return UNRANKED + + +def main(): + frequency = sys.argv[1] + ranks = load_ranks(frequency) + with open(BANK) as handle: + bank = json.load(handle) + unranked = 0 + for word in bank['words']: + rank = rank_of(word['en'], ranks) + word['rank'] = rank + if rank == UNRANKED: + unranked += 1 + with open(BANK, 'w') as handle: + json.dump(bank, handle, ensure_ascii=False, separators=(',', ':')) + handle.write('\n') + print('ranked %d, unranked %d' % (len(bank['words']) - unranked, unranked)) + for level in ('A1', 'A2', 'B1'): + words = sorted( + (w for w in bank['words'] if w['level'] == level), + key=lambda w: w['rank'], + ) + print('%s first 12: %s' % (level, ' '.join(w['en'] for w in words[:12]))) + + +if __name__ == '__main__': + main() diff --git a/kouyu_english/tool/words/apply_enrichment.py b/kouyu_english/tool/words/apply_enrichment.py new file mode 100644 index 0000000..04be74b --- /dev/null +++ b/kouyu_english/tool/words/apply_enrichment.py @@ -0,0 +1,93 @@ +"""Merges the AI rewrite back into assets/words/wordbank.json. + +Anything the model returned is checked before it lands: a gloss that is empty, +parenthesised or sentence-long is worse than the word book's version, so the +old value is kept and reported instead of being written over. +""" + +import json +import os +import re +import sys +import tempfile + +ROOT = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +BANK = os.path.join(ROOT, 'assets/words/wordbank.json') + +BAD_GLOSS = re.compile(r'[()()\[\]【】<>]') + + +def usable_gloss(text): + text = (text or '').strip() + return bool(text) and len(text) <= 10 and not BAD_GLOSS.search(text) + + +def mentions(word, sentence): + """Whether the sentence visibly uses the word. + + This cannot be a hard check: `teach` shows up as "taught" and `bus stop` + as two words, so a prefix match has no way to confirm them. It only flags + a sentence as worth a human glance -- nothing is dropped over it. + """ + parts = [re.sub(r'[^a-z]', '', part) for part in word.lower().split()] + stem = max(parts, key=len)[:3] + return bool(stem) and stem in sentence.lower() + + +def main(): + cache_path = os.environ.get( + 'ENRICH_CACHE', os.path.join(tempfile.gettempdir(), 'enrich_cache.jsonl') + ) + rows = {} + with open(cache_path) as handle: + for line in handle: + row = json.loads(line) + rows[row['id']] = row + with open(BANK) as handle: + bank = json.load(handle) + + kept = {'gloss': 0, 'example': 0, 'missing': 0, 'bad_gloss': 0, 'no_example': 0} + unclear = [] + for word in bank['words']: + row = rows.get(word['id']) + if row is None: + kept['missing'] += 1 + continue + if usable_gloss(row.get('zh')): + word['zh'] = row['zh'].strip() + more = (row.get('more') or '').strip() + senses = [s for s in more.split(';') if usable_gloss(s) and s != word['zh']] + if senses: + word['more'] = ';'.join(senses[:2]) + else: + word.pop('more', None) + kept['gloss'] += 1 + else: + kept['bad_gloss'] += 1 + sentence = (row.get('ex') or '').strip() + if not sentence: + kept['no_example'] += 1 + continue + word['ex'] = sentence + word['exZh'] = (row.get('ex_zh') or '').strip() + kept['example'] += 1 + if not mentions(word['en'], sentence): + unclear.append('%s | %s' % (word['en'], sentence)) + + print(json.dumps(kept, indent=2)) + if unclear: + print('%d sentences to eyeball:' % len(unclear)) + for line in unclear: + print(' ' + line) + if '--dry-run' in sys.argv: + return + bank['source'] = ( + 'CEFR-J Vocabulary Profile 1.5 (levels) + 公开词书 (音标) + AI 重写 (释义与例句)' + ) + with open(BANK, 'w') as handle: + json.dump(bank, handle, ensure_ascii=False, separators=(',', ':')) + handle.write('\n') + + +if __name__ == '__main__': + main() diff --git a/kouyu_english/tool/words/build_wordbank.py b/kouyu_english/tool/words/build_wordbank.py new file mode 100644 index 0000000..dcab12c --- /dev/null +++ b/kouyu_english/tool/words/build_wordbank.py @@ -0,0 +1,131 @@ +"""Builds an independent word bank: CEFR-J decides which words and at what +level, the downloaded word books supply the IPA and the Chinese gloss. + +CEFR-J carries no glosses at all, so nothing here overrides it -- a word only +enters the bank if the level pool already contains it. +""" +import csv, glob, json, os, re, sys +import openpyxl + +POOLS = '/Users/shenlei/Work/English/kouyu_english/tool/courses/pools' + +# The books write parts of speech as `n.` / `vt.`; CEFR-J spells them out. +POS_MAP = { + 'n': 'noun', 'pron': 'pronoun', 'v': 'verb', 'vt': 'verb', 'vi': 'verb', + 'aux': 'verb', 'modal': 'verb', 'adj': 'adjective', 'adv': 'adverb', + 'prep': 'preposition', 'conj': 'conjunction', 'art': 'determiner', + 'det': 'determiner', 'num': 'number', 'int': 'interjection', +} + + +def load_pool(): + """{word form: (headword, pos set, level)} for A1..B1, content words only.""" + pool = {} + for level in ('A1', 'A2', 'B1'): + for row in csv.DictReader(open(f'{POOLS}/{level.lower()}-word-pool.csv')): + if row.get('status') != 'pool' or row.get('function_word') == 'yes': + continue + head = row['headword'].strip() + for form in re.split(r'[/,]', head): + form = form.strip().lower() + if not form: + continue + entry = pool.setdefault(form, {'headword': head, 'pos': set(), 'level': level}) + if row.get('pos'): + entry['pos'].add(row['pos'].strip()) + return pool + + +def clean_gloss(raw, wanted_pos): + """Picks one part of speech out of a stacked gloss and splits it into senses a + beginner needs. The books ship dictionary dumps: `apple` arrives as + "苹果,苹果树,苹果似的东西;[美俚]炸弹,手榴弹...".""" + if not raw: + return '' + lines = [l.strip() for l in str(raw).split('\n') if l.strip()] + picked = None + for line in lines: + m = re.match(r'^([a-z]+)\.\s*(.+)$', line, re.I) + if not m: + continue + pos = POS_MAP.get(m.group(1).lower()) + if pos and wanted_pos and pos in wanted_pos: + picked = m.group(2) + break + if picked is None: + picked = m.group(2) + if picked is None: + picked = lines[0] + senses = [] + for sense in re.split(r'[;;]', picked): + sense = sense.strip() + # `[美俚]炸弹` and `<美>支票` are register labels on a sense a learner + # will never need; drop the whole sense, not just the label. + if re.match(r'^\s*[\[<【]', sense): + continue + sense = re.sub(r'[((][^))]*[))]', '', sense) + sense = re.sub(r'[\[【][^\]】]*[\]】]', '', sense) + # "苹果,苹果树,苹果似的东西" is one sense listed three ways. + sense = re.split(r'[,,]', sense)[0].strip(' 。.、') + if sense: + senses.append(sense) + return list(dict.fromkeys(senses))[:3] + + +def main(): + pool = load_pool() + bank, seen, skipped = {}, 0, 0 + for path in sorted(glob.glob('src/*.xlsx')): + source = os.path.basename(path) + wb = openpyxl.load_workbook(path, read_only=True) + for row in wb.worksheets[0].iter_rows(min_row=2, values_only=True): + if not row or not row[0]: + continue + seen += 1 + word = str(row[0]).strip() + key = word.lower() + hit = pool.get(key) + if hit is None: + skipped += 1 + continue + senses = clean_gloss(row[3] if len(row) > 3 else '', hit['pos']) + if not senses: + skipped += 1 + continue + uk = str(row[1] or '').strip() + us = str(row[2] or '').strip() + prev = bank.get(key) + # Keep the first hit, but let a later book fill in a missing IPA. + if prev: + if not prev['ipa'] and (us or uk): + prev['ipa'] = us or uk + continue + bank[key] = { + 'id': 'V-' + re.sub(r'[^a-z0-9]+', '-', key).strip('-'), + 'en': word, + # One sense is what a quiz option should say; the rest are kept + # for the word's detail line. + 'zh': senses[0], + 'more': ';'.join(senses[1:]), + 'ipa': us or uk, + 'level': hit['level'], 'source': source, + } + wb.close() + + out = [bank[k] for k in sorted(bank)] + json.dump(out, open('wordbank.json', 'w'), ensure_ascii=False, indent=1) + + from collections import Counter + by_level = Counter(w['level'] for w in out) + print(f'读入词条 {seen},未匹配/丢弃 {skipped}') + print(f'词库产出 {len(out)} ' + ' '.join(f'{k} {by_level[k]}' for k in ('A1', 'A2', 'B1'))) + for level in ('A1', 'A2', 'B1'): + total = len({f for f, v in pool.items() if v['level'] == level}) + print(f' {level} 词池覆盖 {by_level[level]}/{total} = {by_level[level]/total:.0%}') + print(f' 无音标 {sum(1 for w in out if not w["ipa"])}') + print('\n样例:') + for w in out[:8]: + print(f' {w["en"]:12} {w["ipa"]:18} {w["zh"]:10} [{w["level"]}] {w["more"]}') + + +main() diff --git a/kouyu_english/tool/words/enrich_wordbank.py b/kouyu_english/tool/words/enrich_wordbank.py new file mode 100644 index 0000000..9000a77 --- /dev/null +++ b/kouyu_english/tool/words/enrich_wordbank.py @@ -0,0 +1,171 @@ +"""Rewrites the Chinese gloss of every bank word and gives it an example +sentence, using the AI service configured in assets/config/ai_config.json. + +The downloaded word books are a dictionary dump: some entries carry only a rare +sense (`ticket` as a verb and nothing else), some are unusable as a quiz answer. +Cleaning rules cannot invent the missing sense, so the model rewrites the gloss +outright, with the book's version passed only as a hint it may overrule. + +Results are cached one JSON object per line, so an interrupted run resumes +instead of paying for the same words twice. +""" + +import json +import os +import subprocess +import sys +import tempfile +from concurrent.futures import ThreadPoolExecutor + +ROOT = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +BANK = os.path.join(ROOT, 'assets/words/wordbank.json') +CONFIG = os.path.join(ROOT, 'assets/config/ai_config.json') + +# A word the model reasons about at length can truncate its whole batch; set +# ENRICH_BATCH smaller to pick those stragglers up on a second run. +BATCH = int(os.environ.get('ENRICH_BATCH', '12')) +WORKERS = 8 +RETRIES = 3 + +SYSTEM = """你在为一个中国成年人用的英语学习 App 整理词库。对每个词输出: + +- zh:最常用的那一个中文释义。2 到 6 个字,不要词性标注,不要括号,不要罗列同义词。 +- more:其他常用义,最多 2 个,用「;」分隔;没有别的常用义就给空字符串。 +- ex:一个英文例句。日常口语场景,6 到 12 个词,必须用到 zh 所指的那个义项, + 句中其他词不要超过这个词的 CEFR 等级。 +- ex_zh:例句的中文翻译,说人话,不要翻译腔。 + +输入里的「参考」来自一份质量不稳定的词书:有的只收了罕见义,有的缺了最常用的义项。 +不要盲从,以你自己对这个词最常用义的判断为准。 + +只输出 JSON 数组,每个元素形如 +{"id":"...","zh":"...","more":"...","ex":"...","ex_zh":"..."} +不要输出任何别的文字,不要用 markdown 代码块。""" + + +def load_config(): + with open(CONFIG) as handle: + return json.load(handle) + + +def call(config, prompt): + """One chat completion, through curl: this machine's Python does not trust + the local certificate chain but curl does.""" + body = { + 'model': config['model'], + 'messages': [ + {'role': 'system', 'content': SYSTEM}, + {'role': 'user', 'content': prompt}, + ], + 'temperature': 0.3, + # The configured model reasons before it answers, and those tokens come + # out of the same budget -- a tight cap truncates the JSON mid-array. + 'max_tokens': 8000, + } + with tempfile.NamedTemporaryFile('w', suffix='.json', delete=False) as payload: + json.dump(body, payload, ensure_ascii=False) + path = payload.name + # The key goes through stdin, never argv, so it stays out of the process list. + conf = ( + 'url = "%s/v1/chat/completions"\n' + 'header = "Authorization: Bearer %s"\n' + 'header = "Content-Type: application/json"\n' + 'data-binary = "@%s"\n' + 'max-time = 300\n' + ) % (config['endpoint'].rstrip('/'), config['apiKey'], path) + try: + done = subprocess.run( + ['curl', '-sS', '--config', '-'], input=conf, capture_output=True, text=True + ) + finally: + os.unlink(path) + if done.returncode != 0: + raise RuntimeError(done.stderr[:200]) + answer = json.loads(done.stdout) + if 'choices' not in answer: + raise RuntimeError(done.stdout[:200]) + choice = answer['choices'][0] + if choice.get('finish_reason') == 'length': + raise RuntimeError('truncated at max_tokens') + return choice['message']['content'], answer.get('usage', {}) + + +def parse(text): + """The model is told to return bare JSON; strip a code fence when it adds one.""" + text = text.strip() + if text.startswith('```'): + text = text.split('\n', 1)[1].rsplit('```', 1)[0] + start, end = text.find('['), text.rfind(']') + if start < 0 or end < 0: + raise ValueError(text[:200]) + return json.loads(text[start : end + 1]) + + +def ask(config, batch): + lines = [ + '%s | %s | %s | 参考:%s' + % (word['id'], word['en'], word['level'], ';'.join( + filter(None, [word.get('zh', ''), word.get('more', '')])) or '(无)') + for word in batch + ] + text, usage = call(config, '\n'.join(lines)) + wanted = {word['id'] for word in batch} + rows = [row for row in parse(text) if row.get('id') in wanted] + return rows, usage + + +def main(): + limit = int(sys.argv[1]) if len(sys.argv) > 1 else 0 + cache_path = os.environ.get('ENRICH_CACHE', os.path.join(tempfile.gettempdir(), 'enrich_cache.jsonl')) + done = {} + if os.path.exists(cache_path): + with open(cache_path) as handle: + for line in handle: + row = json.loads(line) + done[row['id']] = row + with open(BANK) as handle: + bank = json.load(handle) + todo = [word for word in bank['words'] if word['id'] not in done] + if limit: + todo = todo[:limit] + print('cached %d, to do %d' % (len(done), len(todo)), flush=True) + + config = load_config() + batches = [todo[i : i + BATCH] for i in range(0, len(todo), BATCH)] + spent = {'in': 0, 'out': 0, 'fail': 0} + with open(cache_path, 'a') as cache: + with ThreadPoolExecutor(max_workers=WORKERS) as pool: + for index, result in enumerate(pool.map(lambda b: safe(config, b), batches)): + rows, usage, error = result + if error: + spent['fail'] += 1 + print(' batch %d failed: %s' % (index, error), flush=True) + continue + for row in rows: + cache.write(json.dumps(row, ensure_ascii=False) + '\n') + cache.flush() + spent['in'] += usage.get('prompt_tokens', 0) + spent['out'] += usage.get('completion_tokens', 0) + if index % 10 == 0: + print(' %d/%d batches' % (index + 1, len(batches)), flush=True) + print('tokens in %d out %d, failed batches %d' % (spent['in'], spent['out'], spent['fail'])) + print('cache: %s' % cache_path) + + +def safe(config, batch): + """Retries a batch a few times; a truncated or malformed answer is common + enough that giving up on the first one would leave holes everywhere.""" + last = 'no attempt' + for attempt in range(RETRIES): + try: + rows, usage = ask(config, batch) + if rows: + return rows, usage, None + last = 'empty result' + except Exception as error: + last = '%s: %s' % (type(error).__name__, error) + return [], {}, last + + +if __name__ == '__main__': + main() diff --git a/kouyu_english/tool/words/fetch.sh b/kouyu_english/tool/words/fetch.sh new file mode 100644 index 0000000..a798cfe --- /dev/null +++ b/kouyu_english/tool/words/fetch.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# Downloads the beginner-level word books. The repo is CC BY-NC-SA 4.0 and its +# own README calls the contents "compiled from public sources, personal use +# only" -- see the note in DATA-NOTE.md before shipping any of this. +set -u +BASE="https://github.com/lilinji/English/raw/main" +enc() { python3 -c "import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1]))" "$1"; } +get() { + local path="$1" out="src/$2" + [ -s "$out" ] && { echo " 已有 $2"; return; } + curl -sL -o "$out" "$BASE/$(enc "$path")" + if [ -s "$out" ] && head -c2 "$out" | grep -q PK; then echo " 取得 $2 ($(wc -c <"$out") 字节)" + else echo " 失败 $2"; rm -f "$out"; fi +} +echo "剑桥 KET/PET:" +get "9.其他(更多)/14天攻克KET核心词汇.xlsx" ket-core.xlsx +get "9.其他(更多)/KET核心词 巧记速练.xlsx" ket-drill.xlsx +get "9.其他(更多)/21天攻克PET核心词汇.xlsx" pet-core.xlsx +get "9.其他(更多)/PET核心词 巧记速练.xlsx" pet-drill.xlsx +get "9.其他(更多)/突破英文基础词汇.xlsx" basic.xlsx +echo "人教版小学:" +for g in 一 二 三 四 五 六; do + for t in 上 下; do + get "1.全国各大教材版本中小学同步/人教版/人教版一年级起点${g}年级${t}.xlsx" "rj-p1-${g}${t}.xlsx" + done +done +echo "人教版初中(七年级):" +get "1.全国各大教材版本中小学同步/人教版/人教版初中英语七年级上册.xlsx" rj-m7a.xlsx +get "1.全国各大教材版本中小学同步/人教版/人教版初中英语七年级下册.xlsx" rj-m7b.xlsx + +# Word frequency, for the order new words are handed out in. These are +# OpenSubtitles counts, i.e. spoken language: a web corpus ranks `ankle` and +# `asleep` far below where a learner of spoken English needs them. +# hermitdave/FrequencyWords is MIT, a cleaner licence than the word books above. +echo "词频表:" +if [ -s src/en_50k.txt ]; then + echo " 已有 en_50k.txt" +else + curl -sL -o src/en_50k.txt \ + "https://raw.githubusercontent.com/hermitdave/FrequencyWords/master/content/2018/en/en_50k.txt" + echo " 取得 en_50k.txt ($(wc -l