Порахуйте кількість слів у PDF-файлі


66

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

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

Відповіді:


90

Швидкий відповідь:

pdftotext myfile.pdf - | wc -w

Довга відповідь:

Якщо в Unix, ви можете використовувати pdftotext:

а потім зробіть підрахунок слів у створеному файлі. Якщо в Unix, ви можете використовувати:

wc -w converted-pdf.txt

щоб отримати кількість рахунків.

Також дивіться коментар frabjous - в основному, ви можете це зробити за один крок, перейшовши на stdoutзамість цього до тимчасового файлу:

pdftotext myfile.pdf - | wc -w

10
Це pdftotext: не забувайте е. І ви можете використовувати одну команду: pdftotext myfile.pdf - | wc -w.
frabjous

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. отримайте список слів uniq і перевірте, чи всередині є занадто багато помилкових позитивів:

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

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

  2. Отримайте цей перелік слів і скопіюйте його у висновку pdftotext:

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

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


1
Мені довелося користуватися grep -Ff words, тому що grep скаржиться на "Unmatched [or [^". На вхідній сторінці: `` -F, --fixed-рядки Інтерпретувати PATTERN як список фіксованих рядків, розділених новими рядками, будь-який з яких повинен відповідати. (-F визначено POSIX.) `` `
травень

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. Це спрацювало. Дякую.
vijayst

1

Ви можете встановити OCRFeeder . У ньому виберіть « Файл»> «Імпортувати PDF»> «Автоматично виявити та розпізнати всі сторінки-> Експорт у ODT та документ, який пише лібріофіс, буде готовий до кількості слів або будь-якої іншої функції RTF, яку ви хочете використовувати.



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

введіть тут опис зображення

FYI, якщо у вас є джерело LaTeX, що відповідає PDF: Правильний підрахунок слів документа LaTeX .


-1

Фактично стандартом, який використовуються перекладачі з 2000 року, є AnyCount Word Count Tool. Він рахує кількість слів у PDF та 37 інших форматах.


Володимире, чи є сторонні посилання (згадки в книгах, газетах, журналах, оглядах ринку), що будь-який рахунок широко використовується на ринках підрахунку і перекладу слів? Як books.google.com/…
osgx

-3

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


9
Я думаю, що ви неправильно зрозуміли питання ... "кількість слів" зазвичай стосується загальної кількості слів у документі, а не кількості конкретного слова ... а також, я думаю, було б краще, якби ви щоб визначити, про яку програму ви говорите - не всі читачі PDF мають однакові функції або використовують однакові комбінації клавіш.
evilsoup

Ви, можливо, не відповіли на відповідь ОП, але ваш пост, безумовно, мені допоміг. Дякую. : D
mahela007
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.