Apache Tika:通用的內容分析工具

來源:互聯網
上載者:User
項目介紹

Tika是一個內容分析工具,內建全面的parser工具類,能解析基本所有常見格式的檔案,得到檔案的metadata,content等內容,返回格式化資訊。總的來說可以作為一個通用的解析工具。特別對於搜尋引擎的資料抓去和處理步驟有重要意義。

Tika是一個目的明確,使用簡單的apache的開源項目。是Tika誕生的一個曆史過程。

Tika項目之初來源於Nutch項目(大家應該都不陌生),現在是Lucene的子項目,所以也是來源於搜尋引擎。其實Nutch這個項目的開發過程中,孕育了不少東西,應該都歸功於Doug Cutting。我個人也是覺得這件事情很贊,要搞Nutch這樣一個通用的搜尋引擎,包括了全文索引和Web爬蟲兩大塊內容,在開發過程中逐漸誕生出一些核心的周邊產品,再孕育成子項目,包括hadoop,Lucene,Tika等等這些現代很主流,使用人群很廣的通用項目,帶給了IT界不少便利。我個人對此非常憧憬,覺得甚是美好。

 

從源碼看功能

通過src裡幾個包和主要類,看Tika能幹什麼。跳過core包,tika-parsers展示了Tika能處理的檔案類別和內容,

音頻,圖片,文本,各種格式的檔案,tika都有對應的parser類來處理。而且Tika提供給了一些parser介面供擴充。tika-bundle提供Tika結合OSGi容器的能力。tika-app而則是一個在代碼外直接使用Tika的jar包,可以在官網直接下載使用,提供gui和cmd使用方式,直觀地體驗這款產品。下面我會展示。

 

Tika架構

解釋了Tika的架構以及關鍵零組件的主要設計目標:由一個解析器架構(中間),MIME檢測機制(右側),語言偵測(左側),和一個facade組件(中間部分的原理圖)聯絡所有組件。外部介面,包括命令列和圖形介面(下一節我會簡單介紹),允許使用者整合到指令碼或者應用程式,並與Tika直接互動。在整個結構中,Tika的體繫結構是可擴充的,新的解析器可以輕鬆地添加和刪除。

 

Tika使用

直接使用Tika,只要java -jar tika-app-1.2 --gui即可啟動,你可以把開啟本地檔案或者添加你要解析的url地址,甚至直接把各種檔案拖入Tika,查看Tika的解析結果。大家可以直接下載jar包體驗下,非常方便。在View內可以選擇你想查看的內容(Metadata, text等)。Tika對圖片的處理主要是提供一些元資訊,並不能分析出圖片內的內容,所以圖片形式的pdf檔案自然是不能查看text資訊的。

如果是用命令列,類似的文法是這樣的:

 

[html] view plaincopy

  1. java -jar tika-app-1.0.jar --text document.doc  
  2. java -jar tika-app-1.0.jar --encoding=UTF-8 --text document.doc  
  3. java -jar tika-app-1.0.jar --metadata document.doc  

 

想在別的工程中使用Tika,只要在maven項目依賴裡添加Tika,new Tika的執行個體,然後直接調用Tika的解析parser類,即可擷取到處理後的資訊。給個最簡單的例子:

 

[java] view plaincopy

  1. import java.io.File;  
  2. import org.apache.tika.Tika;  
  3. public class SimpleTextExtractor {  
  4.   public static void main(String[] args) throws Exception {  
  5.     // Create a Tika instance with the default configuration  
  6.     Tika tika = new Tika();  
  7.     // Parse all given files and print out the extracted text content  
  8.     for (String file : args) {  
  9.       String text = tika.parseToString(new File(file));  
  10.       System.out.print(text);  
  11.     }  
  12.   }  
  13. }  

 

 

總結

介紹Tika出於兩個目的:

1. 感覺是一個通用,實用且易用的分析工具,可以與lucene,solr結合,天生服務搜尋引擎

2. 感歎Nutch項目發展曆史,Apache各種開源項目的緊密,自然,優美的關聯性。

更多內容參看 《Tika in action》

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.