Вам совершенно необходимо сначала найти способ сопоставления 1000 файлов с 300 файлами по порядку.
В простейшем случае вы будете говорить «CIDOC Ontology 2.0 (1) .pdf», «CIDOC Ontology 2.0 (2) .pdf» и «CIDOC Ontology 2.0 (3) .pdf», с одной стороны, и «Онтология CIDOC. pdf "на другой.
Теперь лучшие подходы, которые я могу изобразить, таковы:
Используя
pdftk
илиpdf2json
, извлеките количество страниц группы 1000 и посмотрите, соответствует ли сумма группе 300:12, 9, 10 vs. 31 = OK 12, 9, 10 vs 22 = BAD (and you might suspect section 2 is missing)
Этот метод довольно прост и не распознает три раздела, которые не работают.
Используя
pdf2ps
иps2ascii
, создавать текстовые версии всех файлов. В зависимости от процесса PDF, они могут быть почти неразборчивыми, но это мало что значит: при небольшой удаче инструмент, используемый для объединения файлов, не изменит текстовые метрики и группировки. Если это так, то объединение трех файлов будет очень и очень похоже на четвертый файл (а если нет, вы отметите его как аномалию). Так что эти эвристики должны работать:- сумма выходных данных "wc" из трех файлов будет равна (или очень близка) к выходным данным из четвертого файла.
- cat'ting три текстовых файла, или четвертый файл, через cat file1 file2 file3 | sed -e "s # \ s # \ n # g" | Сортировка должна приводить к почти одинаковым спискам слов (выходные данные
diff -Bbawd
должны быть не более трех или четырех строк; в идеале, нет). Если вы пропустите| sort
стадию, то разделы не по порядку должны быть узнаваемы: если отсортированная проверка совпадает, а несортированная - нет, вы сталкиваетесь с ситуацией с нарушением порядка.
sed
Часть будет разделена слов, которые могли бы помочь, даже если инструмент коалесцирующий сделал изменить текст несколько. Изменение в кернинге, когда слова оказываются по-разному разделенными внутри PDF («гомеостаз» превратился в «ho meos tas is» из «home osta sis»), сделает даже этого недостаточным; но это не так вероятно.
Трудность, которую я вижу, заключается в сопоставлении необработанных файлов с финальной. Имея образец каждого из них, я мог бы, вероятно, создать сценарий для запуска сравнения.