AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Erweiterte Suche im Text???

Ein Thema von romber · begonnen am 22. Nov 2004 · letzter Beitrag vom 23. Nov 2004
Antwort Antwort
Seite 1 von 2  1 2      
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Erweiterte Suche im Text???

  Alt 22. Nov 2004, 14:33
Hallo!

Ich möchte überprüfen, ob eine dynamisch vom Benutzer eingegebene Zeichenfolge in einem String vorhanden ist. Das geht doch ganz einfach mit pos:


Code:
...
if pos(LowerCase(Edit1.Text), LowerCase(Memo1.Text)) > 0 then
ShowMessage('String gefunden!')
Ok, funktioniert gut. Ich möchte es jetzt so machen, dass auch änliche Zeichenfolgen gefunden werden. Zum Beispiel man möchte prüffen, ob die Zeichenfolge 2 Zimmer Wohnung in einem Text vorhanden ist. Im Text ist diese vorhanden, aber mit Bindestrich 2-Zimmer Wohnung oder gar zusammengeschrieben 2 Zimmerwohnung. Diese müssen auch erkannt werden. Hat jemand schon so etwas gemacht? Wie mache ich das?

Danke!
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Erweiterte Suche im Text???

  Alt 22. Nov 2004, 14:41
Das kannst du mit einer Bei Google suchenLevensthein-Suche machen. Der Levensthein-Algorithmus vergleicht zwei Strings und gibt als Ergebnis die sogenannte "Levensthein-Distanz" zurück. Dieser Wert gibt an, nach wie vielen Operationen von "Auslassen", "Einfügen" und "Ersetzen" sich die beiden Strings gleichen.
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#3

Re: Erweiterte Suche im Text???

  Alt 23. Nov 2004, 13:54
Erstmal Vielen Dank für die schnelle Antwort!

Ich habe eine Delphi-Unit gefunden, eine Implementation des Levenshteins-Algo. Aber wie kann es mir helfen? Die Funktion liefert ledeglich ein Integer-Wert, der Anzahl der insgesamt durchgeführten Änderungen an einem String anzeigt, damit dieser String dem Suchstring gleich ist. Was kann ich damit anfangen? Oder verstehe ich irgendwas falsch?
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#4

Re: Erweiterte Suche im Text???

  Alt 23. Nov 2004, 13:56
wenn der kleiner als sagen wir 3 ist, dann isses "ähnlich"

oder halt kleiner als 5...kommt halt drauf an
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#5

Re: Erweiterte Suche im Text???

  Alt 23. Nov 2004, 13:57
Ich würde den Rückgabewert irgendwie mit der Länge des Suchstrings verrechnen. In deinem Fall "2Raumwohnung" würde ich eine Levensthein-Distanz von 3 immer noch als Ergebnis interpretieren. Wie du das allerdings speziell löst, bleibt dir vorbehalten.

Und nein, du verstehst nichts falsch Je niedriger der Funktionswert, desto ähnlicher sind sich die Strings.
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#6

Re: Erweiterte Suche im Text???

  Alt 23. Nov 2004, 14:15
Das verstehe ich alles. Ein seht gutes Algo, wenn man eine Liste von Wörtern hat und die dem Suchstring änliche Wörter rausfiltern möchte. Bei mir ist es aber anders: ich habe ein Text, praktisch ein Satz (keine Stringliste oder so), in dem irgendwo ein Wort steht, der entweder dem Suchstring gleich oder sehr ähnlich ist. Dabei muss es mir nur mitgeteilt werden, ob der Suchstring oder ein ähliches Word in dem Text vorhanden ist. Genauso, wie man mithilfe pos überprüfft, ob eine Zeichenfolge vorhanden ist. Was den nun?
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#7

Re: Erweiterte Suche im Text???

  Alt 23. Nov 2004, 14:31
den satz in einzelne wörter aufteile ( Hier im Forum suchenExplode ) und die dann jeweils bewerten
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#8

Re: Erweiterte Suche im Text???

  Alt 23. Nov 2004, 14:36
Du könntest in deinem Beispiel auch die Strings alle kleinschreiben (Delphi-Referenz durchsuchenansilowercase) und alles außer zahlen und buchstaben rausfiltern, und dann mit pos prüfen ...
  Mit Zitat antworten Zitat
Benutzerbild von gmarts
gmarts

Registriert seit: 4. Apr 2004
Ort: Templin
290 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: Erweiterte Suche im Text???

  Alt 23. Nov 2004, 14:43
Zitat von Dax:
Das kannst du mit einer Bei Google suchenLevensthein-Suche machen. Der Levensthein-Algorithmus vergleicht zwei Strings und gibt als Ergebnis die sogenannte "Levensthein-Distanz" zurück. Dieser Wert gibt an, nach wie vielen Operationen von "Auslassen", "Einfügen" und "Ersetzen" sich die beiden Strings gleichen.
mhhh....wär doch mal was für die DP-Suche?!
procedure TForm1.Button1Click(Sender: TObject);
begin
button1.Click;
end;
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#10

Re: Erweiterte Suche im Text???

  Alt 23. Nov 2004, 14:47
Hi!

Zitat von gmarts:
mhhh....wär doch mal was für die DP-Suche?!
Kommt auf den Aufwand an und wie schnell die Suche dann noch ist.
Aber ne Idee isses wert - schlags doch mal vor in Fragen und Anregungen.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz