tika的使用

根据工作的需要,最近需要使用到tika,所以将工作中用的东西记录如下

Tika的主要功能

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

Tika的处理过程

  Tika包含解析和处理两个过程,其中解析由Parser接口来完成,处理则由ContentHandler接口来完成。其中parser负责解析具体的文档,当解析到需要进行处理的时候,调用contentHandler进行解析内容的处理,这两者相互配合,最终将处理得到的结果返回。Parser是一个接口,当需要对不同的文档进行解析时候,需要调用不同的实现。如何知道需要调用具体哪个Parser呢?Tika通过MimeType来实现对一个文档的具体识别工作,根据MimeType识别出文档的类型,然后选择调用具体的Parser来解析文档。

ContentHandler对不同的信息进行处理时,需要自己调用具体的信息处理类。一般来说,如果只关心文档内的内容(即有信息的地方),可以使用WriteOutContentHandler。这个handler将所以被解析到的信息通过一个output或write输出到调用者提供的输出流中,这样最终可以读取这个writer中的数据。

除了文档内容信息外,还有一些关于文档的元信息需要在处理的过程中被解析和保存,比如一个文档的最后编辑时间,最后的保存时间,标题,作者以及contentType等。在tika中,这些信息被保存在一个叫Metadata的对象中。metadata保存了很多与具体文档相关的值,它以一个map的形式,保存相应的元数据信息值。如对于word,它会保存其中的Author,Keywords这些信息。这些信息对于用一些关键信息进行文档检索非常有用。

Tika中涉及到的类和接口主要如下

1. Tika

2. Parser

3. Meta

4. LanguageIdentifier

下面介绍这些类的关系和主要使用方法

            in = new BufferedInputStream(new FileInputStream(new File(inFile)));//待解析文档的输入流
            out = new BufferedOutputStream(new FileOutputStream(
                    new File(outFile)));                                       //解析出的文档内容输出流,可以指定文件
            Metadata meta = new Metadata();
            ContentHandler handler = new BodyContentHandler(out);               //处理器
            Parser parser = new AutoDetectParser();                              //解析器,如果知道该用哪个解析器,可以指定,否则就用自动匹配的解析器
            parser.parse(in, handler, meta, new ParseContext());
            for (String name : meta.names()) {                                   //查看解析出的文档的元信息
                System.out.println(name + ":" + meta.get(name));
            }
时间: 2024-08-11 20:56:08

tika的使用的相关文章

使用Tika、Luke工具解析多种类型(word、pdf、txt 等)索引文件

Tika 是2008年才产生的apache的一个项目,主要用于打开各种不同类型的文档,获取其文本信息.可以解析多种类型(word.pdf.txt .html等)文件! 甚至可以通过解析url,获取其网页信息.最后把其文本信息提起出来.这方面Tika有点像Jsoup..一般情况下,直接对word.pdf等文件直接创建索引是不对的,用luke工具查看之后,出现一大推乱七八糟的term.这个时候就可以用Tika 去在对其创建索引之前,转化处理其文本信息. package hhc; import jav

代码片段,使用TIKA来解析PDF,WORD和EMAIL

/** * com.jiaoyiping.pdstest.TestTika.java * Copyright (c) 2009 Hewlett-Packard Development Company, L.P. * All rights reserved. */ package com.jiaoyiping.pdstest; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.i

tika获取压缩文件内容

package com.wangchao.tika.sax; import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler; public class MyHandler extends DefaultHandler {    @Override    public void characters(char[] ch, int start, int l

【NLP】Tika 文本预处理:抽取各种格式文件内容

Tika常见格式文件抽取内容并做预处理 作者 白宁超 2016年3月30日18:57:08 摘要:本文主要针对自然语言处理(NLP)过程中,重要基础部分抽取文本内容的预处理.首先我们要意识到预处理的重要性.在大数据的背景下,越来越多的非结构化半结构化文本.如何从海量文本中抽取我们需要的有价值的知识显得尤为重要.另外文本格式常常不一,诸如:pdf,word,excl,xml,ppt,txt等常见文件类型你或许经过一番周折还是有办法处理的.倘若遇到database,html,邮件,RTF,图像,语音

apache开源项目--TIKA

Tika是一个内容抽取的工具集合(a toolkit for text extracting).它集成了POI, Pdfbox 并且为文本抽取工作提供了一个统一的界面.其次,Tika也提供了便利的扩展API,用来丰富其对第三方文件格式的支持. 在当前的0.2-SNAPSHOT版本中, Tika提供了对如下文件格式的支持: PDF - 通过Pdfbox MS-* - 通过POI HTML - 使用nekohtml将不规范的html整理成为xhtml OpenOffice 格式 - Tika提供 A

tika提取pdf信息异常

org.apache.tika.sax.WriteOutContentHandler$WriteLimitReachedException: Your document contained more than 100000 characters, and so your requested limit has been reached. To receive the full text of the document, increase your limit. (Text up to the l

【Tika基础教程之一】Tika基础教程

一.快速入门 1.Tika是一个用于文本解释的框架,其本身并不提供任何的库用于解释文本,而是调用各种各样的库,如POI,PDFBox等. 2.使用GUI界面解释文本 (1)进入Tika所有的目录,运行以下命令: java -jar "tika-app-1.5 (1).jar" -g (2)Tika的图形界面被打开,然后找开File-openURL: (3)点击确认后,即返回解释结果 默认情况下显示的是文本的元信息 (4)可以通过view菜单中的选项,分别查看 metadata, for

Tika基本使用

Tika是一个内容抽取的工具集合(a toolkit for text extracting).它集成了POI, Pdfbox 并且为文本抽取工作提供了一个统一的界面.其次,Tika也提供了便利的扩展API,用来丰富其对第三方文件格式的支持. Tika提供了对如下文件格式的支持: PDF - 通过Pdfbox MS-* - 通过POI HTML - 使用nekohtml将不规范的html整理成为xhtml OpenOffice 格式 - Tika提供 Archive - zip, tar, gz

TIKA环境配置

本章将指导完成设置Apache Tika在Windows和Linux的配置过程.用户管理是必要的,同时安装了Apache Tika. 系统要求 JDK Java SE 2 JDK 1.6 或以上 内存 1 GB RAM (推荐) 硬盘空间 无最小要求 操作系统版本 Windows XP 或以上, Linux 第1步:验证安装Java 为了验证Java安装,打开控制台并执行下面的Java命令. OS 任务 命令 Windows 打开命令控制台 \>java –version Linux 打开命令终