Cuenta la cantidad de palabras en un archivo PDF

66

¿Cómo puedo obtener el recuento de palabras de un archivo PDF? Creo que la mayoría de los archivos pdf para los que quiero obtener el recuento total de palabras tienen una capa de texto incrustada, por lo que no necesito OCR.

La tarea surgió de la búsqueda de algunos artículos científicos de tamaño conocido, por ejemplo, 15000 palabras. La mayoría de los trabajos de moderadores se publican en formato pdf.

osgx
fuente

Respuestas:

90

Respuesta rápida:

pdftotext myfile.pdf - | wc -w

Respuesta larga:

Si está en Unix, puede usar pdftotext:

y luego cuenta las palabras en el archivo generado. Si está en Unix, puede usar:

wc -w converted-pdf.txt

para contar la palabra.

Además, vea el comentario de frabjous: básicamente, puede hacerlo en un solo paso conectando en su stdoutlugar a un archivo temporal:

pdftotext myfile.pdf - | wc -w
icyrock.com
fuente
10
Es pdftotext: no olvides la e. Y se puede utilizar un solo comando: pdftotext myfile.pdf - | wc -w.
frabjous
1
@frabjous ¡Gracias, actualicé la respuesta con las sugerencias!
icyrock.com
Vale la pena señalar que pdftotextes parte de Xpdf, que también está disponible para la plataforma Windows. La página de descarga de Xpdf se encuentra aquí: foolabs.com/xpdf/download.html . wctambién se puede encontrar, pero alternativamente se puede usar prácticamente cualquier procesador de textos como Word o LibreOffice Writer. También cuentan palabras. (Para LibreOffice Writer, vaya a Archivo -> Propiedades -> Estadísticas)
aparece el
13

Esta es una tarea difícil, no fácil de resolver. Si realmente desea un resultado exacto, copie párrafo por párrafo para su visor de PDF en un archivo de texto y verifíquelo con la wc -wherramienta. La razón por la que no se usa pdftotexten ese caso es: las fórmulas matemáticas también pueden entrar en la salida y considerarse como "palabras". (Alternativamente, puede editar el resultado que obtiene pdftotext). Otra razón por la que esto puede fallar son los encabezados: "4.3.2 Foo Bar" se cuenta como tres palabras.

Una forma de evitarlo es contar las palabras que comienzan con un carácter de [A-Za-z]. Entonces, lo que hago habitualmente es un enfoque de dos pasos:

  1. obtenga la lista de palabras uniq y compruebe si hay demasiados falsos positivos en su interior:

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

    No uso un diccionario aquí, ya que algunos errores ortográficos no contarían como palabras.

  2. Obtenga esta lista de palabras y grep dentro de la salida de pdftotext:

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

Sé que esto podría hacerse dentro de una línea, pero no pude ver fácilmente el resultado del filtro desde el primer paso. El -Fpuede ayudarle a como se indica por el comentario de moi a continuación (gracias).

matemáticas
fuente
1
Tuve que usar grep -Ff words, porque grep se queja de "Incomparable [o [^"). Desde la página de manual: `` -F, --fixed-strings Interpreta PATTERN como una lista de cadenas fijas, separadas por nuevas líneas, cualquiera de las cuales debe coincidir. (-F está especificado por POSIX.) ``
moi
10

Acabo de probar un programa gratuito, Translator's Abacus . Puede arrastrar y soltar varios tipos de archivos (incluido PDF), y aparece un navegador con un informe imprimible del recuento de palabras para cada documento. Funcionó bien para mí. (Está creado específicamente para el recuento de palabras y tiene solo 435 KB ... es decir, no es una "gran aplicación"). El traductor Abacus no funciona en PDF 1.5 o posterior.

Alternativamente : puede simplemente Ctrl+ Apara seleccionar todo el texto en Acrobat Reader y luego copiarlo y pegarlo en un programa como Microsoft Word (que tiene un recuento de palabras en la barra de estado en la parte inferior de la pantalla).

Adán
fuente
En (¿muchos?) Archivos PDF, Crl + A solo selecciona las palabras en la página actual, no todo el documento. El ábaco del traductor funciona perfectamente, ¡genial!
Junuxx
3
Corrección, el ábaco del traductor no funciona en PDF 1.5 o posterior.
Junuxx
¡+1 Ctrl + A en Adobe Reader junto con WinMerge funcionan muy bien en Windows!
superjos
2

Una manera sencilla de hacer esto si usa Acrobat Pro es exportar el PDF a un documento de Microsoft Word y luego hacer el recuento de palabras en Word. Alternativamente, puede exportarlo a un archivo de texto sin formato y usar una utilidad de conteo de palabras en el editor de texto de su elección /. Acabo de contar una palabra en un artículo en pdf usando el método de Word y me llevó 30 segundos completarlo.

Espero que esto ayude.

Bruce Crawford
fuente
Me convertí a texto e hice wc -w filename.txt. Funcionó. Gracias.
vijayst
1

Puede instalar OCRFeeder . En él, elija Archivo-> Importar PDF-> Detectar y reconocer automáticamente todas las páginas-> Exportar a ODT y el documento de escritor de libreoffice estará listo para el recuento de palabras o cualquier otra función RTF que desee usar.

usuario55926
fuente
0

Me parece conveniente el contador de palabras incluido en las herramientas abracadabra . Sin embargo, la instalación es un poco peculiar.

Christoph
fuente
0

Puede usar la consola JavaScript de Adobe Acrobat con el siguiente código, que tomé de la respuesta de Dave Merchant en forum.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.");

Probado con Adobe Acrobat Pro DC 2018.011.20040 en Windows 7 SP1 x64 Ultimate.


Para habilitar la consola de JavaScript:

ingrese la descripción de la imagen aquí

Para iniciar la ventana de la consola de JavaScript:

CTRL + J

ingrese la descripción de la imagen aquí

Para su información, si tiene la fuente LaTeX correspondiente al PDF: recuento correcto de palabras de un documento LaTeX .

Franck Dernoncourt
fuente
-1

El estándar de facto, que los traductores utilizan desde alrededor del año 2000, es AnyCount Word Count Tool. Hace recuentos de palabras en PDF y otros 37 formatos.

Vladimir
fuente
Vladimir, ¿hay referencias de terceros (menciones en libros, documentos, revistas, reseñas de mercado) que cualquier recuento se use ampliamente en los mercados de conteo de palabras y traducción? Me gusta books.google.com/…
osgx
-3

Ctrl+ Shift+ Fingrese la búsqueda avanzada, escriba la palabra y contará cuántas veces está en el documento. No es ciencia espacial.

Johnny Boy
fuente
99
Creo que ha entendido mal la pregunta ... 'conteo de palabras' normalmente se refiere al número total de palabras en un documento, en lugar del número de una palabra específica ... y también, creo que sería mejor si fuera para especificar de qué programa está hablando: no todos los lectores de PDF tienen las mismas funciones o usan los mismos métodos abreviados de teclado.
evilsoup
Es posible que no haya respondido la respuesta de los OP, pero su publicación ciertamente me ayudó. Gracias. : D
mahela007 01 de