TIKA - Dokumenttyperkennung
MIME-Standards
MIME-Standards (Multipurpose Internet Mail Extensions) sind die besten verfügbaren Standards zur Identifizierung von Dokumenttypen. Die Kenntnis dieser Standards hilft dem Browser bei internen Interaktionen.
Immer wenn der Browser auf eine Mediendatei stößt, wählt er eine kompatible Software aus, die zur Anzeige des Inhalts verfügbar ist. Falls es keine geeignete Anwendung zum Ausführen einer bestimmten Mediendatei gibt, empfiehlt es dem Benutzer, die geeignete Plugin-Software dafür zu erwerben.
Typerkennung in Tika
Tika unterstützt alle in MIME bereitgestellten Internetmediendokumenttypen. Immer wenn eine Datei durch Tika geleitet wird, erkennt sie die Datei und ihren Dokumenttyp. Um Medientypen zu erkennen, verwendet Tika intern die folgenden Mechanismen.
Dateierweiterungen
Das Überprüfen der Dateierweiterungen ist die einfachste und am weitesten verbreitete Methode, um das Format einer Datei zu ermitteln. Viele Anwendungen und Betriebssysteme unterstützen diese Erweiterungen. Unten sehen Sie die Erweiterung einiger bekannter Dateitypen.
Dateiname | Erweiterung |
---|---|
Bild | .jpg |
Audio- | .mp3 |
Java-Archivdatei | .Krug |
Java-Klassendatei | .Klasse |
Hinweise zum Inhaltstyp
Wenn Sie eine Datei aus einer Datenbank abrufen oder an ein anderes Dokument anhängen, verlieren Sie möglicherweise den Namen oder die Erweiterung der Datei. In solchen Fällen werden die mit der Datei gelieferten Metadaten verwendet, um die Dateierweiterung zu erkennen.
Magisches Byte
Wenn Sie die Rohbytes einer Datei beobachten, finden Sie für jede Datei einige eindeutige Zeichenmuster. Einige Dateien haben spezielle Bytepräfixemagic bytes die speziell hergestellt und in einer Datei enthalten sind, um den Dateityp zu identifizieren
Beispielsweise finden Sie CA FE BA BE (Hexadezimalformat) in einer Java-Datei und% PDF (ASCII-Format) in einer PDF-Datei. Tika verwendet diese Informationen, um den Medientyp einer Datei zu identifizieren.
Zeichenkodierungen
Dateien mit einfachem Text werden mit verschiedenen Arten der Zeichenkodierung codiert. Die größte Herausforderung besteht darin, die Art der in den Dateien verwendeten Zeichenkodierung zu ermitteln. Tika folgt Zeichencodierungstechniken wieBom markers und Byte Frequencies um das vom Nur-Text-Inhalt verwendete Codierungssystem zu identifizieren.
XML-Stammzeichen
Um XML-Dokumente zu erkennen, analysiert Tika die XML-Dokumente und extrahiert die Informationen wie Stammelemente, Namespaces und referenzierte Schemas, aus denen der wahre Medientyp der Dateien stammt.
Typerkennung mit Fassadenklasse
Das detect()Die Methode der Fassadenklasse wird verwendet, um den Dokumenttyp zu erkennen. Diese Methode akzeptiert eine Datei als Eingabe. Im Folgenden sehen Sie ein Beispielprogramm für die Erkennung von Dokumenttypen mit der Tika-Fassadenklasse.
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);
}
}
Speichern Sie den obigen Code als TypeDetection.java und führen Sie ihn mit den folgenden Befehlen an der Eingabeaufforderung aus:
javac TypeDetection.java
java TypeDetection
audio/mpeg