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

84258
osgx

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

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

53

8 ответов на вопрос

74
icyrock.com

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

pdftotext myfile.pdf - | wc -w 

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

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

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

wc -w converted-pdf.txt 

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

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

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

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

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

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

This is a hard task not not easy to solve. If you really want an exact result, copy paragraph by paragraph for your PDF viewer into a text file and check it with the wc -w tool. The reason why not to use pdftotext in that case is: mathematical formulas may get also into the output and regarded as "words". (Alternatively you could edit the output you get from pdftotext). Another reason why this may fail are the headings: "4.3.2 Foo Bar" is counted as three words.

A way around is only to count words starting with a char out of [A-Za-z]. So what I usally do is a two step approach:

  1. get the list of uniq words and check if there are too much false positives inside:

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

    I don't use a dictionary here, as some spelling errors would not count as words.

  2. Get this word list and grep it within the output of pdftotext:

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

I know this could be done within a one liner, but then I could not easily see the filter result from the first step. The -F may help you as stated by the comment of moi below (thanks).

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

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

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

Я преобразовал в текст и сделал wc -w filename.txt. Это сработало. Благодарю. vijayst 7 лет назад 0
1
user55926

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

0
Christoph

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

0
Vladimir

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

Владимир, есть какие-нибудь сторонние ссылки (упоминания в книгах, газетах, журналах, обзоры рынков), которые anycount широко используется на рынках подсчета слов и перевода? Например, https://books.google.com/books?id=llKVpiO2q0EC&pg=PA19#v=onepage&q=any+count&f=false. osgx 6 лет назад 0
0
Franck Dernoncourt

Вы можете использовать консоль 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:

enter image description here

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

CTRL + J

enter image description here

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

Похожие вопросы