Подсчитайте количество слов в файле PDF

66

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

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

osgx
источник

Ответы:

90

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

pdftotext myfile.pdf - | wc -w

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

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

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

wc -w converted-pdf.txt

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

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

pdftotext myfile.pdf - | wc -w
icyrock.com
источник
10
Это pdftotext: не забывайте е. И вы можете использовать одну команду: pdftotext myfile.pdf - | wc -w.
безумно
1
@frabjous Спасибо, обновил ответ предложениями!
icyrock.com
Стоит отметить, что pdftotextэто часть Xpdf, которая также доступна для платформы Windows. Страница загрузки Xpdf находится здесь: foolabs.com/xpdf/download.html . wcтакже можно найти, но в качестве альтернативы можно использовать практически любой текстовый процессор, такой как word или LibreOffice Writer. Они тоже считают слова. (Для LibreOffice Writer перейдите в меню Файл -> Свойства -> Статистика)
amenthes
13

Это сложная задача, которую нелегко решить. Если вы действительно хотите получить точный результат, скопируйте абзац для вашего средства просмотра 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Может помочь вам , как заявлено на комментарий MOI ниже (спасибо).

математический
источник
1
Мне пришлось использовать grep -Ff words, потому что grep жалуется на «Unmatched [или [^» ». Со страницы man: `` `-F, --fixed-strings Интерпретировать PATTERN как список фиксированных строк, разделенных символами новой строки, любой из которых должен соответствовать. (-F определяется POSIX.) `` `
moi
10

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

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

Адам
источник
В (многих?) PDF-файлах Crl + A выделяет только слова на текущей странице, а не весь документ. Абакус переводчика работает отлично, хотя, отлично!
Junuxx
3
Исправление, Abacus переводчика не работает на PDF 1.5 или более поздней версии.
Junuxx
+1 Ctrl + A в Adobe Reader вместе с WinMerge отлично работают в Windows!
Superjos
2

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

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

Брюс Кроуфорд
источник
Я преобразовал в текст и сделал wc -w filename.txt. Это сработало. Благодарю.
Виджайст
1

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

user55926
источник
0

Вы можете использовать консоль Adobe Acrobat JavaScript со следующим кодом, который я взял из ответа Дэйва Мерчанта на 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 .

Франк Дернонкур
источник
-1

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

Владимир
источник
Владимир, есть ли какие-либо сторонние ссылки (упоминания в книгах, газетах, журналах, обзоры рынков), которые anycount широко используются на рынках подсчета слов и перевода?
Мне
-3

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

Джонни Мальчик
источник
9
Я думаю, что вы неправильно поняли вопрос ... «количество слов» обычно относится к общему количеству слов в документе, а не к определенному слову ... а также, я думаю, было бы лучше, если бы вы чтобы указать, о какой программе вы говорите - не все программы чтения PDF имеют одинаковые функции или используют одинаковые сочетания клавиш.
evilsoup
Возможно, вы не ответили на вопрос ОП, но ваш пост определенно помог мне. Благодарю. : D
mahela007