汉字输入的过程是通过编码查汉字,反查编码的过程一般都是因为不知道汉字怎么输入。比如知道全拼但不知道双拼怎么拼,或知道怎么写但不知道怎么读。
一般知道全拼是可以通过码表还原出双拼,如果不知道怎么读,我们很难去获取汉字的读音。
此时可以在获取汉字的情况下通过汉字反查拼音。一般可以通过五笔或手写输入法获取汉字,然后在字典中查汉字。
这里推荐一个查拼音和五笔的小工具:
https://github.com/hyang0/wubi
使用方法:
pip install -r requirement.txt
python wubi.py 微软 双拼
汉字: 微软
拼音: wei ruan
双拼: wz rr
五笔: tmgt lqwy
汉字: 双拼
拼音: shuang pin
双拼: ud pn
五笔: ccy ruah
在命令行输入待查的汉字,可以得到汉字的全拼、双拼、五笔编码。
工具的命令行帮助为:
$ python wubi.py -h
usage: wubi.py [-h] [--wubi_file WUBI_FILE]
FILE or character [FILE or character ...]
汉字拼音和五笔编码查询工具
positional arguments:
FILE or character 文件路径或要转换的汉字
options:
-h, --help show this help message and exit
--wubi_file WUBI_FILE
五笔编码文件路径,默认为 wubi86.dict
除了可以在命令行查汉字,也支持处理文件。项目目录下有百家姓、常用汉字3500字、常用7000字。 支持多文件输入:
$ python wubi.py 百家姓.txt 3500.txt 7000.txt
查双拼码的过程是先查汉字的拼音,再将拼音转双拼。这里用到的双拼方案是微软双拼。微软双拼与自然码双拼非常相似,二者稍作转换即可适配。
微软双拼码字典映射为:
first_wr = {'ch': 'i',
'sh': 'u',
'zh': 'v'}
second_wr = {
'ua': 'w',
'ei': 'z',
'e': 'e',
'ou': 'b',
'iu': 'q',
've': 'v',
'ue': 't',
'u': 'u',
'i': 'i',
'o': 'o',
'uo': 'o',
'ie': 'x',
'a': 'a',
'ong': 's',
'iong': 's',
'ai': 'l',
'ing': ';',
'uai': 'y',
'ang': 'h',
'uan': 'r',
'an': 'j',
'en': 'f',
'ia': 'w',
'iang': 'd',
'uang': 'd',
'eng': 'g',
'in': 'n',
'ao': 'k',
'v': 'v',
'ui': 'v',
'un': 'p',
'iao': 'c',
'ian': 'm'
}
# 特殊,只有䪨母,且总长不过 3
# 零声母,单双三䪨母
special_wr = {
'a': 'oa',
'ai': 'ol',
'an': 'oj',
'ang': 'oh',
'ao': 'ok',
'e': 'oe',
'ei': 'oz',
'en': 'of',
'er': 'or',
'o': 'oo',
'ou': 'ob'
}
全文完。
如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。
原文始发于微信公众号(生有可恋):通过汉字反查双拼
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论