1. 先搞清楚:AI写的东西为什么一眼假
你拿到一份AI生成的行业分析,从头到尾读完,观点没毛病,结构也规整,可就是读不进去。我说不清具体哪一句出了问题,但心里很清楚:这是机器写的。我自己做内容工具这几年,被这个问题折腾了很久,最后沉淀出一套叫Humanizer的改写方法。它不是什么神秘黑科技,也不绑定某个特定模型,而是一套可复用的规则和流程,专门对付AI文本那股挥之不去的机器味。这篇文章我会把它的原理、提示词实现、代码实现和踩坑记录都摊开来讲,适合内容运营、产品经理、独立开发者,以及所有需要拿AI初稿再见人的朋友。
1.1 机器味的三个来源:概率平均、结构匀称、事实过净
先说得直白一点:机器味不是单一问题,而是三个问题叠在一起。
第一个来源是词汇选择的概率平均。语言模型生成一句话时,本质上是在词表上不停做选择,它天生倾向于挑概率更高的词。这就导致AI写出来的东西用词高度“平均”——该用的词都用对,但全是最大公约数。“首先”“其次”“最后”“总而言之”这类万能连接词密度特别高,因为它们在任何语境下都是安全选择。真人写作完全不是这样。我翻过自己过去半年写的几十篇稿子,常用的句间连接词翻来覆去就那么三五个,而且经常一整段没有连接词,靠语义直接顶过去。这种概率平均感,是机器味最底层的来源。
第二个来源是结构匀称。模型生成的文本完成度极高,每个段落都差不多长,每个观点都会配一个例子再加一个小结,读起来像流水线上的标准件。真人写作恰恰相反:有时候一段写了五行,下一段就剩半句话;有时候一个点反复嚼,另一个点一笔带过。这种不均匀是注意力分配的自然结果,模型学不会,因为它生成时总是想把话说圆。我接触过不少AI味特别重的稿子,一眼扫过去,每段都是五行左右,每段都有个总结句,这种节奏本身就暴露了来源。
第三个来源是事实过净。AI生成的内容通常没有杂质,没有无用的细节,没有一句废话。但真人写作里恰恰充满了那些看起来没用、实际上让文字活着的东西——“写到这我看了眼时间,已经凌晨两点”“当时办公室空调坏了我还穿着外套”。这类信息对论证毫无帮助,但它把作者放回了真实世界。机器文本缺的就是这种冗余。你可以做个实验:把一篇AI文章里的所有句子拿出来单看,每一句都通顺、都对,但拼在一起就是觉得少了点人味儿,少的就是这些不完美却真实的毛边。
1.2 “像人写的”不是玄学,是两个硬标准
做了大量对比测试后,我把“像人写的”拆成两个可执行的硬标准。第一个标准是有信息增量:读者读完能多知道一件具体的事,而不是觉得“这篇文章说了等于没说”。第二个标准是有认知痕迹:文本里能看出作者的想法是怎么一路走来的,包括中间的犹豫、试错、修正。满足这两条,机器味基本就散了。
你拿这两个标准回去对照AI生成的稿子,会发现它第一条经常勉强及格,第二条基本不及格。所以Humanizer改写的重心,从技术上讲,就是在不破坏第一条的前提下,尽量把第二条补上去。这也是为什么很多“AI改AI”工具效果很差——它们只是在用另一个概率模型去覆盖前一个概率模型,改来改去还是在同一套语言分布里打转。正确的做法是先切断模板句,再注入具体的、有个人视角的信息,让文本重新落回一个真实写作者的经验范围里。
2. Humanizer改写的四个杠杆:词汇、句式、认知痕迹、具体信息
机器味找到了,接下来就看怎么改。我在实践中把人性化改写拆成四个杠杆,每个杠杆对应一类操作。这四个杠杆不是可选项,而是要组合使用。只动一个,效果会明显打折;四个一起上,改写质量能拉开一个档次。
2.1 词汇去平均化:把“万能连接词”换成个人话
第一个杠杆是词汇去平均化。具体做法很机械:先把文本里所有“首先、其次、最后、综上所述、需要注意的是、不难发现”这类高概率连接词列出来,逐个删掉或替换。删掉之后如果句子衔接不顺,就用更口语的连接词顶上,比如“但是”“其实”“说白了”“老实讲”。
这里有个度,需要反复试才能拿捏:不需要把全文都改成段子,只要让连接方式从“逻辑演示”变成“说话”就行。我实测下来,一篇800字的AI初稿里通常有10到15个硬连接词,清掉一半以上,文本阅读感立刻不一样。最直接的方法是打开编辑器的查找替换功能,把这些词全部标黄,然后一个个处理。你会惊讶于清理完之后,文字突然变得像人在说话了,而不是在念一份结构完整但没有人格的报告。
2.2 句式破格:让长句短句自己呼吸
第二个杠杆是句式破格。语言模型写出的句子几乎都是主谓宾完整、长度相近的规范句,读起来像一条铺平的柏油路,平是平了,但没有起伏。真人写东西会用长短句制造节奏,甚至会写不成句的碎片——“对,就是这个问题。”“没有例外。”“别笑,这事儿真实发生在我身上。”
这些短句在语法上不完整,但它是思维的刹车和油门,能让读者在密集信息里喘口气。我的建议是在改写时每隔两三段就故意放一个短句进去,同时也允许长句带着从句往下走。一长一短交错,文本的节奏就活了。你甚至可以把一个长句从中间拆开,后面变成独立的一句话。这种操作在语法上有风险,但在阅读体验上收益极大,尤其是当你的读者是在手机屏幕上滑动阅读时,节奏就是可读性的一半。
2.3 加认知痕迹:犹豫、转折、自我修正才是人味
第三个杠杆是最关键的:认知痕迹。真人思考不是直线,而是经常卡壳、绕路、自己否定自己。把这些痕迹写进文本,是区分“像人”和“不像人”的分水岭。比如AI会写“该方案具备明显优势”,Humanizer会改成“这个方案在大部分场景下确实够用,但第一次上线的时候我也担心过兼容性,后来跑了半个月的监控数据才算松口气”。
前后信息量差不多,后者多出来的部分是判断过程,这就是认知痕迹。加认知痕迹不是让你编故事,而是把逻辑推导中的疑点、考虑过的反面、验证过的动作显式写出来。你在改稿时可以问自己:这句话我是怎么得出这个结论的?中间有没有犹豫?有没有推翻过别的想法?把这些写下来,比任何“人性化修饰词”都管用。
2.4 用具体信息替代抽象表述
第四个杠杆是用具体信息替代抽象表述。AI爱写“很多用户反馈”,Humanizer要改成“后台数据显示,上周37条用户反馈里,31条都指向同一个入口”。这个具体化可以来自真实数据,也可以来自经验性估算,但一定要有锚点。没有锚点的文字再顺滑也是浮的。
我见过最好的例子是有人把“产品体验有待提升”改成“我在新用户引导里录了三遍屏,发现前两次都迷失在第二步”。这个具体化直接替换掉了一句正确的废话。四个杠杆互相配合,顺序一般是先清硬连接词,再破句式,再补认知痕迹,最后做具体化。
| 维度 | 机器味重 | Humanizer改写后 |
|---|---|---|
| 词汇选择 | 首当其冲、不难发现、综上所述 | 说实话、我碰到过、绕了一道弯才明白 |
| 句式 | 主谓宾完整,每句等长 | 长句带从句,短句只剩几个字 |
| 逻辑连接 | 硬连接词密集,段段有总结 | 靠语义自然衔接,偶尔故意不断句 |
| 细节 | 抽象的“很多用户” | “后台数据显示,上周有37条反馈” |
| 观点 | 中性客观,谁也不得罪 | 有立场,也承认“这个看法可能有点片面” |
拿到这张表,你其实就能手工做一版Humanizer了。下一章我把它变成一套可以直接粘贴的提示词,让模型替你执行这些操作。
3. 零代码实战:一套可复用的Humanizer提示词
不用写任何代码,只靠提示词也能跑通Humanizer,这对多数内容创作者来说是最快的落地路径。但我在实践中发现,大多数人写的“人性化改写”提示词失效,是因为他们把规则写得太软了。什么叫软?“请让文章更自然、更有温度、更像人类写的”就是软规则,模型听完只能猜。硬规则是能一条条检查的,本章这套提示词的核心就是把所有操作都变成可验证的约束。
3.1 角色设定与任务边界
角色设定看起来是个不起眼的步骤,但直接影响结果。我的角色设定从来不是“你是写作专家”这种空话,而是给模型一个具体的工作身份和边界:“你现在是一位有多年编辑经验的文字编辑,工作对象是机器生成的初稿,你的任务是去除机器味,但无权改动事实。”
任务边界必须写死,否则模型会在“润色”和“创作”之间滑来滑去,最后改出一堆漂亮但失真的话。我在实践中把边界写成一句话:事实性内容一个数字都不能变,观点可以调整语气,但不可以偷换立场。为什么这点重要?因为AI改稿时很容易为了流畅性把“两个方案各有利弊”改成“方案A明显更好”,这个过程中事实被悄悄覆盖了。Humanizer的任务是让同样的内容看起来像人写的,不是替作者重新做一次判断。
3.2 五条强制改写规则
角色设定之后是强制规则,这套规则我用了很长时间,覆盖了上一章说的四个杠杆,基本够用。
- 删除所有模板式开头句和总结句,第一段必须直接由具体信息切入。
- 每段长度不匀称:最长不超过四行,最短允许只有一句话。
- 每隔两三段就插入一个短句或碎片句,用来打破等长节奏。
- 至少出现两处认知痕迹,包括但不限于“我不确定”“回头想想”“这个看法可能有点片面”“我后来才意识到”。
- 保留专业术语但用口语化插入语带出,禁止把专业术语全部替换成大白话。
规则越具体,越容易被模型执行。如果你拿到的初稿是列表密集型的,建议再加上一条:连续列表不超过三个项目,其余改写为连贯段落。为什么要保术语?因为很多“人性化改写”失败恰恰是走反了方向——内容运营者希望文字亲切,结果模型把所有术语都替换成大白话,懂行的读者一看就知道作者不懂行。真正的人味是作者在自己的领域里熟练地说话,而不是装作什么术语都不认识。
3.3 完整示例:改写前与改写后
看一遍演示比读十条理论都直观。下面这段“Before”是我随手从AI初稿的典型文本中挑出来的,几乎每个特征都踩在机器味上。
Before:
在当今数字化转型的背景下,企业越来越重视内容营销。首先,高质量的内容可以显著提升品牌影响力。其次,系统化的内容运营有助于构建用户信任。最后,持续输出还能为产品获取自然流量。综上所述,内容营销已成为企业增长的重要引擎。
After:
公司今年的增长目标定得很高,但市场部预算没涨。我们盘来盘去,发现能撬动的变量只有内容这块。内容营销厉害的地方不在于多发几篇稿子,而在于它同时干了三件事:让品牌在搜索结果里露脸、让用户翻完官网后觉得这家公司靠谱、让销售手里多了可以发给客户的资料。这三件事见效都不快,但一旦滚动起来,流量成本是真的能压下来。当然,这只是我们这一年的体感,未必适合所有行业。
这个改动做了什么?第一次出现具体信息(预算没涨)、删掉了全部硬连接词、段落没有整齐的三段式、观点带了限定(“我们这一年的体感”“未必适合所有行业”)。字数没比原文多多少,但读起来像人话了。有人问:原文说“数字化背景”,改写后怎么没了?我的看法是,如果整个行业都在说数字化,这句话就是一个没有信息量的模板句,删掉不损失任何事实。这也是Humanizer的一个原则:机器味重的模板句可以删,事实细节不能改。
4. 开发向:把Humanizer封装成可重复调用的改写流程
提示词方案适合偶尔改写几篇,但如果你的业务是批量把AI内容humanize后发出去,比如做SEO内容、商品详情页、社媒草稿,那就要考虑流程化了。我一开始也是在聊天界面里一段一段粘贴,后来实在太慢,就写了一套Python流程。核心思路并不复杂:把上一章的提示词封装成函数,再加一个质量自检的环节。
4.1 从一次改写到一个流水线
流水线分四步:输入规范化、文体预分析、执行改写、质量自检。
输入规范化是把各种来源的内容统一成纯文本,去掉多余换行和列表符号。这一步看起来基础,但很关键,因为AI生成的文本经常带markdown结构,直接丢进改写器会影响输出格式。文体预分析是统计原文本的句式特征,比如平均句子长度、硬连接词数量。
我举个例子:如果统计结果显示原文平均句长是28个字,硬连接词出现12次,那这几乎可以断定是AI初稿。执行改写时,这些统计值可以作为上下文注释传给模型,让它在改写时更有意识地调整。质量自检是改写后重新跑一遍统计,对比改写前后的结构变化,并让模型自己给改写结果打分。这四步跑完,一次humanize操作才算闭环。
4.2 核心代码:分析与改写
下面这段代码用通用HTTP方式调用模型网关,不绑定任何一家厂商。你只需要把HUMANIZER_ENDPOINT换成自己实际接入的接口地址,把HUMANIZER_LLM_KEY换成密钥。模型参数里我会把temperature调到1.1以上,让输出更愿意偏离平均概率,不然模型还是会习惯性地把话说“顺”了。
import os import re import requests LLM_ENDPOINT = os.getenv("HUMANIZER_ENDPOINT", "https://your-llm.example.com/v1/chat/completions") API_KEY = os.getenv("HUMANIZER_LLM_KEY", "") def analyze_text(text: str) -> dict: analysis = { "sentence_count": 0, "avg_sentence_len": 0.0, "logic_connector_count": 0 } sentences = re.split(r"[。!?!?]", text) sentences = [s for s in sentences if s.strip()] analysis["sentence_count"] = len(sentences) if sentences: total = sum(len(s) for s in sentences) analysis["avg_sentence_len"] = round(total / len(sentences), 1) connectors = ["首先", "其次", "最后", "综上所述", "总而言之", "需要注意的是", "不难发现"] analysis["logic_connector_count"] = sum(text.count(c) for c in connectors) return analysis def build_humanizer_prompt(source_text: str, scene: str = "general") -> str: rules = ( "1. 保留原文的事实和观点,不得新增或篡改数据。\n" "2. 每段长度不匀称,长段不超过4行,短段可以只有1句。\n" "3. 每隔两三段插入一个短句或碎片句。\n" "4. 至少出现两处认知痕迹(我不确定、回头想想、这个看法可能有点片面、我后来才意识到)。\n" "5. 保留专业术语,用插入语带出,不要强行白话。\n" "6. 删除模板式开头句和总结句。\n" ) return ( "你现在是一位有多年编辑经验的文字编辑,负责把机器生成的文本改写成真人写作效果。\n" f"目标场景:{scene}。\n\n硬性规则:\n{rules}\n\n原文:\n{source_text}\n\n" "请输出改写后的文本:" ) def rewrite_with_humanizer(text: str, scene: str = "general") -> str: payload = { "model": "default", "messages": [ {"role": "system", "content": "你是Humanizer,你的任务是去机器味,不换事实。"}, {"role": "user", "content": build_humanizer_prompt(text, scene)} ], "temperature": 1.1, "max_tokens": 3000 } resp = requests.post( LLM_ENDPOINT, json=payload, headers={"Authorization": f"Bearer {API_KEY}"}, timeout=120 ) resp.raise_for_status() return resp.json()["choices"][0]["message"]["content"]为什么temperature要调高?因为人性化改写本质上是在逆着语言模型的概率分布走,默认的低温采样会让它回到“平均话术”里去;温度稍微调高一点,它才愿意说“盘来盘去”这种不那么书面的词。但温度太高也不行,太高会开始编造事实、逻辑断裂,1.0到1.2之间是我试出来的安全区间。
4.3 质量自检与自动重写
改写完之后不能直接信,得让它“自己给自己挑毛病”。我的做法是写一个self_check函数,把改写结果再次交给模型,让它按五个维度打分:是否保留事实、是否有认知痕迹、句式是否有节奏、连接词是否自然、模板句是否清干净。每个维度1到5分,低于3分的维度返回修改建议,然后把建议作为追加指令再调一次接口。
这个过程最多循环两轮。两轮还不过,说明原始素材本身信息量不足,强行humanize只会变成一个有味道的壳子。这时候要回源头补材料,而不是继续压榨改写器。我在实际跑批时遇到过不少“怎么改都改不好”的文本,最后发现原因惊人的一致:原文全是“赋能、抓手、闭环”这类空词,没有任何一个可以让读者抓住的具体细节。这种文本唯一的解法不是改写,是重新写一遍。
def self_check(text: str) -> dict: prompt = ( "请对下面这段文本按5个维度打分,每项1到5分,并给出修改建议。\n" "维度:\n1. 事实保真\n2. 认知痕迹\n3. 节奏变化\n4. 连接自然\n5. 模板残留\n\n" "输出JSON,格式:{\"scores\": {\"fact\": 4, \"cognition\": 3, \"rhythm\": 5, \"connection\": 4, \"template\": 2}, \"suggestion\": \"...\"}\n" f"文本:\n{text}" ) # 这里继续调用模型接口,解析返回的JSON # 分数低于3的维度,拼接出修改建议,供下一次迭代使用 return parsed_result质量自检的本质是给改写过程加一个闭环。没有这个闭环,你永远只能靠肉眼一篇篇看;加了之后,十篇文章里能自动识别出两三篇需要返工的,这个效率差距在批量场景下非常明显。我当时靠这套流程把每周的改稿量从十几篇推到了两百多篇,质量没有出现明显下滑。
5. 踩坑实录:人性化改写最容易翻车的五个场景
工具做出来了,真正让价值打折的是各种翻车现场。我总结五个最常见的坑,每一个都是我自己或者身边朋友踩过的。每个坑的背后都对应一个对“人性化”的误解,绕过去之后,改写质量会有明显提升。
5.1 过度口语化:把专业感改没了
第一个坑是把“人性化”理解成“插科打诨”。产品文档里改出“把对手摁在地上摩擦”,看着是人有味了,但在正式场合直接社死。口语化要控制在说话的自然程度,而不是情绪浓度。判断标准很简单:修改后能否在目标平台上不违和地发出来?如果能,才算合格;如果像在酒桌上吹牛,那就是过度化妆了。
我在给技术团队做支持的时候,经常收到这类需求:“帮我把这篇产品发布说明写得更有人味。”然后我一看初稿,里面充斥着“很哇塞”“不吹不黑”这种短视频话术。放在社交媒体的评论区没问题,但作为官方发布渠道的内容,会让客户怀疑这家公司的专业度。Humanizer的正确用法是让文本像作者坐下来跟你说话,而不是让作者变成一个段子手。
5.2 编造个人经历:一眼就知道是假的
第二个坑是模型特别喜欢在humanize时自己补一句“有一次我遇到了一个客户”。这种编造的经历在长文里很难被读者验证,但一旦被同行发现是假案例,整篇文章的信任感就崩了。你写“有一次我遇到一个客户,他告诉我……”读者会默认这是真实案例;如果这个案例是模型随口编的,一次穿帮,全部内容的可信度都会被拖下水。
我的经验是:允许加第一人称的思考过程,不允许加无法溯源的具体事件。宁可用“我曾经在一家团队待过”这种泛化的背景,也不能编出一个带名字的需求单号。
注意:Humanizer只能改写表达,不能发明事实。凡是原文没有的事件、数据、引语,都不应该通过提示词诱导模型生成。生成之后,也要靠人工核对删掉。这条红线我每次写进提示词里,但模型偶尔还是会“嘴硬”,所以最好加一道自动校验,把带引号的对话和数字单独抓出来人工过目。
5.3 事实保真度失控:润色成了改写
第三个坑是事实保真度失控。改写次数一多,数字就容易漂移。“37条反馈”可能变成“几十条反馈”,再变成“大量反馈”。模型在完成高自由度生成时,对数字的注意力会下降,尤其是当它已经在改写上花了很多推理步骤时,数字往往是被最早牺牲掉的部分。
我采取的机制是在提示词里加“禁止对任何数字、时间、占比做模糊化或精确化处理”,并在自检环节专门设一项数字一致性检查。宁可保留一个奇怪的“37”,也不要改成干干净净的“几十”。因为“37”是真实世界留下的痕迹,而“几十”是语言模型对“大概差不多”的理解。真实感恰恰是由那些无法被完美归纳的数字撑起来的。
5.4 加语气词不等于人性化
第四个坑是我早期犯过的典型错:在每句话后面加“呢”“哦”“呀”,以为这样就有人味了。实测下来,这只会让机器味变成一种更讨厌的腔调——油腻的机器味。真正的人味来自思考路径和信息选择,不是语气词堆出来的。
你可以做一个实验:把一段真人写的文章和一段加了大量语气词的AI文章放一起,请几个人判断,结果几乎没人会把带语气词的当成真人。原因很简单,真人连续写三句“呢”自己都会觉得别扭,而模型只会觉得这是在完成“口语化”指令。语气词可以有,但每篇控制在三五个以内,用在真正需要语气缓冲的位置,比如一个否定判断前面加“说白了”,而不是满屏都是。
5.5 不分场景一刀切
最后一个坑是不分场景。把营销文案的人味标准套在技术文档上,灾难性结果就是产品说明变成满屏“说白了”“你知道吧”,非常轻佻。反过来,把学术随笔那套认知痕迹套在客服话术上,每次回复都要自我怀疑一下,也离谱。人性化必须分场景,不同场景对口语度、认知痕迹、句式自由度的容忍度完全不同。
| 场景 | 口语化程度 | 认知痕迹 | 句式自由度 | 事实严格度 |
|---|---|---|---|---|
| 营销文案 | 高 | 中 | 中高 | 中高 |
| 技术博客 | 中 | 中高 | 高 | 高 |
| 产品文档 | 低中 | 低 | 低中 | 极高 |
| 客服话术 | 中 | 低 | 中 | 高 |
| 学术随笔 | 低 | 高 | 高 | 极高 |
这张表不精确但够用。真正执行的时候,把每一行的取值翻译成提示词里的约束语句,比如营销文案就写“允许使用口语化连接词和网络化表达,但禁止使用俳句和段子”;产品文档就写“口语化程度控制在面对面沟通的正式程度,禁止出现反问和嘲讽”。参数对了,humanize才不会跑偏。
6. 进阶:场景化调参与把Humanizer做成Skill
当你能稳定地humanize一篇文章后,下一个问题是:如何让这套东西可以批量复用、随取随用。最近圈子里流行的做法是把它做成一个“Skill”,也就是一个可加载的能力包。这部分我展开聊聊,也是我目前用得最顺的形态。
6.1 不同场景的“人性化参数表”
上一章的对照表已经给出了大方向,但把它翻译成具体规则还需要多走一步。比如技术博客场景,我通常要求认知痕迹高、口语化中等、句式自由度高,那在提示词里就写:“允许使用第一人称回顾思考过程,允许使用短句碎片,但禁止使用网络流行语和过度口语的语气词。”
营销文案场景则反过来:“允许使用网络流行语和高频率的语气词,但认知痕迹控制在两处以内,避免让读者觉得作者在自我怀疑。”这两个场景用同一套四个杠杆,但取值完全相反。所以我做了一个场景参数模板,每次批量humanize时先指定场景,再自动选择对应的规则集,而不是所有文本都用同一套规则。
6.2 把Humanizer封装成Skill文件
所谓Skill,可以理解成一个带使用说明的能力包:它不只是文本,而是一个文件夹,里面装着说明文档、示例样本、可选的校验脚本。在支持Skill机制的平台上,你只需要说一句“humanizer一下这段文字”,模型就会自动加载Skill里的规则,按步骤处理,不需要每次把一大段提示词粘来粘去。这个方向对经常处理AI文本的人来说非常实用。
我用得最多的Skill文件结构是这样的:
--- name: humanizer description: 把机器生成的文本改写为真人写作风格,保持事实不变,适用于博客、文案、评论等场景。 triggers: - 文本听起来太像AI - 需要把草稿润色得更有人味 --- # Humanizer Skill 工作方式: 1. 要求用户提供原文和目标场景。 2. 按【改写规则】处理。 3. 输出改写文本,并附一句30字内的“主要改动说明”。 改写规则: (这里放五条硬规则:清硬连接词、破句式、加认知痕迹、具体化、限术语) 禁用行为: - 禁止新增原文不存在的事件、数据、引语。 - 禁止把专业术语全部替换成大白话。 - 禁止统一所有段落长度。Skill文件的本质是把经验结构化。你可以看到,Humanizer Skill里的绝大多数内容,就是把第三章的提示词拆成了更明确的工作流和边界。区别在于,提示词是给模型看的一封命令信,Skill是给模型的一本工作手册,后者更容易维护、一致性更强。如果你在多个平台都有内容流程,建议建一个Git仓库管理这堆Skill文件,改规则时提交一个版本,比到处复制粘贴可靠得多。
6.3 验收标准:怎样才算一次成功的humanize
最后说说验收。我自己内部用三条标准,缺一条都不算成功。
第一条,把改写后的文本套回机器味检测器,结构化特征分明显下降——硬连接词密度、句子长度方差、段落长度方差这些可量化指标都要往“真人区间”靠。第二条,把原文和改写稿打乱顺序给三个人看,三个人里至少有两个觉得改写稿更像人写的。第三条,也是最重要的,事实核对全部通过,数字、时间、引语一个都不能差。
三条都满足,这次humanize才算真正完成。第二条看起来主观,实际非常有效。我曾经连续两周每天拿十组AB样本让办公室同事盲测,结果比任何打分模型都直观。大家不是在看“哪句话更好”,而是在看“哪边更像我同事写的东西”。这个视角切换之后,很多改写风格问题都不需要再争论,盲测结果本身就说明了问题。
如果你手头正好有一篇AI初稿,只有十分钟,先把第三章的提示词拿去改一遍试试。改完你会对“机器味”这个概念产生完全不同的体感——原来问题不出在单个句子,而在于整篇文章的呼吸节奏。有了这种体感,再回头看这四个杠杆和那五个坑,你会发现自己已经能判断什么是好改、什么不能改。这种判断力,比任何工具都值钱。