AGB  ·  Datenschutz  ·  Impressum  







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

Pseudo StringSimilarity() Funktion

Ein Thema von Aphton · begonnen am 7. Apr 2011 · letzter Beitrag vom 25. Mai 2011
Antwort Antwort
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#1

AW: Pseudo StringSimilarity() Funktion

  Alt 8. Apr 2011, 09:42
Oder, wenn man auf phonetische Ähnlichkeit prüfen mag: Double Metaphone
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Pseudo StringSimilarity() Funktion

  Alt 8. Apr 2011, 10:09
Oder, wenn man auf phonetische Ähnlichkeit prüfen mag: Double Metaphone
Delphi-Referenz durchsuchenSoundEx wäre dafür etwas vergleichbares fertiges, oder?

Gruß, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Pseudo StringSimilarity() Funktion

  Alt 8. Apr 2011, 10:19
Schon fertig in Delphi implementiert ist SoundEx, ja. Aber vergleichbar? Ungefähr so, wie 'n VW Käfer mit 'nem Porsche
SoundEx klappt halt nur halbwegs gescheit bei englischen Wörtern, während (Double) Metaphone u.a. auch bei deutschen Wörtern sehr gute Ergebnisse liefert.
Habe selbst schon öfters in Datenbänken von unseren Kunden eine Person mit Hilfe von Double Metaphone gesucht, die einen türkischen oder anderen, ausländischen Namen hatten - klappt wunderbar.

Aber wie immer: Es kommt drauf an, was man erreichen will.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

AW: Pseudo StringSimilarity() Funktion

  Alt 8. Apr 2011, 11:04
SoundEx ist "Schrott" und sollte nicht verwendet werden.
Begründung:
1.) passt nur für englische Sprache
2.) selbst bei englischen Wörtern können zwei völlig ungleiche Wörter als gleich angesehen werden (siehe hier)
3.) ähnliche Wörter (z.B. Buchstabendreher) werden häufig nicht als ähnlich erkannt
3.) SoundEx wurde zu einer Zeit entwickelt, da es noch keine Computer gab.
Jedem Wort wird ein Soundex-Code mit 4 Zeichen zugeordnet.
Für diese Codes gab es früher sicher Nachschlagewerke (ähnlich einem Telefonbuch)
weil man den Algorithmus nur im menschl. Gehirn durchführen konnte.

Anstatt dass zwei Wörter direkt miteinander verglichen werden, vergleicht man diese 4-stelligen SoundEx-Codes auf Gleichheit.
Dies ist die ganz grosse Schwäche des Verfahrens.

==> also werft SoundEx auf den Müllhaufen der Geschichte
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Pseudo StringSimilarity() Funktion

  Alt 8. Apr 2011, 11:09
Anstatt dass zwei Wörter direkt miteinander verglichen werden, vergleicht man diese 4-stelligen SoundEx-Codes auf Gleichheit.
Dies ist die ganz grosse Schwäche des Verfahrens.
Das macht (Double) Metaphone aber auch so ähnlich. Das hat nämlich auch Vorteile: Man kann den dazugehörigen Code (bzw. bei Double Metaphone sind es ja zwei) z.B. in eine Datenbank mit zum eigentlichen Wort ablegen, so dass man nur den Code des Wortes erzeugen muss das man sucht und danach die ähnlichen Wörter dank Datenbank in Windeseile findet.
Sonst müssten man ja jeden Eintrag einzeln durchgehen - das könnte bei einer großer Datenmenge eine Ewigkeit dauern
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

AW: Pseudo StringSimilarity() Funktion

  Alt 25. Mai 2011, 06:40
Hallo miteinander.

bei Entwicklung zu unserem SuggestEdit sind ein paar Units abgefallen, die hier vielleicht hilfreich sind.

Die Units erheben keinen Anspruch auf Vollständigkeit. Und natürlich hat jede ihr spezielles Anwendungsgebiet. Wer einen Fehler findet, ist eingeladen ihn uns gern zu schicken.

Sobald sich chaosben von seiner OP erholt hat, wird's das Ganze sicherlich auch als Firebird UDFs geben

Gruß
Marco
Marco Warm
TUO
TheUnknownOnes.net

Geändert von MarcoWarm (25. Mai 2011 um 06:44 Uhr) Grund: Kommasetzung
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:30 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