2012-01-20 19 views
9

Làm cách nào để tăng/giảm sức mạnh của từ điển trong tesseract 3?Sức mạnh của từ điển trong Tesseract 3

Trong FAQ nó nói tôi cần phải thay đổi giá trị của "NON_WERD" và "GARBAGE_STRING" nhưng họ không tồn tại trong Tesseract 3.

+0

Bạn đã thành công chưa? Tôi đã twiddled các giá trị cho non_dict_word và non_freq_dict_word và không thấy bất kỳ thay đổi trong kết quả .... –

+2

@KaolinFire Tôi đã có cùng một vấn đề nhưng cuối cùng đã tìm thấy lý do - [bạn cần phải thiết lập enable_new_segsearch] (http://stackoverflow.com/ a) 29843379/492336). – sashoalm

+0

Tôi sẽ phải thử - đó là một khoảng thời gian rất dài kể từ khi tôi chơi với nó, đừng * khá * nhớ tại sao chúng tôi lại ... :) Cảm ơn! –

Trả lời

4

Theo http://code.google.com/p/tesseract-ocr/wiki/FAQ, bạn thay đổi các biến:

enable_new_segsearch 1 
language_model_penalty_non_freq_dict_word 0.2 
language_model_penalty_non_dict_word 0.3 

Tăng giá trị của chúng để Tesseract thiên vị hơn với các từ trong từ điển.

Lưu ý: Bạn phải đặt enable_new_segsearch, nếu không they'll have no effect.

+1

Dự án và Wiki đã chuyển sang [GitHub] (https://github.com/tesseract-ocr/tesseract/wiki/ControlParams). –

1

Để bật khả năng ngôn ngữ biết Tesseract của hoàn toàn, chạy mỗi trong số này:

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"); 

Hoặc, để kiểm soát tốt hơn, chỉ là một số trong số họ. (Tôi không biết một nơi nào giải thích tốt tất cả những gì họ làm, nhưng tên là khá giải thích) Đây là mã từ dự án hiện tại của tôi, sử dụng Tess4J, nhưng bạn có thể dễ dàng dịch chúng sang c + + hoặc một tập tin cấu hình hoặc bất cứ điều gì khác bạn nhu cầu.