Publicité D▼
⇨ voir la définition de Wikipedia
Publicité ▼
Wikipedia
Der Baeza-Yates-Gonnet-Algorithmus bzw. Shift-or-Algorithmus, der auch unter dem Namen Shift-and bekannt ist, löst das String Matching-Problem indem er einen nichtdeterministischen Automaten simuliert. Unter anderem wird eine Abwandlung dieses Algorithmus bei dem Unix-Tool grep benutzt.
Da die Implementierung auf Bit-Operationen zurückgeführt werden kann, ist der Algorithmus alleine von der Ausführung her bereits sehr effizient. Kombiniert man dies mit dem zu Grunde liegenden System (im Preprocessing einmal Schleife über das Muster, während der Suche einmal Schleife über den Text) ergibt sich ein extrem effizienter Algorithmus.
Inhaltsverzeichnis |
Grundlage des Algorithmus bildet eine Menge von Vektoren mit folgender Definition:
Anschaulich bedeutet dies, dass genau dann ist, wenn nach der Verarbeitung von Zeichen des Textes die letzten Zeichen mit den ersten Zeichen des Suchmusters übereinstimmen.
Ein Treffer für ein Suchmuster mit Länge ist demnach gefunden, falls .
Weiterhin werden die charakteristischen Vektoren für alle möglicherweise im Text vorkommenden Zeichen benötigt:
Beispiel:
Suchmuster , Länge
Charakteristische Vektoren:
Um den Ablauf zu vereinfachen, wird zunächst eine spezielle Bit-Operation Bitshift bzw. für den Vektor eingeführt:
Der Algorithmus für exakte Übereinstimmungen lässt sich nun auf wenige einfache Schritte reduzieren:
Die Schritte (2) und (3) führen bei genauer Betrachtung genau die Berechnungsvorschrift für aus: Durch das Shiften wird aus dem "alten" das Zeichen an Stelle an die Stelle angelegt (entspricht in Kombination mit der Bedingung ). Der charakteristische Vektor des aktuellen Textzeichens enthält an der Stelle genau dann eine , falls Muster und Text hier übereinstimmen. Durch das werden beide Bedingungen verknüpft.
Muster: ,
Text:
Da liegt ein Treffer bei (Position − Musterlänge + Korrektur für erstes Zeichen) vor.
Der Algorithmus kann durch leichte Modifikationen eine fehlertolerante Suche durchführen. Hierfür wird der Vektor aufgeteilt:
Achtung: Bei den fehlerbehafteten Vektoren ist die obige Interpretation mit „nach j Zeichen stimmen die letzten i mit den ersten i des Musters überein“ schwierig und nicht mehr unbedingt einleuchtend.
Die Berechnungsvorschrift für bleibt unverändert. Für Fehlervektoren wird nach der verursachenden Aktion unterschieden:
Erläuterung: Der erste Teil des Ausdrucks beschreibt den Fall, dass bereits Fehler vorhanden sind, aber das aktuelle Zeichen von Text und Muster übereinstimmen. Der zweite Teil beschreibt den Fehlerfall: Bisher (in ) lagen nur Fehler vor, das aktuelle Zeichen kann also in das Muster eingefügt werden.
Interpretation: , falls nach Zeichen der Eingabe von den letzten Zeichen mindestens Zeichen mit dem Suchmuster übereinstimmen und der Rest durch Einfügen der fehlenden Zeichen zur Übereinstimmung gebracht werden kann.
Erläuterung: Der erste Teil des Ausdrucks beschreibt den Fall, dass bereits Fehler vorhanden sind, aber das aktuelle Zeichen von Text und Muster übereinstimmen. Der zweite Teil beschreibt den Fehlerfall: Schaut man sich bei Zeichen des Textes nicht die ersten Zeichen an, sondern nur die ersten (im Vektor die Position darüber), so stimmt das Muster bis auf Fehler überein. Das Zeichen des Musters wird daraufhin einfach gelöscht.
Erläuterung: Der erste Teil des Ausdrucks beschreibt den Fall, dass bereits Fehler vorhanden sind, aber das aktuelle Zeichen von Text und Muster übereinstimmen. Der zweite Teil beschreibt den Fehlerfall: Nach Zeichen stimmten die letzten Zeichen überein. Ersetzt man nun also das Zeichen im Muster durch das Zeichen des Textes, stimmen auch nach Zeichen die letzten Zeichen mit den ersten Zeichen des „neuen“ Musters überein.
Die Varianten können mittels beliebig verknüpft werden.
Contenu de sensagent
dictionnaire et traducteur pour sites web
Alexandria
Une fenêtre (pop-into) d'information (contenu principal de Sensagent) est invoquée un double-clic sur n'importe quel mot de votre page web. LA fenêtre fournit des explications et des traductions contextuelles, c'est-à-dire sans obliger votre visiteur à quitter votre page web !
Essayer ici, télécharger le code;
SensagentBox
Avec la boîte de recherches Sensagent, les visiteurs de votre site peuvent également accéder à une information de référence pertinente parmi plus de 5 millions de pages web indexées sur Sensagent.com. Vous pouvez Choisir la taille qui convient le mieux à votre site et adapter la charte graphique.
Solution commerce électronique
Augmenter le contenu de votre site
Ajouter de nouveaux contenus Add à votre site depuis Sensagent par XML.
Parcourir les produits et les annonces
Obtenir des informations en XML pour filtrer le meilleur contenu.
Indexer des images et définir des méta-données
Fixer la signification de chaque méta-donnée (multilingue).
Renseignements suite à un email de description de votre projet.
Jeux de lettres
Les jeux de lettre français sont :
○ Anagrammes
○ jokers, mots-croisés
○ Lettris
○ Boggle.
Lettris
Lettris est un jeu de lettres gravitationnelles proche de Tetris. Chaque lettre qui apparaît descend ; il faut placer les lettres de telle manière que des mots se forment (gauche, droit, haut et bas) et que de la place soit libérée.
boggle
Il s'agit en 3 minutes de trouver le plus grand nombre de mots possibles de trois lettres et plus dans une grille de 16 lettres. Il est aussi possible de jouer avec la grille de 25 cases. Les lettres doivent être adjacentes et les mots les plus longs sont les meilleurs. Participer au concours et enregistrer votre nom dans la liste de meilleurs joueurs ! Jouer
Dictionnaire de la langue française
Principales Références
La plupart des définitions du français sont proposées par SenseGates et comportent un approfondissement avec Littré et plusieurs auteurs techniques spécialisés.
Le dictionnaire des synonymes est surtout dérivé du dictionnaire intégral (TID).
L'encyclopédie française bénéficie de la licence Wikipedia (GNU).
Copyright
Les jeux de lettres anagramme, mot-croisé, joker, Lettris et Boggle sont proposés par Memodata.
Le service web Alexandria est motorisé par Memodata pour faciliter les recherches sur Ebay.
La SensagentBox est offerte par sensAgent.
Traduction
Changer la langue cible pour obtenir des traductions.
Astuce: parcourir les champs sémantiques du dictionnaire analogique en plusieurs langues pour mieux apprendre avec sensagent.
calculé en 0,047s