Ho due file di grandi dimensioni contenenti paragrafi di testo inglese:
- Il primo testo è lungo circa 200 pagine e contiene circa 10 paragrafi per pagina (ogni paragrafo è lungo 5 frasi).
- Il secondo testo contiene quasi esattamente gli stessi paragrafi e testo del primo. È inoltre lungo 200 pagine con 10 paragrafi per pagina. Tuttavia, i paragrafi sono randomizzati e in un ordine diverso rispetto al primo testo. Inoltre, una grande percentuale dei paragrafi presenta piccole modifiche nella formulazione rispetto a paragrafi simili. Ad esempio, un paragrafo nel primo testo potrebbe contenere una frase simile
Like Jimmy, I wanted to go to the palacealla lettura della frase corrispondente nel paragrafo del secondo testoLike Jimmy, I really wanted to go to the castle.
Voglio essere in grado di catturare le modifiche qui come l'aggiunta reallye la cancellazione di palacecon la sostituzione di castle. Se i paragrafi fossero approssimativamente allineati, questo sarebbe piuttosto banale in quanto ci sono molti modi per diffondere il testo. Tuttavia, poiché i paragrafi non sono allineati, non è così.
Se i file fossero piccoli (una manciata di paragrafi), Levenshtein Distance probabilmente funzionerebbe bene, ma poiché i file sono enormi, sarebbe inefficiente confrontare ogni paragrafo del testo 1 con ciascun paragrafo del testo 2 per scoprire quali paragrafi corrispondono.
Quali sarebbero alcuni altri approcci a questo problema per gestirlo in modo efficiente?