2012-01-20 41 views
9

Come aumentare/diminuire la forza del dizionario in tesseract 3?Strength of Dictionary in Tesseract 3

Nelle FAQ si dice che ho bisogno di cambiare il valore di "NON_WERD" e "GARBAGE_STRING", ma non esistono in Tesseract 3.

+0

Hai avuto qualche successo? Ho rigirò i valori per non_dict_word e non_freq_dict_word e non si vede alcun cambiamento nei risultati .... –

+2

@KaolinFire Ho avuto lo stesso problema, ma finalmente trovato la ragione - [è necessario impostare enable_new_segsearch] (http://stackoverflow.com/ un/29843379/492,336 mila). – sashoalm

+0

Dovrò provarlo ... è passato molto tempo da quando ci stavo giocando, non * del tutto * ricordo perché eravamo ... :) Grazie! –

risposta

4

Secondo http://code.google.com/p/tesseract-ocr/wiki/FAQ, si modificano queste variabili:

enable_new_segsearch 1 
language_model_penalty_non_freq_dict_word 0.2 
language_model_penalty_non_dict_word 0.3 

Aumentare i loro valori per rendere Tesseract più distorto alle parole del dizionario.

Nota: È necessario impostare enable_new_segsearch, altrimenti they'll have no effect.

+1

Il progetto e Wiki sono stati spostati in [GitHub] (https://github.com/tesseract-ocr/tesseract/wiki/ControlParams). –

1

Per attivare abilità linguistiche-sapendo di Tesseract tutto, corrono ciascuno di questi:

tess.setTessVariable("load_system_dawg", "false"); 
tess.setTessVariable("load_freq_dawg", "false"); 
tess.setTessVariable("load_punc_dawg", "false"); 
tess.setTessVariable("load_number_dawg", "false"); 
tess.setTessVariable("load_unambig_dawg", "false"); 
tess.setTessVariable("load_bigram_dawg", "false"); 
tess.setTessVariable("load_fixed_length_dawgs", "false"); 

Oppure, per un controllo più preciso, solo alcuni di essi. (Non conosco un posto che spieghi bene quello che fanno tutti, ma i nomi sono piuttosto esplicativi) Questo è il codice del mio progetto attuale, usando Tess4J, ma puoi facilmente tradurli in C++ o in un file di configurazione o qualsiasi altra cosa tu bisogno.