読者です 読者をやめる 読者になる 読者になる

人工知能に関する断創録

人工知能、認知科学、心理学、ロボティクス、生物学などに興味を持っています。このブログでは人工知能のさまざまな分野について調査したことをまとめています。最近は、機械学習・Deep Learningに関する記事が多いです。



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というファイルにテキストが出力される。