Hello,
ich befürchte, dass Dir da nur Levenshtein oder etwas Ähnliches helfen kann
http://www.php.net/manual/en/function.levenshtein.php
Und das müsstest Du dann auch noch auf alle Paarungen von Fragmenten ansetzen. Das gibt zwar dann eine recht große Datenmenge, aber die Vorschlagsliste wird nachher sicherlich überschaubar bleiben.
ungefähre Vorgehensweise:
- Lese alle Dateinamen ein
- Lese alle Referenzindikatoren aus der CSV-Datei ein
- Zerlege alle Dateinamen an klassischen Trennzeichen und mache einen eigenen Datensatz
daraus, der einen eineindeutigen Index zum Original behält
- Zerlege alle Referenzindikatoren an klassischen Trennzeichen und mache einen eigenen Datensatz
daraus, der einen eineindeutigen Index zum Original behält
- Gehe das eine Array Saatz für Satz durch und vergleiche es mit der Levenshtein-Funktion
mit allen Einträgen des zweiten. Merke dir das Ergenbnis und die Indexe der Arrays.
- Bei den höchsten Übereinstimmungen im Levenshtein-Result solltest Du nun auch Deine
Treffer finden, die Du nun wieder zusammenbauen kannst, wenn sie nach Handkontrolle als
passend erkannt wurden.
- die restlichen Ergebnisse wirst Du vermutlich getrost wegschmeißen können...
Vorher solltest Du aber das Memory-Limit deines Scriptes noch gewaltig hochsetzen. PHP-Arrays verbrauchen eine Menge Platz im Speicher.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg