Что не так с этим PDF-файлом при попытке подсчитать количество слов - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь написать приложение python, чтобы подсчитать количество слов для PDF-файлов.

Однако я столкнулся с чем-то странным с этим PDF-файлом.

Когда я извлекаю файл текст из PDF-файла выглядит как какой-то двоичный / символьный мусор.

Я пробовал PyPDF2 и PyMuPDF библиотеки с тем же результатом.

Как мне получить количество слов в PDF-файлах, подобных этому?

Вот файл. https://www.dropbox.com/s/hdgqd70l0kcayvo/mhr.pdf?dl=0

1 Ответ

1 голос
/ 04 августа 2020

В этом PDF-файле отсутствует информация, необходимая для извлечения текста. Таким образом, попытка извлечь из него текст обычно выводит мусор.

Подробно

Текст в этом PDF-файле отрисовывается с использованием шрифта, который не отображает ToUnicode карта или кодировка со стандартизованными именами. Он также не помечает содержимое со свойствами ActualText . Более того, наивное сопоставление кодов символов, например, Latin-1, также не дает ничего внятного.

Таким образом, извлечение текста в соответствии с алгоритмом, предложенным в спецификации PDF ISO 32000 (части 1 и 2), будет для каждого символа приводит к этапу

Если эти методы не дают значения Unicode, нет способа определить, что представляет собой код символа, и в этом случае соответствующий читатель может выбрать код символа своего выбор.

(ISO 32000-1, раздел 9.10.2 Сопоставление кодов символов со значениями Unicode)

Вы можете видеть, что Adobe Acrobat это не нравится либо путем копирования и вставки.

В некоторых таких ситуациях, однако, более глубокое погружение во встроенный шрифт обнаруживает альтернативные сопоставления с Unicode, и некоторые экстракторы текста действительно их используют.

Тем не менее, этот подход здесь тоже не поможет, шрифт - это шрифт типа 3, т.е. не основан на каком-то нормальном формате шрифта (например, TrueType ), но вместо этого полностью определен с использованием последовательностей векторной графики PDF без дальнейшего сопоставления с Unicode.

Таким образом, без некоторой степени OCR (человеческого или автоматизированного) нет способа извлечь текст из этого PDF.

В качестве дополнения

Если этот документ действительно опубликован в его текущей форме каким-либо ведомством США (а не результатом какого-либо инструмента преобразования, примененного к их исходному документу), вы можете связаться с этим отделом и обсудить такие темы, как специальные возможности и раздел 508 ...

...