Coder Social home page Coder Social logo

rimewubidictmngr's Introduction

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");

rimewubidictmngr's People

Contributors

panqiincs avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.