Verfahren zur Suche von Suchzeichenketten und Einrichtung hierfür
Die Erfindung betrifft ein Verfahren zur Suchen von Suchzeichenketten in einer Namensliste die eine Vielzahl von Einträgen in Form von Zeichenketten hat.
Die Erfindung betrifft weiterhin eine Einrichtung, insbesondere ein Navigationsgerät, mit einem Speicher für eine Namensliste, die eine Vielzahl von Einträgen in Form von Zeichenketten hat, mit einer Eingabeeinheit zur Eingabe von Suchzeichenketten, mit einer Ausgäbeeinheit zur Ausgabe von Daten, und mit einer programmgesteuerten Prozessoreinrichtung.
Beispielsweise bei Navigationsgeräten erfolgt die haptische Eingabe von Navigationszielen, wie zum Beispiel Ortsnamen, Straßennamen und interessanten Punkten (Point of Interest), herkömmlicherweise durch Anbuchstabieren. Die einzelnen Buchstaben einer Suchzeichenkelte werden nacheinander aus einem auf dem Display angebotenen Alphabet ausgewählt. Das Alphabet wird dabei vom Gerät auf die
Buchstaben eingeschränkt, die eine sinnvolle Eingabemöglichkeit darstellen (Automatic Speller Function). Ist ein Name genügend weit anbuchstabiert, um eindeutig zu sein, braucht der Benutzer keine weiteren Buchstaben der Suchzeichenkette mehr einzugeben. Weiterhin kann nach der Eingäbe einiger Buchstäben der Suchzeichenkette auch die Liste der alphabetisch nachfolgenden Namen der Namensliste gewechselt werden.
Bei dieser herkömmlichen Methode der haptischen Eingäbe ist eine Suche von Suchzeichenketten in Einträgen einer Namensliste nicht möglich, wenn die Suchzeichenketten nicht am Anfang des Eintrags liegen.
Aufgäbe der Erfindung ist es daher, ein verbessertes Verfahren zur Suche von
Suchzeichenketten in einer Namensliste zu schaffen, die eine Vielzahl von Einträgen in Form alphanumerischer Zeichenketten hat, wobei die Suchzeichenketten an einer beliebigen Stelle in einem Eintrag vorkommen können.
Die Aufgäbe wird mit dem gattungsgemäßen Verfahren erfindungsgemäß gelöst durch
Bestimmen des seltensten Zeichens in der Suchzeichenkette in Abhängigkeit von einer festgelegten Auflretenshäufigkeit einzelner Zeichen und Suchen der Suchzeichenkette in der Namensliste in Abhängigkeit von dem Auftreten des seltensten Zeichens in dem jeweiligen Eintrag der Namensliste.
Mit dem Verfahren ist es nunmehr möglich, Teilstücke eines gesuchten Eintrages einzugeben und in den Einträgen einer Namensliste zu suchen. Das Verfahren kann beispielsweise im Fahrerinformationssystem zur Unterstützung der haptischen Eingäbe von Namen, wie zum Beispiel Ortsnamen, Straßennamen, Namen interessierender Punkte, Titel von Musikstücken auf Musikdatenträgern, wie CD's, Adressbucheinträge, etc. zum Einsatz kommen.
Durch die Festlegung der Auflretenshäufigkeit einzelner Zeichen in einer Sprache oder in der Namensliste werden zunächst selten auftretende Zeichen von häufiger auftretenden Zeichen unterschieden. Bei der Suche wird dann der Fokus auf das seltenste Zeichen in der Suchzeichenkette gelegt und damit der Suchaufwand erheblich reduziert. Einträge, die das seltenste Zeichen nicht enthalten, brauchen dann nicht weiter betrachtet zu werden.
Vorzugsweise erfolgt die Suche mit den Schritten:
a) Bilden einer Vergleichszeichenkette mit einer Anzahl des seltensten Zeichens;
b) Ermitteln der Differenzzeichenkette zwischen der Suchzeichenkette und der Vergleichszeichenkette;
und für jeden Eintrag in der Namensliste:
c) Suchen des seltensten Zeichens in dem Eintrag der Namensliste, wobei für jede gefundene Stelle des seltensten Zeichens in dem Eintrag eine Umgebungsdifferenz- Zeichenkette zwischen dem alphanumerischen Zeichen des Eintrags und der Vergleichs¬ zeichenkette ermittelt und mit der Differenzzeichenkette verglichen wird, und wobei das Vorkommen der Suchzeichen-kette in dem Eintrag bei dem Vergleich erkannt wird, wenn die Differenzzeichenkette in der Umgebungsdifferenz-Zeichenkette enthalten ist.
Für die Suche erfolgt bei den Einträgen, die das seltenste Zeichen enthalten, ein Vergleich der umgebenden Zeichen mit einer Differenzzeichenkette in der Art eines Mustervergleichs. Wenn die umgebenen Zeichen nicht zu der Differenzzeichenkette passen, werden die Einträge auf weitere Vorkommen des seltensten Zeichens hin unter¬ sucht. Sofern die umgebenen Zeichen zu der Differenzzeichenkette passen, wird der entsprechende Eintrag in einer Ergebnisliste geschrieben.
Bei der Suche können Einträge in der Namensliste ausgeschlossen werden und unberücksichtigt bleiben, deren Länge kleiner als die Länge der Suchzeichenkette ist. Dann kann die Suchzeichenkette nämlich nicht in dem Eintrag enthalten sein.
Vorzugsweise erfolgt ein Umwandeln der Suchzeichenketten und der Einträge einheitlich in Großbuchstaben oder Kleinbuchstaben. Weiterhin sollten Umlaute in den
Suchzeichenketten und Einträgen in entsprechende Buchstabenpaare umgewandelt werden (Ä = AE, Ö =OE, Ü = UE).
Die Einträge, Suchzeichenketten, Vergleichszeichenketten, Differenzzeichenketten und Umgebungsdifferenz-Zeichenketten werden vorzugsweise numerisch, wie zum Beispiel mit ASCII-Zeichen, oder in einer anderen Codierung repräsentiert.
Bevorzugt wird eine Ergebnisliste durch Schreiben eines Eintrages in die Ergebnisliste angelegt, wenn eine Suchzeichenkette in dem Eintrag enthalten ist. Die Ergebnisliste
- A -
kann dann beispielsweise alphabetisch oder nach Kategorien oder Distanzen von gefundenen Orten von einer Ausgangsposition sortiert werden. Kategorien können beispielsweise Straßennamen, Ortsnamen, Namen von Sehenswürdigkeiten oder anderen Points-of-Interest, wie z.B. Museen etc. sein, die die Suchzeichenkette enthalten.
Die Aufgabe wird weiterhin durch die gattungsgemäße Einrichtung, insbesondere ein Navigationsgerät oder Fahrerinformationssystem für Kraftfahrzeuge gelöst, indem eine programmgesteuerte Prozessoreinrichtung zur Durchführung des oben beschriebenen Verfahrens durch geeignete Programmierung ausgebildet ist.
Die Erfindung wird nachfolgend an Hand der beigefügten Zeichnungen beispielhaft näher erläutert. Es zeigen:
Figur 1 - Blockdiagramtn einer Einrichtung, wie zum Beispiel eines Navigationsgerätes, zur Durchfuhrung des erfindungsgemäßen Verfahrens;
Figur 2 - Flussdiagramm des erfindungsgemäßen Verfahrens.
Die Figur 1 lässt eine Einrichtung 1, wie zum Beispiel ein Navigationsgerät, als
Blockdiagramm erkennen. Die Einrichtung 1 hat einen Speicher 2, in dem eine Namensliste mit einer Vielzahl von Einträgen Li in Form alphanumerischer Zeichen abgelegt ist. Ih der Namensliste sind Ortsnamen, Straßennamen und interessierende Punkte (Points of Interest) festgehalten. Weiterhin ist eine Eingäbeeinheit 3 in Form einer alphanumerischen Tastatur oder eines Drehrädchens vorgesehen, um eine
Suchzeichenkette S durch einen Benutzer einzugeben, um die Einträge L aus der Namensliste zu suchen und in eine Ergebnisliste E zu schreiben, die die eingegebene Suchzeichenkette S enthalten. Hierzu verfügt die Einrichtung 1 über eine programmgesteuerte Prozessoreinrichtung 4. Die Ergebnisliste E wird dann auf einer Ausgabeeinheit 5, wie zum Beispiel einem Display, ausgegeben und dem Benutzer angezeigt.
Anschließend kann eine weitere Auswahl der Einträge Lj aus der Ergebnisliste E erfolgen.
Die Figur 2 lässt ein Flussdiagramm des erfindungsgemäßen Verfahrens zur Suche von
Suchzeichenketten in einer Namensliste erkennen, die eine Vielzahl von Einträgen L, in Form alphanumerischer Zeichenketten hat.
Zunächst wird die Auftretenshäufigkeit einzelner alphanumerischer Zeichen grundsätzlich festgelegt. Dies kann anhand der Auftretenshäufigkeit der einzelnen
Zeichen in einer relevanten Sprache oder anhand einer Bestimmung der Auftretenshäufϊgkeit der einzelnen Zeichen in der gespeicherten Namensliste oder ähnliches erfolgen.
Die Bestimmung der Auftretenshäufigkeit sowie die Durchführung des Verfahrens sollte ohne Unterscheidung von Groß- und Kleinbuchstaben erfolgen. Hierzu sollten die Einträge IA in der Namensliste sowie die Suchzeichenkette S zunächst in Groß- oder Kleinbuchstaben einheitlich umgewandelt werden. Zudem sollten Umlaute in die entsprechenden Buchstäbenpaare umgewandelt werden. Die Zeichenketten werden dann in Vektoren bestehend aus den zugehörigen numerischen ASCII-Werten umgewandelt. Damit kann das Verfahren numerisch durchgeführt werden.
Nach der Eingabe der Suchzeichenkette S erfolgt im Schritt a) die Bestimmung des seltensten Zeichens in der Suchzeichenkette S in Abhängigkeit von der festgelegten
Aufjtretenshäufigkeit. Dies kann anhand einer Tabelle mit den Auftretenshäufigkeiten der einzelnen Zeichen erfolgen. Das Festlegen der Auftretenshäufigkeit braucht nur einmal erfolgen, so dass die Tabelle auch mit den relevanten Datensätzen beispielsweise eines Navigationsgerätes mitgeliefert werden kann.
In einem Schritt b) wird dann eine Vergleichszeichenkette V mit einer Anzahl N des seltensten Zeichens in numerischer Repräsentation gebildet. Die Anzahl N entspricht der Länge der Suchzeichenkette S.
Ih einem Schritt c) wird dann eine Differenzzeichenkette D zwischen der Suchzeichenkette S und der Vergleichzeichenkette V in numerischer Repräsentation ermittelt, d. h. ein Differenzzeichenketten- Vektor D=S - Vus), wobei L(S) die Länge der Suchzeichenkette S ist. Die Differenzzeichenkette D hat genau an der Position des seltensten Buchstabens in der Suchzeichenkette S den Eintrag Null.
Anschließend wird iterativ jeder einzelne Eintrag Lj vom ersten Eintrag Li bis zum letzten Eintrag LN dahingehend überprüft, ob der Eintrag Lj das seltenste Zeichen enthält. Einträge L;, deren Länge 1(L;) kleiner als die Länge L(S) der Suchzeichenkette (S) ist, können bei der Überprüfung unberücksichtigt bleiben und übersprungen werden, da in diesen die Suchzeichenkette (S) nicht enthalten sein kann.
Hierzu erfolgt im Schritt d) ein Suchen des seltensten Zeichens in dem Eintrag L; der Namensliste, wobei für jede gefundene Stelle j des seltensten Zeichens in dem Eintrag Li
eine Umgebungsdifferenz-Zeichenkette Ui zwischen dem alphanumerischen Zeichen des Eintrags Li und der Vergleichszeichenkette Vl(Lj) ermittelt wird. Die Umgebungs¬ differenz-Zeichenkette Ui berechnet sich zu Uf=Li- Vl(L1), wobei 1(L1) die Länge des jeweiligen Eintrags Li ist. Die Umgebungsdifferenz-Zeichenkette Ui wird mit der Differenzzeichenkette D verglichen, wobei ein Vorkommen der Suchzeichenkette S in dem Eintrag Li bei dem Vergleich erkannt wird, wenn die Differenzzeichenkette D in der Umgebungsdifferenz-Zeichenkette Ui enthalten ist.
Um Schreibvarianten zu berücksichtigen, kann noch eine Vorverarbeitung der Suchzeichenkette stattfinden, die Schreibvarianten zu gesuchten Zeichenfolge generiert.
Im Detail erfolgt der Schritt d) wie folgt:
(1) Setze die Laufvariäble i=l zur Auswahl eines Eintrags Li;
(2) Eingeben der Suchzeichenkette S und Umwandeln in numerische Repräsentation;
(3) Bestimmen des seltensten Zeichens in der Suchzeichenkette S. Ist dieser nicht eindeutig bestimmt, wird das im Alphabet weiter vorne stehende Zeichen ausgewählt.
Ermitteln der Vergleichszeichenkette V mit der Länge des Eintrags Li;
(4) Ermitteln der Differenzzeichenkette D;
(5) Setzen der Laufvariable j=l für eine Stelle in dem Eintrag L1;
(6) Berechnen der j-ten Stelle der Umgebungsdifferenz-Zeichenkette Ui=Li-Vl(Li).
Ist die j-te Stelle von Ui ungleich 0, wird j um 1 erhöht und der Schritt (6) wiederholt.
Ist die j-te Stelle von Ui=O, wird mit dem Schritt (7) fortgefahren;
- S -
(7) Vergleichen der Umgebung der j-ten Stelle von
Vl(L;) mit der Differenzzeichenkette D.
Ist die Umgebung nicht identisch mit der Differenzzeichenkette D, dann weiter mit Schritt (8);
Ist die Umgebung identisch mit der Differenzzeichenkette D, dann weiter mit Schritt (9);
(8) dann Erhöhen von i um 1, weiter mit Schritt (5);
Ist j kleiner 1(Li), dann Erhöhen von j um 1, weiter mit Schritt (6);
(9) Vormerken des Eintrags L1 für die Ergebnisliste E; weiter mit Schritt (10);
(10) Falls das Ende der Namensliste noch nicht erreicht ist, wird die Laufvariäble i um 1 erhöht; weiter mit Schritt (5);
Wenn das Ende der Namensliste erreicht ist, dann ist das Verfahren beendet.
Das Verfahren wird anhand eines Beispiels nochmals erläutert.
Gesucht werden soll die Suchzeichenkette „rode" in der folgenden Namensliste:
Das Verfahren hat dann die Schritte:
Die Ergebnisliste E ist dann wie folgt:
Trodenau
Trollenrode
Rodenau.