Conta il numero di parole in un file PDF


66

Come posso ottenere il conteggio delle parole di un file PDF? Penso che la maggior parte dei file pdf per i quali voglio ottenere il conteggio totale delle parole abbia un livello di testo incorporato, quindi non ho bisogno di OCR.

Il compito è nato dalla ricerca di alcuni articoli scientifici di dimensioni note, ad esempio 15000 parole. La maggior parte degli articoli di moder sono pubblicati in formato pdf

Risposte:


90

Risposta rapida:

pdftotext myfile.pdf - | wc -w

Risposta lunga:

Se su Unix, puoi usare pdftotext:

e quindi fare il conteggio delle parole nel file generato. Se su Unix, puoi usare:

wc -w converted-pdf.txt

per ottenere il conteggio delle parole.

Inoltre, vedi il commento di frabjous: in pratica, puoi farlo in un solo passaggio eseguendo il piping stdoutinvece di un file temporaneo:

pdftotext myfile.pdf - | wc -w

10
È pdftotext: non dimenticare la e. Ed è possibile utilizzare un singolo comando: pdftotext myfile.pdf - | wc -w.
frabjous,

1
@Frabjous Grazie, ho aggiornato la risposta con i suggerimenti!
icyrock.com il

Vale la pena notare che pdftotextfa parte di Xpdf che è disponibile anche per la piattaforma Windows. La pagina di download di Xpdf si trova qui: foolabs.com/xpdf/download.html . wcpuò anche essere trovato, ma in alternativa si può usare praticamente qualsiasi elaboratore di testi come word o LibreOffice Writer. Contano anche le parole. (Per LibreOffice Writer vai su File -> Proprietà -> Statistiche)
amenthes

13

Questo è un compito difficile non facile da risolvere. Se vuoi davvero un risultato esatto, copia paragrafo per paragrafo per il tuo visualizzatore PDF in un file di testo e controllalo con lo wc -wstrumento. Il motivo per cui non usare pdftotextin quel caso è: le formule matematiche possono entrare anche nell'output e considerate "parole". (In alternativa, è possibile modificare l'output da cui si ottiene pdftotext). Un altro motivo per cui questo potrebbe non riuscire sono i titoli: "4.3.2 Foo Bar" è contato come tre parole.

Un modo per aggirare è solo contare le parole che iniziano con un carattere da [A-Za-z]. Quindi quello che faccio di solito è un approccio in due fasi:

  1. ottenere l'elenco di parole uniq e verificare se all'interno ci sono troppi falsi positivi:

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

    Non uso un dizionario qui, poiché alcuni errori di ortografia non contano come parole.

  2. Ottieni questo elenco di parole e selezionalo all'interno dell'output di pdftotext:

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

So che questo potrebbe essere fatto all'interno di un liner, ma poi non sono riuscito a vedere facilmente il risultato del filtro dal primo passo. La -Fpuò aiutare a come dichiarato dal commento di moi di seguito (grazie).


1
Ho dovuto usare grep -Ff words, perché grep si lamenta di "Unmatched [o [^". Dalla pagina man: `` -F, --fixed-strings Interpreta PATTERN come un elenco di stringhe fisse, separate da newline, ognuna delle quali deve essere abbinata. (-F è specificato da POSIX.) `` `
moi

10

Ho appena provato un programma gratuito, Translator's Abacus . Puoi trascinare e rilasciare vari tipi di file (incluso PDF) e si apre un browser con un rapporto stampabile del conteggio delle parole per ciascun documento. Ha funzionato bene per me. (È stato creato appositamente per il conteggio delle parole ed è solo 435 KB ... cioè non una "grande applicazione"). Translator's Abacus non funziona su PDF 1.5 o successivo.

In alternativa : puoi solo Ctrl+ Aper selezionare tutto il testo in Acrobat Reader e quindi copiarlo e incollarlo in un programma come Microsoft Word (che ha un conteggio delle parole sulla barra di stato nella parte inferiore dello schermo).


In (molti?) PDF, Crl + A seleziona solo le parole nella pagina corrente, non l'intero documento. Abacus del traduttore funziona perfettamente però, fantastico!
Junuxx,

3
Correzione, l'Abaco del traduttore non funziona su PDF 1.5 o successivo.
Junuxx

+1 Ctrl + A in Adobe Reader insieme a WinMerge funzionano alla grande in Windows!
Superjos

2

Un modo semplice per farlo se si utilizza Acrobat Pro è esportare il PDF in un documento di Microsoft Word e quindi eseguire il conteggio delle parole in Word. In alternativa, puoi esportarlo in un file di testo semplice e utilizzare un'utilità di conteggio parole nell'editor di testo di tua scelta /. Ho appena fatto un conteggio delle parole su un articolo pdf usando il metodo Word e ci sono voluti 30 secondi per completarlo.

Spero che sia di aiuto.


Ho convertito in testo e ho fatto wc -w nomefile.txt. Ha funzionato. Grazie.
venerdì

1

È possibile installare OCRFeeder . In esso scegli File-> Importa PDF-> Rileva e riconosce automaticamente tutte le pagine-> Esporta in ODT e il documento di libreoffice writer sarà pronto per il conteggio delle parole o qualsiasi altra funzione RTF che vorrai utilizzare.



0

Puoi utilizzare JavaScript della console di Adobe Acrobat con il seguente codice, che ho preso dalla risposta di Dave Merchant su 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.");

Testato con Adobe Acrobat Pro DC 2018.011.20040 su Windows 7 SP1 x64 Ultimate.


Per abilitare la console JavaScript:

inserisci qui la descrizione dell'immagine

Per avviare la finestra della console JavaScript:

CTRL + J

inserisci qui la descrizione dell'immagine

Cordiali saluti, se si dispone della fonte LaTeX corrispondente al PDF: conteggio delle parole corretto di un documento LaTeX .


-1

Lo standard di fatto, che i traduttori usano da circa 2000 è lo strumento di conteggio parole AnyCount Fa il conteggio delle parole in PDF e altri 37 formati.


Vladimir, ci sono riferimenti di terze parti (menzioni in libri, giornali, riviste, recensioni di mercato) che qualsiasi conteggio è ampiamente usato nei mercati del conteggio delle parole e della traduzione? Mi piace books.google.com/…
osgx,

-3

Ctrl+ Shift+ Finserisci la ricerca avanzata digita la parola e conterà quante volte è presente nel documento. Non è scienza missilistica.


9
Penso che tu abbia frainteso la domanda ... "Conteggio parole" normalmente si riferisce al numero totale di parole in un documento, piuttosto che al numero di una parola specifica ... e inoltre, penso che sarebbe meglio se tu fossi per specificare di quale programma stai parlando - non tutti i lettori PDF hanno le stesse funzioni o usano le stesse scorciatoie da tastiera.
evilsoup,

Potresti non aver risposto alla risposta dei PO ma il tuo post mi ha sicuramente aiutato. Grazie. : D
mahela007,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.