美文网首页
Apache Tika文件解析练习

Apache Tika文件解析练习

作者: Yangjialin | 来源:发表于2018-05-30 20:55 被阅读0次

    目录

    1.实验内容
    2.实验环境
    3.实验过程
    1)启用Apache Tika
    2)使用Tika解析docx文件
    3)使用Tika解析网页
    4)使用Tika解析XML和RDF文件
    5)使用Tika解析FOAF(RDF)文件
    4.总结

    实验内容:

    了解使用文件解析工具Tika进行文件解析,生成文件的代替文件——文件元数据。Tika能够解析多种文件格式,并能自动识别语言。

    实验环境:

    操作系统:Windows 8.1
    Java环境:


    Java环境.png

    实验工具:

    Apache Tika下载地址:http://tika.apache.org/download.html

    实验工具.png

    实验过程:

    (1)使用命令行打开Tika GUI界面
    Tika-GUI.png
    (2)创建doc文件,并使用Tika解析
    示例文件.png
    (3)解析结果解读

    1.Matadata:解析结果生成的元数据主要为管理性元数据,内容主要为文件的外部特征,如:创建日期、修改日期、应用名、文件格式、文件名等,以及文件的字数、行数、页数等量化指标。

    Application-Name: Microsoft Office Word
    Application-Version: 14.0000
    Author: lenovo
    Character Count: 123
    Character-Count-With-Spaces: 143
    Content-Length: 13282
    Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
    Creation-Date: 2018-05-28T13:47:00Z
    Last-Author: lenovo
    Last-Modified: 2018-05-28T13:51:00Z
    Last-Save-Date: 2018-05-28T13:51:00Z
    Line-Count: 1
    Page-Count: 1
    Paragraph-Count: 1
    Revision-Number: 2
    Template: Normal
    Total-Time: 4
    Word-Count: 21
    X-Parsed-By: org.apache.tika.parser.DefaultParser
    X-Parsed-By: org.apache.tika.parser.microsoft.ooxml.OOXMLParser
    X-TIKA:digest:MD5: cbe65201aee05621b8e210667d4b02d7
    X-TIKA:digest:SHA256: 48d75a6663e3ec7599bc385ba57919cc1224e3d063cfaa18b53f0e6970d0cbd1
    cp:revision: 2
    creator: lenovo
    date: 2018-05-28T13:51:00Z
    dc:creator: lenovo
    dc:publisher:
    dcterms:created: 2018-05-28T13:47:00Z
    dcterms:modified: 2018-05-28T13:51:00Z
    extended-properties:AppVersion: 14.0000
    extended-properties:Application: Microsoft Office Word
    extended-properties:Company:
    extended-properties:Template: Normal
    extended-properties:TotalTime: 4
    meta:author: lenovo
    meta:character-count: 123
    meta:character-count-with-spaces: 143
    meta:creation-date: 2018-05-28T13:47:00Z
    meta:last-author: lenovo
    meta:line-count: 1
    meta:page-count: 1
    meta:paragraph-count: 1
    meta:save-date: 2018-05-28T13:51:00Z
    meta:word-count: 21
    modified: 2018-05-28T13:51:00Z
    publisher:
    resourceName: 测试文件.docx
    xmpTPg:NPages: 1
    

    2.Structure text:主要生成html标签格式的结构化文件,以上元数据信息,添加在标签<matadata>中,源文件的文字信息置于标签<boby>下的标签<p>中。


    StructureText.png

    3.Recursive JSON:较标签格式而言,将文件解析成了json格式,保留了源文件的文字信息,在"X-TIKA:content"字段中。


    RecursiveJSON.png

    4.Main content:空。


    Maincontent.png
    (4)使用Tika解析网页:

    IBM Opensource 社区:https://www.ibm.com/developerworks/cn/opensource/tutorials/os-apache-tika/index.html
    解析结果:
    1.Matadata:Tika对网页的解析,生成的元数据大部分为描述性元数据,如:keywords、title、description等。

    网页解析结果.png

    2.Main content:
    通过查看网页源代码,发现Tika所提取到的Main content内容是网页注释:

    <!-- CENTER_6_4_CONTENT_COLUMN_BEGIN -->
    <!-- CENTER_6_4_CONTENT_COLUMN_END -->
    

    之间的内容。Tika对网页的Main content进行了有选择的提取。

    (5)使用Tika解析一般RDF文件与XML文件:

    发现Tika可以提取到标签之间的文本内容。Main content依旧为空。
    books.xml:

    <?xml version="1.0"?>
    <catalog>
       <book id="bk101">
          <author>Gambardella, Matthew</author>
          <title>XML Developer's Guide</title>
          <genre>Computer</genre>
          <price>44.95</price>
          <publish_date>2000-10-01</publish_date>
          <description>An in-depth look at creating applications
          with XML.</description>
       </book>
       <book id="bk102">
          <author>Ralls, Kim</author>
          <title>Midnight Rain</title>
          <genre>Fantasy</genre>
          <price>5.95</price>
          <publish_date>2000-12-16</publish_date>
          <description>A former architect battles corporate zombies,
          an evil sorceress, and her own childhood to become queen
          of the world.</description>
       </book>
    </catalog>
    

    person.rdf:

     <?xml version="1.0"?>
    <rdf:RDF
    xmlns:rdf="[http://www.w3.org/1999/02/22-rdf-syntax-ns#](http://www.w3.org/1999/02/22-rdf-syntax-ns#)"
    xmlns:cd="[http://www.recshop.fake/cd#](http://www.recshop.fake/cd#)">
    <rdf:Description
    rdf:about="[http://www.recshop.fake/cd/Empire](http://www.recshop.fake/cd/Empire) Burlesque">
      <cd:artist>Bob Dylan</cd:artist>
      <cd:country>USA</cd:country>
      <cd:company>Columbia</cd:company>
      <cd:price>10.90</cd:price>
      <cd:year>1985</cd:year>
    </rdf:Description>
    <rdf:Description
    rdf:about="[http://www.recshop.fake/cd/Hide](http://www.recshop.fake/cd/Hide) your heart">
      <cd:artist>Bonnie Tyler</cd:artist>
      <cd:country>UK</cd:country>
      <cd:company>CBS Records</cd:company>
      <cd:price>9.90</cd:price>
      <cd:year>1988</cd:year>
    </rdf:Description>
    </rdf:RDF>
    
    (6)使用Tika解析foaf文件,文件格式为.rdf:

    报错:

    Image [11].png

    分析原因可能是因为Tika无法正常识别foaf标签,因此无法提取到FOAF文件中的文本内容。

    总结:

    由以上解析结果可知,Tika可以比较方便的提取到文件中的文本。“ Tika 的解析器都必须能够实现从某个它能解析的文件类型提取文本的基本功能。文本内容很有用,因为它可以被发送至搜索引擎,在内容管理系统内被索引以及用来显示针对特定内容块的总结性信息。”——引自IBMOpen source社区

    Tika解析网页,能够以元数据形式呈现网页内容,在某种程度上解析效率相比一般文件而言更高。

    Tika的主要功能是Text extraction,在XML、RDF此类结构化文档的解析上,没有显著优势。解析结构化文档有其他专门的解析引擎。

    可以在Java项目中导入Tika,通过编程实现文件解析的批处理。由于本机eclipse版本号与Java JDK版本号不匹配,本次实验未能成功实现上述功能。

    相关文章

      网友评论

          本文标题:Apache Tika文件解析练习

          本文链接:https://www.haomeiwen.com/subject/xmvxsftx.html