一、概述
本学期项目实训我所在的团队计划完成一个基于文本分析的基于文本分析的批量代码语法检测和实验报告查重系统。其中一个重要的步骤是对实验报告(格式为doc、docx、pdf等常见格式)中的正文和代码进行提取。在经过与指导教师的交流后,我们团队决定使用Apache Tika实现这一功能。
Apache Tika是基于Java的内容检测和分析的工具包,可检测并提取来自上千种不同文件类型(如PPT,XLS和PDF)中的元数据和结构化文本。 它提供了命令行界面、GUI界面和一个Java库。Tika可帮助搜索引擎抓取内容后的数据处理。
本文主要介绍使用Apache Tika提供的的图形用户界面tika-app对文档内容进行提取的过程和体验。博主初次接触博客,文章难免有疏漏之处,如有错误,欢迎批评指正,谢谢!
二、Tika GUI的安装与使用
Tika要求计算机配置有JDK,且版本应不低于Java SE 2 JDK 1.6。具体配置方法此处不再赘述。
下载Tika GUI:tika-app,可以选择清华镜像,地址为:https://mirrors.tuna.tsinghua.edu.cn/apache/tika/。选择箭头所指向的tika-app的jar包进行下载。这里我所下载的版本是tika-app-2.0.0-ALPHA.jar。
打开cmd,进入到刚才下载的jar包所在的目录。例如我将jar包下载到了F盘tika文件夹下,于是使用cmd进入到该目录内。在该目录下,执行命令:
java -jar tika-app-2.0.0-ALPHA.jar --gui
就会打开tika-app的界面,如图:
下面就可以打开文件让Tika进行检测了。依次点击菜单栏中的File-Open,选择想要识别的文件,或点击File-Open URL输入文件所在地址,或直接简单粗暴地将文件直接拖到界面上,三种方法都可以打开文件,Tika会自动提取文件的内容。
Tika提取完文件内容后会将提取结果展示在主界面上,可以在菜单栏View中选择想要查看的视图,其中包括:
- Metadata(元数据)
- Formatted text(格式化文本)
- Plain text(纯文本)
- Main content(主要内容)
- Structured text(结构化文本)
- Recursive JSON(JSON格式)
默认的视图是Metadata(元数据)。
以我打开的docx文件“tika测试.docx”为例,分别查看几种格式的内容。
Formatted text(格式化文本):
Plain text(纯文本):
Main content(主要内容):
Structured text(结构化文本):
Recursive JSON(JSON格式):
三、使用感受
可以看到,tika-app无论是对文档元数据的识别还是对正文内容的识别都准确无误,而且整个识别时间不到一秒,可以看到Tika的识别能力还是很强的,而且傻瓜式的操作省去了很多麻烦。但我们所要实现的程序总不能打开该GUI进行内容识别,因此项目的关键是如何在项目中调用Tika提供的库实现识别功能。
四、参考内容
https://blog.csdn.net/weixin_42184707/article/details/91045592
https://www.jianshu.com/p/bc333fdcd1d3