Skip to content

Latest commit

 

History

History
32 lines (23 loc) · 1.22 KB

思路.md

File metadata and controls

32 lines (23 loc) · 1.22 KB

记录一下设计思路

层次调用

  1. 前端界面或者 Console 通过 CoreMapping 来调用 IME 中的类,完成解析 WordLibrary 类,然后导出成字符串的任务。
  2. IME 中的类需要调用 Generater 中的类,完成对 Code 的生成。如果输入和输出的 CodeType 是相同的,那么就不需要调用 Generater 类。
  3. Generater 中的类读取资源文件中的汉字编码对应表,也可以读取外部指定的对应表,在内存中生成字典,根据具体的编码规则对词汇进行编码。

默认规则

所有编码规则都应该是允许一字多码的。比如拼音中的多音字。 词汇的编码有几种:

  • 一字一码。比如单音字拼音输入法
  • 一字多码。比如多音字拼音输入法
  • 一词一码。比如五笔
  • 一词多码。比如某些二笔输入法

WordLibrary 类

包含基本 4 个属性:

  • 汉字 Word
  • 编码 Codes
  • 词频 Rank
  • 编码类型 CodeType

关于编码 Codes, 如果是一字一码,那么 Codes[n][0]就是第 n 个字的编码 如果是一字多码,那么 Codes[n][x]就是第 n 个字的编码 如果是一词一码,那么 Codes[0][0]就是其编码。 如果是一词多码,那么 Codes[0][x]就是其编码。