一种汉字输入方法

文档序号:6460336阅读:180来源:国知局
专利名称:一种汉字输入方法
技术领域
本发明涉及中文信息处理技术领域,具体地说是一种计算机的汉字输入方法。
背景技术
如何把汉字输入计算机一直是一个重要的问题。目前汉字输入的方法有很多,大致可 以分为两类 一类是对汉字进行编码,然后通过计算机输入设备(如键盘、鼠标等)将 汉字对应的编码输入计算机,以达到输入汉字的目的;另一类是使用模式识别的方法对手 写汉字、印刷汉字或汉字发音进行识别,从而把汉字输入计算机。尽管很多汉字模式识别 方法有很高的识别率,但是使用模式识别的方法输入汉字总会存在识别不准确的问题。使 用编码方式输入汉字,编码方式不同会导致汉字输入方法在输入效率、方法易用性等方面 产生极大差别。有的编码方法输入效率高,但不易使用,有的正好相反。在具有标准键盘 的计算机上,汉语拼音编码输入方法是使用最广泛的方法,其主要原因就是汉语拼音编码 方法简单易用。但是,由于受显示和输入设备尺寸的限制,在掌上电脑和手机等移动计算 机设备上,汉语拼音编码输入方法变得难于使用。在此类设备上使用最方便的汉字输入方 法是联机手写汉字模式识别方法,但模式识别方法总会存在识别不准确的问题,而且完整 地书写整个汉字本身就不是一种快捷的输入方法。

发明内容
本发明的目的是提供一种非常适合于在掌上电脑和手机等移动计算机设备上输入汉 字的汉字输入方法,该输入方法简单快捷。
本发明的汉字输入方法是将汉字编码为由横、竖、撇、捺(点)、折五种基本笔画 按照汉字笔画书写顺序构成的序列,通过将此汉字编码输入计算机以达到将汉字输入计算 机的目的。方法包括通过操作提示区(如附图4所示)进行操作提示的方法和使用定位 输入设备进行笔画输入的操作方法;操作提示通过笔画区(如附图5所示)和汉字候选区 (如附图3所示)来完成,根据操作提示,使用定位输入设备操纵光标在操作提示区域内 进行点击或画线操作,以完成基本笔画、辅助符号序列的输入;根据输入的序列,使用公 知的方法查找汉字字符的笔画书写顺序字典,找到对应的候选汉字,并按照汉字候选区(如 附图3所示)的位置和排列方式将候选汉字按使用频率从高到低的顺序排列在汉字候选区域的对应位置,同时使用不同的颜色标识出在候选区域内的汉字字形中当前已经输入的笔 画、正在输入的笔画、跳过的笔画和尚未输入的笔画;在候选汉字上进行点击或画线操作, 操作的结果为输入被操作的汉字。
笔画区(如附图5所示)由基本笔画区(如附图2所示)和辅助符号区(如附图l所 示)构成,基本笔画区由五个同样大小的扇形基本笔画块构成,各块呈中心对称分布,按 顺时针顺序依次对应"横"、"竖"、"撇"、"捺(点)"、"折"五种基本笔画(其中,"捺" 和"点"归为同一类基本笔画"捺"),分别使用符号"一"、"I "、 "乂 "、 " 、 "、 "7"来 标识,各块紧密连接,构成一个完整的环形区域。基本笔画区域用于笔画输入的提示,操 作基本笔画块"一",表示输入基本笔画"横";操作基本笔画块"I ",表示输入基本笔 画"竖";操作基本笔画块"7 ",表示输入基本笔画"撇";操作基本笔画块"、",表示 输入基本笔画"捺(点)";操作基本笔画块"7",表示输入基本笔画"折"。
辅助符号区用于辅助基本笔画输入功能的提示,辅助符号区包含对应"?"、 "*"、 "□"、 "■"、 五个符号的辅助块,其中"?"和"*"为统配符,"?"表示输入任意一个基
本笔画,"*"表示输入任意多个基本笔画,"□"表示清除当已经输入的基本笔画,重新 开始输入,"■"表示此前输入的笔画是末笔画,"表示删除刚输入的笔画。
在笔画区的提示下,使用定位输入设备在基本笔画区、辅助符号区和汉字候选区进行 操作的方法有(1)使用定位设备进行画线操作,若所画曲线通过基本笔画区中的各基本 笔画块,则该操作输入了该基本笔画块对应的基本笔画;若所画曲线通过辅助符号区中的 辅助块,则该操作输入了该辅助块代表的符号或表达的操作;若所画曲线通过汉字候选区 中的候选汉字块,则该操作输入了该汉字块代表的候选汉字;如果曲线在离开基本笔画块 后再次通过基本笔画块,则该操作再次输入对应的基本笔画;(2)使用定位设备点击基本 笔画区、辅助符号区或汉字候选区内部,表示输入了该区中对应的基本笔画或辅助符号区 表达的操作或对应的候选汉字;画线操作可以一次输入一个或多个基本笔画,点击操作一 次输入一个基本笔画,两种操作可以任意组合使用。
对笔画区进行操作,输入对应的基本笔画和辅助符号或辅助动作序列,使用输入的序 列,使用公知的方法査找汉字字符的笔画书写顺序字典,找到对应的候选汉字,将候选汉 字在汉字候选区内显示出来。显示候选汉字时,使用不同的颜色标识出在候选区域内的汉 字字形中当前已经输入的笔画、正在输入的笔画、跳过的笔画和尚未输入的笔画。
候选汉字区中候选汉字的位置与排列方式如附图3所示。汉字候选区包括九个候选汉字块(附图3中用数字l-9.标出了候选汉字块1-9的位置)和两个翻页块,所有候选汉字
块均为正方形区域,候选汉字块l位于汉字候选区中心,其余八个候选汉字块分布在候选
汉字块1的四个边周围,与候选汉字块1的各边紧密相连,边长为候选汉字块1的一半; 在候选汉字块1左边的是候选汉字块2和候选汉字块3,候选汉字块2在候选汉字块3的 下方;在候选汉字块1上边的是候选汉字块4和候选汉字块5,候选汉字块4在候选汉字 块5的左边;在候选汉字块1右边的是候选汉字块6和候选汉字块7,候选汉字块6在候 选汉字块7的上方;在候选汉字块1下边的是候选汉字块8和候选汉字块9,候选汉字土央
8在候选汉字块9的右边;汉字候选区的左下角和右下角分别设有"〈<"翻页块和"〉〉"
翻页块,分别用于向前翻页和向后翻页。
候选汉字分为两类与输入笔画完全匹配的候选汉字和与输入笔画部分匹配的汉字。
完全匹配和部分匹配的准确表述见实施例的代码片段1,其中"find—exact"方法为查找 完全匹配候选汉字的0++程序设计语言方法,"find"方法为査找部分匹配候选汉字的C++ 程序设计语言方法。每个候选汉字块中显示一个候选汉字,候选汉字按照以下排列顺序依 次显示在候选汉字块1-9中首先按照汉字使用频率从高到低的顺序列出完全匹配的汉字, 然后再按照汉字使用频率从高到低的顺序列出部分匹配的汉字;当候选汉字的数量大于九
时,候选汉字将被分页显示,汉字候选区的左下角的"〈<"翻页块和右下角的"〉>"翻页 块分别用于向前翻页和向后翻页。
按照汉字的书写笔画顺序输入汉字时,既可以按笔画顺序完整输入汉字的所有笔画, 也可以跳过部分笔画继续输入其余笔画,还可以对部分容易出错的笔画顺序进行容错处 理,允许同一个汉字对应多种笔画顺序。
与现有技术相比,本发明更加适合在掌上电脑、手机等小屏幕计算机上使用触笔输入 汉字,而且无需书写整个汉字,具有使用简单的优点。本发明也适用于一般的计算机设备。


图1为本发明的汉字输入方法的辅助符号区示意图。
图2为本发明的汉字输入方法的基本笔画区示意图。
图3为本发明的汉字输入方法的汉字候选区示意图,图中数字1-9标出了候选汉字块 1-9的位置。
图4为本发明的汉字输入方法的操作提示区示意图。 图5为笔画区示意图。图6为以"永"字为例,输入基本笔画时,用不同的颜色标识出在候选区域内的汉字 字形示意图。
图7为输入笔画"横"的操作以及该操作对应的汉字候选区的示意图。 图8为输入笔画序列"横"、"竖"的操作以及该操作对应的汉字候选区的示意图。 图9为输入笔画序列"横"、"竖"的另外一种操作以及该操作对应的汉字候选区的示 意图。
图10为输入笔画序列"横"、"竖"、"撇"、"捺"的操作以及该操作对应的汉字候选 区的示意图。
图11为输入笔画序列"横"、"横"、"竖"、"横"的操作以及该操作对应的汉字候选 区的示意图。
图7_图11为本发明在掌上电脑上的一种软件实现的屏幕截获图,该实现没有使用不 同颜色来标识汉字候选区中的汉字字形中的笔画。
具体实施例方式
使用本发明的汉字输入方法输入汉字的具体实施例如下
1. 在计算机显示设备上显示操作提示(或直接在输入设备的输入面板上事先印制操 作提示中的笔画区域),操作提示由笔画区域和汉字候选区域构成,笔画区域包括 基本笔画区(如附图2所示)和辅助符号区(如附图l所示);
2. 使用定位设备,如触笔、鼠标、压感笔、光笔等,操纵光标在显示设备的笔画区 域进行点击或画线操作,操作的痕迹实时地显示在对应的区域,如附图7至附图 11所示(如果笔画区域是事先印制在输入设备的输入面板上,则是操纵定位设备 在输入面板上的笔画区域进行操作,操作的痕迹不显示)。点击操作因具体的定位 设备的不同而略有差别,笔类型的定位设备的点击操作是指笔尖落下,接触到书 写面,然后抬起笔尖;鼠标类的定位设备的点击操作是指按下鼠标按钮,然后放 开鼠标按钮。对于笔类型的定位设备而言,画线操作是指笔尖落下,接触到书 写面,移动笔尖,然后抬起笔尖;鼠标类的定位设备的画线操作是指按下鼠标按 钮,移动鼠标光标,放开鼠标按钮。上述操作方式的实现方法是领域内公知的方 法。
3. 对基本笔画区的操作表示输入对应的基本笔画,例如附图7所示的操作为点击基 本笔画区"一",表示输入笔画"横";附图8和附图9所示的操作为画线操作,所画曲线通过基本笔画区"一"和"I ",表示输入笔画序列"横"和"竖";附图10 所示的操作为画线操作,所画曲线通过基本笔画区"一"、"I "、 " 7 "、"、",表示 输入笔画序列"横"、"竖"、"撇"和"捺";附图11所示的操作为画线操作,所画曲 线通过基本笔画区"一"、"一"、"I "、"一",表示输入笔画序列"横"、"横"、"竖" 和"横"。
4. 使用输入的笔画序列査找汉字字符的笔画书写顺序字典,査找出的汉字显示在汉 字候选区,如附图7、 8、 9、 10、 11所示。汉字字符的笔画书写顺序字典的实现 是本领域内公知的方法,查找字典的方法也是本领域内公知的方法,代码片段1 和2给出了一种实现方法。通过辅助符号区中"*"和"?"的使用以及在字典中 增加同一个汉字的不同笔画书写顺序,就可以按笔画顺序完整输入汉字的所有笔 画,也可以跳过部分笔画继续输入其余笔画,还可以对部分容易出错的笔画顺序 进行容错处理。"?"表示输入任意一个基本笔画,"*"表示输入任意多个基本笔 画,支持"?"和"*"的字典査找算法的标准〔++程序设计语言源程序代码见代 码片段1所示。
5. 将査找到的候选汉字在汉字候选区中进行显示,根据已经输入、正在输入和没有 输入的笔画,使用不同颜色在汉字候选区中显示的汉字字形中进行不同的标识, 以"永"字为例,见图6所示。在输入基本笔画"捺(点)"时,候选区中显示的
"永"字如图6中的左起第一个永字所示;继续输入基本笔画"折"时,候选区 中显示的"永"字如图6中的左起第二个永字所示;继续输入基本笔画"折"时,
候选区中显示的"永"字如图6中的左起第三个永字所示;继续输入基本笔画"撇" 时,候选区中显示的"永"字如图6中的左起第四个永字所示;继续输入基本笔
画"捺"时,候选区中显示的"永"字如图6中的左起第五个永字所示。 一种实
现上述功能的方法是为每个汉字制作所有可能的不同颜色的笔画字形数据,根 据输入的笔画,査找这些字形数据,找到相应的数据进行显示。以"永"字为例,
为"永"字制作好图6所示的五个字形数据,根据输入的笔画,选择对应的字形 数据进行显示。
6. 在汉字候选区进行点击或画线操作,选中的汉字即为需要输入的汉字。
代码片段1 (字典査找算法的标准0++程序设计语言源程序代码片段)//用于findjf,在str1中查找str2,如果找到,返回tme, //
//査找串str2中可以包含星号、用于匹配任意长度字符 // findDictltems为递归调用函数
〃每次以第一个^号为界,先査找左边的内容,找到后再对*号右边的内容进行递归 调用
//査找串str2中可以包含问号?,匹配一个任意字符 //
bool findDictltems(string str1, string str2) string s1,s2;
basic—string <char>::size—type indexCh1a, indexStar, indexQ;
〃使用静态变量控制开始査找的位置!确保s2位于s1后! static basic—string <char>::size_type index=0;
//査找串str2中可以包含星号^,用于匹配任意长度字符 indexStar = str2.find("*",0); ' if( indexStar != string: :npos)
//每次以第一个*号为界,先査找左边的内容s1,找到后再对*号右边的内容 s2进行递归调用
if( indexStar == 0) s1 =""; else s1 = str2.substr(0, indexStar曙1); if( (indexStar + 1) == string::npos) s2 =""; else s2 = str2.substr(indexStar + 1);
if(s1.length()>0)if(find隨ems(str1,s1))
//设置开始查找的初始位置,index为静态变量! index = str1.find(s1); index+=s1.length(); bool res;
if( s2.length() > 0)
〃对t号右边的内容s2进行递归调用 res = findDictltems(str1,s2);
else
res = true; index = 0;//重置静态变量index return res;
else
return false;
else
if( s2.length() > 0)
return findDictltems(str1 , s2);
else
return true;
else
//査找串str2中可以包含问号?,用于匹配长度为一的任意字符indexQ = str2.find(" ", 0);
if(indexQ != string ::npos)
string s1 = str2.replace(indexQ, 1, 'T') string s2 = str2.replace(indexQ, 1, "2") string s3 = str2,replace(indexQ, 1, "3") string s4 = str2.replace(indexQ, 1, "4") string s5 = str2.邻lace(indexQ, 1, "5"). return findDictltems(str1, s1) ||
findDictltems(str1,s2) || find隨ems(str1,s3) || findDictltems(str1 , s4) || findDictltems(str1, s5);
else
indexCh1a = str1.find (str2 , index); if (indexCh1a != string::npos) return true;
else
return false;
//
//査找字典,找出以str开头的候选汉字 //
string HZDic::find(string str, int & count)count = 0; string res ="";
vector<string>::iterator begin, end, location;
begin = dic_data[get_index(str
.begin(); end = dic_data[getjndex(st,,end(); location = begin;
while(location != end)
location = find—if(begin, end, bind2nd(ptr_fun(findDictltems), "["+str));
if( location == end) break;
res += location->substr(0,2);
begin = location + 1;
cotmt++;
if( count >= MAX_RETURN) return res; return res;
//
//査找字典,返回与str精确匹配的候选汉字 //
string HZDic::find—exact(string str, int & count)
int no = 0; string res ="";
vector<string>::iterator begin, end' location;begin = dic_data[getJndex(str
)I.begin(); end = dic_data[getjndex(str,.end(); location = begin; while(location != end)
location = findjf (begin, end, bind2nd(ptr一fun(findDictltems), "["+str+""));
if( location == end) break;
res += location->substr(0,2);
b印in = location + 1;
no++;
if( no >= MAX—RETURN - count)
count = no; return res;
count = no; return res;
代码片段2 (字典构造算法的标准0++程序设计语言源程序代码片段) int HZDic::getJndex(charc)
switch(c)
case '*': case' ':
case']': return 0;default: return c-'1';
//
//读入字典文件strokeinput.dic,构造字典数据结构
// 字典文件按汉字使用频度排序,包括六千多个汉字
// 每行形如"的[32511354"
//
HZDic::國c(void) charstr[40];
ifstream datafile("WwindowsWstrokeinput.dic"); if(datafile)
while(datafile.getline(str, 40》
dic_data[get_index(str[3)j.push_back(str);
datafile.close();
本发明中的笔画区域有多种实现方法, 一种实现方法是在计算机显示屏幕上绘制出笔 画区域,使用定位输入设备操纵光标在笔画区域上进行操作,操作的痕迹实时地显示在计 算机显示屏幕的笔画区域上。另外一种实现方法是不在计算机显示屏幕上绘制笔画区域, 笔划区域事先印制在定位输入设备的输入板上,操作在笔画区域上进行,操作痕迹不显示。 根据不同的情况,可以选择上述实现方法中的任意一种。在有的带有小尺寸显示设备的计 算机上,无法完整地显示整个操作提示区,这时第二种实现方法会非常有效。
本发明经使用表明,完全达到设计要求。
本发明不仅局限于上述实施例所限。
权利要求
1. 一种汉字输入方法,包括使用横、竖、撇、捺(点)、折五种基本笔画,按照汉字笔画书写顺序来输入汉字,根据输入的基本笔画序列,查找汉字字符的笔画书写顺序字典,找到对应的候选汉字,在候选汉字上进行点击或画线操作来输入汉字,其特征在于通过包括基本笔画区、辅助符号区和汉字候选区在内的操作提示区进行操作提示,使用定位输入设备在操作提示区进行操作,输入基本笔画或辅助符号序列,在汉字候选区选择被输入汉字。
2. 根据权利要求1所述的汉字输入方法,其特征在于基本笔画区由五个同样大小的 扇形基本笔画块构成,各块呈中心对称分布,按顺时针顺序依次对应"横"、"竖"、"撇"、"捺(点)"、"折"五种基本笔画,分别使用符号"一"、"I "、 " 7 "、 " 、 "、 " 7 "来标 识,各块紧密连接,构成一个完整的环形区域。
3. 根据权利要求1所述的汉字输入方法,其特征在于辅助符号区包含对应"?"、 "*"、 "□"、 "■"、 五个符号的辅助块,"?"和"*"为通配符,"?"表示输入任意一个基本笔画,"*"表示输入任意多个基本笔画,"□"表示清除当已经输入的基本笔画,重 新开始输入,"■"表示此前输入的笔画是末笔画,"表示删除刚输入的笔画。
4. 根据权利要求1所述的汉字输入方法,其特征在于使用定位输入设备在基本笔画 区、辅助符号区和汉字候选区进行操作的方法有(1)使用定位设备进行画线操作,若所 画曲线通过基本笔画区中的各基本笔画块,则该操作输入了该基本笔画块对应的基本笔 画;若所画曲线通过辅助符号区中的辅助块,则该操作输入了该辅助块代表的符号或表达 的操作;若所画曲线通过汉字候选区中的候选汉字块,则该操作输入了该汉字块代表的候 选汉字;如果曲线在离开基本笔画块后再次通过基本笔画块,则该操作再次输入对应的基 本笔画;(2)使用定位设备点击基本笔画区、辅助符号区或汉字候选区内部,表示输入了 该区中对应的基本笔画或辅助符号区表达的操作或对应的候选汉字;画线操作可以一次输 入一个或多个基本笔画,点击操作一次输入一个基本笔画,两种操作可以任意组合使用。
5. 根据权利要求1所述的汉字输入方法,其特征在于按照汉字的书写笔画顺序输入 汉字时,既可以按笔画顺序完整输入汉字的所有笔画,也可以跳过部分笔画继续输入其余 笔画,还可以对部分容易出错的笔画顺序进行容错处理,允许同一个汉字对应多种笔画顺 序。
6. 根据权利要求1所述的汉字输入方法,其特征在于汉字候选区包括九个候选汉字块和两个翻页块,所有候选汉字块均为正方形区域,候选汉字块1位于汉字候选区中心, 其余八个候选汉字块分布在候选汉字块1的四个边周围,与候选汉字块1的各边紧密相连, 边长为候选汉字块1的一半;在候选汉字块1左边的是候选汉字块2和候选汉字块3, {疾 选汉字块2在候选汉字块3的下方;在候选汉字块1上边的是候选汉字块4和候选汉字t央 5,候选汉字块4在候选汉字块5的左边;在候选汉字块1右边的是候选汉字块6和候选 汉字块7,候选汉字块6在候选汉字块7的上方;在候选汉字块1下边的是候选汉字块8 和候选汉字块9,候选汉字块8在候选汉字块9的右边;汉字候选区的左下角和右下角分 别设有"<<"翻页块和">〉"翻页块,分别用于向前翻页和向后翻页。。
7. 根据权利要求1或6所述的汉字输入方法,其特征在于候选汉字分为两类与输 入笔画完全匹配的候选汉字和与输入笔画部分匹配的汉字;每个候选汉字块中显示一个候 选汉字,候选汉字按照以下排列顺序依次显示在候选汉字块l-9中首先按照汉字使用频率从高到低的顺序列出完全匹配的汉字,然后再按照汉字使用频率从高到低的顺序列出部分匹配的汉字;当候选汉字的数量大于九时,候选汉字将被分页显示,汉字候选区的左下 角的"〈〈"翻页块和右下角的"〉〉"翻页块分别用于向前翻页和向后翻页。
8. 根据权利要求1或7所述的汉字输入方法,其特征在于在候选汉字区中使用不同 的颜色标识出候选汉字字形中当前已经输入的笔画、正在输入的笔画、跳过的笔画和尚未 输入的笔画。
全文摘要
本发明是一种汉字输入方法。包括使用横、竖、撇、捺(点)、折五种基本笔画,按照汉字笔画书写顺序来输入汉字,根据输入的基本笔画序列,查找汉字字符的笔画书写顺序字典,找到对应的候选汉字,在候选汉字上进行点击或画线操作来输入汉字,其特征在于通过包括基本笔画区、辅助符号区和汉字候选区在内的操作提示区进行操作提示,使用定位输入设备在操作提示区进行操作,输入基本笔画或辅助符号序列,在汉字候选区选择被输入汉字。方法尤其适合在掌上电脑、手机等小屏幕计算机上使用触笔输入汉字,具有使用简单,无需书写整个汉字的优点。
文档编号G06F3/023GK101286097SQ200810058479
公开日2008年10月15日 申请日期2008年6月2日 优先权日2008年6月2日
发明者霖 施 申请人:昆明理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1