tika in action第四章中文

本文档介绍了Tika在处理文档类型检测方面的应用,详细探讨了互联网媒体类型系统、媒体类型的分类,以及Tika如何利用媒体类型检测机制。Tika维护了一个内部的MIME类型数据库,提供API进行媒体类型检测。文件格式判断方法包括文件名、内容类型提示、魔数字节、字符编码和其他机制。Tika的类型检测器结合多种方法提供精确的文件类型估计。
摘要由CSDN通过智能技术生成

自我学习记录!

Charpter4文档类型检测

       我们来讨论下分类系统。分类学是科学的分类。分类被用作以识别和归类的概念来更好的理解和共享的词汇描述事物。例如,林奈分类法(the Linnaean taxonomy)是经典的系统命名所有的生物机体通过使用两部分的拉丁名,其同时识别属类以及种类。“Homo sapiens”表明现代的人类物种是前类人物种的一部分,随着消失的“Homo neanderthalensis”人一样。同样的分类法也在用来识别数字文件格式,叫做互联网媒体类型系统。

       分类法经常是与识别和检测特定的事物相联系的。例如,生物学分类是以物种的出现信息的描述,其表现特征或增长模式,DNA结构等方式来识别任意的动植物的物种。同样的机制也在检测数字文档格式中使用。

       在这一章节,我们将会深入文档格式的分类以及解析如何使用分类与其他的机制来确定文档的实际的类别。第一步是介绍互联网媒体类型系统和tika如何处理媒体类型。然后,查看tika中不同类型的检测机制。最后将会把这些放在一起,通过一个简单的示例程序来帮你感受使用tika的文档类型检测系统。

4.1互联网媒体类型

       正如你在1.1.1节记住的,在RFC2046中记录的互联网媒体类型系统是最好的标准作为识别文档类型。媒体类型(或者说是MIME类型,通常被叫做互联网多用途邮件扩充协议标准)在无论何时你浏览网页或读取邮件内部交流中起关键性的作用。总之,MIME类型在你的电脑与某个特殊文件交互的任何时候都给出正确的执行程序。例如,你曾经想过你的浏览器是如何知道什么时候它遇到的是一个短视频,应该加载相应的播放器播放而不是将其作为二进制或文本内容展示在你的浏览器中。

       大多数的浏览器(展示的Firefox的媒体类型对应的程序)明确的或暗示地必须理解文件内部的媒体类型并且知道如何去处理。不知道互联网上的媒体类型与其相关的程序,你的浏览器将会展示出绝大多数的是纯ASCII文本,这可一点儿也没趣。

       我们深入到互联网媒体类型的命名主题。在这之后将会介绍8个顶级的媒体类型,就在IANA媒体类型注册中。我们将会简短的描述IANA注册与别的一些东西,以及tika如何对媒体类型注册中的信息使用来准确且可靠地检测媒体类型。

4.1.1媒体类型名的使用

       媒体类型名由type/subtype组成定义和一个可选的参数“name=value”,下图可见其基于林奈分类法。Type/subtype部分和参数名被限制为US-ASCII字符集,也以不区分大小写处理。

       Type/subtype部分告诉你正在处理的文档格式,可选的参数增加需要的特定格式信息去处理文档。例如,媒体类型“text/plain;charset=UTF-8”表明使用UTF-8编码的纯文本文档。同样的是,“image/jpeg”类型表明一个以JPEG/JFIF图像格式存储的图片。

             

当处理大量文档和媒体类型时,肯定会不时地遇到异常情况。常见的错误是媒体类型名部分的顺序反转,如“charset=utf-8;text/html”。一个工具如tika帮助程序免去处理这类问题的复杂性。

 

       现在我们知道一个媒体类型长什么样了,很自然地去想什么类型被使用,如何管理已知的媒体类型集。

4.1.2媒体类型的种类

       当前有8种正式的顶级媒体类型,就如下图所示的,以及成千上万中注册或已知的子类型。与林奈动物分类法相似,这些顶级媒体类型作为分类和管理互联网媒体类型分类的基础。

除了正式的8个顶级类型,有作为示例使用的保留类别“example/*”。一些实验性的程序可能会使用未注册的顶级类型格式“x-*/*”,但是更常见的使用未注册的子类型,像“application/x-*”或“image/x-*”。

随着媒体类型的确定,它们需要以某种方式持久化,这样别人就可以查找它们的定义并了解它们的关系。媒体类型为此存储在一个“media type registry”。在你试图创建自己的类型之前是有一些不变已存在的媒体类型是值得理解其中一些,包括最大的最易理解的源,IANA注册。

4.1.3IANA与其他类型注册

       在它其余职责中,IANA保留维持一份正式的注册媒体类型列表。这个列表是公开地在“http://www.iana.org/assignments/media-types/”网页上,任何人想要注册新的类型都需要按照RF

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值