为什么要拆 Word 与 Entry?
同一拼写同时作为名词和动词出现,源码中有两个 entry-body__el 与两个发音头部。若只保留一个 word 记录,会丢失词性边界。
以 English–Chinese (Simplified) / sense 页面源码为样本,将可观察的 HTML 数据锚点还原为一个可落地的词典领域模型。
dictionary.cambridge.org/dictionary/english-chinese-simplified/sense?q=Sense分析口径:页面结构,不声称官方内部实现页面不是“一个单词一行”的平面数据,而是 词头(headword)→ 词性条目(entry)→ 义项(sense)→ 翻译、例句、短语、发音 的聚合结果。最可靠的主键线索是义项上的 data-wl-senseid,例如 ID_00028824_01。
实线边界表示页面中直接出现的层级;橙色节点是建议的持久化实体,名称是对源码语义的归一化。
sense、规范拼写、URL slug、语言方向sense_idsense of fun;有独立义项和短语标签同一拼写同时作为名词和动词出现,源码中有两个 entry-body__el 与两个发音头部。若只保留一个 word 记录,会丢失词性边界。
一个词性下有多个 def-block,每块都有独立的 data-wl-senseid、定义、译文和例句集合;这正是学习收藏、词义统计和内容更新的稳定粒度。
源码把同一义项的中文译词拆成多个 .dtrans,中间用分号或顿号表达顺序。建模为多行才能保留检索和展示语义。
| 证据锚点 | 页面表现 | 字段/实体含义 | 判断 |
|---|---|---|---|
entry-body__el | 出现 2 次;头部词性分别为 noun、verb | entry.part_of_speech,归属于同一 word | 事实 |
data-wl-senseid | ID_00028824_01 到 _12 | sense.sense_id;适合作为外部内容锚点 | 事实 |
def-info / epp-xref | B1、B2、C2 等等级标签 | sense.level,建议字典表约束 | 事实 |
gram dgram / gc dgc | C、U、T、+ (that)、+ question word | grammar_code 或 grammar_feature 多值关系 | 事实 |
dtrans + lang=zh-Hans | 义项译文、例句译文均有独立节点 | translation 可区分 meaning/example 两种用途 | 事实 |
examp dexamp / eg deg | 英文例句;部分带中文对应句和语法框架 | example.text_en/text_zh,按 sense 关联 | 事实 |
phrase-block / phrase-title | sense of fun、in a sense 等 | phrase 是 entry 下的复合词组容器 | 事实 |
dpron-i / ipa / audio source | UK/US、IPA /sens/、MP3 与 OGG | pronunciation + audio_asset | 事实 |
| 页面的重复嵌套边界 | 译文、例句、短语都嵌套在某个 def-block 或 entry 下 | 外键应落在 sense_id / entry_id,而不是通过文本匹配 | 推断 |
| URL 与词头组合 | /english-chinese-simplified/sense | 建议 word.slug 唯一,但保留来源和版本字段 | 推断 |
跨词链接 .query | 定义和例句中的词链接回词典 URL | 可增加 lexical_link,不要把链接文本硬编码为正文 | 推断 |
当前值为 sense。用于搜索和去重;不要把大小写查询词 Sense 当作另一词头。
页面直接给出 noun / verb。建议受控字典,避免自由文本漂移。
源码里的 ID_00028824_01。可作为导入幂等键,但仍需内部数值主键。
定义含可点击词条、粗体语法提示和 gloss。建议存规范文本及安全渲染片段。
一个 sense 可拆出多个目标词;保留顺序、语言 zh-Hans 与用途。
中文例句并非每个英文例句都有,必须允许空值并保留展示顺序。
发音属于 entry 而非单个 sense;当前两种地区都为 /sens/。
MP3、OGG 是同一发音资产的不同编码;不建议把扩展名解析逻辑放在业务层。
页面未显式暴露版本号,但生产系统应加入,用于缓存失效、重抓和差异同步。
HTML 只能证明渲染契约和数据粒度,不能证明 Cambridge 后台使用 SQL、文档库还是搜索索引。上面的实体/外键是兼容页面结构的推荐模型。
当前页面把它用于“加入词汇表”,因此至少在该功能作用域内需要稳定。跨版本永久性仍应通过抓取多日期页面或接口响应验证。
页面定义含链接和强调标记。建议同时保存 clean_text、受控 rich_text,以及从链接中抽出的 lexical_link,避免把原始 HTML 直接当可信模板。
把 dictionary edition(如 english-chinese-simplified)作为 edition/locale 维度;translation、example_translation 和 UI 文案都挂到语言代码,不要为每种语言复制整套表。