众所周知,中文输入法是一个历史悠久的问题,但也实在是个繁琐的活,不知道这是不是网上很少有人分享中文拼音输入法的原因,接着这次NLP Project的机会,我觉得实现一发中文拼音输入法,看看水有多深,结果发现还挺深的,但是基本效果还是能出来的,而且看别的组都做得挺好的,这次就分 享一下我们做的结果吧。 (注:此文假设读者已经具备一些隐马尔可夫模型的知识)
任务描述
实现一个中文拼音输入法。
经过分析,分为以下几个模块来对中文拼音输入法进行实现:
- 核心功能包括拼音切分(SplitPinyin.py)
- HMM模型训练(TrainMatrix.py)
- Trie树构建与搜索接口实现(PinyinTrie.py)
- 维特比算法实现以及提供给UI的服务接口(GodTian_Pinyin.py)
- 最后的UI实现(gui.py)
技术路线
在中文拼音输入法中,我们需要完成拼音序列到汉字序列的转换,比如输入“nihao”,输入法会给出我们想输入的字“你好”,到这里我们就可以问出几个问题:
- **如何切分拼音? **
如: 用户输入”xiana”, 输入法应该判断用户想输入”xian a”(