Учебники

ТИКА — Краткое руководство

ТИКА — Обзор

Apache Tika — это библиотека, которая используется для обнаружения типов документов и извлечения контента из различных форматов файлов.

Внутренне, Tika использует существующие различные анализаторы документов и методы обнаружения типов документов для обнаружения и извлечения данных.

Используя Tika, можно разработать универсальный детектор типов и экстрактор контента для извлечения как структурированного текста, так и метаданных из различных типов документов, таких как электронные таблицы, текстовые документы, изображения, PDF-файлы и даже мультимедийные форматы ввода в определенной степени.

Тика предоставляет единый универсальный API для анализа файлов разных форматов. Он использует существующие специализированные библиотеки синтаксического анализатора для каждого типа документа.

Все эти библиотеки синтаксического анализатора инкапсулированы в единый интерфейс, называемый интерфейсом Parser .

Согласно filext.com, существует от 15 до 51 тысяч типов контента, и это число растет день ото дня. Данные хранятся в различных форматах, таких как текстовые документы, электронные таблицы Excel, PDF-файлы, изображения и мультимедийные файлы. Поэтому приложения, такие как поисковые системы и системы управления контентом, нуждаются в дополнительной поддержке для простого извлечения данных из этих типов документов. Apache Tika служит этой цели, предоставляя универсальный API для поиска и извлечения данных из нескольких форматов файлов.

Приложения Apache Tika

Существуют различные приложения, которые используют Apache Tika. Здесь мы обсудим несколько важных приложений, которые сильно зависят от Apache Tika.

Поисковые системы

Тика широко используется при разработке поисковых систем для индексирования текстового содержимого цифровых документов.

  • Поисковые системы — это системы обработки информации, предназначенные для поиска информации и индексированных документов из Интернета.

  • Crawler является важным компонентом поисковой системы, которая сканирует через Интернет для извлечения документов, которые должны быть проиндексированы с использованием некоторой техники индексации. После этого искатель передает эти проиндексированные документы в компонент извлечения.

  • Обязанность компонента извлечения заключается в извлечении текста и метаданных из документа. Такой извлеченный контент и метаданные очень полезны для поисковой системы. Этот компонент извлечения содержит Tika.

  • Извлеченный контент затем передается в индексатор поисковой системы, которая использует его для создания поискового индекса. Помимо этого, поисковая система использует извлеченный контент и во многих других отношениях.

Поисковые системы — это системы обработки информации, предназначенные для поиска информации и индексированных документов из Интернета.

Crawler является важным компонентом поисковой системы, которая сканирует через Интернет для извлечения документов, которые должны быть проиндексированы с использованием некоторой техники индексации. После этого искатель передает эти проиндексированные документы в компонент извлечения.

Обязанность компонента извлечения заключается в извлечении текста и метаданных из документа. Такой извлеченный контент и метаданные очень полезны для поисковой системы. Этот компонент извлечения содержит Tika.

Извлеченный контент затем передается в индексатор поисковой системы, которая использует его для создания поискового индекса. Помимо этого, поисковая система использует извлеченный контент и во многих других отношениях.

Поисковый движок

Анализ документов

  • В области искусственного интеллекта существуют определенные инструменты для автоматического анализа документов на семантическом уровне и извлечения из них всех видов данных.

  • В таких приложениях документы классифицируются на основе видных терминов в извлеченном содержании документа.

  • Эти инструменты используют Tika для извлечения контента для анализа документов от простого текста до цифровых документов.

В области искусственного интеллекта существуют определенные инструменты для автоматического анализа документов на семантическом уровне и извлечения из них всех видов данных.

В таких приложениях документы классифицируются на основе видных терминов в извлеченном содержании документа.

Эти инструменты используют Tika для извлечения контента для анализа документов от простого текста до цифровых документов.

Управление цифровыми активами

  • Некоторые организации управляют своими цифровыми активами, такими как фотографии, электронные книги, рисунки, музыка и видео, используя специальное приложение, известное как управление цифровыми активами (DAM).

  • Такие приложения используют детекторы типов документов и экстрактор метаданных для классификации различных документов.

Некоторые организации управляют своими цифровыми активами, такими как фотографии, электронные книги, рисунки, музыка и видео, используя специальное приложение, известное как управление цифровыми активами (DAM).

Такие приложения используют детекторы типов документов и экстрактор метаданных для классификации различных документов.

Анализ содержания

  • Такие сайты, как Amazon, рекомендуют только что опубликованное содержимое своего сайта отдельным пользователям в соответствии с их интересами. Для этого эти веб-сайты следуют методам машинного обучения или используют веб-сайты социальных сетей, такие как Facebook, для получения необходимой информации, такой как лайки и интересы пользователей. Эта собранная информация будет в форме HTML-тегов или других форматов, которые требуют дальнейшего обнаружения и извлечения типов контента.

  • Для анализа содержимого документа у нас есть технологии, которые реализуют методы машинного обучения, такие как UIMA и Mahout . Эти технологии полезны при кластеризации и анализе данных в документах.

  • Apache Mahout — это фреймворк, который предоставляет алгоритмы ML на Apache Hadoop — платформе облачных вычислений. Mahout предоставляет архитектуру, следуя определенным методам кластеризации и фильтрации. Следуя этой архитектуре, программисты могут писать свои собственные алгоритмы ML для выработки рекомендаций, используя различные комбинации текста и метаданных. Чтобы предоставить входные данные для этих алгоритмов, последние версии Mahout используют Tika для извлечения текста и метаданных из двоичного содержимого.

  • Apache UIMA анализирует и обрабатывает различные языки программирования и создает аннотации UIMA. Внутренне он использует Tika Annotator для извлечения текста и метаданных документа.

Такие сайты, как Amazon, рекомендуют только что опубликованное содержимое своего сайта отдельным пользователям в соответствии с их интересами. Для этого эти веб-сайты следуют методам машинного обучения или используют веб-сайты социальных сетей, такие как Facebook, для получения необходимой информации, такой как лайки и интересы пользователей. Эта собранная информация будет в форме HTML-тегов или других форматов, которые требуют дальнейшего обнаружения и извлечения типов контента.

Для анализа содержимого документа у нас есть технологии, которые реализуют методы машинного обучения, такие как UIMA и Mahout . Эти технологии полезны при кластеризации и анализе данных в документах.

Apache Mahout — это фреймворк, который предоставляет алгоритмы ML на Apache Hadoop — платформе облачных вычислений. Mahout предоставляет архитектуру, следуя определенным методам кластеризации и фильтрации. Следуя этой архитектуре, программисты могут писать свои собственные алгоритмы ML для выработки рекомендаций, используя различные комбинации текста и метаданных. Чтобы предоставить входные данные для этих алгоритмов, последние версии Mahout используют Tika для извлечения текста и метаданных из двоичного содержимого.

Apache UIMA анализирует и обрабатывает различные языки программирования и создает аннотации UIMA. Внутренне он использует Tika Annotator для извлечения текста и метаданных документа.

история

Год развитие
2006 Идея Тики была представлена ​​в комитете по управлению проектами Lucene.
2006 Была обсуждена концепция Tika и ее полезность в проекте Jackrabbit.
2007 Тика вошла в апачский инкубатор.
2008 Были выпущены версии 0.1 и 0.2, и Тика вышла из инкубатора в подпроект Lucene.
2009 Версии 0.3, 0.4 и 0.5 были выпущены.
2010 Были выпущены версии 0.6 и 0.7, и Тика перешла в проект Apache верхнего уровня.
2011 Тика 1.0 была выпущена, и книга о Тике «Тика в действии» также была выпущена в том же году.

ТИКА — Архитектура

Архитектура уровня приложения Тика

Прикладные программисты могут легко интегрировать Tika в свои приложения. Тика предоставляет интерфейс командной строки и графический интерфейс, чтобы сделать его удобным для пользователя.

В этой главе мы обсудим четыре важных модуля, составляющих архитектуру Tika. На следующем рисунке показана архитектура Tika с четырьмя модулями:

  • Механизм определения языка.
  • Механизм обнаружения MIME.
  • Интерфейс парсера.
  • Тика Фасадный класс.

Тика Архитектура

Механизм обнаружения языка

Всякий раз, когда текстовый документ передается в Tika, он определяет язык, на котором он был написан. Он принимает документы без языковой аннотации и добавляет эту информацию в метаданные документа, определяя язык.

Для поддержки идентификации языка в пакете org.apache.tika.language у Tika есть класс с именем Language Identifier , а внутри — хранилище идентификации языка, содержащее алгоритмы определения языка по заданному тексту. Тика внутренне использует алгоритм N-граммы для определения языка.

Механизм обнаружения MIME

Тика может определить тип документа в соответствии со стандартами MIME. Обнаружение типа MIME по умолчанию в Tika выполняется с использованием org.apache.tika.mime.mimeTypes . Он использует интерфейс org.apache.tika.detect.Detector для определения большинства типов контента.

Внутренне Tika использует несколько техник, таких как глобусы файлов, подсказки типа контента, магические байты, кодировки символов и несколько других техник.

Интерфейс парсера

Интерфейс парсера org.apache.tika.parser является ключевым интерфейсом для анализа документов в Tika. Этот интерфейс извлекает текст и метаданные из документа и суммирует их для внешних пользователей, которые готовы писать плагины анализатора.

Используя различные конкретные классы анализаторов, специфичные для отдельных типов документов, Tika поддерживает множество форматов документов. Эти классы, специфичные для формата, обеспечивают поддержку различных форматов документов, либо непосредственно реализуя логику синтаксического анализатора, либо используя внешние библиотеки синтаксического анализатора.

Тика Фасад Класс

Использование класса фасадов Tika — это самый простой и прямой способ вызова Tika из Java, который следует шаблону дизайна фасада. Вы можете найти класс фасадов Tika в пакете org.apache.tika API Tika.

Реализуя базовые сценарии использования, Tika выступает в роли посредника в ландшафте. Он абстрагирует основную сложность библиотеки Tika, такую ​​как механизм обнаружения MIME, интерфейс синтаксического анализатора и механизм обнаружения языка, и предоставляет пользователям простой в использовании интерфейс.

Особенности Тика

  • Унифицированный интерфейс синтаксического анализатора — Tika инкапсулирует все сторонние библиотеки синтаксического анализатора в единый интерфейс синтаксического анализатора. Благодаря этой функции пользователь избавляется от необходимости выбирать подходящую библиотеку синтаксического анализатора и использовать ее в соответствии с типом найденного файла.

  • Низкое использование памяти — Tika потребляет меньше ресурсов памяти, поэтому ее легко встраивать в приложения Java. Мы также можем использовать Tika в приложении, которое работает на платформах с меньшими ресурсами, таких как мобильный КПК.

  • Быстрая обработка — можно ожидать быстрого обнаружения контента и извлечения из приложений.

  • Гибкие метаданные — Tika понимает все модели метаданных, которые используются для описания файлов.

  • Интеграция парсера — Tika может использовать различные библиотеки парсеров, доступные для каждого типа документа в одном приложении.

  • Обнаружение типов MIME — Tika может обнаруживать и извлекать контент из всех типов носителей, включенных в стандарты MIME.

  • Определение языка — Tika включает функцию идентификации языка, поэтому может использоваться в документах, основанных на типе языка, на многоязычных веб-сайтах.

Унифицированный интерфейс синтаксического анализатора — Tika инкапсулирует все сторонние библиотеки синтаксического анализатора в единый интерфейс синтаксического анализатора. Благодаря этой функции пользователь избавляется от необходимости выбирать подходящую библиотеку синтаксического анализатора и использовать ее в соответствии с типом найденного файла.

Низкое использование памяти — Tika потребляет меньше ресурсов памяти, поэтому ее легко встраивать в приложения Java. Мы также можем использовать Tika в приложении, которое работает на платформах с меньшими ресурсами, таких как мобильный КПК.

Быстрая обработка — можно ожидать быстрого обнаружения контента и извлечения из приложений.

Гибкие метаданные — Tika понимает все модели метаданных, которые используются для описания файлов.

Интеграция парсера — Tika может использовать различные библиотеки парсеров, доступные для каждого типа документа в одном приложении.

Обнаружение типов MIME — Tika может обнаруживать и извлекать контент из всех типов носителей, включенных в стандарты MIME.

Определение языка — Tika включает функцию идентификации языка, поэтому может использоваться в документах, основанных на типе языка, на многоязычных веб-сайтах.

Функциональные возможности Тика

Тика поддерживает различные функции —

  • Определение типа документа
  • Извлечение контента
  • Извлечение метаданных
  • Определение языка

Определение типа документа

Тика использует различные методы обнаружения и определяет тип документа, переданного ей.

обнаружение

Извлечение контента

Тика имеет библиотеку синтаксического анализатора, которая может анализировать содержимое документов различных форматов и извлекать их. После определения типа документа он выбирает соответствующий анализатор из хранилища анализатора и передает документ. Различные классы Tika имеют методы для анализа различных форматов документов.

экстракция

Извлечение метаданных

Наряду с контентом, Tika извлекает метаданные документа с помощью той же процедуры, что и при извлечении контента. Для некоторых типов документов в Tika есть классы для извлечения метаданных.

Extraction1

Обнаружение языка

Внутренне Tika использует алгоритмы, такие как n-грамм, для определения языка содержимого в данном документе. Тика зависит от классов, таких как Languageidentifier и Profiler для идентификации языка.

Detection1

ТИКА — Окружающая среда

В этой главе рассказывается, как настроить Apache Tika для Windows и Linux. Администрация пользователя необходима при установке Apache Tika.

Системные Требования

JDK Java SE 2 JDK 1.6 или выше
объем памяти 1 ГБ ОЗУ (рекомендуется)
Дисковое пространство Нет минимальных требований
Версия операционной системы Windows XP или выше, Linux

Шаг 1. Проверка установки Java

Чтобы проверить установку Java, откройте консоль и выполните следующую команду Java .

Операционные системы задача команда
Windows Открыть командную консоль \> Java-версия
Linux Открыть командный терминал $ java – версия

Если Java правильно установлена ​​в вашей системе, вы должны получить один из следующих выводов, в зависимости от платформы, на которой вы работаете.

Операционные системы Выход
Windows

Java версия «1.7.0_60»

Среда выполнения Java (TM) SE (сборка 1.7.0_60-b19)

64-разрядная серверная виртуальная машина Java Hotspot (TM) (сборка 24.60-b09, смешанный режим)

Lunix

Java-версия «1.7.0_25»

Открытая среда выполнения JDK (rhel-2.3.10.4.el6_4-x86_64)

Откройте виртуальную машину 64-разрядного сервера JDK (сборка 23.7-b01, смешанный режим)

Java версия «1.7.0_60»

Среда выполнения Java (TM) SE (сборка 1.7.0_60-b19)

64-разрядная серверная виртуальная машина Java Hotspot (TM) (сборка 24.60-b09, смешанный режим)

Java-версия «1.7.0_25»

Открытая среда выполнения JDK (rhel-2.3.10.4.el6_4-x86_64)

Откройте виртуальную машину 64-разрядного сервера JDK (сборка 23.7-b01, смешанный режим)

Мы предполагаем, что читатели этого учебного пособия установили Java 1.7.0_60 в своей системе, прежде чем приступить к этому учебному пособию.

Если у вас нет Java SDK, загрузите его текущую версию с https://www.oracle.com/technetwork/java/javase/downloads/index.html и установите его .

Шаг 2: настройка среды Java

Установите переменную среды JAVA_HOME, чтобы она указывала на местоположение базовой директории, где установлена ​​Java на вашем компьютере. Например,

Операционные системы Выход
Windows Установите переменную среды JAVA_HOME в C: \ ProgramFiles \ java \ jdk1.7.0_60
Linux экспорт JAVA_HOME = / usr / local / java-current

Добавьте полный путь расположения компилятора Java к системному пути.

Операционные системы Выход
Windows Добавить строку; C: \ Program Files \ Java \ jdk1.7.0_60 \ bin до конца системной переменной PATH.
Linux экспорт PATH = $ PATH: $ JAVA_HOME / bin /

Проверьте команду java-version из командной строки, как описано выше.

Шаг 3: Настройка среды Apache Tika

Программисты могут интегрировать Apache Tika в свою среду, используя

  • Командная строка,
  • Тика API,
  • Интерфейс командной строки (CLI) Тика,
  • Графический интерфейс пользователя (GUI) Tika, или
  • исходный код.

Для любого из этих подходов, прежде всего, вам необходимо скачать исходный код Tika.

Вы найдете исходный код Tika по адресу https://Tika.apache.org/download.html, где вы найдете две ссылки:

  • apache-tika-1.6-src.zip — содержит исходный код Тики и

  • Tika -app-1.6.jar — это файл jar, содержащий приложение Tika.

apache-tika-1.6-src.zip — содержит исходный код Тики и

Tika -app-1.6.jar — это файл jar, содержащий приложение Tika.

Загрузите эти два файла. Снимок официального сайта Tika показан ниже.

Окружающая среда Тика

После загрузки файлов установите classpath для файла jar tika-app-1.6.jar . Добавьте полный путь к файлу JAR, как показано в таблице ниже.

Операционные системы Выход
Windows Добавьте строку «C: \ jars \ Tika-app-1.6.jar» к пользовательской переменной среды CLASSPATH.
Linux

Экспортировать CLASSPATH = $ CLASSPATH —

/usr/share/jars/Tika-app-1.6.tar —

Экспортировать CLASSPATH = $ CLASSPATH —

/usr/share/jars/Tika-app-1.6.tar —

Apache предоставляет приложение Tika, приложение с графическим интерфейсом пользователя (GUI), использующее Eclipse.

Tika-Maven Build с использованием Eclipse

  • Откройте затмение и создайте новый проект.

  • Если у вас нет Maven в Eclipse, настройте его, следуя приведенным ниже инструкциям.

Откройте затмение и создайте новый проект.

Если у вас нет Maven в Eclipse, настройте его, следуя приведенным ниже инструкциям.

Откройте ссылку https://wiki.eclipse.org/M2E_updatesite_and_gittags . Там вы найдете релизы плагинов m2e в табличном формате

m2e Release

  • Выберите последнюю версию и сохраните путь URL в столбце p2 url.

  • Теперь вернитесь к eclipse, в строке меню нажмите « Справка» и выберите « Установить новое программное обеспечение» в раскрывающемся меню.

Выберите последнюю версию и сохраните путь URL в столбце p2 url.

Теперь вернитесь к eclipse, в строке меню нажмите « Справка» и выберите « Установить новое программное обеспечение» в раскрывающемся меню.

Затмение

  • Нажмите кнопку Добавить , введите любое желаемое имя, так как оно необязательно. Теперь вставьте сохраненный URL в поле Location .

  • Будет добавлен новый плагин с именем, выбранным на предыдущем шаге, установите флажок перед ним и нажмите « Далее» .

Нажмите кнопку Добавить , введите любое желаемое имя, так как оно необязательно. Теперь вставьте сохраненный URL в поле Location .

Будет добавлен новый плагин с именем, выбранным на предыдущем шаге, установите флажок перед ним и нажмите « Далее» .

устанавливать

  • Продолжить установку. После завершения перезапустите Eclipse.

  • Теперь щелкните правой кнопкой мыши по проекту и в параметре конфигурации выберите « Преобразовать в проект Maven» .

  • Появится новый мастер для создания нового пом. Введите идентификатор группы как org.apache.tika, введите последнюю версию Tika, выберите упаковку в виде банки и нажмите « Готово» .

Продолжить установку. После завершения перезапустите Eclipse.

Теперь щелкните правой кнопкой мыши по проекту и в параметре конфигурации выберите « Преобразовать в проект Maven» .

Появится новый мастер для создания нового пом. Введите идентификатор группы как org.apache.tika, введите последнюю версию Tika, выберите упаковку в виде банки и нажмите « Готово» .

Проект Maven успешно установлен, а ваш проект преобразован в Maven. Теперь вам нужно настроить файл pom.xml.

Настройте файл XML

Получите зависимость Tika Maven от https://mvnrepository.com/artifact/org.apache.tika

Ниже показана полная зависимость Apache Tika от Maven.

<dependency>
   <groupId>org.apache.Tika</groupId>
   <artifactId>Tika-core</artifactId>
   <version>1.6</version>

   <groupId>org.apache.Tika</groupId>
   <artifactId> Tika-parsers</artifactId>
   <version> 1.6</version>

   <groupId> org.apache.Tika</groupId>
   <artifactId>Tika</artifactId>
   <version>1.6</version>

   <groupId>org.apache.Tika</groupId>
   < artifactId>Tika-serialization</artifactId>
   < version>1.6< /version>

   < groupId>org.apache.Tika< /groupId>
   < artifactId>Tika-app< /artifactId>
   < version>1.6< /version>

   <groupId>org.apache.Tika</groupId>
   <artifactId>Tika-bundle</artifactId>
   <version>1.6</version>
</dependency>

TIKA — ссылочный API

Пользователи могут встраивать Tika в свои приложения, используя класс фасадов Tika. У этого есть методы, чтобы исследовать все функциональные возможности Тики. Поскольку это класс фасадов, Tika раскрывает сложность своих функций. В дополнение к этому пользователи могут также использовать различные классы Tika в своих приложениях.

Пользовательское приложение

Тика Класс (фасад)

Это самый выдающийся класс библиотеки Тика, который следует шаблону оформления фасада. Поэтому он абстрагирует все внутренние реализации и предоставляет простые методы для доступа к функциям Tika. В следующей таблице перечислены конструкторы этого класса вместе с их описаниями.

пакет — org.apache.tika

класс — тика

Sr.No. Конструктор и описание
1

Тика ()

Использует конфигурацию по умолчанию и создает класс Tika.

2

Тика (детектор детектор)

Создает фасад Tika, принимая экземпляр детектора в качестве параметра

3

Тика (детектор детектор, парсер парсер)

Создает фасад Tika, принимая экземпляры детектора и анализатора в качестве параметров.

4

Тика (Детектор детектор, Парсер парсер, Переводчик переводчик)

Создает фасад Tika, принимая в качестве параметров детектор, анализатор и экземпляр транслятора.

5

Тика (конфиг TikaConfig)

Создает фасад Tika, принимая объект класса TikaConfig в качестве параметра.

Тика ()

Использует конфигурацию по умолчанию и создает класс Tika.

Тика (детектор детектор)

Создает фасад Tika, принимая экземпляр детектора в качестве параметра

Тика (детектор детектор, парсер парсер)

Создает фасад Tika, принимая экземпляры детектора и анализатора в качестве параметров.

Тика (Детектор детектор, Парсер парсер, Переводчик переводчик)

Создает фасад Tika, принимая в качестве параметров детектор, анализатор и экземпляр транслятора.

Тика (конфиг TikaConfig)

Создает фасад Tika, принимая объект класса TikaConfig в качестве параметра.

Методы и описание

Ниже приведены важные методы класса фасадов Тика —

Sr.No. Методы и описание
1

анализ ToString ( файл файла)

Этот метод и все его варианты анализируют файл, переданный в качестве параметра, и возвращают извлеченное текстовое содержимое в формате String. По умолчанию длина этого строкового параметра ограничена.

2

int getMaxStringLength ()

Возвращает максимальную длину строк, возвращаемых методами parseToString.

3

void setMaxStringLength (int maxStringLength)

Устанавливает максимальную длину строк, возвращаемых методами parseToString.

4

Считывание читателя ( файл файла)

Этот метод и все его варианты анализируют файл, переданный в качестве параметра, и возвращают извлеченное текстовое содержимое в виде объекта java.io.reader.

5

Обнаружение строки (поток InputStream , метаданные метаданных)

Этот метод и все его варианты принимают объект InputStream и объект Metadata в качестве параметров, определяют тип данного документа и возвращают имя типа документа как объект String. Этот метод абстрагирует механизмы обнаружения, используемые Tika.

6

Строковый перевод ( InputStream text, String targetLanguage)

Этот метод и все его варианты принимают объект InputStream и строку, представляющую язык, на который мы хотим, чтобы наш текст был переведен, и переводит данный текст на нужный язык, пытаясь автоматически определить исходный язык.

анализ ToString ( файл файла)

Этот метод и все его варианты анализируют файл, переданный в качестве параметра, и возвращают извлеченное текстовое содержимое в формате String. По умолчанию длина этого строкового параметра ограничена.

int getMaxStringLength ()

Возвращает максимальную длину строк, возвращаемых методами parseToString.

void setMaxStringLength (int maxStringLength)

Устанавливает максимальную длину строк, возвращаемых методами parseToString.

Считывание читателя ( файл файла)

Этот метод и все его варианты анализируют файл, переданный в качестве параметра, и возвращают извлеченное текстовое содержимое в виде объекта java.io.reader.

Обнаружение строки (поток InputStream , метаданные метаданных)

Этот метод и все его варианты принимают объект InputStream и объект Metadata в качестве параметров, определяют тип данного документа и возвращают имя типа документа как объект String. Этот метод абстрагирует механизмы обнаружения, используемые Tika.

Строковый перевод ( InputStream text, String targetLanguage)

Этот метод и все его варианты принимают объект InputStream и строку, представляющую язык, на который мы хотим, чтобы наш текст был переведен, и переводит данный текст на нужный язык, пытаясь автоматически определить исходный язык.

Интерфейс парсера

Это интерфейс, который реализован всеми классами анализатора пакета Tika.

пакет — org.apache.tika.parser

Интерфейс — Парсер

Методы и описание

Ниже приводится важный метод интерфейса Tika Parser.

Sr.No. Методы и описание
1

анализ (поток InputStream, обработчик ContentHandler, метаданные метаданных, контекст ParseContext)

Этот метод анализирует данный документ в последовательность событий XHTML и SAX. После анализа он помещает извлеченное содержимое документа в объект класса ContentHandler, а метаданные — в объект класса Metadata.

анализ (поток InputStream, обработчик ContentHandler, метаданные метаданных, контекст ParseContext)

Этот метод анализирует данный документ в последовательность событий XHTML и SAX. После анализа он помещает извлеченное содержимое документа в объект класса ContentHandler, а метаданные — в объект класса Metadata.

Класс метаданных

Этот класс реализует различные интерфейсы, такие как CreativeCommons, Geographic, HttpHeaders, Message, MSOffice, ClimateForcast, TIFF, TikaMetadataKeys, TikaMimeKeys, Serializable для поддержки различных моделей данных. В следующих таблицах перечислены конструкторы и методы этого класса вместе с их описаниями.

пакет — org.apache.tika.metadata

класс — Метаданные

Sr.No. Конструктор и описание
1

Метаданные ()

Создает новые пустые метаданные.

Метаданные ()

Создает новые пустые метаданные.

Sr.No. Методы и описание
1

add (свойство property, строковое значение)

Добавляет отображение свойства / значения метаданных в данный документ. Используя эту функцию, мы можем установить значение для свойства.

2

добавить (имя строки, значение строки)

Добавляет отображение свойства / значения метаданных в данный документ. Используя этот метод, мы можем установить новое значение имени для существующих метаданных документа.

3

Строка get (Собственность)

Возвращает значение (если есть) указанного свойства метаданных.

4

Строка получить (имя строки)

Возвращает значение (если есть) заданного имени метаданных.

5

Дата getDate (Свойство собственности)

Возвращает значение свойства метаданных Date.

6

String [] getValues ​​(Свойство собственности)

Возвращает все значения свойства метаданных.

7

String [] getValues ​​(имя строки)

Возвращает все значения заданного имени метаданных.

8

Строка [] names ()

Возвращает все имена элементов метаданных в объекте метаданных.

9

set (свойство собственности, дата дата)

Устанавливает значение даты для данного свойства метаданных

10

set (свойство property, значения String [])

Устанавливает несколько значений для свойства метаданных.

add (свойство property, строковое значение)

Добавляет отображение свойства / значения метаданных в данный документ. Используя эту функцию, мы можем установить значение для свойства.

добавить (имя строки, значение строки)

Добавляет отображение свойства / значения метаданных в данный документ. Используя этот метод, мы можем установить новое значение имени для существующих метаданных документа.

Строка get (Собственность)

Возвращает значение (если есть) указанного свойства метаданных.

Строка получить (имя строки)

Возвращает значение (если есть) заданного имени метаданных.

Дата getDate (Свойство собственности)

Возвращает значение свойства метаданных Date.

String [] getValues ​​(Свойство собственности)

Возвращает все значения свойства метаданных.

String [] getValues ​​(имя строки)

Возвращает все значения заданного имени метаданных.

Строка [] names ()

Возвращает все имена элементов метаданных в объекте метаданных.

set (свойство собственности, дата дата)

Устанавливает значение даты для данного свойства метаданных

set (свойство property, значения String [])

Устанавливает несколько значений для свойства метаданных.

Класс идентификатора языка

Этот класс определяет язык данного контента. В следующих таблицах перечислены конструкторы этого класса вместе с их описаниями.

пакет — org.apache.tika.language

класс — Идентификатор языка

Sr.No. Конструктор и описание
1

LanguageIdentifier (профиль LanguageProfile)

Создает идентификатор языка. Здесь вы должны передать объект LanguageProfile в качестве параметра.

2

LanguageIdentifier (Строковый контент)

Этот конструктор может создавать идентификатор языка, передавая строку из текстового содержимого.

LanguageIdentifier (профиль LanguageProfile)

Создает идентификатор языка. Здесь вы должны передать объект LanguageProfile в качестве параметра.

LanguageIdentifier (Строковый контент)

Этот конструктор может создавать идентификатор языка, передавая строку из текстового содержимого.

Sr.No. Методы и описание
1

Строка getLanguage ()

Возвращает язык, данный текущему объекту LanguageIdentifier.

Строка getLanguage ()

Возвращает язык, данный текущему объекту LanguageIdentifier.

TIKA — Форматы файлов

Форматы файлов, поддерживаемые Tika

В следующей таблице приведены форматы файлов, которые поддерживает Tika.

Формат файла Библиотека пакетов Класс в тике
XML org.apache.tika.parser.xml XMLParser
HTML org.apache.tika.parser.html и использует библиотеку Tagsoup HTMLparser
Составной документ MS-Office Ole2 до 2007 ooxml 2007 года и далее

org.apache.tika.parser.microsoft

org.apache.tika.parser.microsoft.ooxml и использует библиотеку Apache Poi

OfficeParser (OLE2)

OOXMLParser (ooxml)

OpenDocument Формат openoffice org.apache.tika.parser.odf OpenOfficeParser
формат переносимого документа (PDF) org.apache.tika.parser.pdf, и этот пакет использует библиотеку Apache PdfBox PDFParser
Электронный формат публикации (цифровые книги) org.apache.tika.parser.epub EpubParser
Формат Rich Text org.apache.tika.parser.rtf RTFParser
Форматы сжатия и упаковки org.apache.tika.parser.pkg, и этот пакет использует общую библиотеку сжатия PackageParser и CompressorParser и его подклассы
Текстовый формат org.apache.tika.parser.txt TXTParser
Форматы каналов и синдикации org.apache.tika.parser.feed FeedParser
Аудио форматы org.apache.tika.parser.audio и org.apache.tika.parser.mp3 AudioParser MidiParser Mp3- для mp3parser
Imageparsers org.apache.tika.parser.jpeg JpegParser-для изображений JPEG
Videoformats org.apache.tika.parser.mp4 и org.apache.tika.parser.video этот синтаксический анализатор внутренне использует простой алгоритм для анализа форматов флэш-видео Mp4parser FlvParser
файлы классов Java и файлы JAR org.apache.tika.parser.asm ClassParser CompressorParser
Mobxformat (сообщения электронной почты) org.apache.tika.parser.mbox MobXParser
Cad форматы org.apache.tika.parser.dwg DWGParser
FontFormats org.apache.tika.parser.font TrueTypeParser
исполняемые программы и библиотеки org.apache.tika.parser.executable ExecutableParser

org.apache.tika.parser.microsoft

org.apache.tika.parser.microsoft.ooxml и использует библиотеку Apache Poi

OfficeParser (OLE2)

OOXMLParser (ooxml)

TIKA — определение типа документа

Стандарты MIME

Стандарты многоцелевого интернет-почтового расширения (MIME) являются лучшими доступными стандартами для идентификации типов документов. Знание этих стандартов помогает браузеру во внутренних взаимодействиях.

Всякий раз, когда браузер обнаруживает мультимедийный файл, он выбирает совместимое программное обеспечение, доступное с ним, для отображения его содержимого. В случае, если у него нет подходящего приложения для запуска определенного медиа-файла, он рекомендует пользователю получить подходящее программное обеспечение для плагина.

Тип обнаружения в Тика

Тика поддерживает все типы документов в Интернете, представленные в MIME. Всякий раз, когда файл проходит через Tika, он обнаруживает файл и его тип документа. Для определения типов носителей Tika использует следующие механизмы.

Расширения файлов

Проверка расширений файлов — это самый простой и наиболее распространенный метод определения формата файла. Многие приложения и операционные системы обеспечивают поддержку этих расширений. Ниже показано расширение нескольких известных типов файлов.

Имя файла Удлинитель
образ .jpg
аудио .mp3
файл архива Java .jar
файл классов Java .учебный класс

Тип контента Подсказки

Когда вы извлекаете файл из базы данных или присоединяете его к другому документу, вы можете потерять имя или расширение файла. В таких случаях метаданные, поставляемые с файлом, используются для определения расширения файла.

Волшебный байт

Наблюдая за необработанными байтами файла, вы можете найти несколько уникальных шаблонов символов для каждого файла. Некоторые файлы имеют специальные байтовые префиксы, называемые магическими байтами , которые специально созданы и включены в файл с целью определения типа файла.

Например, вы можете найти CA FE BA BE (шестнадцатеричный формат) в java-файле и% PDF (формат ASCII) в pdf-файле. Тика использует эту информацию для определения типа носителя файла.

Кодировки символов

Файлы с простым текстом кодируются с использованием различных типов кодировки символов. Основная задача здесь — определить тип кодировки символов, используемый в файлах. Тика использует методы кодирования символов, такие как Bom-маркеры и байтовые частоты, чтобы идентифицировать систему кодирования, используемую в текстовом контенте.

Корневые символы XML

Чтобы обнаружить XML-документы, Tika анализирует XML-документы и извлекает информацию, такую ​​как корневые элементы, пространства имен и ссылочные схемы, из которой можно найти истинный медиа-тип файлов.

Обнаружение типов с использованием класса фасадов

Метод detect () класса фасадов используется для определения типа документа. Этот метод принимает файл в качестве ввода. Ниже показан пример программы для определения типа документа с классом фасадов Tika.

import java.io.File;

import org.apache.tika.Tika;

public class Typedetection {

   public static void main(String[] args) throws Exception {

      //assume example.mp3 is in your current directory
      File file = new File("example.mp3");//
      
      //Instantiating tika facade class 
      Tika tika = new Tika();
      
      //detecting the file type using detect method
      String filetype = tika.detect(file);
      System.out.println(filetype);
   }
}

Сохраните приведенный выше код как TypeDetection.java и запустите его из командной строки, используя следующие команды:

javac TypeDetection.java
java TypeDetection 

audio/mpeg

ТИКА — Извлечение контента

Тика использует различные библиотеки парсеров для извлечения контента из заданных парсеров. Он выбирает правильный парсер для извлечения данного типа документа.

Для анализа документов обычно используется метод parseToString () класса фасада Tika. Ниже показаны этапы процесса синтаксического анализа, которые абстрагируются методом Tika ParsertoString ().

Процесс синтаксического анализа

Абстрагирование процесса разбора —

  • Первоначально, когда мы передаем документ в Tika, он использует подходящий механизм обнаружения типов и обнаруживает тип документа.

  • Как только тип документа известен, он выбирает подходящий анализатор из своего хранилища анализатора. Репозиторий парсера содержит классы, которые используют внешние библиотеки.

  • Затем документ передается для выбора парсера, который будет анализировать содержимое, извлекать текст, а также выбрасывать исключения для нечитаемых форматов.

Первоначально, когда мы передаем документ в Tika, он использует подходящий механизм обнаружения типов и обнаруживает тип документа.

Как только тип документа известен, он выбирает подходящий анализатор из своего хранилища анализатора. Репозиторий парсера содержит классы, которые используют внешние библиотеки.

Затем документ передается для выбора парсера, который будет анализировать содержимое, извлекать текст, а также выбрасывать исключения для нечитаемых форматов.

Извлечение контента с использованием Tika

Ниже приведена программа для извлечения текста из файла с использованием класса фасадов Tika —

import java.io.File;
import java.io.IOException;

import org.apache.tika.Tika;
import org.apache.tika.exception.TikaException;

import org.xml.sax.SAXException;

public class TikaExtraction {
	
   public static void main(final String[] args) throws IOException, TikaException {

      //Assume sample.txt is in your current directory		        
      File file = new File("sample.txt");
      
      //Instantiating Tika facade class
      Tika tika = new Tika();
      String filecontent = tika.parseToString(file);
      System.out.println("Extracted Content: " + filecontent);
   }		 
}

Сохраните приведенный выше код как TikaExtraction.java и запустите его из командной строки —

javac TikaExtraction.java 
java TikaExtraction

Ниже приведено содержание sample.txt.

Hi students welcome to tutorialspoint

Это дает вам следующий вывод —

Extracted Content: Hi students welcome to tutorialspoint

Извлечение контента с использованием интерфейса Parser

Пакет анализатора Tika предоставляет несколько интерфейсов и классов, с помощью которых мы можем анализировать текстовый документ. Ниже приведена блок-схема пакета org.apache.tika.parser .

Интерфейс парсера

Существует несколько доступных классов синтаксического анализатора, например, pdf parser, Mp3Passer, OfficeParser и т. Д., Для индивидуального анализа соответствующих документов. Все эти классы реализуют интерфейс парсера.

CompositeParser

На данной диаграмме показаны классы синтаксического анализатора Tika общего назначения: CompositeParser и AutoDetectParser . Поскольку класс CompositeParser следует шаблону составного проекта, вы можете использовать группу экземпляров синтаксического анализатора в качестве одного анализатора. Класс CompositeParser также обеспечивает доступ ко всем классам, которые реализуют интерфейс синтаксического анализатора.

AutoDetectParser

Это подкласс CompositeParser, который обеспечивает автоматическое определение типа. Используя эту функцию, AutoDetectParser автоматически отправляет входящие документы в соответствующие классы синтаксического анализатора, используя составную методологию.

метод parse ()

Наряду с parseToString (), вы также можете использовать метод parse () интерфейса синтаксического анализатора. Прототип этого способа показан ниже.

parse( InputStream stream, ContentHandler handler, Metadata metadata, ParseContext context)

В следующей таблице перечислены четыре объекта, которые он принимает в качестве параметров.

Sr.No. Объект и описание
1

InputStream stream

Любой объект Inputstream, который содержит содержимое файла

2

Обработчик ContentHandler

Тика передает документ в виде содержимого XHTML этому обработчику, после чего документ обрабатывается с использованием SAX API. Это обеспечивает эффективную постобработку содержимого в документе.

3

Метаданные метаданные

Объект метаданных используется как источник и цель метаданных документа.

4

ParseContext context

Этот объект используется в тех случаях, когда клиентское приложение хочет настроить процесс синтаксического анализа.

InputStream stream

Любой объект Inputstream, который содержит содержимое файла

Обработчик ContentHandler

Тика передает документ в виде содержимого XHTML этому обработчику, после чего документ обрабатывается с использованием SAX API. Это обеспечивает эффективную постобработку содержимого в документе.

Метаданные метаданные

Объект метаданных используется как источник и цель метаданных документа.

ParseContext context

Этот объект используется в тех случаях, когда клиентское приложение хочет настроить процесс синтаксического анализа.

пример

Ниже приведен пример, который показывает, как используется метод parse ().

Шаг 1

Чтобы использовать метод parse () интерфейса анализатора, создайте экземпляр любого из классов, обеспечивающих реализацию для этого интерфейса.

Существуют отдельные классы анализатора, такие как PDFParser, OfficeParser, XMLParser и т. Д. Вы можете использовать любой из этих отдельных анализаторов документов. В качестве альтернативы вы можете использовать либо CompositeParser, либо AutoDetectParser, который использует все классы анализатора внутренне и извлекает содержимое документа с использованием подходящего анализатора.

Parser parser = new AutoDetectParser();
   (or)
Parser parser = new CompositeParser();  
   (or)        
object of any individual parsers given in Tika Library 

Шаг 2

Создайте объект класса обработчика. Ниже приведены три обработчика контента —

Sr.No. Класс и описание
1

BodyContentHandler

Этот класс выбирает часть тела вывода XHTML и записывает это содержимое в выходной модуль записи или выходной поток. Затем он перенаправляет содержимое XHTML в другой экземпляр обработчика содержимого.

2

LinkContentHandler

Этот класс обнаруживает и выбирает все теги H-Ref документа XHTML и перенаправляет их для использования такими инструментами, как веб-сканеры.

3

TeeContentHandler

Этот класс помогает использовать несколько инструментов одновременно.

BodyContentHandler

Этот класс выбирает часть тела вывода XHTML и записывает это содержимое в выходной модуль записи или выходной поток. Затем он перенаправляет содержимое XHTML в другой экземпляр обработчика содержимого.

LinkContentHandler

Этот класс обнаруживает и выбирает все теги H-Ref документа XHTML и перенаправляет их для использования такими инструментами, как веб-сканеры.

TeeContentHandler

Этот класс помогает использовать несколько инструментов одновременно.

Поскольку нашей целью является извлечение текстового содержимого из документа, создайте экземпляр BodyContentHandler, как показано ниже —

BodyContentHandler handler = new BodyContentHandler( );

Шаг 3

Создайте объект метаданных, как показано ниже —

Metadata metadata = new Metadata();

Шаг 4

Создайте любой из объектов входного потока и передайте в него файл, который следует извлечь.

FileInputStream

Создайте объект файла, передав путь к файлу в качестве параметра, и передайте этот объект конструктору класса FileInputStream.

Примечание . Путь к объекту файла не должен содержать пробелов.

Проблема с этими классами входного потока заключается в том, что они не поддерживают чтение с произвольным доступом, что необходимо для эффективной обработки некоторых форматов файлов. Чтобы решить эту проблему, Tika предоставляет TikaInputStream.

File  file = new File(filepath)
FileInputStream inputstream = new FileInputStream(file);
   (or)
InputStream stream = TikaInputStream.get(new File(filename));

Шаг 5

Создайте объект контекста разбора, как показано ниже —

ParseContext context =new ParseContext();

Шаг 6

Создайте экземпляр объекта анализатора, вызовите метод parse и передайте все необходимые объекты, как показано в прототипе ниже:

parser.parse(inputstream, handler, metadata, context);

Ниже приведена программа для извлечения контента с использованием интерфейса парсера —

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.sax.BodyContentHandler;

import org.xml.sax.SAXException;

public class ParserExtraction {
	
   public static void main(final String[] args) throws IOException,SAXException, TikaException {

      //Assume sample.txt is in your current directory
      File file = new File("sample.txt");
      
      //parse method parameters
      Parser parser = new AutoDetectParser();
      BodyContentHandler handler = new BodyContentHandler();
      Metadata metadata = new Metadata();
      FileInputStream inputstream = new FileInputStream(file);
      ParseContext context = new ParseContext();
      
      //parsing the file
      parser.parse(inputstream, handler, metadata, context);
      System.out.println("File content : " + Handler.toString());
   }
}

Сохраните приведенный выше код как ParserExtraction.java и запустите его из командной строки —

javac  ParserExtraction.java 
java  ParserExtraction

Ниже приведено содержание sample.txt

Hi students welcome to tutorialspoint

Если вы выполните вышеупомянутую программу, она выдаст следующий вывод:

File content : Hi students welcome to tutorialspoint

ТИКА — Извлечение метаданных

Помимо контента, Тика также извлекает метаданные из файла. Метаданные — это не что иное, как дополнительная информация, поставляемая с файлом. Если мы рассмотрим аудиофайл, имя исполнителя, название альбома, название попадают под метаданные.

Стандарты XMP

Платформа расширяемых метаданных (XMP) — это стандарт для обработки и хранения информации, относящейся к содержимому файла. Он был создан компанией Adobe Systems Inc. XMP предоставляет стандарты для определения, создания и обработки метаданных . Вы можете встроить этот стандарт в несколько форматов файлов, таких как PDF , JPEG , JPEG , GIF , jpg , HTML и т. Д.

Класс недвижимости

Тика использует класс Property, чтобы следовать определению свойства XMP. Он предоставляет перечисления PropertyType и ValueType для захвата имени и значения метаданных.

Класс метаданных

Этот класс реализует различные интерфейсы, такие как ClimateForcast, CativeCommons, Geographic , TIFF и т. Д., Чтобы обеспечить поддержку различных моделей метаданных. Кроме того, этот класс предоставляет различные методы для извлечения содержимого из файла.

Имена метаданных

Мы можем извлечь список всех имен метаданных файла из его объекта метаданных, используя метод names () . Возвращает все имена в виде строкового массива. Используя имя метаданных, мы можем получить значение с помощью метода get () . Он принимает имя метаданных и возвращает значение, связанное с ним.

String[] metadaNames = metadata.names();

String value = metadata.get(name);

Извлечение метаданных с использованием метода разбора

Всякий раз, когда мы анализируем файл с помощью parse (), мы передаем пустой объект метаданных в качестве одного из параметров. Этот метод извлекает метаданные данного файла (если этот файл содержит их) и помещает их в объект метаданных. Поэтому после анализа файла с помощью parse () мы можем извлечь метаданные из этого объекта.

Parser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();   //empty metadata object 
FileInputStream inputstream = new FileInputStream(file);
ParseContext context = new ParseContext();
parser.parse(inputstream, handler, metadata, context);

// now this metadata object contains the extracted metadata of the given file.
metadata.metadata.names();

Ниже приведена полная программа для извлечения метаданных из текстового файла.

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.sax.BodyContentHandler;

import org.xml.sax.SAXException;

public class GetMetadata {
	
   public static void main(final String[] args) throws IOException, TikaException {
	
      //Assume that boy.jpg is in your current directory
      File file = new File("boy.jpg");

      //Parser method parameters
      Parser parser = new AutoDetectParser();
      BodyContentHandler handler = new BodyContentHandler();
      Metadata metadata = new Metadata();
      FileInputStream inputstream = new FileInputStream(file);
      ParseContext context = new ParseContext();
      
      parser.parse(inputstream, handler, metadata, context);
      System.out.println(handler.toString());

      //getting the list of all meta data elements 
      String[] metadataNames = metadata.names();

      for(String name : metadataNames) {		        
         System.out.println(name + ": " + metadata.get(name));
      }
   }
}

Сохраните приведенный выше код как GetMetadata.java и запустите его из командной строки, используя следующие команды:

javac  GetMetadata .java
java  GetMetadata

Ниже приведен снимок boy.jpg

JPG

Если вы выполните вышеупомянутую программу, она выдаст следующий вывод:

X-Parsed-By: org.apache.tika.parser.DefaultParser
Resolution Units: inch
Compression Type: Baseline
Data Precision: 8 bits
Number of Components: 3
tiff:ImageLength: 3000
Component 2: Cb component: Quantization table 1, Sampling factors 1 horiz/1 vert
Component 1: Y component: Quantization table 0, Sampling factors 2 horiz/2 vert
Image Height: 3000 pixels
X Resolution: 300 dots
Original Transmission Reference:
   53616c7465645f5f2368da84ca932841b336ac1a49edb1a93fae938b8db2cb3ec9cc4dc28d7383f1
Image Width: 4000 pixels
IPTC-NAA record: 92 bytes binary data
Component 3: Cr component: Quantization table 1, Sampling factors 1 horiz/1 vert
tiff:BitsPerSample: 8
Application Record Version: 4
tiff:ImageWidth: 4000
Content-Type: image/jpeg
Y Resolution: 300 dots

Мы также можем получить желаемые значения метаданных.

Добавление новых значений метаданных

Мы можем добавить новые значения метаданных, используя метод add () класса метаданных. Ниже приведен синтаксис этого метода. Здесь мы добавляем имя автора.

metadata.add(“author”,”Tutorials point”); 

Класс Metadata имеет предопределенные свойства, включая свойства, унаследованные от таких классов, как ClimateForcast, CativeCommons, Geographic и т. Д., Для поддержки различных моделей данных. Ниже показано использование типа данных ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, унаследованного от интерфейса TIFF, реализованного Tika для соответствия стандартам метаданных XMP для форматов изображений TIFF.

metadata.add(Metadata.SOFTWARE,"ms paint");

Ниже приведена полная программа, которая демонстрирует, как добавить значения метаданных в данный файл. Здесь список элементов метаданных отображается в выходных данных, так что вы можете наблюдать за изменениями в списке после добавления новых значений.

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Arrays;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.sax.BodyContentHandler;

import org.xml.sax.SAXException;

public class AddMetadata {

   public static void main(final String[] args) throws IOException, SAXException, TikaException {

      //create a file object and assume sample.txt is in your current directory
      File file = new File("Example.txt");

      //Parser method parameters
      Parser parser = new AutoDetectParser();
      BodyContentHandler handler = new BodyContentHandler();
      Metadata metadata = new Metadata();
      FileInputStream inputstream = new FileInputStream(file);
      ParseContext context = new ParseContext();

      //parsing the document
      parser.parse(inputstream, handler, metadata, context);

      //list of meta data elements before adding new elements
      System.out.println( " metadata elements :"  +Arrays.toString(metadata.names()));

      //adding new meta data name value pair
      metadata.add("Author","Tutorials Point");
      System.out.println(" metadata name value pair is successfully added");
      
      //printing all the meta data elements after adding new elements
      System.out.println("Here is the list of all the metadata 
         elements after adding new elements");
      System.out.println( Arrays.toString(metadata.names()));
   }
}

Сохраните приведенный выше код как класс AddMetadata.java и запустите его из командной строки —

javac  AddMetadata .java 
java  AddMetadata

Ниже приведено содержание Example.txt

Hi students welcome to tutorialspoint

Если вы выполните вышеупомянутую программу, она выдаст следующий вывод:

metadata elements of the given file :
[Content-Encoding, Content-Type] 
enter the number of metadata name value pairs to be added 1
enter metadata1name: 
Author enter metadata1value: 
Tutorials point metadata name value pair is successfully added
Here is the list of all the metadata elements  after adding new elements
[Content-Encoding, Author, Content-Type]  

Установка значений для существующих элементов метаданных

Вы можете установить значения для существующих элементов метаданных, используя метод set (). Синтаксис установки свойства даты с помощью метода set () следующий:

metadata.set(Metadata.DATE, new Date());

Вы также можете установить несколько значений свойств, используя метод set (). Синтаксис установки нескольких значений для свойства Author с помощью метода set () следующий:

metadata.set(Metadata.AUTHOR, "ram ,raheem ,robin ");

Ниже приведена полная программа, демонстрирующая метод set ().

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import java.util.Date;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.sax.BodyContentHandler;

import org.xml.sax.SAXException;

public class SetMetadata {

   public static void main(final String[] args) throws IOException,SAXException, TikaException {
   
      //Create a file object and assume example.txt is in your current directory
      File file = new File("example.txt");
      
      //parameters of parse() method
      Parser parser = new AutoDetectParser();
      BodyContentHandler handler = new BodyContentHandler();
      Metadata metadata = new Metadata();
      FileInputStream inputstream = new FileInputStream(file);
      ParseContext context = new ParseContext();
      
      //Parsing the given file
      parser.parse(inputstream, handler, metadata, context);
     
      //list of meta data elements elements
      System.out.println( " metadata elements and values of the given file :");
      String[] metadataNamesb4 = metadata.names();
      
      for(String name : metadataNamesb4) {
    	  System.out.println(name + ": " + metadata.get(name));
      }
      
      //setting date meta data 
      metadata.set(Metadata.DATE, new Date());
      
      //setting multiple values to author property
      metadata.set(Metadata.AUTHOR, "ram ,raheem ,robin ");
      
      //printing all the meta data elements with new elements
      System.out.println("List of all the metadata elements  after adding new elements ");
      String[] metadataNamesafter = metadata.names();
      
      for(String name : metadataNamesafter) {
         System.out.println(name + ": " + metadata.get(name));
      }
   }
}		    		

Сохраните приведенный выше код как SetMetadata.java и запустите его из командной строки —

javac  SetMetadata.java 
java  SetMetadata

Ниже приведено содержание example.txt.

Hi students welcome to tutorialspoint

Если вы выполните вышеупомянутую программу, она даст вам следующий результат. На выходе вы можете наблюдать недавно добавленные элементы метаданных.

metadata elements and values of the given file :
Content-Encoding: ISO-8859-1
Content-Type: text/plain; charset = ISO-8859-1
Here is the list of all the metadata elements  after adding new elements 
date: 2014-09-24T07:01:32Z
Content-Encoding: ISO-8859-1
Author: ram, raheem, robin 
Content-Type: text/plain; charset = ISO-8859-1

TIKA — Определение языка

Необходимость определения языка

Для классификации документов на основе языка, на котором они написаны на многоязычном веб-сайте, необходим инструмент определения языка. Этот инструмент должен принимать документы без языковой аннотации (метаданные) и добавлять эту информацию в метаданные документа, обнаруживая язык.

Алгоритмы для профилирования корпуса

Что такое корпус?

Чтобы определить язык документа, создается языковой профиль и сравнивается с профилем известных языков. Набор текстов этих известных языков известен как корпус .

Корпус — это набор текстов письменного языка, который объясняет, как язык используется в реальных ситуациях.

Корпус разработан из книг, стенограмм и других источников данных, таких как Интернет. Точность корпуса зависит от алгоритма профилирования, который мы используем для формирования корпуса.

Что такое алгоритмы профилирования?

Распространенным способом обнаружения языков является использование словарей. Слова, используемые в данном фрагменте текста, будут сопоставляться с теми, которые есть в словарях.

Список общих слов, используемых в языке, будет наиболее простым и эффективным набором для определения конкретного языка, например статей a , an , the на английском языке.

Использование наборов слов в качестве корпуса

Используя наборы слов, простой алгоритм создается, чтобы найти расстояние между двумя корпусами, которое будет равно сумме разностей между частотами совпадающих слов.

Такие алгоритмы страдают от следующих проблем —

  • Поскольку частота совпадения слов очень мала, алгоритм не может эффективно работать с небольшими текстами, имеющими несколько предложений. Для точного соответствия нужно много текста.

  • Он не может определить границы слов для языков, имеющих составные предложения, и для языков, не имеющих разделителей слов, таких как пробелы или знаки препинания.

Поскольку частота совпадения слов очень мала, алгоритм не может эффективно работать с небольшими текстами, имеющими несколько предложений. Для точного соответствия нужно много текста.

Он не может определить границы слов для языков, имеющих составные предложения, и для языков, не имеющих разделителей слов, таких как пробелы или знаки препинания.

Из-за этих трудностей в использовании наборов слов в качестве корпуса рассматриваются отдельные символы или группы символов.

Использование наборов символов в качестве корпуса

Поскольку символы, которые обычно используются в языке, имеют конечное число, легко применить алгоритм, основанный на частотах слов, а не на символах. Этот алгоритм работает даже лучше в случае определенных наборов символов, используемых в одном или очень немногих языках.

Этот алгоритм имеет следующие недостатки:

  • Трудно различить два языка с одинаковыми частотами символов.

  • Не существует специального инструмента или алгоритма для конкретной идентификации языка с помощью (как корпус) набора символов, используемого несколькими языками.

Трудно различить два языка с одинаковыми частотами символов.

Не существует специального инструмента или алгоритма для конкретной идентификации языка с помощью (как корпус) набора символов, используемого несколькими языками.

Алгоритм N-граммы

Указанные выше недостатки привели к новому подходу использования последовательностей символов заданной длины для составления корпуса. Такая последовательность символов обычно называется N-граммами, где N представляет длину последовательности символов.

  • Алгоритм N-граммы является эффективным подходом для определения языка, особенно в случае европейских языков, таких как английский.

  • Этот алгоритм отлично работает с короткими текстами.

  • Хотя существуют усовершенствованные алгоритмы профилирования языков для обнаружения нескольких языков в многоязычном документе, имеющем более привлекательные функции, Tika использует алгоритм 3 грамма, который подходит в большинстве практических ситуаций.

Алгоритм N-граммы является эффективным подходом для определения языка, особенно в случае европейских языков, таких как английский.

Этот алгоритм отлично работает с короткими текстами.

Хотя существуют усовершенствованные алгоритмы профилирования языков для обнаружения нескольких языков в многоязычном документе, имеющем более привлекательные функции, Tika использует алгоритм 3 грамма, который подходит в большинстве практических ситуаций.

Обнаружение языка в Тике

Среди всех 184 стандартных языков, стандартизированных по ISO 639-1, Tika может распознавать 18 языков. Определение языка в Tika осуществляется с помощью метода getLanguage () класса LanguageIdentifier . Этот метод возвращает кодовое имя языка в формате String. Ниже приведен список из 18 пар кодов языков, обнаруженных Тикой.

да-датский де-немецкий е-эстонский эль-греческий
ан-английски эс-испанский фи-фински FR-французский
Hu-венгерский это-исландский он-итальянский п-нидерландский
нет-норвежский пл-Польский пт-Portuguese ру-русский
св-Swedish го-тайская

При создании экземпляра класса LanguageIdentifier вы должны передать формат String содержимого, которое нужно извлечь, или объект класса LanguageProfile .

LanguageIdentifier object = new LanguageIdentifier(“this is english”);

Ниже приведен пример программы для определения языка в Tika.

import java.io.IOException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.language.LanguageIdentifier;

import org.xml.sax.SAXException;

public class LanguageDetection {

   public static void main(String args[])throws IOException, SAXException, TikaException {

      LanguageIdentifier identifier = new LanguageIdentifier("this is english ");
      String language = identifier.getLanguage();
      System.out.println("Language of the given content is : " + language);
   }
}

Сохраните приведенный выше код как LanguageDetection.java и запустите его из командной строки, используя следующие команды:

javac  LanguageDetection.java 
java  LanguageDetection 

Если вы выполните вышеупомянутую программу, это даст следующую результат-

Language of the given content is : en

Определение языка документа

Чтобы определить язык данного документа, вы должны проанализировать его с помощью метода parse (). Метод parse () анализирует содержимое и сохраняет его в объекте-обработчике, который был передан ему в качестве одного из аргументов. Передайте формат String объекта-обработчика в конструктор класса LanguageIdentifier, как показано ниже —

parser.parse(inputstream, handler, metadata, context);
LanguageIdentifier object = new LanguageIdentifier(handler.toString());

Ниже приведена полная программа, которая демонстрирует, как определить язык данного документа —

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.sax.BodyContentHandler;
import org.apache.tika.language.*;

import org.xml.sax.SAXException;

public class DocumentLanguageDetection {

   public static void main(final String[] args) throws IOException, SAXException, TikaException {

      //Instantiating a file object
      File file = new File("Example.txt");

      //Parser method parameters
      Parser parser = new AutoDetectParser();
      BodyContentHandler handler = new BodyContentHandler();
      Metadata metadata = new Metadata();
      FileInputStream content = new FileInputStream(file);

      //Parsing the given document
      parser.parse(content, handler, metadata, new ParseContext());

      LanguageIdentifier object = new LanguageIdentifier(handler.toString());
      System.out.println("Language name :" + object.getLanguage());
   }
}

Сохраните приведенный выше код как SetMetadata.java и запустите его из командной строки —

javac  SetMetadata.java 
java  SetMetadata 

Ниже приведено содержание Example.txt.

Hi students welcome to tutorialspoint

Если вы выполните вышеупомянутую программу, она выдаст следующий вывод:

Language name :en

Наряду с банкой Tika, Tika предоставляет приложение графического интерфейса пользователя (GUI) и интерфейс командной строки (CLI). Вы также можете запустить приложение Tika из командной строки, как и другие приложения Java.

ТИКА — GUI

Графический интерфейс пользователя (GUI)

  • Тика предоставляет файл jar вместе с исходным кодом по следующей ссылке https://tika.apache.org/download.html.

  • Загрузите оба файла, установите classpath для файла jar.

  • Извлеките zip-папку с исходным кодом, откройте папку tika-app.

  • В извлеченной папке «tika-1.6 \ tika-app \ src \ main \ java \ org \ apache \ Tika \ gui» вы увидите два файла классов: ParsingTransferHandler.java и TikaGUI.java .

  • Скомпилируйте оба файла класса и выполните файл класса TikaGUI.java, он откроет следующее окно.

Тика предоставляет файл jar вместе с исходным кодом по следующей ссылке https://tika.apache.org/download.html.

Загрузите оба файла, установите classpath для файла jar.

Извлеките zip-папку с исходным кодом, откройте папку tika-app.

В извлеченной папке «tika-1.6 \ tika-app \ src \ main \ java \ org \ apache \ Tika \ gui» вы увидите два файла классов: ParsingTransferHandler.java и TikaGUI.java .

Скомпилируйте оба файла класса и выполните файл класса TikaGUI.java, он откроет следующее окно.

Открытое окно

Давайте теперь посмотрим, как использовать графический интерфейс Tika.

В графическом интерфейсе нажмите кнопку «Открыть», найдите и выберите файл, который нужно извлечь, или перетащите его в пробел окна.

Тика извлекает содержимое файлов и отображает его в пяти различных форматах, а именно. метаданные, форматированный текст, простой текст, основное содержание и структурированный текст. Вы можете выбрать любой формат, который вы хотите.

Таким же образом вы также найдете класс CLI в папке «tika-1.6 \ tikaapp \ src \ main \ java \ org \ apache \ tika \ cli».

На следующем рисунке показано, что может сделать Тика. Когда мы опускаем изображение в графический интерфейс, Тика извлекает и отображает его метаданные.

графический интерфейс пользователя

ТИКА — Извлечение PDF

Ниже приведена программа для извлечения контента и метаданных из PDF.

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.pdf.PDFParser;
import org.apache.tika.sax.BodyContentHandler;

import org.xml.sax.SAXException;

public class PdfParse {

   public static void main(final String[] args) throws IOException,TikaException {

      BodyContentHandler handler = new BodyContentHandler();
      Metadata metadata = new Metadata();
      FileInputStream inputstream = new FileInputStream(new File("Example.pdf"));
      ParseContext pcontext = new ParseContext();
      
      //parsing the document using PDF parser
      PDFParser pdfparser = new PDFParser(); 
      pdfparser.parse(inputstream, handler, metadata,pcontext);
      
      //getting the content of the document
      System.out.println("Contents of the PDF :" + handler.toString());
      
      //getting metadata of the document
      System.out.println("Metadata of the PDF:");
      String[] metadataNames = metadata.names();
      
      for(String name : metadataNames) {
         System.out.println(name+ " : " + metadata.get(name));
      }
   }
}

Сохраните приведенный выше код как PdfParse.java и скомпилируйте его из командной строки, используя следующие команды:

javac PdfParse.java
java PdfParse

Ниже приведен снимок примера .pdf

Пример PDF

PDF, который мы передаем, имеет следующие свойства —

Пример PDF1

После компиляции программы вы получите вывод, как показано ниже.

Выход

Contents of the PDF:

Apache Tika is a framework for content type detection and content extraction 
which was designed by Apache software foundation. It detects and extracts metadata 
and structured text content from different types of documents such as spreadsheets, 
text documents, images or PDFs including audio or video input formats to certain extent.

Metadata of the PDF:

dcterms:modified :     2014-09-28T12:31:16Z
meta:creation-date :     2014-09-28T12:31:16Z
meta:save-date :     2014-09-28T12:31:16Z
dc:creator :     Krishna Kasyap
pdf:PDFVersion :     1.5
Last-Modified :     2014-09-28T12:31:16Z
Author :     Krishna Kasyap
dcterms:created :     2014-09-28T12:31:16Z
date :     2014-09-28T12:31:16Z
modified :     2014-09-28T12:31:16Z
creator :     Krishna Kasyap
xmpTPg:NPages :     1
Creation-Date :     2014-09-28T12:31:16Z
pdf:encrypted :     false
meta:author :     Krishna Kasyap
created :     Sun Sep 28 05:31:16 PDT 2014
dc:format :     application/pdf; version = 1.5
producer :     Microsoft® Word 2013
Content-Type :     application/pdf
xmp:CreatorTool :     Microsoft® Word 2013
Last-Save-Date :     2014-09-28T12:31:16Z

ТИКА — Извлечение ODF

Ниже приведена программа для извлечения контента и метаданных из Open Office Document Format (ODF).

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.odf.OpenDocumentParser;
import org.apache.tika.sax.BodyContentHandler;

import org.xml.sax.SAXException;

public class OpenDocumentParse {

   public static void main(final String[] args) throws IOException,SAXException, TikaException {

      //detecting the file type
      BodyContentHandler handler = new BodyContentHandler();
      Metadata metadata = new Metadata();
      FileInputStream inputstream = new FileInputStream(new File("example_open_document_presentation.odp"));
      ParseContext pcontext = new ParseContext();
      
      //Open Document Parser
      OpenDocumentParser openofficeparser = new OpenDocumentParser (); 
      openofficeparser.parse(inputstream, handler, metadata,pcontext); 
      System.out.println("Contents of the document:" + handler.toString());
      System.out.println("Metadata of the document:");
      String[] metadataNames = metadata.names();
      
      for(String name : metadataNames) {		        
         System.out.println(name + " :  " + metadata.get(name)); 
      }
   }
}

Сохраните приведенный выше код как OpenDocumentParse.java и скомпилируйте его в командной строке с помощью следующих команд:

javac OpenDocumentParse.java
java OpenDocumentParse

Ниже приведен снимок файла example_open_document_presentation.odp.

презентация

Этот документ имеет следующие свойства —

Example2

После компиляции программы вы получите следующий вывод.

Выход

Contents of the document:

Apache Tika
Apache Tika is a framework for content type detection and content extraction which was designed 
by Apache software foundation. It detects and extracts metadata and structured text content from 
different types of documents such as spreadsheets, text documents, images or PDFs including audio 
or video input formats to certain extent. 

Metadata of the document:

editing-cycles:   4
meta:creation-date:   2009-04-16T11:32:32.86
dcterms:modified:   2014-09-28T07:46:13.03
meta:save-date:   2014-09-28T07:46:13.03
Last-Modified:   2014-09-28T07:46:13.03
dcterms:created:   2009-04-16T11:32:32.86
date:   2014-09-28T07:46:13.03
modified:   2014-09-28T07:46:13.03
nbObject:   36
Edit-Time:   PT32M6S
Creation-Date:   2009-04-16T11:32:32.86
Object-Count:   36
meta:object-count:   36
generator:   OpenOffice/4.1.0$Win32 OpenOffice.org_project/410m18$Build-9764
Content-Type:   application/vnd.oasis.opendocument.presentation
Last-Save-Date:   2014-09-28T07:46:13.03

TIKA — Извлечение файлов MS-Office

Ниже приведена программа для извлечения содержимого и метаданных из документа Microsoft Office.

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.microsoft.ooxml.OOXMLParser;
import org.apache.tika.sax.BodyContentHandler;

import org.xml.sax.SAXException;

public class MSExcelParse {

   public static void main(final String[] args) throws IOException, TikaException {
      
      //detecting the file type
      BodyContentHandler handler = new BodyContentHandler();
      Metadata metadata = new Metadata();
      FileInputStream inputstream = new FileInputStream(new File("example_msExcel.xlsx"));
      ParseContext pcontext = new ParseContext();
      
      //OOXml parser
      OOXMLParser  msofficeparser = new OOXMLParser (); 
      msofficeparser.parse(inputstream, handler, metadata,pcontext);
      System.out.println("Contents of the document:" + handler.toString());
      System.out.println("Metadata of the document:");
      String[] metadataNames = metadata.names();
      
      for(String name : metadataNames) {
         System.out.println(name + ": " + metadata.get(name));
      }
   }
}

Сохраните приведенный выше код как MSExelParse.java и скомпилируйте его из командной строки, используя следующие команды:

javac MSExcelParse.java
java MSExcelParse 

Здесь мы передаем следующий образец файла Excel.

Проходя Excel

Данный файл Excel имеет следующие свойства —

Свойства Excel

После выполнения вышеуказанной программы вы получите следующий вывод.

Выход

Contents of the document:

Sheet1
Name	Age	Designation		Salary
Ramu	50	Manager			50,000
Raheem	40	Assistant manager	40,000
Robert	30	Superviser		30,000
sita	25	Clerk			25,000
sameer	25	Section in-charge	20,000

Metadata of the document:

meta:creation-date:    2006-09-16T00:00:00Z
dcterms:modified:    2014-09-28T15:18:41Z
meta:save-date:    2014-09-28T15:18:41Z
Application-Name:    Microsoft Excel
extended-properties:Company:    
dcterms:created:    2006-09-16T00:00:00Z
Last-Modified:    2014-09-28T15:18:41Z
Application-Version:    15.0300
date:    2014-09-28T15:18:41Z
publisher:    
modified:    2014-09-28T15:18:41Z
Creation-Date:    2006-09-16T00:00:00Z
extended-properties:AppVersion:    15.0300
protected:    false
dc:publisher:    
extended-properties:Application:    Microsoft Excel
Content-Type:    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Last-Save-Date:    2014-09-28T15:18:41Z

ТИКА — Извлечение текстового документа

Ниже приведена программа для извлечения контента и метаданных из текстового документа —

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.sax.BodyContentHandler;
import org.apache.tika.parser.txt.TXTParser;

import org.xml.sax.SAXException;

public class TextParser {

   public static void main(final String[] args) throws IOException,SAXException, TikaException {

      //detecting the file type
      BodyContentHandler handler = new BodyContentHandler();
      Metadata metadata = new Metadata();
      FileInputStream inputstream = new FileInputStream(new File("example.txt"));
      ParseContext pcontext=new ParseContext();
      
      //Text document parser
      TXTParser  TexTParser = new TXTParser();
      TexTParser.parse(inputstream, handler, metadata,pcontext);
      System.out.println("Contents of the document:" + handler.toString());
      System.out.println("Metadata of the document:");
      String[] metadataNames = metadata.names();
      
      for(String name : metadataNames) {
         System.out.println(name + " : " + metadata.get(name));
      }
   }
}

Сохраните приведенный выше код как TextParser.java и скомпилируйте его из командной строки, используя следующие команды:

javac TextParser.java
java TextParser

Ниже приведен снимок файла sample.txt —

Простой документ

Текстовый документ имеет следующие свойства —

Свойства документа

Если вы выполните вышеупомянутую программу, она даст вам следующий результат.

Выход

Contents of the document:

At tutorialspoint.com, we strive hard to provide quality tutorials for self-learning 
purpose in the domains of Academics, Information Technology, Management and Computer 
Programming Languages.
The endeavour started by Mohtashim, an AMU alumni, who is the founder and the managing 
director of Tutorials Point (I) Pvt. Ltd. He came up with the website tutorialspoint.com 
in year 2006 with the help of handpicked freelancers, with an array of tutorials for 
computer programming languages.

Metadata of the document:

Content-Encoding:   windows-1252
Content-Type:   text/plain; charset = windows-1252

TIKA — Извлечение HTML-документа

Ниже приведена программа для извлечения контента и метаданных из HTML-документа.

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.html.HtmlParser;
import org.apache.tika.sax.BodyContentHandler;

import org.xml.sax.SAXException;

public class HtmlParse {

   public static void main(final String[] args) throws IOException,SAXException, TikaException {

      //detecting the file type
      BodyContentHandler handler = new BodyContentHandler();
      Metadata metadata = new Metadata();
      FileInputStream inputstream = new FileInputStream(new File("example.html"));
      ParseContext pcontext = new ParseContext();
      
      //Html parser 
      HtmlParser htmlparser = new HtmlParser();
      htmlparser.parse(inputstream, handler, metadata,pcontext);
      System.out.println("Contents of the document:" + handler.toString());
      System.out.println("Metadata of the document:");
      String[] metadataNames = metadata.names();
      
      for(String name : metadataNames) {
         System.out.println(name + ":   " + metadata.get(name));  
      }
   }
}

Сохраните приведенный выше код как HtmlParse.java и скомпилируйте его из командной строки, используя следующие команды:

javac HtmlParse.java
java HtmlParse 

Ниже приведен снимок файла example.txt.

пример

HTML-документ имеет следующие свойства:

Свойства документа1

Если вы выполните вышеупомянутую программу, она даст вам следующий результат.

Выход

Contents of the document:

	Name	                     Salary	    age
	Ramesh Raman	             50000	    20
	Shabbir Hussein	             70000          25
	Umesh Raman	             50000	    30
	Somesh	                     50000	    35

Metadata of the document:

title:   HTML Table Header
Content-Encoding:   windows-1252
Content-Type:   text/html; charset = windows-1252
dc:title:   HTML Table Header

TIKA — Извлечение XML-документа

Ниже приведена программа для извлечения контента и метаданных из XML-документа —

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.xml.XMLParser;
import org.apache.tika.sax.BodyContentHandler;

import org.xml.sax.SAXException;

public class XmlParse {

   public static void main(final String[] args) throws IOException,SAXException, TikaException {

      //detecting the file type
      BodyContentHandler handler = new BodyContentHandler();
      Metadata metadata = new Metadata();
      FileInputStream inputstream = new FileInputStream(new File("pom.xml"));
      ParseContext pcontext = new ParseContext();
      
      //Xml parser
      XMLParser xmlparser = new XMLParser(); 
      xmlparser.parse(inputstream, handler, metadata, pcontext);
      System.out.println("Contents of the document:" + handler.toString());
      System.out.println("Metadata of the document:");
      String[] metadataNames = metadata.names();
      
      for(String name : metadataNames) {
         System.out.println(name + ": " + metadata.get(name));
      }
   }
}

Сохраните приведенный выше код как XmlParse.java и скомпилируйте его из командной строки, используя следующие команды:

javac XmlParse.java
java XmlParse 

Ниже приведен снимок файла example.xml

XML-документ

Этот документ имеет следующие свойства —

XML Document1

Если вы выполните вышеупомянутую программу, она даст вам следующий вывод —

Выход

Contents of the document:
  
4.0.0
org.apache.tika
tika
1.6
org.apache.tika
tika-core
1.6
org.apache.tika
tika-parsers
1.6
src
maven-compiler-plugin
3.1
1.7
1.7

Metadata of the document:

Content-Type:   application/xml 

TIKA — Извлечение .class файла

Ниже приведена программа для извлечения контента и метаданных из файла .class.

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.asm.ClassParser;
import org.apache.tika.sax.BodyContentHandler;

import org.xml.sax.SAXException;

public class JavaClassParse {

   public static void main(final String[] args) throws IOException,SAXException, TikaException {

      //detecting the file type
      BodyContentHandler handler = new BodyContentHandler();
      Metadata metadata = new Metadata();
      FileInputStream inputstream = new FileInputStream(new File("Example.class"));
      ParseContext pcontext = new ParseContext();

      //Html parser
      ClassParser  ClassParser = new  ClassParser();
      ClassParser.parse(inputstream, handler, metadata,pcontext);
      System.out.println("Contents of the document:" + handler.toString());
      System.out.println("Metadata of the document:");
      String[] metadataNames = metadata.names();
      
      for(String name : metadataNames) {		        
         System.out.println(name + " :  " + metadata.get(name));  
      }
   }
}

Сохраните приведенный выше код как JavaClassParse.java и скомпилируйте его из командной строки, используя следующие команды:

javac JavaClassParse.java
java JavaClassParse 

Ниже приведен снимок файла Example.java, который сгенерирует Example.class после компиляции.

JAVA Excel

Файл Example.class имеет следующие свойства —

Пример класса

После выполнения вышеуказанной программы вы получите следующий вывод.

Выход

Contents of the document:

package tutorialspoint.tika.examples;
public synchronized class Example {
   public void Example();
   public static void main(String[]);
}

Metadata of the document:

title: Example
resourceName: Example.class
dc:title: Example

TIKA — Извлечение файла JAR

Ниже приведена программа для извлечения содержимого и метаданных из файла Java-архива (jar) —

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.sax.BodyContentHandler;
import org.apache.tika.parser.pkg.PackageParser;

import org.xml.sax.SAXException;

public class PackageParse {

   public static void main(final String[] args) throws IOException,SAXException, TikaException {

      //detecting the file type
      BodyContentHandler handler = new BodyContentHandler();
      Metadata metadata = new Metadata();
      FileInputStream inputstream = new FileInputStream(new File("Example.jar"));
      ParseContext pcontext = new ParseContext();
      
      //Package parser
      PackageParser packageparser = new PackageParser();
      packageparser.parse(inputstream, handler, metadata,pcontext);
      System.out.println("Contents of the document: " + handler.toString());
      System.out.println("Metadata of the document:");
      String[] metadataNames = metadata.names();
      
      for(String name : metadataNames) {
         System.out.println(name + ":   " + metadata.get(name));
      }
   }
}

Сохраните приведенный выше код как PackageParse.java и скомпилируйте его из командной строки, используя следующие команды:

javac PackageParse.java
java PackageParse 

Ниже приведен снимок файла Example.java, который находится внутри пакета.

Пример JAVA

JAR-файл имеет следующие свойства —

Пример JAR

После выполнения вышеуказанной программы она выдаст следующий вывод:

Выход

Contents of the document:

META-INF/MANIFEST.MF
tutorialspoint/tika/examples/Example.class

Metadata of the document:

Content-Type:   application/zip

TIKA — Извлечение файла изображения

Ниже приведена программа для извлечения контента и метаданных из изображения JPEG.

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.jpeg.JpegParser;
import org.apache.tika.sax.BodyContentHandler;

import org.xml.sax.SAXException;

public class JpegParse {

   public static void main(final String[] args) throws IOException,SAXException, TikaException {

      //detecting the file type
      BodyContentHandler handler = new BodyContentHandler();
      Metadata metadata = new Metadata();
      FileInputStream inputstream = new FileInputStream(new File("boy.jpg"));
      ParseContext pcontext = new ParseContext();
      
      //Jpeg Parse
      JpegParser  JpegParser = new JpegParser();
      JpegParser.parse(inputstream, handler, metadata,pcontext);
      System.out.println("Contents of the document:" + handler.toString());
      System.out.println("Metadata of the document:");
      String[] metadataNames = metadata.names();
      
      for(String name : metadataNames) { 		        
         System.out.println(name + ": " + metadata.get(name));
      }
   }
}

Сохраните приведенный выше код как JpegParse.java и скомпилируйте его из командной строки, используя следующие команды:

javac JpegParse.java
java JpegParse 

Ниже приведен снимок файла Example.jpeg —

малыш

Файл JPEG имеет следующие свойства —

Имущество

После выполнения программы вы получите следующий вывод.

Выход —

Contents of the document:

Meta data of the document:

Resolution Units: inch
Compression Type: Baseline
Data Precision: 8 bits
Number of Components: 3
tiff:ImageLength: 3000
Component 2: Cb component: Quantization table 1, Sampling factors 1 horiz/1 vert
Component 1: Y component: Quantization table 0, Sampling factors 2 horiz/2 vert
Image Height: 3000 pixels
X Resolution: 300 dots
Original Transmission Reference: 53616c7465645f5f2368da84ca932841b336ac1a49edb1a93fae938b8db2cb3ec9cc4dc28d7383f1
Image Width: 4000 pixels
IPTC-NAA record: 92 bytes binary data
Component 3: Cr component: Quantization table 1, Sampling factors 1 horiz/1 vert
tiff:BitsPerSample: 8
Application Record Version: 4
tiff:ImageWidth: 4000
Y Resolution: 300 dots

TIKA — Извлечение файлов mp4

Ниже приведена программа для извлечения контента и метаданных из файлов mp4 —

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.mp4.MP4Parser;
import org.apache.tika.sax.BodyContentHandler;

import org.xml.sax.SAXException;

public class Mp4Parse {

   public static void main(final String[] args) throws IOException,SAXException, TikaException {

      //detecting the file type
      BodyContentHandler handler = new BodyContentHandler();
      Metadata metadata = new Metadata();
      FileInputStream inputstream = new FileInputStream(new File("example.mp4"));
      ParseContext pcontext = new ParseContext();
      
      //Html parser
      MP4Parser MP4Parser = new MP4Parser();
      MP4Parser.parse(inputstream, handler, metadata,pcontext);
      System.out.println("Contents of the document:  :" + handler.toString());
      System.out.println("Metadata of the document:");
      String[] metadataNames = metadata.names();
      
      for(String name : metadataNames) {
         System.out.println(name + ": " + metadata.get(name));
      }
   }  
}

Сохраните приведенный выше код как JpegParse.java и скомпилируйте его из командной строки, используя следующие команды:

javac Mp4Parse.java
java Mp4Parse 

Ниже приведен снимок свойств файла Example.mp4.

Проходя MP4

После выполнения вышеуказанной программы вы получите следующий вывод:

Выход

Contents of the document:

Metadata of the document:

dcterms:modified: 2014-01-06T12:10:27Z
meta:creation-date: 1904-01-01T00:00:00Z
meta:save-date: 2014-01-06T12:10:27Z
Last-Modified: 2014-01-06T12:10:27Z
dcterms:created: 1904-01-01T00:00:00Z
date: 2014-01-06T12:10:27Z
tiff:ImageLength: 360
modified: 2014-01-06T12:10:27Z
Creation-Date: 1904-01-01T00:00:00Z
tiff:ImageWidth: 640
Content-Type: video/mp4
Last-Save-Date: 2014-01-06T12:10:27Z

TIKA — Извлечение mp3 файлов

Ниже приведена программа для извлечения контента и метаданных из mp3 файлов —

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.mp3.LyricsHandler;
import org.apache.tika.parser.mp3.Mp3Parser;
import org.apache.tika.sax.BodyContentHandler;

import org.xml.sax.SAXException;

public class Mp3Parse {

   public static void main(final String[] args) throws Exception, IOException, SAXException, TikaException {

      //detecting the file type
      BodyContentHandler handler = new BodyContentHandler();
      Metadata metadata = new Metadata();
      FileInputStream inputstream = new FileInputStream(new File("example.mp3"));
      ParseContext pcontext = new ParseContext();
      
      //Mp3 parser
      Mp3Parser  Mp3Parser = new  Mp3Parser();
      Mp3Parser.parse(inputstream, handler, metadata, pcontext);
      LyricsHandler lyrics = new LyricsHandler(inputstream,handler);
      
      while(lyrics.hasLyrics()) {
    	  System.out.println(lyrics.toString());
      }
      
      System.out.println("Contents of the document:" + handler.toString());
      System.out.println("Metadata of the document:");
      String[] metadataNames = metadata.names();

      for(String name : metadataNames) {		        
    	  System.out.println(name + ": " + metadata.get(name));
      }
   }
}

Сохраните приведенный выше код как JpegParse.java и скомпилируйте его из командной строки, используя следующие команды:

javac Mp3Parse.java
java Mp3Parse 

Файл Example.mp3 имеет следующие свойства —

Пример MP3

Вы получите следующий вывод после выполнения программы. Если в данном файле есть какие-либо тексты, наше приложение запишет и отобразит их вместе с выводом.

Выход