專利名稱:一種字詞輸入方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及輸入法技術(shù)領(lǐng)域,特別是涉及一種字詞輸入方法及系統(tǒng)。
背景技術(shù):
隨著計(jì)算機(jī)、互聯(lián)網(wǎng)等技術(shù)應(yīng)用的越來越廣泛,人們很多的日常工作和娛樂都在 計(jì)算機(jī)上進(jìn)行,用戶越來越頻繁地需要通過計(jì)算機(jī)輸入信息而完成人機(jī)交互。對于中文、日 文、韓文等用戶而言,一般需要通過輸入法程序與計(jì)算機(jī)進(jìn)行交互。以中文用戶為例,一般 來說,用戶輸入的是一串字母(通常是漢字的拼音)或筆畫等編碼字符串,系統(tǒng)需要把它轉(zhuǎn) 換成相應(yīng)的中文字符。然而用戶在進(jìn)行字詞輸入的過程中可能存在較多的錯誤,這里涉及的輸入錯誤, 大致可以分為認(rèn)知錯誤和非認(rèn)知錯誤兩類。認(rèn)知錯誤是那些不知道欲輸入的字詞如何正確 拼寫,造成的輸入錯誤,模糊音就屬于認(rèn)知錯誤這個范疇。而非認(rèn)知錯誤是指,知道字詞如 何拼寫,但是由于輸入時(shí)手忙腳亂或者受制于輸入設(shè)備等而造成了輸入錯誤。目前,一些輸入法系統(tǒng)提供了糾錯設(shè)置,參見圖1,這種方法通常根據(jù)大量的用戶 輸入數(shù)據(jù)訓(xùn)練生成糾錯列表;在生成候選之前根據(jù)糾錯列表中的規(guī)則進(jìn)行強(qiáng)制糾錯,例如, 根據(jù)圖ι所示的糾錯列表,如果用戶的輸入序列中出現(xiàn)了 gn,便直接將其轉(zhuǎn)換為ng。這種方 法雖然在一定程度上實(shí)現(xiàn)了自動糾錯,但也存在一些缺點(diǎn),例如,糾錯列表是默認(rèn)預(yù)置的, 并且列表中的錯誤片段與正確片段之間是一一對應(yīng)的。在用戶輸入的過程中,會將命中了 糾錯列表的輸入片段作為錯誤輸入片段,糾錯時(shí),只能將糾錯列表中與該錯誤輸入片段對 應(yīng)的片段作為糾錯結(jié)果。這種方法僅針對一些常見的輸入錯誤比較有效,但是,對于實(shí)際應(yīng) 用中的一些不常見的輸入錯誤,這種方法的有效性比較低。因此,需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是如何提供一種更有效、 應(yīng)用范圍更廣的糾錯方案。
發(fā)明內(nèi)容
本發(fā)明提供一種字詞輸入方法及系統(tǒng),能夠在在字詞輸入過程中,更有效地進(jìn)行 糾錯,并且適用范圍比較廣泛。本發(fā)明提供了如下方案一種字詞輸入方法,包括檢測用戶輸入的編碼字符串中存在的錯誤輸入片段;根據(jù)預(yù)先獲取的合法字符組集合,編輯所述錯誤輸入片段,得到糾錯候選字符 串;將所述糾錯候選字符串轉(zhuǎn)換為輸入文字。其中,所述檢測用戶輸入的編碼字符串中存在的錯誤輸入片段包括根據(jù)當(dāng)前語境,對所述用戶輸入的編碼字符串進(jìn)行分詞,將得到的分詞碎片確定 為錯誤輸入片段。
其中,所述檢測用戶輸入的編碼字符串中存在的錯誤輸入片段包括如果所述用戶輸入的編碼字符串中存在不屬于所述合法字符組集合的字符組,或 者基于合法字符組集合統(tǒng)計(jì)的合法概率小于閾值的字符組,則該字符組為錯誤輸入片段。優(yōu)選地,所述合法字符組集合通過以下方式獲得從至少兩個文字的合法編碼字 符串連接而成的字符串中抽取合法字符組。其中,所述根據(jù)預(yù)先獲取的合法字符組集合,編輯所述錯誤輸入片段,得到糾錯候 選字符串包括對所述錯誤輸入片段分別進(jìn)行基于字符的替換、插入、刪除及交換的處理;如果處理后的片段屬于所述合法字符組集合,則基于該處理后的片段生成糾錯候 選字符串。優(yōu)選地,所述根據(jù)預(yù)先獲取的合法字符組集合,編輯所述錯誤輸入片段,得到糾錯 候選字符串包括去除合法字符組中設(shè)定位置的至少一個字符,將其他剩余字符按設(shè)定順序排列作 為所述被去除字符的索引;以合法字符組集合的若干個所述索引及對應(yīng)的被去除字符組成反查字符組集 合;當(dāng)需要對所述錯誤輸入片段在所述設(shè)定位置進(jìn)行字符的替換或插入時(shí),根據(jù)所述 錯誤輸入片段以所述設(shè)定順序生成查詢串;從所述反查字符組集合中獲取以所述查詢串為索引的字符,將該字符作為在所述 設(shè)定位置替換或插入的字符,得到糾錯候選字符串。優(yōu)選地,所述設(shè)定位置包括合法字符組中首字符位置以外的其他位置。優(yōu)選地,所述合法字符組集合及所述反查字符組集合以樹形結(jié)構(gòu)進(jìn)行保存。優(yōu)選地,所述將糾錯候選字符串轉(zhuǎn)換為輸入文字包括對所述糾錯候選字符串進(jìn)行評估;根據(jù)評估的結(jié)果,對所述編碼字符串及符合預(yù)置條件的糾錯候選字符串進(jìn)行轉(zhuǎn) 換,并向用戶展現(xiàn)轉(zhuǎn)換的結(jié)果。優(yōu)選地,還包括將所述用戶輸入的編碼字符串發(fā)送到遠(yuǎn)端服務(wù)器,并接收所述遠(yuǎn)端服務(wù)器返回的 糾錯候選字符串。優(yōu)選地,還包括如果所述用戶輸入的編碼字符串命中設(shè)定詞庫,根據(jù)所述設(shè)定詞庫將所述編碼字 符串轉(zhuǎn)換為輸入文字。一種字詞輸入系統(tǒng),包括檢錯單元,用于檢測用戶輸入的編碼字符串中存在的錯誤輸入片段;糾錯單元,用于根據(jù)預(yù)先獲取的合法字符組集合,編輯所述錯誤輸入片段,得到糾 錯候選字符串;轉(zhuǎn)換單元,用于將所述糾錯候選字符串轉(zhuǎn)換為輸入文字。其中,所述檢錯單元包括第一檢錯子單元,用于根據(jù)當(dāng)前語境,對所述用戶輸入的編碼字符串進(jìn)行分詞,將得到的分詞碎片確定為錯誤輸入片段。其中,所述檢錯單元包括第二檢錯子單元,用于如果所述用戶輸入的編碼字符串中存在不屬于所述合法字 符組集合的字符組,或者基于合法字符組集合統(tǒng)計(jì)的合法概率小于閾值的字符組,則該字 符組為錯誤輸入片段。優(yōu)選地,所述合法字符組集合通過以下方式獲得從至少兩個文字的合法編碼字 符串連接而成的字符串中抽取合法字符組。優(yōu)選地,所述糾錯單元包括編輯子單元,用于對所述錯誤輸入片段分別進(jìn)行基于字符的替換、插入、刪除及交 換的處理;生成子單元,用于如果處理后的片段屬于所述合法字符組集合,則基于該處理后 的片段生成糾錯候選字符串。優(yōu)選地,所述糾錯單元包括去除子單元,用于去除合法字符組中設(shè)定位置的至少一個字符,將其他剩余字符 按設(shè)定順序排列作為所述被去除字符的索引;組合子單元,用于以合法字符組集合的若干個所述索引及對應(yīng)的被去除字符組成 反查字符組集合;查詢串生成子單元,用于當(dāng)需要對所述錯誤輸入片段在所述設(shè)定位置進(jìn)行字符的 替換或插入時(shí),根據(jù)所述錯誤輸入片段以所述設(shè)定順序生成查詢串;查詢子單元,用于從所述反查字符組集合中獲取以所述查詢串為索引的字符,將 該字符作為在所述設(shè)定位置替換或插入的字符,得到糾錯候選字符串。 優(yōu)選地,所述設(shè)定位置包括合法字符組中首字符位置以外的其他位置。優(yōu)選地,所述合法字符組集合及所述反查字符組集合以樹形結(jié)構(gòu)進(jìn)行保存。優(yōu)選地,所述轉(zhuǎn)換單元包括評估子單元,用于對所述糾錯候選字符串進(jìn)行評估;選擇轉(zhuǎn)換子單元,用于根據(jù)評估的結(jié)果,對所述編碼字符串及符合預(yù)置條件的糾 錯候選字符串進(jìn)行轉(zhuǎn)換,并向用戶展現(xiàn)轉(zhuǎn)換的結(jié)果。優(yōu)選地,還包括云計(jì)算單元,用于將所述用戶輸入的編碼字符串發(fā)送到遠(yuǎn)端服務(wù)器,并接收所述 遠(yuǎn)端服務(wù)器返回的糾錯候選字符串。優(yōu)選地,還包括詞庫匹配單元,用于如果所述用戶輸入的編碼字符串命中設(shè)定詞庫,根據(jù)所述設(shè) 定詞庫將所述編碼字符串轉(zhuǎn)換為輸入文字。根據(jù)本發(fā)明提供的具體實(shí)施例,本發(fā)明公開了以下技術(shù)效果本發(fā)明實(shí)施例在用戶進(jìn)行字詞輸入的過程中,在發(fā)現(xiàn)編碼字符串中存在的錯誤輸 入片段之后,可以根據(jù)預(yù)先獲取的合法字符組集合,通過對錯誤輸入片段進(jìn)行編輯操作,得 到糾錯候選字符串,這樣,獲取糾錯候選字符串的方式更加靈活,進(jìn)而在根據(jù)用戶輸入的編 碼字符串以及糾錯候選字符串進(jìn)行音字轉(zhuǎn)換時(shí),也可以獲得更多可能的候選項(xiàng)。因此,該方 法更加有效,且適用范圍比較廣泛。
另外,本發(fā)明在對所述錯誤輸入片段進(jìn)行編輯操作時(shí),使用了反查字符組,這樣, 針對一些替換或插入操作而言,可以縮小查找范圍,從而減少操作次數(shù),提高糾錯的效率。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例中所 需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施 例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲 得其他的附圖。圖1是本發(fā)明實(shí)施例提供的方法的流程圖;圖2是本發(fā)明實(shí)施例提供的系統(tǒng)的示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于 本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的 范圍。參見圖1,本發(fā)明實(shí)施例提供的字詞輸入方法包括以下步驟SlOl 檢測用戶輸入的編碼字符串中存在的錯誤輸入片段;S102:根據(jù)預(yù)先獲取的合法字符組集合,編輯所述錯誤輸入片段,得到糾錯候選字 符串;S103 將所述糾錯候選字符串轉(zhuǎn)換為輸入文字。其中,在檢測編碼字符串中存在的錯誤輸入片段時(shí),可以有多種方法。例如,其中 一種方法可以是使用當(dāng)前語境下的詞典對用戶輸入的編碼字符串進(jìn)行分詞(如,對于漢 語而言,每個音節(jié)即是一個詞),查看是否存在分詞碎片,或者是否存在詞典中沒有出現(xiàn)過 的輸入片段;如果存在,則證明存在錯誤輸入片段。例如,假設(shè)用戶輸入的編碼字符串是 "shenem",按照音節(jié)進(jìn)行分詞時(shí),“em”就會成為分詞碎片,因?yàn)椤皀em”或“em”都不能構(gòu)成 一個音節(jié),因此,就可以將其作為一個可能的錯誤輸入片段檢測出來,等等。另一種方法可以是預(yù)先采用對語料庫進(jìn)行統(tǒng)計(jì)的方法,基于合法的編碼字符串建 立合法字符組集合,然后利用合法字符組集合,檢測用戶輸入的編碼字符串中是否存在錯 誤輸入片段。所謂合法的編碼字符串是指符合語言規(guī)則的字符串,例如,符合漢語拼音規(guī)則 的拼音,或者符合五筆規(guī)則的字符串,符合筆畫規(guī)則的字符串等等。當(dāng)然,對于不同的拼音 方案(包括簡拼、全拼等),拼音規(guī)則可能會有所不同,對應(yīng)的合法編碼字符串也會有所不 同,在實(shí)際應(yīng)用中,可以根據(jù)實(shí)際的需要分別建立合法編碼字符串。從合法的編碼字符串中 取出的字符組合片段,就可以作為合法的字符組合。例如,基于全拼的拼音方案提取合法三 元組時(shí),對于“zuzhi ”這一合法拼音串,其中的任意三個連續(xù)字符都可以組成合法三元組, 也即,“ zuz ”、“uzh”、“ zhi ”都是合法的字符組合。其中,在選取合法的字符組合時(shí),每個字符組合中的字母個數(shù)通常可以取兩個、三 個或四個等等,分別對應(yīng)合法二元組、合法三元組、合法四元組,這些都可以成為合法字符 組集合的組成部分。為了方便描述,下面僅以合法三元組為例進(jìn)行介紹。
首先需要說明的是,對于英文輸入而言,用戶在輸入的過程中,每輸入一個單詞之 后,會自動輸入空格作為分隔;此時(shí)輸入法就可以將該空格作為單詞的邊界。因此,在建 立合法三元組時(shí),僅需在單詞內(nèi)部進(jìn)行三元組合。例如,對于英文單詞tutor,可以拆分為 tut、uto, tor三個合法的三元組。其他單詞也可以進(jìn)行類似處理,從而得到合法三元組集 合。在對用戶輸入的單詞進(jìn)行糾錯時(shí),也只需要將用戶輸入的空格作為單詞邊界,在每個單 詞內(nèi)部使用各個合法三元組進(jìn)行檢錯即可。對于中文等文字的輸入而言,中文輸入的最小粒度是字,如果用戶同樣習(xí)慣進(jìn)行 單字輸入,也即,每次僅輸入一個字的拼音,則同樣可以采用與英文類似的處理,即基于單 字的拼音建立合法三元組。但是,更為普遍的情況是,用戶在輸入編碼字符串時(shí),通常會連 續(xù)輸入一個詞、短語或句子的拼音。而無論是詞、短語還是句子,可能都是由多個字組成的; 并且在一次輸入過程中,可能并不會在不同字的拼音之間輸入空格等符號進(jìn)行分隔(很多 輸入法系統(tǒng)都支持這種輸入),因此如果僅基于單個字的拼音來創(chuàng)建合法三元組可能是不 適用的。因此,在本發(fā)明實(shí)施例中,合法字符組可以通過以下方式獲得從至少兩個文字的 合法編碼字符串連接而成的字符串中抽取合法字符組。也就是說,針對中文建立合法三元 組時(shí),使用的語料庫可以是用戶可能作為一個整體輸入的詞、短語或句子,從而從多個合法 拼音連接而成的字符串中提取合法三元組。例如,如果根據(jù)單字的合法拼音提取合法三元組,則“zuz”是不合法的,這樣,在 用戶想要輸入“組織”時(shí),對應(yīng)輸入的拼音串為“zuzhi”,此時(shí),就可能會將“ZUZ”作為不合 法三元組提取出來,但是,顯然用戶的此次輸入中是不存在錯誤輸入的。因此,為了避免這 種情況的發(fā)生,就應(yīng)該在建立合法三元組時(shí),就考慮多個拼音組合出現(xiàn)時(shí)的情況。例如,假 設(shè)語料中存在“組織”這個詞,則就可以根據(jù)其對應(yīng)的拼音串“zuzhi,,提取出以下合法三元 組“zuz”、“uzh”、“zhi”,這樣,在用這樣的合法三元組進(jìn)行檢錯時(shí),就不會將“zuzhi”中的 "zuz"或“uzh”作為錯誤輸入片段提取出來。當(dāng)然,也可以根據(jù)用戶的實(shí)際輸入習(xí)慣,選擇訓(xùn)練語料,并創(chuàng)建相應(yīng)的合法三元 組。例如,某用戶習(xí)慣一個詞一個詞地輸入,則語料庫中的訓(xùn)練語料就可以盡量以詞語為 主,進(jìn)而根據(jù)各個詞語的拼音串建立合法三元組;如果某用戶習(xí)慣輸入長的句子,則語料庫 中的訓(xùn)練語料就可以盡量以長的句子為主,進(jìn)而根據(jù)各個句子的拼音串建立合法三元組,等等。在建立了合法三元組之后,就可以使用合法三元組對用戶輸入的編碼字符串進(jìn)行 檢錯,如果編碼字符串中某字符組合片段沒有出現(xiàn)在合法三元組集合中,則可以將這三個 字母作為一個錯誤輸入片段提取出來。此外,還可以根據(jù)基于合法字符組集合,基于海量數(shù) 據(jù)以及用戶的輸入習(xí)慣等因素,統(tǒng)計(jì)出字符組合片段的合法概率,如果該概率小于某預(yù)置 的閾值,則可以將該字符組合片段作為一個錯誤輸入片段提取出來。在提取出錯誤輸入片段之后,就可以針對錯誤輸入片段進(jìn)行糾錯。具體在進(jìn)行糾 錯時(shí),可以采用替換、插入、刪除、交換這四種編輯方式,在一定的編輯距離范圍內(nèi)對該錯誤 輸入片段進(jìn)行處理,然后根據(jù)合法字符組合(仍以合法三元組為例),判斷處理后的片段是 否為合法的字符組合,如果合法,則可以作為糾錯候選。其中,編輯距離是指將一個字符串 轉(zhuǎn)變?yōu)榱硪粋€字符串所需要的編輯開銷;如果將一次編輯操作的開銷全部定義為1,那么 將Zip0轉(zhuǎn)變?yōu)閆ipp0的編輯距離是1,將englsi轉(zhuǎn)變?yōu)閑nglish的編輯距離是2,反過來也是如此。其中,對于刪除及交換這兩種操作而言,比較簡單,通常也不會具有大的工作量。 例如,對于刪除操作,就可以嘗試刪除其中的任意一個字母,然后判斷剩余的兩個字母是 否為合法二元組即可(在進(jìn)行糾錯的過程中,可以同時(shí)借助于合法二元組或合法四元組等 等)。對于利用合法三元組檢出的錯誤輸入片段而言,由于一個片段中最多只有三個字母, 因此最多嘗試三次操作即可。對于交換操作,可以嘗試將任意兩個相鄰的字母之間的位置 交換,然后判斷位置交換后的三個字母是否是合法三元組即可。同樣的,對于利用合法三元 組檢出的錯誤輸入片段而言,由于一個片段中最多只有三個字母,因此最多嘗試兩次交換 操作即可。但是,對于替換及插入操作而言,由于需要利用其他的字母替換當(dāng)前字母,或者插 入一個未知的字母,因此,通??赡軙a(chǎn)生比較大的工作量,使得獲得糾錯候選字符串的速 度比較低。例如,最簡單的方法可以采用窮舉的方式,這樣,對于替換操作而言,就要對錯誤 輸入片段中的每個字母分別進(jìn)行以下操作分別用該字母以外的其他25個字母中的任意 一個替換該字母,然后分別判斷替換后的字母片段是否是合法三元組。相當(dāng)于對于一個具 有三個字母的錯誤輸入片段而言,要進(jìn)行25*3 = 75次的替換及判斷操作。例如,對于某錯誤輸入片段“zim”,在使用替換的操作時(shí),首先要用除“ζ”以外的 其他25個字母分別替換“z”,然后判斷替換之后的片段是否是合法三元組;例如替換為“a” 之后,要判斷“aim”是否合法,再替換為“b”,再判斷“buu”是否合法,等等;然后針對第一 個“U”,首先要用除“U”以外的其他25個字母分別替換“U”,然后判斷替換之后的片段是否 是合法三元組;例如替換為“a”之后,要判斷“zau”是否合法,再替換為“b”,再判斷“zbu” 是否合法,等等。最后再針對第二個“U”,進(jìn)行類似的替換及判斷操作,最后將所有合法的替 換后的三元組提取出來,作為糾錯結(jié)果。類似的,對于插入操作而言,則需要在錯誤輸入片段中的具有相鄰關(guān)系的任意兩 個字母之間嘗試插入“a”到“2”共沈個字母,并且每插入一次,都需要判斷插入之后的字 符組合片段是否合法。因此,對于一個具有三個字母的錯誤輸入片段而言,要進(jìn)行26 = 52次的插入及判斷操作。例如,同樣假設(shè)錯誤輸入片段是“zim”,則在使用插入操作進(jìn)行糾錯時(shí),首先需要 在“ZU”之間分別插入“a”到“2”共沈個字母中的任意一個,然后判斷插入后的字符組合 片段是否合法;例如,在插入“a”后,判斷“zauu”是否合法,然后再插入“b”,判斷“zbuu” 是否合法,等等。之后,還要再嘗試在“mi”之間分別插入沈個字母中的任意一個,然后判 斷插入后的片段是否合法;例如,在插入“a”后,判斷“zuau”是否合法,然后再插入“b”,判 斷“zubu”是否合法,等等。當(dāng)然,對于插入操作,還可能嘗試在片段最前或最后進(jìn)行插入, 此時(shí),又會進(jìn)一步增加計(jì)算量。可見,在糾錯過程,在使用替換或插入操作進(jìn)行糾錯時(shí),會存在計(jì)算量大、耗費(fèi)時(shí) 間長的問題。因此,本發(fā)明實(shí)施例針對該問題也提供了相應(yīng)的解決方案,主要是針對在錯誤 輸入片段中間部分插入字母的操作步驟,以及將錯誤輸入片段中間部分的字母進(jìn)行替換的 操作步驟進(jìn)行了簡化,從而使得整體上的糾錯效率提高。下面進(jìn)行詳細(xì)地介紹。為了達(dá)到使得上述操作步驟簡化的目的,本發(fā)明實(shí)施例首先根據(jù)建立的合法三元 組作為正查三元組,然后將正查三元組中的各個字符按照指定的順序進(jìn)行排列,例如,進(jìn)行倒排等,得到反查三元組。當(dāng)然,由于實(shí)際應(yīng)用中第一個字母就輸錯的可能性較低,因此,可 以僅對首字符之后的兩個字符按照指定順序進(jìn)行排列,得到反查三元組。例如,對合法拼音 串tubiao,每3個連續(xù)字母進(jìn)行統(tǒng)計(jì)獲得正查三元組為tub、ubi、bia、iao ;而將3個字母 中的后兩個字母的順序交換之后,即可得到反查三元組tbu、uib、kii、ioa。在針對在錯誤輸入片段中間部分插入字母的操作,以及將錯誤輸入片段中間部分 的字母進(jìn)行替換的操作時(shí),就可以通過查詢反查三元組集合,來找出合法的插入或替換后 的三元組。例如,對于錯誤輸入片段“sho”,當(dāng)需要嘗試替換中間的“h”時(shí),就可以查詢反查 三元組列表存在哪些第一個字母為s,第二個字母為ο的三元組,找出來之后,直接將后兩 個字母交換順序,即可作為依據(jù)替換操作得到的糾錯結(jié)果。例如,發(fā)現(xiàn)反查三元組集合中存 在“ sou,,、“ soa,,等,將后兩位倒排后為“ SUo,,、“ sao”,因此,就可以直接將“ suo,,、“ sao,,等 作為糾錯結(jié)果即可,不用再嘗試其他的字母,也不需要進(jìn)行判斷是否合法的操作。同樣的,對于錯誤輸入片段“sho”,如果需要嘗試在“ho”之間插入某字母時(shí),則 可以在反查三元組集合中搜索存在哪些第一個字符為h、第二個字符為ο的三元組,找出 來之后,直接將后兩個字符交換順序,即可作為依據(jù)插入操作得到的糾錯結(jié)果。例如,發(fā)現(xiàn) 反查三元組集合中存在“hou”、“hoi”等,后兩個字母倒排后為“huo”、“hio”,因此,直接將 “shU0”、“shi0”等作為糾錯結(jié)果即可,不用再嘗試其他的字母,也不需要進(jìn)行判斷是否合法 的操作??傊诮⒎床樽址M集合時(shí),可以采用如下方法去除合法字符組中設(shè)定位置 的至少一個字符,將其他剩余字符按設(shè)定順序排列作為該被去除字符的索引;然后,以合 法字符組集合的若干個索引及對應(yīng)的被去除字符組成反查字符組集合。之后,在利用反查 三元組獲取糾錯候選字符串時(shí),可以如下進(jìn)行當(dāng)需要對錯誤輸入片段在前述設(shè)定位置進(jìn) 行字符的替換或插入時(shí),根據(jù)該錯誤輸入片段以前述設(shè)定順序生成查詢串,然后,從反查字 符組集合中獲取以該查詢串為索引的字符,將該字符作為在前述設(shè)定位置替換或插入的字 符,得到糾錯候選字符串。需要說明的是,在生成糾錯候選的過程中,涉及到的“預(yù)定位置”以及“預(yù)定順序”, 與建立反查字符組集合時(shí)涉及到的“預(yù)定位置”及“預(yù)定順序”是相同的。例如,對于合法三 元組“tub”,其設(shè)定位置的至少一個字符可以是指“t”與“b”之間的一個字符“U”,將該字 符U去除之后,剩余字符也就是“t”和“b”,假設(shè)“設(shè)定順序”就是這兩個字符在原合法三元 組中的先后順序,則按設(shè)定順序排列之后就可以是“tb”,則該“tb”就可以作為字符“U”的 索引。方便起見,可以將該索引與對應(yīng)的被去除字符連接在一起成為“tbu”,則該“tbu”就 成為一個反查三元組。當(dāng)然,按照上述方式,根據(jù)其他合法三元組生成反查三元組時(shí),“tb” 還可能作為其他字符的索引。在進(jìn)行生成糾錯候選時(shí),假設(shè)錯誤輸入片段為“tb”,需要在“t”與“b”之間進(jìn)行 插入操作時(shí),就可以將“tb”作為查詢串,然后在反查字符組集合中獲取以“tb”為索引的字 符,例如包括前述例子中的字符“U” (還可能包括其他字符),然后,就可以將該字符“U”作 為插入到“ t ”與“b”之間的字符,生成“ tub”,將該“ tub,,替換原編碼字符串中的“ tb”,就 可以得到糾錯候選字符串。類似的,假設(shè)錯誤輸入片段是“ttb”,如果需要將“t”與“b”之間進(jìn)行替換操作時(shí), 此時(shí),同樣可以將“tb”作為查詢串,然后在反查字符組集合中獲取以“tb”為索引的字符,例如包括前述例子中的字符“U”(還可能包括其他字符),然后,就可以將該字符“U”作為 可以替換中間的“ t,,的字符,生成“ tub ”,將該“ tub,,替換原編碼字符串中的“ ttb ”,就可以 得到糾錯候選字符串??梢?,通過建立反查三元組,可以減少嘗試操作的次數(shù),縮小查找的范圍,從而可 以提高糾錯的速度。需要說明的是,對于刪除操作及交換操作,可以直接用正查三元組進(jìn)行 糾錯即可。另外,在沒有將正查三元組中的首字母參與倒排的情況下,如果需要在錯誤輸入 片段的首字母之前的插入操作、在錯誤輸入片段的尾字母之后的插入操作,或者,在將錯誤 輸入片段的首字母或尾字母進(jìn)行替換操作,則也可以直接依據(jù)正查三元組進(jìn)行糾錯。其中,關(guān)于正查三元組和反查三元組,可以直接以列表的方式進(jìn)行保存,而在本發(fā) 明實(shí)施例中,為了進(jìn)一步提高查詢的速度,可以以樹形結(jié)構(gòu)進(jìn)行保存,下面進(jìn)行詳細(xì)地介 紹。首先針對各個合法三元組,建立正查樹,正查樹可以共有沈棵(當(dāng)然,也可以在同 一根節(jié)點(diǎn)下建立26棵子樹),分別以沈個字母之一為根節(jié)點(diǎn),且每棵正查樹中最多共有三 層節(jié)點(diǎn)。例如,合法三元組中包括“zuu”,則在以“ζ”為根節(jié)點(diǎn)的正查樹中,其第一級子節(jié)點(diǎn) 可能有很多,其中會包括字母“U”,這個“U”的下一級子節(jié)點(diǎn)也可能有很多,其中會包括字 母“U”。也就是說,正查樹中同一個路徑上的節(jié)點(diǎn)對應(yīng)的字母能夠組成合法三元組。在建立正查樹之后,還可以建立反查樹,相當(dāng)于是將合法三元組中的各個字母進(jìn) 行倒排之后,重新組建樹型結(jié)構(gòu)。當(dāng)然,如前文所述,由于第一個字母出錯的可能性比較小, 因此,第一個字母可以不必倒排,僅將后兩個字母進(jìn)行倒排即可。例如,合法三元組“ibu”, 則將后兩個字母倒排之后,就變?yōu)椤癷ub”,合法三元組“zuz”,則將后兩個字母進(jìn)行倒排之 后就變?yōu)椤皕zu”。在將所有的合法三元組進(jìn)行倒排之后,就可以建立反查樹。同樣,反查樹 也可以有26棵(同樣,也可以在同一根節(jié)點(diǎn)下建立沈棵子樹),每棵樹分別以沈個字母為 根節(jié)點(diǎn)。需要說明的是,在第一個字母不參與倒排的情況下,正查三元組與對應(yīng)的反查三 元組的第一個字母是相同的,第一個字母相當(dāng)于一個前綴,因此,正查樹與反查樹可以分別 稱為正查前綴樹和反查前綴樹。在建立了正查樹和反查樹之后,就可以利用正查樹和反查樹進(jìn)行糾錯。具體的過 程可以與前文所述類似。例如,假設(shè)某錯誤輸入片段為“xd”,在需要使用插入操作對其進(jìn)行 糾錯時(shí),就可以遍歷反查前綴樹,獲知“xd”后存在“ i,,和“U”兩個分支(沒有分支表示對 應(yīng)的三元組不合法),與之對應(yīng)的正查三元組即為“Xid” (xd中間插入i)和“xud” (xd中間 插入U(xiǎn))。顯然,這樣做的好處是免除了對其它“i”、“u”以外的其他M個字母的枚舉操作。需要說明的是,在前文所述的各個例子中,均是以合法全拼三元組為例進(jìn)行介紹 的,使用這種合法三元組進(jìn)行檢錯及糾錯時(shí),如果用戶也是習(xí)慣使用全拼的方式,則是比較 適用的;但是有些用戶可能習(xí)慣簡拼,此時(shí),如果使用基于合法全拼建立的合法三元組對其 進(jìn)行檢錯糾錯就不合適了。因此,在實(shí)際應(yīng)用中,建立合法三元組時(shí),也不限于基于合法全 拼來建立,也可以考慮簡拼時(shí)的合法三元組。例如,有一部分用戶在想要輸入“什么”或“怎 么”時(shí),都習(xí)慣輸入“sm”、“zm”,而基于合法全拼建立的合法二元組中,不包括“sm”、“zm”, 此時(shí)就可能將其作為錯誤輸入片段檢測出來,顯然這相當(dāng)于是一種誤判。而此時(shí),如果基于 合法簡拼建立了合法二元組,并且其中包括“sm”、“zm”,則就不會將其作為錯誤輸入片段被檢測出來,直接依據(jù)簡拼詞庫給出相應(yīng)的音字轉(zhuǎn)換結(jié)果即可。另外,在建立合法三元組時(shí),還可以給予海量訓(xùn)練數(shù)據(jù)獲得三元組的可信度概率, 這相對于只有合法或不合法兩個結(jié)果的方式而言,更加有利于降低誤判的可能。通過以上所述,介紹了本發(fā)明實(shí)施例提供的檢錯及糾錯方法,在檢錯的過程中,通 過使用分詞的方法或合法字符組合的統(tǒng)計(jì)方法,可以使得檢錯的過程更加靈活,也能夠更 加全面地檢測出編碼字符串中存在的錯誤輸入片段。在糾錯的過程中,通過使用合法字符 組合,進(jìn)行字母的替換、插入、刪除、交換操作,可以更加全面地獲取糾錯候選字符串。另外, 通過反查字符組合的使用,可以縮小查找的范圍,減少操作次數(shù),從而提高糾錯的效率。當(dāng)然,利用以上方法獲得的糾錯候選字符串的數(shù)目可能會有很多,如果全部進(jìn)行 音字轉(zhuǎn)換,則,工作量可能會比較大,并且得到的轉(zhuǎn)換結(jié)果過多,也可能增加噪音,反而降低 候選項(xiàng)的質(zhì)量。因此,在本發(fā)明實(shí)施例中,在獲得糾錯候選字符串之后,還可以對各個糾錯 候選字符串進(jìn)行評估,根據(jù)評估的結(jié)果來選擇質(zhì)量最高的一個或幾個糾錯候選字符串進(jìn)行 音字轉(zhuǎn)換,并向用戶提供轉(zhuǎn)換結(jié)果。其中,具體在進(jìn)行評估時(shí),可以有多種方法。例如,其中一種方法可以是預(yù)先建立 規(guī)則模型,根據(jù)規(guī)則模型進(jìn)行評估及選擇。如,可以是將音節(jié)數(shù)目最少的糾錯候選字符串作 為最終的糾錯結(jié)果,或者,將對應(yīng)轉(zhuǎn)換結(jié)果的詞頻最高的糾錯候選字符串作為最終的糾錯 結(jié)果等。此外,還可以是基于噪音信道模型進(jìn)行評估,或者基于決策樹模型進(jìn)行評估,等等, 這里不再一一列舉。此外,在利用各種模型進(jìn)行評估時(shí),還可以同時(shí)考慮轉(zhuǎn)換后的詞條的系 統(tǒng)詞頻、用戶詞頻、用戶的輸入習(xí)慣等多方面的有效因素綜合考慮,使得最終選出的糾錯結(jié) 果更加理想。另外,實(shí)際應(yīng)用中的情況可能會是多種多樣的,即便對于具有明顯輸入習(xí)慣的用 戶而言,也可能存在偶爾不按照習(xí)慣進(jìn)行輸入的時(shí)候。例如,某用戶習(xí)慣于輸入全拼,因 此一般情況下,可以使用基于全拼的合法字符組對該用戶輸入的編碼字符串進(jìn)行檢錯及糾 錯。但是,該用戶經(jīng)常輸入自己的住址“回龍觀”,并且他知道輸入“huilg”就能得到該候選 項(xiàng),因此,就會直接輸入“huilg”。此時(shí),如果直接利用基于全拼的合法字符組進(jìn)行檢錯,則 可能會發(fā)現(xiàn)其中存在錯誤輸入片段,然后對其進(jìn)行糾錯時(shí),可能就會得到很多其他的候選 項(xiàng),而不是“回龍觀”。顯然,這相當(dāng)于是一種誤判,不僅使得最終的候選項(xiàng)的質(zhì)量下降,還白 白浪費(fèi)了檢錯及糾錯過程中的計(jì)算資源。因此,為了降低造成誤判的可能性,本發(fā)明實(shí)施例還可以這樣進(jìn)行在對用戶輸入 的編碼字符串進(jìn)行檢錯及糾錯之前,首先判斷該編碼字符串是否命中設(shè)定詞庫,如包括用 戶詞庫、系統(tǒng)詞庫及細(xì)胞詞庫等的輸入法詞庫,如果沒有命中設(shè)定詞庫,再進(jìn)行后續(xù)的檢錯 及糾錯操作。其中,在采用輸入法詞庫時(shí),可以優(yōu)先匹配用戶詞庫。當(dāng)然,如果是為了豐富 候選項(xiàng),則即使編碼字符串命中了設(shè)定詞庫,也是可以按照本發(fā)明實(shí)施例提供的方法進(jìn)行 檢錯及糾錯的,此時(shí)既提供直接命中設(shè)定詞庫的候選項(xiàng),又提供進(jìn)行糾錯后得到的候選項(xiàng)。在進(jìn)行具體的字詞轉(zhuǎn)換結(jié)果的展現(xiàn)時(shí),為了體現(xiàn)出針對糾錯候選字符串的轉(zhuǎn)換結(jié) 果(簡稱糾錯后的轉(zhuǎn)換結(jié)果)與其他轉(zhuǎn)換結(jié)果之間的區(qū)別,可以以相區(qū)別的方式進(jìn)行展現(xiàn)。 例如,可以在其他轉(zhuǎn)換結(jié)果上以懸浮框的方式展現(xiàn)糾錯后的轉(zhuǎn)換結(jié)果,或者,將糾錯后的轉(zhuǎn) 換結(jié)果顯示為與其他的轉(zhuǎn)換結(jié)果不同的顏色,等等。其中,其他轉(zhuǎn)換結(jié)果是指依據(jù)用戶實(shí)際 輸入的編碼字符串本身轉(zhuǎn)換得到的轉(zhuǎn)換結(jié)果。
13
需要說明的是,本發(fā)明實(shí)施例提供的字詞輸入方法可以應(yīng)用于客戶端,也可以應(yīng) 用于服務(wù)器,也即可以通過云計(jì)算的方式為用戶提供字詞候選。其中,當(dāng)應(yīng)用于客戶端時(shí), 由于用戶在使用輸入法系統(tǒng)進(jìn)行字詞輸入時(shí),除了候選項(xiàng)的質(zhì)量以外,系統(tǒng)內(nèi)存的占用量 也是體現(xiàn)輸入法系統(tǒng)性能的很重要的因素,也即用戶通常希望輸入法系統(tǒng)在運(yùn)行的過程中 能夠盡可能少地占用內(nèi)存空間,以避免影響其他應(yīng)用程序的運(yùn)行。然而,如果要對用戶輸入 的編碼字符串進(jìn)行糾錯,并且還要進(jìn)行打分排序等操作,則在提高候選項(xiàng)質(zhì)量的同時(shí),可能 會損失部分內(nèi)存占用量上的性能,并且打分排序時(shí)參考的依據(jù)越高、參考的模型越復(fù)雜,由 于計(jì)算量的增大、復(fù)雜度的提高,內(nèi)存的占用量可能就會越大(當(dāng)然,如果客戶端本地的計(jì) 算機(jī)系統(tǒng)足夠強(qiáng)大,這種內(nèi)存空間上的占用可以忽略)。因此,在本發(fā)明實(shí)施例中,為了避免 在過多的占用內(nèi)存空間,還可以在對用戶輸入進(jìn)行糾錯的過程中引入云計(jì)算的概念,也即 借助于遠(yuǎn)端服務(wù)器,以降低對客戶端本地資源的依賴。為此,具體實(shí)現(xiàn)時(shí),可以僅在客戶端本地進(jìn)行一些低復(fù)雜度的糾錯處理,其他高 復(fù)雜度的糾錯處理可以通過云計(jì)算來實(shí)現(xiàn)。例如,對于一些糾錯可信度較高、長度適中、 較低階數(shù)的模型就能完成的糾錯任務(wù),可以在客戶端本地進(jìn)行;而那些較復(fù)雜或較為不常 用的糾錯任務(wù),則可以放到遠(yuǎn)端服務(wù)器進(jìn)行,例如,用戶輸入錯誤中以模糊音為代表的認(rèn) 知錯誤,由于在形式上往往表現(xiàn)為合法的拼音串,例如“cifan(吃飯)”、“huiji (飛機(jī))”、 "wobuzidao (我不知道)”等等,因此,如果采用合法二元組、合法三元組等,就無法識別這 種錯誤輸入,只能采用其他的較為復(fù)雜、計(jì)算量偏大的方式來識別及評估,例如,可能需要 采用強(qiáng)制糾錯的方式,并且可能需要在每個位置嘗試刪除、交換以及基于所有字母的插入、 替換操作,找出所有可能的糾錯候選字符串,然后根據(jù)用戶的輸入習(xí)慣等等,對糾錯候選字 符串進(jìn)行評估。這種情況下,就可以將用戶輸入的編碼字符串發(fā)送到遠(yuǎn)端服務(wù)器,由遠(yuǎn)端服 務(wù)器進(jìn)行采用強(qiáng)制糾錯等方式進(jìn)行糾錯,并對糾錯候選結(jié)果評估后返回給客戶端,由客戶 端進(jìn)行統(tǒng)一的排序。需要說明的是,在本發(fā)明實(shí)施例中,均是以拼音輸入法為例進(jìn)行的介紹,但是,本 發(fā)明實(shí)施例同樣可以適用于五筆、筆畫等其他的輸入法。另外,由于輸入法平臺可以運(yùn)行在 多種計(jì)算設(shè)備上,例如,個人電腦、個人數(shù)字助理、移動終端設(shè)備等等,所以本發(fā)明實(shí)施例提 供的方案也可以適用在上述各種計(jì)算設(shè)備中。并且,在上述各種計(jì)算設(shè)備中,可以具有全字 母鍵盤,也可以是能夠進(jìn)行字符輸入的數(shù)字鍵盤,或者觸摸屏,等等。本發(fā)明實(shí)施例對編碼 字符串的構(gòu)成也沒有限制,可以是字母、數(shù)字、筆畫等形式的一種或者幾種的組合。與本發(fā)明實(shí)施例提供的字詞輸入方法相對應(yīng),本發(fā)明實(shí)施例還提供了一種字詞輸 入系統(tǒng),參見圖2,該系統(tǒng)包括檢錯單元201,用于檢測用戶輸入的編碼字符串中存在的錯誤輸入片段;糾錯單元202,用于根據(jù)預(yù)先獲取的合法字符組集合,編輯所述錯誤輸入片段,得 到糾錯候選字符串;轉(zhuǎn)換單元203,用于將所述糾錯候選字符串轉(zhuǎn)換為輸入文字。在本發(fā)明實(shí)施例中,檢錯的具體實(shí)現(xiàn)方式可以有多種,例如,在一種實(shí)現(xiàn)方式下, 檢錯單元201可以包括第一檢錯子單元,用于根據(jù)當(dāng)前語境,對所述用戶輸入的編碼字符串進(jìn)行分詞,將 得到的分詞碎片確定為錯誤輸入片段。
在另一種實(shí)現(xiàn)方式下,檢錯單元201可以包括第二檢錯子單元,用于如果所述用戶輸入的編碼字符串中存在不屬于所述合法字 符組集合的字符組,或者基于合法字符組集合統(tǒng)計(jì)的合法概率小于閾值的字符組,則將該 字符組確定為錯誤輸入片段。其中,為了適應(yīng)用戶連續(xù)輸入一個詞、短語或句子的編碼字符串,并且不會主動在 各個字的編碼字符串之間輸入分隔符的情況,在獲取合法字符組集合時(shí),可以通過以下方 式獲得從至少兩個文字的合法編碼字符串連接而成的字符串中抽取合法字符組。具體實(shí)現(xiàn)時(shí),糾錯單元202可以包括編輯子單元,用于對所述錯誤輸入片段分別進(jìn)行基于字符的替換、插入、刪除及交 換的處理;生成子單元,用于如果處理后的片段屬于所述合法字符組集合,則基于該處理后 的片段生成糾錯候選字符串。由于在進(jìn)行替換及插入操作時(shí),如果采用將每個字母在每個位置都嘗試以便的 話,會使得工作量非常大,為此,本發(fā)明實(shí)施例中可以采用建立反查字符組的方式,來簡化 上述兩種編輯操作。此時(shí),糾錯單元202具體可以包括去除子單元,用于去除合法字符組中設(shè)定位置的至少一個字符,將其他剩余字符 按設(shè)定順序排列作為所述被去除字符的索引;組合子單元,用于以合法字符組集合的若干個所述索引及對應(yīng)的被去除字符組成 反查字符組集合;查詢串生成子單元,用于當(dāng)需要對所述錯誤輸入片段在所述設(shè)定位置進(jìn)行字符的 替換或插入時(shí),根據(jù)所述錯誤輸入片段以所述設(shè)定順序生成查詢串;查詢子單元,用于從所述反查字符組集合中獲取以所述查詢串為索引的字符,將 該字符作為在所述設(shè)定位置替換或插入的字符,得到糾錯候選字符串。其中,由于第一個字母就輸錯的可能性較小,因此,建立反查字符組時(shí)的設(shè)定位置 可以是合法字符組中首字符位置以外的其他位置。為了更加便于查詢,提高生產(chǎn)糾錯候選字符串的效率,合法字符組集合及反查字 符組集合可以以樹形結(jié)構(gòu)進(jìn)行保存,也即生產(chǎn)正查樹及反查樹。根據(jù)本發(fā)明實(shí)施例的方法生成糾錯候選字符串時(shí),可能會生成多個,如果將這么 多的糾錯候選字符串不加區(qū)分地全部進(jìn)行轉(zhuǎn)換,則候選項(xiàng)的數(shù)量可能會非常多,質(zhì)量也會 下降,因此,本發(fā)明實(shí)施例中,還可以對得到的糾錯候選字符串進(jìn)行評估,根據(jù)評估結(jié)果來 選擇對哪個或哪些糾錯候選字符串進(jìn)行轉(zhuǎn)換。此時(shí),轉(zhuǎn)換單元203可以包括評估子單元,用于對所述糾錯候選字符串進(jìn)行評估;選擇轉(zhuǎn)換子單元,用于根據(jù)評估的結(jié)果,對所述編碼字符串及符合預(yù)置條件的糾 錯候選字符串進(jìn)行轉(zhuǎn)換,并向用戶展現(xiàn)轉(zhuǎn)換的結(jié)果。本發(fā)明實(shí)施例提供的字詞輸入系統(tǒng)可以應(yīng)用于客戶端,也可以應(yīng)用于服務(wù)器。當(dāng) 應(yīng)用于客戶端時(shí),由于檢錯及糾錯過程可能會耗費(fèi)較多的計(jì)算資源,對計(jì)算機(jī)性能的要求 可能會比較高。為了降低這種對計(jì)算機(jī)性能的要求,本發(fā)明實(shí)施例可以采用客戶端本地與 云計(jì)算相結(jié)合的方式實(shí)現(xiàn)。即,對于一些簡單的檢錯及糾錯的情況,可以在客戶端本地進(jìn) 行;而對于復(fù)雜的情況,則可以將用戶輸入的編碼字符串發(fā)送到遠(yuǎn)端服務(wù)器,通過云計(jì)算的方式,獲取糾錯候選字符串。此時(shí),該系統(tǒng)還包括云計(jì)算單元,用于將所述用戶輸入的編碼字符串發(fā)送到遠(yuǎn)端服務(wù)器,并接收所述 遠(yuǎn)端服務(wù)器返回的糾錯候選字符串。當(dāng)然,由于實(shí)際應(yīng)用中的情況可能是多種多樣的,因此,為了進(jìn)一步提高候選項(xiàng)的 質(zhì)量,在進(jìn)行檢錯及糾錯之前或過程中,還可以借助于設(shè)定詞庫(如輸入法詞庫),來判斷 是否需要進(jìn)行糾錯,或者是否需要進(jìn)行強(qiáng)制檢錯,等等。此時(shí),該系統(tǒng)還可以包括詞庫匹配單元,用于如果所述用戶輸入的編碼字符串命中設(shè)定詞庫,根據(jù)所述設(shè) 定詞庫將所述編碼字符串轉(zhuǎn)換為輸入文字??傊?,通過本發(fā)明實(shí)施例提供的字詞輸入系統(tǒng),在用戶進(jìn)行字詞輸入的過程中,在 發(fā)現(xiàn)編碼字符串中存在的錯誤輸入片段之后,可以根據(jù)預(yù)先獲取的合法字符組集合,通過 對錯誤輸入片段進(jìn)行編輯操作,得到糾錯候選字符串,這樣,獲取糾錯候選字符串的方式更 加靈活,進(jìn)而在根據(jù)用戶輸入的編碼字符串以及糾錯候選字符串進(jìn)行音字轉(zhuǎn)換時(shí),也可以 獲得更多可能的候選項(xiàng)。因此,該方法更加有效,且適用范圍比較廣泛。另外,本發(fā)明實(shí)施 例在對所述錯誤輸入片段進(jìn)行編輯操作時(shí),使用了反查字符組,這樣,針對一些替換或插入 操作而言,可以縮小查找范圍,從而減少操作次數(shù),提高糾錯的效率。以上對本發(fā)明所提供的一種字詞輸入方法及系統(tǒng),進(jìn)行了詳細(xì)介紹,本文中應(yīng)用 了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解 本發(fā)明的方法及其核心思想;同時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具 體實(shí)施方式及應(yīng)用范圍上均會有改變之處。綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明 的限制。
權(quán)利要求
1.一種字詞輸入方法,其特征在于,包括檢測用戶輸入的編碼字符串中存在的錯誤輸入片段;根據(jù)預(yù)先獲取的合法字符組集合,編輯所述錯誤輸入片段,得到糾錯候選字符串;將所述糾錯候選字符串轉(zhuǎn)換為輸入文字。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述檢測用戶輸入的編碼字符串中存在 的錯誤輸入片段包括根據(jù)當(dāng)前語境,對所述用戶輸入的編碼字符串進(jìn)行分詞,將得到的分詞碎片確定為錯 誤輸入片段。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述檢測用戶輸入的編碼字符串中存在 的錯誤輸入片段包括如果所述用戶輸入的編碼字符串中存在不屬于所述合法字符組集合的字符組,或者基 于合法字符組集合統(tǒng)計(jì)的合法概率小于閾值的字符組,則該字符組為錯誤輸入片段。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述合法字符組集合通過以下方式獲得 從至少兩個文字的合法編碼字符串連接而成的字符串中抽取合法字符組。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)預(yù)先獲取的合法字符組集合,編 輯所述錯誤輸入片段,得到糾錯候選字符串包括對所述錯誤輸入片段分別進(jìn)行基于字符的替換、插入、刪除及交換的處理;如果處理后的片段屬于所述合法字符組集合,則基于該處理后的片段生成糾錯候選字 符串。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述根據(jù)預(yù)先獲取的合法字符組集合,編 輯所述錯誤輸入片段,得到糾錯候選字符串包括去除合法字符組中設(shè)定位置的至少一個字符,將其他剩余字符按設(shè)定順序排列作為所 述被去除字符的索引;以合法字符組集合的若干個所述索引及對應(yīng)的被去除字符組成反查字符組集合;當(dāng)需要對所述錯誤輸入片段在所述設(shè)定位置進(jìn)行字符的替換或插入時(shí),根據(jù)所述錯誤 輸入片段以所述設(shè)定順序生成查詢串;從所述反查字符組集合中獲取以所述查詢串為索引的字符,將該字符作為在所述設(shè)定 位置替換或插入的字符,得到糾錯候選字符串。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述設(shè)定位置包括合法字符組中首字符 位置以外的其他位置。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述合法字符組集合及所述反查字符組 集合以樹形結(jié)構(gòu)進(jìn)行保存。
9.根據(jù)權(quán)利要求1至8任一項(xiàng)所述的方法,其特征在于,所述將糾錯候選字符串轉(zhuǎn)換為 輸入文字包括對所述糾錯候選字符串進(jìn)行評估;根據(jù)評估的結(jié)果,對所述編碼字符串及符合預(yù)置條件的糾錯候選字符串進(jìn)行轉(zhuǎn)換,并 向用戶展現(xiàn)轉(zhuǎn)換的結(jié)果。
10.根據(jù)權(quán)利要求1至8任一項(xiàng)所述的方法,其特征在于,還包括將所述用戶輸入的編碼字符串發(fā)送到遠(yuǎn)端服務(wù)器,并接收所述遠(yuǎn)端服務(wù)器返回的糾錯2候選字符串。
11.根據(jù)權(quán)利要求1至8任一項(xiàng)所述的方法,其特征在于,還包括如果所述用戶輸入的編碼字符串命中設(shè)定詞庫,根據(jù)所述設(shè)定詞庫將所述編碼字符串 轉(zhuǎn)換為輸入文字。
12.—種字詞輸入系統(tǒng),其特征在于,包括檢錯單元,用于檢測用戶輸入的編碼字符串中存在的錯誤輸入片段;糾錯單元,用于根據(jù)預(yù)先獲取的合法字符組集合,編輯所述錯誤輸入片段,得到糾錯候 選字符串;轉(zhuǎn)換單元,用于將所述糾錯候選字符串轉(zhuǎn)換為輸入文字。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于,所述檢錯單元包括第一檢錯子單元,用于根據(jù)當(dāng)前語境,對所述用戶輸入的編碼字符串進(jìn)行分詞,將得到 的分詞碎片確定為錯誤輸入片段。
14.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于,所述檢錯單元包括第二檢錯子單元,用于如果所述用戶輸入的編碼字符串中存在不屬于所述合法字符組 集合的字符組,或者基于合法字符組集合統(tǒng)計(jì)的合法概率小于閾值的字符組,則該字符組 為錯誤輸入片段。
15.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于,所述合法字符組集合通過以下方式獲 得從至少兩個文字的合法編碼字符串連接而成的字符串中抽取合法字符組。
16.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于,所述糾錯單元包括編輯子單元,用于對所述錯誤輸入片段分別進(jìn)行基于字符的替換、插入、刪除及交換的 處理;生成子單元,用于如果處理后的片段屬于所述合法字符組集合,則基于該處理后的片 段生成糾錯候選字符串。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其特征在于,所述糾錯單元包括去除子單元,用于去除合法字符組中設(shè)定位置的至少一個字符,將其他剩余字符按設(shè) 定順序排列作為所述被去除字符的索引;組合子單元,用于以合法字符組集合的若干個所述索引及對應(yīng)的被去除字符組成反查 字符組集合;查詢串生成子單元,用于當(dāng)需要對所述錯誤輸入片段在所述設(shè)定位置進(jìn)行字符的替換 或插入時(shí),根據(jù)所述錯誤輸入片段以所述設(shè)定順序生成查詢串;查詢子單元,用于從所述反查字符組集合中獲取以所述查詢串為索引的字符,將該字 符作為在所述設(shè)定位置替換或插入的字符,得到糾錯候選字符串。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其特征在于,所述設(shè)定位置包括合法字符組中首字 符位置以外的其他位置。
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其特征在于,所述合法字符組集合及所述反查字符 組集合以樹形結(jié)構(gòu)進(jìn)行保存。
20.根據(jù)權(quán)利要求12至19任一項(xiàng)所述的系統(tǒng),其特征在于,所述轉(zhuǎn)換單元包括評估子單元,用于對所述糾錯候選字符串進(jìn)行評估;選擇轉(zhuǎn)換子單元,用于根據(jù)評估的結(jié)果,對所述編碼字符串及符合預(yù)置條件的糾錯候選字符串進(jìn)行轉(zhuǎn)換,并向用戶展現(xiàn)轉(zhuǎn)換的結(jié)果。
21.根據(jù)權(quán)利要求12至19任一項(xiàng)所述的系統(tǒng),其特征在于,還包括云計(jì)算單元,用于將所述用戶輸入的編碼字符串發(fā)送到遠(yuǎn)端服務(wù)器,并接收所述遠(yuǎn)端 服務(wù)器返回的糾錯候選字符串。
22.根據(jù)權(quán)利要求12至19任一項(xiàng)所述的系統(tǒng),其特征在于,還包括詞庫匹配單元,用于如果所述用戶輸入的編碼字符串命中設(shè)定詞庫,根據(jù)所述設(shè)定詞 庫將所述編碼字符串轉(zhuǎn)換為輸入文字。
全文摘要
本發(fā)明公開了一種字詞輸入方法及系統(tǒng),其中,所述方法包括檢測用戶輸入的編碼字符串中存在的錯誤輸入片段;根據(jù)預(yù)先獲取的合法字符組集合,編輯所述錯誤輸入片段,得到糾錯候選字符串;將所述糾錯候選字符串轉(zhuǎn)換為輸入文字。通過本發(fā)明,能夠在在字詞輸入過程中,更有效地進(jìn)行糾錯,并且適用范圍比較廣泛。
文檔編號G06F17/27GK102135814SQ20111007920
公開日2011年7月27日 申請日期2011年3月30日 優(yōu)先權(quán)日2011年3月30日
發(fā)明者張揚(yáng) 申請人:北京搜狗科技發(fā)展有限公司