一种拼音自动识别方法及系统
技术领域
本发明属于计算机技术领域,尤其涉及一种拼音自动识别方法及系统。
背景技术
拼音输入法是目前广泛使用的一种输入法,用户在使用拼音输入法进行拼音的输入时,由于各种原因使得用户输入错误的拼音,例如由于用户对键盘的按键不熟悉或键盘本身按键设计太过于相近,使得用户按错按键,或者由于用户汉字发音不正确,使得拼音输入错误,例如,平舌音和翘舌音的错误等。现有技术对用户输入的拼音的识别,主要通过预先存储错误拼音和正确拼音的对应关系,输出正确的拼音,从而完成拼音的识别。然而用户输入拼音的错误是不确定的,不可能预先存储所有错误拼音,另外,不同上下文中拼音是否正确并不是确定的,例如,“fen’shu’xian”(分数线)被写成“fen’su’xian”,若单独考虑,则拼音“su”并不是一个错误的拼音,然而考虑到其所在的上下文则“su”为一个错误的拼音。因此,现有技术无法提供一种有效的拼音识别方法从用户输入的字符中(正确的拼音或错误的拼音)准确地识别出符合上下文要求的拼音,导致拼音输入效率低,用户体验差。
发明内容
本发明实施例的目的在于提供一种拼音自动识别方法及系统,旨在解决由于现有技术无法提供一种有效的拼音识别方法从用户输入的字符中识别出正确且符合上下文的拼音,导致拼音输入效率低,用户体验差的问题。
本发明实施例是这样实现的,一种拼音自动识别方法,所述方法包括下述步骤:
对用户输入的拼音串进行切分,获得切分后的拼音串;
获取切分后的拼音串中拼音的映射关系的映射概率,所述映射关系包括一元映射关系和/或多元映射关系;
根据所述映射概率,识别出与用户输入的拼音串存在映射关系的拼音串。
本发明实施例的另一目的在于提供一种拼音自动识别系统,所述系统包括:
拼音串切分单元,用于对用户输入的拼音串进行切分,获得切分后的拼音串;
映射概率获取单元,用于获取切分后的拼音串中拼音的映射关系的映射概率,所述映射关系包括一元映射关系和/或多元映射关系;以及
拼音串识别单元,用于根据所述映射概率获取单元获取的映射概率,识别出与用户输入的拼音串存在映射关系的拼音串。
本发明实施例通过对用户输入的拼音串进行切分,获取切分后的拼音串中拼音的映射关系的映射概率,该映射关系包括一元映射关系和/或多元映射关系,并根据获取的映射概率,识别出与用户输入的拼音串存在映射关系的拼音串,本发明实施例采用映射关系的映射概率来表示两个拼音串存在映射关系的可能性,而多元映射关系的使用使得系统能够从用户输入的字符中准确地识别出符合上下文的拼音,及时地向用户提供识别后的正确的拼音,从而提高了用户输入的拼音的识别准确度,有效地提高了拼音的输入效率。
附图说明
图1是本发明第一实施例提供的拼音自动识别方法的实现流程图;
图2是本发明第二实施例提供的映射表的映射关系添加步骤的实现流程图;
图3是本发明第三实施例提供的拼音自动识别方法的实现流程图;
图4是本发明第四实施例提供的拼音自动识别系统的结构图;
图5是本发明第五实施例提供的拼音自动识别系统的结构图;
图6是本发明第六实施例提供的拼音自动识别系统的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,采用映射关系的映射概率来表示两个拼音串存在映射关系的可能性(相似度),而多元映射关系的使用使得系统能够从用户输入的字符中准确地识别出符合上下文的拼音,及时地向用户提供识别后的正确的拼音,从而提高了用户输入的拼音的识别准确度,有效地提高了拼音的输入效率。
以下结合具体实施例对本发明的具体实现进行详细描述:
实施例一:
图1示出了本发明第一实施例提供的拼音自动识别方法的实现流程,详述如下:
在步骤S101中,对用户输入的拼音串进行切分,获得切分后的拼音串。
在本发明实施例中,当用户通过输入设备输入汉字拼音串时,根据汉字音节的字义和组成结构对拼音串进行切分,获得切分后的拼音串,进而获取切分后的拼音串的每个切分位置的拼音的映射关系的映射概率,。具体地,可以利用相应的拼音切分工具对输入的拼音进行切分,例如,当用户输入拼音串为“dahuashueihu”时,切分的结果为“’da’hua’shu’ei’hu’”,该切分结果包括六个切分位置,“da”之前的起始切分位置,“da”和“hua”之间的第一切分位置,“hua”和“shu”之间的第二切分位置,“hu”之后的最终切分位置等。
在步骤S102中,获取切分后的拼音串中拼音的映射关系的映射概率,该映射关系包括一元映射关系和/或多元映射关系。
在本发明实施例中,预先建立一映射表,用于存储拼音与拼音或多个拼音与多个拼音的映射关系,以及映射关系对应的映射概率(存在映射关系的概率)。具体地,映射关系可以分为一元映射关系和多元映射关系,例如(“da”,“dai”)为一个“da”到“dai”的一元映射关系,(“shu’er’”,“shui”)为“shu’er’”到“shui’”的二元映射。映射关系的映射概率为:其中P(a,b)表示a到b的映射关系,count(a,b)表示获取的映射关系a到b的数量,count(a,qi)为映射关系a到qi的数量,n为映射a为原象的映射关系的总数。
在步骤S103中,根据步骤S102中获取的映射概率,识别出与用户输入的拼音串存在映射关系的拼音串。
在本发明实施例中,在步骤S102中获得了切分后的拼音串中拼音的映射关系的映射概率,即获得了由用户输入的拼音串中的拼音构成的一元映射或多元映射的概率,从而将与用户输入的拼音串存在映射关系的拼音串的识别转换为最优值求解过程,从而可以通过预设的最优值求解算法确定与用户输入的拼音串存在映射关系的拼音串。具体地,可以采用遗传算法、神经网络和动态规划算法等实现与用户输入的拼音串存在映射关系的拼音串的识别,具体实施过程中在后续实施例中进行描述。
实施例二:
用户输入的拼音串以及点击确定后输入的汉字字符串或拼音串,构成一个纠错对,例如,当用户在搜索引擎中输入拼音串“shanguoyanyi”时,若搜索引擎提供“三国演义”,用户点击确定输入“三国演义”,则(“shanguoyanyi”,“三国演义”)构成一个纠错对,纠错对实质上体现了一个映射关系。
在本发明实施例中,预先由存储的纠错对获取对应的拼音串对,通过对拼音串对中的拼音进行划分和扩展,采用预设映射概率求解公式计算出由拼音串中的拼音获得的映射关系的映射概率。
图2示出了本发明第二实施例提供的映射表的映射关系添加步骤的实现流程,详述如下:
在步骤S201中,获取预先存储的包括第一拼音串以及与第一拼音串对应的中文字符串的纠错对。
在本发明实施例中,纠错对可以从搜索引擎的搜索日志中获得,也可以从其它具有存储用户输入拼音和点击选择的中文字符串记录的应该系统中获得,在此不用以限制本发明。较优地,可以从搜索引擎的搜索日志中获取。其中第一拼音串为用户输入的拼音串,中文字符串为用户点击选择的中文字符串。
在步骤S202中,对中文字符串进行注音,将获得的中文字符串的拼音串设置为第二拼音串。
在本发明实施例中,通过对纠错串中中文字符串进行注音,将获得的中文字符串的拼音串设置为第二拼音串。例如纠错串(“shanguoyanyi”,“三国演义”),其中“shanguoyanyi”为第一拼音串,“三国演义”为中文字符串,对该中文字符串进行注音后,得到“sanguoyanyi”的第二拼音串。
在步骤S203中,对第一拼音串和第二拼音串进行切分,获取切分后的第一拼音串中的拼音与切分后的第二拼音串中的拼音的映射关系。
在本发明实施例中,对第一拼音串和第二拼音串进行切分后,通过字符串编辑距离算法建立切分后的第一拼音串和第二拼音串中拼音的映射关系。例如,通过字符串编辑距离算法获得纠错串(“shanguoyanyi”,“三国演义”)中的一元映射关系(“shan”,“san”)、(“guo”,“guo”)和(“yan”,“yan”)等,通过对这些一元映射关系进行扩展可获得二元映射关系,三元映射关系等多元映射关系。具体地,由上述一元映射关系扩展得到的二元关系有(“shan’guo”,“san’guo”)和(“guo’yan’”,“guo’yan”)等。在本发明实施例中可预设映射关系最多可扩展的元数,扩展的元数表明了映射关系原象中包括的切分后的拼音数目,例如,可以限定只扩展到三元映射关系,从而在降低计算量的情况下提高映射的准确度,提高拼音在上下文中的识别准确度。
在步骤S204中,计算映射关系的映射概率,将映射关系和映射关系对应的映射概率添加到映射表。
在本发明实施例中,映射关系的映射概率为:其中P(a,b)表示a到b的映射关系,count(a,b)表示获取的映射关系a到b的数量,count(a,qi)为映射关系a到qi的数量,n为映射关系中a为第一拼音串(原象)的映射关系的总数。通过上述公式计算出每一个映射关系(包括一元映射关系和多元映射关系)的映射概率,将映射关系和该映射关系对应的映射概率添加到预先建立的映射表中,提供了将用户输入的拼音串映射到最终端识别出的拼音串的概率(代价),简化了用户输入的拼音串的识别过程,同时,通过对一元映射关系进行扩展获得多元映射关系,使得后续拼音串的识别能够根据上下文进行选择,提高了拼音串的识别准确率。
实施例三:
在本发明实施例中,选择动态规划算法进行与用户输入的拼音串存在映射关系的拼音串的识别,从而大大简化了用户输入的拼音串的识别过程的计算量,提高了拼音串的识别效率。
图3示出了本发明第三实施例提供的拼音自动识别方法的实现流程,详述如下:
在步骤S301中,对用户输入的拼音串进行切分,获得切分后的拼音串。
在步骤S302中,获取切分后的拼音串的每个切分位置的拼音的映射关系的映射概率,映射关系包括一元映射关系和/或多元映射关系。
在本发明实施例中,切分后的拼音串的每个切分位置的拼音的映射关系,包括该位置的拼音的一元映射关系,以及以该一元映射关系为基础进行逆向扩展后获得的多元映射关系,例如在切分后的拼音串“’da’hua’shu’ei’hu’”的最终切分位置上的一元映射关系为(“hu”,“hu”),扩展的二元映射关系为(“er’hu’”,“er’hu’”),三元映射关系为(“shu’ei’hu’”,“shu’ei’hu’”)和(“shu’ei’hu’”,“shui’hu’”)。获得切分后的拼音串的每个切分位置的拼音的映射关系后,根据获得的映射关系从存储的映射表中获取映射关系对应的映射概率。
在步骤S303中,通过预设的最优值求解算法确定与用户输入的拼音串存在映射关系的拼音串。
在本发明实施例中,根据获取的映射关系的映射概率,较优地,采用动态规划算法确定与用户输入的拼音串存在映射关系的拼音串。具体地:
(1)计算当前切分位置(i-k)到切分位置i且输入为第j个映射关系时的路径值Pi-k,j=maxPi×Pj,其中maxPi表示切分位置i到最终切分位置的最短路径值,Pj表示获取的第j个映射关系的映射概率,k表示切分位置i获取maxPi时对应的映射关系的元数。
(2)从最终切分位置进行回溯,根据计算得到的路径值Pi-k,j=maxPi×Pj,获取最终切分位置到初始切分位置的最短路径值。
(3)将步骤(2)中获取最短路径值时输入的映射关系中被映射的拼音串设置为与用户输入的拼音串存在映射关系的拼音串。
在本发明实施实例中,以用户输入的拼音串为“’da’hua’shu’ei’hu’”(切分后的拼音串)为例描述用户输入的拼音串对应的拼音串的识别过程,如表1如示,其中P0、P1、P2、P3、P4以及P5分别表示切分位置起始切分位置,第一切分位置、第二切分位置、第三切分位置、第四切分位置以及最终切分位置存在的映射关系的映射概率。
表1:
表1中每一列描述了切分位置的各个映射关系的映射概率(以及对应的映射关系),其中包括一元映射关系以及以一元映射为基础进行扩展的多元映射关系的映射概率。在本发明实施例中,预先设置多元映射关系最高为三元映射关系。P5表示在最终切分位置的映射关系的映射概率:P5(shu′ei′hu,shu′ei′hu)、P5(shu′ei′hu,shui′hu)、P5(ei′hu,ei′hu)以及P5(hu,hu)。P4表示在第四切分位置的映射关系的映射概率:P4(hua′shu′ei,hua′shu′ei)、P4(hua′shu′ei,hua′shui)、P4(shu′ei,shui)、P4(shu′ei,shu′ei)和P4(ei,ei)。若P5中最大值为P5(shu′ei′hu,shui′hu),则对应的映射关系为(shu′ei′hu,shui′hu),因为该映射关系为三元映射关系,则向前回溯三个切分位置,根据P5中最大值(即maxP5)以及公式Pi-k,j=maxPi×Pj,求取第二切分位置映射关系的P2的值:P2,j=maxP5×Pj,若P2中最大值为P2(da′hua,da′hua),则对应的映射关系为(da′hua,da′hua),因为该映射关系为二元映射关系,则向前回溯二个切分位置,则回溯到起始位置P0,完成了整个映射路径(映射关系)的回溯过程,即从最终切分位置的(shu′ei′hu,shui′hu)到第二切分位置的(da′hua,da′hua),再到起始切分位置,最终的映射路径即为:(da′hua,da′hua)和(shu′ei′hu,shui′hu),识别出的与用户输入的拼音串“dahuashueihu”存在映射关系的拼音串为映射关系中(da′hua,da′hua)映射关系中的被映射拼音串“da′hua”与“shui′hu”的组合“da’hua’shui’hu’”。
在本发明实施例中,通过动态规划算法来完成与用户输入的拼音串存在映射关系的拼音串的识别,提高了用户输入的拼音串的识别效率,进一步提高了用户体验。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
实施例四:
图4示出了本发明第四实施例提供的拼音自动识别系统的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该拼音自动识别系统可以用于拼音输入系统,或者具有中文拼音输入功能的应用系统,其中:
拼音串切分单元41对用户输入的拼音串进行切分,获得切分后的拼音串。
映射概率获取单元42获取切分后的拼音串中拼音的映射关系的映射概率,该映射关系包括一元映射关系和/或多元映射关系。
拼音串识别单元43根据映射概率获取单元42获取的映射概率,识别出与用户输入的拼音串存在映射关系的拼音串。
具体地,映射概率获取单元42可以包括用于对第一拼音串和第二拼音串进行切分,获取切分后的第一拼音串中的拼音与切分后的第二拼音串中的拼音的一元映射关系的一元映射关系获取单元;以及
具体地,拼音串识别单元43可以包括用于对一元映射关系获取单元获取的一元映射关系进行扩展,获取切分后的第一拼音串中的拼音与切分后的第二拼音串中的拼音的多元映射关系的多元映射关系获取单元。
实施例五:
图5示出了本发明第五实施例提供的拼音自动识别系统的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该拼音自动识别系统可以用于拼音输入系统,或者具有中文拼音输入功能的应用系统,其中:
纠错对获取单元51获取预先存储的包括第一拼音串以及与第一拼音串对应的中文字符串的纠错对。
注音单元52对中文字符串进行注音,将获得的中文字符串的拼音串设置为第二拼音串。
映射关系获取单元53对第一拼音串和第二拼音串进行切分,获取切分后的第一拼音串中的拼音与切分后的第二拼音串中的拼音的映射关系。
映射表添加单元54计算映射关系的映射概率,将映射关系和映射关系对应的映射概率添加到映射表。
拼音串切分单元55对用户输入的拼音串进行切分,获得切分后的拼音串。
映射概率获取单元56获取映射表中存储的切分后的拼音串中拼音的映射关系的映射概率。
拼音串识别单元57根据所述映射概率获取单元获取的映射概率,识别出与用户输入的拼音串存在映射关系的拼音串。
实施例六:
图6示出了本发明第六实施例提供的拼音自动识别系统的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该拼音自动识别系统可以用于拼音输入系统,或者具有中文拼音输入功能的应用系统,该拼音自动识别系统包括:拼音串切分单元61、映射概率获取单元62、拼音串识别单元63,其中:
拼音串切分单元61对用户输入的拼音串进行切分,获得切分后的拼音串。
映射概率获取单元62获取切分后的拼音串中拼音的映射关系的映射概率,该映射关系包括一元映射关系和/或多元映射关系。
拼音串识别单元63根据所述映射概率获取单元获取的映射概率,识别出与用户输入的拼音串存在映射关系的拼音串。
具体地,映射概率获取单元62包括用于获取切分后的拼音串的每个切分位置的拼音的映射关系的映射概率,所述映射关系包括一元映射关系和/或多元映射关系的映射概率获取子单元621。
拼音串识别单元63包括用于通过预设的最优值求解算法确定与用户输入的拼音串存在映射关系的拼音串的映射关系确定子单元631。
在本发明实施例中,根据获取的映射关系的映射概率,较优地,采用动态规划算法确定与用户输入的拼音串存在映射关系的拼音串。具体地映射关系确定子单元631包括路径值计算单元、最短路径获取单元以及拼音串设置单元,其中:
路径值计算单元,用于计算当前切分位置(i-k)到切分位置i且输入为第j个映射关系时的路径值Pi-k,j=maxPi×Pj,其中maxPi表示切分位置i到最终切分位置的最短路径值,Pj表示获取的第j个映射关系的映射概率,k表示切分位置i获取maxPi时对应的映射关系的元数;
最短路径获取单元,用于从最终切分位置进行回溯,根据路径值计算单元计算得到的路径值Pi-k,j=maxPi×Pj,获取最终切分位置到初始切分位置的最短路径值;以及
拼音串设置单元,用于将获取最短路径获取单元获取最短路径值时输入的映射关系中被映射的拼音串设置为与用户输入的拼音串存在映射关系的拼音串。
本发明实施例对用户输入的拼音串进行切分,获取映射表中存储的切分后的拼音串中拼音的映射关系的映射概率,提供了将用户输入的拼音串映射到最终端识别出的拼音串的概率(代价),简化了用户输入的拼音串的识别过程,同时,通过对一元映射关系进行扩展获得多元映射关系,使得后续拼音串的识别能够根据上下文进行选择,并选择动态规划算法进行与用户输入的拼音串存在映射关系的拼音串的识别,从而大大简化了用户输入的拼音串的识别过程的计算量,提高了拼音串的识别效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。