Lucene学习之Tika提取文本信息

目前较新版的Tika(我用的是0.9)都是用Maven构建的。所以学习使用Tika最好的就是直接用Maven了,但是以我的经验,要想完整的了解Maven,并且能够编译好项目,把该依赖的包什么的全部导入,估计要花天把时间。可能有些人Maven都没听过(两个月前的我就是),那几更要花点精力了。

个人建议对Maven不熟悉的还是直接引用jar包。

首先搭建环境:

方式一:通过Maven,使用Eclipse会更方便

方式二:直接引用jar包,官网上有tika-app-0.9.jar 可以直接导入到classpath中或者导入到Eclipse工程中

然后给个例子就明白了

例子中的main函数是现实当前tika中可以解析那些格式的文件,也就是包含那些解析器parser。第二个函数给出了如何解析某种格式文件的过程。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.Set;
import org.apache.tika.config.TikaConfig;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.mime.MediaType;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.parser.pdf.PDFParser;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.ContentHandler;
public class ShowParser
{
    public static void main(String[] args)
    {
        TikaConfig config = TikaConfig.getDefaultConfig();  
        Set<MediaType>  set= config.getParsers().keySet();
        Iterator<MediaType> it = set.iterator();
        System.out.println( "Mime type parsers:" );
        while (it.hasNext()) {
          System.out.println( "  " + it.next());
        }
    }
    
    public static void testTiki() throws Exception
    {
        String PATH = "d:\\tempfile\\Maximum Entropy Markov Models for Information Extraction and Segmentation.pdf" ;
        String OUTPATH = PATH + ".txt" ;
        
//      Parser parser = new OOXMLParser();//解析微软格式文档
//      Parser parser = new HtmlParser();//解析html文档
        Parser parser = new PDFParser(); //解析PDF文档
        
        InputStream iStream = new BufferedInputStream( new FileInputStream( new File(PATH))); //定义输入流      
//      OutputStream oStream = new BufferedOutputStream(new FileOutputStream(new File(OUTPATH)));//定义输出流
        
        //下面定义内容处理器
        //ContentHandler iHandler = new BodyContentHandler(oStream);
        //ContentHandler iHandler = new BodyContentHandler(System.out);     
        ContentHandler iHandler = new BodyContentHandler();
?
1
2
3
4
5
6
7
8
        Metadata meta = new Metadata();
        meta.add(Metadata.CONTENT_ENCODING, "utf-8" );
        parser.parse(iStream, iHandler, meta, new ParseContext()); //解析
        
        //输出解析结果,如果采用输出流的方式就直接在输出流中获得解析结果
        System.out.println(iHandler.toString());
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值