全部汉字
我从网上收集了一些资料, 构建了一个<全部汉字.json>文件, 文件格式如下所示:
{ "吖": [ [ "aa", "ya" ], "szhdps" ], "呵": [ [ "aa", "he", "ke" ], "szhhszhs" ], }
这是一个字典, 字典索引是每一个汉字, 值分为2部分, 前者是拼音, 后者是笔画; 一个汉字的拼音可能有多个, 所以是一个数组, 这里的拼音采用的是双拼, 所以用2个字母表示一个字, 并且不分舌前音和舌后音, 也就是说, z,c,s等同于zh,ch,si; 笔画是横,竖,撇,折,点(也是捺), 分别用字母hspzd来表示.
常用词
这里面的字很多, 有2万多个, 所以我把常用的字词放在另外一个文件中<词.json>, 它的数据结构如下所示:
[ [ "的", "de", "pszhhpzd", 1684812452 ], [ "讲座", "jdzo", "-", 0 ], ]
它是一个字或词的数组, 由4部分组成, 第一个表示字词本身, 第2个表示双拼拼音, 第3个表示笔画(仅对单字生效), 第4个表示这个词的序号, 序号越大表示优先级越高, 候选词排得越靠前. 序号用最后一次输入的时间戳.
提升检索效率
为提升检索效率, 把常用词分割成3个字典, 单字词, 双字词, 多字词, 单字词用单个汉字的拼音首字母来索引, 双字词用2个字的拼音首字母索引, 多字词用前3个字多拼音首字母来索引.
为方便检索汉字的笔画, 还需要一个汉字到笔画到字典.
这样就可以快速缩小检索的范围.
标签:检索,输入法,拼音,Python,字典,字词,汉字,数据结构,笔画 From: https://www.cnblogs.com/huzhongqiang/p/17435462.html