TIKA - 建筑
Tika应用层架构
应用程序程序员可以轻松地将 Tika 集成到他们的应用程序中。Tika 提供了命令行界面和 GUI,使其用户友好。
在本章中,我们将讨论构成 Tika 架构的四个重要模块。下图显示了 Tika 的架构及其四个模块 -
- 语言检测机制。
- MIME检测机制。
- 解析器接口。
- 蒂卡门面类。
语言检测机制
每当文本文档传递给 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 在内部使用了多种技术,如文件全局、内容类型提示、魔术字节、字符编码和其他几种技术。
解析器接口
org.apache.tika.parser 的解析器接口是 Tika 中解析文档的关键接口。该接口从文档中提取文本和元数据,并为愿意编写解析器插件的外部用户进行总结。
使用特定于各个文档类型的不同具体解析器类,Tika 支持许多文档格式。这些特定于格式的类通过直接实现解析器逻辑或使用外部解析器库来提供对不同文档格式的支持。
蒂卡门面类
使用 Tika 门面类是从 Java 调用 Tika 的最简单、直接的方式,它遵循门面设计模式。您可以在 Tika API 的 org.apache.tika 包中找到 Tika 门面类。
通过实施基本用例,Tika 充当景观经纪人。它抽象了 Tika 库的底层复杂性,如 MIME 检测机制、解析器接口和语言检测机制,并为用户提供了一个简单的使用界面。
蒂卡的特点
统一解析器接口- Tika 将所有第三方解析器库封装在单个解析器接口中。由于此功能,用户摆脱了选择合适的解析器库并根据遇到的文件类型使用它的负担。
低内存使用量- Tika 消耗较少的内存资源,因此它很容易嵌入 Java 应用程序。我们还可以在移动 PDA 等资源较少的平台上运行的应用程序中使用 Tika。
快速处理- 可以预期从应用程序中快速检测和提取内容。
灵活的元数据- Tika 了解用于描述文件的所有元数据模型。
解析器集成- Tika 可以在单个应用程序中使用可用于每种文档类型的各种解析器库。
MIME 类型检测- Tika 可以检测并提取 MIME 标准中包含的所有媒体类型的内容。
语言检测- Tika 包含语言识别功能,因此可以在多语言网站中基于语言类型的文档中使用。
蒂卡的功能
Tika 支持各种功能 -
- 文档类型检测
- 内容提取
- 元数据提取
- 语言检测
文档类型检测
Tika 使用各种检测技术并检测提供给它的文档的类型。
内容提取
Tika 有一个解析器库,可以解析各种文档格式的内容并提取它们。检测到文档的类型后,它从解析器存储库中选择适当的解析器并传递文档。不同类的 Tika 有解析不同文档格式的方法。
元数据提取
除了内容之外,Tika 还使用与内容提取相同的过程来提取文档的元数据。对于某些文档类型,Tika 有用于提取元数据的类。
语言检测
在内部,Tika 遵循n-gram等算法来检测给定文档中内容的语言。Tika 依赖于Languageidentifier和Profiler等类来进行语言识别。