返回教程列表
文本分析基础教程文本去重语义相似度改写检测

文本相似度去重雷达完整教程:从语义向量与余弦相似度,到重复成组和同义改写嫌疑分

两千条问卷回答里有互相抄的,也有照模板改的,两篇解读文章大意相同、用词处处不同,怎样把它们找出来?这篇教程先比较 Jaccard 字面相似度和语义向量的余弦相似度,说明 TATOOLS 的【文本相似度去重雷达】怎样两两比较每一条文本,按阈值和去重策略判出重复对,再用单连接方式把重复对连成组,选出代表原文。文中手算余弦相似度和代表原文,算出重复率和雷达图的三条轴,并用三组句子算出同义改写嫌疑分。最后讲报告怎样读、结果怎样下载,并给出论文数据清洗部分的写法示例。

作者:TATOOLS 研究团队|更新于 2026-09-23|5266 个字符|约 18 分钟读完
similarity-dedupe-radar
立即使用

两千条问卷开放题回答收上来,统计时发现有几十条几乎一字不差,是同一个班的学生互相抄的;还有一批意思一样、措辞略有不同,像是照着同一个模板改的。不去掉它们,某些观点会被重复计数,频次和比例都会失真。换一个场景,两篇政策解读文章大意相同、用词却处处不同,编辑想知道后一篇是不是在前一篇的基础上改写出来的。

这两件事都要回答同一个问题,两段文字在意思上有多接近。TATOOLS 的【文本相似度去重雷达】用语义向量两两比较每一条文本,找出意思相近的文本对,把相互相似的文本归成一组,给出重复率,列出每组的代表原文和高频词,用雷达图画出每组重复的强度和扩散范围。切换到同义改写模式,它专门找语义接近但用词差别明显的文本对,按改写嫌疑分排序,并逐词标出改动在哪里。

这篇教程先讲重复有几种,字面相似和语义相似怎样计算,再讲阈值怎样定,文本怎样成组,重复率和雷达图怎样读,接着讲同义改写嫌疑分,最后讲报告的读法和论文里的写法。

01

重复有几种

类型 例子 靠什么发现
原样复制 两条回答一字不差 字面比对
近似复制 改了几个字、换了标点 字面相似度或语义相似度
同义改写 意思相同,词几乎全换了 语义相似度

字面比对的办法由来已久。Broder 1997 年为网页去重提出把文本切成一小段一小段的片段,用两份文本共有片段的比例衡量它们有多像,这就是 Jaccard 相似度在去重里的经典用法。字面方法又快又准,但它只认字,同义改写在它眼里是两段完全不同的文字。

语义方法把每段文字表示成一个向量,意思相近的文字向量方向相近。Reimers 和 Gurevych 2019 年提出的句向量方法让这一思路在大规模文本上变得实用,两段文字即使一个共同的词都没有,只要意思相近,也能被找出来。TATOOLS 的【文本相似度去重雷达】以语义相似度为主,字面差异度用来区分近似复制和同义改写。

02

字面相似:Jaccard 系数

把两段文字各自分词,去掉单字和数字,得到两个词的集合,Jaccard 系数是交集大小除以并集大小。

· · ·

甲:政府加大了对乡村教育的投入

    {政府, 加大, 乡村, 教育, 投入}

乙:当局增加了农村学校的经费

    {当局, 增加, 农村, 学校, 经费}

交集 0 个,Jaccard = 0

甲和乙说的是同一件事,字面相似度却是 0。字面方法擅长抓抄袭和粘贴,换了说法的改写要靠语义方法来找。

03

语义向量和余弦相似度

TATOOLS 把每一条文本交给【语义向量模型】,得到一个几百维的向量,再缩放到长度为 1。两个单位向量的余弦相似度就是它们对应分量乘积之和,在 −1 到 1 之间,越接近 1 意思越接近。

· · ·

cos(a, b) = Σ aᵢ × bᵢ (a、b 长度都是 1)

用三维的小例子手算。

· · ·

A = (0.6, 0.8, 0) B = (0.8, 0.6, 0) C = (0, 0.6, 0.8)

cos(A, B) = 0.48 + 0.48 + 0 = 0.96

cos(A, C) = 0 + 0.48 + 0 = 0.48

cos(B, C) = 0 + 0.36 + 0 = 0.36

A 和 B 方向几乎一致,是一对重复;C 和它们只沾一点边。TATOOLS 对全部文本两两计算余弦相似度,n 条文本一共要比 n × (n − 1) ÷ 2 对,两千条就是将近两百万对,每一对都算到。

04

阈值怎样定

余弦相似度达到阈值的两条文本,算作一对重复。工具页的【相似度阈值】在近似复制模式下可以设在 0.60 到 0.95 之间,默认 0.82。阈值越高,只有几乎一样的文本才会被抓出来;阈值越低,意思相近但表述不同的也会被算进来。

【去重策略】在这个基础上再调一次。

去重策略 做法 阈值 0.82 时
保守去重 阈值加 0.05 0.87
均衡去重 不调整 0.82
召回优先 阈值减 0.05 0.77

【分析场景】还会按文本来源再微调一两个百分点,问卷和社媒这类短句口语多,客服记录也是,阈值略放宽;政策公文措辞规整,阈值略收紧。最后实际使用的阈值写在报告的【有效判定阈值】里。

要把结论写得很稳,用保守去重;要尽量找全诉求一致的反馈,用召回优先。拿不准的时候先用均衡去重,看报告里的高相似度文本对,再决定往哪边调。

05

从文本对到重复组

两两比较得到的是一对一对的文本。把每条文本看成一个点,每一对重复连一条线,连在一起的点就是一组。这在统计上叫单连接聚类(Single Linkage),Gower 和 Ross 1969 年讨论过它和最小生成树的关系;计算上用并查集(Union-Find)把点逐步合并,Tarjan 1975 年分析过它的效率。

· · ·

阈值 0.82,五条文本里达到阈值的对

1–2 0.90

2–3 0.85

4–5 0.88

1–3 0.78,没到阈值

结果:{1, 2, 3} 一组,{4, 5} 一组

1 和 3 本身没到阈值,因为都和 2 相连,也被归到一组,这是单连接的特点,重复的链条能把改动一点点累积起来的文本串在一起。

【重复聚类最小样本数】决定多少条才算一组,默认 3。上例里 {4, 5} 只有两条,不单独成组,但这一对仍会出现在高相似度文本对的列表里。

每组选出一条代表原文,是和组内其他文本平均相似度最高的那条。

· · ·

文本 1:(0.90 + 0.78) ÷ 3 ≈ 0.56

文本 2:(0.90 + 0.85) ÷ 3 ≈ 0.58

文本 3:(0.78 + 0.85) ÷ 3 ≈ 0.54

代表原文是文本 2

组内平均相似度 = (0.90 + 0.85 + 0.78) ÷ 3 ≈ 0.84

除以 3 是因为自己和自己的相似度记作 0 也算在里面,只影响数值大小,不影响谁排第一。TATOOLS 的【相似聚类详情】为每组列出条数和平均相似度、最高相似度,写明涉及几个文件,并附上代表原文和组内的高频词,组名由高频词拼成。

06

重复率和雷达图

报告顶部的【检测到的重复率】是至少出现在一对重复里的文本占全部有效文本的比例。

· · ·

有效文本 20 条,出现在重复对里的有 5 条

重复率 = 5 ÷ 20 = 25%

【重复模式雷达图】为每个重复组画一个五边形,五条轴是这样算的。

怎样算
重复强度 组内平均相似度 × 100
覆盖范围 本组条数 ÷ 最大一组的条数 × 100
跨文件扩散 本组涉及的文件数 ÷ 本组条数 × 100
敏感风险 组内含个人敏感信息的文本占比
关键词关注 组内命中关注主题的次数 ÷ 本组条数 × 100

一组 6 条,来自 3 个文件,平均相似度 0.88,最大的一组有 12 条,它的前三条轴分别是 88、50 和 50。重复强度高、覆盖范围大的组,是最值得先处理的;跨文件扩散高,说明同一段内容在不同来源里都出现了,常见于转载和模板化填写。

工具页的【希望重点跟踪的主题】填了关键词以后,命中关键词的组会以关键词命名,关键词关注这条轴也会跟着变化。【相似度热力矩阵】把前 40 条文本两两之间的相似度画成色块,颜色越深越相似,适合一眼看出重复集中在哪一片。

07

同义改写嫌疑

Dolan 和 Brockett 2005 年建立了英文句子改写语料库,改写识别从此成为自然语言处理里的一个标准任务。【分析模式】选【同义改写嫌疑】时,TATOOLS 找的就是这一类文本对,意思仍然接近,用词却换了不少。

· · ·

字面差异度 = 1 − Jaccard 相似度

改写嫌疑分 = 语义相似度 × 字面差异度

接着前面的例子算三对。

· · ·

甲与乙 语义 0.80,Jaccard 0,差异度 1

        嫌疑分 = 0.80 × 1 = 0.80

甲与丙 丙:政府增加了乡村学校的投入

        交集 {政府, 乡村, 投入},并集 7 个词

        Jaccard = 3 ÷ 7 ≈ 0.43,差异度 ≈ 0.57

        语义 0.86,嫌疑分 ≈ 0.86 × 0.57 ≈ 0.49

甲与丁 丁:政府加大了对乡村教育的投入力度

        语义 0.95,高到近似复制的程度,不列入

语义越接近、用词换得越多,嫌疑分越高。语义高到几乎就是原句的文本对属于近似复制,交给另一种模式处理;用词几乎没变的也不算改写。这个模式下【相似度阈值】是语义相似度的下限,可以设在 0.55 到 0.82 之间,工具页建议 0.60 到 0.78,太低会引入话题碰巧相近的句子,太高会漏掉轻度改写。

报告的【改写嫌疑对 — 左右词级对照】把排在前面的文本对左右并排,逐词对齐,哪些词没动,哪些词被替换,哪些词是新加或删掉的,都分别标出来,一眼能看出改动集中在哪里。改写嫌疑分是给人工抽查排序用的线索,是否构成不当改写,要由研究者对照原文和出处来判断。

08

分析单位和预处理

TATOOLS 把每一行当作一条文本,空行跳过。网址、纯数字串和太短的文本先被过滤掉,太长的文本按分析场景截到合适的长度。上传多个文件时,所有文件的文本放在一起两两比较,每条文本都记着来自哪个文件的第几行。

整份材料不足两条有效文本时,比如整篇文章写在一行里,TATOOLS 会按【自动分段窗口】设定的字数,优先在句末标点处把它切成句段再比较,行号记作第几行的第几段。

工具页的【自定义词典】影响分词,进而影响组内高频词和同义改写模式里的字面差异度;【自定义停用词】让泛泛的词不进组内高频词。语义相似度本身不受这两项影响。

09

工具页上的设置一览

设置 选项或范围 默认 影响什么
分析模式 近似复制与合并,同义改写嫌疑 近似复制与合并 找哪一类文本对
自动分段窗口 50 到 400 字 180 缺少分行时切句段的长度
分析场景 调研/问卷反馈,政策/公文段落,客服/投诉日志,社媒/论坛帖子 调研/问卷反馈 过滤长度和阈值微调
相似度阈值 0.60 到 0.95,改写模式 0.55 到 0.82 0.82 多相似才算一对
重复聚类最小样本数 2 到 15 3 多少条才算一组
去重策略 保守去重,均衡去重,召回优先 均衡去重 在阈值上加减 0.05
希望重点跟踪的主题 自己填写 组的命名和关键词关注轴
自定义词典、自定义停用词 自己填写 高频词和字面差异度

10

报告怎么读

区块 先看什么
这份结果说明了什么 有效文本数、重复率、重复组数
概览指标 上传记录数、有效文本、平均相似度、有效判定阈值
智能建议 按本次结果给出的调整方向
重复模式雷达图 哪几组强度高、范围大、跨文件
相似聚类详情 每组的代表原文、条数和高频词
相似度热力矩阵 重复集中在哪一片
高相似度文本对 成对的原文,逐对核对
改写嫌疑对 — 左右词级对照 改写模式下,改动在哪里

读的顺序是先看重复率和重复组数,再看雷达图挑出最值得处理的几组,到聚类详情里读代表原文,最后在文本对列表里逐对核对。结果可以下载,包括重复组汇总和每组的全部成员,以及达到阈值的文本对;改写模式下另有一张文本对表,逐对写明语义相似度和字面差异度,并附上嫌疑分。

11

把结果写进论文

去重通常放在方法部分的数据清洗里。下面是一段写法示例,方括号里换成自己的数字。

为避免重复作答与模板化填写造成的重复计数,本研究使用 TATOOLS 的文本相似度去重雷达,以语义向量的余弦相似度两两比较 [条数] 条有效回答,将相似度不低于 [阈值] 的回答视为重复,并按单连接方式归组。共识别出 [组数] 个重复组,涉及 [条数] 条回答(占 [比例]),每组保留一条代表回答进入后续分析。

写明阈值和去重策略,再举一两组重复的原文,读者就能判断去重的尺度是否合适。

12

小结

重复分原样复制、近似复制和同义改写三种,字面方法看得出前两种,语义方法三种都能覆盖。

TATOOLS 把每条文本变成单位长度的语义向量,两两计算余弦相似度,达到阈值的算一对重复。

阈值由相似度阈值、去重策略和分析场景共同决定,实际使用的阈值写在报告里。

重复对按单连接方式连成组,每组选出平均相似度最高的代表原文,雷达图画出重复强度、覆盖范围和跨文件扩散。

同义改写模式用语义相似度乘以字面差异度得到改写嫌疑分,并逐词标出改动。

找出重复组以后,想每组保留一条、其余标为并入,可以用 TATOOLS 的【重复内容合并】;想先把空洞、刷屏的段落筛掉,用【信息价值评估】;想按意思把全部文本分成几类,用【高级文本聚类】。

13

资料来源

Broder:On the Resemblance and Containment of Documents,Proceedings of Compression and Complexity of Sequences,1997

Reimers 与 Gurevych:Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks,Proceedings of EMNLP-IJCNLP,2019

Jaccard:The Distribution of the Flora in the Alpine Zone,New Phytologist,第 11 卷第 2 期,1912

Gower 与 Ross:Minimum Spanning Trees and Single Linkage Cluster Analysis,Journal of the Royal Statistical Society Series C,第 18 卷第 1 期,1969

Tarjan:Efficiency of a Good But Not Linear Set Union Algorithm,Journal of the ACM,第 22 卷第 2 期,1975

Dolan 与 Brockett:Automatically Constructing a Corpus of Sentential Paraphrases,Proceedings of the Third International Workshop on Paraphrasing,2005


END