MinHash

v0.1.0Adicionado em 26 de set. de 2026

Detecção de quase duplicatas com assinaturas MinHash, idêntica bit a bit ao datasketch. Estima a similaridade de Jaccard entre conjuntos de tokens em espaço constante, para deduplicar corpora de RAG e dados de treinamento.

cargo install kura-rs
kura add minhash

Copia 2 arquivos de código-fonte para o seu projeto. A partir daí, o código é seu.

Se outra ferramenta já instala um comando kura, execute cargo install kura-rs --bin kura-rs e use kura-rs add no lugar.

use crate::parts::minhash::MinHasher;

// Same num_perm and seed as datasketch.MinHash() → identical signatures
let hasher = MinHasher::new(128, 1);

let a = hasher.signature("the quick brown fox jumps".split_whitespace());
let b = hasher.signature("the quick brown fox leaps".split_whitespace());

println!("estimated jaccard = {:.3}", a.jaccard(&b));

Verificado com datasketch 2.0.0 (Python). Método: Teste diferencial. As mesmas entradas são enviadas às duas implementações e as saídas são comparadas.

Referência
datasketch
Python 2.0.0
Casos de teste
20.000
Teste diferencial
Aprovados
20.000 / 20.000
Todos os casos batem
Última execução
26 de set. de 2026
UTC

kura-rs (Rust) comparado com datasketch em vários tamanhos de entrada. Mais rápido em todos os tamanhos de entrada medidos, até 19× mais rápido.

kura-rs (Rust)datasketch
Tempo real por execução (menor é melhor).
Mostrar tabela de dados
Tamanho da entradakura-rs (Rust)datasketchAceleração
100 ms0,01 ms19×
1000 ms0,04 ms9.9×
1.0000,04 ms0,37 ms8.8×
10.0000,42 ms3,73 ms9.0×
100.0004,14 ms37 ms8.9×

Tamanho da entrada: tokens per document (num_perm = 128).

Medido em Apple M4 Pro, macOS 27.0 (arm64). kura-rs com rustc 1.98.1; a referência com Python 3.14.6, numpy 2.5.3.

Arquivos

  • parts/minhash/mod.rs
  • parts/minhash/permutation.rs

Dependências (crates)