🍣

【Omeka S モジュール紹介】PDFファイルに対してOCRを行うモジュール「Extract Ocr」

2022/11/24に公開

概要

PDFファイルに対してOCRを行うOmeka Sのモジュール「Extract Ocr」を紹介します。

インストール

以下のページを参考にします。

https://omeka.org/s/modules/ExtractOcr/

本モジュールは、pdftohtmlというコマンドラインツールが必要です。

以下、omeka-sの部分は、適宜変更してください。

AWS Lightsailを用いた環境では、以下によってインストールできました。

sudo apt install poppler-utils

さらに、omeka-s/config/local.config.phpを編集する必要があります。base_uriの部分は、導入した環境に応じて変更してください。例:https://omekas.aws.ldas.jp/sandbox/files

omeka-s/config/local.config.php
   'file_store' => [
        'local' => [
            'base_path' => null, // Or the full path on the server if needed.
            'base_uri' => 'https://example.org/files',
        ],
    ],

上記の設定後、モジュールをダウンロード、インストールします。

cd omeka-s/modules
git clone https://github.com/symac/Omeka-S-module-ExtractOcr.git ExtractOcr

AWS Lightsailの場合、インストール時に以下のエラーが発生しました。

以下のコマンドにより、omeka-s/filestempファイルを作成しました。

cd omeka-s/files
sudo mkdir temp
sudo chown daemon:daemon temp

上記の設定後、無事にインストールできました。

ファイルのアップロード

アイテムの新規登録を行い、メディアとしてPDFファイルをアップロードします。

アイテムの登録後、「Extracting OCR in background.」という文字列が表示され、以下に示すように、右下のメディアの欄に、xmlファイルが追加されます。

新たに作成されたxmlファイルを確認すると、以下のように、テキストが保存されていることが確認できます。

まとめと課題

PDFファイルをアップロードすることにより、同時にOCRテキストを保存することができました。一方、日本語テキストを含むPDFファイルをアップロードしたところ、OCRテキストがうまく作成されませんでした。引き続き検討したいと思います。

また、本モジュールを試した理由として、IIIF-Searchモジュールを用いた、内容検索を試みる予定でしたが、うまくいきませんでした。すこし調査した結果、作成されるxmlファイルのMIMEタイプがtext/xmlとなっているのが原因のようでした。IIIF-SearchモジュールはMIMEタイプがapplication/vnd.pdf2xml+xmlとなることを期待しており、この部分に齟齬が生じているようでした。この点についても、引き続き調査したいと思います。

以上、本調査結果が他の方の参考になりましたら幸いです。

Discussion