Hallo Leute,
ich möchte meine Musiksammlung sortieren.
Das Problem ist Folgendes:
ich habe viel Musik in
~/Musik aber auch in Unterordnern:
~/Musik/vonHerrPeterMueller
das heißt für mich das es mehr auf ein Synchronisieren des Hauptordners
mit den einzelnen Unterordnern hinausläuft.
Gibt es gute Programme die Musiksammlungen synchronisieren können?
Wenn nicht, folgendes:
In der Musiksammlung sind auch viele Typos drin:
"Elvis Presley" und "Elvis Prestley"
Jetzt suche ich weiterhin ein Verfahren diese relativ ähnlichen Strings
zu sortieren:
Dazu habe ich mir folgenden Algorithmus in Python überlegt:
1 | class MusikUpdater:
|
2 | def getStringSimilarity(self,s1,s2):
|
3 | if len(s1)>len(s2):
|
4 | shortS=s2
|
5 | longS=s1
|
6 | else:
|
7 | shortS=s1
|
8 | longS=s2
|
9 | similarity=0
|
10 | lastchar=0
|
11 | for c in xrange(len(shortS)):
|
12 | if shortS[c] in longS[c:]:
|
13 | similarity=similarity+2
|
14 | elif shortS[c].lower() in longS[c:].lower():
|
15 | similarity=similarity+1
|
16 | similarity=similarity*0.5
|
17 | ret=(similarity*1.0)/len(shortS) *len(shortS)/len(longS)
|
18 | print shortS,longS,ret
|
19 | return ret
|
20 | if __name__ == "__main__":
|
21 | m=MusikUpdater()
|
22 | m.getStringSimilarity("Elvis Presley","Elvis Prestley")
|
23 | m.getStringSimilarity("The Offspring","The Rasmus")
|
24 | m.getStringSimilarity("Teh Offspring","The Offspring")
|
25 | m.getStringSimilarity("Klein","Klein & Koe")
|
26 | m.getStringSimilarity("asdf","fdsa")
|
27 | m.getStringSimilarity("asdf","fdas")
|
28 | m.getStringSimilarity("asdf","f d s a")
|
29 | m.getStringSimilarity("asd","fds")
|
30 | m.getStringSimilarity("Meier","Meyer")
|
31 | m.getStringSimilarity("Mayer","Meier")
|
32 | m.getStringSimilarity("greenday","Greenday")
|
33 | m.getStringSimilarity("Greenday","Grenday")
|
34 | m.getStringSimilarity("Hauptstraße","Hauptstr.")
|
Nun würde mich eure Meinung zu dem Ergebnis interessieren, und
vielleicht Verbesserungsvorschläge.
Viele Grüße
Stefan