как я могу обнаружить веб-страницы на фарси с помощью tika?


Мне нужен пример кода, который поможет мне обнаружить веб-страницы на языке фарси с помощью Apache TIKA toolkit.

 LanguageIdentifier identifier = new LanguageIdentifier("فارسی");
        String language = identifier.getLanguage();

У меня есть скачать apache.tika jar файлы и добавить их в путь к классу. но этот код дает ошибку для языка фарси, но он работает для английского языка. как я могу добавить фарси в пакет languageIdentifier tika?

1 5

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 распознала другой язык, вы должны сначала создать языковой профиль.

Для этого необходимы следующие шаги:

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

  2. Создайте файл ngram для идентификатора языка. Это можно сделать с помощью Тикакли :

    java -jar tika-app-1.0.jar --create-profile=fa -eUTF-8 fa-corpus.txt Это будет файл под названием fa.ngp, который содержит n-граммы.

  3. Настройте Tika так, чтобы она распознала новый язык. Либо сделайте это программно, используя LanguageIdentifier.initProfiles(), либо поместите файл свойств с именем tika.language.override.properties в путь к классу. Убедитесь,что файл ngram также находится в пути к классу.

Если вы сейчас запустите Tika, он должен правильно определить ваш язык.

Обновление: Подробно описаны шаги, необходимые для создания языка профиль.