C++ 基于文本的指纹不同距离计算算法
因此,我有大量的.txt文件(数GB),我希望能够组织它们,并找到一些方法来查找几乎重复的文件和编辑 是否有一种算法可以读取文本文件,并生成一种散列或文本指纹,这样一个文本块的编辑或添加次数越多,其汉明距离距离给定的指纹/散列越远? 例如:给定任意长度的文本,我可以生成一个长度为N的值。可用于检查其他文本文档之间的相似性 所以:对于N=8C++ 基于文本的指纹不同距离计算算法,c++,algorithm,text,hash,fingerprinting,C++,Algorithm,Text,Hash,Fingerprinting,因此,我有大量的.txt文件(数GB),我希望能够组织它们,并找到一些方法来查找几乎重复的文件和编辑 是否有一种算法可以读取文本文件,并生成一种散列或文本指纹,这样一个文本块的编辑或添加次数越多,其汉明距离距离给定的指纹/散列越远? 例如:给定任意长度的文本,我可以生成一个长度为N的值。可用于检查其他文本文档之间的相似性 所以:对于N=8 "Some text bla bla bla bla bla ext." => "21juob1G" "Other text of differen
"Some text bla bla bla bla bla ext." => "21juob1G"
"Other text of different length" => "fejbweoi"
"Close text bla bla bla bla bla ext." => "f2juob1G"
在例1和例3之间,输出非常相似,我可以计算汉明距离并确定给定的文本非常相似
<强>试图在C++中构建这个。这是否存在?
我研究了剽窃算法,并看到了一些前景,但我找不到任何一个有好的例子或算法描述可以复制的 我目前的方法是,从给定的文本中去掉所有非字符,将其分成32个大小相等的块,然后将所有字母的总和计算为数字,然后将结果转换为单个字节的sigmoid。但我得到的结果是。。。太相似了。一般来说,尼尔西玛可能与此相关参见:一般来说,尼尔西玛可能与此相关参见:和