【Python】pdfファイルからテキストを超簡単に抽出する方法

  • 2019年8月20日
  • 2020年5月4日
  • Python

こんにちは!

皆さんはpdfファイルからテキストを抽出したいと思ったことはありませんか?

今回の記事では、以下のpdfファイルの抽出方法を紹介します。

  • pdfminer.sixを使ったpdfファイルの抽出方法

pdfminer.sixモジュール

pdfminer.sixモジュールとは

「pdfminer.six」モジュールとは、pdfからテキストを抽出するために作成されたPythonのモジュールです。

pdfminer.sixは日本語に対応しているため、日本語のテキストも抽出することができます。

PyPI

PDF parser and analyzer…

pdfminer.sixモジュールのインストール方法

pdfminer.sixモジュールをインストールするには、以下のコマンドを入力しましょう。

pip install pdfminer.six

このモジュールをインストールすると、同時にとあるプログラムもダウンロードされます。

超簡単にpdfファイルからテキストを抽出しよう!

テキストを抽出するプログラムを用意する

今回の記事で、pdfファイルからテキストを抽出する際に何が超簡単なのか、それは先ほど述べた同時にダウンロードされるプログラムに秘密があります。

そのプログラムの名前は、「pdf2txt.py」という名前です。

このプログラムは、pdfファイルからテキストを抽出するために作成されたプログラムです。

そのため、pdfファイルからテキストを抽出するには、プログラムを実行するだけです。

だから超簡単なんですね。

インストールされている場所がわからない方は、素直にファイル検索をしましょう。

ちなみに、macでanacondaを使用している自分の場合は、

Macintosh HD/anaconda3/bin/pdf2txt.py

というディレクトリ構造になっています。

pdf2txt.pyと、テキストを抽出したいpdfファイルを移動させて、同じディレクトリ内に入れておきましょう。

これで準備は完了です。

pdf2txt.pyを実行

早速pdf2txt.pyを実行していきましょう。

実行する際は、「テキストを抽出したいpdfファイル」を引数として指定します。

今回はsample.pdfという以下のpdfファイルからテキストを抽出していきます。

実行を試してみたいけどpdfファイルが無い!という方は下のダウンロードからsample.pdfをダウンロード可能なので是非ダウンロードしてみてください!

python3 pdf2txt.py sample.pdf

実行結果

この pdf ファイルはサンプルです。 

この pdf ファイルはサンプルです。 

この pdf ファイルはサンプルです。 

この pdf ファイルはサンプルです。 

 
 
 
 
 
 
 

どうでしょうか?sample.pdfでは、文字の大きさがそれぞれ行ごとに違いますが、pdf2txt.pyを実行すると、文字の大きさに関係なくテキストを抽出できていますね!

注意事項

今回の簡単なpdfファイルではうまくテキストを抽出することができました。

しかし、pdfには様々なバージョンがあったり、暗号化が行われテキストを抽出できないようにしているものもあります。

さらには、文章が多段構成だった場合には、うまくテキストを抽出できないといった問題もあります。

以下の点を念頭に置いて実行するようにしましょう。

全てのpdfファイルのテキストをうまく抽出できるわけではありません。

このような問題を解決するためには、pdfファイルごとにテキストを抽出するプログラムを書き換えるしかありません。

そのため様々な形のpdfファイルを扱うにはあまり向いていません。

同じような形式のpdfファイルをたくさん扱い、テキストを抽出する場合には非常に有効ですので、ぜひやり方を覚えておきましょう!

まとめ

今回の記事では、以下のpdfファイルの抽出方法を紹介しました

  • pdfminer.sixを使ったpdfファイルの抽出方法
     →pdf2txt.pyを実行するだけ
      全てのpdfファイルをうまく抽出できるわけではない

注意事項をしっかりと頭に入れて、様々なpdfファイルからテキストを抽出してみましょう!