Hi,
ich bastel zur zeit an einem modul welches 2 beliebige texte (format egal) einliest und den eingelesen Inhalt vergleicht. Soweit so gut nicht sehr schwer.
Doch der knackpunkt ist, dass der vergleich performant sein sollte. Das heist wenn ich zb. Text A (ca 10000 Wörter) mit text B (50000 wörte) auf übereinstimmungen im Inhalt überprüfen möchte dauert das ewig und drei tage (zz 13 Stunden 41min und 12sek ).
So jetzt meine Frage hat sich schon mal wer mit vergleichs algorythmik im bereich texten befasst und kann mir da sinnfolle tips geben wie man am beseten texte auf Inhalt und oder ähnlichen inhalt vergleicht.
Ich mach das zur zeit so, dass ich immer einen satz (wort für wort) aus der kleineren datei in eine liste lade und diese dann auf inhaltlich satz für satz mit dem größeren dokument vergleiche. Sollten mehr als 50% der liste mit dem vergleichssatz übereinstimmen gibt es ein treffer. Sollte keine übereinstimmung vorhanden sein gibt es kein treffer und der nechste satz wird geladen.
Also über hilfe wie das ganze performanter geht wer ich sehr dankbar.
MFG
.exe
Frage zu Textvergleich (performant)
-
- User
- Beiträge: 773
- Registriert: Mittwoch 5. November 2003, 18:06
- Wohnort: Schweiz
- Kontaktdaten:
Hi
Also du könntest einen Index über den grösseren Text erstellen, im Stil von:
Die abfrage gestaltet sich dann einfach:
Am besten noch die Sätze vorher in Kleinbuchstaben konvertieren und alle Sonerzeichen herauslöschcen.
Die Suche ist so aber recht eingeschränkt, da nur genau gleiche Sätze gefunden werden.
Gruss
Also du könntest einen Index über den grösseren Text erstellen, im Stil von:
Code: Alles auswählen
index = set()
for satz in grosser_text:
index.add(satz)
Code: Alles auswählen
for satz in kleiner_text:
if satz in index:
print 'Satz vorhanden'
Die Suche ist so aber recht eingeschränkt, da nur genau gleiche Sätze gefunden werden.
Gruss
Vielleicht solltest du uns zunächst mal sagen, was genau du mit Ähnlichkeit meinst. Da gibt es nicht nur ein Maß.
P.S.: Es heißt Algorithmik, das Ding hat nichts mit Rhythmus zu tun
P.S.: Es heißt Algorithmik, das Ding hat nichts mit Rhythmus zu tun
Das Leben ist wie ein Tennisball.
oh man da musste ich jetzt echt über mich selbst lachen ^^.EyDu hat geschrieben: P.S.: Es heißt Algorithmik, das Ding hat nichts mit Rhythmus zu tun
Naja habe per PM nen tipp mit der difflib bekommen.
Soweit ich mir das jetzt angeschaut habe ist das genau das was ich umsetzten wollte.
Werde jetzt mal nen bissel damit spielen und dann hier meine ergebniss posten.
mfg
.exe
*edit* Hyperion war schneller als ich xD