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