AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wiederkehrende Patterns in einem Text finden
Thema durchsuchen
Ansicht
Themen-Optionen

Wiederkehrende Patterns in einem Text finden

Ein Thema von Meflin · begonnen am 26. Jul 2007 · letzter Beitrag vom 26. Jul 2007
 
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
913 Beiträge
 
Delphi 12 Athens
 
#9

Re: Wiederkehrende Patterns in einem Text finden

  Alt 26. Jul 2007, 10:26
Wenn man weiß, welche Pattern man finden möchte, gibt es diverse schnelle Algorithmen.

Da wäre zum einen der Aho-Corasick-Algorithmus (ca. 1977) (Prinzip vergleichbar mit dem Algorithmus von Knuth, Morris und Pratt, nur auf Multipattern erweitert). Dann gibts Commentz-Walter (ca. 1979), den ich nocht nicht richtig verstanden habe, und den Wu-Manber-Algorithmus (ca 1994), der in den meisten Fällen am schnellsten ist. Wenn extrem viele Pattern simultan gesucht werden sollen, dann vielleicht noch den Set-Backward-Oracle-Matching-Algorithmus (ca. 1999) anschauen. Obs danach nocht interessante Weiterentwicklungen gibt, weiß ich nicht.

Um die Muster zu bestimmen, die man sucht, könnte man den Text in eine Baumstruktur speichern, die ca. O(n^2) Platz benötigen wird. An den Knoten sind die Zeichen des Textes gespeichert. Zuerst fügt man den gesamten Text zeichenweise ein, dann den Text ohne das erste Zeichen, dann ohne das zweite etc. Das einfügen immer so, dass schon vorhandene Kanten weitergenutzt werden, und dass ein Weg von der Wurzel zu einem Blatt ein Suffix des Textes ist. Beim Aufbau merken, wenn eine Kante mehrfach benutzt wird und diesen Wert an der Kante speichern.
Den fertigen Baum sucht man dann ausgehend von der Wurzel möglichst lange Wege mit hohen Kantenwerten, und erstellt daraus seine Musterliste.
Die Idee ist bei mir noch nicht ganz ausgereift, aber das mit dem Baum hat Hagen ja schon eingeworfen, so komplett falsch kann das also nicht sein
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz