TIKA - การตรวจจับประเภทเอกสาร

มาตรฐาน MIME

มาตรฐาน Multipurpose Internet Mail Extensions (MIME) เป็นมาตรฐานที่ดีที่สุดสำหรับการระบุประเภทเอกสาร ความรู้เกี่ยวกับมาตรฐานเหล่านี้ช่วยให้เบราว์เซอร์ในระหว่างการโต้ตอบภายใน

เมื่อใดก็ตามที่เบราว์เซอร์พบไฟล์มีเดียเบราว์เซอร์จะเลือกซอฟต์แวร์ที่เข้ากันได้ที่มีให้เพื่อแสดงเนื้อหา ในกรณีที่ไม่มีแอปพลิเคชั่นที่เหมาะสมในการเรียกใช้ไฟล์มีเดียโดยเฉพาะขอแนะนำให้ผู้ใช้รับซอฟต์แวร์ปลั๊กอินที่เหมาะสม

ประเภทการตรวจจับใน Tika

Tika รองรับเอกสารสื่ออินเทอร์เน็ตทุกประเภทที่มีให้ใน MIME เมื่อใดก็ตามที่ไฟล์ถูกส่งผ่าน Tika จะตรวจพบไฟล์และประเภทเอกสาร ในการตรวจจับประเภทสื่อ Tika จะใช้กลไกต่อไปนี้ภายใน

นามสกุลไฟล์

การตรวจสอบนามสกุลไฟล์เป็นวิธีที่ง่ายและใช้กันมากที่สุดในการตรวจหารูปแบบของไฟล์ แอปพลิเคชันและระบบปฏิบัติการจำนวนมากให้การสนับสนุนส่วนขยายเหล่านี้ ด้านล่างนี้คือนามสกุลของไฟล์ที่รู้จักกันไม่กี่ประเภท

ชื่อไฟล์ Extention
ภาพ .jpg
เสียง .mp3
ไฟล์เก็บถาวร java .jar
ไฟล์คลาส java .class

คำแนะนำประเภทเนื้อหา

เมื่อใดก็ตามที่คุณดึงไฟล์จากฐานข้อมูลหรือแนบไปกับเอกสารอื่นคุณอาจสูญเสียชื่อหรือนามสกุลของไฟล์ ในกรณีเช่นนี้ข้อมูลเมตาที่ให้มาพร้อมกับไฟล์จะถูกใช้เพื่อตรวจหานามสกุลไฟล์

ไบต์มหัศจรรย์

เมื่อสังเกตไบต์ดิบของไฟล์คุณจะพบรูปแบบอักขระที่ไม่ซ้ำกันสำหรับแต่ละไฟล์ ไฟล์บางไฟล์มีคำนำหน้าไบต์พิเศษที่เรียกว่าmagic bytes ที่จัดทำขึ้นเป็นพิเศษและรวมอยู่ในไฟล์เพื่อวัตถุประสงค์ในการระบุประเภทไฟล์

ตัวอย่างเช่นคุณสามารถค้นหา CA FE BA BE (รูปแบบเลขฐานสิบหก) ในไฟล์ java และ% PDF (รูปแบบ ASCII) ในไฟล์ pdf Tika ใช้ข้อมูลนี้เพื่อระบุประเภทสื่อของไฟล์

การเข้ารหัสอักขระ

ไฟล์ที่มีข้อความธรรมดาถูกเข้ารหัสโดยใช้การเข้ารหัสอักขระประเภทต่างๆ ความท้าทายหลักคือการระบุประเภทของการเข้ารหัสอักขระที่ใช้ในไฟล์ Tika ทำตามเทคนิคการเข้ารหัสอักขระเช่นBom markers และ Byte Frequencies เพื่อระบุระบบการเข้ารหัสที่ใช้โดยเนื้อหาข้อความธรรมดา

อักขระรูท XML

ในการตรวจหาเอกสาร XML Tika จะแยกวิเคราะห์เอกสาร xml และแยกข้อมูลเช่นองค์ประกอบรูทเนมสเปซและสกีมาที่อ้างอิงจากตำแหน่งที่สามารถพบชนิดสื่อที่แท้จริงของไฟล์ได้

การตรวจจับประเภทโดยใช้ Facade Class

detect()วิธีการของคลาสซุ้มใช้ในการตรวจจับประเภทเอกสาร วิธีนี้ยอมรับไฟล์เป็นอินพุต ด้านล่างนี้เป็นโปรแกรมตัวอย่างสำหรับการตรวจจับประเภทเอกสารด้วยคลาส Tika facade

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