Giter Site home page Giter Site logo

stringologie's Introduction

Projekt Stringologie

Algorithmen

Auswahl

  • Naives Schiebefenster
  • Schiebefenster mit Heuristik (Buchstabenhäufigkeit)
  • Boyer-Moore

Grund

  • Wieviele Vergleiche kann ich wirklich sparen im Vergleich zum naiven Algorithmus?
  • Ist das nur für automatische Verarbeitung interessant, oder auch ein “fühlbarer” Unterschied?
  • Heuristiken ermöglichen häufig sehr effiziente Algorithmen (Paradebeispiel A*). Gilt der deutliche Vorteil auch bei der Suche auf Strings?
  • Boyer-Moore vergleicht die Fenster von hinten und unterscheided sich deutlicher vom naiven Ansatz, als die Anderen.

Datensätze

Textcorpus Shakespeare

  • schon vorhanden
  • im englischen gibt es Buchstabenkombinationen, die sehr häufig vorkommen (Endung -ing, viele andere link)
  • diese sollten ermöglichen das Fenster relativ weit springen können
  • 37 Texte, ~4MB
  • Vermutlich reicht Test auf einem davon

CLMET - The Corpus of Late Modern English Texts

  • schon vorhanden
  • 200MB roher Text
  • ich will alle Dokumente zu einem zusammenführen
  • darauf alle Vorkommen eines Wortes suchen

Künstlicher Corpus

  • Begrenztes Alphabet (5 Zeichen)
  • 2 Texte, einmal Zeichen gleichverteilt, einmal Unterschiedlich
  • Zufallsmuster

Erwartete Ergebnisse

Auf Shakespeare

  • Zu Messen
    • Vergleiche Zählen
    • Fensterverschiebung (max/avg)
  • Boyer-Moore sollte wegen den Vergleichen von hinten (-ing) gewinnen
  • Heuristik bei Suche nach Wörtern mit seltenen Buchstaben (x, q) evtl. im Vorteil

auf CLMET

  • Zu Messen
    • alle Vorkommen finden
    • Laufzeit (geht das unter 1 sek?) Wenn ja Corpus noch vergrößern (aber in RAM bleiben)
  • Dimensionen Suchmuster: Länge, Häufigkeit in Text
  • Erwartung s.o.

Künstlicher Corpus

  • Dimension Suchmuster: Länge (50 Zeichen vs. 5)
  • Bei langem sollte Boyer-Moore deutlich überlegen sein
  • Heuristik sollte bei Gleichverteilter Buchstabenhäufigkeit wertlos sein

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.