Ну, вероятно, не совсем то, что вы ищете, но обнаружение клона может быть правильной идеей.
Существует множество таких детекторов. Некоторые работают только с одной необработанной строкой текста, и это может относиться непосредственно к вам.
Некоторые работают только над произведениями («жетонами»), составляющими текст, для некоторого определения «жетонов».
Вам нужно определить, что вы подразумеваете под токенами для таких инструментов.
Но вы, кажется, хотите что-то, что обнаружит структуру текста, а затем ищет повторяющиеся блоки с некоторым параметрическим изменением. Я думаю, что это действительно трудно сделать, если вы заранее не знаете, что это за структура.
Наш CloneDR делает это для исходного кода языка программирования, где "известной структурой" является структура самого языка программирования, как это конкретно описано правилами грамматики BNF.
Вы, вероятно, не хотите, чтобы обнаружение дубликатов смещалось с помощью Java для полуструктурированного текста Но если вы действительно знаете что-то о структуре документов, вы можете записать это в виде грамматики, и наш инструмент CloneDR затем подберет это.