一種拼音流切分方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提出了一種拼音流切分方法及系統(tǒng),該拼音流切分方法包括如下步驟:分別在字符存儲陣列的字符存儲單元中存儲一個字母和一個指針,在音節(jié)存儲陣列的音節(jié)存儲子陣列中存儲音節(jié)串,字符存儲單元與音節(jié)存儲子陣列一一對應(yīng),字符存儲單元中的指針指向字符存儲單元所對應(yīng)的音節(jié)存儲子陣列;控制器在接收到通過人機(jī)交互界面輸入的檢索串時,根據(jù)字符存儲單元與音節(jié)存儲子陣列的對應(yīng)關(guān)系在存儲器中查找與檢索串對應(yīng)的音節(jié)串,對檢索串進(jìn)行切分,并指令人機(jī)交互界面對所有音節(jié)串組合進(jìn)行顯示。本發(fā)明利用字符存儲單元存儲的字母與音節(jié)存儲子陣列存儲的音節(jié)串的對應(yīng)關(guān)系對檢索串進(jìn)行切分,能夠提高音節(jié)切分速度和準(zhǔn)確率。
【專利說明】一種拼音流切分方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,具體涉及一種能夠提高速度和準(zhǔn)確率的拼音流切 分方法及系統(tǒng)。
【背景技術(shù)】
[0002] 拼音字符串的音節(jié)切分技術(shù)是指把用戶輸入的拼音字符串(不包含聲調(diào)、音節(jié)分 割符等)切分為若干個符合漢語語法規(guī)則的音節(jié)字符串的過程,通常采用拼音分隔符"'"來 連接切分后的各音節(jié)子串。例如用戶輸入的拼音字符串"woaibeijingtiananmen"可切分 為"wo' ai' bei' jing' tian' an' men"。音節(jié)切分技術(shù)是拼音向漢字轉(zhuǎn)換的基礎(chǔ),有效的音 節(jié)切分可降低用戶負(fù)擔(dān),增強(qiáng)用戶體驗(yàn)性。
[0003] 目前,常用的音節(jié)切分方式是基于統(tǒng)計(jì)的切分方式,即通過概率算法,計(jì)算用戶 輸入拼音串中拼音字符連續(xù)的概率,從而獲取切分結(jié)果,這種方法雖然能夠較好地適應(yīng)各 種拼音應(yīng)用,具有較強(qiáng)的擴(kuò)展性與適應(yīng)性,但算法復(fù)雜、計(jì)算量大、音節(jié)切分速度慢,準(zhǔn)確率 低。
【發(fā)明內(nèi)容】
[0004] 為了克服上述現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的是提供一種拼音流切分方法 及系統(tǒng),該拼音流切分方法算法簡潔,能夠提高音節(jié)切分速度和準(zhǔn)確率。
[0005] 為了實(shí)現(xiàn)本發(fā)明的上述目的,根據(jù)本發(fā)明的一個方面,本發(fā)明提供了一種拼音流 切分方法,包括如下步驟:
[0006] S1,數(shù)據(jù)存儲:分別在存儲器的字符存儲陣列的Μ個字符存儲單元中存儲一個字 母和一個指針,在存儲器的音節(jié)存儲陣列的Μ個音節(jié)存儲子陣列中存儲音節(jié)串,所述字符 存儲單元與所述音節(jié)存儲子陣列一一對應(yīng),所述字符存儲單元中的指針指向所述字符存儲 單元所對應(yīng)的音節(jié)存儲子陣列,所述音節(jié)存儲陣列的第Ν個音節(jié)存儲子陣列包括Ρ Ν個音節(jié) 存儲單元,所述ΡΝ個音節(jié)存儲單元中依次存儲有所述音節(jié)存儲子陣列對應(yīng)的字符存儲單元 中存儲的字母為首字母的音節(jié)串,所述Μ、Ν、Ρ Ν均為正整數(shù),所述N=l,2,…,Μ ;
[0007] S2,數(shù)據(jù)查詢:控制器在接收到通過人機(jī)交互界面輸入的檢索串時,根據(jù)字符存 儲單元與音節(jié)存儲子陣列的對應(yīng)關(guān)系在存儲器中查找與所述檢索串對應(yīng)的音節(jié)串,對檢索 串進(jìn)行切分,并指令人機(jī)交互界面對所有音節(jié)串組合進(jìn)行顯示。
[0008] 本發(fā)明的拼音流切分方法利用字符存儲單元存儲的字母與音節(jié)存儲子陣列存儲 的音節(jié)串的對應(yīng)關(guān)系對檢索串進(jìn)行切分,能夠提高音節(jié)切分速度和準(zhǔn)確率。
[0009] 在本發(fā)明的一種優(yōu)選實(shí)施例中,控制器在接收到通過人機(jī)交互界面輸入的檢索串 時,根據(jù)字符存儲單元與音節(jié)存儲子陣列的對應(yīng)關(guān)系在存儲器中查找與所述檢索串對應(yīng)的 音節(jié)串組合的步驟為:
[0010] S21 :控制器獲取檢索串;
[0011] S22 :控制器判斷檢索串是否包含漢字,如果檢索串包含漢字則將所述檢索串中的 漢字轉(zhuǎn)化為拼音;
[0012] S23 :從所述檢索串中提取待分割檢索串;
[0013] S24:控制器判斷所述待分割檢索串是否為空,如果待分割檢索串為空,則結(jié)束拼 音流切分算法,將結(jié)果集通過人機(jī)交互界面進(jìn)行顯示;
[0014] S25 :控制器獲取待分割檢索串中的首字符并根據(jù)字符存儲單元與音節(jié)存儲子陣 列的對應(yīng)關(guān)系在存儲器中查找所述首字符的字符匹配集;
[0015] S26 :判斷所述字符匹配集中首字符音節(jié)串的后續(xù)字符的字符匹配集是否為空,如 果為空,則說明當(dāng)前音節(jié)分割方式錯誤,將后續(xù)字符的字符匹配集是空的音節(jié)串刪除,并將 該音節(jié)串相應(yīng)的待分割檢索串刪除,返回步驟S23 ;
[0016] S27 :判斷字符匹配集中的音節(jié)串個數(shù)是否為1,如果為1,則將音節(jié)串置入結(jié)果集 并將所述音節(jié)串從所述檢索串中刪除,返回步驟S23 ;
[0017] S28 :將字符匹配集中的音節(jié)串存入結(jié)果集中,分別將音節(jié)串從檢索串中刪除,返 回步驟S23。
[0018] 本發(fā)明提取待分割檢索串對只對待分割檢索串進(jìn)行切分,并刪除字符匹配集中首 字符音節(jié)串的后續(xù)字符的字符匹配集為空的字符匹配集,大大提高了音節(jié)切分速度和切分 效率,另外,本發(fā)明對檢索串的所有音節(jié)切分結(jié)果進(jìn)行顯示,提高了用戶使用的便利性。
[0019] 在本發(fā)明的另一種優(yōu)選實(shí)施例中,當(dāng)所述檢索串包含漢字時,控制器將所述檢索 串中的漢字轉(zhuǎn)化為用分隔符分隔的拼音,提取所述檢索串中非中文拼音的部分作為待分割 檢索串。
[0020] 本發(fā)明將檢索串中的漢字轉(zhuǎn)化為用分隔符分隔的拼音,提取檢索串中非中文拼音 的部分作為待分割檢索串,能夠提高音節(jié)切分速度和切分效率。
[0021] 在本發(fā)明的再一種優(yōu)選實(shí)施例中,當(dāng)所述檢索串包含分隔符時,被所述分隔符分 割的檢索串單元分別作為待分割檢索串。
[0022] 本發(fā)明當(dāng)檢索串包含分隔符時,被分隔符分割的檢索串單元分別作為待分割檢索 串,能夠提高音節(jié)切分速度和切分效率。
[0023] 在本發(fā)明的一種優(yōu)選實(shí)施例中,所述PpP2、…、Ρμ^Ρμ的數(shù)值相等。
[0024] 在本發(fā)明的另一種優(yōu)選實(shí)施例中,所述ΡρΡ2、…、Ρμ^Ρμ的數(shù)值不全部相等。
[0025] 本發(fā)明第Ν個音節(jié)存儲子陣列的音節(jié)存儲單元的數(shù)量ΡΝ可以相同也可以不相同, 提高了設(shè)計(jì)的靈活性,同時,音節(jié)存儲單元的數(shù)量Ρ Ν可以根據(jù)其存儲的音節(jié)串的數(shù)量進(jìn)行 設(shè)計(jì),節(jié)約了存儲空間。
[0026] 在本發(fā)明的一種優(yōu)選實(shí)施例中,所述Μ為23。
[0027] 漢語中不存在首字符為"i "、"u"、"v"的音節(jié)串,本發(fā)明字符存儲陣列包括23個字 符存儲單元,音節(jié)存儲陣列包括23個音節(jié)存儲子陣列,從而節(jié)約了存儲空間。
[0028] 為了實(shí)現(xiàn)本發(fā)明的上述目的,根據(jù)本發(fā)明的二個方面,本發(fā)明提供了一種拼音流 切分系統(tǒng),包括:人機(jī)交互界面、控制器和存儲器,所述人機(jī)交互界面與所述控制器連接,所 述控制器與所述存儲器連接;所述存儲器包括字符存儲陣列和音節(jié)存儲陣列,所述字符存 儲陣列包括Μ個字符存儲單元,所述音節(jié)存儲陣列包括Μ個音節(jié)存儲子陣列,所述字符存儲 單元與所述音節(jié)存儲子陣列一一對應(yīng),所述字符存儲陣列的Μ個字符存儲單元中依次存儲 有一個字母以及指向所述字符存儲單元所對應(yīng)的音節(jié)存儲子陣列的指針,所述音節(jié)存儲陣 列的第N個音節(jié)存儲子陣列包括PN個音節(jié)存儲單元,所述PN個音節(jié)存儲單元中依次存儲有 所述音節(jié)存儲子陣列對應(yīng)的字符存儲單元中存儲的字母為首字母的音節(jié)串,所述M、N、Pn均 為正整數(shù),所述N=l,2,…,Μ ;所述控制器用于:在接收到通過人機(jī)交互界面輸入的檢索串 時,根據(jù)字符存儲單元與音節(jié)存儲子陣列的對應(yīng)關(guān)系在存儲器中查找與所述檢索串對應(yīng) 的音節(jié)串組合,并指令人機(jī)交互界面對所有音節(jié)串組合進(jìn)行顯示。
[0029] 本發(fā)明的拼音流切分系統(tǒng)利用字符存儲單元存儲的字母與音節(jié)存儲子陣列存儲 的音節(jié)串的對應(yīng)關(guān)系對檢索串進(jìn)行切分,能夠提高音節(jié)切分速度和準(zhǔn)確率。
[0030] 本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變 得明顯,或通過本發(fā)明的實(shí)踐了解到。
【專利附圖】
【附圖說明】
[0031] 本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對實(shí)施例的描述中將變 得明顯和容易理解,其中 :
[0032] 圖1是本發(fā)明拼音流切分系統(tǒng)的方框圖;
[0033] 圖2是本發(fā)明拼音流切分系統(tǒng)中存儲器的結(jié)構(gòu)示意圖;
[0034] 圖3是本發(fā)明一種優(yōu)選實(shí)施例中的拼音流切分方法流程圖。
【具體實(shí)施方式】
[0035] 下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終 相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附 圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
[0036] 為便于對本發(fā)明進(jìn)行正確理解,首先對幾個術(shù)語進(jìn)行如下定義:
[0037] 音節(jié)串:本發(fā)明中音節(jié)串是符合語法規(guī)則的由一個或幾個音素按一定規(guī)律組合 而成的拼音字符串,所有的音節(jié)串均存在中文漢字與之相對應(yīng),例如,音節(jié)串"chong"與 中文漢字"重"相對應(yīng),音節(jié)串不包含聲調(diào),例如,"ch 〇ng"、"qing"均為一個音節(jié)串,但 "Ch〇ngqing","ch 〇g"則都不為音節(jié)串,表1是漢語拼音中的所有音節(jié)串,共410種,表1中 左面一列為首字母,右面一列為以首字母開頭的音節(jié)串。
[0038] 表1.漢語拼音音節(jié)串表
[0039]
【權(quán)利要求】
1. 一種拼音流切分方法,其特征在于,包括如下步驟: S1,數(shù)據(jù)存儲:分別在存儲器的字符存儲陣列的Μ個字符存儲單元中存儲一個字母和 一個指針,在存儲器的音節(jié)存儲陣列的Μ個音節(jié)存儲子陣列中存儲音節(jié)串,所述字符存儲 單元與所述音節(jié)存儲子陣列一一對應(yīng),所述字符存儲單元中的指針指向所述字符存儲單元 所對應(yīng)的音節(jié)存儲子陣列,所述音節(jié)存儲陣列的第Ν個音節(jié)存儲子陣列包括Ρ Ν個音節(jié)存儲 單元,所述ΡΝ個音節(jié)存儲單元中依次存儲有所述音節(jié)存儲子陣列對應(yīng)的字符存儲單元中存 儲的字母為首字母的音節(jié)串,所述Μ、Ν、Ρ Ν均為正整數(shù),所述N=l,2,…,Μ ; S2,數(shù)據(jù)查詢:控制器在接收到通過人機(jī)交互界面輸入的檢索串時,根據(jù)字符存儲單 元與音節(jié)存儲子陣列的對應(yīng)關(guān)系在存儲器中查找與所述檢索串對應(yīng)的音節(jié)串,對檢索串進(jìn) 行切分,并指令人機(jī)交互界面對所有音節(jié)串組合進(jìn)行顯示。
2. 如權(quán)利要求1所述的拼音流切分方法,其特征在于,控制器在接收到通過人機(jī)交互 界面輸入的檢索串時,根據(jù)字符存儲單元與音節(jié)存儲子陣列的對應(yīng)關(guān)系在存儲器中查找與 所述檢索串對應(yīng)的音節(jié)串組合的步驟為: 521 :控制器獲取檢索串; 522 :控制器判斷檢索串是否包含漢字,如果檢索串包含漢字則將所述檢索串中的漢字 轉(zhuǎn)化為拼音; 523 :從所述檢索串中提取待分割檢索串; 524 :控制器判斷所述待分割檢索串是否為空,如果待分割檢索串為空,則結(jié)束拼音流 切分算法,將結(jié)果集通過人機(jī)交互界面進(jìn)行顯示; S25:控制器獲取待分割檢索串中的首字符并根據(jù)字符存儲單元與音節(jié)存儲子陣列的 對應(yīng)關(guān)系在存儲器中查找所述首字符的字符匹配集; 526 :判斷所述字符匹配集中首字符音節(jié)串的后續(xù)字符的字符匹配集是否為空,如果為 空,則當(dāng)前音節(jié)分割方式錯誤,將所述后續(xù)字符的字符匹配集是空的音節(jié)串刪除,并將所述 音節(jié)串相應(yīng)的待分割檢索串刪除,返回步驟S23 ; 527 :判斷字符匹配集中的音節(jié)串個數(shù)是否為1,如果為1,則將音節(jié)串置入結(jié)果集并將 所述音節(jié)串從所述檢索串中刪除,返回步驟S23 ; 528 :將字符匹配集中的音節(jié)串存入結(jié)果集中,分別將音節(jié)串從檢索串中刪除,返回步 驟 S23。
3. 如權(quán)利要求2所述的拼音流切分方法,其特征在于,所述如果檢索串包含漢字則將 所述檢索串中的漢字轉(zhuǎn)化為拼音包括:當(dāng)所述檢索串包含漢字時,控制器將所述檢索串中 的漢字轉(zhuǎn)化為用分隔符分隔的拼音; 所述從檢索串中提取待分割檢索串包括:提取所述檢索串中非中文拼音的部分作為待 分割檢索串。
4. 如權(quán)利要求2所述的拼音流切分方法,其特征在于,所述從檢索串中提取待分割檢 索串包括:當(dāng)所述檢索串包含分隔符時,被所述分隔符分割的檢索串單元分別作為待分割 檢索串。
5. 如權(quán)利要求1所述的拼音流切分方法,其特征在于,所述Ρρ Ρ2、…、Ρμ^Ρμ的數(shù)值 相等。
6. 如權(quán)利要求1所述的拼音流切分方法,其特征在于,所述Ρρ Ρ2、…、Ρμ^Ρμ的數(shù)值 不全部相等。
7. 如權(quán)利要求1所述的拼音流切分方法,其特征在于,所述Μ為23。
8. -種拼音流切分系統(tǒng),其特征在于,包括:人機(jī)交互界面、控制器和存儲器,所述人 機(jī)交互界面與所述控制器連接,所述控制器與所述存儲器連接; 所述存儲器包括字符存儲陣列和音節(jié)存儲陣列,所述字符存儲陣列包括Μ個字符存儲 單元,所述音節(jié)存儲陣列包括Μ個音節(jié)存儲子陣列,所述字符存儲單元與所述音節(jié)存儲子 陣列一一對應(yīng),所述字符存儲陣列的Μ個字符存儲單元中依次存儲有一個字母以及指向所 述字符存儲單元所對應(yīng)的音節(jié)存儲子陣列的指針,所述音節(jié)存儲陣列的第Ν個音節(jié)存儲子 陣列包括Ρ Ν個音節(jié)存儲單元,所述ΡΝ個音節(jié)存儲單元中依次存儲有所述音節(jié)存儲子陣列 對應(yīng)的字符存儲單元中存儲的字母為首字母的音節(jié)串,所述Μ、Ν、Ρ Ν均為正整數(shù),所述N=1, 2,…,Μ ; 所述控制器用于:在接收到通過人機(jī)交互界面輸入的檢索串時,根據(jù)字符存儲單元與 音節(jié)存儲子陣列的對應(yīng)關(guān)系在存儲器中查找與所述檢索串對應(yīng)的音節(jié)串組合,并指令人機(jī) 交互界面對所有音節(jié)串組合進(jìn)行顯示。
9. 如權(quán)利要求8所述的拼音流切分系統(tǒng),其特征在于,所述Ρρ Ρ2、…、Ρμ^Ρμ的數(shù)值 相等。
10. 如權(quán)利要求8所述的拼音流切分系統(tǒng),其特征在于,所述ΡρΡ2、…、Ρμ^Ρμ的數(shù)值 不全部相等。
【文檔編號】G06F17/30GK104102661SQ201310121923
【公開日】2014年10月15日 申請日期:2013年4月9日 優(yōu)先權(quán)日:2013年4月9日
【發(fā)明者】熊小鵬, 劉磊 申請人:重慶新媒農(nóng)信科技有限公司