GPT 分词器(cl100k_base 真 BPE)
网络所有处理都在浏览器本地完成,数据不上传服务器
这个工具做的是真正的 BPE 分词,不是「按 4 个字符估一个 token」那种估算器。后者在英文散文上碰巧八九不离十,而在中文(一个字常常是 1–2 个 token)、代码(缩进与标点怎么切完全由 BPE 决定)、以及计费与上下文预算(差的那些 token 就是钱)这三种场合全都错。 它按 cl100k_base 的官方规则工作:先用 tiktoken 的分段正则把文本切成片段,再对每一段做「每次取 rank 最小的相邻对合并」,最后把 rank 映射回 token id。所以结果与 OpenAI 官方一致 —— `"hello world"` 得到 `[15339, 1917]`,`"你好"` 得到 `[57668, 53901]`。 词表(约 1 MB)只在这一页按需加载,解压走浏览器自带的 `DecompressionStream`,不引入任何第三方库、也不联网。全部在浏览器本地完成,你粘进来的文本不离开这个页面。
功能
- 真 BPE:按 cl100k_base 官方正则切分 + 最小 rank 相邻对合并
- 逐行给出每个 token 的 id 与文本
- 一个汉字被切成两个 token 时,半个 UTF-8 序列会显示成十六进制而不是乱码
- 给出 token 数、字符数与 UTF-8 字节数
- 算出「字节 / token」比值,便于估算计费与上下文占用
- 中文、英文、代码一视同仁,按官方规则切分
- 词表只在本页按需加载,不拖慢其它页面
使用方法
- 粘入要分词的文本
- 结果立即给出 token 数、字符数与字节数
- 下方逐行列出每个 token 的 id 与文本
- 需要可关掉逐行列表或字节数显示
常见问题
- 这是真正的分词,还是估算?
- 是真分词。它加载 cl100k_base 的完整 BPE 词表(约 1 MB),按 tiktoken 的官方法则切分与合并,结果与 OpenAI 官方逐 token 一致。你可以拿 `"hello world"` → `[15339, 1917]`、`"你好"` → `[57668, 53901]` 自己核对。
- 为什么“你好世界”是 5 个 token 而不是 2 个?
- 因为 cl100k_base 里只有「你」「好」这样的单字 token,「世界」不是一个 token,会被切成 `3574 244 98220`(其中 `3574` 是「世」的前两个字节,所以显示成十六进制)。`[57668, 53901]` 是「你好」的结果 —— 这两个例子极易记混。
- 支持 GPT-4o 的词表(o200k_base)吗?
- 目前只提供 cl100k_base(GPT-3.5 / GPT-4 用的那一套)。不提供就不谎称提供 —— 换一张词表要再附带约 1 MB 数据,等有需要再加。
- 会联网吗?
- 不会。词表随页面一起加载,解压在浏览器里完成,输入的文本只用于本机计算,不发送到任何地方。
相关工具
字数统计
文本中英混排的文本到底有多长?中文按字、英文按词分开统计,给出字符数、行数、字节数、阅读与朗读时长,以及会被切成几条短信。全部在本机完成。
出现次数统计
文本统计字符、词、行或指定字符串各出现多少次,按次数排序并给出占比,空格与换行会标出符号。
文本体检
文本找出文本里看不见的零宽字符、BOM、同形异码字符,并报出规范化形式、行尾类型与四种字数统计。全部在浏览器本地完成。
URL 解析
网络在线 URL 解析:拆出协议、主机、端口、路径、查询参数与锚点,参数逐个解码并与原始值对照,缺协议自动补 https://。全部在浏览器本地完成。
UA 解析
网络在线 User-Agent 解析:识别浏览器、版本、操作系统、设备类型与渲染引擎,并列出命中的匹配规则。结果基于模式匹配,仅供参考。全部在浏览器本地完成。
HTTP 状态码
网络HTTP 状态码查询与速查:输入编号查含义、1xx 到 5xx 分类、常见场景与排查提示,也能用关键词反查编号。全部在浏览器本地完成。