Apache Tikaでテキスト抽出

便利なTikaを使います。
なお今回はapp版を使います。
https://tika.apache.org/download.html
からダウンロードしましょう。

実行可能なjarになっているのでダウンロードしたら

$ java -jar tika-app-1.11.jar

でコンソールが開きます。

ここでメニューから指定しても問題ありませんが、概ね時間が掛かって大変レスポンスが悪く使いにくいためコマンドラインでの処理を考えます。

WORDファイルからの抽出

国土地理院のWordファイルからテキストを抽出する処理を実施してみます。

$ curl http://psgsv2.gsi.go.jp/koukyou/G-award/file%5C%E9%9B%BB%E5%AD%90%E5%9B%BD%E5%9C%9F%E8%B3%9E%E3%83%AD%E3%82%B4%E3%83%9E%E3%83%BC%E3%82%AF%E4%BD%BF%E7%94%A8%E7%94%B3%E8%AB%8B%E6%9B%B8.doc | java -jar tika-app-1.11.jar --text
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100 32768  100 32768    0     0  51275      0 --:--:-- --:--:-- --:--:-- 51360
(様式1)

電子国土賞ロゴマーク使用申請書

平成  年  月  日

国土地理院企画部長 殿

(略)

$

PDFファイルからの抽出

次にPDFから情報を取得するテストを実施します。
総務省のPDFをサンプルとして利用します。Tika以外にもPDFからテキストを抽出する方法はたくさんあるのであまりありがたみがないと思いますが

$ curl http://www.soumu.go.jp/main_content/000162017.pdf | java -jar tika-app-1.11.jar --text
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100  254k  100  254k    0     0   345k      0 --:--:-- --:--:-- --:--:--  345k

公衆電話の特徴と使用方法

①災害時優先電話
公衆電話は、災害等の緊急時において電話が混み合い、通信規
制が実施される場合であっても、通信規制の対象外として優先的
に取り扱われます。

(略)
$

Excelファイルからの抽出

次に経産省のEXCELファイル(xls)からデータを抽出することをテストします。

$ curl  http://www.meti.go.jp/policy/alcohol/formfiles/siyou_setsumei2.xls  | java -jar tika-app-1.11.jar --text
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100  359k  100  359k    0     0   533k      0 --:--:-- --:--:-- --:--:--  532k
目次
アルコール使用業務報告書作成支援ソフトウエア取扱説明書(詳細編)


-目次-
1.概要        1-1
1.1 機能構成        1-1
(1)業務報告書作成支援    1-1
(2)業務報告書データの入出力 1-1
(3)業務報告書形式の出力   1-1
1.2 入出力     1-1
(1)業務報告書    1-1
(2)報告書データ(電子媒体テキストファイル) 1-1
<報告書データのファイル名について>  1-2
<複数のファイルの扱いについて>    1-2
(3)処理結果ログ   1-2

これも綺麗に取得できますね。

対応フォーマット

https://tika.apache.org/1.11/formats.html
を見ての通り、tikaは相当なフォーマットがサポートされています。

DWGParserとかMIDIとかいろんなものがサポートされていますね。
社内ドキュメントのインデクシングを行ったりテキストマイニングをやってみるなど、使い道は広いと思います。

それでは良いドキュメントライフを!

投稿者プロフィール

えんじにあん
インフラ系のエンジニアです。
運用系のスクリプトを書いたり、オートメーションな世界に向かって日々精進しています。

コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.

ABOUTこの記事をかいた人

インフラ系のエンジニアです。 運用系のスクリプトを書いたり、オートメーションな世界に向かって日々精進しています。