Skip to content
Rime五笔码表管理器
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
resource
.gitignore
README.md
RimeWubiDictMngr.pro
main.cpp
rime_wubi_dict_mngr.cpp
rime_wubi_dict_mngr.h

README.md

Rime五笔码表管理器

介绍

本工具用来管理Rime五笔输入法的码表。使用Qt库编写,但没有界面,等代码稳定后,再添加界面。

Rime五笔

Rime的五笔输入法有个优点,它的码表中包含权重(weight)信息。Rime五笔的码表文件wubixx.dict.yaml中的条目如下:

剖	ukj	113738
问题	ukjg	20455144
总是	ukjg	2866329
总量	ukjg	751184
剖	ukjh	90990

每一行记录依次是:词语(text),编码(code)和权重(weight),中间用制表符\t隔开。当出现重码时,例如,编码ukjg对应三个词,“问题”一词的权重最大,会排在最前面。

必需文件

编码表

汉字对应的五笔编码。不同的版本(86版、98版和新世纪版)对应不同的编码表。我学的是新世纪版五笔,需要生成其它版本的码表时,替换编码表即可。码表部分内容如下:

工	a
工	aa
工	aaa
㠭	aaaa
工	aaaa
㐂	aaab
# 由于版权原因,后面的内容不展示

词频表

词频表是字词使用频率的信息,词频越高,字词越常见。词频表来自BLCU Chinese Corpuswebdict。BLCU的词频表很大很权威,分别统计自文学、新闻、博客、技术和微博语料,但合并的总表有问题。于是我自己将几个分表和webdict合并得到了一个总表,有超过150万个词。舍弃词频小于1000的词语,最后剩下141810个。词频表部分内容如下:

的	1017399760
了	269794532
在	214767971
.
. # 省略若干 
.
我们	44509105
.
. # 省略很多
.
文过饰非	3220
阎维文	3219
.
. # 省略很多
.
不如归去	1000
不合格率	1000
不入耳	1000

主要功能

扩充基础词库

以权威的词库(如QQ五笔、极点五笔等)为参考,添加其中的高频词汇,扩充基础词库。如果文件中的词汇在上面介绍的词频表中,则加入,否则忽略。使用方法如下:

RimeWubiDictMngr rwdm;

// 加载已有码表,可以从零开始
rwdm.loadMainDict("wubi06.dict.yaml");
// 扩充码表,ADD_HIGH表示只提取高频词(以词频表为依据),其它舍弃
rwdm.expandMainDict("qq_wubi.txt", RimeWubiDictMngr::ADD_HIGH);
// 保存码表到文件
rwdm.saveMainDict("all.txt");

添加自定义词组

添加用户自定义词组,例如朋友姓名、专业词汇等。如果文件中的词汇在上面介绍的词频表中,根据词频分配权重;如果不在,分配默认权重。使用方法如下:

RimeWubiDictMngr rwdm;

// 加载已有码表
rwdm.loadMainDict("wubi06.dict.yaml");
// 添加用户词汇,ADD_ALL表示提取文件中所有词汇
rwdm.expandMainDict("names.txt", RimeWubiDictMngr::ADD_ALL);
// 将添加进去的用户词汇单独保存
rwdm.saveUserDict("names.dict.txt");
// 保存总码表到文件
rwdm.saveMainDict("all.txt");
You can’t perform that action at this time.