Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

Lieflat Less AI Tone

中文 | English

去AI味.skill:用语言学方法量化「什么是 AI 味」,再把它去掉

一个基于 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 文风"并非单一形态。

文末报告了六次因算子设计缺陷导致的测量失误及其修正过程,并讨论了单一模型样本、分母选择与语料不可核验三项方法局限。

关键词 生成文本识别;中文句法;语料库语言学;篇章衔接;对照研究

在 MoxtHub 打开去AI味.skill →


1 问题

大语言模型生成的中文文本存在某种可感知的风格特征,公共讨论中称之为"AI 味"。这一判断在写作者社群中具有高度共识,但支撑它的证据基本停留在个案观察层面。

流通中的判别清单大致包含以下条目:破折号使用过密;对举结构("不是 A 而是 B")反复出现;句长分布过于均匀;单字虚词(就、很、了)偏少;以具体物象包装抽象概念("记忆的仓库");设问后立即自答。这些条目通过社交媒体反复传播,逐步取得了近似常识的地位。

问题在于,它们从未被系统检验。清单中的条目来源各异,有的出自对早期模型输出的观察,有的来自英文语境的研究结论直接移植,有的仅是个别写作者的印象。其中哪些具有统计意义上的区分力,哪些是观察者偏差的产物,哪些方向甚至是相反的,缺乏可对照的证据。

本研究的目标不是提出新的判别清单,而是对既有清单逐项检验,并给出可复算的判定程序。

2 方法

2.1 研究设计

采用对照设计。以文本来源(模型生成 / 人类写作)为自变量,以各候选句法特征的出现频率为因变量。

有效对照要求控制三类混淆因素。

主题与文体。 生成侧的话题范围与文体设定与人类侧对齐。若两侧写作对象不属同类,观测到的差异无法归因于文本来源,可能仅反映文体差异。

模型个体差异。 生成侧采用五个模型各 60 篇,而非单一模型。研究初期曾以两个模型的 30 篇样本进行测算,所得结论后续大部分未能重复。以破折号为例,初期数据支持"该特征为 Claude 独有",扩充至五个模型后发现另一模型的频率更高。单一模型的个体倾向易被误读为生成文本的共性。

生成条件。 生成侧不联网检索,不施加任何写作风格指令,仅提供话题。附加风格约束将掩盖模型的默认倾向。

2.2 语料

汉字
生成3001,179,10537,64214,549
人类3291,647,86757,90931,172
合计6292,826,97295,55145,721

生成侧模型为 claude-opus-4-6、deepseek-v4-pro、gemini-3.1-pro、gpt-5.6-sol、kimi-k3,覆盖 38 个话题。

人类侧为公开发表文本,按来源分组独立统计。分组统计的作用在于检验组间一致性:若某特征仅在个别组偏高,则更可能反映作者个人风格或文体惯例,而非人类写作的共性。本研究中,单字虚词与破折号两项即由此被识别为不可靠指标。

2.3 文本切分

分句。 先按行切分,剔除标题行、表格行、代码块、引用块与列表项,再以 。!?; 为界断句,保留长度不小于 4 字的片段。

剔除非正文行是必要步骤。研究初期未作此处理,仅以 。!? 断句,导致 Markdown 表格与无句末标点的长列表被计为单句。受此影响,某一组的句长标准差被计算为均值的 27 倍,并据此得出"生成文本的句长均匀度为人类的 51 倍"这一结论。修正切分程序后重新测算,该比值为 0.87,即不存在差异。

分段。 以空行为界切分,剔除标题、表格、代码块、引用、列表项与图片行,保留长度不小于 8 字的段落。

2.4 分母选择

依据被测特征所依附的语言单位选择分母。

分母适用特征示例
每千汉字词汇层、标点层破折号、顿号、对举结构
每百段段落层结构相邻句同构、比喻起段
同类元素占比依附于特定结构者问句小标题占全部小标题之比

分母选择不当可导致方向性错误。生成侧平均每篇含小标题约 10 个,人类侧为 1 至 2 个。以每千汉字为分母时,问句小标题的比值为 32 倍;改以小标题总数为分母后,生成侧 2.7%,人类侧最高组 3.6%,差异消失。前一分母实际测量的是"生成文本小标题数量更多",后者才是"生成文本倾向以问句充当小标题"。

段首类特征的分母为非首段总数,因首段不存在可回指的上文。

2.5 判定标准

以频率比 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 倍,方向明确,但据此"补充数据"将违反信息守恒约束,故仅保留其可执行部分,即原文已含具体数据时不得以概括表述覆盖。单字虚词同理,生成侧确实偏低,但"补充虚词"无法验收,整项弃用。

2.6 算子实现

各特征以正则表达式实现,定义置于脚本首部,可直接修改与复核。

此环节为本研究方法链中最薄弱者。正则匹配字面形态而不解析语义,算子过宽将纳入大量不属于该特征的实例。本研究因此产生六次测量失误,详见第 5 节。由此确立的操作规程为:任何算子在采信其频率结果前,须先抽样检视 20 条命中实例。

3 结果

3.1 未通过检验的特征

R < 1.25,即不具区分力或方向相反者,共 15 项。

候选特征测量结果R
句长均匀度变异系数 生成 0.58 / 人类 0.670.87
相邻句长差生成 21.7 / 人类 21.71.00
段长均匀度稳健离散度 生成 0.94 / 人类 1.000.94
单字虚词「就」生成 2.93 / 人类 6.450.45
口语连接词生成 1.01 / 人类 3.870.26
名词复现(少用代词)相邻句同名词起句 生成 0.02 / 人类 0.040.50
抽象被动式生成 0.09低于阈值
设问自答生成 0.13 / 人类 0.131.03
问句小标题占小标题比 生成 2.7% / 人类最高组 3.6%0.75
正文设问生成 0.10 / 人类 1.830.05
句内同构排比同字起首两项 生成 2.35 / 人类 3.870.61
比喻标记生成 0.16 / 人类 0.380.42
抽象主语配具体谓语生成 0.001 / 人类 0.0010.70
动词名词化生成 0.003 / 人类 0.0050.52
正文序数词句首「首先,」生成 0.06 / 人类 0.032.00,绝对量过低

三项结果与流行认知方向相反,值得单独说明。

比喻。 "生成文本倾向以比喻包装抽象概念"这一判断不成立。人类侧比喻标记频率为生成侧的 2.4 倍,以比喻独立起段者为 8 倍。差异不在是否使用比喻,而在喻体选择:生成侧偏好理想化的职业人格作喻体("像一位智慧的导师""一个永不疲倦的初级审查员",R = 7.3),人类侧多取具体个人("像一个老师傅""像一个人脉很广的医生朋友")。前者承担抒情功能,后者承担说明功能。

设问。 正文中的设问句,人类侧频率为生成侧的 17 倍。依"删除设问"这一流行建议改写,将使文本进一步偏离人类写作特征。

句长均匀度。 该项在本研究初期亦被认定成立,并曾报告 51 倍的比值。经查为切分程序缺陷所致(见 2.3)。修正后 R = 0.87。

3.2 通过检验的特征

编号特征测量结果R
1对举结构(不是 A 而是 B)生成 0.73 / 人类 0.223.4
2顿号并列过密生成 3.21 / 人类 1.781.8
3相邻句结构同构每百段 生成 9.41 / 人类 4.812.0
4破折号生成 2.38 / 人类 0.803.0
5冒号滥用提示语 生成 0.29 / 人类 0.08;空转句引列表 0.29 / 0.033.8 / 9.4
6序数词充当小标题生成 0.19 / 人类 0.063.1
7拟人化喻体生成 0.018 / 人类 0.0027.3
8概括表述覆盖已有数据数字密度 生成 6.34 / 人类 17.920.35(反向)
9起首语(说白了)生成 0.025 / 人类 0.0083.2
10译文句式(5 种)见 3.42.6–5.3
11段首零回指评论占非首段 生成 0.61% / 人类 0.14%4.4

通过检验的特征集中于篇章与结构层面,而非词汇或标点层面。区分力最强的第 11 项即属篇章衔接问题:生成文本在新段落起首处直接给出评价("听起来像一条功能描述""值得注意的是"),未标示评价对象,读者须回溯上文方能确定所指。值得注意的是,段首衔接词的总体密度两侧无差异(生成 14.4%,人类 15.1%),差异仅在于评价句省略回指成分。补入一个指示代词即可恢复衔接。

3.3 模型间差异

特征ClaudeDeepSeekGeminiGPTKimi
破折号4.255.160.510.112.32
提示性冒号0.380.430.220.250.32
对举结构0.610.860.291.260.51
序数词小标题1.000.690.220.730.82
过长前置定语0.640.650.480.060.22
问句小标题0.0430.0860.1730.0080.000

同一特征在模型间的极差可达四十倍(破折号:DeepSeek 5.16,GPT 0.11)。这一结果有两重含义。其一,不存在统一的"AI 文风",模型个体差异不可忽略。其二,基于单一模型样本得出的特征描述不具普适性,本研究初期的多项误判即源于此。

GPT 破折号频率之低,曾被用于论证该特征已失效。但 Claude 一项为人类侧的五倍以上,而该模型在写作场景中使用广泛,故本研究仍予保留。

3.4 译文句式的筛选

初始清单依"英文句法直接移植"设定 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。这些结构确属译文句式,但不构成生成文本的区别性特征,现代汉语书面语已充分吸纳此类句法。

4 从统计结果到改写规则

统计显著不等于可执行。本研究将 11 项通过检验的特征转写为改写规则时,附加了三重约束。

白名单原则。 仅处理清单内的 11 项。未命中任何规则的句子逐字保留,标题层级、段落次序、列表、表格与代码块位置不作变动。

信息守恒。 不得新增姓名、数字、日期、引语、来源、因果关系或原文未载的任何细节;同时不得删除原文的观点、结论与限定成分。将"可能提升"改为"提升"属于篡改判断强度,不属于风格清理。判定方法为,改写后每个实词须能在原文中指出出处。

语义判断的排除。 比喻是否贴切、设问是否解决了读者的真实疑问、并列案例是否属堆砌,此三类判断依赖语义理解,无法转写为可执行算子。将其写入规则只会诱导执行者依主观语感改写,故一律排除。

规则全文见 SKILL.md

4.1 应用

规则集以 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;两者冲突时以蒸馏产物为准,因其记录的是目标作者的实际写法,不属生成痕迹。

5 测量失误记录

本研究在算子设计环节共出现六次系统性失误,全部为算子覆盖范围宽于规则定义,且均在检视命中实例前即采信了频率结果。

初测结果缺陷修正后
过长前置定语 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。

6 局限

人类侧语料规模有限。 组间差异已相当可观(破折号极差百倍,虚词密度差三倍),扩充语料可能改变部分结论。

部分特征缺少人类侧对照。 译文句式的筛选(3.4)仅依据生成侧绝对频率与阈值,未计算比值。某结构在生成侧频率高,不排除人类侧同样高频。

语义层特征无法测量。 篇章与修辞层面的判断(设问是否必要、比喻是否贴切、案例是否堆砌)超出正则算子的能力范围,只能退回可定位的形态特征。这意味着若"AI 味"的主要成分位于语义层,本研究的方法在原理上无法触及。

话题未严格配对。 生成侧为同批话题集中生成,人类侧文本跨越较长时间与较多话题,部分差异可能来自话题而非文本来源。

结论具有时效性。 模型迭代持续向人类文风收敛。GPT 的破折号频率在不足一年内由"近乎每句一次"降至 0.11。本研究所有频率数值应视为特定时点的观测。

语料不可核验。 语料因版权与隐私原因未予公开,故上述数值第三方无法直接复核。可复核部分为切分规程、分母选择、判定阈值与算子定义,均随脚本公开。这是本研究的实质缺陷,非免责说明。

7 复算

# 句层:各特征在两侧语料的频率与比值
python3 scripts/compare-human-ai.py --human <目录...> --ai <目录...>

# 段落层:相邻句同构、段首零回指
python3 scripts/check-structure.py --human <目录...> --ai <目录...>

# 生成侧:译文句式频率
python3 scripts/check-translationese.py <目录...>

三个脚本仅按目录参数读取 .md 文件,不含语料,亦不以目录名作为输出标签。算子定义位于各脚本首部。

替换为自有语料即可复算全部指标。若结论与本研究不一致,请优先检查语料的话题与文体是否对齐、分母是否与被测单位匹配。

关于 Moxt

Moxt 是一个组建 AI 团队来承担长程复杂工作的平台,主要包含四部分:

  • 工作流 — 把复杂任务规划为分步进行,每个阶段由各司其职的 agent 承担,即使无人值守也可自主运转
  • Agent 看板 — 实时掌握哪些完成了、哪些在跑、哪些需要你,随时介入调整
  • 小程序 — 不写代码就能构建团队真正需要的内部工具,由真实数据库驱动,人和 agent 共用
  • AI 原生工作空间 — 基于 Markdown、HTML、CSV 的文件系统,让 agent 跨对话始终保持上下文

本 skill 依赖长文本的反复读取与逐句改写,工作空间的上下文能力正对应这一需求。

在 MoxtHub 打开去AI味.skill →


数据与代码 scripts/ · 完整结果表 RESEARCH.md · 规则集 SKILL.md · MoxtHub 去AI味.skill · English README.en.md

许可 MIT

关于 About

一个基于 283 万字语料统计的去 AI 味 skill · An AI-tone removal skill grounded in a 2.83-million-character corpus study

语言 Languages

Python100.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
13
Total Commits
峰值: 13次/周
Less
More