как я могу обнаружить веб-страницы на фарси с помощью tika?
Мне нужен пример кода, который поможет мне обнаружить веб-страницы на языке фарси с помощью Apache TIKA toolkit.
LanguageIdentifier identifier = new LanguageIdentifier("فارسی");
String language = identifier.getLanguage();
У меня есть скачать apache.tika jar файлы и добавить их в путь к классу. но этот код дает ошибку для языка фарси, но он работает для английского языка. как я могу добавить фарси в пакет languageIdentifier tika?
1 ответ:
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
.Язык фарси (персидский, ISO 639-1 2-буквенный код
fa
) не признается по умолчанию. Если вы хотите, чтобы Tika распознала другой язык, вы должны сначала создать языковой профиль.Для этого необходимы следующие шаги:
Найдите текстовый корпус для вашего языка. Я нашел коллекцию Хамшахри. Этого должно быть достаточно. Загрузите корпус или его части и создайте простой текстовый файл из XML.
Создайте файл ngram для идентификатора языка. Это можно сделать с помощью Тикакли :
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, он должен правильно определить ваш язык.
Обновление: Подробно описаны шаги, необходимые для создания языка профиль.