diff options
author | 2012-10-25 18:15:42 +0900 | |
---|---|---|
committer | 2012-10-25 19:15:24 +0900 | |
commit | 47cac57e4593f47e753410e4199e84e458d6de6f (patch) | |
tree | 1d0c1d0b2fac472e42574d8d7e81bca98cfd10a9 /tools/dicttool/src | |
parent | f1d35ac5dc0cca2b357940cab1001cadca37bcb4 (diff) | |
download | latinime-47cac57e4593f47e753410e4199e84e458d6de6f.tar.gz latinime-47cac57e4593f47e753410e4199e84e458d6de6f.tar.xz latinime-47cac57e4593f47e753410e4199e84e458d6de6f.zip |
Finish up the "info" command in dicttool. (A6)
Bug: 7388857
Change-Id: I704f12a6be76ce1644ec5e8dd3b667f112e9c04a
Diffstat (limited to 'tools/dicttool/src')
-rw-r--r-- | tools/dicttool/src/com/android/inputmethod/latin/dicttool/CombinedInputOutput.java | 6 | ||||
-rw-r--r-- | tools/dicttool/src/com/android/inputmethod/latin/dicttool/Info.java | 37 |
2 files changed, 39 insertions, 4 deletions
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/CombinedInputOutput.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/CombinedInputOutput.java index c17667536..cd04d18bb 100644 --- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/CombinedInputOutput.java +++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/CombinedInputOutput.java @@ -16,6 +16,7 @@ package com.android.inputmethod.latin.dicttool; +import com.android.inputmethod.latin.makedict.FormatSpec; import com.android.inputmethod.latin.makedict.FusionDictionary; import com.android.inputmethod.latin.makedict.FusionDictionary.DictionaryOptions; import com.android.inputmethod.latin.makedict.FusionDictionary.Node; @@ -150,8 +151,9 @@ public class CombinedInputOutput { if (SHORTCUT_TAG.equals(params[0])) { shortcut = params[1]; } else if (FREQUENCY_TAG.equals(params[0])) { - shortcutFreq = - WHITELIST_TAG.equals(params[1]) ? 15 : Integer.parseInt(params[1]); + shortcutFreq = WHITELIST_TAG.equals(params[1]) + ? FormatSpec.SHORTCUT_WHITELIST_FREQUENCY + : Integer.parseInt(params[1]); } } if (null != shortcut) { diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Info.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Info.java index bafde627d..be4b2b881 100644 --- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Info.java +++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Info.java @@ -18,8 +18,11 @@ package com.android.inputmethod.latin.dicttool; import com.android.inputmethod.latin.dicttool.BinaryDictOffdeviceUtils.DecoderChainSpec; import com.android.inputmethod.latin.makedict.BinaryDictInputOutput; +import com.android.inputmethod.latin.makedict.FormatSpec; import com.android.inputmethod.latin.makedict.FusionDictionary; +import com.android.inputmethod.latin.makedict.FusionDictionary.WeightedString; import com.android.inputmethod.latin.makedict.UnsupportedFormatException; +import com.android.inputmethod.latin.makedict.Word; import org.xml.sax.SAXException; @@ -38,8 +41,9 @@ public class Info extends Dicttool.Command { public Info() { } + @Override public String getHelp() { - return "info <filename>: prints various information about a dictionary file"; + return COMMAND + "<filename>: prints various information about a dictionary file"; } private static void crash(final String filename, final Exception e) { @@ -72,6 +76,7 @@ public class Info extends Dicttool.Command { FileChannel.MapMode.READ_ONLY, 0, decodedSpec.mFile.length()); System.out.println("Format : Binary dictionary format"); System.out.println("Packaging : " + decodedSpec.describeChain()); + System.out.println("Uncompressed size : " + decodedSpec.mFile.length()); return BinaryDictInputOutput.readDictionaryBinary( new BinaryDictInputOutput.ByteBufferWrapper(buffer), null); } @@ -87,12 +92,40 @@ public class Info extends Dicttool.Command { return null; } + private static void showInfo(final FusionDictionary dict) { + System.out.println("Header attributes :"); + System.out.print(dict.mOptions.toString(2)); + int wordCount = 0; + int bigramCount = 0; + int shortcutCount = 0; + int whitelistCount = 0; + for (final Word w : dict) { + ++wordCount; + if (null != w.mBigrams) { + bigramCount += w.mBigrams.size(); + } + if (null != w.mShortcutTargets) { + shortcutCount += w.mShortcutTargets.size(); + for (WeightedString shortcutTarget : w.mShortcutTargets) { + if (FormatSpec.SHORTCUT_WHITELIST_FREQUENCY == shortcutTarget.mFrequency) { + ++whitelistCount; + } + } + } + } + System.out.println("Words in the dictionary : " + wordCount); + System.out.println("Bigram count : " + bigramCount); + System.out.println("Shortcuts : " + shortcutCount + " (out of which " + whitelistCount + + " whitelist entries)"); + } + + @Override public void run() { - // TODO: implement this if (mArgs.length < 1) { throw new RuntimeException("Not enough arguments for command " + COMMAND); } final String filename = mArgs[0]; final FusionDictionary dict = getDictionary(filename); + showInfo(dict); } } |