TIKA-ドキュメントタイプの検出

MIME標準

多目的インターネットメール拡張(MIME)標準は、ドキュメントタイプを識別するために利用できる最良の標準です。これらの標準の知識は、内部対話中にブラウザを支援します。

ブラウザがメディアファイルに遭遇するたびに、ブラウザはそのコンテンツを表示するために利用可能な互換性のあるソフトウェアを選択します。特定のメディアファイルを実行するための適切なアプリケーションがない場合は、適切なプラグインソフトウェアを入手することをお勧めします。

Tikaでのタイプ検出

Tikaは、MIMEで提供されるすべてのインターネットメディアドキュメントタイプをサポートします。ファイルがTikaを通過するたびに、ファイルとそのドキュメントタイプが検出されます。メディアタイプを検出するために、Tikaは内部で次のメカニズムを使用します。

ファイル拡張子

ファイル拡張子のチェックは、ファイルの形式を検出するための最も簡単で最も広く使用されている方法です。多くのアプリケーションとオペレーティングシステムは、これらの拡張機能をサポートしています。以下に示すのは、いくつかの既知のファイルタイプの拡張子です。

ファイル名 延長
画像 .jpg
オーディオ .mp3
javaアーカイブファイル .jar
Javaクラスファイル 。クラス

コンテンツタイプのヒント

データベースからファイルを取得したり、別のドキュメントに添付したりすると、ファイルの名前や拡張子が失われる可能性があります。このような場合、ファイルで提供されるメタデータは、ファイル拡張子を検出するために使用されます。

マジックバイト

ファイルの生のバイトを観察すると、各ファイルに固有の文字パターンを見つけることができます。一部のファイルには、と呼ばれる特別なバイトプレフィックスがありますmagic bytes ファイルタイプを識別するために特別に作成され、ファイルに含まれているもの

たとえば、CA FE BA BE(16進形式)はJavaファイルで、%PDF(ASCII形式)はPDFファイルで見つけることができます。Tikaはこの情報を使用して、ファイルのメディアタイプを識別します。

文字エンコード

プレーンテキストのファイルは、さまざまな種類の文字エンコードを使用してエンコードされます。ここでの主な課題は、ファイルで使用されている文字エンコードのタイプを特定することです。Tikaは、次のような文字エンコード技術に従います。Bom markers そして Byte Frequencies プレーンテキストコンテンツで使用されるエンコーディングシステムを識別するため。

XMLルート文字

XMLドキュメントを検出するために、Tikaはxmlドキュメントを解析し、ルート要素、名前空間、参照スキーマなどの情報を抽出します。そこから、ファイルの実際のメディアタイプを見つけることができます。

ファサードクラスを使用したタイプ検出

ザ・ detect()ファサードクラスのメソッドは、ドキュメントタイプを検出するために使用されます。このメソッドは、ファイルを入力として受け入れます。以下に示すのは、Tikaファサードクラスを使用したドキュメントタイプ検出のプログラム例です。

import java.io.File;

import org.apache.tika.Tika;

public class Typedetection {

   public static void main(String[] args) throws Exception {

      //assume example.mp3 is in your current directory
      File file = new File("example.mp3");//
      
      //Instantiating tika facade class 
      Tika tika = new Tika();
      
      //detecting the file type using detect method
      String filetype = tika.detect(file);
      System.out.println(filetype);
   }
}

上記のコードをTypeDetection.javaとして保存し、次のコマンドを使用してコマンドプロンプトから実行します-

javac TypeDetection.java
java TypeDetection 

audio/mpeg