我想用文本(在我的例子中是 html)制作一种哈希键,与其他类似文本的哈希匹配/比较
匹配文本示例:
- “2012/10/01 这是我的网页 #1”+ 100k_of_same_text + random_words_1 + ..
- “2012/10/02 这是我的网页 #2”+ 100k_of_same_text + random_words_2 + ..
- ...
- “2012/10/02 这是我的网页#2”+ 100k_of_same_text + random_words_3 + ..
到目前为止,我已经考虑过删除数字和标签,但仍然会留下随机单词。
外面有什么东西可以这样吗?
我有服务器的 root 权限,所以我可以添加任何必要的 UDF,如果需要,我可以用 c 或其他语言进行处理。
理想的是像 generateSimilarHash(text)
这样的函数和一个返回匹配文本百分比的函数 compareSimilarHashes(hash1,hash2)
。
像 compare(text1,text2) 这样的任何函数都不会像我的情况那样工作,因为我有很多页面要比较(目前约 2000 万)
欢迎任何建议!
更新:
我指的是维基百科上描述的散列函数
:
A hash function is any algorithm or subroutine that maps large data sets of variable length to smaller data sets of a fixed length.
在我的情况下,固定长度 部分不是必需的。
最佳答案
听起来您需要使用像 diff 这样的程序。
如果您只是想比较文本,散列不是可行的方法,因为输入的细微差别会导致输出的完全不同。 (因此它们被用来编码密码和保护文本的原因)。字符差异程序非常复杂,除非您真的对它们的工作原理感兴趣并且正在尝试编写自己的程序,否则我只会使用此处所示的解决方案,使用 sdiff 来获取百分比。
关于mysql - 如何从 ~200k 文本/html 生成与相似文本匹配/比较的散列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14760613/