2012-01-28 16 views
5

Ho bisogno di un codice di esempio per aiutarmi a rilevare le pagine Web della lingua farsi da apache tika toolkit.come posso rilevare le pagine Web farsi di tika?

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

Ho scaricato i file jar apache.tika e li ho aggiunti al classpath. ma questo codice dà l'errore per la lingua Farsi ma funziona per l'inglese. come posso aggiungere Farsi al pacchetto languageIdentifier di tika?

+0

Che tipo di errore? Si prega di inviare lo stacktrace. – AlexR

+0

è 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

+0

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

risposta

9

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:

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

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

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

+0

Seguo il collegamento ma non capisco come posso creare il profilo della lingua. Mi potete aiutare? – aliakbarian

+0

infatti. Ho posto la mia domanda su come creare il profilo della lingua nel seguente link: http://stackoverflow.com/questions/6227565/adding-language-profile-to-apache-tika – aliakbarian

+0

dopo aver trovato abbastanza testo corpus, cosa devo fare? – aliakbarian

Problemi correlati