让 AI 数一句话里有几个字、一段文字里某个词出现几次,它经常数错,甚至同一问题问两遍答案还不一样。这并非 AI 不认真——它的眼睛与你的不一样:模型看到的文字已经被切成了 token,数数靠概率预测而非逐一点数。理解这个机制,就知道哪些数数任务要换工具,哪些换个问法就能救回来。
模型眼里的字和你的不一样
人读文字以字符为单位,模型读文字以 token 为单位:连续的字符先被切分成 token,再进入模型。一个汉字可能是一个 token,也可能与相邻字合并成一个 token;英文单词常被切成词根碎片。模型从未见过「字符流」,它见到的是 token 序列,所以当任务要求按字符计数时,模型实际在按 token 推算字符数,误差从切分那一刻就埋下了。这不是某个模型的缺陷,而是当前语言模型的共同工作方式。
token 切分怎么干扰计数
干扰有两条路径。一是粒度错位:数英文字母时,字母被打包进 token,模型需要反推每个 token 内部的字母构成,这步推理容易出错;二是切分不稳定:同一段文字在不同上下文里切分结果可能不同,导致两次提问的「原料」就不完全一样,答案自然出现波动。数生僻字、混合中英文的文本时,切分更复杂,出错概率也更高。知道误差来源后就能理解:重复问同样的数数问题,等于掷骰子,问一百次也得不到确定性。
列表点数错在哪一步
让 AI 数一个列表有多少项、统计出现次数,错误多发生在长列表与重复项上。逐项点数需要模型在生成时保持准确的书签,列表一长,中间项被跳过或重复计入的情况就增多。对策是把任务拆小:五十项的列表让它分五段各数一次再汇总,或者转成表格让它逐行确认。篇幅越长,越要主动分段,把误差拦截在局部。分段还有个好处:哪一段数错了立刻能发现,不用整份返工。
让数数变准的三种问法
第一种,显式编号:先把文本按行编号再让 AI 统计,编号给了它清晰的书签。第二种,要求先摘录再计数:让它先把目标词出现的每个位置抄出来,再数摘录的条数,抄录环节的错误肉眼可见,比直接报一个总数可靠。第三种,让 AI 写一小段代码来数,代码执行的计数与语言模型的概率推测是两条路径,前者准得多。三种问法可以叠加使用,先摘录再编号,可靠性再上一层。
什么任务该交给代码
凡是精确计数、排序、去重、格式校验这类有确定答案的机械任务,代码都是更可靠的执行者。多数支持代码执行的 AI 服务可以直接运行统计脚本,让 AI 生成脚本并执行,几行代码解决长文统计。人的价值在于描述清楚统计规则:按字符还是按词、是否区分大小写、包含哪些标点,规则给准了,结果才可信。规则描述本身就是一次需求梳理,很多统计纠纷的根子在规则没说清。
让 AI 数一段话里有几个「的」,为什么每次答案还不一样?
- 是模型坏了吗,换个模型能解决吗?:与模型是否损坏无关,是 token 化与概率生成的机制特点,不同模型只会程度不同,换模型并不能根治。
- 上下文很长的文档,还能让 AI 数吗?:能,但要分段统计加汇总,并把已统计段落标记清楚;对精确性要求高时直接用代码或文本工具,不要硬靠对话。
- AI 自己说它数对了,可信吗?:它的自信程度不反映准确率,重要场合必须抽样复核或改用代码执行,口头确认不构成验证。


