分享

尝试Apache tika 各种类型的文档自动检测、抽取元数据和结构化文本内容

 看见就非常 2015-05-11
Apache Tika 是一个内容分析抽取的工具集。
        它使用存在解析库,从各种类型的文档自动检测、抽取元数据和结构化文本内容。
        特点:
                1、自动判断文件类型, 如doc(x),xls(x),ppt,pdf,jpg等
                2、提供统一的解析接口
                3、各种解析库插件化
        
1、安装
        下载源代码:http://tika./download.html,目前提供0.7 版源代码下载。
        以maven 项目组织的。
        使用maven构建 : mvn package
        
        构建成功后,生成相应jar包:
                tika-core-0.7.jar
                tika-parsers-0.7.jar
                tika-app-0.7.jar
                tika-bundle-0.7.jar
2、示例
        新建一个sbt工程,将以上4个包放入lib目录下
        
        scala源代码:
                import java.io._
                
                import org.apache.tika.metadata.Metadata
                import org.apache.tika.parser.ParseContext
                //import org.apache.tika.parser.Parser
                //import org.apache.tika.parser.html.HtmlParser
                import org.apache.tika.parser.microsoft.OfficeParser;
                //import org.apache.tika.parser.pdf.PDFParser
                import org.apache.tika.sax.BodyContentHandler
                import org.xml.sax.ContentHandler
                
                
                
                object TikaDemo {
                        val PATH = """E:\0704.docx""";
                        val OUTPATH = PATH+".txt";
                
                        def main(args: Array[String]) {
                                val in = new BufferedInputStream(new FileInputStream(new File(PATH)))
                                val parser = new OfficeParser()
                                val out = new BufferedOutputStream(new FileOutputStream(new File(OUTPATH)))
                                val iHandler = new BodyContentHandler(out)
                                try{
                                        parser.parse(in, iHandler, new Metadata(),new ParseContext())
                                }catch{
                                        case e => e.printStackTrace
                                }finally{
                                        in.close()
                                        out.close()
                                }
                        }
                }

       执行成功后, 同一目录下多了一个txt文件,文件内容就是word文档的文本内容

3、下一步
        需要了解ContentHandler相关的内容,如何抽取可定制的内容

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多