2012-01-28 9 views
5

Potrzebuję przykładowy kod, aby pomóc mi wykryć strony internetowe w języku farsi za pomocą apache tika toolkit.Jak mogę wykryć strony internetowe farsi przez tika?

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

Mam pliki jar apache.tika i dodam je do ścieżki klasy. ale ten kod daje błąd w języku farsi, ale działa w języku angielskim. Jak dodać pakiet Farsi do languageIdentifier w tika?

+0

Jaki błąd? Proszę opublikować stacktrace. – AlexR

+0

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

+0

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

Odpowiedz

9

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:

  1. 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.

  2. 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.

  3. 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.

+0

Podążam za odnośnikiem, ale nie rozumiem, jak mogę utworzyć profil języka. możesz mi pomóc? – aliakbarian

+0

w rzeczywistości. Zadaję pytanie dotyczące tworzenia profilu językowego w linku poniżej: http://stackoverflow.com/questions/6227565/adding-language-profile-to-apache-tika – aliakbarian

+0

po znalezieniu wystarczającej ilości korpusu tekstu, co powinienem zrobić? – aliakbarian

Powiązane problemy