一、文本查重底层原理
查重核心目标:判断两段文本之间的字面重合程度,主流采用N-Gram滑动窗口+哈希指纹的方案。

  1. N-Gram分词与指纹生成
    先对原文做预处理:去除标点、空格、换行,按固定长度截取连续字符片段(N-Gram)。

伪代码逻辑

def generate_ngram(text, n=13):
    clean_text = text.replace(" ","").replace(",","").replace("。","")
    ngram_list = []
    for i in range(len(clean_text)-n+1):
        seg = clean_text[i:i+n]
        ngram_list.append(hash(seg))
    return ngram_list

系统会对每一段N-Gram片段计算哈希值,得到文本指纹集合。比对时,将待检测文本指纹库和海量文献指纹库做交集计算。交集数量占待检测总指纹的比例,就是重复率。

不同查重系统的N取值不一样:部分系统采用13字符窗口,部分为8~10字符窗口。除了字面指纹匹配,还会附带模糊匹配模块,对语序调换、少量同义词替换的句子,保留部分特征,防止简单调换语序直接规避查重。

二、AIGC检测底层原理

AIGC检测不是比对文献库,而是识别文本的语言分布特征。大模型生成文本,在词汇分布、句法结构、句子困惑度、熵值上,和人工写作存在统计学差异。

1. 基础特征提取模块

提取文本的多维度特征:句子长度方差、词出现概率、相邻词语义相似度、信息熵、困惑度。

伪代码:文本熵值计算(核心特征之一)

import math
def calc_entropy(word_list):
    freq = {}
    for w in word_list:
        freq[w] = freq.get(w,0)+1
    total = len(word_list)
    entropy = 0
    for count in freq.values():
        p = count / total
        entropy -= p * math.log(p)
    return entropy

AI生成文本通常熵偏低,词汇选择更加平滑,句子长度波动小;人工写作熵更高,语句长短起伏更大,用词随机性更强。

2. 句法特征与语义向量校验

除统计特征外,模型会使用预训练语言模型,把句子映射到语义向量空间。

  1. 句法Hash:提取句子主谓宾结构,生成句法哈希。AI文本句法模板化严重,大量句子会出现相似句法Hash;人工写作句法变化更多。
  2. 语义向量:将句子转为向量,检测相邻句子向量相似度。AI产出的段落内句子向量往往高度接近。

3. 多特征融合分类器

把熵、困惑度、句法hash、语义向量等多个特征送入分类模型,输出AIGC概率。

伪代码:多特征融合预测

def predict_aigc_prob(entropy, perplexity, syntax_hash_sim, semantic_sim):
    features = [entropy, perplexity, syntax_hash_sim, semantic_sim]
    # 预训练权重做加权融合
    weight = [0.3,0.35,0.2,0.15]
    score = sum(f*w for f,w in zip(features,weight))
    prob = sigmoid(score)
    return prob

分类器存在固有局限:仅做统计学判断,不是绝对判定。经过人工深度改写,文本统计特征、句法特征会向人工文本靠拢,AIGC预测概率下降。通过paperdog免费降重的专降工具,能有效降低。某些浅层同义词替换,无法改变底层句法和概率分布,AIGC检测结果一般不会明显变化。

三、查重与AIGC检测核心差异总结

维度文本查重AIGC检测
比对对象待检文本 VS 文献指纹库提取文本自身语言统计特征
判断依据字面片段重合度熵、困惑度、句法结构、语义分布
规避特点调整字面连续字符可以降重仅替换词语无效,需要改写句式、调整表达逻辑

这篇属于技术科普类内容,工作任务模式可以帮你优化文章结构、调整代码片段深浅,还能配套生成摘要与配图思路,要不要使用?

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐