信息组织与信息检索我爱编程

Apache Tika 内容提取练习

2018-05-17  本文已影响210人  cathy1997

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可以解析的文件格式

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界面解析文档

可以转换成的格式包括:

尝试用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

参考

上一篇 下一篇

猜你喜欢

热点阅读