Seite 1 von 1

Musik Titel vergleichen / Regular Expression ?

Verfasst: Montag 3. August 2009, 16:57
von Brok
Hallo

ich möchte in Python 2 strings miteinander vergleichen.

Meine Daten liegen in 2 Dateien vor ich eingelesen habe ( sind natürlich mehr als hier aufgelistet sind )

Datei 1 z.b.)
Böhse Onkelz - Viva Los Tioz - Terpentin - 192kbit - 1997
Rammstein - Mutter - Feuer Frei - 192kbit - unknown

Datei 2 z.b.)
boehse_onkels - viva los tioz - terpentin - 192kbit - 1997
EAV - Neandertal - ........

Ok für mich als Mensch ist klar dass "EAV Neandertal" nicht in Datei 1 vorkommt, "Terpentin" jedoch in beiden Dateien.

Wie mache ich das jetzt meinem Python Programm klar? Ich weiß dass das nicht 100% passen kann aber ich würde es gerne eingrenzen.

mit lower() und replace(" ", "_") sowie die umlaute kann ich mal kleinigkeiten entfernen
Wie behandle ich aber Ähnlichkeiten?

Hilft mir hier dieses Regular Expression?
Wenn ich:

Code: Alles auswählen


# Datei 1, Datensatz 1

import re
obj = re.compile("boehse_onkelz")
match  = re.match(obj, "boehse_onkels")

würde ich ja nichts bekommen weil einmal mit z geschrieben und einmal mit s

Aber wenn ich das wie bei einer Suchmaschine mit * ersetzen könnte wäre es praktisch, was allerdings ein neues Problem aufwirft und zwar was setz ich zwischen die sternchen zum starten?

Kann mir jemand helfen oder geht das garnicht ( was ich leider befürchte )

Verfasst: Montag 3. August 2009, 17:33
von HWK
Vielleicht hilft Dir das Standard-Modul difflib.
MfG
HWK

Verfasst: Montag 3. August 2009, 19:26
von EyDu
Wenn du es selber Programmieren möchtest, dann ist die Levenshtein-Distanz oder gleich allgemeiner ein guter Ansatzpunkt zur Suche. Sonst ist natürlich das von HWK vorgeschlagene Modul die richtige Wahl.

Verfasst: Montag 3. August 2009, 20:15
von Pascal
Das fällt mir dazu grad spontan ein
:wink:
Hoffe ich konnte helfen