把每个词都换掉,故事的骨架还在招供
靠词表抓 AI 文的军备竞赛已经输了:旗舰模型的单发输出能干干净净通过 slop 扫描,「洗稿」工具专治词汇层。马里兰大学与 Google DeepMind 的 StoryScope 论文(arXiv:2604.03136)找到了更硬的东西:只靠叙事结构特征就能 93.2% 区分人写与 AI 写,专业级改写只让检测掉 1.6 个百分点。我们把其中词法可见的特征做成浏览器工具,在自家 78 段已知答案的语料上验证,英文五条分离轴方向与论文全部一致(情绪直接命名 d=1.46 领衔),中文轨还挖出一个论文级发现:两种 AI 的指纹方向相反。附:我们把全场最强的 d=1.71 信号砍掉的原因。

先交代立场:我们自己维护着一份 95 条的英文 slop 词表、一套中文 AI 味规则,所以下面这句是在报自家的败绩: 词表这条军备竞赛,已经输了。今年 7 月的校准里,旗舰模型的单发输出平均只踩 0.22 个词表命中,最强的两家全程零命中; 另一边,「洗稿」「humanizer」已经是一个产业,专门把词表还抓得到的那点词汇洗掉。中文这边的判决站 (朱雀、GPTZero 们)给你一个「87% AI」的百分比,可它们量的仍然主要是文笔层和概率层的东西,是能被换词、改写、 润色冲淡的层。真正值得问的问题变成了:什么东西洗不掉?
论文:句子全部重写,指纹留在原地
StoryScope(arXiv:2604.03136,Russell、Rajendhran、Pham、 Iyyer、Wieting,马里兰大学与 Google DeepMind,代码开源) 把这个问题做到了规模上:61,608 篇故事,每篇标注 304 个叙事特征。注意不是词汇特征,是故事特征: 主题是被说破了还是留给读者;情绪是被命名(「她感到害怕」)还是被演出来(动作、身体、对话); 时间线有没有回头看的时刻;主角的选择被允许保持多少暧昧。
论文有两个结果撑住全篇。其一,只靠叙事特征就能以 93.2% 的宏 F1 分开人写与 AI 写:不看困惑度,不看词频, 只看故事形状。其二,他们用风格级改写攻击自己的分类器,检测率从 95.5% 只掉到 93.9%。改写重排了每一个句子, 但情节骨架、情绪表达方式、时间线纪律原封不动。结构洗不掉。这篇论文在 r/WritingWithAI 炸开的原因也在这: 对每个靠润色遮 AI 味的作者,它都是坏消息。马脚藏在故事形状里,编辑的红笔够不着。
我们能诚实借来的部分
我们想把它做成工具,而诚实的版本得先说清什么借不来。论文的管线是大模型标注,约 1,600 美元的标注账单; 它最强的几个特征(支线是否收回主干、结局的道德模糊度)需要真的读懂整篇故事,浏览器跑不了这种活。 浏览器能跑的是会在词汇层留影子的那部分构念:情绪命名有词表,回溯有标记(「多年以前」「她想起」), 叙述认知有动词(「他知道」「她意识到」),嗅觉意象有词场。我们把这些写成毫秒级文本规则, 跑在 78 段已知答案的语料上:英文 24 段人类(十二本 1898–1926 年公版小说各取两窗)对 24 段自家 AI 产线书, 中文 12 段真人网文对 9 段产线书加 9 段原始模型续写。只保留真分得开的轴。一章 4,000 词扫描不到 30 毫秒, 全程本地,不上传。
| 轴 | 数什么 | 人类 | AI | Cohen's d | AUC |
|---|---|---|---|---|---|
| 情绪直接命名 | 「她感到害怕」每千叙述词 | 0.63 | 0.06 | 1.46 | 0.88 |
| 命名−演出天平 | 命名的情绪减去身体演出的情绪 | +0.49 | −0.12 | 1.21 | 0.83 |
| 叙述认知 | 「他知道 / 她意识到」每千词 | 4.72 | 3.11 | 0.79 | 0.73 |
| 回溯标记 | 「多年以前」「她想起」每千词 | 0.71 | 0.29 | 0.79 | 0.70 |
| 嗅觉意象 | 气味词每千词(AI 更高) | 0.09 | 0.24 | −0.65 | 0.34 |
值得盯住的是第一行:人类命名情绪的频率是我们 AI 语料的十一倍上下,d=1.46,全组保留下来的最强分离。 更要紧的是五行的方向与论文 Table 15 全部一致:人类更爱直说感受、更爱回头看、更爱叙述人物在想什么, AI 则出奇地爱写气味(论文数据:82% 的 AI 故事写到嗅觉,人类只有 57%)。方向一致就是这次验证的全部含金量: 我们不是留下了碰巧能切开自家语料的规则,是留下了「在 61,608 篇上量过的构念,其词法影子在我们语料上按同一个方向分开」的规则。

中文轨的独家发现:AI 不是一个点,是一片
中文验证语料里有两种 AI:按反 AI 味纪律写成的产线书,和九个模型的原始续写拼接。三条轴上它们与人类的分离方向一致 (情绪命名 d=0.89 与 0.59、命名−演出天平 0.79 与 0.91、嗅觉都偏高),这三条进了中文的分离轴。 但在对话和节奏类的轴上,两组 AI 的方向直接打架:纪律书对话多、节奏猛(对话占比 d=−0.88), 原始续写对话少、节奏平(同一条轴 d=+1.37)。同一条尺子,两种 AI 站在人类的两侧。
这恰好是论文「指纹」一章的论点在中文语料上的复现:不同来源、不同管线的 AI 各有各的指纹,「AI」从来不是坐标系上的一个点。 产品上我们照实处理,这几条轴在中文轨画三条带(人类、纪律书、原始续写),明文写着「两组 AI 方向相反,本轴不下方向结论」。 一个检测工具最不该做的事,就是把它自己都没分清的东西说得斩钉截铁。
两个没料到的结果
第一个是整次验证里最有意思的东西。我们的英文 AI 语料不是裸模型输出,是按严格反 AI 味纪律写成的产线书: 禁套话、强制 show-don't-tell,词表扫描全过。而在情绪命名这条轴上,它们低到什么程度?24 段里 19 段是字面意义的零。人类小说家原来是会痛痛快快每章写几次「她害怕了」的; 被 show-don't-tell 管着的模型一次都不写。把词汇层马脚洗干净的那套纪律,在下面一层刻出了一枚更干净的结构指纹。 这是 StoryScope 的论点从反方向撞进我们自己家:润色作用于词,而润色本身在结构层变得可测。
第二个是一份带教训的认罪书。我们最强的数字从来没上线:主角名字浓度这条规则分离度 d=1.71,比上表里任何一条都高。 它是假的。方向和论文构念相反,原因在语料不在写作:1900 年代的小说有「主角有名、配角无名」的时代惯例, 我们的产线书又有「群像全部具名」的写作纪律,两套房规相撞,伪装成了人类对 AI 的信号。砍掉。 自己攒检测器的人都该默认:你最大的那个数字先是语料伪影,直到别人家数据上量出来的构念和它对上为止。 量出分离度很容易,证明效度才花功夫。
为什么我们仍然不叫它检测器
24 段英文人类校准语料里,有 3 段落在最强轴的 AI 一侧:海明威《太阳照常升起》、Zane Grey 的西部小说、 亨利·詹姆斯《螺丝在拧紧》。冰山文体不命名任何感受,这就是那个文体。在这片领域里,任何回你一句「93% 是 AI」 的工具都是在选择自信地犯错,所以我们拒绝了这个行业惯例:只数带归属。贴进一章,汇总是「4 条人类带 · 1 条重叠 · 0 条 AI 带」 这样一行;数值落在两条参考带的重叠区里,它就说重叠。我们测过更爱下结论的裁决规则:错向读数从 78 段里 5 段涨到 11 段。 用更多的平局换回 6 个错误答案,这台透镜的取向就一句话:宁可不说话,不说错话。
另一份诚实关于参考语料本身。人类带建在 1898–1926 年的公版小说上,老小说命名情绪比当代小说更勤, 所以偏人类的读数要打折扣,这句注记就印在对应轴下面。AI 带建在纪律产线书上,是难例:裸模型输出大概率分得更开, 但我们只对自家书有全部权利。样本量印在卡片上。这些交代不会让工具变弱,只会让数字说到做到。
它也刻意只做第四面透镜。词表层(AI 味检测)、 文本肌理层(行文统计)、模型概率层(文本 X 光), 加上这一面叙事结构层,四面透镜各有各的瞎法:词表看不见小心的模型,困惑度看不见洗过的稿,结构看不见极简派人类。 四台会以不同方式出错、且错法互相提供信息的仪器,胜过一台自信说谎的神谕。
拿一章你熟的书试试
工具在 /zh/labs/narrative-fingerprint:贴一章(中文至少 1,000 字), 全程本地运行;也可以直接点两个内置样例。《红楼梦》第三十二回的节选读出「2 条人类带 · 1 条重叠 · 0 条 AI 带」, 我们自家 AI 产线书《大雪小馆》的中段是「0 条人类带 · 2 条重叠 · 1 条 AI 带」——中文的重叠更多, 因为中文语料更小,这本身就是小语料该有的诚实读数。每条轴都能展开到它数过的原句,论文面板把 Table 15 的原始数字列在旁边, 我们投影得了的构念打勾,投影不了的打叉。
把《太阳照常升起》贴进去,它会偏向 AI。这个读数是我们特意留在页面上的:把轴调到海明威能通过, 同一组参数就会放行每一章学着海明威写的 AI 文。
常见问题
这个工具就是 StoryScope 论文的方法吗?
不是,页面第一条问答就写着。论文的管线是用大模型逐篇标注 304 个叙事特征,61,608 篇故事标下来约 1,600 美元的标注成本,浏览器跑不了。我们做的是投影:挑出其中会在词汇层留下影子的构念(情绪命名、回溯标记、叙述认知、嗅觉意象),写成毫秒级的文本规则,再在自家 78 段已知答案的语料上验证方向与论文 Table 15 一致。它是论文的投影,不是复现。
能告诉我一章书是不是 AI 写的吗?
它拒绝回答这种问法。读数只数「每条轴落在哪条参考带里」(人类带、AI 带、还是重叠区),汇总成「4 条人类带 · 1 条重叠 · 0 条 AI 带」这样的一行字。不给百分比,不下判决。参考带来自英文 24+24 段、中文 12+9+9 段,样本量就印在卡片上。语料小,标签就诚实。
为什么海明威会被读成偏 AI?
因为最强的那条轴量的是「直接命名情绪」,而冰山文体什么情绪都不命名。24 段英文人类校准语料里恰好 3 段落在错误一侧:《太阳照常升起》、一本 Zane Grey 西部小说、《螺丝在拧紧》。极简派人类作者真的会占住 AI 带——这是轴的性质,页面选择把它说出来,而不是调参数把它调没。调到海明威能通过,也就同时放行了每一章学海明威的 AI 文。
「洗稿」或者润色能骗过结构检测吗?
对论文的完整管线基本不能:风格级改写只把检测率从 95.5% 挪到 93.9%,因为改写换的是句子,不是故事形状。但我们的词法投影比论文的大模型标注弱:刻意往 AI 文里撒几句「她感到害怕」能推动单条轴。所以工具画的是五条轴加参考轴,而且它只是四面透镜里的一面,不打算独自定案。