Ich habe zwei große Dateien mit Absätzen englischen Textes:
- Der erste Text ist ungefähr 200 Seiten lang und hat ungefähr 10 Absätze pro Seite (jeder Absatz ist 5 Sätze lang).
- Der zweite Text enthält fast genau die gleichen Absätze und Texte wie der erste. Es ist auch 200 Seiten lang mit 10 Absätzen pro Seite. Die Absätze sind jedoch zufällig und in einer anderen Reihenfolge als der erste Text. Außerdem weist ein großer Prozentsatz der Absätze im Vergleich zu ähnlichen Absätzen geringfügige Wortlautänderungen auf. Zum Beispiel könnte ein Absatz im ersten Text einen Satz haben, wie
Like Jimmy, I wanted to go to the palace
der entsprechende Satz im Absatz des zweiten Textes lauten würdeLike Jimmy, I really wanted to go to the castle
.
Ich möchte in der Lage sein, die Änderungen hier wie das Hinzufügen really
und Löschen von palace
durch Ersetzen von zu erfassen castle
. Wenn die Absätze grob ausgerichtet wären, wäre dies ziemlich trivial, da es viele Möglichkeiten gibt, Text zu unterscheiden. Da die Absätze jedoch nicht ausgerichtet sind, ist dies nicht der Fall.
Wenn die Dateien klein wären (eine Handvoll Absätze), würde Levenshtein Distance wahrscheinlich gut funktionieren, aber da die Dateien sehr groß sind, wäre es ineffizient, jeden Absatz von Text 1 mit jedem Absatz von Text 2 zu vergleichen, um herauszufinden, welche Absätze übereinstimmen.
Was wären andere Ansätze für dieses Problem, um es effizient zu lösen?