Tika nie jest jeszcze dostarczana z profilem językowym dla języka farsi. Począwszy od wersji 1.0 27 languages are supported wyjęciu z pudełka:
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
W przykładzie wejście jest źle wykrył jako li
(litewski) z odległości 0,41, czyli powyżej progu pewności 0,022. Zobacz source code, aby uzyskać więcej informacji na temat wewnętrznych prac LanguageIdentifier
. Domyślnie język farsi (Persian, ISO 639-1 2-letter code fa
) nie jest domyślnie rozpoznawany. Jeśli chcesz, aby Tika rozpoznawał inny język, musisz najpierw utworzyć profil językowy.
W tym następujące kroki są konieczne:
Znajdź korpus dla swojego języka. Znalazłem Hamshahri Collection. To powinno wystarczyć. Pobierz korpus lub jego części i utwórz plik XML z pliku XML.
Utwórz plik ngram dla identyfikatora języka. Można to zrobić, używając: TikaCLI: To będzie plik o nazwie fa.ngp
, który zawiera n-gramy.
Skonfiguruj Tika tak, aby rozpoznawała nowy język. Można to zrobić programowo, używając LanguageIdentifier.initProfiles()
lub umieścić plik właściwości o nazwie tika.language.override.properties
w ścieżce klas. Upewnij się, że plik ngram znajduje się również w ścieżce klas.
Jeśli teraz używasz Tika, powinna poprawnie wykrywać twój język.
Aktualizacja: Szczegółowe kroki niezbędne do utworzenia profilu językowego.
Jaki błąd? Proszę opublikować stacktrace. – AlexR
to jest zaskakujące, ale nie mam żadnego błędu teraz, ale problem polega na tym, że wykrył niepoprawnie. zwraca "lt", co oznacza język litewski zamiast języka perskiego (farsi) – aliakbarian
moje pytanie brzmi, w jaki sposób tika wykrywa języki? z jakich plików? na przykład, jeśli używa słów stopu dowolnego języka, gdzie mogę dodać słowa stopu w języku farsi? – aliakbarian