"Задача:
Каталогизировать несколько десятков тысяч сканированных файлов в формате PDF, содержащих документы на английском языке. Необходимо создать базу данных, содержащую имена файлов, атрибуты находящихся в них документов (номер, дата, отправитель, получатель) и ключевые слова для контекстного поиска.
Дополнительные условия:
Для каталогизации есть массив почти в 20 тыс сканированных документов на английском языке (примерно половина из них состоят из 2-х и более страниц), некоторые из которых содержат прямо распечатанные из офисного ПО документы, а большая часть - сканированные изображения (факсы, машинописные документы 80-ых годов, рукописные документы и т.д.). Так же много смешанных вариантов: в одном файле PDF присутствуют как распечатанные из офисного ПО документы, так и сканированные.
Решить бесплатными средствами с минимизацией ручной работы и минимальным привлечением сторонних ресурсов. Решение должно быть применимо на платформе MS Windows и, по возможности, на платформе Linux.
Решение:
Используются две бесплатные утилиты:
Этапы работы:
pdftotext.exe -nopgbrk filename001.pdf outputs\txt\filename001.txt
pdftotext.exe -nopgbrk filename002.pdf outputs\txt\filename002.txt
pdftotext.exe -nopgbrk filename003.pdf outputs\txt\filename003.txt
...
pdfimages.exe -j filename001.pdf outputs\img\filename001@
pdfimages.exe -j filename002.pdf outputs\img\filename002@
pdfimages.exe -j filename003.pdf outputs\img\filename003@
...
filename001@-0000.ppm
tesseract -psm 1 outputs\img\filename001@-0000.ppm outputs\img\filename001@-0000
tesseract -psm 1 outputs\img\filename001@-0001.ppm outputs\img\filename001@-0001
tesseract -psm 1 outputs\img\filename001@-0002.ppm outputs\img\filename001@-0002
tesseract -psm 1 outputs\img\filename002@-0000.ppm outputs\img\filename002@-0000
tesseract -psm 1 outputs\img\filename003@-0000.ppm outputs\img\filename003@-0000
...
copy /b outputs\img\filename001@*.txt outputs\txt\filename001.txt
copy /b outputs\img\filename002@*.txt outputs\txt\filename002.txt
copy /b outputs\img\filename003@*.txt outputs\txt\filename003.txt
...
Теперь, когда возникает задача найти определенные документы по их содержимому, я нахожу их с помощью данного индекса, а результаты поиска записываю в отдельную таблицу с атрибутами документов и тегами. Если Вы в своей задаче сможете как-то автоматизировать данный процесс, то Вам повезло :)
Самая долгая операция в решении этой задачи была распознать текст из изображений. На этом HTPC, правда под управлением Windows 7 x64 и с 8ГБ ОЗУ, распознавание почти 70 тыс изображений заняло чуть боле 2-х суток. Я подозреваю, что основной преградой здесь была скорость работы дисковой подсистемы. При этом Tesseract-OCR достаточно неплохо распараллеливает процессы по ядрам процессора. И на более мощной машине с большим количеством ядер и быстрой дисковой подсистемой скорее всего можно список команд для распознавания разделить на части в отдельные BAT файлы и запустить их одновременно. Остальные операции суммарно заняли не более 10 часов."
Re: Пакетная обработка больших объемов PDF файлов бесплатно
http://djvu.sourceforge.net/doc/man/djvuextract.html
но не пробовал
Для него есть языковые модули под русский и украинский языки
Re: Пакетная обработка больших объемов PDF файлов бесплатно
два вопроса:
1) как разобрать djvu на изъятие слоя текста и на картинки не искали?
2) Google OCR работает с кириллическим текстом?
Отправить новый комментарий