Tika:一个强大的Java文档内容解析工具

Tika介绍

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

内置解析器会在后台通过外部程序提供的API与之交互,并进行相应的文档内容信息和文档相关信息的解析处理,具体过程如下:
Tika:一个强大的Java文档内容解析工具_第1张图片
Tika通过MimeType(MIME是MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型)来实现对一个文档的具体识别工作,通过Language identifier来识别语言。根据MimeType和Language identifier的识别结果,选择调用具体的Parser来解析文档。而处理则由ContentHandler接口来完成。其中parser负责解析具体的文档,当解析到需要进行处理的时候,调用具体的信息处理类中的contentHandler进行解析内容的处理。解析、处理后得到的结果作为返回的值。

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

使用方法

Maven工程中引入以下依赖库

<dependency>
    <groupId>org.apache.tika</groupId>
    <artifactId>tika-parsers</artifactId>
    <version>1.17</version>
</dependency>

注意:版本1.20API有变化,解析文档内容时可能会解析不到内容;引入tika-parsers即可,maven会自动引入其他依赖包。

解析文档类型

    public static String getMimeType(File file)
            throws IOException {
        Tika tika = new Tika();
        return  tika.detect(file);
    }

解析文档内容

    public static String getContent(File file) throws IOException, TikaException {
        Tika tika = new Tika();
        return  tika.parseToString(file);
    }

参考资料

Tika官方文档
对Apache tika的了解和使用
TIKA教程
使用Apache Tika实现内容分析

你可能感兴趣的:(Java,Tika,内容分析,文档类型识别,解析文档内容,PPT/Word/pdf)