Apache Tika 内容提取练习

作者: cathy1997 | 来源:发表于2018-05-17 14:53 被阅读210次

    1.关于Tika的介绍
    2.检测运行环境
    3.使用GUI界面解析文档
    4.通过命令行使用Tika
    5.使用Tika接口:在Java中导入Tika


    1.关于Tika的介绍

    定义

    Apache Tika 是一个文本内容检测和解析工具。基于Java编写,是Apache的一个开源项目。
    Tika利用现有的解析类库,从不同格式的文档中(例如HTML、PDF、Doc),侦测和提取出文件的元数据结构化文本

    官方网站:https://tika.apache.org/

    使用场景

    用于提取文件文本内容,便于进行数据处理。

    主要功能

    • 文档类型/格式/属性检测
    • 提取文本内容:Tika有一个解析器库,可以分析各种文档格式的内容,并提取它们。然后检测所述文档的类型,它从解析器库选择的适当的分析器,并传递该文档。不同类别的Tika方法来解析不同的文件格式。
    • 提取元数据:对于某些文件类型,Tika有接口类提取元数据。
    • 语言检测

    Tika可以解析的文件格式

    https://tika.apache.org/1.14/formats.html

    Tika支持解析格式.png

    支持的文档格式和对应的解析类库

    参见:Apache Tika - 百度百科

    2.检测运行环境

    Java环境

    java -version
    
    查看java是否安装好

    下载Tika的jar包

    下载地址:tika-app-1.18.jar
    tika-app-1.18.jar是一个在代码外直接使用Tika的jar包,可以在官网直接下载使用,提供GUI和cmd使用方式,可以直观的体验这款产品。

    下载地址

    命令行打开jar包的gui界面

    下载之后不用解压缩包,直接cmd

    java -jar D:\App\tika-app-1.18.jar --gui
    

    注意文件目录不要有空格和中文


    启动页面

    3.使用GUI界面解析文档

    可以转换成的格式包括:

    • Metadata
    • Formatted Text
    • Plain Text
    • Main Content
    • Structured text
    • Recursive JSON

    尝试用Tika解析一个test.txt文本文件,可以打开本地文件或者添加你要解析的url地址,甚至可以直接把各种文件拖入Tika界面里。
    默认显示提取的元数据Metadata


    Metadata

    解析成Formatted Text


    Formatted Tex

    解析成Plain Text


    Plain Text

    提取Main Content


    Main Content

    解析成Structured text(XML)


    XML

    解析成json


    json

    4.通过命令行使用Tika

    查看Tika的命令行参数

    java -jar D:\App\tika-app-1.18.jar --help
    

    解析已有的pdf文本

    java -jar D:\App\tika-app-1.18.jar --text D:\App\test.pdf
    
    解析的pdf文本内容

    5.使用Tika接口:在Java中导入Tika

    Eclipse新建项目TikaTest,导入tika-app-1.18.jar包


    导入jar包

    编写TikaTest.java
    代码部分参照: 㭍葉

    import org.apache.tika.Tika;
    
    import java.io.*;
    
    /**
     * Created by Administrator on 2017/5/15.
     */
    public class Test {
        public static void main(String[] args) throws Exception{
            //二进制文件路径
            String fileName="c:/tika_test.txt";
    
            //二进制文件
            File file1 = new File(fileName);
    
            //通过tika获取文件内容
            Tika tika = new Tika();
            String filecontent = tika.parseToString(file1);
    
            //打印文件内容
            System.out.println("Extracted Content: " + filecontent);
    
            try{
    
                //要转换到的文件
                File file =new File("c:/ddd.doc");
    
                //文件不存在就新建
                if(!file.exists()){
                    file.createNewFile();
                }
    
                //把二进制文件内容写入doc文件
                FileWriter fw = new FileWriter(file.getAbsoluteFile());
                BufferedWriter bw = new BufferedWriter(fw);
                bw.write(filecontent);
                bw.close();
    
                System.out.println("Done");
    
            }catch(IOException e){
                e.printStackTrace();
            }
    
        }
    }
    

    运行程序


    执行结果

    查看转换生成的doc文件


    tika.doc

    参考

    相关文章

      网友评论

        本文标题:Apache Tika 内容提取练习

        本文链接:https://www.haomeiwen.com/subject/nlybdftx.html