中文 | English
一个基于 283 万字语料统计的去 AI 味 skill
这个 skill 希望用语言学的研究方式,来量化"什么是 AI 味",并致力于去除 AI 写作的"AI 味"。该 skill 在 moxt.ai 制作。
研究以 629 篇文章(2,826,972 汉字,95,551 句,45,721 段)构建对照语料,其中 300 篇由五个主流模型在受控条件下生成,329 篇为人类作者的写作文本。检验了 26 项在公共讨论中被广泛认作"AI 文风"的候选特征,逐项计算生成侧与人类侧的频率比。
结果显示,11 项特征通过检验,有明显的区分度,其中区分力最强者为段首零回指评论(4.4 倍)。另有 15 项不具备区分力,部分项的方向与流行认知相反:人类使用比喻的频率为生成文本的 2.4 倍,正文设问句为 17 倍,句内同构排比亦高于生成文本。
研究同时发现,不同大模型的"AI 味"表现不同。例如破折号,DeepSeek 每千字 5.16 次、Claude 4.25 次,而 GPT 只有 0.11 次,极差达四十倍;提示性冒号最重的是 DeepSeek 与 Claude,问句小标题最重的是 Gemini。所谓"AI 文风"并非单一形态。
文末报告了六次因算子设计缺陷导致的测量失误及其修正过程,并讨论了单一模型样本、分母选择与语料不可核验三项方法局限。
关键词 生成文本识别;中文句法;语料库语言学;篇章衔接;对照研究
大语言模型生成的中文文本存在某种可感知的风格特征,公共讨论中称之为"AI 味"。这一判断在写作者社群中具有高度共识,但支撑它的证据基本停留在个案观察层面。
流通中的判别清单大致包含以下条目:破折号使用过密;对举结构("不是 A 而是 B")反复出现;句长分布过于均匀;单字虚词(就、很、了)偏少;以具体物象包装抽象概念("记忆的仓库");设问后立即自答。这些条目通过社交媒体反复传播,逐步取得了近似常识的地位。
问题在于,它们从未被系统检验。清单中的条目来源各异,有的出自对早期模型输出的观察,有的来自英文语境的研究结论直接移植,有的仅是个别写作者的印象。其中哪些具有统计意义上的区分力,哪些是观察者偏差的产物,哪些方向甚至是相反的,缺乏可对照的证据。
本研究的目标不是提出新的判别清单,而是对既有清单逐项检验,并给出可复算的判定程序。
采用对照设计。以文本来源(模型生成 / 人类写作)为自变量,以各候选句法特征的出现频率为因变量。
有效对照要求控制三类混淆因素。
主题与文体。 生成侧的话题范围与文体设定与人类侧对齐。若两侧写作对象不属同类,观测到的差异无法归因于文本来源,可能仅反映文体差异。
模型个体差异。 生成侧采用五个模型各 60 篇,而非单一模型。研究初期曾以两个模型的 30 篇样本进行测算,所得结论后续大部分未能重复。以破折号为例,初期数据支持"该特征为 Claude 独有",扩充至五个模型后发现另一模型的频率更高。单一模型的个体倾向易被误读为生成文本的共性。
生成条件。 生成侧不联网检索,不施加任何写作风格指令,仅提供话题。附加风格约束将掩盖模型的默认倾向。
| 侧 | 篇 | 汉字 | 句 | 段 |
|---|---|---|---|---|
| 生成 | 300 | 1,179,105 | 37,642 | 14,549 |
| 人类 | 329 | 1,647,867 | 57,909 | 31,172 |
| 合计 | 629 | 2,826,972 | 95,551 | 45,721 |
生成侧模型为 claude-opus-4-6、deepseek-v4-pro、gemini-3.1-pro、gpt-5.6-sol、kimi-k3,覆盖 38 个话题。
人类侧为公开发表文本,按来源分组独立统计。分组统计的作用在于检验组间一致性:若某特征仅在个别组偏高,则更可能反映作者个人风格或文体惯例,而非人类写作的共性。本研究中,单字虚词与破折号两项即由此被识别为不可靠指标。
分句。 先按行切分,剔除标题行、表格行、代码块、引用块与列表项,再以 。!?; 为界断句,保留长度不小于 4 字的片段。
剔除非正文行是必要步骤。研究初期未作此处理,仅以 。!? 断句,导致 Markdown 表格与无句末标点的长列表被计为单句。受此影响,某一组的句长标准差被计算为均值的 27 倍,并据此得出"生成文本的句长均匀度为人类的 51 倍"这一结论。修正切分程序后重新测算,该比值为 0.87,即不存在差异。
分段。 以空行为界切分,剔除标题、表格、代码块、引用、列表项与图片行,保留长度不小于 8 字的段落。
依据被测特征所依附的语言单位选择分母。
| 分母 | 适用特征 | 示例 |
|---|---|---|
| 每千汉字 | 词汇层、标点层 | 破折号、顿号、对举结构 |
| 每百段 | 段落层结构 | 相邻句同构、比喻起段 |
| 同类元素占比 | 依附于特定结构者 | 问句小标题占全部小标题之比 |
分母选择不当可导致方向性错误。生成侧平均每篇含小标题约 10 个,人类侧为 1 至 2 个。以每千汉字为分母时,问句小标题的比值为 32 倍;改以小标题总数为分母后,生成侧 2.7%,人类侧最高组 3.6%,差异消失。前一分母实际测量的是"生成文本小标题数量更多",后者才是"生成文本倾向以问句充当小标题"。
段首类特征的分母为非首段总数,因首段不存在可回指的上文。
以频率比 R = 生成侧频率 ÷ 人类侧频率作为主要判据。
| R | 判定 |
|---|---|
| ≥ 2.0 | 纳入 |
| 1.25 ≤ R < 2.0 | 条件纳入,需组间一致且绝对量充足 |
| 0.8 ≤ R < 1.25 | 无区分力,排除 |
| < 0.8 | 人类侧更高,反向亦不可作为删改依据 |
另设三项附加条件。
组间一致性。 人类侧各组数值极差不超过 5 倍。破折号一项组间极差达百倍(最低 0.01,最高 1.29),故虽 R = 3.0 仍附加限定说明。
算子可定位性。 特征须能落实到具体句段与词形。诸如"比喻是否贴切""并列案例是否属堆砌"等依赖语义理解的判断,无法转写为可执行算子,一律排除,不因主观上"接近 AI 文风"而破例。
改写可操作性。 特征成立不等于可用于改写。材料密度一项人类侧为生成侧的 2.8 倍,方向明确,但据此"补充数据"将违反信息守恒约束,故仅保留其可执行部分,即原文已含具体数据时不得以概括表述覆盖。单字虚词同理,生成侧确实偏低,但"补充虚词"无法验收,整项弃用。
各特征以正则表达式实现,定义置于脚本首部,可直接修改与复核。
此环节为本研究方法链中最薄弱者。正则匹配字面形态而不解析语义,算子过宽将纳入大量不属于该特征的实例。本研究因此产生六次测量失误,详见第 5 节。由此确立的操作规程为:任何算子在采信其频率结果前,须先抽样检视 20 条命中实例。
R < 1.25,即不具区分力或方向相反者,共 15 项。
| 候选特征 | 测量结果 | R |
|---|---|---|
| 句长均匀度 | 变异系数 生成 0.58 / 人类 0.67 | 0.87 |
| 相邻句长差 | 生成 21.7 / 人类 21.7 | 1.00 |
| 段长均匀度 | 稳健离散度 生成 0.94 / 人类 1.00 | 0.94 |
| 单字虚词「就」 | 生成 2.93 / 人类 6.45 | 0.45 |
| 口语连接词 | 生成 1.01 / 人类 3.87 | 0.26 |
| 名词复现(少用代词) | 相邻句同名词起句 生成 0.02 / 人类 0.04 | 0.50 |
| 抽象被动式 | 生成 0.09 | 低于阈值 |
| 设问自答 | 生成 0.13 / 人类 0.13 | 1.03 |
| 问句小标题 | 占小标题比 生成 2.7% / 人类最高组 3.6% | 0.75 |
| 正文设问 | 生成 0.10 / 人类 1.83 | 0.05 |
| 句内同构排比 | 同字起首两项 生成 2.35 / 人类 3.87 | 0.61 |
| 比喻标记 | 生成 0.16 / 人类 0.38 | 0.42 |
| 抽象主语配具体谓语 | 生成 0.001 / 人类 0.001 | 0.70 |
| 动词名词化 | 生成 0.003 / 人类 0.005 | 0.52 |
| 正文序数词 | 句首「首先,」生成 0.06 / 人类 0.03 | 2.00,绝对量过低 |
三项结果与流行认知方向相反,值得单独说明。
比喻。 "生成文本倾向以比喻包装抽象概念"这一判断不成立。人类侧比喻标记频率为生成侧的 2.4 倍,以比喻独立起段者为 8 倍。差异不在是否使用比喻,而在喻体选择:生成侧偏好理想化的职业人格作喻体("像一位智慧的导师""一个永不疲倦的初级审查员",R = 7.3),人类侧多取具体个人("像一个老师傅""像一个人脉很广的医生朋友")。前者承担抒情功能,后者承担说明功能。
设问。 正文中的设问句,人类侧频率为生成侧的 17 倍。依"删除设问"这一流行建议改写,将使文本进一步偏离人类写作特征。
句长均匀度。 该项在本研究初期亦被认定成立,并曾报告 51 倍的比值。经查为切分程序缺陷所致(见 2.3)。修正后 R = 0.87。
| 编号 | 特征 | 测量结果 | R |
|---|---|---|---|
| 1 | 对举结构(不是 A 而是 B) | 生成 0.73 / 人类 0.22 | 3.4 |
| 2 | 顿号并列过密 | 生成 3.21 / 人类 1.78 | 1.8 |
| 3 | 相邻句结构同构 | 每百段 生成 9.41 / 人类 4.81 | 2.0 |
| 4 | 破折号 | 生成 2.38 / 人类 0.80 | 3.0 |
| 5 | 冒号滥用 | 提示语 生成 0.29 / 人类 0.08;空转句引列表 0.29 / 0.03 | 3.8 / 9.4 |
| 6 | 序数词充当小标题 | 生成 0.19 / 人类 0.06 | 3.1 |
| 7 | 拟人化喻体 | 生成 0.018 / 人类 0.002 | 7.3 |
| 8 | 概括表述覆盖已有数据 | 数字密度 生成 6.34 / 人类 17.92 | 0.35(反向) |
| 9 | 起首语(说白了) | 生成 0.025 / 人类 0.008 | 3.2 |
| 10 | 译文句式(5 种) | 见 3.4 | 2.6–5.3 |
| 11 | 段首零回指评论 | 占非首段 生成 0.61% / 人类 0.14% | 4.4 |
通过检验的特征集中于篇章与结构层面,而非词汇或标点层面。区分力最强的第 11 项即属篇章衔接问题:生成文本在新段落起首处直接给出评价("听起来像一条功能描述""值得注意的是"),未标示评价对象,读者须回溯上文方能确定所指。值得注意的是,段首衔接词的总体密度两侧无差异(生成 14.4%,人类 15.1%),差异仅在于评价句省略回指成分。补入一个指示代词即可恢复衔接。
| 特征 | Claude | DeepSeek | Gemini | GPT | Kimi |
|---|---|---|---|---|---|
| 破折号 | 4.25 | 5.16 | 0.51 | 0.11 | 2.32 |
| 提示性冒号 | 0.38 | 0.43 | 0.22 | 0.25 | 0.32 |
| 对举结构 | 0.61 | 0.86 | 0.29 | 1.26 | 0.51 |
| 序数词小标题 | 1.00 | 0.69 | 0.22 | 0.73 | 0.82 |
| 过长前置定语 | 0.64 | 0.65 | 0.48 | 0.06 | 0.22 |
| 问句小标题 | 0.043 | 0.086 | 0.173 | 0.008 | 0.000 |
同一特征在模型间的极差可达四十倍(破折号:DeepSeek 5.16,GPT 0.11)。这一结果有两重含义。其一,不存在统一的"AI 文风",模型个体差异不可忽略。其二,基于单一模型样本得出的特征描述不具普适性,本研究初期的多项误判即源于此。
GPT 破折号频率之低,曾被用于论证该特征已失效。但 Claude 一项为人类侧的五倍以上,而该模型在写作场景中使用广泛,故本研究仍予保留。
初始清单依"英文句法直接移植"设定 18 项,通过检验者 5 项。
| 纳入 | 生成侧频率 | 排除 | 生成侧频率 |
|---|---|---|---|
| 过长前置定语 | 0.42 | 抽象被动(被认为) | 0.09 |
| 「当…时」从句 | 0.26 | 在…的过程中 | 0.07 |
| 前置话题壳(对于…来说) | 0.22 | 不仅仅是 | 0.05 |
| 句首连接词(然而,) | 0.18 | 存在着 / 有着 | 0.04 |
| 「这意味着」复述句 | 0.15 | 进行了…的分析 | 0.03 |
| 使得…能够 | 0.03 | ||
| 扮演…角色 | 0.02 | ||
| 在某种程度上 | 0.02 | ||
| 值得注意的是 | 0.02 | ||
| 以一种…的方式 | 0.01 | ||
| 一系列的 | 0.00 |
排除项中有三项为本研究规则集初始版本所自带("以一种…的方式""使得…能够""扮演…角色"),实测频率均低于 0.03。这些结构确属译文句式,但不构成生成文本的区别性特征,现代汉语书面语已充分吸纳此类句法。
统计显著不等于可执行。本研究将 11 项通过检验的特征转写为改写规则时,附加了三重约束。
白名单原则。 仅处理清单内的 11 项。未命中任何规则的句子逐字保留,标题层级、段落次序、列表、表格与代码块位置不作变动。
信息守恒。 不得新增姓名、数字、日期、引语、来源、因果关系或原文未载的任何细节;同时不得删除原文的观点、结论与限定成分。将"可能提升"改为"提升"属于篡改判断强度,不属于风格清理。判定方法为,改写后每个实词须能在原文中指出出处。
语义判断的排除。 比喻是否贴切、设问是否解决了读者的真实疑问、并列案例是否属堆砌,此三类判断依赖语义理解,无法转写为可执行算子。将其写入规则只会诱导执行者依主观语感改写,故一律排除。
规则全文见 SKILL.md。
规则集以 Agent Skill 形式发布。推荐直接在 MoxtHub 打开 lieflat-less-ai-tone:Moxt 拥有强大的上下文空间和 AI 原生的文件格式,方便 agent 处理长文内容。
也可安装到本地:
npx skills add larashero3-dotcom/lieflat-less-ai-tone安装后提交文本即按规则集处理。亦可直接将 SKILL.md 作为 system prompt 使用,适配任何支持自定义指令的工具。
与写作风格蒸馏配合使用时不必单独安装本规则集,writing-dna-skill 已内置一份,装该仓库即随行。二者构成先后两道工序,前者负责风格逼近,本规则集负责清除生成痕迹。同目录存在蒸馏产物时优先读取 语言DNA.md;两者冲突时以蒸馏产物为准,因其记录的是目标作者的实际写法,不属生成痕迹。
本研究在算子设计环节共出现六次系统性失误,全部为算子覆盖范围宽于规则定义,且均在检视命中实例前即采信了频率结果。
| 初测结果 | 缺陷 | 修正后 |
|---|---|---|
| 过长前置定语 3.04 | 算子纳入普通句式 | 0.35 |
| 并列连词 0.26 | 规则定义为"单句内两次以上",算子测单次出现 | 0.00 |
| 「的…的…的」嵌套 0.25 | 算子跨顿号匹配,将正常并列计为嵌套定语 | 0.06 |
| 提示性冒号 无差异 | 6431 条命中中,标题 1266、列表 1225、对话 207,均属规则明示豁免者 | R = 3.8 |
| 问句小标题 32 倍 | 分母为字数,未计生成侧小标题数量本身为人类侧的 5–10 倍 | 无差异 |
| 比喻包装 0.000 | 算子为 11 个词项的固定表,实际比喻表达均不在表内 | R = 0.42(人类更高) |
公开这一记录有两点考虑。其一,六项中有四项若未修正将直接进入规则集,其中两项方向相反,据以改写将使文本更偏离人类写作特征。其二,此类失误具有共同结构:算子与规则名称之间存在覆盖范围落差,而频率数字本身不提示这一落差。相应的操作规程已列入 2.6。
人类侧语料规模有限。 组间差异已相当可观(破折号极差百倍,虚词密度差三倍),扩充语料可能改变部分结论。
部分特征缺少人类侧对照。 译文句式的筛选(3.4)仅依据生成侧绝对频率与阈值,未计算比值。某结构在生成侧频率高,不排除人类侧同样高频。
语义层特征无法测量。 篇章与修辞层面的判断(设问是否必要、比喻是否贴切、案例是否堆砌)超出正则算子的能力范围,只能退回可定位的形态特征。这意味着若"AI 味"的主要成分位于语义层,本研究的方法在原理上无法触及。
话题未严格配对。 生成侧为同批话题集中生成,人类侧文本跨越较长时间与较多话题,部分差异可能来自话题而非文本来源。
结论具有时效性。 模型迭代持续向人类文风收敛。GPT 的破折号频率在不足一年内由"近乎每句一次"降至 0.11。本研究所有频率数值应视为特定时点的观测。
语料不可核验。 语料因版权与隐私原因未予公开,故上述数值第三方无法直接复核。可复核部分为切分规程、分母选择、判定阈值与算子定义,均随脚本公开。这是本研究的实质缺陷,非免责说明。
# 句层:各特征在两侧语料的频率与比值
python3 scripts/compare-human-ai.py --human <目录...> --ai <目录...>
# 段落层:相邻句同构、段首零回指
python3 scripts/check-structure.py --human <目录...> --ai <目录...>
# 生成侧:译文句式频率
python3 scripts/check-translationese.py <目录...>三个脚本仅按目录参数读取 .md 文件,不含语料,亦不以目录名作为输出标签。算子定义位于各脚本首部。
替换为自有语料即可复算全部指标。若结论与本研究不一致,请优先检查语料的话题与文体是否对齐、分母是否与被测单位匹配。
Moxt 是一个组建 AI 团队来承担长程复杂工作的平台,主要包含四部分:
- 工作流 — 把复杂任务规划为分步进行,每个阶段由各司其职的 agent 承担,即使无人值守也可自主运转
- Agent 看板 — 实时掌握哪些完成了、哪些在跑、哪些需要你,随时介入调整
- 小程序 — 不写代码就能构建团队真正需要的内部工具,由真实数据库驱动,人和 agent 共用
- AI 原生工作空间 — 基于 Markdown、HTML、CSV 的文件系统,让 agent 跨对话始终保持上下文
本 skill 依赖长文本的反复读取与逐句改写,工作空间的上下文能力正对应这一需求。
数据与代码 scripts/ · 完整结果表 RESEARCH.md · 规则集 SKILL.md · MoxtHub 去AI味.skill · English README.en.md
许可 MIT
