Help - Search - Member List - Calendar
Full Version: Built-in Dictionaries on the Pocket PC
PPCSG > Power Up Your Devices > Tips & Tricks
vicott
Do you know there are quite a number of built-in dictionaries on the Pocket PC that help you correct text, have predictive text entry, and check spelling? Let me explain what I understand about the various dictionaries found in the Pocket PC.

Firstly, there are 3 main classes of dictionaries, grouped according to their core function:
  1. Spell Checker Dictionaries
  2. Word Completion Dictionaries
  3. Auto-Correct Dictionaries
At bootup, the system loads the words from all of these dictionaries into the memory by one (or more) of the background processes. Although all the words are in the memory stream, the system still attempts to lock the dictionary used for auto-correction function.

For the spell check dictionaries, there are 2 main dictionaries (both found in Windows folder) used:
  1. Main Dictionary (English): mssp2_en.lex - "en" means it's an English Dictionary.
  2. Main Dictionary in other languages - filename reflects the language used, e.g. "mssp2_fr.lex" is a French dictionary
  3. Custom Dictionary: custom.dic
You can find the registry key responsible for the spell checking feature under "HKLM\Software\Microsoft\Spell Check". I'm not very sure if "mssp2_len.lex" is the main dictionary which is also used for checking of the auto-correct dictionary. It's the only suspcious dictionary I am aware of. If you wish to edit custom.dic, SpellChecker is the software for you. After editing the custom dictionary, you will need to perform a soft reset in order for the system to learn these new words.

Next is the Word Completion dictionary class. There are several dictionaries, both physical and virtual, found on the Pocket PC:
  1. Main Dictionary (English) - dictprob.dat and statdict.dat
  2. Main Dictionary in other languages - filenames can be something like dictprob_fr.dat and statdict_fr.dat
  3. Custom Dictionary: dyncompdict.dat (or dyncompdict.tmp) - This is found in the Windows folder
  4. Temporary Dictionary - Stored Temporary in memory by a background process.
For the temp dictionary, these are the behaviours:
  1. It is not file-based.
  2. Whenever it is overloaded, it dumps the data into the custom dictionary.
  3. Whatever is still stored in the memory is cleared after a soft reset.
As you can see, the user only has control over the custom dictionary for the word completion feature. If you wish to edit this dictionary, you can try DictEditor to do so. Like the custom dictionary for spell checking, you will also need to perform a soft reset in order for the system to learn the new words.

Now, to the last class of dictionaries, that's the auto-correct dictionary. What's the function of this dictionary? When you typed certain words like (c) in word processing applications, the system will check against the auto-correct dictionary and replace it by a © instead. For the auto-correct dictionary, there is only one file used. It's found in the Windows folder as "autocorect.txt" file. There are much more constraints with editing of this dictionary as compared to the custom dictionaries used for Word Completion of Spell Checking.

These are the behaviours (or rather working mechanism) of the Auto-Correct Dictionary:
  1. By default, it is a file in the ROM as Read-Only file.
  2. However, it is actually possible to edit the file
  3. After you edit the file and perform a soft reset, the file is locked.
  4. If you attempt to rename the file in order to unlock it, it doesn't get unlocked.
  5. Renaming of the file is successful but the renamed file (e.g. "autocorrect2.txt") is still locked.
  6. Also, the system will load back the default dictionary as "autocorrect.txt".
  7. This auto-generated "auto-correct.txt" allows editing and you are back to step (2).
The auto-correct dictionary doesn't allow you to add any words you like. There are some guidelines to follow:
  1. The "wrong" or "misspelled" word can be as short as 1 character.
  2. The "corrected" or "new" word can be a word or a single symbol.
  3. The auto-correction dictionary does not help you correct capitalization
Let me give you some examples to illustrate what I mean. I shall use the notation "wrong >> correct (comments)" below:
  1. (c) >> © (this is valid because the right hand side is a symbol)
  2. i >> I (this is not valid because both sides have the same spelling)
  3. GBP >> £ (this is also valid)
  4. ipaq >> iPAQ (this is not valid because both sides have the same spelling)
If you wish to edit the auto-correct dictionary, but keeping in mind the limitations and restrictions, you can try WordCorrector. Just like the other 2 custom dictionaries, you will need to perform a soft reset for the system to load the new words.

If you want to make your life simple and install all the above-mentioned applications in one go, you can try DictMgr instead. It is a suite of 5 applications, which include the 3 already mentioned.

Source & Links
slaygay
Nice work bro. Thanks
Symphony
Thanks Vicott, great info. Now only I know there is 3 dicts inside. All the while I thot only one. wonder which one my 6818 Phonepad is using for prediction?
vicott
Phone Pad is using its own dictionaries. It also consist of one main dictionary and one custom dictionary for each language. I think the main dictionary is embedded in the DLL file. The file path for the custom dictionary is "\Windows\IntelliPad.udb". It is actually an unicode file so it is even possible to edit it using Word Mobile.

And to make things simpler again, T9Editor is a convenient app to modify the dictionary for Phone Pad. And it is also found in the DictMgr suite.
Symphony
Wow...thanks again. Life is gettin better and better grin.gif
vicott
Since WM6, things have changed a little, so this thread has to be updated with new information below.

For the spell-check dictionary, the location of the dictionary file is found in "HKLM\Software\Microsoft\Spell Check". For English, the file might be "custom.0409.dic".

For the auto-correct dictionary, the file is something like "autocorrect.xxxx.txt" in the "Windows" folder where "xxxx" is the language code. For example, the English dictionary would be "autocorrect.0409.txt".

As for the word-completion dictionary, the file is probably "\Windows\compimeh.0409.dat". Unfortunately, there is no dictionary editor for this yet.
vicott
Some examples of 3rd party SIPs (input methods) that use their own dictionaries:
1) HTC Phone Pad
2) HTC Touch Keypad/Keyboard
3) CooTek TouchPal
4) XT9 on Asus devices
5) XT9 on O2 Xda Stealth
6) TextPlus
7) HTC Touch Diamond Keyboard

Here's a description to the dictionaries supported by DictMgr:
1) DictEditor: Word completion dictionary for WM5 and below
2) T9Editor: T9 dictionary for HTC Phone Pad
3) SpellChecker: Spell-check dictionary
4) WordCorrector: Word correction dictionary
5) TPalEditor: Dictionary for CooTek TouchPal

All the above dictionary editors only support the respective dictionaries for English only. As seen, only DictEditor does not support WM6 and above.

On some devices like HTC Touch Pro, there is a "eT9MyWords.exe" in the windows folder which is used to edit the xT9 dictionary used by the HTC input methods.
DreadLord
wah... great info... thx vicott.... :D
bugsyk
Vicott- any idea how to get a keyboard to use the custom dictionary? I have a Fuze and it uses it's own dictionary and not the Windows autocorrect file which results in it having autocomplete but not autocorrect features and it's pretty poor. But I do like their layout. I can get the standard windows keyboard to autocorrect and autocomplete by disabling T9 but then I have to live with the default keyboard which doesn't work as a finger friendly keyboard. I know there are alternative like Happy Tapping but they're not as good as the 'Diamond' keyboard the Fuze comes with. Thanks
vicott
QUOTE(bugsyk @ Nov 23 2008, 09:40 AM)
Vicott- any idea how to get a keyboard to use the custom dictionary? I have a Fuze and it uses it's own dictionary and not the Windows autocorrect file which results in it having autocomplete but not autocorrect features and it's pretty poor. But I do like their layout. I can get the standard windows keyboard to autocorrect and autocomplete by disabling T9 but then I have to live with the default keyboard which doesn't work as a finger friendly keyboard. I know there are alternative like Happy Tapping but they're not as good as the 'Diamond' keyboard the Fuze comes with. Thanks
*


Sorry, I'm a little confused. There are 3 types of prediction features on HTC Raphael: default auto-complete, default auto-correct, and XT9. Each has its own fixed dictionary and custom dictionary, i.e. there are 3 to 6 word prediction dictionaries on HTC Raphael. Which input method and which prediction feature are you trying to get to work together? confused.gif
bugsyk
I like what the Tilt used to do which was using the autocorrect file located in the Windows directory but I want to use it with the full QWERTY keyboard (the one that the Fuze is preset to). Right now that autocorrect file only works with the 'keyboard' which is the traditional Windows keyboard. I don't want the T9 method (which is just autocomplete and not autocorrect).
bugsyk
So i guess it's the main dictionaries with the standard autocorrect file. I don't want the custom T9 dictionaries to be in play because (at least on the Fuze) they're not even close to sufficient. Thanks for the help
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.