对Apache tika的了解和使用

Apache Tika是基于java的内容检测和分析的工具包,可检测并提取来自上千种不同文件类型(如PPT,XLS和PDF)中的元数据和结构化文本。 它提供了命令行界面、GUI界面和一个java库。Tika可帮助搜索引擎抓取内容后的数据处理。

Tika的处理过程

内置解析器会在后台通过外部程序提供的API与之交互,并进行相应的文档内容信息和文档相关信息的解析处理,具体过程如下:

tika处理框架

正如上图所展示的,Tika对文档内容信息的解析处理的流程如下:Tika通过MimeType(MIME是MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型)来实现对一个文档的具体识别工作,通过Language identifier来识别语言。根据MimeType和Language identifier的识别结果,选择调用具体的Parser来解析文档。而处理则由ContentHandler接口来完成。其中parser负责解析具体的文档,当解析到需要进行处理的时候,调用具体的信息处理类中的contentHandler进行解析内容的处理。解析、处理后得到的结果作为返回的值。

另外,关于文档的元信息会在处理的过程中被解析,并保存在Metadata对象中。比如一个文档的最后编辑时间,最后的保存时间,标题,作者以及contentType等。这些信息对于用一些关键信息进行文档检索非常有用。

环境配置

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

尝试使用GUI图形界面进行文件格式转换

  1. 在命令行中输入Java -jar C:\jar\tika-app-1.18.jar --gui,调出gui图形界面。
  2. 新建待分析文本tika_text.txt:


    tika_text.txt

    解析为metadata:
    应用举例:某书籍的内容


    metadata

    formatted text:
    formatted text

    plain text:


    plain text

    structured text:
    structured text

    recursive JSON:
    recursive JSON

其他tika的使用途径

  1. 命令行使用tika:
    除了用gui进行操作外,还可以在命令行界面中使用java -jar tika-app-1.15.jar --text .doc命令进行文本格式的转换,text为要转变的格式,.doc为你想要转变的文本的物理位置。

  2. 在java工程中使用Tika:

在eclipse中新建项目并导入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);
   }         
}

代码来源:https://www.yiibai.com/tika/tika_content_extraction.html
但由于本机java10版本与eclipse不兼容,也未找到适合的插件,代码未运行成功。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,384评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,322评论 25 709
  • 《培养孩子从画画开始》是小园子妈妈分享推荐的好书,我在图书馆借看了,进一步了解了孩子的画画成长,大开眼界。 中心图...
    王健文思维导图阅读 1,508评论 0 0
  • 早安,低调! 从此泼墨煮茶,闭口不谈世间繁华。 从此安分守己,再也不说浪迹天涯。 从此人海逐流,闭口不谈相依为命。...
    caterpilla_1a1c阅读 1,716评论 0 0
  • 接着第六十三章,写写第六十四章。 原文如下:其安易持,其未兆易谋,其脆易判,其微易散。为之于未有,治之于未乱。合抱...
    omy1992阅读 3,047评论 0 0