M
Mr. Snoot
Gast
Hio,
kann mir jemand einen Tipp geben, wie ich bei einer Suche nach mehreren Wörtern (stehen direkt hintereinander) ähnliche Treffer finden kann?
Für einzelne Wörter ist das kein Problem, bei mehreren fallen mir nur sehr aufwendige Möglichkeiten ein. Ich habe es zwar erfolgreich geschaft, aber die Suche dauert einfach nen Tick zu lange.
Generell geh ich so vor, dass ich den Levenshteinwert des Suchbegriffs mit allen Wörtern der zu durchsuchenden Datei ermittle. Je nach Länge des Begriffs darf dieser Wert größer oder kleiner sein, damit er als Alternative in Frage kommt. Bei einem einzelnen Wort als Suchbegriff kann ich das einfach mit einer foreach-Schleife abarbeiten, die Suche geht ruckzuck.
Wie geh ich bei mehreren Begriffen vor? Ich hab zwar paar Ideen, die sind aber alle sehr aufwendig, da zu viele Levenshteinvergleiche durchgeführt werden müssen.
kann mir jemand einen Tipp geben, wie ich bei einer Suche nach mehreren Wörtern (stehen direkt hintereinander) ähnliche Treffer finden kann?
Für einzelne Wörter ist das kein Problem, bei mehreren fallen mir nur sehr aufwendige Möglichkeiten ein. Ich habe es zwar erfolgreich geschaft, aber die Suche dauert einfach nen Tick zu lange.
Generell geh ich so vor, dass ich den Levenshteinwert des Suchbegriffs mit allen Wörtern der zu durchsuchenden Datei ermittle. Je nach Länge des Begriffs darf dieser Wert größer oder kleiner sein, damit er als Alternative in Frage kommt. Bei einem einzelnen Wort als Suchbegriff kann ich das einfach mit einer foreach-Schleife abarbeiten, die Suche geht ruckzuck.
Wie geh ich bei mehreren Begriffen vor? Ich hab zwar paar Ideen, die sind aber alle sehr aufwendig, da zu viele Levenshteinvergleiche durchgeführt werden müssen.
- Ich könnte den ersten Suchbegriff mit dem ersten Wort der Textdatei vergleichen, ist der Levenshteinwert ok, überprüfe ich den zweiten Suchbegriff mit dem zweiten Wort usw.
Ist der Levenshteinwert zu groß, breche ich ab, gehe ein Wort weiter und vergleiche den ersten Suchbegriff mit dem zweiten Wort der Textdatei, den zweiten Suchbegriff mit dem dritten Wort usw.
Passen bspw. alle drei Suchbegriffe mit den Worten 1, 2, 3 überein, beginnt der nächste Suchvorgang mit Suchbegriff eins und Wort vier, ...
------------------------------------------------------------ - Meine jetzige Lösung: bilde mit den Wörtern der Textdatei Strings, die aus so vielen Wörtern bestehen, wie der Suchbegriff. Aus dem Text "Heute ist ein schöner Tag" erzeuge ich bei 2 Suchbegriffen bspw. die Strings "Heute ist", "ist ein", "ein schöner" und "schöner Tag". Diese Strings kann ich dann nacheinander "einfach" wieder mit dem Suchstring vergleichen.
Aber so bekomme ich natürlich viel zu viele Strings, was mir die Suche ausbremst