文本相似度对比工具
实时计算两段文本的相似度,支持 Levenshtein 编辑距离、相似度比率、Jaccard 相似度、 最长公共子序列(LCS)四种指标,并提供字符级差异高亮。适用于查重检测、文本去重、 模糊匹配、版本对比等场景。所有计算在浏览器本地完成。
在上方输入两段文本,即可实时计算相似度。
支持 Levenshtein 编辑距离、Jaccard 相似度、最长公共子序列三种算法。
常见问题
什么是 Levenshtein 编辑距离?
Levenshtein 编辑距离(莱文斯坦距离)是指将一个字符串转换为另一个字符串所需的最少单字符编辑操作次数。 允许的操作有三种:插入一个字符、删除一个字符、替换一个字符。 例如 "kitten" 和 "sitting" 的编辑距离为 3(k→s, e→i, +g)。编辑距离越小,两段文本越相似。 本工具使用动态规划算法计算,时间复杂度 O(m×n),并使用滚动数组优化空间至 O(min(m, n))。
四种相似度指标有什么区别?
Levenshtein 编辑距离:字符级精确距离,衡量单字符编辑操作数,适合拼写纠错、模糊匹配。
相似度比率:1 - 编辑距离 / 最大长度,范围 0~100%,适合直观判断相似程度。
Jaccard 相似度:分词后计算词汇集合的交集/并集比,衡量词汇重叠度,适合文档查重。
LCS 相似度:最长公共子序列长度占比,衡量结构相似性,适合版本对比、代码差异分析。
Jaccard 相似度和编辑距离哪个更适合查重?
两者侧重点不同。Jaccard 相似度基于词汇集合,忽略词序和重复次数, 适合快速判断两篇文章是否讨论相似主题——即使段落顺序不同,只要词汇重叠度高,Jaccard 值就高。 编辑距离基于字符序列,考虑顺序和位置,适合检测逐字抄袭或微小修改。 查重场景建议同时参考两个指标:Jaccard 高但编辑距离大 = 主题相似但表述不同; Jaccard 高且编辑距离小 = 可能存在抄袭。
差异高亮是如何生成的?
差异高亮基于最长公共子序列(LCS)算法生成。工具先计算两段文本的 LCS, 然后按公共子序列将文本切分为三类片段:公共部分(灰色)、 删除部分(文本 A 中有但文本 B 中无,红色)、新增部分(文本 B 中有但文本 A 中无,绿色)。 相邻同类型片段会自动合并,减少渲染节点。注意:对于超长文本,字符级 diff 可能影响性能。
大小写敏感和忽略空白有什么影响?
大小写敏感(默认关闭):关闭时 "Hello" 和 "hello" 视为相同字符, 适合不区分大小写的比较场景(如代码标识符、文件名)。 去除首尾空白:移除每行首尾空格和制表符,并将连续空格压缩为单个, 适合比较缩进不规范的文本。 忽略空行:移除空行后再比较,适合两段文本的空行数量不同但内容相似的情况。 所有预处理在计算前统一应用,确保各指标基于同一规范化文本。
这个工具适合哪些使用场景?
① 论文/文章查重辅助:快速判断两段文本的相似程度; ② 代码版本对比:比较两个版本的代码差异; ③ 模糊匹配:在数据清洗中查找相似记录; ④ 翻译质量评估:对比机翻与人翻的文本差异; ⑤ 配置文件对比:检测配置变更范围; ⑥ SEO 内容原创度检查:判断内容是否与已有文章过度相似。
数据会上传到服务器吗?
不会。本工具完全在浏览器内运行,所有相似度计算由 JavaScript 在你本地执行, 不会发送任何输入文本或计算结果到服务器。全程零网络请求,可离线使用。