TLDR;版本:如何給Tesseract一個單詞列表(.NET封裝)
有沒有人有使用.NET包裝,我可以看到Tasseract工作的'bazaar'配置?
我敢肯定,這就是我想要的東西(只承認從列表中某些字),但它似乎並沒有做任何事情
我有可能的字符串我的一個很短名單試圖找到(1-4個字)。爲正方體的文檔指出:
如果您要更換整個字典,你將需要解壓 的.traineddata文件,創建一個新詞 - 耶文件,然後打包 文件恢復成。訓練數據文件。有關更多 的詳細信息,請參閱TrainingTesseract。
這聽起來就像我想要的!所以,我看TrainingTesseract看到:
的traineddata文件僅僅是輸入文件的串聯, 與包含已知文件類型 的偏移表的內容。請參閱源代碼中的ccutil/tessdatamanager.h以獲取當前接受的文件名列表 。
太好了。那麼我該如何解開這個簡單的輸入文件連接,修改內容和標題並重新打包呢? :)
This post似乎是同樣的問題 - 涉及單純地關閉了默認的字典和使用用戶的詞代替:
讓我們假設你想OCR英文,但抑制正常 詞典並加載替代詞列表和備選列表 的模式 - 這兩個文件是最常用的額外數據 文件。
如果你的語言包是/path/to/eng.traineddata和HOCR 配置在/路徑/到/ CONFIGS/HOCR然後創建三個新的文件:
/路徑/要/工程。用戶的話:-snip
/path/to/eng.user-patterns:-snip
/路徑/到/ CONFIGS /集市:-snip
現在,如果你通過 字bazaar作爲Tesseract的尾隨命令行參數, Tesseract不會打擾加載系統詞典,也不會加載和使用您提供的eng.user-words文件 和eng.user-patterns文件。前者是一個簡單的詞 列表,每行一個。後者的格式記錄在read_pattern_list()的 dict/trie.h中。
但是這樣做完全沒有區別!
我創建與發動機:
using (engine = new TesseractEngine(@"C:\src\x\tessdata", "eng", EngineMode.Default, @"C:\src\x\tessdata\engine.config"))
已經做出了(UTF-8,Unix行結尾)文件engine.config:
load_system_dawg F
load_freq_dawg F
user_words_suffix user-words
user_patterns_suffix user-patterns
而創建eng.user圖案和eng.user-words(UTF-8,Unix行結尾)文件在eng.traineddata旁邊。
我想知道這是否可能?我想知道是否有人使用Tesseract而不是開發人員? –