Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#7

Re: Strings nach Häufigkeit bewerten

  Alt 21. Jan 2008, 16:27
Also doch nicht nur einmal

nja, es müßten ja nur die Vereinsnamen in den bisher aufgefundenen Schreibweisen gespeichert und beim nächsten Mal wiederverwendet werden.

Delphi-Quellcode:
var Namensliste: Array of Array of record
  Name: string;
  Vergleich: Integer;
end;

NamensListe[0][0] := 'Sportclub im ASV Landau e.V.';
NamensListe[0][1] := 'SC Landau';
NamensListe[0][2] := 'S.Club Landau';
NamensListe[0][3] := 'Sportclub Landau';
NamensListe[0][4] := 'SV Landau';
NamensListe[0][5] := 'SC im ASV Landau';
NamensListe[1][0] := 'nächster SC...'
// läßt sich auch anders speichern verkettete Listen und so
// aber hier macht sich als bevorzugter Namen wohl die [...][0]

// schauen ob der Name schon vorhanden ist
for i := 0 to High(NamensListe) do
  for i2 := 0 to High(NamensListe[i]) do
  begin
    if NamensListe[i][i2].Name = Vereinsname then
    begin
      Vereinsname := NamensListe[i][0].Name;
      exit;
    end;
    // da wir schon einmal die Liste durchgehn,
    // können wir auch gleich hier zurücksetzen
    NamensListe[i][i2].Vergleich := 0;
  end;

// Name in Einzelwörter zerlegen
A := Splitt(Vereinsname, ' ');
// Wörter wie "Sportclub" "SC" "im" usw. entfernen
Filter(A);
// Vergleichswerte zurücksetzen
(* wurde oben schon gemacht
for i := 0 to High(NamensListe) do
  for i2 := 0 to High(NamensListe[i]) do
    NamensListe[i][i2].Vergleich := 0;*)

// Vergleichen
for i := 0 to High(NamensListe) do
  for i2 := 0 to High(NamensListe[i]) do
    for i3 := 0 to High(A) do
      inc(NamensListe[i][i2].Vergleich, SoundEx(A[i3]));

// je größer jetzt NamensListe[i][i2].Vergleich ist, umso größe wäre wohl die Ähnlichkeit

// namen mit größter Warscheinlichkeit raussuchen und von denen den Index 0 anzeigen
// [i][0] entspricht hier ja dem bevorzugten Namen
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat