具体实施方式
本发明实施例,提供了一种自动为汉字添加拼音的方法及装置。对于选定的需要添加拼音的文字中每两个相邻的非汉字字符之间的汉字,通过将其分别与预先设置的词库中的词或字库中的字进行匹配,以得到需要添加的拼音,从而在不进行分词的情况下达到与分词后再加拼音同样的准确率,提高为汉字添加拼音的效率。
下面结合附图,说明本发明的具体实施方式。
参见图1,本发明实施例提供的自动为汉字添加拼音的方法包括:
S101、在文字小样部分,提供给每个汉字设置拼音的入口。将拼音作为汉字的辅助部分,如果该汉字没有或者不需要添加拼音,则该辅助存储部分为空。当用户使用自动为汉字添加拼音的功能时,读取字符的指针从被选定的文字部分的第一个字符开始,依次读取字符。
例如,参见图2,用户选定的文档部分为“2007年的新年钟声已经敲响。在这辞旧迎新的美好时刻”,则指针从数字字符“2”开始读取字符,直到最后一个字符“刻”。
S102、将连续的两个非汉字字符之间的汉字添加到汉字数组中。
具体地,判断读取到的字符是否是汉字字符,如果是,则将汉字字符收集到汉字数组中;否则,此次收集结束,对汉字数组执行步骤S103。
S103、判断汉字数组中没有加拼音的汉字个数,如果不为零,则将汉字数组中第一个还没有加拼音的汉字到最后一个汉字作为是一个词语,从第一个还没有加拼音的汉字开始,逐个在预先设置的词库或字库中进行匹配,将匹配到的字的拼音添加给汉字数组中的相应汉字;若为零,则继续读取下一个字符,重新收集一组汉字到汉字数组中。
例如,参见图2,先将汉字“年的新年钟声已经敲响”收集到了汉字数组中,并对“年的新年钟声已经敲响”分别添加拼音。然后利用“在这辞旧迎新的美好时刻”去更新汉字数组中收集的“年的新年钟声已经敲响”,并对“在这辞旧迎新的美好时刻”分别添加拼音。
预先设置的词库中,包括组成各个词的汉字所对应拼音。
较佳地,可以根据需要设置多个优先级不同的词库,例如,将用户经常用到的词及其相应的拼音设置为第一优先级词库,将其他普通词及其相应的拼音设置为第二优先级词库。先从第一优先级词库开始匹配,如果没有匹配上,再对第二优先级词库中的词进行匹配。
在进行词匹配操作时,包括完全匹配和部分匹配两种情况。所述完全匹配,就是说汉字数组中的连续的多个汉字所组成的词,与词库中存储的某一个词完全匹配。所述部分匹配,是指汉字数组中的连续的多个汉字所组成的词,与词库中存储的某一个词只匹配上了一部分。例如,词库中存储的词有“新年快乐”,汉字数组中的连续的两个汉字为“新年”,下一个汉字不是“快”,所以,只与“新年快乐”中的两个字匹配上了,此时从词库中读取“新年快乐”中的“新年”两个字的拼音,分别添加给汉字数组中的“新年”。
完全匹配和部分匹配都认为词匹配操作是成功的。如果在词库中没有匹配成功时,则对预先设置的字库中的字进行匹配。
预先设置的字库中,包括各个汉字的拼音,并且,按照使用的频率,为多音字设置了具有不同优先级的多个拼音,可以在为汉字选择拼音的时候,选择优先级最高的拼音,作为该汉字的拼音。
参见图3,本发明实施例中,步骤S103为汉字数组中的汉字添加拼音的具体操作包括以下步骤:
S301、计算当前能和词库中的词匹配上的汉字数组中的连续的多个汉字的数目,本发明实施例中称之为最大匹配汉字个数。
较佳地,先计算第一优先级词库中的最大匹配汉字个数,如果小于或等于1,说明在第一优先级词库中没有完全匹配或部分匹配的词,需要检索第二优先级词库,计算相应的最大匹配汉字个数,如果还是小于或等于1,说明在第二优先级词库中也没有完全匹配或部分匹配的词,需要进一步在字库中进行匹配。
S302、判断最大匹配汉字个数是否大于1,如果是,则执行步骤S303;否则,执行步骤S304。
S303、从词库中读取词匹配操作成功的词的拼音,结合汉字数组中匹配上的各个汉字的编码以及该汉字在汉字数组中的索引位置,添加相应的拼音给汉字数组中的相应汉字。
S304、从字库中读取字匹配操作成功的汉字的拼音添加给汉字数组中的相应汉字。
较佳地,步骤S303具体包括:
第一步:根据最大匹配汉字个数,查找第一优先级词库,将匹配上的词所对应的汉字的拼音添加给汉字数组中的相应汉字。
第二步:当在第一优先级词库中没有查找到相应的词时,即此次最多在第一优先级词库中匹配成功了汉字数组中的一个汉字,或者一个汉字都匹配不上时,则根据最大匹配汉字个数,查找第二优先级词库,将匹配上的词所对应的汉字的拼音添加给汉字数组中的相应汉字。
步骤S304如果在字库中也匹配失败,即没有找到相应汉字,则此汉字不加拼音。
如果被匹配上的汉字不是汉字数组中的最后一个汉字,则从汉字数组中匹配上的汉字的下一个汉字开始继续执行步骤S301,即继续从第一优先级词库开始进行匹配。如此循环,直到对汉字数组中的汉字添加拼音完成时,清除汉字数组中的汉字,并继续收集下两个连续的非汉字字符之间的汉字,重复上述匹配及添加拼音的操作。
例如,参见图2,首先被收集到汉字数组中的汉字为“年的新年钟声已经敲响”,则从第一个汉字“年”开始从词组中匹配,“年”被匹配上了,例如词组中有“年轻”,但是,在对下一个汉字“的”进行匹配时,却匹配不上,因为词库中没有“年的”,所以“年”和“的”这两个汉字都要在字库中进行匹配,并取得相应拼音。后续的“新年”、“钟声”、“已经”和“敲响”均可以在词库中匹配上,则均从词库中取得相应的拼音。对汉字数组中的所有汉字进行的匹配和添加拼音的操作结束后,继续读取下一字符,将“在这辞旧迎新的美好时刻”收集到汉字数组中,并以此更新汉字数组中的汉字。继续对汉字“在这辞旧迎新的美好时刻”进行上述匹配和添加拼音的操作。参见图4,为采用本发明实施例提供的方法实现的为汉字自动添加拼音的效果示意图。当然,采用本发明实施例提供的方法也可以实现为用户选定的若干段落的文档添加拼音。例如,图5为用户选定的需要添加拼音的段落的示意图。参见图6,为采用本发明实施例提供的方法实现的为用户选定的若干段落添加拼音的效果示意图。
由于字词间具有一定的搭配规律,也就是短语语法关系,因此,较佳地,步骤S304中,当从字库中取出多音字的拼音对汉字数组中的单个字添加拼音时,需要进行语境分析,依据词性判断它和前后词条的搭配关系,以排除不具有搭配关系的字音。该分析是建立在汉字字词语法关系的数字描述基础上的。例如,字或者词具有搭配关系,则认为存在搭配关系R;否则,认为不具有搭配关系。
假设可以构成搭配关系的两个字或词分别为A和B,它们的搭配关系为R,则描述短语=[A][B]的关系为R。
预先设定各种词性的表示方式:名词N;动词V;形容词A;数词M;量词Q;代词R;副词D;介词P;连词C;助词H;语气词T;拟声词L。
字词间的短语语法关系一般包括:名词短语NP;动词短语VP;形容词短语AP;副词短语DP;介词短语PP。
则根据汉语语法规律,短语语法关系R可被描述为以下一种短语:
1、名词短语:
NP=[N];
NP=[NP][NP];
NP=[AP][NP];
NP=[NP][C][NP];
NP=[NP]的[NP];
NP=[VP]的[NP];
NP=[PP]的[NP]。
2、动词短语:
VP=[V];
VP=[DP][VP];
VP=[VP][C][VP]。
3、形容词短语:
AP=[A]|[M]|[Q]|[R];
AP=[AP][AP];
AP=[DP][AP];
AP=[AP][C][AP]。
4、副词短语:
DP=[D]地;
DP=[DP][DP]。
5、介词短语:
PP=[P];
PP=[P][NP]。
由于经过词库匹配后,从字库中取多音字拼音的情况已经很少,因此在对多音字进行匹配的过程中,结合字或词的词性,依据以上汉语语法规则,对多音字的拼音进行条件推理,可以准确地取得多音字的合适拼音。而对于非多音字,直接读取它的拼音即可。
因此,较佳地,词库中除了存储词的拼音外,还存储了相应的词性;同时,字库中除了存储字的拼音外,也存储了相应的词性。
步骤S303中,从词库中读取相应拼音添加给相应的汉字的同时,记录匹配上的由汉字数组中连续的多个汉字组成的词的词性,因为这个词的前一个和/或后一个字有可能是多音字,需要进一步通过前后词的词性和短语搭配关系来校验该多音字的拼音。
步骤S304中,对于多音字,结合前后词的词性,按照前述的短语语法规则来确定合适的拼音。例如:“简单地陈述”是一个副词短语,在词库中读取“简单”两个字的拼音添加给汉字数组中的“简单”的同时,记录它的词性为形容词或者副词,那么,在字库中为它后面的字“地”读取拼音时,能得到有“de”(助词或者连词)和“di”(名词)两个拼音,但是,根据语法规则只有副词短语和形容词短语是形容词或者副词加助词或者连词构成时,取“de”音,因此,此处取“地”的拼音为“de”。
如果前一个词组和当前的多音字构成短语搭配关系,就按照构成的短语类型来判定多音字的相应拼音。如果某多音字前面无词或者前面的词不和它构成短语关系,那么同理可以通过它的后一个词语校验它的拼音。如果一个多音字和它前面的词语依据短语语法规则能构成多种短语,那么结合它后面的词语来完成判定。从而采用本发明实施例提供的方法为汉字添加拼音时,可以在不分词的情况下达到分词同样的效果,在保证准确率的前提下高效地匹配当前汉字字符的相应拼音。
综上所述,本发明采用的方法,通过在不同的优先级词库中进行匹配的操作,利用词库中已经存在的整个词或者词的一部分不断将汉字数组中所保存的一个句子拆分成词,因而,本发明将分词和匹配两个过程一次完成。另外,基于词匹配操作添加拼音时,如果匹配上的词中含有多音字,则采用词匹配方法可以保证为该多音字添加拼音的准确率。因此,本发明在保证准确率的前提下,实现的自动为汉字添加拼音的操作具有省时、省力、高效的优点。并且,本发明可以自动地为大数据量的汉字添加拼音,在不进行分词的情况下达到与分词后再加拼音同样的准确率。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。