Hi, Nade, thanks for your post.
I've tried your method on chi_sim but got 17 empty sub dawgs. however my
fixed-length.dawg is around 600Kb... BTW, do you have any idea what this
file is for? Any help to promote the accuracy for Chinese recognition?
-Han
在 2015年5月19日星期二 UTC+8下午2:25:38,Nade Sritanyaratana写道:
>
> cskau, thank you for posting this! I would have gotten stuck without it.
>
> The awk command you provided seems to work great on jpn.traineddata. I was
> just trying the same awk command for chi_sim.traineddata, but unfortunately
> did not come across similar luck.
>
> Following your suggestion, I used a hex editor to view the dawgs file and
> a dawg file, both from chi_sim.traineddata. I see that the "magic number"
> was for some reason slightly different. I noticed instead the magic
> hexadecimal number "2A00A313".
>
> Fast forward a bit -- the following command worked for me:
> awk 'BEGIN {RS="\x2A\x00\xA3\x13"; FILENUM=-1} {FILENUM++; if (FILENUM ==
> 0) {next}; FILENAME="chi_sim.fixed-length-dawg-"FILENUM; printf "%s",RS$0 >
> FILENAME;}' chi_sim.fixed-length-dawgs
>
> Detailing my steps for others:
>
> 1. Download chi_sim.traineddata from Tesseract's downloads page
> <https://code.google.com/p/tesseract-ocr/downloads/list>, untar, CD
> shell to the directory containing the traineddata file.
> 2. combine_tessdata -u chi_sim.traineddata chi_sim.
> 3. Execute the awk command shown above.
> 4. % dawg2wordlist chi_sim.unicharset chi_sim.fixed-length-dawg-1 fixed
> -length-1_wordlist
> 5. Repeat step 4 for chi_sim.fixed-length-dawg-2,
> chi_sim.fixed-length-dawg-3.
>
>
> Cheers,
> Nade
>
> On Tuesday, January 7, 2014 at 8:39:19 AM UTC-5, cskau wrote:
>>
>> I was pondering the same thing this evening. So since there seems to be
>> precious little information out there, allow me to revive this 3 month old
>> thread with a few of my findings.
>>
>> I too got a crash when I tried extracting the fixed-length-dawgs, and
>> dawg2wordlist
>> <http://tesseract-ocr.googlecode.com/svn-history/trunk/doc/dawg2wordlist.1.html>
>> doesn't
>> seem to offer any special flags for handling this special composite dawg.
>> However, wordlist2dawg
>> <http://tesseract-ocr.googlecode.com/svn-history/trunk/doc/wordlist2dawg.1.html>
>> *does* have a special mode:
>>
>>> *wordlist2dawg* -l <short> <long> *WORDLIST* *DAWG* *lang.unicharset*
>>
>> and says about the option:
>>
>>> -l <short> <long> Produce a file with several dawgs in it, one each
>>> for words of length <short>, <short+1>,… <long>
>>
>>
>> While one could surely just look at the source to figure out the details,
>> I figured the "dawgs" file format is simply a bunch of "dawg"s cat'ed
>> together.
>> To verify this theory I compared a regular dawg and the
>> fixed-length-dawgs in a hex editor.
>> The regular dawg appears to use the magic number '2A001D0E', which was
>> suspiciously found several times in the dawgs.
>> An educated guess tells me the dawgs format is simply:
>> [4 bytes : number of dawgs] + ([4 bytes : length of words in dawg] + [DAWG
>> ...])*
>>
>> This makes is very easy to manually extract the individual dawgs, and one
>> could even naively split the file on the headers:
>> awk 'BEGIN {RS="\x2A\x00\x1D\x0E"; FILENUM=-1} {FILENUM++; if (FILENUM ==
>> 0)
>> {next}; FILENAME=".fixed-length-dawg-"FILENUM; printf "%s",RS$0 >
>> FILENAME;}' .fixed-length-dawgs
>>
>> By using the above snippet I successfully managed to "extract" 6 dawgs of
>> various length from the pre-built jpn.traineddata.
>> You can then run the standard dawg2wordlist and extract the wordlists
>> from them.
>>
>>
>> On a separate note it is still not clear to me what the exact purpose of
>> these sub dawgs is.
>> The jpn.traineddata appears to contain a .freq-dawg and the
>> .fixed-length-dawgs but no .word-dawg.
>> Why it is helpful to split the dictionary into many smaller dictionaries
>> based on word length, I cannot guess.
>>
>>
>> I hope this will be helpful to someone out there.
>>
>>
>> On Wednesday, 16 October 2013 17:48:09 UTC+9, Xiaohui Zhang wrote:
>>>
>>> Dears,
>>>
>>> Is there any tips about how to use the file of fixed-length-dawgs? I
>>> tried to use dawg2wordlist
>>> <http://tesseract-ocr.googlecode.com/svn-history/trunk/doc/dawg2wordlist.1.html>
>>> to
>>> extract some sample content from provided chi_sim trained data, but no
>>> success, the command will crash while "Reading squished dawg".
>>>
>>> Any suggestion about how to use this file?
>>>
>>> Thanks very much.
>>>
>>
--
You received this message because you are subscribed to the Google Groups
"tesseract-ocr" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/tesseract-ocr.
To view this discussion on the web visit
https://groups.google.com/d/msgid/tesseract-ocr/f6946285-b07d-4c69-acf5-6aa9360e3f9b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.