毎日テキストマイニング

180日間、毎日テキストマイニングをするブログです

2018/7/23【31日目】PythonでPDFからテキストを読み込む。その1

いろいろ調べ物をしていますと、PDFに当たることがあります。PDFを何かしらの分析に使えないかなーって思っていましたがpdfminer.sixというものを使えばテキスト出力ができるらしいので、今回触ってみました。

インストール

公式サイトはこちらです。 https://github.com/pdfminer/pdfminer.six

いつも通りpip installでインストールをします。

pip install pdfminer.six

python pdf2txt.py

今回利用させてもらう論文はこちら 『女性グループの歌詞の計量テキスト分析』 http://www.anlp.jp/proceedings/annual_meeting/2013/pdf_dir/P1-5.pdf

すごい論文ですね。

pip installした時に「pdf2txt.py」というテスト用のスクリプトファイルがあるようなので、とりあえずそれを実行してみます。 f:id:rimt:20180724235432p:plain

python pdf2txt.py pdf/p1_5.pdf
 
 

言語処理学会  第 19 回年次大会  発表論文集  (2013 年 3 月) 

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 
(以下、省略)

ターミナルに永遠とテキストが表示されました。これだけですと、使い道がないので、リストに入れるようにしてみたいです。

まずはpdfminer.sixのimportから。 importは下記の7点が基本セットらしいです。

from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfpage import PDFTextExtractionNotAllowed
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfdevice import PDFDevice

オープンの仕方

pdf = open('pdf/p1_5.pdf', 'rb')

PDFのパーサーを行う。パーサーとは構文解析を行うことらしいです。

parser = PDFParser(pdf)
parser

実行結果はこんな感じです。

<PDFParser: <_io.BufferedReader name='pdf/p1_5.pdf'>, bufpos=0>

PDFリソースマネージャオブジェクトを作成。リソースマネージャオブジェクトとは一括して作成・更新・削除できる機能のようです。

rsrcmgr = PDFResourceManager(pdf)
rsrcmgr
<pdfminer.pdfinterp.PDFResourceManager at 0x10b8457f0>

PDFのDeviceを作成。何に使うのかは不明です。

device = PDFDevice(pdf)
device
<PDFDevice>

時間がないので、その2に続きます。