CN110262674B - 一种基于拼音输入的汉字输入方法、装置及电子设备 - Google Patents
一种基于拼音输入的汉字输入方法、装置及电子设备 Download PDFInfo
- Publication number
- CN110262674B CN110262674B CN201910572559.4A CN201910572559A CN110262674B CN 110262674 B CN110262674 B CN 110262674B CN 201910572559 A CN201910572559 A CN 201910572559A CN 110262674 B CN110262674 B CN 110262674B
- Authority
- CN
- China
- Prior art keywords
- score
- word
- pinyin
- string
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
- G06F3/0233—Character input methods
- G06F3/0237—Character input methods using prediction or retrieval techniques
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明的实施例公开一种基于拼音输入的汉字输入方法、装置及电子设备,涉及输入法领域,为提高候选词排序的准确性而发明。所述方法,包括:对当前输入的拼音字符串,按不同的分割法分割为不同的字符串组合;确定每个字符串组合所对应的候选词以及所对应的候选词的拼音类型;根据每个字符串组合所对应的候选词的拼音类型和词频,确定每个字符串组合所对应的候选词的得分;根据每个字符串组合所对应的候选词的得分高低,对不同字符串组合各自所对应的候选词进行排序显示。所述装置及电子设备包括用于执行所述方法的模块。本发明适用于基于拼音输入的汉字法。
Description
技术领域
本发明涉及输入法领域,尤其涉及一种基于拼音输入的汉字输入方法、装置、电子设备、计算机可读存储介质及应用程序。
背景技术
随着计算机通信以及互联网技术的不断发展,电子设备,例如,智能移动电话、个人数字助理、掌上电脑、笔记本电脑等应用越来越普及,人们在利用电子设备过程中,实现交互的方式很多,其中一种方式是为用户提供键盘,用户在键盘上输入拼音字符串,将其转化为对应的汉字输出,由于拼音间的不同组合会对应出现多个候选词,并将多个候选词进行排序,供用户选择,进而满足用户的输入需求,然而,在用户输入的拼音字符串中,不同的拼音之间的组合对应不同的拼音类型,而拼音类型对候选词的排序起着决定性的作用,而现有的汉字输入方法在将多个候选词进行排序的过程中,并没有考虑拼音类型对候选词的排序的影响,使得在对候选词进行排序时,得到的结果不够准确。
发明内容
有鉴于此,本发明实施例提供一种基于拼音输入的汉字输入方法、装置、电子设备、计算机可读存储介质及应用程序,能够提高候选词排序的准确性。
第一方面,本发明实施例提供一种基于拼音输入的汉字输入方法,包括:
对当前输入的拼音字符串,按不同的分割法分割为不同的字符串组合;确定每个字符串组合所对应的候选词以及所对应的候选词的拼音类型;根据每个字符串组合所对应的候选词的拼音类型和词频,确定每个字符串组合所对应的候选词的得分;根据每个字符串组合所对应的候选词的得分高低,对不同字符串组合各自所对应的候选词进行排序显示。
根据本发明实施例的一种具体实现方式,所述分割法,包括如下至少一种分割法:基于预先建立的音节树,将当前输入的拼音字符串,分割为单个字的全拼的组合;基于预先建立的音节树,将当前输入的拼音字符串,分割为单个字的简拼的组合;基于预先建立的音节树,将当前输入的拼音字符串分割为单个字的全拼和简拼的组合;其中,在所述音节树中,一个合法单字的拼音构成音节树的一个分支。
根据本发明实施例的一种具体实现方式,在对当前输入的拼音字符串,按不同的分割法分割的不同的字符串组合中,包括:第一字符串组合,第一字符串组合包括:相邻的第一子串和第二子串,第二子串位于第一子串之后;所述确定每个字符串组合所对应的候选词以及所对应的候选词的拼音类型,包括:在预先建立的拼音树中,自所述拼音树的根节点出发,查找第一子串;查找到第一子串后,在第一子串的子节点中查找第二子串;基于查找到的第一子串和第二子串在所述拼音树中的组合关系,确定所述第一字符串组合所对应的第一候选词以及第一候选词的拼音类型;其中,在所述拼音树中,一个合法的词的拼音构成拼音树的一个分支,每个分支的节点含有对应的汉字信息,所述汉字信息包括与所述节点的单字拼音相对应的汉字、所述汉字的拼音类型。
根据本发明实施例的一种具体实现方式,在基于查找到的第一子串和第二子串在所述拼音树中的组合关系,确定所述第一字符串组合所对应的第一候选词之后,所述方法还包括:记录第一候选词为一元候选词。
根据本发明实施例的一种具体实现方式,在对当前输入的拼音字符串,按不同的分割法分割的不同的字符串组合,包括:第一字符串组合,第一字符串组合包括:第一子串、第二子串和第三子串,第二子串与第一子串相邻且位于第一子串之后;所述确定每个字符串组合所对应的候选词以及所对应的候选词的拼音类型,包括:在预先建立的拼音树中,自所述拼音树的根节点出发,查找第一子串;查找到第一子串后,在第一子串的子节点中查找第二子串;在第一子串的子节点中查找到第二子串后,在第二子串的子节点中查找第三子串;若在第二子串的子节点中未找到第三子串,则自所述拼音树的根节点出发,查找第三子串;查找到第三子串后,将基于第一子串和第二子串在所述拼音树中的组合关系所确定的词,与第三子串所对应的字相组合,得到所述第一字符串组合所对应的第二候选词以及第二候选词的拼音类型。
根据本发明实施例的一种具体实现方式,在将基于第一子串和第二子串在所述拼音树中的组合关系所确定的词,与第三子串所对应的字相组合,得到所述字符串组合所对应的候选词之后,所述方法还包括:记录第二候选词为二元候选词,并记录所述第一子串和第二子串在所述拼音树中的组合关系所确定的词为二元词的第一部分,第三子串所对应的字为二元词的第二部分。
根据本发明实施例的一种具体实现方式,所述对当前输入的拼音字符串,按不同的分割法分割为不同的字符串组合,包括:对当前输入的拼音字符串按预设纠错规则进行纠错,得到纠错后拼音字符串并记录所述当前输入的拼音字符串的纠错类型的个数;对纠错后拼音字符串,按不同的分割法分割为不同的字符串组合。
根据本发明实施例的一种具体实现方式,所述根据每个字符串组合所对应的候选词的拼音类型和词频,确定每个字符串组合所对应的候选词的得分,包括:
根据第一字符串组合所对应的第一候选词或第二候选词的拼音类型和词频,确定第一字符串组合所对应的第一候选词或第一候选词的得分,包括:
根据如下公式确定第一候选词或第二候选词的得分:
score=score_ngram(P)+score_word_att(P);
其中,score_ngram(P)为第一候选词或第二候选词P的词频得分,score_word_att(P)为第一候选词或第二候选词P的拼音类型得分;
当P为一元词时,score_ngram(P)=log(q)/log(r)+A;其中,q为一元词P对应的词频,r为算分系数,A为修正值;
当P为二元词时,score_ngram(P)=score_ngram(P1)+score_ngram(P2)-A;其中,二元词P由第一部分P1和第二部分P2组成;score_ngram(P1)=log(q1)/log(r)+A,score_ngram(P2)=log(q2)/log(r)+A;其中,q1为第一部分P1对应的词频,q2为第二部分P2对应的词频,r为算分系数,A为修正值;
score_word_att(P)=backoff_score(word_att(P)),其中,word_att(P)为第一候选词或第二候选词P的拼音类型,backoff_score(word_att(P))为不同拼音类型的得分。
根据本发明实施例的一种具体实现方式,所述根据每个字符串组合所对应的候选词的拼音类型和词频,确定每个字符串组合所对应的候选词的得分,包括:
根据第一字符串组合所对应的第一候选词或第二候选词的拼音类型和词频,确定第一字符串组合所对应的第一候选词或第一候选词的得分,包括:
根据如下公式确定第一候选词或第二候选词的得分:
score=score_ngram(P)+score_word_att(P)+score_repair(P);
其中,score_ngram(P)为第一候选词或第二候选词P的词频得分,score_word_att(P)为第一候选词或第二候选词P的拼音类型得分,score_repair(P)为纠错得分;
当P为一元词时,score_ngram(P)=log(q)/log(r)+A;其中,q为一元词P对应的词频,r为算分系数,A为修正值;
当P为二元词时,score_ngram(P)=score_ngram(P1)+score_ngram(P2)-A;其中,二元词P由第一部分P1和第二部分P2组成;score_ngram(P1)=log(q1)/log(r)+A,score_ngram(P2)=log(q2)/log(r)+A;其中,q1为第一部分P1对应的词频,q2为第二部分P2对应的词频,r为算分系数,A为修正值;
score_word_att(P)=backoff_score(word_att(P)),其中,word_att(P)为第一候选词或第二候选词P的拼音类型,backoff_score(word_att(P))为不同拼音类型的得分;
score_repair(P)=score_ngram(P)*s*N,其中s为惩罚系数,0≤s≤1,N为第一候选词或第二候选词P中出现纠错类型的个数。
第二方面,本发明实施例提供一种基于拼音输入的汉字输入装置,包括:分割模块,确定模块,得分模块,排序显示模块,其中,
分割模块,用于对当前输入的拼音字符串,按不同的分割法分割为不同的字符串组合;
确定模块,用于确定每个字符串组合所对应的候选词以及所对应的候选词的拼音类型;
得分模块,用于根据每个字符串组合所对应的候选词的拼音类型和词频,确定每个字符串组合所对应的候选词的得分;
排序显示模块,用于根据每个字符串组合所对应的候选词的得分高低,对不同字符串组合各自所对应的候选词进行排序显示。
根据本发明实施例的一种具体实现方式,所述分割模块,包括如下至少一种分割子装置:全拼分割子装置,简拼分割子装置,全拼和简拼分割子装置,其中,
全拼分割子装置,用于基于预先建立的音节树,将当前输入的拼音字符串,分割为单个字的全拼的组合;
简拼分割子装置,用于基于预先建立的音节树,将当前输入的拼音字符串,分割为单个字的简拼的组合;
全拼和简拼分割子装置,用于基于预先建立的音节树,将当前输入的拼音字符串分割为单个字的全拼和简拼的组合;
其中,在所述音节树中,一个合法单字的拼音构成音节树的一个分支。
根据本发明实施例的一种具体实现方式,在对当前输入的拼音字符串,按不同的分割法分割的不同的字符串组合中,包括:第一字符串组合,第一字符串组合包括相邻的第一子串和第二子串,第二子串位于第一子串之后;
所述确定模块,包括:第一查找子模块,第二查找子模块,确定子模块,其中,
第一查找子模块,用于在预先建立的拼音树中,自所述拼音树的根节点出发,查找第一子串;
第二查找子模块,用于查找到第一子串后,在第一子串的子节点中查找第二子串;
确定子模块,用于基于查找到的第一子串和第二子串在所述拼音树中的组合关系,确定所述第一字符串组合所对应的第一候选词以及第一候选词的拼音类型;
其中,在所述拼音树中,一个合法的词的拼音构成拼音树的一个分支,每个分支的节点含有对应的汉字信息,所述汉字信息包括与所述节点的单字拼音相对应的汉字、所述汉字的拼音类型。
根据本发明实施例的一种具体实现方式,所述确定模块,还包括:第一记录子模块,用于记录第一候选词为一元候选词。
根据本发明实施例的一种具体实现方式,在对当前输入的拼音字符串,按不同的分割法分割的不同的字符串组合,包括:第一字符串组合,第一字符串组合包括:第一子串、第二子串和第三子串,第二子串与第一子串相邻且位于第一子串之后;
所述确定模块,还包括:
第三查找子模块,用于在第一子串的子节点中查找到第二子串后,在第二子串的子节点中查找第三子串;
第四查找子模块,用于若在第二子串的子节点中未找到第三子串,则自所述拼音树的根节点出发,查找第三子串;
确定子模块,具体用于查找到第三子串后,将基于第一子串和第二子串在所述拼音树中的组合关系所确定的词,与第三子串所对应的字相组合,得到所述第一字符串组合所对应的第二候选词以及第二候选词的拼音类型。
根据本发明实施例的一种具体实现方式,所述确定模块,还包括:第二记录子模块,用于记录第二候选词为二元候选词,并记录所述第一子串和第二子串在所述拼音树中的组合关系所确定的词为二元词的第一部分,第三子串所对应的字为二元词的第二部分。
根据本发明实施例的一种具体实现方式,所述分割模块,包括:纠错子模块,分割子模块,其中,
纠错子模块,用于对当前输入的拼音字符串按预设纠错规则进行纠错,得到纠错后拼音字符串和所述当前输入的拼音字符串的纠错类型的个数;
分割子模块,用于对纠错后拼音字符串,按不同的分割法分割为不同的字符串组合。
根据本发明实施例的一种具体实现方式,所述得分模块,包括得分子模块,具体根据如下公式确定第一候选词或第二候选词的得分:
score=score_ngram(P)+score_word_att(P);
其中,score_ngram(P)为第一候选词或第二候选词P的词频得分,score_word_att(P)为第一候选词或第二候选词P的拼音类型得分;
当P为一元词时,score_ngram(P)=log(q)/log(r)+A;其中,q为一元词P对应的词频,r为算分系数,A为修正值;
当P为二元词时,score_ngram(P)=score_ngram(P1)+score_ngram(P2)-A;其中,二元词P由第一部分P1和第二部分P2组成;score_ngram(P1)=log(q1)/log(r)+A,score_ngram(P2)=log(q2)/log(r)+A;其中,q1为第一部分P1对应的词频,q2为第二部分P2对应的词频,r为算分系数,A为修正值;
score_word_att(P)=backoff_score(word_att(P)),其中,word_att(P)为第一候选词或第二候选词P的拼音类型,backoff_score(word_att(P))为不同拼音类型的得分。
根据本发明实施例的一种具体实现方式,所述所述得分模块,包括得分子模块,具体根据如下公式确定第一候选词或第二候选词的得分:
score=score_ngram(P)+score_word_att(P)+score_repair(P);
其中,score_ngram(P)为第一候选词或第二候选词P的词频得分,score_word_att(P)为第一候选词或第二候选词P的拼音类型得分,score_repair(P)为纠错得分;
当P为一元词时,score_ngram(P)=log(q)/log(r)+A;其中,q为一元词P对应的词频,r为算分系数,A为修正值;
当P为二元词时,score_ngram(P)=score_ngram(P1)+score_ngram(P2)-A;其中,二元词P由第一部分P1和第二部分P2组成;score_ngram(P1)=log(q1)/log(r)+A,score_ngram(P2)=log(q2)/log(r)+A;其中,q1为第一部分P1对应的词频,q2为第二部分P2对应的词频,r为算分系数,A为修正值;
score_word_att(P)=backoff_score(word_att(P)),其中,word_att(P)为第一候选词或第二候选词P的拼音类型,backoff_score(word_att(P))为不同拼音类型的得分;
score_repair(P)=score_ngram(P)*s*N,其中,s为惩罚系数,0≤s≤1,N为第一候选词或第二候选词P中出现纠错类型的个数。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实现方式所述的方法。
第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明任一实施方式所述的方法。
第五方面,本发明的实施例还提供一种应用程序,所述应用程序被执行以实现本发明任一实施方式所述的方法。
本发明实施例提供的一种基于拼音输入的汉字输入方法、装置、电子设备、计算机可读存储介质及应用程序,通过通过按不同的分割法对当前输入的拼音字符串进行分割,得到不同的字符串组合,并且确定每个字符串组合所对应的候选词以及所对应的候选词的拼音类型,再根据候选词的拼音类型,确定候选词的得分,并且根据得分的高低,对每个字符串组合所对应的候选词进行排序显示。这样,在对候选词进行排序显示时,将拼音类型对应的得分作为候选词排序的依据,使得得到的候选词的排序更加准确。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明提供的一种基于拼音输入的汉字输入方法的实施例一的流程示意图;
图2为本发明一实施例中,音节树的示意图;
图3为本发明一实施例中,确定每个字符串组合所对应的候选词的流程示意图;
图4为本发明一实施例中,拼音树的示意图;
图5为本发明又一实施例中,确定每个字符串组合所对应的候选词的流程示意图;
图6为本发明一实施例中,对当前输入的拼音字符串,按不同的分割法分割为不同的字符串组合的流程示意图;
图7为本发明提供的一种基于拼音输入的汉字输入装置的实施例一的结构示意图;
图8为本发明一实施例中,分割模块的结构示意图;
图9为本发明提供的一种基于拼音输入的汉字输入装置的实施例二的结构示意图;
图10为本发明提供的一种基于拼音输入的汉字输入装置的实施例三的结构示意图;
图11为本发明一实施例中,确定模块的结构示意图;
图12为本发明又一实施例中,确定模块的结构示意图;
图13为本发明一实施例中,分割模块的结构示意图;
图14为本发明电子设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
第一方面,本发明实施例提供一种基于拼音输入的汉字输入方法,能够更加准确地得到候选解的排序。
图1为本发明提供的一种基于拼音输入的汉字输入方法的实施例一的流程示意图,如图1所示,本实施例的方法可以包括:
步骤101、对当前输入的拼音字符串,按不同的分割法分割为不同的字符串组合。
本实施例中,拼音字符串可由至少一个汉语拼音字母组成;拼音字符串可通过电子设备的硬件键盘进行输入,或者电子设备安装的输入法应用程序提供的软键盘进行输入;键盘分为26键键盘和9键键盘。
本实施例中,按不同的分割法分割为不同的字符串组合,具体可按照如下至少一种分割法对用户当前输入的拼音字符串进行分割:
基于预先建立的音节树,将当前输入的拼音字符串,分割为单个字的全拼的组合;
基于预先建立的音节树,将当前输入的拼音字符串,分割为单个字的简拼的组合;
基于预先建立的音节树,将当前输入的拼音字符串分割为单个字的全拼和简拼的组合;
其中,在所述音节树中,一个合法单字的拼音构成音节树的一个分支。
本实施例中,输入法内置一个本地字典,本地词典中存有很多词及对应的拼音,遍历本地词典中的词,便会得到一个包含所有合法单字拼音的集合,对这些拼音建树,即得到音节树,一个合法单字的拼音构成音节树的一个分支。
图2为本发明一实施例中,音节树的示意图,如图2所示,本实施例中,本地词典中只有“吃饭”和“出来”两个词及分别对应的拼音“chi fan”和“chu qu”,那么根据本地词典的“chi fan”和“chu qu”,能够得到合法单字拼音的集合,对拼音建树即得到音节树。
本实施例中,当用户输入的拼音字符串为women,基于预先建立的音节树,可将其分割为单个字的全拼的组合wo’men;也可将其分割为单个字的全拼和简拼的组合wo’me’n和/或wo’m’e’n;当用户输入的拼音字符串为wzm,可将其分割为单个字的简拼的组合w’z’m。
步骤102、确定每个字符串组合所对应的候选词以及所对应的候选词的拼音类型。
本实施例中,拼音类型可分为以下类别:
拼音完全匹配,如输入”women”,词为”我们”;
末字简拼,如输入”wom”,词为”我们”;
超级简拼,包含a、e、o等拼音(因为e既可当作全拼发音”饿”,也可当作部分的音节”而”)的全简拼,如输入”xe”,词为”邪恶”;
前置末尾全拼,如输入”wobxqu”,词为”我不想去”;
末尾全拼,如输入”wzme”,词为”我怎么”;
前置全拼,如输入”wozm”,词为”我怎么”;
部分全拼(非前置全拼和末尾全拼),如输入”hhaoxx”,词为”好好学习”;
全简拼,case,输入”wzm”,词为”我怎么”;
纠错词:分为临近键位替换、前后顺序颠倒、多打字符三种,如输入”chifsn”,词为”吃饭”,如输入”chifna”,词为”吃饭”;如输入”lanng”,词为”狼”;
其他拼音类型。
上述拼音类型对应设置得分数,构成拼音类型与得分数的对照表。其中,拼音完全匹配减分最少,末字简拼次之,直到其他拼音类型减分最多。
拼音类型与得分数的对照表是通过调研用户的输入行为从而确定拼音类型,再根据大量语料进行评测,以首选率为标准确定的每个具体的得分。
本实施例中,对于分割后得到的拼音字符串为wo’men时,对应的候选词可为“我们”,拼音类型为拼音完全匹配;对于分割后得到全拼和简拼的组合,分割后的拼音字符串为wo’me’n,对应的候选词可为我默念,拼音类型为前置全拼。
步骤103、根据每个字符串组合所对应的候选词的拼音类型和词频,确定每个字符串组合所对应的候选词的得分。
本实施例中,根据候选词的拼音类型及不同拼音类型对应的得分数,能够得到拼音类型对应的得分数,如“我们”的拼音类型为拼音完全匹配,得分数最高,“我默念”的拼音类型为前置全拼,得分数次之;在本地词典中词与词频的对应关系中,可得到候选词的词频,将候选词的拼音类型得分和词频得分相加,作为候选词的得分。
步骤104、根据每个字符串组合所对应的候选词的得分高低,对不同字符串组合各自所对应的候选词进行排序显示。
本实施例中,可将每个字符串组合对应的候选词对应的得分数按照从大到小的顺序排序,并将结果显示在屏幕上,供用户选择。
本实施例,通过按不同的分割法对当前输入的拼音字符串进行分割,得到不同的字符串组合,并且确定每个字符串组合所对应的候选词以及所对应的候选词的拼音类型,再根据候选词的拼音类型和词频,确定候选词的得分,并且根据得分的高低,对每个字符串组合所对应的候选词进行排序显示。这样,在对候选词进行排序显示时,将拼音类型对应的得分作为候选词排序的依据,使得得到的候选词的排序更加准确,从而使得排在第一位的候选解即最优候选解成为用户最终选择的候选词的概率更大,便于提高用户体验。
图3为本发明一实施例中,确定每个字符串组合所对应的候选词的流程示意图,如图3所示,本实施例中,所述确定每个字符串组合所对应的候选词以及所对应的候选词的拼音类型,包括:
步骤201、在预先建立的拼音树中,自所述拼音树的根节点出发,查找第一子串。
本实施例中,在所述拼音树中,一个合法的词的拼音构成拼音树的一个分支,每个分支的节点含有对应的汉字信息,所述汉字信息包括与所述节点的单字拼音相对应的汉字及汉字的拼音类型。
图4为本发明一实施例中,拼音树的示意图,如图4所示,本实施例中,本地词典中只有“吃饭”和“出来”两个词及分别对应的拼音“chi fan”和“chu qu”,那么根据本地词典对应的拼音树含有两个分支,其中一个分支自根节点0出发,得到第一字串为chi,chi的子节点为fan,则该分支中包括了词典中出现的关于chifan所对应的所有词,并且从该分支得到的词为一元词。
本实施例中,当对用户输入的拼音字符串进行分割得到其中的一个字符串为chi’fan,那么在拼音树中,自根节点0开始,查找到chi对应的节点,并且该节点的拼音类型为拼音完全匹配。
步骤202、查找到第一子串后,在第一子串的子节点中查找第二子串。
本实施例中,在步骤201中查找到chi后,在chi的子节点中查找fan对应的节点,该节点的拼音类型为拼音完全匹配。
步骤203、基于查找到的第一子串和第二子串在所述拼音树中的组合关系,确定所述第一字符串组合所对应的第一候选词以及第一候选词的拼音类型。
本实施例中,如在本地词典中,chi’fan对应的词只对应一个词“吃饭”,那么将“吃饭”确定为候选词,并且根据“吃”的拼音类型和“饭”的拼音类型,得到“吃饭”的拼音类型为拼音完全匹配。
步骤204、记录第一候选词为一元候选词。
本实施例中,将“吃饭”作为一元候选词进行记录。
本实施例,通过在预先建立的拼音树中,自所述拼音树的根节点出发,查找第一子串,在第一子串的子节点中查找第二子串,基于查找到的第一子串和第二子串在所述拼音树中的组合关系,能够确定所述第一字符串组合所对应的第一候选词及第一候选词的拼音类型和词频,这样,便于根据候选词对应的拼音类型和词频,对候选词确定候选词的得分。
作为一可选实施例,所述根据每个字符串组合所对应的候选词的拼音类型和词频,确定每个字符串组合所对应的候选词的得分,包括:
根据第一字符串组合所对应的第一候选词的拼音类型和词频,确定第一字符串组合所对应的第一候选词的得分,包括:
根据如下公式确定第一候选词的得分:
score=score_ngram(P)+score_word_att(P);
其中,score_ngram(P)为第一候选词P的词频得分,score_word_att(P)为第一候选词P的拼音类型得分;
当P为一元词时,score_ngram(P)=log(q)/log(r)+A;其中,q为一元词P对应的词频,r为算分系数,A为修正值;
score_word_att(P)=backoff_score(word_att(P)),其中,word_att(P)为第一候选词P的拼音类型,backoff_score(word_att(P))为不同拼音类型的得分。
本实施例中,如用户输入chifan字符串,对其进行分割得到的chi’fan,通过步骤201-204得到候选词为“吃饭”且为一元词,在本地词典中词与词频的对应关系中,查找“吃饭”对应的词频q,其中,r为算分系数,A修正系数,r和A的大小可根据词频得分的取值范围进行对应取值,词频得分的取值范围可由技术人员根据实际需要确定,如得分范围可设定在0-255;由于“吃饭”对应拼音类型为拼音完全匹配,根据拼音类型与得分数对照表,得到候选词“吃饭”的拼音类型得分score_word_att(吃饭)。
本实施例中,将词频与拼音类型,作为确定候选词得分的依据,从而使得候选词的排序更加准确。
图5为本发明又一实施例中,确定每个字符串组合所对应的候选词的流程示意图,包括:
步骤301、在预先建立的拼音树中,自所述拼音树的根节点出发,查找第一子串。
本实施例中,查找第一字串的过程和上述方法实施例的步骤201类似,此处不再赘述。
步骤302、查找到第一子串后,在第一子串的子节点中查找第二子串。
本实施例中,查找第二字串的过程和上述方法实施例的步骤202类似,此处不再赘述。
步骤303、在第一子串的子节点中查找到第二子串后,在第二子串的子节点中查找第三子串。
本实施例中,在第二字串的子节点中查找第三字串,如chi’fan’b,在拼音树中找到chi和fan后,在fan的子节点中查找b。
步骤304、若在第二子串的子节点中未找到第三子串,则自所述拼音树的根节点出发,查找第三子串。
本实施例中,在fan的子节点中没有找到b,那么再从根节点0出发,找b。
步骤305、查找到第三子串后,将基于第一子串和第二子串在所述拼音树中的组合关系所确定的词,与第三子串所对应的字相组合,得到所述第一字符串组合所对应的第二候选词以及第二候选词的拼音类型。
本实施例中,找到b后,确定第一子串和第二子串在所述拼音树中的组合关系所确定的词,如本地词典中chi’fan对应的词为“吃饭”,b对应的字为“吧”,那么,将“吃饭”和“吧”组合,从而,得到chi’fan’b对应的候选词为“吃饭吧”,用于“吃饭”为拼音完全匹配,“吧”为末字简拼,那么“吃饭吧”的拼音类型为末字简拼。
步骤306、记录该候选词为二元候选词,并记录所述第一子串和第二子串在所述拼音树中的组合关系所确定的词为二元词的第一部分,第三子串所对应的字为二元词的第二部分。
本实施例中,将“吃饭吧”作为二元候选词进行记录,并记录chi’fan对应的词“吃饭”为候选词的第一部分,b对应的字“吧”为选词的第二部分。。
本实施例,通过在预先建立的拼音树中,自所述拼音树的根节点出发,查找第一子串,在第一子串的子节点中查找第二子串,在第一子串的子节点中查找到第二子串后,在第二子串的子节点中查找第三子串,若在第二子串的子节点中未找到第三子串,则自所述拼音树的根节点出发,查找第三子串;查找到第三子串后,将基于第一子串和第二子串在所述拼音树中的组合关系所确定的词,与第三子串所对应的字相组合,得到所述字符串组合所对应的候选词和拼音类型,这样,便于根据候选词对应的拼音类型和词频,确定候选词的得分。
作为一可选实施例,若在第二子串的子节点中找到第三子串,基于查找到的第一子串、第二子串和第三子串在所述拼音树中的组合关系,确定所述第一字符串组合所对应的第一候选词以及第一候选词的拼音类型,并记录第一候选词为一元候选词。
本实施例中,在第二字串的子节点中查找第三字串,如chi’fan’b,在拼音树中找到chi和fan后,在fan的子节点中查找b,若在fan的子节点中找到b,那么,基于查找到的chi、fan和b在所述拼音树中的组合关系,可确定chifanb所对应的候选词为“吃饭吧”以及“吃饭吧”的拼音类型,并记录“吃饭吧”为一元候选词。
作为又一可选实施例,所述根据每个字符串组合所对应的候选词的拼音类型和词频,确定每个字符串组合所对应的候选词的得分,包括:
根据第一字符串组合所对应的第一候选词的拼音类型和词频,确定第一字符串组合所对应的第一候选词的得分,包括:
根据如下公式确定第二候选词的得分:
score=score_ngram(P)+score_word_att(P);
其中,score_ngram(P)为第二候选词P的词频得分,score_word_att(P)为第二候选词P的拼音类型得分;
当P为二元词时,score_ngram(P)=score_ngram(P1)+score_ngram(P2)-A;其中,二元词P由第一部分P1和第二部分P2组成;score_ngram(P1)=log(q1)/log(r)+A,score_ngram(P2)=log(q2)/log(r)+A;其中,q1为第一部分P1对应的词频,q2为第二部分P2对应的词频,r为算分系数,A为修正值;
score_word_att(P)=backoff_score(word_att(P)),其中,word_att(P)为第二候选词P的拼音类型,backoff_score(word_att(P))为不同拼音类型的得分。
本实施例中,如用户输入chifanb字符串,对其进行分割得到的chi’fan’b,通过步骤301-306得到候选词为“吃饭吧”且为二元词,“吃饭”为候选词的第一部分P1,“吧”为候选词的第二部分P2,在本地词典中词与词频的对应关系中,查找“吃饭”对应的词频q1,“吧”对应的词频为q2;由于“吃饭”对应的拼音类型为拼音完全匹配,“吧”对应的拼音类型为末字简拼,那么,“吃饭吧”对应的拼音类型为末字简拼,根据拼音类型与得分数对照表,得到候选词“吃饭吧”的拼音类型得分score_word_att(吃饭吧)。
图6为本发明一实施例中,对当前输入的拼音字符串,按不同的分割法分割为不同的字符串组合的流程示意图,如图6所示,本实施例中,对当前输入的拼音字符串,按不同的分割法分割为不同的字符串组合(步骤101),包括:
步骤1011、对当前输入的拼音字符串按预设纠错规则进行纠错,得到纠错后拼音字符串并记录所述当前输入的拼音字符串的纠错类型的个数。
本实施例中,预设纠错规则,分为临近键位替换、前后顺序颠倒、多打字符三种规则(类型),如输入”chifsn”,按照临近键位替换规则,将chifsn替换为chifan;如输入”chifna”按照前后顺序颠倒规则,将chifna替换为chifan;如输入”lanng”,按照多打字符规则,将lanng替换lang;同时,在纠错的过程中,记录输入的字符串的纠错类型的个数,如输入的字符串chofsn,按照临近键位替换规则,将chofsn替换为chifan,该字符串的纠错类型个数为1。
步骤1012、对纠错后拼音字符串,按不同的分割法分割为不同的字符串组合。
本实施例中,分割法的过程和上述方法实施例的步骤101类似,此处不再赘述。
本实施例,通过对当前输入的拼音字符串按预设纠错规则进行纠错,对纠错后拼音字符串,按不同的分割法分割为不同的字符串组合,这样,在对字符串进行分割之前,使用预设纠错规则对当前输入的拼音字符串进行纠错,在确定候选词得分的过程中,能够更加准确地确定候选词的排序显示。
作为一可选实施例,所述根据每个字符串组合所对应的候选词的拼音类型和词频,确定每个字符串组合所对应的候选词的得分,包括:
根据第一字符串组合所对应的第一候选词的拼音类型和词频,确定第一字符串组合所对应的第一候选词的得分,包括:
根据如下公式确定第一候选词的得分:
score=score_ngram(P)+score_word_att(P)+score_repair(P);
其中,score_ngram(P)为第一候选词P的词频得分,score_word_att(P)为第一候选词P的拼音类型得分,score_repair(P)为纠错得分;
当P为一元词时,score_ngram(P)=log(q)/log(r)+A;其中,q为一元词P对应的词频,r为算分系数,A为修正值;
score_word_att(P)=backoff_score(word_att(P)),其中,word_att(P)为第一候选词P的拼音类型,backoff_score(word_att(P))为不同拼音类型的得分;
score_repair(P)=score_ngram(P)*s*N,其中,s为惩罚系数,0≤s≤1,N为第一候选词P中出现纠错类型的个数。
本实施例中,如用户输入chifsn字符串,按照临近键位替换规则对其进行纠错,纠错类型个数为1,同时得到字符串chifan,再对chifan分割得到的chi’fan,通过步骤201-204得到候选词为“吃饭”且为一元词,在本地词典中词与词频的对应关系中,查找“吃饭”对应的词频q;由于“吃饭”对应拼音类型为拼音完全匹配,根据拼音类型与得分数对照表,得到候选词“吃饭”的拼音类型得分score_word_att(吃饭);根据纠错类型个数1得到“吃饭”的纠错得分score_repair(吃饭)。
第二方面,本发明实施例提供一种基于拼音输入的汉字输入装置,能够更加准确地得到候选解的排序。
图7为本发明提供的一种基于拼音输入的汉字输入装置的实施例一的结构示意图,如图7所示,本实施例的装置可以包括:分割模块11,确定模块12,得分模块13,排序显示模块14,其中,
分割模块11,用于对当前输入的拼音字符串,按不同的分割法分割为不同的字符串组合;
确定模块12,用于确定每个字符串组合所对应的候选词以及所对应的候选词的拼音类型;
得分模块13,用于根据每个字符串组合所对应的候选词的拼音类型和词频,确定每个字符串组合所对应的候选词的得分;
排序显示模块14,用于根据每个字符串组合所对应的候选词的得分高低,对不同字符串组合各自所对应的候选词进行排序显示。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本发明一实施例中,分割模块的结构示意图,如图8所示,所述分割模块11,包括如下至少一种分割子装置:全拼分割子装111,简拼分割子装置112,全拼和简拼分割子装置113,其中,
全拼分割子装置111,用于基于预先建立的音节树,将当前输入的拼音字符串,分割为单个字的全拼的组合;
简拼分割子装置112,用于基于预先建立的音节树,将当前输入的拼音字符串,分割为单个字的简拼的组合;
全拼和简拼分割子装置113,用于基于预先建立的音节树,将当前输入的拼音字符串分割为单个字的全拼和简拼的组合;
其中,在所述音节树中,一个合法单字的拼音构成音节树的一个分支。
图9为本发明提供的一种基于拼音输入的汉字输入装置的实施例二的结构示意图,如图9所示,本实施例的装置在图7所示装置基础上,进一步地,在对当前输入的拼音字符串,按不同的分割法分割的不同的字符串组合中,包括:第一字符串组合,第一字符串组合包括相邻的第一子串和第二子串,第二子串位于第一子串之后,确定模块12可以包括:第一查找子模块121a,第二查找子模块122a,确定子模块123a,其中,
第一查找子模块121a,用于在预先建立的拼音树中,自所述拼音树的根节点出发,查找第一子串;
第二查找子模块122a,用于查找到第一子串后,在第一子串的子节点中查找第二子串;
确定子模块123a,用于基于查找到的第一子串和第二子串在所述拼音树中的组合关系,确定所述第一字符串组合所对应的第一候选词以及第一候选词的拼音类型;
其中,在所述拼音树中,一个合法的词的拼音构成拼音树的一个分支,每个分支的节点含有对应的汉字信息,所述汉字信息包括与所述节点的单字拼音相对应的汉字、所述汉字的拼音类型。
本实施例的装置,可以用于执行图1或图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图10为本发明提供的一种基于拼音输入的汉字输入装置的实施例三的结构示意图,如图10所示,本实施例的装置在图9所示装置基础上,进一步地,所述确定模块12,还包括:第一记录子模块124a,用于记录第一候选词为一元候选词。
图11为本发明一实施例中,确定模块的结构示意图,如图11所示,在对当前输入的拼音字符串,按不同的分割法分割的不同的字符串组合中,包括第一字符串组合,第一字符串组合包括第一子串、第二子串和第三子串,第二子串与第一子串相邻且位于第一子串之后,第三子串与第二子串相邻且位于第二子串之后;所述确定模块12,包括:第一查找子模块121b,第二查找子模块122b,第三查找子模块123b,第四查找子模块124b,确定子模块125b,其中,
第一查找子模块121b,用于在预先建立的拼音树中,自所述拼音树的根节点出发,查找第一子串;
第二查找子模块122b,用于查找到第一子串后,在第一子串的子节点中查找第二子串;
第三查找子模块123b,用于在第一子串的子节点中查找到第二子串后,在第二子串的子节点中查找第三子串;
第四查找子模块124b,用于若在第二子串的子节点中未找到第三子串,则自所述拼音树的根节点出发,查找第三子串;
确定子模块125b,具体用于查找到第三子串后,将基于第一子串和第二子串在所述拼音树中的组合关系所确定的词,与第三子串所对应的字相组合,得到所述第一字符串组合所对应的第二候选词以及第二候选词的拼音类型。
图12为本发明又一实施例中,确定模块的结构示意图,如图12所示,本实施例中确定模块,在图11的基础上,还包括:第二记录子模块126b,用于记录第二候选词为二元候选词,并记录所述第一子串和第二子串在所述拼音树中的组合关系所确定的词为二元词的第一部分,第三子串所对应的字为二元词的第二部分。
图13为本发明一实施例中,分割模块的结构示意图,如图13所示,所述分割模块11,可进一步地包括:纠错子模块111,分割子模块112,其中,
纠错子模块111,用于对当前输入的拼音字符串按预设纠错规则进行纠错,得到纠错后拼音字符串和所述当前输入的拼音字符串的纠错类型的个数;
分割子模块112,用于对纠错后拼音字符串,按不同的分割法分割为不同的字符串组合。
本实施例的装置,可以用于执行图6所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在本发明一实施例中,得分模块13,包括得分子模块,用于根据第一字符串组合所对应的第一候选词或第二候选词的拼音类型和词频,确定第一字符串组合所对应的第一候选词或第一候选词的得分,具体根据如下公式确定第一候选词或第二候选词的得分:
score=score_ngram(P)+score_word_att(P);
其中,score_ngram(P)为第一候选词或第二候选词P的词频得分,score_word_att(P)为第一候选词或第二候选词P的拼音类型得分;
当P为一元词时,score_ngram(P)=log(q)/log(r)+A;其中,q为一元词P对应的词频,r为算分系数,A为修正值;
当P为二元词时,score_ngram(P)=score_ngram(P1)+score_ngram(P2)-A;其中,二元词P由第一部分P1和第二部分P2组成;score_ngram(P1)=log(q1)/log(r)+A,score_ngram(P2)=log(q2)/log(r)+A;其中,q1为第一部分P1对应的词频,q2为第二部分P2对应的词频,r为算分系数,A为修正值;
score_word_att(P)=backoff_score(word_att(P)),其中,word_att(P)为第一候选词或第二候选词P的拼音类型,backoff_score(word_att(P))为不同拼音类型的得分。
在本发明再一实施例中,得分模块13,包括:确定子模块,根据第一字符串组合所对应的第一候选词或第二候选词的拼音类型和词频,确定第一字符串组合所对应的第一候选词或第一候选词的得分,具体根据如下公式确定第一候选词或第二候选词的得分:
score=score_ngram(P)+score_word_att(P)+score_repair(P);
其中,score_ngram(P)为第一候选词或第二候选词P的词频得分,score_word_att(P)为第一候选词或第二候选词P的拼音类型得分,score_repair(P)为纠错得分;
当P为一元词时,score_ngram(P)=log(q)/log(r)+A;其中,q为一元词P对应的词频,r为算分系数,A为修正值;
当P为二元词时,score_ngram(P)=score_ngram(P1)+score_ngram(P2)-A;其中,二元词P由第一部分P1和第二部分P2组成;score_ngram(P1)=log(q1)/log(r)+A,score_ngram(P2)=10g(q2)/log(r)+A;其中,q1为第一部分P1对应的词频,q2为第二部分P2对应的词频,r为算分系数,A为修正值;
score_word_att(P)=backoff_score(word_att(P)),其中,word_att(P)为第一候选词或第二候选词P的拼音类型,backoff_score(word_att(P))为不同拼音类型的得分;
score_repair(P)=score_ngram(P)*s*N,其中,s为惩罚系数,0≤s≤1,N为第一候选词或第二候选词P中出现纠错类型的个数。
第三方面,本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。
图14为本发明电子设备一个实施例的结构示意图,可以实现本发明图1、3、5和6所示实施例的流程,如图10所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的方法。
处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-3所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明任一实施例提供的方法。
第五方面,本发明的实施例还提供一种应用程序,所述应用程序被执行以实现本发明任一实施例提供的方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (18)
1.一种基于拼音输入的汉字输入方法,其特征在于,包括:
对当前输入的拼音字符串,按不同的分割法分割为不同的字符串组合;所述对当前输入的拼音字符串,按不同的分割法分割为不同的字符串组合,包括:对当前输入的拼音字符串按预设纠错规则进行纠错,得到纠错后拼音字符串并记录所述当前输入的拼音字符串的纠错类型的个数;对纠错后拼音字符串,按不同的分割法分割为不同的字符串组合;
确定每个字符串组合所对应的候选词以及所对应的候选词的拼音类型;
根据每个字符串组合所对应的候选词的拼音类型和词频,确定每个字符串组合所对应的候选词的得分;
根据每个字符串组合所对应的候选词的得分高低,对不同字符串组合各自所对应的候选词进行排序显示。
2.根据权利要求1所述的汉字输入方法,其特征在于,所述分割法,包括如下至少一种分割法:
基于预先建立的音节树,将当前输入的拼音字符串,分割为单个字的全拼的组合;
基于预先建立的音节树,将当前输入的拼音字符串,分割为单个字的简拼的组合;
基于预先建立的音节树,将当前输入的拼音字符串分割为单个字的全拼和简拼的组合;
其中,在所述音节树中,一个合法单字的拼音构成音节树的一个分支。
3.根据权利要求1所述的汉字输入方法,其特征在于,在对当前输入的拼音字符串,按不同的分割法分割的不同的字符串组合,包括:第一字符串组合,第一字符串组合包括:相邻的第一子串和第二子串,第二子串位于第一子串之后;
所述确定每个字符串组合所对应的候选词以及所对应的候选词的拼音类型,包括:
在预先建立的拼音树中,自所述拼音树的根节点出发,查找第一子串;
查找到第一子串后,在第一子串的子节点中查找第二子串;
基于查找到的第一子串和第二子串在所述拼音树中的组合关系,确定所述第一字符串组合所对应的第一候选词以及第一候选词的拼音类型;
其中,在所述拼音树中,一个合法的词的拼音构成拼音树的一个分支,每个分支的节点含有对应的汉字信息,所述汉字信息包括与所述节点的单字拼音相对应的汉字、所述汉字的拼音类型。
4.根据权利要求3所述的汉字输入方法,其特征在于,在基于查找到的第一子串和第二子串在所述拼音树中的组合关系,确定所述第一字符串组合所对应的第一候选词之后,所述方法还包括:记录第一候选词为一元候选词。
5.根据权利要求1所述的汉字输入方法,其特征在于,在对当前输入的拼音字符串,按不同的分割法分割的不同的字符串组合,包括:第一字符串组合,第一字符串组合包括:第一子串、第二子串和第三子串,第二子串与第一子串相邻且位于第一子串之后,第三子串与第二子串相邻且位于第二子串之后;
所述确定每个字符串组合所对应的候选词以及所对应的候选词的拼音类型,包括:
在预先建立的拼音树中,自所述拼音树的根节点出发,查找第一子串;
查找到第一子串后,在第一子串的子节点中查找第二子串;
在第一子串的子节点中查找到第二子串后,在第二子串的子节点中查找第三子串;
若在第二子串的子节点中未找到第三子串,则自所述拼音树的根节点出发,查找第三子串;
查找到第三子串后,将基于第一子串和第二子串在所述拼音树中的组合关系所确定的词,与第三子串所对应的字相组合,得到所述第一字符串组合所对应的第二候选词以及第二候选词的拼音类型。
6.根据权利要求5所述的汉字输入方法,其特征在于,所述得到所述第一字符串组合所对应的第二候选词之后,所述方法还包括:记录第二候选词为二元候选词,并记录所述第一子串和第二子串在所述拼音树中的组合关系所确定的词为二元词的第一部分,第三子串所对应的字为二元词的第二部分。
7.根据权利要求4或6所述的汉字输入方法,其特征在于,所述根据每个字符串组合所对应的候选词的拼音类型和词频,确定每个字符串组合所对应的候选词的得分,包括:
根据第一字符串组合所对应的第一候选词或第二候选词的拼音类型和词频,确定第一字符串组合所对应的第一候选词或第一候选词的得分,具体根据如下公式确定第一候选词或第二候选词的得分:
score=score_ngram(P)+score_word_att(P);
其中,score_ngram(P)为第一候选词或第二候选词P的词频得分,
score_word_att(P)为第一候选词或第二候选词P的拼音类型得分;
当P为一元词时,score_ngram(P)=log(q)/log(r)+A;其中,q为一元词P对应的词频,r为算分系数,A为修正值;
当P为二元词时,score_ngram(P)=score_ngram(P1)+score_ngram(P2)-A;其中,二元词P由第一部分P1和第二部分P2组成;score_ngram(P1)=log(q1)/log(r)+A,score_ngram(P2)=log(q2)/log(r)+A;其中,q1为第一部分P1对应的词频,q2为第二部分P2对应的词频,r为算分系数,A为修正值;
score_word_att(P)=backoff_score(word_att(P)),其中,word_att(P)为第一候选词或第二候选词P的拼音类型,backoff_score(word_att(P))为不同拼音类型的得分。
8.根据权利要求1、4或6所述的汉字输入方法,其特征在于,所述根据每个字符串组合所对应的候选词的拼音类型和词频,确定每个字符串组合所对应的候选词的得分,包括:
根据第一字符串组合所对应的第一候选词或第二候选词的拼音类型和词频,确定第一字符串组合所对应的第一候选词或第一候选词的得分,具体根据如下公式确定第一候选词或第二候选词的得分:
score=score_ngram(P)+score_word_att(P)+score_repair(P);
其中,score_ngram(P)为第一候选词或第二候选词P的词频得分,score_word_att(P)为第一候选词或第二候选词P的拼音类型得分,score_repair(P)为纠错得分;
当P为一元词时,score_ngram(P)=log(q)/log(r)+A;其中,q为一元词P对应的词频,r为算分系数,A为修正值;
当P为二元词时,score_ngram(P)=score_ngram(P1)+score_ngram(P2)-A;其中,二元词P由第一部分P1和第二部分P2组成;score_ngram(P1)=log(q1)/log(r)+A,score_ngram(P2)=log(q2)/log(r)+A;其中,q1为第一部分P1对应的词频,q2为第二部分P2对应的词频,r为算分系数,A为修正值;
score_word_att(P)=backoff_score(word_att(P)),其中,word_att(P)为第一候选词或第二候选词P的拼音类型,backoff_score(word_att(P))为不同拼音类型的得分;
score_repair(P)=score_ngram(P)*s*N,其中,s为惩罚系数,0≤s≤1,N为第一候选词或第二候选词P中出现纠错类型的个数。
9.一种基于拼音输入的汉字输入装置,其特征在于,包括:
分割模块,用于对当前输入的拼音字符串,按不同的分割法分割为不同的字符串组合;所述分割模块,包括:纠错子模块,用于对当前输入的拼音字符串按预设纠错规则进行纠错,得到纠错后拼音字符串并记录所述当前输入的拼音字符串的纠错类型的个数;分割子模块,用于对纠错后拼音字符串,按不同的分割法分割为不同的字符串组合;
确定模块,用于确定每个字符串组合所对应的候选词以及所对应的候选词的拼音类型;
得分模块,用于根据每个字符串组合所对应的候选词的拼音类型和词频,确定每个字符串组合所对应的候选词的得分;
排序显示模块,用于根据每个字符串组合所对应的候选词的得分高低,对不同字符串组合各自所对应的候选词进行排序显示。
10.根据权利要求9所述的汉字输入装置,其特征在于,所述分割模块,包括如下至少一种分割子装置:
全拼分割子装置,用于基于预先建立的音节树,将当前输入的拼音字符串,分割为单个字的全拼的组合;
简拼分割子装置,用于基于预先建立的音节树,将当前输入的拼音字符串,分割为单个字的简拼的组合;
全拼和简拼分割子装置,用于基于预先建立的音节树,将当前输入的拼音字符串分割为单个字的全拼和简拼的组合;
其中,在所述音节树中,一个合法单字的拼音构成音节树的一个分支。
11.根据权利要求9所述的汉字输入装置,其特征在于,在对当前输入的拼音字符串,按不同的分割法分割的不同的字符串组合中,包括:第一字符串组合,第一字符串组合包括相邻的第一子串和第二子串,第二子串位于第一子串之后;
所述确定模块,包括:
第一查找子模块,用于在预先建立的拼音树中,自所述拼音树的根节点出发,查找第一子串;
第二查找子模块,用于查找到第一子串后,在第一子串的子节点中查找第二子串;
确定子模块,用于基于查找到的第一子串和第二子串在所述拼音树中的组合关系,确定所述第一字符串组合所对应的第一候选词以及所第一候选词的拼音类型;
其中,在所述拼音树中,一个合法的词的拼音构成拼音树的一个分支,每个分支的节点含有对应的汉字信息,所述汉字信息包括与所述节点的单字拼音相对应的汉字、所述汉字的拼音类型。
12.根据权利要求11所述的汉字输入装置,其特征在于,所述确定模块,
还包括:
第一记录子模块,用于记录第一候选词为一元候选词。
13.根据权利要求9所述的汉字输入装置,其特征在于,在对当前输入的拼音字符串,按不同的分割法分割的不同的字符串组合,包括:第一字符串组合,第一字符串组合包括:第一子串、第二子串和第三子串,第二子串与第一子串相邻且位于第一子串之后;
所述确定模块,还包括:
第一查找子模块,用于在预先建立的拼音树中,自所述拼音树的根节点出发,查找第一子串;
第二查找子模块,用于查找到第一子串后,在第一子串的子节点中查找第二子串;
第三查找子模块,用于在第一子串的子节点中查找到第二子串后,在第二子串的子节点中查找第三子串;
第四查找子模块,用于若在第二子串的子节点中未找到第三子串,则自所述拼音树的根节点出发,查找第三子串;
确定子模块,具体用于查找到第三子串后,将基于第一子串和第二子串在所述拼音树中的组合关系所确定的词,与第三子串所对应的字相组合,得到所述第一字符串组合所对应的第二候选词以及第二候选词的拼音类型。
14.根据权利要求13所述的汉字输入装置,其特征在于,所述确定模块,还包括:第二记录子模块,用于记录第二候选词为二元候选词,并记录所述第一子串和第二子串在所述拼音树中的组合关系所确定的词为二元词的第一部分,第三子串所对应的字为二元词的第二部分。
15.根据权利要求12或14任一所述的汉字输入装置,其特征在于,所述得分模块,包括得分子模块,用于根据第一字符串组合所对应的第一候选词或第二候选词的拼音类型和词频,确定第一字符串组合所对应的第一候选词或第一候选词的得分,具体根据如下公式确定第一候选词或第二候选词的得分:
score=score_ngram(P)+score_word_att(P);
其中,score_ngram(P)为第一候选词或第二候选词P的词频得分,
score_word_att(P)为第一候选词或第二候选词P的拼音类型得分;
当P为一元词时,score_ngram(P)=log(q)/log(r)+A;其中,q为一元词P对应的词频,r为算分系数,A为修正值;
当P为二元词时,score_ngram(P)=score_ngram(P1)+score_ngram(P2)-A;其中,二元词P由第一部分P1和第二部分P2组成;score_ngram(P1)=log(q1)/log(r)+A,score_ngram(P2)=log(q2)/log(r)+A;其中,q1为第一部分P1对应的词频,q2为第二部分P2对应的词频,r为算分系数,A为修正值;
score_word_att(P)=backoff_score(word_att(P)),其中,word_att(P)为第一候选词或第二候选词P的拼音类型,backoff_score(word_att(P))为不同拼音类型的得分。
16.根据权利要求9、12或14所述的汉字输入装置,其特征在于,所述得分模块,包括得分子模块,用于根据第一字符串组合所对应的第一候选词或第二候选词的拼音类型和词频,确定第一字符串组合所对应的第一候选词或第一候选词的得分,具体根据如下公式确定第一候选词或第二候选词的得分:
score=score_ngram(P)+score_word_att(P)+score_repair(P);
其中,score_ngram(P)为第一候选词或第二候选词P的词频得分,score_word_att(P)为第一候选词或第二候选词P的拼音类型得分,score_repair(P)为纠错得分;
当P为一元词时,score_ngram(P)=log(q)/log(r)+A;其中,q为一元词P对应的词频,r为算分系数,A为修正值;
当P为二元词时,score_ngram(P)=score_ngram(P1)+score_ngram(P2)-A;其中,二元词P由第一部分P1和第二部分P2组成;score_ngram(P1)=log(q1)/log(r)+A,score_ngram(P2)=log(q2)/log(r)+A;其中,q1为第一部分P1对应的词频,q2为第二部分P2对应的词频,r为算分系数,A为修正值;
score_word_att(P)=backoff_score(word_att(P)),其中,word_att(P)为第一候选词或第二候选词P的拼音类型,backoff_score(word_att(P))为不同拼音类型的得分;
score_repair(P)=score_ngram(P)*s*N,其中,s为惩罚系数,0≤s≤1,N为第一候选词或第二候选词P中出现纠错类型的个数。
17.一种电子设备,其特征在于,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述权利要求1-8任一所述的基于拼音输入的汉字输入方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述权利要求1-8任一所述的基于拼音输入的汉字输入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910572559.4A CN110262674B (zh) | 2019-06-27 | 2019-06-27 | 一种基于拼音输入的汉字输入方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910572559.4A CN110262674B (zh) | 2019-06-27 | 2019-06-27 | 一种基于拼音输入的汉字输入方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110262674A CN110262674A (zh) | 2019-09-20 |
CN110262674B true CN110262674B (zh) | 2023-07-18 |
Family
ID=67922816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910572559.4A Active CN110262674B (zh) | 2019-06-27 | 2019-06-27 | 一种基于拼音输入的汉字输入方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110262674B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112987941B (zh) * | 2019-12-17 | 2024-02-13 | 北京搜狗科技发展有限公司 | 生成候选词的方法及装置 |
CN111309851B (zh) * | 2020-02-13 | 2023-09-19 | 北京金山安全软件有限公司 | 一种实体词存储方法、装置及电子设备 |
CN116088692B (zh) * | 2021-11-03 | 2024-04-19 | 百度国际科技(深圳)有限公司 | 用于呈现候选字符串和训练判别式模型的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192108A (zh) * | 2007-03-28 | 2008-06-04 | 腾讯科技(深圳)有限公司 | 一种中文拼音输入方法及系统 |
CN102736741A (zh) * | 2011-04-12 | 2012-10-17 | 腾讯科技(深圳)有限公司 | 一种汉字的拼音输入方法及系统 |
CN105573992A (zh) * | 2015-12-15 | 2016-05-11 | 中译语通科技(北京)有限公司 | 实时翻译方法及装置 |
CN109725736A (zh) * | 2017-10-27 | 2019-05-07 | 北京搜狗科技发展有限公司 | 一种候选排序方法、装置及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010105428A1 (en) * | 2009-03-19 | 2010-09-23 | Google Inc. | Input method editor |
-
2019
- 2019-06-27 CN CN201910572559.4A patent/CN110262674B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192108A (zh) * | 2007-03-28 | 2008-06-04 | 腾讯科技(深圳)有限公司 | 一种中文拼音输入方法及系统 |
CN102736741A (zh) * | 2011-04-12 | 2012-10-17 | 腾讯科技(深圳)有限公司 | 一种汉字的拼音输入方法及系统 |
CN105573992A (zh) * | 2015-12-15 | 2016-05-11 | 中译语通科技(北京)有限公司 | 实时翻译方法及装置 |
CN109725736A (zh) * | 2017-10-27 | 2019-05-07 | 北京搜狗科技发展有限公司 | 一种候选排序方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110262674A (zh) | 2019-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105512291B (zh) | 用于扩展数据库搜索查询的方法和系统 | |
US9026432B2 (en) | Automatic context sensitive language generation, correction and enhancement using an internet corpus | |
CN107704102B (zh) | 一种文本输入方法及装置 | |
US9015036B2 (en) | Automatic context sensitive language correction using an internet corpus particularly for small keyboard devices | |
CN110262674B (zh) | 一种基于拼音输入的汉字输入方法、装置及电子设备 | |
KR101465770B1 (ko) | 단어 확률 결정 | |
ERYİǦİT et al. | Social media text normalization for Turkish | |
CN106202153A (zh) | 一种es搜索引擎的拼写纠错方法及系统 | |
CN101815996A (zh) | 检测名称实体和新词 | |
CN110362824B (zh) | 一种自动纠错的方法、装置、终端设备及存储介质 | |
US11531693B2 (en) | Information processing apparatus, method and non-transitory computer readable medium | |
Verberne | Context-sensitive spell checking based on word trigram probabilities | |
CN111651578B (zh) | 人机对话方法、装置及设备 | |
CN110619112B (zh) | 用于汉字的读音标注方法、装置、电子设备及存储介质 | |
Reuter et al. | Segmenting twitter hashtags | |
CN112861521A (zh) | 语音识别结果纠错方法、电子设备及存储介质 | |
US8024319B2 (en) | Finite-state model for processing web queries | |
JP2000298667A (ja) | 構文情報による漢字変換装置 | |
CN102929864A (zh) | 一种音字转换方法及装置 | |
CN111428487A (zh) | 模型训练方法、歌词生成方法、装置、电子设备及介质 | |
CN109002454B (zh) | 一种确定目标单词的拼读分区的方法和电子设备 | |
CN112905026B (zh) | 展示单词建议的方法、装置、存储介质及计算机设备 | |
KR101982490B1 (ko) | 문자 데이터 변환에 기초한 키워드 검색 방법 및 그 장치 | |
JP7098463B2 (ja) | 単語列修正装置、単語列修正方法及びプログラム | |
CN111125302A (zh) | 用户输入语句检错方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |