Gegeben sind zwei Python-Listen gleicher Länge. Wie gibt man die besten Übereinstimmungen mit ähnlichen Werten zurück?

7

Gegeben sind zwei Python-Listen mit Strings (Namen von Personen):

%Vor%

Ich möchte eine Zuordnung der Namen, die am ähnlichsten sind.

%Vor%

Gibt es einen schönen Weg, dies in Python zu tun? Die Listen enthalten durchschnittlich 5 oder 6 Namen. Manchmal mehr, aber das ist selten. Manchmal ist es nur ein Name in jeder Liste, der etwas anders buchstabiert werden könnte.

    
Aufwind 15.08.2011, 06:50
quelle

3 Antworten

10

Sie könnten difflib versuchen:

%Vor%

Ausgabe:

%Vor%     
Johannes Charra 15.08.2011, 07:01
quelle
11

Verwenden Sie die hier definierte Funktion: Ссылка

%Vor% %Vor%

Sie könnten functools.partial anstelle von Lambda

verwenden %Vor% %Vor%     
John La Rooy 15.08.2011 06:58
quelle
2

Hier ist eine Variante der gegebenen Lösungen, die auch das optimiert globaler Mindestabstand. Es verwendet den Munkres-Zuweisungsalgorithmus um sicherzustellen, dass die String-Paarungen optimal sind.

%Vor%

Für die angegebenen Listen, wo die Unterschiede mehr von alternativen stammen Schreibweisen und Spitznamen statt Rechtschreibfehler, diese Methode liefert bessere Ergebnisse als nur mit Levenshtein oder Diffib. Das Munkres-Modul finden Sie hier: Ссылка

    
Björn Lindqvist 17.08.2011 13:18
quelle

Tags und Links