PDFからテキストを抽出する
自分が収集した論文データベースを対象にいろいろ言語処理してみようと考え中。そのためにはまずPDFファイルからテキスト部分を抽出できなくてはいけない。調べてみたところXpdfというツールが見つかったので使い方メモ。ソースコードからコンパイルもできるし、Windowsならバイナリもある。
以下、インストール手順。とりあえずxpdf-3.02.tar.gzと日本語PDF用の言語パックxpdf-japanese.tar.gzをダウンロードした。ソースコードからインストールする場合は、freetype2とt1libが必要なので入れておきインストール場所を確認しておく。うちのPCにはすでに /opt/local にインストールしてあった。
tar xvzf xpdf-3.02.tar.gz cd xpdf-3.02 ./configure --with-t1-library=/opt/local/lib \ --with-t1-includes=/opt/local/include \ --with-freetype2-library=/opt/local/lib \ --with-freetype2-includes=/opt/local/include/freetype2 make make install
言語パックは下のようにインストール。add-to-xpdfrcというファイルに書いてあるパスに日本語フォント情報をコピーしてるだけ。
tar xvzf xpdf-japanese.tar.gz cd xpdf-japanese mkdir -p /usr/local/share/xpdf/japanese cp -R *.unicodeMap *.cidToUnicode CMap /usr/local/share/xpdf/japanese cat add-to-xpdfrc >> ~/.xpdfrc
PDFファイルをテキストに変換するにはpdftotextコマンドを使う。-encオプションで出力テキストの文字コードを指定できる。Shift-JIS、EUC-JP、ISO-2022-JP、UTF-8が指定できた。
pdftotext test.pdf -enc UTF-8
英語PDFの場合はエンコード指定はいらないけど日本語PDFでは必須なのでとりあえずつけておく(つけないと日本語が抽出できない)。コマンドを実行するとtest.txtというファイルにテキストが出力される。