Policz liczbę słów w pliku PDF


66

Jak mogę uzyskać liczbę słów w pliku PDF? Myślę, że większość plików pdf, dla których chcę uzyskać całkowitą liczbę słów, ma osadzoną warstwę tekstową, więc nie potrzebuję OCR.

Zadanie powstało w wyniku wyszukiwania niektórych prac naukowych o znanej wielkości, np. 15 000 słów. Większość artykułów modyfikujących publikuje się w formacie pdf

Odpowiedzi:


90

Szybka odpowiedź:

pdftotext myfile.pdf - | wc -w

Długa odpowiedź:

Jeśli na Uniksie, możesz użyć pdftotext:

a następnie zlicz liczbę słów w wygenerowanym pliku. Jeśli na Uniksie, możesz użyć:

wc -w converted-pdf.txt

uzyskać liczbę słów.

Zobacz też komentarz frabjousa - w zasadzie możesz to zrobić w jednym kroku, stdoutprzesyłając do pliku tymczasowego:

pdftotext myfile.pdf - | wc -w

10
To pdftotext: nie zapomnij o e. I można korzystać z jednego polecenia: pdftotext myfile.pdf - | wc -w.
frabjous

1
@frabjous Dzięki, zaktualizowałem odpowiedź z sugestiami!
icyrock.com,

Warto zauważyć, że pdftotextjest częścią Xpdf, który jest również dostępny dla platformy Windows. Strona pobierania Xpdf znajduje się tutaj: foolabs.com/xpdf/download.html . wcmożna również znaleźć, ale alternatywnie można użyć praktycznie dowolnego edytora tekstu, takiego jak Word lub LibreOffice Writer. Liczą też słowa. (W przypadku LibreOffice Writer przejdź do Plik -> Właściwości -> Statystyki)
amenthes

13

To trudne zadanie, niełatwe do rozwiązania. Jeśli naprawdę chcesz uzyskać dokładny wynik, skopiuj akapit po akapicie dla przeglądarki PDF do pliku tekstowego i sprawdź to za pomocą wc -wnarzędzia. Powodem, dla którego nie należy używać pdftotextw takim przypadku jest: formuły matematyczne mogą również dostać się do wyniku i traktowane jako „słowa”. (Alternatywnie możesz edytować dane wyjściowe, które otrzymujesz pdftotext). Innym powodem, dla którego może się to nie powieść, są nagłówki: „4.3.2 Foo Bar” jest liczony jako trzy słowa.

Rozwiązaniem jest liczenie słów zaczynających się od znaku z [A-Za-z]. Więc zwykle robię to w dwóch krokach:

  1. pobierz listę słów uniq i sprawdź, czy w środku jest za dużo fałszywych trafień:

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

    Nie używam tutaj słownika, ponieważ niektóre błędy ortograficzne nie byłyby liczone jako słowa.

  2. Pobierz tę listę słów i grep ją w wynikach pdftotext:

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

Wiem, że można to zrobić w ramach jednej wkładki, ale wtedy nie mogłem łatwo zobaczyć wyniku filtra z pierwszego kroku. -FMoże pomóc jak stwierdził komentarzem moi poniżej (dzięki).


1
Musiałem użyć grep -Ff words, ponieważ grep narzeka na „Niedopasowane [lub [^”]. Ze strony podręcznika: `` -F, --fixed-strings Interpretuj WZÓR jako listę stałych ciągów, oddzielonych znakami nowej linii, z których dowolne ma być dopasowane. (-F jest określony przez POSIX.) ``
moi

10

Właśnie wypróbowałem bezpłatny program, Abacus Translatora . Możesz przeciągać i upuszczać różne typy plików (w tym PDF), a to wyskakuje w przeglądarce z drukowanym raportem liczby słów dla każdego dokumentu. Dla mnie działało dobrze. (Jest specjalnie stworzony do liczenia słów i ma tylko 435 KB ... to nie jest „duża aplikacja”). Abacus Tłumacza nie działa w wersji PDF 1.5 lub nowszej.

Alternatywnie : możesz po prostu Ctrl+ Azaznaczyć cały tekst w programie Acrobat Reader, a następnie skopiować i wkleić go do programu takiego jak Microsoft Word (który ma liczbę słów na pasku stanu u dołu ekranu).


W (wielu?) Plikach PDF, Crl + A wybiera tylko słowa na bieżącej stronie, a nie cały dokument. Abacus Translatora działa jednak doskonale, świetnie!
Junuxx,

3
Korekta, Abacus Tłumacza nie działa w wersji PDF 1.5 lub nowszej.
Junuxx,

+1 Ctrl + A w programie Adobe Reader wraz z WinMerge działają świetnie w systemie Windows!
superjos

2

Prostym sposobem na zrobienie tego, jeśli używasz Acrobat Pro, jest wyeksportowanie pliku PDF do dokumentu Microsoft Word, a następnie zliczenie słów w programie Word. Możesz też wyeksportować go do zwykłego pliku tekstowego i użyć narzędzia do liczenia słów w wybranym edytorze tekstu /. Właśnie policzyłem słowo w artykule pdf przy użyciu metody Word i zajęło mi to 30 sekund.

Mam nadzieję że to pomoże.


Przekształciłem na tekst i zrobiłem wc -w nazwa_pliku.txt. Zadziałało. Dzięki.
vijayst

1

Możesz zainstalować OCRFeeder . W nim wybierz Plik-> Importuj PDF-> Automatycznie wykryj i rozpoznaj wszystkie strony-> Eksportuj do ODT, a dokument piszący libreoffice będzie gotowy na zliczanie słów lub dowolną inną funkcję RTF, której chcesz użyć.



0

Możesz użyć kodu JavaScript konsoli Adobe Acrobat z następującym kodem, który wziąłem z odpowiedzi Dave'a Merchanta na 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.");

Testowane z Adobe Acrobat Pro DC 2018.011.20040 na Windows 7 SP1 x64 Ultimate.


Aby włączyć konsolę JavaScript:

wprowadź opis zdjęcia tutaj

Aby uruchomić okno konsoli JavaScript:

CTRL + J

wprowadź opis zdjęcia tutaj

Do Twojej wiadomości, jeśli masz źródło LaTeX odpowiadające plikowi PDF: Prawidłowa liczba słów w dokumencie LaTeX .


-1

Standardem używanym przez tłumaczy od około 2000 roku jest AnyCount Word Count Tool. Zlicza słowa w formacie PDF i 37 innych formatach.


Vladimir, czy są jakieś odniesienia stron trzecich (wzmianki w książkach, gazetach, czasopismach, recenzjach rynkowych), że dowolna liczba jest szeroko stosowana na rynku liczenia słów i tłumaczeń? Jak books.google.com/…
osgx,

-3

Ctrl+ Shift+ Fwpisz wyszukiwanie zaawansowane, wpisz słowo, a policzy, ile razy znajduje się w dokumencie. To nie jest rakieta.


9
Myślę, że źle zrozumiałeś pytanie ... „liczba słów” zwykle odnosi się do całkowitej liczby słów w dokumencie, a nie liczby określonego słowa… i myślę, że lepiej byłoby, gdybyś aby określić, o którym programie mówisz - nie wszystkie czytniki PDF mają te same funkcje lub używają tych samych skrótów klawiaturowych.
evilsoup

Być może nie odpowiedziałeś na odpowiedź PO, ale twój post z pewnością mi pomógł. Dzięki. : D
mahela007
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.