AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi fuzzy matches via sql

fuzzy matches via sql

Ein Thema von sancho1980 · begonnen am 30. Apr 2006 · letzter Beitrag vom 5. Mai 2006
 
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#22

Re: fuzzy matches via sql

  Alt 5. Mai 2006, 18:14
So ist es

Hier habt ihr eine Funktion, bei welcher man die verschiedenen Kosten angeben kann, oder man benutzt sie ohne Angaben wie eine normale.

Delphi-Quellcode:
Function WeightedLevenshteinDistance( Const FromStr, ToStr: String; Const CostCase: Integer = 0;
  Const CostSubst: Integer = 1; Const CostIns: Integer = 1; Const CostDel: Integer = 1 ): Integer;
Var Costs: Array Of Array Of Integer;
    Len1: Integer;
    Len2: Integer;
    i1: Integer;
    i2: Integer;
    Cost: Integer;
Begin
  Len1 := Length( FromStr );
  Len2 := Length( ToStr );
  Try
    SetLength( Costs, Len2 + 1, Len1 + 1 );
    For i2 := 0 To Len1 Do Costs[ 0, i2 ] := i2 * CostDel;
    For i1 := 1 To Len2 Do Begin
      Costs[ i1, 0 ] := i1 * CostIns;
      For i2 := 1 To Len1 Do Begin
        If ToStr[ i1 ] = FromStr[ i2 ] Then Cost := 0
        Else If UpperCase( ToStr[ i1 ] ) = UpperCase( FromStr[ i2 ] ) Then Cost := CostCase
        Else Cost := CostSubst;
        Costs[ i1, i2 ] := Min( Min( Costs[ i1 - 1, i2 ] + CostIns,
                                      Costs[ i1 , i2 - 1 ] + CostDel ),
                                 Costs[ i1 - 1, i2 - 1 ] + Cost );
      End;
    End;
    Result := Costs[ Len2, Len1 ];
  Finally
    Finalize( Costs );
  End;
End;
Bye
Christian
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:29 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