對(duì)Apache tika的了解和使用

Apache Tika是基于java的內(nèi)容檢測(cè)和分析的工具包,可檢測(cè)并提取來(lái)自上千種不同文件類型(如PPT,XLS和PDF)中的元數(shù)據(jù)和結(jié)構(gòu)化文本。 它提供了命令行界面、GUI界面和一個(gè)java庫(kù)。Tika可幫助搜索引擎抓取內(nèi)容后的數(shù)據(jù)處理。

Tika的處理過(guò)程

內(nèi)置解析器會(huì)在后臺(tái)通過(guò)外部程序提供的API與之交互,并進(jìn)行相應(yīng)的文檔內(nèi)容信息和文檔相關(guān)信息的解析處理,具體過(guò)程如下:

tika處理框架

正如上圖所展示的,Tika對(duì)文檔內(nèi)容信息的解析處理的流程如下:Tika通過(guò)MimeType(MIME是MIME(Multipurpose Internet Mail Extensions)多用途互聯(lián)網(wǎng)郵件擴(kuò)展類型。是設(shè)定某種擴(kuò)展名的文件用一種應(yīng)用程序來(lái)打開(kāi)的方式類型)來(lái)實(shí)現(xiàn)對(duì)一個(gè)文檔的具體識(shí)別工作,通過(guò)Language identifier來(lái)識(shí)別語(yǔ)言。根據(jù)MimeType和Language identifier的識(shí)別結(jié)果,選擇調(diào)用具體的Parser來(lái)解析文檔。而處理則由ContentHandler接口來(lái)完成。其中parser負(fù)責(zé)解析具體的文檔,當(dāng)解析到需要進(jìn)行處理的時(shí)候,調(diào)用具體的信息處理類中的contentHandler進(jìn)行解析內(nèi)容的處理。解析、處理后得到的結(jié)果作為返回的值。

另外,關(guān)于文檔的元信息會(huì)在處理的過(guò)程中被解析,并保存在Metadata對(duì)象中。比如一個(gè)文檔的最后編輯時(shí)間,最后的保存時(shí)間,標(biāo)題,作者以及contentType等。這些信息對(duì)于用一些關(guān)鍵信息進(jìn)行文檔檢索非常有用。

環(huán)境配置

  1. java jdk
  2. 下載Tika的源代碼Mirrors for tika-1.14-src.zip和Tika的jar包Mirrors for tika-app-1.14.jar

嘗試使用GUI圖形界面進(jìn)行文件格式轉(zhuǎn)換

  1. 在命令行中輸入Java -jar C:\jar\tika-app-1.18.jar --gui,調(diào)出gui圖形界面。
  2. 新建待分析文本tika_text.txt:


    tika_text.txt

    解析為metadata:
    應(yīng)用舉例:某書籍的內(nèi)容


    metadata

    formatted text:
    formatted text

    plain text:


    plain text

    structured text:
    structured text

    recursive JSON:
    recursive JSON

其他tika的使用途徑

  1. 命令行使用tika:
    除了用gui進(jìn)行操作外,還可以在命令行界面中使用java -jar tika-app-1.15.jar --text .doc命令進(jìn)行文本格式的轉(zhuǎn)換,text為要轉(zhuǎn)變的格式,.doc為你想要轉(zhuǎn)變的文本的物理位置。

  2. 在java工程中使用Tika:

在eclipse中新建項(xiàng)目并導(dǎo)入tika-app-1.14.jar,編寫代碼使用Tika facade 類從文件中提取文本:

import java.io.File;
import java.io.IOException;

import org.apache.tika.Tika;
import org.apache.tika.exception.TikaException;

import org.xml.sax.SAXException;

public class TikaExtraction {
    
   public static void main(final String[] args) throws IOException, TikaException {

      //Assume sample.txt is in your current directory              
      File file = new File("sample.txt");
      
      //Instantiating Tika facade class
      Tika tika = new Tika();
      String filecontent = tika.parseToString(file);
      System.out.println("Extracted Content: " + filecontent);
   }         
}

代碼來(lái)源:https://www.yiibai.com/tika/tika_content_extraction.html
但由于本機(jī)java10版本與eclipse不兼容,也未找到適合的插件,代碼未運(yùn)行成功。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,590評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,111評(píng)論 25 709
  • 《培養(yǎng)孩子從畫畫開(kāi)始》是小園子?jì)寢尫窒硗扑]的好書,我在圖書館借看了,進(jìn)一步了解了孩子的畫畫成長(zhǎng),大開(kāi)眼界。 中心圖...
    王健文思維導(dǎo)圖閱讀 244評(píng)論 0 0
  • 早安,低調(diào)! 從此潑墨煮茶,閉口不談世間繁華。 從此安分守己,再也不說(shuō)浪跡天涯。 從此人海逐流,閉口不談相依為命。...
    caterpilla_1a1c閱讀 289評(píng)論 0 0
  • 接著第六十三章,寫寫第六十四章。 原文如下:其安易持,其未兆易謀,其脆易判,其微易散。為之于未有,治之于未亂。合抱...
    omy1992閱讀 465評(píng)論 0 0

友情鏈接更多精彩內(nèi)容