Apache Tikaでコンテンツを読み込んでみる

# Apache Tikaとは

[Apache Tika](http://tika.apache.org/)

> Apache TikaはJavaで開発されたドキュメント分析およびメタデータ抽出ツールキット。さまざまなドキュメント形式に対応しており、対象データからメタデータの抽出を実施する。Tikaは以前はApache Luceneのサブプロジェクトだったが、現在ではApacheソフトウェアファウンデーション直下のプロジェクトとして扱われている。

[PDFやOffice文書からメタデータを抽出する「Apache Tika 1.0」登場](http://news.mynavi.jp/news/2011/11/11/018/index.html)

## とりあえず使ってみる

今回は試しに動かしてみたいだけなので

[Apache Tika - Download](http://tika.apache.org/download.html)
より、tika-app-1.4.jarをダウンロード。

動作にはJava 5以上あればよいらしい。

[Getting Started with Apache Tika](http://tika.apache.org/1.4/gettingstarted.html)を参考に動かしてみるよ。

例えばQiitaのトップからテキストを抽出。

```bash:
curl http://qiita.com | java -jar tika-app-1.4.jar -t
# （出力は省略）
```

HTMLタグの外れたテキストのみが抽出される。

次にメタデータを抽出してみる。

```bash:
curl http://qiita.com |java -jar tika-app-1.4.jar -m
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13354  100 13354    0     0   6295      0  0:00:02  0:00:02 --:--:--  149k
Content-Encoding: UTF-8
Content-Type: text/html; charset=UTF-8
csrf-param: authenticity_token
csrf-token: dSy4U4+9rRNQFC4caHMvMF7HACh52MIeIv2T6whBYD8=
dc:title: Qiita [キータ] - プログラマの技術情報共有サービス
description: Qiitaは、プログラマのための技術情報共有サービスです。プログラミングに関するTips、ノウハウ、メモを簡単に記録&amp;公開することができます。
fb:admins: 564524038
og:description: Qiitaは、プログラマのための技術情報共有サービスです。プログラミングに関するTips、ノウハウ、メモを簡単に記録&amp;公開することができます。
og:image: http://qiita.com//assets/qiita-fb-ced1f2e92fd6f8d912353b746a063723.png
og:site_name: Qiita
og:title: Qiita [キータ] - プログラマの技術情報共有サービス
og:type: website
og:url: http://qiita.com/
title: Qiita [キータ] - プログラマの技術情報共有サービス
twitter:card: summary
twitter:site: @Qiita
viewport: width=device-width,height=device-height,initial-scale=1
```

例えば `dc:title` は[Doublin Core（ダブリン・コア）](http://ja.wikipedia.org/wiki/Dublin_Core)の基本要素のひとつ。
他にもFacebookなどで使われているOGP(Open Graph Protocol）のメタデータ`og:`やTwitterのIDなども取れているね。

Tikaはhtmlだけでなく様々な文書フォーマットに対応している。
例えば[厚生労働白書](http://www.mhlw.go.jp/toukei_hakusho/hakusho/)の平成24年版厚生労働白書概要版のPDFに試してみる。何度もアクセスするのは気が引けたので、一旦落としてから、メタデータをJSON形式で取得してみる。

```bash:
wget http://www.mhlw.go.jp/wp/hakusyo/kousei/12-1/dl/gaiyou.pdf
java -jar tika-app-1.4.jar -j  < gaiyou.pdf
{ "Author":"厚生労働省ネットワークシステム",
"Company":"厚生労働省",
"Content-Type":"application/pdf",
"ContentTypeId":"0x0101002DA299AC048A4B8EA9C1D19079C1A322009BEBE826950D474BAD6B2F2400F1439F",
"Creation-Date":"2012-11-01T05:13:10Z",
"Last-Modified":"2012-11-01T05:13:44Z",
"Last-Save-Date":"2012-11-01T05:13:44Z",
"created":"Wed Oct 31 22:13:10 PDT 2012",
"creator":"厚生労働省ネットワークシステム",
"date":"2012-11-01T05:13:44Z",
"dc:creator":"厚生労働省ネットワークシステム",
"dc:title":"スライド 1",
"dcterms:created":"2012-11-01T05:13:10Z",
"dcterms:modified":"2012-11-01T05:13:44Z",
"meta:author":"厚生労働省ネットワークシステム",
"meta:creation-date":"2012-11-01T05:13:10Z",
"meta:save-date":"2012-11-01T05:13:44Z",
"modified":"2012-11-01T05:13:44Z",
"producer":"Adobe PDF Library 9.0",
"title":"スライド 1",
"xmp:CreatorTool":"PowerPoint 用 Acrobat PDFMaker 9.1",
"xmpTPg:NPages":12 }
```

それから、大文字のTオプションでメインのテキストを抽出できるそう。
[MacBook Air (13-inch, Mid 2013) - クイックスタート](http://support.apple.com/ja_JP/manuals/)から抜き出してみた。

```bash:
curl http://manuals.info.apple.com/ja_JP/macbook_air-13-inch-mid-2013_quick_start_jp.pdf | java -jar tika-app-1.4.jar -T
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 4679k  100 4679k    0     0  1757k      0  0:00:02  0:00:02 --:--:-- 7232k
はじめに お買い求めのMacBook Airをはじめて起動すると、「設定アシスタント」がMacの設定手 順をご案内します。表示される説明に従って、Wi-Fiネットワークへの接続、ほかのMacま たはWindowsコンピュータからのデータの転送、Macのユーザアカウントの設定が簡単に できます。

# （中略）

新しいアプリケーションをチェック さまざまなアプリケーションをブラ ウズして、「Launchpad」に直接 ダウンロ ドーできます。
カレンダー表示 日、週、月、または年表示を 選択できます。
イベントを追加 カレンダー内をダブル クリックすれば新しいイベ ントを追加できます。
```

何を以ってメインテキストとしてるのかまではまだ見てないのだけど、なんとなくメインっぽいような気はする。

今日はこれくらいにしておくけど、なんかひょっとすると面白いことができそうな気がしてきたよ！