我创建了 Antiplagiat。我使用瓦片法。例如,我有以下带状疱疹:
- 我去电影院
- 我去电影院1
- 我去电影院
有没有一种方法可以计算这些行的相等哈希?
我知道 Levenshtein 距离的存在。但是,我不知道我应该取什么源词。也许有比考虑 Levenshtein 距离更好的方法。
我创建了 Antiplagiat。我使用瓦片法。例如,我有以下带状疱疹:
有没有一种方法可以计算这些行的相等哈希?
我知道 Levenshtein 距离的存在。但是,我不知道我应该取什么源词。也许有比考虑 Levenshtein 距离更好的方法。
散列的问题在于,从逻辑上讲,您将遇到 2 个字符串,它们的不同之处在于散列为不同值的单个字符。
小证明:
考虑所有可能的字符串。
假设所有这些散列到至少 2 个不同的值。
取任意 2 个字符串 A 和 B 散列到不同的值。
您显然可以通过一次更改一个字符来从 A 转到 B。
因此,在某些时候哈希会改变。
因此,此时散列对于单个字符更改将是不同的。
我能想到的一些选择:
散列字符串的多个部分并检查每个散列。可能不会很好地工作,因为单个字符遗漏会导致散列值的显着差异。
检查一系列哈希值。哈希是一维的,但字符串相似性不是,因此这可能也不起作用。
总而言之,散列可能不是要走的路。