PDFファイル内の単語数を数える


66

PDFファイルの単語数を取得するにはどうすればよいですか?総単語数を取得するほとんどのpdfファイルにはテキストレイヤーが埋め込まれているため、OCRは必要ありません。

タスクは、既知のサイズの科学論文(15000ワードなど)を検索することから生じました。ほとんどのモデラー論文はpdf形式で公開されています

回答:


90

素早い回答:

pdftotext myfile.pdf - | wc -w

長い答え:

Unixの場合、次を使用できますpdftotext

そして、生成されたファイルで単語カウントを行います。Unixの場合、次を使用できます。

wc -w converted-pdf.txt

単語数を取得します。

また、frabjousによるコメントを参照してください-基本的stdoutに、一時ファイルにパイプすることで、1ステップで実行できます。

pdftotext myfile.pdf - | wc -w

10
それはpdftotext:eを忘れないでください。また、単一のコマンドを使用できますpdftotext myfile.pdf - | wc -w
狂気

1
@frabjousありがとう、答えを提案で更新しました!
icyrock.com

pdftotextWindowsプラットフォームでも利用可能なXpdfの一部であることに注意してください。Xpdfダウンロードページはfoolabs.com/xpdf/download.htmlにあります。wc見つけることもできますが、代わりにwordやLibreOffice Writerなどのほとんどすべてのワードプロセッサを使用できます。単語もカウントします。(LibreOffice Writerの場合は、[ファイル]-> [プロパティ]-> [統計]に移動します)
4

13

これは難しい課題であり、解決するのは容易ではありません。正確な結果が本当に必要な場合は、PDFビューアーの段落ごとにテキストファイルにコピーし、wc -wツールで確認してください。pdftotextその場合に使用しない理由は次のとおりです。数式も出力に含まれ、「単語」と見なされる場合があります。(または、から取得した出力を編集できますpdftotext)。これが失敗する別の理由は、「4.3.2 Foo Bar」が3つの単語としてカウントされるという見出しです。

回避策は、[A-Za-z]から文字で始まる単語を数えることだけです。したがって、私が通常行うことは、2段階のアプローチです。

  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

これは1つのライナー内で行うことができますが、最初のステップのフィルター結果を簡単に見ることができませんでした。-Fコメントで述べたように、あなたを助けるかもしれMOI以下(感謝)。


1
grep -Ff wordsgrepが「Unmatched [or [^」について不平を言っているので、を使用する必要がありました。manページから: `` `-F、--fixed-strings PATTERNを、改行で区切られた固定文字列のリストとして解釈します。`` `(。-FはPOSIXによって指定される)
MOI

10

無料のプログラムTranslator's Abacusを試しました。さまざまな種類のファイル(PDFを含む)をドラッグアンドドロップすると、ブラウザーがポップアップし、各ドキュメントのワードカウントの印刷可能なレポートが表示されます。私にとってはうまくいきました。(これはワードカウント用に特別に作成されたもので、435 KBのみです。つまり、「大きなアプリケーション」ではありません)。Translator's AbacusはPDF 1.5以降では動作しません。

また:あなただけのことができますCtrl+ AAcrobat Readerですべてのテキストを選択し、(画面の下部のステータスバー上の単語数を持っている)は、Microsoft Wordのようなプログラムにコピー・ペーストします。


(多くの?)PDFでは、Crl + Aはドキュメント全体ではなく、現在のページの単語のみを選択します。しかし、翻訳者のそろばんは完璧に動作します。
-Junuxx

3
修正、翻訳者のそろばんはPDF 1.5以降では動作しません。
-Junuxx

Adobe ReaderでのCtrl + A +1とWinMergeの併用は、Windowsで非常に効果的です!
-superjos

2

Acrobat Proを使用している場合、これを簡単に行うには、PDFをMicrosoft Word文書にエクスポートしてから、Wordで単語カウントを行います。または、プレーンテキストファイルにエクスポートして、選択したテキストエディターでワードカウントユーティリティを使用することもできます。Wordメソッドを使用してpdf記事のワードカウントを行ったところ、完了までに30秒かかりました。

お役に立てれば。


テキストに変換してwc -w filename.txtを実行しました。動いた。ありがとう。
vijayst

1

OCRFeederをインストールできます。その中で選択し、自動的にすべてのpages-を検出し、認識ファイル>インポートPDF->>をODTへのエクスポートとのLibreOffice Writerドキュメントは、ワードカウントするか、使用したいと思うでしょう、他のRTF機能のための準備が整います。



0

次のコードでAdobe AcrobatのコンソールJavaScriptを使用できます。これは、forums.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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.