いろいろ調べ物をしていますと、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」というテスト用のスクリプトファイルがあるようなので、とりあえずそれを実行してみます。
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に続きます。