Apache Tika使用报告

简介: 实验对象:Apache Tika实验目的:通过尝试使用Apache Tika进行文件格式转换,加深对搜索引擎的理解和认识目录Apache Tika简介配置Apache Tika运行环境用GUI图形界面进行文件格式转换的尝试用命令行使用Tika在java工程中使用Tika1. Apache Tika 简介Apache Tika是一个用java编写的内容检测和分析框架,是Apache的Lucene项目的子项目。

实验对象:Apache Tika
实验目的:通过尝试使用Apache Tika进行文件格式转换,加深对搜索引擎的理解和认识


目录

  1. Apache Tika简介
  2. 配置Apache Tika运行环境
  3. 用GUI图形界面进行文件格式转换的尝试
  4. 用命令行使用Tika
  5. 在java工程中使用Tika

1. Apache Tika 简介

img_140edae30a044381b875bd042b58706b.png

Apache Tika是一个用java编写的内容检测和分析框架,是 ApacheLucene项目的子项目。它能够检测很多不同文件类型的文件,并提取文件的元数据和结构化文本。它提供了一个命令行界面和一个GUI界面,还提供一个java库。可用于 自然语言处理过程中文本内容的抽取,以及 搜索引擎进行数据抓取后的处理步骤。

img_a99c8ad7c1278b52ebb14cc128daaff6.png
Tika诞生历程

Tika 架构

Tika 体系结构的四个模块

  • 语言检测机制
  • MIME检测机制
  • Parser接口
  • Tika Facade类
img_3b3a4b644eafe2c1cda110a57d7a21b6.png
img_1358a565eaa88d6f9acabace43efb9e2.png

Tika主要功能

  • 文档类型检测
  • 内容提取
  • 元数据提取
  • 语言检测

2. 配置Apache Tika运行环境

验证java环境

img_fd7bdf81bb9a7ed2e7c66067efdb3628.png

如果没有配置java环境,请 下载配置Java JDK
下载Tika的源代码 Mirrors for tika-1.14-src.zip和Tika的jar包 Mirrors for tika-app-1.14.jar

img_bb0dbda395f5408fa7c09dada00e45e2.png
Tika官网的下载页面

在cmd里键入命令打开GUI图形界面


img_d44217b3beb454b9a27047366a72259e.png
命令行打开tika
img_ec01021df2a53c59068b14bfcece92e4.png

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

编写一个二进制文件tika_test.txt放在C:\目录下


img_437f5a0aaf0f0bf5bba64129a102aeab.png
tika_test.txt

把tika_test.txt拖进gui里,默认显示提取的元数据

img_3c20820289e33f396e4c93895088f76d.png
MetaData

解析成Formatted Text


img_82e801337c706682d9e720bb77d183ca.png
Formatted Text

解析成Plain text


img_912d8ac9fe6e4b7796b1052099b5704c.png
Plain text

提取Main content 居然是空的
img_a2de95e4d5f5cb45de2e302bcb563f78.png
Main content

解析成XML
img_3dbc7452a37b562e728fe23d36b6f687.png
xml

解析成json


img_7cd1ea76426525c9b57010f70c8ef020.png
json

4. 用命令行使用Tika

先来查看Tika命令行的基本参数

img_4ebe1f21db75de6499f79676b6a19be6.png

img_869c1fd9f4961a0e658f00b3040f6163.png
img_d099d07bc52bfe4af20491ab0119406e.png
基本参数

用命令把doc解析为text


img_f4c7a978e37b9938870576c4063f1b10.png
doc
img_f105a2b234cb23555b4e2534601f448f.png
text

5. 在java工程中使用Tika

在Eclipse中新建Java项目,并导入tika-app-1.14.jar

img_5efb079f028ae8cbae2da67b48846a86.png

编写Test.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();
        }

    }
}

运行程序

img_68930fff65fe7682983e310d439a708d.png
在Eclipse中运行

生成ddd.doc,如下图


img_4336bc9910ab81363b7232e64d8ff362.png

img_b68562d9e8dd6705c09acef3d54fd096.png
生成的doc文件

参考链接:
Apache Tika from EN-Wikipedia
Tika常见格式文件抽取内容并做预处理
Apache Tika:通用的内容分析工具
cmd中java -jar *.jar 提示Unable to access jarfile *.jar或Windows不能用鼠标双击运行jar文件怎么办解决方案
TIKA环境配置
相关链接:
Apache Tika 官网
Apache Tika Wiki
Apache Tika in Github
Book Tika in Action
Natural Language Processing with Python
潜在语义索引

目录
相关文章
|
安全 搜索推荐 数据挖掘
文件解析的终极工具:Apache Tika
文件解析的终极工具:Apache Tika
1783 0
|
9月前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
669 33
The Past, Present and Future of Apache Flink
|
11月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
1466 13
Apache Flink 2.0-preview released
|
6月前
|
SQL 存储 人工智能
Apache Flink 2.0.0: 实时数据处理的新纪元
Apache Flink 2.0.0 正式发布!这是自 Flink 1.0 发布九年以来的首次重大更新,凝聚了社区两年的努力。此版本引入分离式状态管理、物化表、流批统一等创新功能,优化云原生环境下的资源利用与性能表现,并强化了对人工智能工作流的支持。同时,Flink 2.0 对 API 和配置进行了全面清理,移除了过时组件,为未来的发展奠定了坚实基础。感谢 165 位贡献者的辛勤付出,共同推动实时计算进入新纪元!
765 1
Apache Flink 2.0.0: 实时数据处理的新纪元
|
11月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
392 3

推荐镜像

更多