我正在寻找一个 node.js / Javascript 模块,它将 minhash 算法应用于字符串或更大的文本,并为我返回该文本的“识别”或“特征”字节字符串或十六进制字符串。如果我将该算法应用于另一个相似的文本字符串,则哈希字符串也应该相似。这样的模块是否已经存在?
到目前为止,我正在检查的模块只能直接比较文本并直接计算与比较文本的某种 jaccard 相似度,但我想为每个文档存储某种哈希字符串,以便以后可以如果我有相似的文本,比较字符串的相似性......
本质上,我正在寻找的是这里的代码(Java):在 Javascript 中: https ://github.com/codelibs/elasticsearch-minhash
例如,对于像:这样的字符串
"The quick brown fox jumps over the lazy dog"
,"The quick brown fox jumps over the lazy d"
它会为第一句话创建一个哈希,例如:
"KV5rsUfZpcZdVojpG8mHLA=="
对于第二个字符串,例如:
KV5rsSfZpcGdVojpG8mGLA==
两个哈希字符串差别不大......这就是minhash算法的重点,但是,我不知道如何创建类似的哈希字符串......到目前为止我发现的所有库,只直接比较2个文档和创建一个相似系数,但它们不会创建文档特征的哈希字符串...与所有算法的相似之处在于,它们为其单词标记数组(或带状疱疹)创建散列 crc32(或类似)散列值. 但我仍然不知道他们如何将这些哈希相互比较......