计算 PDF 文件中的字数

osg*_*sgx 79 pdf word-count

如何获取 PDF 文件的字数?我认为我想要获得总字数的大多数 pdf 文件都嵌入了文本层,所以我不需要 OCR。

该任务来自于搜索一些已知大小的科学论文,例如 15000 字。大多数现代论文以pdf格式发表

icy*_*com 109

快速回答:

pdftotext myfile.pdf - | wc -w
Run Code Online (Sandbox Code Playgroud)

长答案:

如果在 Unix 上,您可以使用pdftotext

然后在生成的文件中进行字数统计。如果在 Unix 上,您可以使用:

wc -w converted-pdf.txt
Run Code Online (Sandbox Code Playgroud)

得到字数。

另外,请参阅 frabjous 的评论 - 基本上,您可以通过管道stdout代替临时文件一步完成:

pdftotext myfile.pdf - | wc -w
Run Code Online (Sandbox Code Playgroud)

  • 它是`pdftotext`:不要忘记e。您可以使用一个命令:`pdftotext myfile.pdf - | wc -w`。 (10认同)

mat*_*ath 15

这是一项艰巨的任务,不容易解决。如果您真的想要一个确切的结果,请将 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 的输出中 grep 它:

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

我知道这可以在一个衬里内完成,但是我无法轻易看到第一步的过滤结果。-F正如下面moi的评论所述,这可能会帮助您(谢谢)。


Ada*_*dam 10

我刚刚试用了一个免费程序,翻译算盘。您可以拖放各种文件类型(包括 PDF),它会弹出一个浏览器,其中包含每个文档的字数统计报告。它对我来说很好。(它是专门为字数统计而创建的,只有 435 KB ......也就是说,不是一个“大应用程序”)。Translator's Abacus 不适用于 PDF 1.5 或更高版本。

另外:你可以Ctrl+A选择在Acrobat Reader中的所有文本,然后将其复制粘贴到Microsoft Word等(这在屏幕的底部有状态栏上字数统计)的程序。

  • 更正,翻译算盘不适用于 PDF 1.5 或更高版本。 (3认同)