как я могу определить фарси веб-страниц по Тика? - PullRequest
5 голосов
/ 28 января 2012

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

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

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

1 Ответ

9 голосов
/ 28 января 2012

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

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

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

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

    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, он должен правильно определить ваш язык.

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

...