| Algoritmo :: Rabinkarp. Rabin-Karp Streaming Hash |
Scarica ora |
Algoritmo :: Rabinkarp. Classifica e riepilogo
- Licenza:
- Perl Artistic License
- Nome editore:
- Norman Nunley, Jr
- Sito web dell'editore:
- http://search.cpan.org/~nnunley/
Algoritmo :: Rabinkarp. Tag
Algoritmo :: Rabinkarp. Descrizione
Rabin-Karp Streaming Hash Algoritmo :: Rabinkarp è un'implementazione dello streaming di Rabin e del Karp, come descritto in "winnowing: algoritmi locali per il documento delle impronte digitali" di Schleimer, Wilkerson e Aiken. Seguendo il suggerimento di Schleimer, sto usando la loro seconda equazione: $ h ] = (($ h ] - $ c ** $ k) + $ c ) * $ k I risultati di questo hash codificano informazioni sui prossimi valori K nel flusso (hense k-gram.) Questo significa per qualsiasi flusso di lunghezza N valori interi (o caratteri), recupererai N - K + 1 hash valori. Per i migliori risultati, vorrai creare un generatore di codice che filtra i tuoi dati per rimuovere tutte le informazioni non necessarie. Ad esempio, in un grande documento inglese, probabilmente dovresti rimuovere tutto lo spazio bianco, così come la rimozione di tutti i capitalizzazione.synopsis my $ wext = "A eseguire esecuzione di esecuzione, una corsa eseguita"; My $ KGRAM = ALGORITHM :: Rabinkarp-> Nuovo ($ finestra, $ testo); o my kgram2 = algoritmo :: rabinkarp-> nuovo ($ finestra, $ fh); o my $ kgram3 = algoritmo :: Rabinkarp-> Nuovo ($ finestra, sub {... ritorna $ num, $ posizione;}); My ($ Hash, $ Start_Position, $ End_Position) = $ KGRAM-> Avanti; My @Values = $ kgram-> valori; La mia% si verifica; # Un dizionario di tutti i kgram. while (my ($ hash, @pos) = @ {shift @values}) {push @ {$ verifications {$ hash}}, \ @pos; } My $ Ago = Algoritmo :: Rabinkarp-> Nuovo (6, "Ago"); Apri il mio $ FH, "nuovo (6, $ FH); My $ Needle_Hash = $ Ago-> Avanti; while (my ($ fieno_hash, @pos) = $ haystack-> next) {warn "Possibile partita per 'ago' a @pos" se $ wedle_hash eq $ hAY_HASH; } Requisiti: · Perl.
Algoritmo :: Rabinkarp. Software correlato