Algoritme :: Rabinkarp

Rabin-Karp Streaming Hash
Download nu

Algoritme :: Rabinkarp Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Norman Nunley, Jr
  • Uitgever website:
  • http://search.cpan.org/~nnunley/

Algoritme :: Rabinkarp Tags


Algoritme :: Rabinkarp Beschrijving

Rabin-Karp Streaming Hash Algoritme :: Rabinkarp is een implementatie van Rabin en Karp's streaming hash, zoals beschreven in "winning: lokale algoritmen voor document vingerafdrukken" door Schleimer, Wilkerson en Aiken. Na de suggestie van Schleimer gebruik ik hun tweede vergelijking: $ H ] = (($ H ] - $ C ** $ K) + $ C ) * $ kthe resultaten van deze hash codeert informatie over de volgende K-waarden in de stroom (Hense K-Gram.) Dit betekent voor elke gegeven stroom van lengte n gehele waarden (of tekens), krijgt u terug N - K + 1 HASH-waarden. Voor de beste resultaten wilt u een code generator maken die uw gegevens filtert om alle onnodige informatie te verwijderen. Bijvoorbeeld, in een groot Engels document, moet je waarschijnlijk alle witte ruimte verwijderen, evenals het verwijderen van alle kapitalisatie.Synopsis mijn $ Text = "A Do Run Run RUN, A DO RUN RUN"; Mijn $ kgram = algoritme :: Rabinkarp-> Nieuw ($ venster, $ Tekst); of mijn $ KGRAM2 = algoritme :: Rabinkarp-> Nieuw ($ venster, $ FH); of mijn $ kgram3 = algorithm :: Rabinkarp-> Nieuw ($ venster, sub {... return $ num, $ positie;}); Mijn ($ HASH, $ START_POSITIE, $ END_POSITIE) = $ KGRAM-> NEXT; mijn @values = $ kgram-> waarden; mijn% voorkomt; # een woordenboek van alle Kgrams. Terwijl (mijn ($ hash, @POS) = @ {shift @values}) {push @ {$ voorkomt {$ hash}}, \ @pos; } mijn $ naald = algoritme :: Rabinkarp-> Nieuw (6, "naald"); open mijn $ FH, 'nieuw (6, $ FH); mijn $ naald_hash = $ naald-> volgende; Terwijl (mijn ($ hay_hash, @POS) = $ hooiberg-> volgende) {Warn "mogelijke match voor 'naald' bij @POS 'if $ needle_hash eq $ hay_hash; } Vereisten: · Perl


Algoritme :: Rabinkarp Gerelateerde software