web-dev-qa-db-fra.com

Compter le nombre de mots dans un fichier PDF

Comment puis-je obtenir le nombre de mots d'un fichier PDF? Je pense que la plupart des fichiers pdf pour lesquels je souhaite obtenir le nombre total de mots ont un calque de texte intégré, de sorte que je n'ai pas besoin d'OCR.

La tâche a été lancée en recherchant des articles scientifiques de taille connue, par exemple. 15 000 mots. La plupart des articles de moders sont publiés au format pdf

64
osgx

Réponse rapide:

pdftotext myfile.pdf - | wc -w

Réponse longue:

Si vous utilisez Unix, vous pouvez utiliser pdftotext:

puis faites le nombre de mots dans le fichier généré. Si vous utilisez Unix, vous pouvez utiliser:

wc -w converted-pdf.txt

pour obtenir le nombre de mots.

Voir aussi le commentaire de frabjous. En gros, vous pouvez le faire en une seule étape en redirigeant vers stdout à la place dans un fichier temporaire:

pdftotext myfile.pdf - | wc -w
87
icyrock.com

C'est une tâche difficile, pas facile à résoudre. Si vous voulez vraiment un résultat exact, copiez paragraphe par paragraphe pour votre visionneur PDF dans un fichier texte et vérifiez-le à l'aide de l'outil wc -w. La raison pour laquelle il ne faut pas utiliser pdftotext dans ce cas est la suivante: les formules mathématiques peuvent également entrer dans la sortie et être considérées comme des "mots". (Vous pouvez également modifier le résultat obtenu à partir de pdftotext). Les en-têtes sont une autre raison de son échec: "4.3.2 Foo Bar" est compté pour trois mots.

Une solution consiste uniquement à compter les mots commençant par un caractère de [A-Za-z]. Donc, ce que je fais habituellement est une approche en deux étapes:

  1. obtenir la liste des mots uniq et vérifier s'il y a trop de faux positifs à l'intérieur:

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

    Je n’utilise pas de dictionnaire ici, car certaines fautes d’orthographe ne seraient pas considérées comme des mots.

  2. Obtenez cette liste de mots et mettez-la dans la sortie de pdftotext:

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

Je sais que cela pourrait être fait dans une ligne, mais je ne pouvais pas voir le résultat du filtre dès la première étape. Le -F peut vous aider comme indiqué par le commentaire de moi ci-dessous (merci).

13
math

Je viens d'essayer un programme gratuit, Abaque de traducteur . Vous pouvez glisser-déposer divers types de fichiers (y compris PDF) et un navigateur contenant un rapport imprimable indiquant le nombre de mots pour chaque document s'affiche. Cela a bien fonctionné pour moi. (Il est spécifiquement créé pour le nombre de mots et ne représente que 435 ko, c’est-à-dire pas une "grande application"). Abacus du traducteur ne fonctionne pas sur PDF 1.5 ou version ultérieure.

Alternativement : vous pouvez simplement Ctrl+A sélectionner tout le texte dans Acrobat Reader, puis le copier-coller dans un programme tel que Microsoft Word (le compte Word est indiqué dans la barre d'état en bas de l'écran).

10
Adam

Une façon simple de procéder si vous utilisez Acrobat Pro consiste à exporter le fichier PDF vers un document Microsoft Word, puis à compter le nombre de mots dans Word. Vous pouvez également l'exporter dans un fichier texte brut et utiliser un utilitaire de décompte de mots dans l'éditeur de texte de votre choix /. Je viens de faire un décompte Word sur un article pdf en utilisant la méthode Word et cela a pris 30 secondes.

J'espère que cela t'aides.

2
Bruce Crawford

Vous pouvez installer OCRFeeder . Dans celui-ci, choisissez Fichier-> Importer PDF-> Détecter et reconnaître automatiquement toutes les pages-> Exporter vers ODT et le document writer de libreoffice sera prêt pour le décompte de mots ou tout autre RTF fonction que vous souhaitez utiliser.

1
user55926

Je trouve le compteur de mots inclus dans outils abracadabra pratique. L'installation est un peu bizarre cependant.

0
Christoph

Vous pouvez utiliser le code JavaScript de la console d'Adobe Acrobat avec le code suivant, que j'ai extrait de réponse de Dave Merchant sur 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.");

Testé avec Adobe Acrobat Pro DC 2018.011.20040 sur Windows 7 SP1 x64 Ultimate.


Pour activer la console JavaScript:

enter image description here

Pour lancer la fenêtre de la console JavaScript:

CTRL + J

enter image description here

Pour votre information, si la source LaTeX correspond au PDF: nombre de mots correct d'un document LaTeX .

0
Franck Dernoncourt