Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Suche Ähnlichkeitsalgorythmus (https://www.delphipraxis.net/19904-suche-aehnlichkeitsalgorythmus.html)

SirThornberry 10. Apr 2004 17:00


Suche Ähnlichkeitsalgorythmus
 
Hallöle,

bin auf der Suche nach nem allgorythmus der überprüft ob 2 Worte ähnlich sind. Ich suche allerdings nicht sowas wie SoundEx da dieser allgorythmus nur ähnlich klingende wörter erkennt. Ich will aber wenn zum beispiel "lycos" und "lyocs" eingegeben wird mir eine ähnlichkeit zurück gegeben wird. Hintergrund ist das ich automatich playlisten erstelle (nach interpret & genre) und es da ziemlich oft vorkommt das Buchstabendreher im ID3-Tag sind und einfach das erste wort mit dem zweiten getauscht ist (1. "Robbie Williams" 2. "Williams Robbie") und da wäre es ja nicht so prickelnd wenn dafür 2 playlisten angelegt werden

Stanlay Hanks 10. Apr 2004 17:10

Re: Suche Ähnlichkeitsalgorythmus
 
Hi. Also das mit den "Wortdrehern" denke ich, wird wohl keine sehr hohe Ähnlichkeit liefern. Das ist ja so, wie wenn ich "Hausbau" und "Bauhaus" schreibe. Da dürfte nicht viel ähnlich sein, da ja komplette Worte vertauscht sind. Ich würde da eher den Ausdruck Wort für Wort zerlegen und dann die Ähnlichkeit der einzelnen Worte überprüfen. Ich kann dir jetzt keinen Algo anbieten, aber such doch hier in der DP mal nach [dp]Ähnlichkeit[/b]

Man liest sich, Stanlay :hi:

Bowler 18. Mai 2004 13:03

Re: Suche Ähnlichkeitsalgorythmus
 
Da gibt es meines Wissens einen Algo, der SoundEx heisst. Suche mal danach.

Matze 18. Mai 2004 13:05

Re: Suche Ähnlichkeitsalgorythmus
 
Zitat:

Zitat von SirThornberry
Ich suche allerdings nicht sowas wie SoundEx da dieser allgorythmus nur ähnlich klingende wörter erkennt.

;)

Bowler 18. Mai 2004 13:10

Re: Suche Ähnlichkeitsalgorythmus
 
Hoppla, sorry. Wer lesen kann ist klar im Vorteil. :-D

negaH 18. Mai 2004 13:29

Re: Suche Ähnlichkeitsalgorythmus
 
Du suchst ein lernfähiges Wörterbuch. Als einfache Lösung würde ich also den kompletten "Satz" auswerten und alle "Sätze" die in der Datenbank enthalten sind auf gleiche Wörter untersuchen. Falls welche vorhanden sind wird dem Anwender eine Liste mit ähnlichen "Sätzen" präsentiert.
Dies ließe sich auch auf Buchstaben in den Wörtern erweitern, damit dein obiges Lycos Beispiel funktioniert.
Mein Vorschlag ist also keine sehr intelligente aber eine praktisch einfach realisierbare Lösung.
Auch SoundEx() könnte dir dabei behilfreich sein um die Wörter in kurze Codes umzuwandeln. Man baut dann einen "Soundex" über ganze "Sätze" von Soundex Wörtern.

Gruß Hagen

shmia 18. Mai 2004 13:38

Re: Suche Ähnlichkeitsalgorythmus
 
Zitat:

Zitat von SirThornberry
bin auf der Suche nach nem allgorythmus der überprüft ob 2 Worte ähnlich sind.

Du suchst den Levenshtein Distance Algorythmus. SoundEx ist ziemlich wertlos,
da speziell auf die englische Sprache angepasst.
Wie man die Ähnlichkeit zweier Texte mit dem Levenshtein-Algorithmus ermittelt

SirThornberry 18. Mai 2004 14:34

Re: Suche Ähnlichkeitsalgorythmus
 
thx, gucks mir mal an wenn ich bissl mehr zeit hab

eroe 18. Mai 2004 21:20

Re: Suche Ähnlichkeitsalgorythmus
 
ich hab diesen herrn levenshtein nich gelesen, aber so ausm stehgreif würd ich sagen könnte man die beiden suchwerte in ein-element-strings zerlegen, jedes element an selber stelle miteinander vergleichen (3. buchstabe 1. wort mit 3. buchstabe 2. wort) und wenns weniger als x (je nachdem _wie_ ähnlich du es haben willst ;) ) unterschiede gibt isses eben ähnlich ..

NeoXX 24. Mai 2004 19:58

Re: Suche Ähnlichkeitsalgorythmus
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hatte vor geraumer Zeit ein ähnliches Problem und hab einen
Code gefunden der die LevenshteinDistance ermittelt.
Keine Ahnung woher dieser damals stammte, aber er müsste Dir bei
Deinem Prob helfen...hoffe ich :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 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