上一篇文章我们聊了论文查重的标红原理,今天来聊一个更让毕业生头疼的话题——AIGC检测。
查重是找“和别人像的部分”,AIGC检测是找“像机器写的部分”。它不比对文献库,而是分析文本本身的生成特征。AI模型基于概率预测下一个词,输出在统计上过于“平滑”和“规整”,这种模式化痕迹就是检测的目标。
下面逐个拆解五大平台的检测原理,并给出可运行的降AIGC代码。
🔬 知网AIGC检测原理
知网AIGC于2023年9月推出AIGC检测服务,2026年初完成4.0版升级,搭建了“文本-语义-逻辑”三层AI特征识别体系。
知网3.0/4.0算法的核心是三大指标:
指标一:困惑度(Perplexity) 衡量文本的“可预测性”。AI生成文本的下一个词几乎可以被预测出来——比如AI写“该方法具有_的效率”,下一个词大概率是“较高”或“显著”。人类写作的困惑度范围在60-120之间,AI生成文本通常在20-50区间。
指标二:突发性(Burstiness) 衡量句子长度的波动程度。人类写作长短句交错,句长标准差通常在4.7以上;AI文本句长标准差大约在1.2左右,句子长度非常稳定。
指标三:语义熵(Semantic Entropy) 衡量信息分布的均匀程度。AI倾向于每段塞入差不多密度的信息,各段落信息密度标准差通常<0.5;人类写作可达1.2-1.8,存在“疏密有致”的信息分布。
此外,知网还检测词汇多样性:TTR指数(独特词数/总词数)人类为0.3-0.45,AI为0.15-0.25。
降AIGC思路:提高困惑度(使用个性化表达)、增强突发性(长短句剧烈交替)、打散语义熵(制造信息密度的不均匀分布)。
import math, re
from collections import Counter
def calculate_perplexity(text):
"""基于词频估算困惑度的简化实现"""
words = re.findall(r'[\u4e00-\u9fa5]+', text)
if len(words) < 2:
return 0
freq = Counter(words)
total = len(words)
entropy = -sum((f/total) * math.log2(f/total) for f in freq.values())
return 2 ** entropy # 困惑度 = 2^熵
def calculate_burstiness(text):
"""计算句子长度的突发性(标准差/均值)"""
sentences = re.split(r'[。!?]', text)
lengths = [len(s) for s in sentences if len(s) > 2]
if len(lengths) < 2:
return 0
mean = sum(lengths) / len(lengths)
variance = sum((l - mean) ** 2 for l in lengths) / len(lengths)
return (variance ** 0.5) / mean if mean else 0
人类写作的burstiness通常>0.5,AI文本通常<0.3。如果检测值偏低,说明句长太均匀,需要手动打散。
🔬 维普AIGC检测原理
维普AIGC采用段落级评分机制,这是它与知网的核心差异。维普给每个段落独立AI概率评分,全文AI率是各段落的加权平均。
维普的技术架构包含三个核心模块:
动态指纹比对:指纹不是具体句子,而是一组统计特征——词频分布模式、句法结构模式、语义连贯模式。指纹库每月更新,每次更新后对新出现的AI模型检测准确率会提升15-20%。
语言模式分析:维普会计算三个核心指标——词汇多样性指数(VDI = 唯一词数/总词数×100),人工写作通常>65,AI文本普遍在45-60之间;句式变异系数(SVC),优质人工写作通常>0.35;段落衔接离散度(PCD),健康值域应在0.4-0.7之间。
段落级判定:维普可以精确定位问题段落,避免“误伤”人工写作部分。但对短段落(<100字)检测准确率下降约20%,表格、公式等非连续文本区域存在检测盲区。
维普对DeepSeek生成文本较敏感,知网则对ChatGPT更敏感。
def calculate_vdi(text):
"""词汇多样性指数"""
words = re.findall(r'[\u4e00-\u9fa5]+', text)
if not words:
return 0
return (len(set(words)) / len(words)) * 100
def calculate_svc(text):
"""句式变异系数"""
sentences = re.split(r'[。!?]', text)
lengths = [len(s) for s in sentences if len(s) > 2]
if len(lengths) < 2:
return 0
mean = sum(lengths) / len(lengths)
std = (sum((l - mean) ** 2 for l in lengths) / len(lengths)) ** 0.5
return std / mean if mean else 0
🔬 PaperDog AIGC检测原理
PaperDog采用多模态自适应架构,基于微服务架构将文本处理、代码分析、公式识别等模块解耦,系统根据提交内容的学科特性自动选择检测策略组合。
在算法层面,PaperDog融合BERT语义分析以捕捉深层语义,结合AST抽象语法树解析处理代码片段、LaTeX公式结构比对处理数学公式,突破了传统系统仅擅长纯文本的局限。
其AIGC检测可识别ChatGPT、Claude、文心一言等大模型生成的文本,VIP版本还能识别“细微的AIGC模板化痕迹”,针对初稿检测容易遗漏的模板化行文特征进行深度筛查。
降AIGC思路:PaperDog的核心是打破规整感,把过于工整的长句拆开,长短句交替出现,把“首先其次此外”换成“有意思的是”“值得留意的是”。
🔬 PaperHelp AIGC检测原理
PaperHelp采用句子级检测策略,将文本拆分为较小片段逐一分析,高亮显示“最具AI生成写作特征的区域”,而非仅给出一个整体百分比。
系统评估30余个信号来区分人类写作与机器生成文本,涵盖:结构均匀性(机器化段落缺乏人类写作中的不规则性和个人声音)、困惑度与可预测性(AI文章异常平滑、词到词高度可预测)、突发性(人类自然混用长短句,AI句长和结构更均匀)、词汇多样性,以及措辞足迹(过度打磨的语言、大量模糊过渡词等LLM偏好的风格模式)。
检测器训练用于识别ChatGPT、Claude、Gemini、Grok、Llama等主流模型的生成模式。
🔬 PaperYY AIGC检测原理
PaperYY采用AI语义分析与大数据指纹比对双引擎,依托1200亿级对比指纹库。其核心检测技术是基于Transformer的深度神经网络模型,不仅能识别连续字符重复,还能通过语义指纹技术理解句子语义。
PaperYY的AIGC检测功能暂只支持中文。第三方实测显示,PaperYY的AIGC检测存在一定误判率
降AIGC思路:针对PaperYY,核心是制造“人类写作特征”——打散模板化表达,加入个人视角的限定和评论。
# 降AIGC改写规则引擎(简化版)
import random
def break_symmetry(text):
"""打破句式对称性——降低突发性"""
sentences = re.split(r'(?<=[。!?])', text)
result = []
for s in sentences:
s = s.strip()
if not s:
continue
# 随机将长句拆为短句
if len(s) > 40 and random.random() > 0.4:
mid = len(s) // 2
for i in range(mid, len(s)):
if s[i] in ',、;':
result.append(s[:i+1])
result.append(s[i+1:])
break
else:
result.append(s)
else:
result.append(s)
# 随机合并短句制造长短交替
merged = []
i = 0
while i < len(result):
if i + 1 < len(result) and len(result[i]) < 15 and random.random() > 0.5:
merged.append(result[i].rstrip('。') + ',' + result[i+1])
i += 2
else:
merged.append(result[i])
i += 1
return ''.join(merged)
# AI常用过渡词替换表
TRANSITION_MAP = {
'综上所述': ['综合来看', '从整体上审视', '把上述线索串起来看'],
'首先': ['一个层面是', '先看', '从起点来说'],
'其次': ['另一条线索是', '顺着这个思路', '再往下看'],
'此外': ['有意思的是', '值得留意的是', '与此相关的一个细节是'],
'值得注意的是': ['容易被忽略的是', '这里有一个值得深究的点'],
'总而言之': ['归根结底', '把话收回来', '落到根本处'],
}
def replace_transitions(text):
"""替换AI高频过渡词"""
for old, new_list in TRANSITION_MAP.items():
if old in text:
text = text.replace(old, random.choice(new_list), 1)
return text
def reduce_aigc(text):
"""降AIGC主流程"""
text = break_symmetry(text)
text = replace_transitions(text)
return text
🛠️ 降AIGC的核心逻辑:困惑度与突发性工程
综合以上五个平台的原理,降AIGC的核心可以归结为一句话:破坏AI文本的低困惑度、低突发性和高语义熵均匀性。
GitHub上的开源项目humanizer利用困惑度与突发性工程,系统性地拆解AI检测器依赖的统计特征,包括突发性注入(随机化句子长度和结构)和困惑度工程(提升文本的不可预测性)。另一个中文学术写作降AIGC工具aigc-humanizer-zh归纳了16种AI写作模式和7项硬约束,在真实论文改写实验中,将AI润色版的AIGC检测率从超过50%降至11%。
该工具的改写SOP遵循6个步骤:移位→砍尾→破对称→换词→去模糊→注视角。其中最有效的单一手段是突发度注入——制造句长的剧烈波动,让文本的统计指纹从“AI分布”偏移到“人类分布”。
维普的降AIGC实战经验也印证了这一点:长句拆成“短句+插说”制造起伏,删掉半数逻辑连接词,文献综述里每引一篇加一句自己的限定。
⚠️ 重要提醒
与查重类似,不同AIGC检测平台的算法逻辑和判定粒度差异显著。知网是全文风险等级(核心指标为困惑度+语义熵),维普是段落级别评分(核心指标为VDI+SVC+PCD),PaperHelp是逐句标注(30余信号),PaperDog是多模态自适应,PaperYY则没法说。
在一个平台上的AIGC率不能直接推算到另一个平台。如果学校使用维普,参考知网的降AI攻略可能会方向偏差——维普对DeepSeek生成文本较敏感,知网则对ChatGPT更敏感。
更重要的是,AIGC检测技术目前仍不成熟。实测中多次出现人类原创文本被误判为AI生成的情况,也有AI生成内容被漏检的案例。把AIGC检测结果作为学术不端的唯一判定依据,在技术层面尚不充分,它更适合作为辅助审查信号。