Eu preciso de um código de exemplo para me ajudar a detectar páginas da web em linguagem farsi pelo kit de ferramentas apache tika.
LanguageIdentifier identifier = new LanguageIdentifier("فارسی"); String language = identifier.getLanguage();
Eu fiz o download dos arquivos jar apache.tika e os adicionei ao classpath. mas este código dá erro para a linguagem farsi, mas funciona para o inglês. Como posso adicionar Farsi ao pacote languageIdentifier de tika?
Tika não é fornecido com um perfil de idioma para o idioma farsi ainda. A partir da versão 1.0, 27 idiomas são suportados fora da checkbox:
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
No seu exemplo, a input é detectada incorretamente como li
(lituano) com uma distância de 0,41, que está acima do limite de certeza de 0,022. Veja o código fonte para mais informações sobre os trabalhos internos do LanguageIdentifier
.
A linguagem farsi ( persa, código fa
2 letras ISO 639-1 ) não é reconhecida por padrão. Se você quiser que o Tika reconheça outro idioma, você deve primeiro criar um perfil de idioma.
Para isso, os seguintes passos são necessários:
Encontre um corpus de texto para o seu idioma. Eu encontrei a coleção Hamshahri . Isso deve ser suficiente. Faça o download do corpus ou partes dele e crie um arquivo de texto simples a partir do XML.
Crie um arquivo ngram para o identificador de idioma. Isso pode ser feito usando TikaCLI :
java -jar tika-app-1.0.jar --create-profile=fa -eUTF-8 fa-corpus.txt
Este será um arquivo chamado fa.ngp
que contém os n-grams.
Configure o Tika para que ele reconheça o novo idioma. Faça isso programaticamente usando LanguageIdentifier.initProfiles()
ou coloque um arquivo de propriedades com o nome tika.language.override.properties
no classpath. Certifique-se de que o arquivo ngram também esteja no caminho de class.
Se você agora executar o Tika, ele deve detectar corretamente o seu idioma.
Atualização: detalhou as etapas necessárias para criar um perfil de idioma.