目标实验目标
把 BPE 的四步写成代码:拆到字符 → 数相邻词对 → 合并最常见的一对 → 重复到词表攒够。改黄色数字控制合并轮数。
重点把合并轮数从 2 改到 5,看「苹果」「水果」这些高频词是不是整个变成了一个 token。
代码可编辑源码
虚线处可直接点击修改。
bpe.js — 点击黄色数字可编辑
结果分词结果
运行后显示…
合并轮数 = -
词表大小 = -
token 总数 = -
最新合并 = -
日志执行日志
点击「运行代码」开始执行…
挑战实验课挑战
挑战 1 · 第三轮合并谁
把轮数设成 3 和 4 分别运行,看最新合并的词对,和你的预测一致吗?
把轮数设成 3 和 4 分别运行,看最新合并的词对,和你的预测一致吗?
挑战 2 · 加一句语料
在 corpus 里加一句「香蕉和苹果都好吃。」,第一轮会合并哪一对?
在 corpus 里加一句「香蕉和苹果都好吃。」,第一轮会合并哪一对?
挑战 3 · 词表爆炸的反面
如果每轮都不合并(轮数=0),token 总数是多少?词表会变成什么规模?
如果每轮都不合并(轮数=0),token 总数是多少?词表会变成什么规模?
挑战 4 · 为什么要 BPE
用代码里的逻辑,解释为什么 BPE 能做到「既不会遇到 [UNK],序列又不会太长」。
用代码里的逻辑,解释为什么 BPE 能做到「既不会遇到 [UNK],序列又不会太长」。