Tengo dos archivos grandes que contienen párrafos de texto en inglés:
- El primer texto tiene aproximadamente 200 páginas y tiene aproximadamente 10 párrafos por página (cada párrafo tiene 5 oraciones).
- El segundo texto contiene casi exactamente los mismos párrafos y texto que el primero. También tiene 200 páginas con 10 párrafos por página. Sin embargo, los párrafos son aleatorios y en un orden diferente en comparación con el primer texto. Además, un gran porcentaje de los párrafos tienen pequeños cambios en la redacción en comparación con párrafos similares. Por ejemplo, un párrafo en el primer texto podría tener una oración similar a la
Like Jimmy, I wanted to go to the palace
que se leería la oración correspondiente en el párrafo del segundo textoLike Jimmy, I really wanted to go to the castle
.
Quiero poder capturar los cambios aquí, como la adición really
y la eliminación de palace
con el reemplazo de castle
. Si los párrafos estuvieran más o menos alineados, esto sería bastante trivial, ya que hay muchas maneras de diferenciar el texto. Sin embargo, dado que los párrafos no están alineados, ese no es el caso.
Si los archivos fueran pequeños (un puñado de párrafos), Levenshtein Distance probablemente funcionaría bien, pero debido a que los archivos son enormes, sería ineficiente comparar cada párrafo del texto 1 con cada párrafo del texto 2 para averiguar qué párrafos coinciden.
¿Cuáles serían algunos otros enfoques de este problema para manejarlo de manera eficiente?