📜  TIKA-建筑

📅  最后修改于: 2020-11-10 04:25:17             🧑  作者: Mango


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具有用于提取元数据的类。

提取1

语言检测

在内部,Tika遵循n-gram之类的算法来检测给定文档中内容的语言。 Tika依靠LanguageidentifierProfiler之类的语言进行识别。

检测1