Извлечение текста из документов неизвестного типа контента - PullRequest
2 голосов
/ 01 апреля 2011

есть ли в Apache Tika парсер для типа application/octet-stream? Я полагаю, что это не анализируемый поток.

Мне просто нужно проанализировать документы ODS, документы MS и файлы PDF. Кажется, что new Tika( ).parseToString(file); достаточно. Но я не могу понять, что происходит, когда тип контента не обнаружен -> application/octet-stream по умолчанию. Если у меня есть возможность извлечь текст из тех документов, которые относятся к одному из этих типов, но детектор contentType не обнаружил их тип.

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

Или действительно полученный application/octet-stream тип контента является сигналом, что мы не можем прочитать это? Или «ты должен сам придумать, как с этим бороться»?

1 Ответ

3 голосов
/ 01 апреля 2011

Если детектор не знает, что это за файл, он вернет application / octet-stream

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

Если вы можете, передайте имя вашего файла при обнаружении и анализе, так как это поможет в обнаружении в некоторых случаях:

Metadata metadata = new Metadata();
metadata.set(Metadata.RESOURCE_NAME_KEY, filename);
ParseContext context = new ParseContext();

Parser parser = new AutoDetectParser();
parser.parse(input, textHandler, metadata, new ParseContext());

Кроме того, стоит проверить часть поддерживаемых форматов на веб-сайте Tika, чтобы убедиться, что у вас есть документы с парсером - http://tika.apache.org/0.9/formats.html

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

...