文本相似度检查器
将两个文本与真实的 n-gram Jaccard 相似度和单词级 LCS 重叠分数进行比较,并并排突出显示匹配的段落。
结果
该工具使用两种独立的、真实的、有据可查的算法来比较您粘贴的两个文本,而不是模糊的“看起来相似”启发式。第一个是 n-gram Jaccard 相似度:每个文本被标记为单词,然后分成 n 个连续单词的重叠运行(n-gram;默认为 n=3,一个 trigram,您可以将其从 1 调整到 5)。两个生成的 n 元语法集的 Jaccard 索引(交集的大小除以并集的大小)是一种基于标准集的相似性度量,用于信息检索和近似重复检测。 n 越高,捕获的共享短语越长,并且对精确措辞越严格;较低的 n 更宽容,即使在不同结构的句子之间也能捕获松散的单词重叠。
第二种算法是真正的单词级最长公共子序列 (LCS),使用真正的 O(n·m) 动态规划表对两个单词序列进行计算 - 与 diff 工具使用的教科书算法相同,而不是近似值。与 n-gram 得分不同,LCS 不要求匹配的单词是连续的,因此即使在共享短语之间对句子进行了重新排序或轻微编辑,它也会捕获重叠。重叠百分比是从 LCS 长度相对于两个文本的平均长度得出的。然后回溯 DP 表,以准确识别每个文本中的哪些单词参与了最长的公共序列,这是一个突出的功能:这些单词被映射回原始文本(其原始间距、换行符和标点符号完好无损)并并排呈现为突出显示的跨度,因此您可以准确地看到哪些段落重叠,而不是相信一个裸露的数字。
范围和诚实在这里很重要:这是一个两个文本比较工具,而不是抄袭检测器。它没有互联网连接,没有搜索索引,也没有可供检查的其他人内容的数据库——它只能告诉你粘贴的两个文本彼此有多相似。这使得它非常适合比较草稿修订、检查释义或重写实际更改的程度,或在您自己的页面上发现近乎重复的内容。单词匹配不区分大小写,O(n·m) LCS 表的上限为几百万个单词对单元 - 对于非常大的文本(大约有几千个单词),精确的 LCS 和突出显示步骤将通过简单语言注释跳过,而 n-gram Jaccard 分数仅花费线性时间,始终在全文上计算。一切都在您的浏览器本地运行;任何文本都不会离开您的设备。