Eu tenho dois arquivos grandes que contêm parágrafos do texto em inglês:
- O primeiro texto tem cerca de 200 páginas e 10 parágrafos por página (cada parágrafo tem 5 sentenças).
- O segundo texto contém quase exatamente os mesmos parágrafos e texto que o primeiro. Também tem 200 páginas, com 10 parágrafos por página. No entanto, os parágrafos são randomizados e em uma ordem diferente quando comparados ao primeiro texto. Além disso, uma grande porcentagem dos parágrafos apresenta pequenas alterações na redação em comparação com parágrafos semelhantes. Por exemplo, um parágrafo no primeiro texto pode ter uma frase como
Like Jimmy, I wanted to go to the palace
a frase correspondente no parágrafo do segundo texto seria lidaLike Jimmy, I really wanted to go to the castle
.
Quero poder capturar as alterações aqui, como a adição really
e a exclusão de palace
com a substituição de castle
. Se os parágrafos fossem mais ou menos alinhados, isso seria bastante trivial, pois existem várias maneiras de diferenciar o texto. No entanto, como os parágrafos não estão alinhados, esse não é o caso.
Se os arquivos fossem pequenos (poucos parágrafos), o Levenshtein Distance provavelmente funcionaria bem, mas como os arquivos são enormes, seria ineficiente comparar cada parágrafo do texto 1 com cada parágrafo do texto 2 para descobrir quais parágrafos correspondem.
Quais seriam algumas outras abordagens para esse problema para lidar com ele com eficiência?