百度五笔在安卓,苹果上都有98版五笔输入的选项。但是可能是因为王码持有版权,所以Windows上的百度五笔并不支持98版五笔。我非常支持正版产品,本人也购买了王码公司的正版产品。但是无奈王码的产品实在是令人失望,购买的产品只能在3台电脑上注册,抛开这点限制不说,其产品的兼容性非常的差,在Windows 10上使用经常会导致崩溃,并且标点符号也不支持中英自动切换。在更换了3台设备之后,我实在不想再购买王码公司的产品。因此我开始寻找王码五笔的替代方案。

很幸运的是,我在百度贴吧上找到了合适的98版五笔的词库(感谢maplecee提供的资源)。可以将这个词库转化为百度五笔的自定义词库再导入,实现百度五笔在Windows上对98版五笔的支持。实现转换的代码如下:

import codecs
import re

with codecs.open('wubi98.txt', 'r', 'utf8') as infile:
    lines = infile.readlines()

    dict = {}

    for line in lines:
        line = re.sub('\s{1,}', ' ', line)
        line = line.strip(' ')

        if len(line) == 0:
            continue
        lineList = line.split(' ')
        assert len(lineList) > 1

        if lineList[0] not in dict:
            dict[lineList[0]] = []

        targetList = dict[lineList[0]]
        for word in lineList[1:]:
            if word not in targetList:
                targetList.append(word)

    output = ''
    for key, val in dict.items():
        char = []
        word = []
        for item in val:
            if len(item) > 1:
                word.append(item)
            else:
                char.append(item)

        wordSortKey = lambda s : len(s)
        itemSortKey = lambda c : ord(c)
        #char.sort(key = wordSortKey)
        word.sort(key = wordSortKey)

        allOut = char + word
        allOut.reverse()
        for item in allOut:
            output += '{}\t{}\n'.format(key, item)

    with codecs.open('result.txt', 'w', 'utf8') as outfile:
        outfile.write(output)

最终输出的文件如下所示。

下载文件

注:本词库仅为算法设计所生成的附带产品,仅供学习及研究使用。若对版权有任何侵犯,请与我联系。我将立即删除。