TIKA - 建筑( Architecture)
Tika的应用程序级架构
应用程序员可以轻松地将Tika集成到他们的应用程序中 Tika提供命令行界面和GUI,使用户友好。
在本章中,我们将讨论构成Tika架构的四个重要模块。 下图显示了Tika的架构及其四个模块 -
- 语言检测机制。
- MIME detection mechanism.
- Parser interface.
- Tika Facade课程。
语言检测机制
每当文本文档传递给Tika时,它都会检测它的编写语言。 它接受没有语言注释的文档,并通过检测语言将该信息添加到文档的元数据中。
为了支持语言识别,Tika在org.apache.tika.language包中有一个名为Language Identifier的类,以及一个语言识别库,其中包含来自给定文本的语言检测算法。 Tika内部使用N-gram算法进行语言检测。
MIME检测机制
Tika可以根据MIME标准检测文档类型。 Tika中的默认MIME类型检测是使用org.apache.tika.mime.mimeTypes完成的。 它使用org.apache.tika.detect.Detector接口进行大多数内容类型检测。
Tika内部使用了几种技术,如文件globs,内容类型提示,魔术字节,字符编码和其他几种技术。
分析器接口
org.apache.tika.parser的解析器接口是解析Tika中文档的关键接口。 此接口从文档中提取文本和元数据,并为愿意编写解析器插件的外部用户汇总它。
使用不同的具体解析器类,特定于单个文档类型,Tika支持许多文档格式。 这些特定于格式的类通过直接实现解析器逻辑或使用外部解析器库提供对不同文档格式的支持。
蒂卡门面课程
使用Tika facade类是从Java调用Tika的最简单直接的方法,它遵循门面设计模式。 您可以在Tika API的org.apache.tika包中找到Tika facade类。
通过实施基本用例,Tika充当了景观经纪人。 它抽象了Tika库的底层复杂性,如MIME检测机制,解析器接口和语言检测机制,并为用户提供了一个简单的界面。
蒂卡的特点
Unified parser Interface - Tika在单个解析器接口中封装所有第三方解析器库。 由于这个特性,用户摆脱了选择合适的解析器库的负担,并根据遇到的文件类型使用它。
Low memory usage - Tika占用的内存资源较少,因此可以轻松嵌入Java应用程序。 我们还可以在应用程序中使用Tika,该应用程序在移动PDA等资源较少的平台上运行。
Fast processing - 可以预期从应用程序中快速检测和提取内容。
Flexible metadata - Tika了解用于描述文件的所有元数据模型。
Parser integration - Tika可以在单个应用程序中为每种文档类型使用各种解析器库。
MIME type detection - Tika可以检测和提取MIME标准中包含的所有媒体类型的内容。
Language detection - Tika包括语言识别功能,因此可以在多语言网站中基于语言类型的文档中使用。
Tika的功能
Tika支持各种功能 -
- 文件类型检测
- 内容提取
- 元数据提取
- 语言检测
文件类型检测
Tika使用各种检测技术并检测给予它的文档类型。
内容提取
Tika有一个解析器库,可以解析各种文档格式的内容并提取它们。 在检测到文档类型后,它从解析器存储库中选择适当的解析器并传递文档。 不同类别的Tika有解析不同文档格式的方法。
元数据提取
与内容一起,Tika使用与内容提取相同的过程提取文档的元数据。 对于某些文档类型,Tika有提取元数据的类。
语言检测
在内部,Tika遵循像n-gram这样的算法来检测给定文档中内容的语言。 Tika依赖于Languageidentifier和Profiler等类来进行语言识别。