Tika non ha ancora fornito un profilo linguistico per la lingua Farsi. Nella versione 1.0 27 languages are supported fuori dalla scatola:
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
Nel tuo esempio l'ingresso è malrilevati come li
(lituano) con una distanza di 0,41, che è superiore alla soglia di certezza 0.022. Vedere lo source code per ulteriori informazioni sui lavori interni di LanguageIdentifier
.
La lingua Farsi (Persian, ISO 639-1 2-letter code fa
) non è riconosciuta per impostazione predefinita. Se vuoi che Tika riconosca un'altra lingua, devi prima creare un profilo di lingua.
Per questo i seguenti passi sono necessari:
Trova un corpus di testi per la lingua. Ho trovato il Hamshahri Collection. Questo dovrebbe essere sufficiente. Scarica il corpus o parti di esso e crea un file di testo semplice fuori dall'XML.
Creare un file ngram per l'identificatore della lingua. Questo può essere fatto utilizzando TikaCLI:
java -jar tika-app-1.0.jar --create-profile=fa -eUTF-8 fa-corpus.txt
Questo file sarà chiamato fa.ngp
che contiene gli n-grammi.
Configurare Tika in modo che riconosca la nuova lingua. O farlo a livello di programmazione utilizzando LanguageIdentifier.initProfiles()
o inserire un file di proprietà con il nome tika.language.override.properties
nel classpath. Assicurati che il file ngram si trovi anche nel classpath.
Se ora esegui Tika, dovrebbe rilevare correttamente la tua lingua.
Aggiornamento: Informazioni dettagliate sui passaggi necessari per creare un profilo di lingua.
Che tipo di errore? Si prega di inviare lo stacktrace. – AlexR
è sorprendente ma non ho alcun errore ora ma il problema è che rileva in modo errato. restituisce "lt" che significa lingua lituana invece di lingua persiana (farsi) – aliakbarian
la mia domanda è come tika rileva le lingue? con quali file? per esempio se usa le parole di stop di qualsiasi lingua dove posso aggiungere le parole di stop della lingua farsi? – aliakbarian