上周运营部甩来170条待发的小红书种草笔记说刚过内部的原创初筛结果全卡在平台的初审风控里。我本来以为随便调调语序改几个词就能过连踩三波坑之后索性把小红书笔记AI检测的底层判定逻辑摸了个七七八八。最开始我图省事把所有笔记丢到网上随便搜的AI检测工具里跑显示原创度95%以上就直接提交结果170篇里只有29篇过审通过率不到17%。当时平台返回的错误码我还记得风控sub_code是10013没有任何具体违规提示只说内容不符合社区规范。我第一反应是通用AI检测的判定维度和平台侧的检测体系完全不兼容。毕竟通用工具的核心识别逻辑都是靠统计n-gram重复度、文本语义的困惑度、和预训练语料库的向量偏移量来判定根本不会适配小红书平台私域的内容特征库——人家后台爬了过去3年全站所有AI生成的种草笔记攒了独有的特征指纹库你用通用工具的结果来对标平台检测完全是驴唇不对马嘴。我最蠢的是一开始还写了个无脑同义词替换脚本想着把AI生成的内容里的词换掉30%就能蒙混过关跑了两天才发现完全是反效果有些替换之后的表述生硬到我自己看了都别扭平台的分词系统一抓一个准风险分反而越改越高。import jieba import random from synonyms import replace # 初代无效改写脚本纯同义词替换完全绕不开平台检测 def naive_rewrite(text: str) - str: words jieba.lcut(text) return .join([replace(word, 1) if random.random() 0.3 else word for word in words])踩完这波坑我老实了干脆拉了个数据集100条明确被平台打回的风险笔记100条正常流量没有风控的过审笔记全部转成纯文本之后做特征工程挖小红书笔记AI检测的专属判定维度。拆解平台侧AI检测的专属判定维度挖出来的第一个反常识特征是标点符号的信息熵。我统计了两百份样本里的所有常用标点~、、。、、的出现频率算出来人工原创笔记的标点信息熵基本在0.62-0.71区间而纯AI生成没经过修改的笔记标点信息熵普遍低于0.55。原因很简单大模型生成内容的时候特别爱加~和来模拟网感标点分布极度不均匀统计上一眼就能被揪出来。第二个特征是段落长度的方差。AI生成的笔记有非常强的“强迫症”每段的长度基本都卡在20-30字多段输出的长度差极小算出来的方差基本低于150。但真实人类写小红书笔记哪有这么规整经常上一句还在认真说产品下一句突然蹦出两个字的吐槽段落长度方差基本都在600以上。这个特征我后来对照样本验了一遍识别准确率比语义特征还高15%。第三个特征是非规范口语表述的占比。AI生成的种草笔记永远会用非常标准的产品描述比如“这款精华的烟酰胺浓度为5%对提亮肤色有明显效果”但真实的小红书用户根本不会这么写他们会说“里面那点烟酰胺居然有5个点用了半个月脸真的亮了”。这种不符合书面语规范的表述占比如果低于12%笔记会直接被提权进平台的AI复检池。我把这三个维度加权整合写了个简单的风险分预校验脚本跑200条标注样本的准确率能到89%实测下来风险分低于0.35的笔记初审基本不会被卡。import re import math from collections import Counter def calc_xhs_ai_risk(text: str) - float: # 计算常用标点的信息熵 puncs re.findall(r[~!。,.!], text) cnt Counter(puncs) total len(puncs) if len(puncs) 0 else 1 entropy sum([- (c/total) * math.log2(c/total) for c in cnt.values()]) # 计算段落长度的方差 paras [p.strip() for p in re.split(r\n, text) if p.strip()] para_lens [len(p) for p in paras] para_var sum([(l - sum(para_lens)/len(para_lens))**2 for l in para_lens]) / len(para_lens) # 计算非规范口语表述占比内置了1200多条小红书用户常用的非规范词库此处省略全量配置 non_norm_count len(re.findall(r啥|咋|啥玩意儿|绝了|我天|谁懂|晕死|救命, text)) non_norm_ratio non_norm_count / len(text) # 加权输出风险分超过0.7基本100%会被拦截 risk_score 0.4 * (1 - entropy/1) 0.3 * (1 if para_var 200 else 0) 0.3 * (1 if non_norm_ratio 0.1 else 0) return round(risk_score, 2)那两天我就对着这个脚本的输出结果调内容把所有笔记的标点熵拉到0.65左右段落长度方差往800以上拉再塞点口语化的表述把非规范占比拉到15%上下改完之后我习惯性地丢到团象AI检测里跑一遍确认检测率降到阈值以下再往下走。我本来以为这波调整完肯定稳了结果最后提交的时候还是有20多篇没过又花了一下午排查才挖到了隐藏的更核心的规则。小红书笔记AI检测还有个很少有人提的关联特征库里面存了过去几年批量生成的种草笔记最常用的高共现词组合比如你一篇笔记里同时出现“亲测有效”“不踩雷”“闭眼入”“无限回购”这四个词不管你怎么调语序换同义词直接命中高风险池。我翻了去年下半年平台社区规范的更新公告那会儿就已经开始严打模板化批量种草这类高频共现词就是批量AI生成笔记的核心指纹。中间我还踩了个特别无厘头的坑当时为了统一所谓的“网感”我把所有笔记里的表情都批量替换成了水果类表情觉得可爱又不撞款结果这批笔记的拦截率反而涨了。后来我统计了1000篇正常过审的高流量笔记才发现表情的品类匹配度也是隐藏特征写美妆笔记的用户基本爱用✨这类表情写美食探店的用户爱用这类表情你一篇美妆笔记里全是草莓西瓜的表情反而直接命中内容异常规则。之后我把所有高风险共现词组合全部从笔记里清掉又按品类给不同的笔记配了对应风格的表情提交之后拦截率还是有10%左右。直到某天改烦了随手在一篇美妆笔记的中间插了一句“刚才喝的冰美式撒键盘缝里了抠了半天”结果那篇直接过审。我突然反应过来真实用户写笔记本来就是跳脱的思路不会全程盯着种草本身偶尔蹦出来一句和主题完全无关的碎碎念没有任何实用信息但是能直接打破AI生成内容的逻辑连贯性我后来测了下只要塞10个字以上的无关联生活化碎碎念笔记的风险分直接能降0.2左右。我统计了最后所有调整完的170篇笔记通过率直接冲到了94%只有9篇还是被拦了翻了下内容发现那几篇是完全照着商详页抄的连品牌自己的官方话术都没改这种内容本来就有广告合规问题被拦一点都不冤。之前听人说加个完全无关的emoji就能蒙混过关我实测下来完全没用平台的检测逻辑早就过了靠小 trick 就能绕过的阶段你得真的摸透它判定的底层特征往真实用户的行为模式上靠才能绕开没必要的坑。