57

Как узнать количество слов в файле PDF? Я думаю, что большинство файлов PDF, для которых я хочу получить общее количество слов, имеют встроенный текстовый слой, поэтому мне не нужно распознавание текста.

Задача возникла в результате поиска некоторых научных работ известного размера, например, 15000 слов. Большинство работ модеров публикуются в формате PDF

9 ответов9

78

Быстрый ответ:

pdftotext myfile.pdf - | wc -w

Длинный ответ:

Если в Unix, вы можете использовать pdftotext:

а затем выполните подсчет слов в сгенерированном файле. Если на Unix, вы можете использовать:

wc -w converted-pdf.txt

чтобы получить количество слов.

Кроме того, смотрите комментарий от frabjous - в основном, вы можете сделать это за один шаг, отправив вместо stdout временный файл:

pdftotext myfile.pdf - | wc -w
10

Я только что попробовал бесплатную программу, Abacus Переводчика. Вы можете перетаскивать файлы различных типов (в том числе PDF), и в нем появляется браузер с распечатанным отчетом о количестве слов для каждого документа. Это работало нормально для меня. (Он специально создан для подсчета слов и занимает всего 435 КБ ... то есть не "большое приложение"). Abacus переводчика не работает на PDF 1.5 или более поздней версии.

В качестве альтернативы: вы можете просто нажать Ctrl+A, чтобы выделить весь текст в Acrobat Reader, а затем скопировать и вставить его в программу, подобную Microsoft Word (с количеством слов в строке состояния в нижней части экрана).

10

Это сложная задача, которую нелегко решить. Если вы действительно хотите получить точный результат, скопируйте абзац для вашего средства просмотра PDF в текстовый файл и проверьте его с помощью инструмента wc -w . Причина, по которой не следует использовать pdftotext в этом случае, заключается в следующем: математические формулы могут также попадать в вывод и рассматриваться как "слова". (Или вы можете отредактировать вывод, полученный из pdftotext). Другой причиной, по которой это может не сработать, являются заголовки: «4.3.2 Foo Bar» считается тремя словами.

Обходной путь - только считать слова, начинающиеся с символа из [A-Za-z]. Итак, что я обычно делаю, это двухэтапный подход:

  1. получить список уникальных слов и проверить, не слишком ли много ложных срабатываний внутри:

    pdftotext foo.pdf - | tr " " "\n" | sort | uniq | grep "^[A-Za-z]" > words

    Я не использую здесь словарь, так как некоторые орфографические ошибки не считаются словами.

  2. Получить этот список слов и grep его в выводе pdftotext:

    pdftotext foo.pdf - | tr " " "\n" | grep -Ff words | wc -l

Я знаю, что это может быть сделано в пределах одной строки, но тогда я не мог легко увидеть результат фильтрации с первого шага. -F может помочь вам, как указано в комментарии моего ниже (спасибо).

2

Простой способ сделать это, если вы используете Acrobat Pro, - экспортировать PDF в документ Microsoft Word, а затем выполнить подсчет слов в Word. Кроме того, вы можете экспортировать его в текстовый файл и использовать утилиту подсчета слов в текстовом редакторе по вашему выбору /. Я только что подсчитал количество слов в PDF-статье, используя метод Word, и все заняло все 30 секунд.

Надеюсь это поможет.

1

Вы можете установить OCRFeeder. В нем выберите Файл-> Импорт PDF-> Автоматически обнаружить и распознать все страницы-> Экспорт в ODT, и документ писателя libreoffice будет готов для подсчета слов или любой другой функции RTF, которую вы захотите использовать.

0

Стандарт де-факто, который переводчики используют примерно с 2000 года, - это инструмент подсчета слов AnyCount. Он рассчитывает количество слов в PDF и 37 других форматах.

0

Я считаю удобным счетчик слов, включенный в инструменты абракадабры . Установка немного странная, хотя.

0

Вы можете использовать консоль JavaScript Adobe Acrobat со следующим кодом, который я взял из ответа Дейва Мерчанта на forums.adobe.com:

var cnt=0;
for (var p = 0; p < this.numPages; p++) cnt += getPageNumWords(p);
console.println("There are " + cnt + " words in this file.");

Протестировано с Adobe Acrobat Pro DC 2018.011.20040 на Windows 7 SP1 x64 Ultimate.


Чтобы включить консоль JavaScript:

Чтобы запустить окно консоли JavaScript:

CTRL + J

К вашему сведению, если у вас есть источник LaTeX, соответствующий PDF: правильное количество слов документа LaTeX.

-3

Ctrl+Shift+F введите расширенный поиск, введите слово, и оно будет подсчитывать, сколько раз оно находится в документе. Это не ракетостроение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .