计算PDF文件中的单词数


66

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

该任务是通过搜索一些已知大小(例如15000字)的科学论文而产生的。大多数现代论文以pdf格式出版

Answers:


90

快速回答:

pdftotext myfile.pdf - | wc -w

长答案:

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

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

wc -w converted-pdf.txt

得到字数。

另外,请参见frabjous的注释-基本上,您可以通过管道传递stdout到一个临时文件来一步完成此操作:

pdftotext myfile.pdf - | wc -w

10
这是pdftotext:不要忘记e。您可以使用一个命令:pdftotext myfile.pdf - | wc -w
frabjous 2010年

1
@frabjous谢谢,用建议更新了答案!
icyrock.com 2010年

值得注意的pdftotext是,Xpdf的一部分也可用于Windows平台。Xpdf下载页面位于:foolabs.com/xpdf/download.htmlwc也可以找到,但可以选择使用几乎任何一种文字处理程序,例如word或LibreOffice Writer。他们也算单词。(对于LibreOffice Writer,请转到“文件”->“属性”->“统计”)
修正

13

这是一项艰巨的任务,并非易事。如果您确实想要准确的结果,请逐段将PDF查看器复制到文本文件中,然后使用该wc -w工具进行检查。pdftotext在这种情况下不使用的原因是:数学公式也可能进入输出并被视为“单词”。(或者,您可以编辑从中获得的输出pdftotext)。标题失败的另一个原因是:标题“ 4.3.2 Foo Bar”被视为三个单词。

一种解决方法是只计算[A-Za-z]中以char开头的单词。所以我通常要做的是两步方法:

  1. 获取uniq单词列表,并检查内部是否有太多误报:

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

    我在这里不使用字典,因为某些拼写错误不会算作单词。

  2. 获取此单词列表并将其grep到pdftotext的输出中:

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

我知道可以在一个衬套中完成此操作,但随后我不容易看到第一步的过滤结果。如下面Moi-F的评论所述,这可能会对您有所帮助(谢谢)。


1
我必须使用grep -Ff words,因为grep抱怨“不匹配[或[^””。在手册页上:`-F,--fixed-strings将PATTERN解释为固定字符串的列表,由换行符分隔,其中任何一个都将被匹配。(-F由POSIX指定。)```
moi

10

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

或者:您可以只用Ctrl+ A来选择Acrobat Reader中的所有文本,然后将其复制粘贴到Microsoft Word之类的程序中(该程序在屏幕底部的状态栏上具有单词计数)。


在(许多?)PDF中,Crl + A仅选择当前页面上的单词,而不选择整个文档。译者的算盘虽然完美,但效果很好!
Junuxx 2012年

3
纠正,翻译器的算盘不适用于PDF 1.5或更高版本。
Junuxx 2012年

在Windows中,Adobe Reader中的+1 Ctrl + A与WinMerge一起可以很好地工作!
superjos

2

如果使用Acrobat Pro,这样做的直接方法是将PDF导出到Microsoft Word文档,然后在Word中进行字数统计。或者,您可以将其导出到纯文本文件,然后在您选择的文本编辑器中使用字数统计实用程序。我只是使用Word方法对pdf文章进行了字数统计,整个过程花费了30秒。

希望这可以帮助。


我转换为文本,并做了wc -w filename.txt。有效。谢谢。
vijayst

1

您可以安装OCRFeeder。在其中,选择文件->导入PDF->自动检测并识别所有页面->导出到ODT,libreoffice writer文档将准备进行字数统计或您要使用的任何其他RTF功能。



0

您可以将Adobe Acrobat的控制台JavaScript与以下代码配合使用,该代码是我从forum.adobe.com上Dave Merchant的回答中摘录的

var cnt=0;
for (var p = 0; p < this.numPages; p++) cnt += getPageNumWords(p);
console.println("There are " + cnt + " words in this file.");

已在Windows 7 SP1 x64 Ultimate上使用Adobe Acrobat Pro DC 2018.011.20040测试。


要启用JavaScript控制台,请执行以下操作:

在此处输入图片说明

要启动JavaScript控制台窗口:

CTRL + J

在此处输入图片说明

仅供参考,如果您有与PDF相对应的LaTeX源:正确LaTeX文档的字数统计



-3

Ctrl+ Shift+ F输入高级搜索,键入该单词,它将计算它在文档中的次数。这不是火箭科学。


9
我认为您误解了这个问题...“字数统计”通常是指文档中的单词总数,而不是特定单词的数量...而且,我认为如果您指定您正在谈论的程序-并非所有PDF阅读器都具有相同的功能或使用相同的键盘快捷键。
evilsoup

您可能没有回答OP的答案,但是您的帖子肯定对我有所帮助。谢谢。:D
mahela007
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.