Tika пока не поставляется с языковым профилем для языка фарси. Начиная с версии 1.0 поддерживаются 27 языков из коробки:
languages=be,ca,da,de,eo,et,el,en,es,fi,fr,gl,hu,is,it,lt,nl,no,pl,pt,ro,ru,sk,sl,sv,th,uk
В вашем примере ввод ошибочно определен как li
(литовский) на расстоянии 0,41, что выше порога достоверности 0,022. См. исходный код для получения дополнительной информации о внутренних работах LanguageIdentifier
.
Язык фарси ( Персидский, 2-буквенный код ISO 639-1 fa
) по умолчанию не распознается.
Если вы хотите, чтобы Tika распознала другой язык, сначала вы должны создать языковой профиль.
Для этого необходимы следующие шаги:
Найдите текстовый корпус для вашего языка. Я нашел коллекцию Хамшахри . Этого должно быть достаточно. Загрузите корпус или его части и создайте простой текстовый файл из XML.
Создать файл ngram для идентификатора языка. Это можно сделать с помощью TikaCLI :
java -jar tika-app-1.0.jar --create-profile=fa -eUTF-8 fa-corpus.txt
Это будет файл с именем fa.ngp
, который содержит n-граммы.
Настройте Tika таким образом, чтобы он распознавал новый язык. Либо сделайте это программно, используя LanguageIdentifier.initProfiles()
, либо поместите файл свойств с именем tika.language.override.properties
в путь к классам. Убедитесь, что файл ngram также находится в пути к классам.
Если вы сейчас запустите Tika, он должен правильно определить ваш язык.
Обновление:
Подробно описаны шаги, необходимые для создания языкового профиля.