OCRも試した紙資料をスキャンして生成されるいわゆる画像的なPDFファイルを、どうしても電子的に検索したくなり、「検索可能PDF」の今時の作り方に挑戦してみた。思い通りに出来たので、ブログ記事にしておきます。した結果のテキストを、元データとは異なるレイヤーに重ねている、テキストの検索【Ctrl+F】が効くPDFのこと。API」を使うことにした。APIの簡単な紹介として、2015年12月公開の動画と、中の人による関連記事を貼っておく。16.04)今回のアイデアは、次の記事を非常に参考にしています。https://qiita.com/dinosauria123/items/0feb719eb935fea62dd9また、OCRで抽出したテキストの内容や配置情報を保持する、「hOCR」というフォーマットの存在を初めて知りました。次のようにインストールする。同梱されているPython版「gcv2hocr.py」も元来は利用可能なようだが、中身の更新がおそらくC版に追いついていない気がしたので、今回はPython版ではなくC版をmakeして使っている。参考にhocr-toolsをインストールする。このツールセットのうちのhocr-pdfを後で使用する。下記のような約50行のbashスクリプトを自作した。pdf4search.shで実行権限を付与する。gcvocr.shする。関しては、中身がいろいろと雑だしダサいしすみません。後日時間があればGitHubにアップロードします。アップロードしました。Keyの取得方法については、ここでは説明を省略。次のページなどを参照してください。(TEXT_DETECTION)」で利用する場合、利用料は「最初の1,000ユニット/月」は「無料」となっている。この規模を超える利用を行う可能性がある場合は、Google本家の料金表をご確認ください。Visionが抽出したテキストデータが重なっているPDFが、同じ場所に新規保存される。いうようなコマンドを用いて、新規保存された検索可能PDFの中のテキストを確認できる。Viewerで全選択【Ctrl+A】してみて、テキストが選択可能かどうか確かめるのもよい。中身のテキストを対象にgrepが効くしかし今のところ、原因不明の問題が一つある。VisionによるOCRは、普段見るフォントはかなり認識するようだし、文字列が多少傾いていても平気みたいだし、さすがに凄いただし、文字間のマージンを感度高めに表現するのか、テキスト認識後に単語が途中で分かれていることがよくある。(そのためのpdf4search.shのラッパーは作成済み。ある使い方で、PDFの日本語テキストを認識させようとした。Visionを使う方針に切り替えたのであった。個人的な記録や思いをつらつらと。福岡長崎育ち、神戸在住。