【技術領域】
本發明涉及計算機應用技術,特別涉及糾錯詞展示方法、裝置、設備及存儲介質。
背景技術:
當前,隨著各種應用場景的智能化、移動化及碎片化,人們越來越習慣在便攜式的智能終端上進行操作來完成自己的日常需求,如購物、出行、社交、瀏覽新聞及資訊等,所述智能終端可包括手機、平板電腦及車載設備等。
相應地,作為人機交互手段的移動輸入法也受到越來越多的重視,其技術的迭代也變得越來越快。
目前業界主流的移動輸入法均通過支持智能糾錯的方式來提升用戶在錯輸、少輸或誤觸情景下的體驗。
圖1為現有一個糾錯實例的示意圖,如圖1所示,用戶輸入“wi”,高概率會被糾正為“wo”,并將“我”作為首選的候選詞展示給用戶。
圖2為現有另一個糾錯實例的示意圖,如圖2所示,用戶輸入“vun”,高概率會被糾正為“bun”,并將“不能”作為首選的候選詞展示給用戶。
但上述智能糾錯方式在實際應用中也會存在一定的問題,如:在用戶精確輸入的場景下,可能會給出過多、不當的糾錯詞。
比如,用戶輸入的輸入碼為“bengkui”,除了展示精確詞“崩潰”之外,還展示了糾錯詞“奔潰”(將‘g’視為多輸)、崩落(將‘k’糾錯為‘l’,將‘i’糾錯為‘o’)。
而這些糾錯詞通常都是用戶不需要(不會選擇)的,從而降低了展示結果的準確性。
技術實現要素:
有鑒于此,本發明提供了糾錯詞展示方法、裝置、設備及存儲介質,能夠提高展示結果的準確性。
具體技術方案如下:
一種糾錯詞展示方法,包括:
獲取用戶輸入的輸入碼;
獲取所述輸入碼的離散性評估結果;
根據所述離散性評估結果確定出糾錯調整策略;
按照所述糾錯調整策略展示所述輸入碼對應的糾錯詞。
一種糾錯詞展示裝置,包括:采集單元、評估單元以及調整單元;
所述采集單元,用于獲取用戶輸入的輸入碼,并發送給所述評估單元;
所述評估單元,用于獲取所述輸入碼的離散性評估結果,并發送給所述調整單元;
所述調整單元,用于根據所述離散性評估結果確定出糾錯調整策略,并按照所述糾錯調整策略展示所述輸入碼對應的糾錯詞。
一種計算機設備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,所述處理器執行所述程序時實現如以上所述的方法。
一種計算機可讀存儲介質,其上存儲有計算機程序,所述程序被處理器執行時實現如以上所述的方法。
基于上述介紹可以看出,采用本發明所述方案,可對用戶輸入的輸入碼進行離散性評估,從而得到離散性評估結果,進而根據離散性評估結果確定出糾錯調整策略,并按照確定出的糾錯調整策略展示輸入碼對應的糾錯詞,即根據用戶的輸入情況對糾錯詞的展示方式進行靈活調整,從而相比于現有技術提高了展示結果的準確性。
【附圖說明】
圖1為現有一個糾錯實例的示意圖。
圖2為現有另一個糾錯實例的示意圖。
圖3為本發明所述兩個實驗組的比較結果示意圖。
圖4為本發明所述糾錯詞展示方法實施例的流程圖。
圖5為本發明所述糾錯詞展示裝置實施例的組成結構示意圖。
圖6示出了適于用來實現本發明實施方式的示例性計算機系統/服務器12的框圖。
【具體實施方式】
針對現有技術中存在的問題,本發明中提出一種改進后的糾錯詞展示方式,從按鍵落點的離散程度上對用戶的每一次輸入的質量進行評估,即得到用戶輸入的輸入碼的離散性評估結果,并根據離散性評估結果對糾錯力度進行調整,在不影響用戶精確輸入體驗的前提下,給出符合實際情況的糾錯策略。
可收集一系列測試語料,每個測試語料中可包括:過往實際發生的一次輸入中,輸入的輸入碼以及被選中的候選詞,被選中的候選詞可以是精確詞,也可以是糾錯詞。
并且,可將測試語料分為兩個實驗組,一個實驗組中,選中的均為精確詞,另外一個實驗組中,選中的均為糾錯詞,相應地,可將兩個實驗組分別稱為精確詞實驗組以及糾錯詞實驗組。
針對每個實驗組,可分別確定出其中的每個測試語料中的輸入碼的離散性評估結果等,進而可根據確定結果對兩個實驗組進行比較。
如圖3所示,圖3為本發明所述兩個實驗組的比較結果示意圖,其中的橫坐標表示輸入碼的長度,如輸入碼“women”的長度為5,縱坐標表示離散性評估結果,另外,上面的曲線對應于糾錯詞實驗組,下面的曲線對應于精確詞實驗組。
從圖3中可以看出,大多數情況下兩條曲線之間相隔較遠,即兩個實驗組在離散程度上有著較大的差異,從而驗證了本發明所述方案的可行性。
為了使本發明的技術方案更加清楚、明白,以下參照附圖并舉實施例,對本發明所述方案作進一步地詳細說明。
圖4為本發明所述糾錯詞展示方法實施例的流程圖,如圖4所示,包括以下具體實現方式。
在401中,獲取用戶輸入的輸入碼。
比如,所述輸入碼可為“women”,用戶可依次輸入其中的每個子碼,各子碼按輸入順序組成所述輸入碼。
可在獲取用戶輸入的每個子碼的同時,獲取子碼的落點坐標,如何獲取落點坐標為現有技術。
在402中,獲取輸入碼的離散性評估結果。
在分別獲取到輸入碼中的各子碼的落點坐標之后,可根據各子碼的落點坐標確定出輸入碼的離散性評估結果。
具體地,可計算得到輸入碼的離散性評估結果,計算方式包括但不限于:距離的方差、平方和、任何以距離作為因變量的冪函數、指數函數、對數函數、三角函數及反三角函數等簡單函數,或者與其相關的復雜函數。
比如,可按照以下方式計算得到輸入碼的離散性評估結果s:
其中,(xτ,yτ)表示輸入碼中的任一子碼i對應的點擊響應區域的中心坐標,(px,py)表示子碼i的落點坐標,t表示各落點坐標集合。
在403中,根據離散性評估結果確定出糾錯調整策略。
在計算出輸入碼的離散性評估結果之后,可將離散性評估結果輸入給預先設定的映射函數,從而得到一個映射值,并確定出映射值對應的糾錯調整策略,將確定出的糾錯調整策略作為所需的糾錯調整策略。
即有:r=e(s);(2)
其中,e表示映射函數,r表示映射值,s表示離散性評估結果。
e可以為分段函數,也可以為連續函數,具體函數形式不限,可根據實際需要而定。
可預先設定不同的映射值分別對應的糾錯調整策略,具體為何種策略同樣可根據實際需要而定。
所述調整可包括以下之一或任意組合:
對糾錯詞的權重進行調整、對糾錯詞的展示數量進行調整、對糾錯詞的展示位置進行調整等。
比如,可將各糾錯詞的權重進行降權或增權,權重的大小將影響糾錯詞在展示結果中的展示順序/位置,可對糾錯詞的展示數量進行限制,可對糾錯詞在精確詞之前出現的數量進行限制等。
在404中,按照糾錯調整策略展示輸入碼對應的糾錯詞。
現有技術中,當用戶輸入輸入碼之后,將會分別確定出輸入碼對應的精確詞和糾錯詞,通常數量均為多個,可將確定出的精確詞和糾錯詞按預定方式排序后展示給用戶。
在此基礎上,可按照本發明所述方式確定出糾錯調整策略,并按照糾錯調整策略展示輸入碼對應的糾錯詞,即按照糾錯詞的調整策略進行糾錯詞的展示,如按照限定的展示數量展示糾錯詞,按照限定的在精確詞之前出現的糾錯詞的數量展示糾錯詞等。
相比于現有技術,本發明所述方案中可根據用戶的輸入情況對糾錯詞的展示方式進行靈活調整,從而提高了展示結果的準確性。
在此基礎上,還可采取以下優化措施,以便對本發明所述方案進行進一步優化和完善。
1)優化方式一
在獲取用戶輸入的輸入碼的離散性評估結果之前,可首先過濾掉輸入碼中不符合預定要求的子碼,之后獲取過濾處理之后的輸入碼的離散性評估結果。
即將輸入碼中不符合預定要求的子碼視為噪聲進行過濾,被過濾掉的子碼將不參與離散性評估結果的計算,如何進行過濾不作限制,可根據實際需要而定。
比如,若某一子碼的落點坐標與該子碼對應的點擊響應區域的中心坐標之間的偏差大于預定閾值,則可將該子碼過濾掉。
再比如,若某一子碼對應的按鍵與期望按鍵之間間隔的按鍵數大于預定閾值,則可將該子碼過濾掉。
過濾后再計算離散性評估結果,可使算法的適應性更強,計算結果更為準確。
2)優化方式二
通過之前的介紹可以看出,離散性與輸入碼的長度也存在關聯關系,因此,可將離散性評估結果以及輸入碼的長度同時輸入給預先設定的映射函數,從而得到一個映射值,進而確定出映射值對應的糾錯調整策略。
即可對公式(2)中的映射函數進行優化,將公式(2)變為:
r=e(s,l);(3)
l表示輸入碼的長度。
通過公式(3),可提升算法的精細度。
3)優化方式三
針對不同的分辨率,離散性指標也可能不同,為了消除分辨率上的區別所帶來的偏差,可以采用等比例縮放算法或者分辨率擬合算法。
其中,等比例縮放算法可以是指,在根據各子碼的落點坐標確定出輸入碼的離散性評估結果之前,首先確定是否需要對輸入碼中的各子碼的落點進行標準化處理,如果是,則分別對輸入碼中的各子碼的落點進行標準化處理,并根據標準化處理之后的各子碼的落點坐標確定出輸入碼的離散性評估結果。
分辨率擬合算法可以是指,將離散性評估結果、輸入碼的長度以及輸入法面板的分辨率信息輸入給預先設定的映射函數,從而得到一個映射值,并確定出映射值對應的糾錯調整策略。
即有:r=e(s,l,uw,uh);(4)
其中,uw和uh分別表示輸入法面板的分辨率的寬和高。
在實際應用中,可以將本發明所述方案通過內嵌或外掛的方式與現有的輸入法模型相結合。
以上是關于方法實施例的介紹,以下通過裝置實施例,對本發明所述方案進行進一步說明。
圖5為本發明所述糾錯詞展示裝置實施例的組成結構示意圖,如圖5所示,包括:采集單元501、評估單元502以及調整單元503。
采集單元501,用于獲取用戶輸入的輸入碼,并發送給評估單元502。
評估單元502,用于獲取輸入碼的離散性評估結果,并發送給調整單元503。
調整單元503,用于根據離散性評估結果確定出糾錯調整策略,并按照糾錯調整策略展示輸入碼對應的糾錯詞。
用戶輸入的輸入碼由一系列子碼組成,各子碼按輸入順序組成輸入碼,如輸入碼為“women”,w即為其中的一個子碼。
采集單元501在分別獲取用戶輸入的各子碼的同時,可進一步獲取各子碼落點坐標,并將各子碼及其落點坐標發送給評估單元502。
相應地,評估單元502可根據各子碼的落點坐標確定出輸入碼的離散性評估結果。
評估單元502可計算得到輸入碼的離散性評估結果,計算方式包括但不限于:距離的方差、平方和、任何以距離作為因變量的冪函數、指數函數、對數函數、三角函數及反三角函數等簡單函數,或者與其相關的復雜函數。
調整單元503可將獲取自評估單元502的離散性評估結果輸入給預先設定的映射函數,從而得到一個映射值,進而確定出映射值對應的糾錯調整策略。
可預先設定不同的映射值分別對應的糾錯調整策略,具體為何種策略同樣可根據實際需要而定。
所述調整可包括以下之一或任意組合:
對糾錯詞的權重進行調整、對糾錯詞的展示數量進行調整、對糾錯詞的展示位置進行調整等。
比如,可將各糾錯詞的權重進行降權或增權,權重的大小將影響糾錯詞在展示結果中的展示順序/位置,可對糾錯詞的展示數量進行限制,可對糾錯詞在精確詞之前出現的數量進行限制等。
調整單元503可按照糾錯調整策略展示輸入碼對應的糾錯詞。
在此基礎上,還可采取以下優化措施:
評估單元502可在獲取輸入碼的離散性評估結果之前,過濾掉輸入碼中不符合預定要求的子碼,并獲取過濾處理之后的輸入碼的離散性評估結果;
另外,調整單元503可將離散性評估結果以及輸入碼的長度輸入給預先設定的映射函數,得到一個映射值,確定出映射值對應的糾錯調整策略;
調整單元503還可將離散性評估結果、輸入碼的長度以及輸入法面板的分辨率信息輸入給預先設定的映射函數,得到一個映射值,確定出映射值對應的糾錯調整策略;
再有,評估單元502還可在根據各子碼的落點坐標確定出輸入碼的離散性評估結果之前,確定是否需要對輸入碼中的各子碼的落點進行標準化處理,如果是,則分別對輸入碼中的各子碼的落點進行標準化處理,并根據標準化處理之后的各子碼的落點坐標確定出輸入碼的離散性評估結果。
圖5所示裝置實施例的具體工作流程請參照前述方法實施例中的相應說明,不再贅述。
圖6示出了適于用來實現本發明實施方式的示例性計算機系統/服務器12的框圖。圖6顯示的計算機系統/服務器12僅僅是一個示例,不應對本發明實施例的功能和使用范圍帶來任何限制。
如圖6所示,計算機系統/服務器12以通用計算設備的形式表現。計算機系統/服務器12的組件可以包括但不限于:一個或者多個處理器(處理單元)16,存儲器28,連接不同系統組件(包括存儲器28和處理器16)的總線18。
總線18表示幾類總線結構中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結構中的任意總線結構的局域總線。舉例來說,這些體系結構包括但不限于工業標準體系結構(isa)總線,微通道體系結構(mac)總線,增強型isa總線、視頻電子標準協會(vesa)局域總線以及外圍組件互連(pci)總線。
計算機系統/服務器12典型地包括多種計算機系統可讀介質。這些介質可以是任何能夠被計算機系統/服務器12訪問的可用介質,包括易失性和非易失性介質,可移動的和不可移動的介質。
存儲器28可以包括易失性存儲器形式的計算機系統可讀介質,例如隨機存取存儲器(ram)30和/或高速緩存存儲器32。計算機系統/服務器12可以進一步包括其它可移動/不可移動的、易失性/非易失性計算機系統存儲介質。僅作為舉例,存儲系統34可以用于讀寫不可移動的、非易失性磁介質(圖6未顯示,通常稱為“硬盤驅動器”)。盡管圖6中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅動器,以及對可移動非易失性光盤(例如cd-rom,dvd-rom或者其它光介質)讀寫的光盤驅動器。在這些情況下,每個驅動器可以通過一個或者多個數據介質接口與總線18相連。存儲器28可以包括至少一個程序產品,該程序產品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執行本發明各實施例的功能。
具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括——但不限于——操作系統、一個或者多個應用程序、其它程序模塊以及程序數據,這些示例中的每一個或某種組合中可能包括網絡環境的實現。程序模塊42通常執行本發明所描述的實施例中的功能和/或方法。
計算機系統/服務器12也可以與一個或多個外部設備14(例如鍵盤、指向設備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機系統/服務器12交互的設備通信,和/或與使得該計算機系統/服務器12能與一個或多個其它計算設備進行通信的任何設備(例如網卡,調制解調器等等)通信。這種通信可以通過輸入/輸出(i/o)接口22進行。并且,計算機系統/服務器12還可以通過網絡適配器20與一個或者多個網絡(例如局域網(lan),廣域網(wan)和/或公共網絡,例如因特網)通信。如圖6所示,網絡適配器20通過總線18與計算機系統/服務器12的其它模塊通信。應當明白,盡管圖中未示出,可以結合計算機系統/服務器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設備驅動器、冗余處理單元、外部磁盤驅動陣列、raid系統、磁帶驅動器以及數據備份存儲系統等。
處理器16通過運行存儲在存儲器28中的程序,從而執行各種功能應用以及數據處理,例如實現圖4所示實施例中的方法,即獲取用戶輸入的輸入碼,獲取輸入碼的離散性評估結果,根據離散性評估結果確定出糾錯調整策略,按照糾錯調整策略展示輸入碼對應的糾錯詞。
具體實現可參照前述方法實施例中的相關說明,不再贅述。
本發明同時公開了一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執行時將實現如圖4所示實施例中的方法。
可以采用一個或多個計算機可讀的介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。
計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數據信號,其中承載了計算機可讀的程序代碼。這種傳播的數據信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發送、傳播或者傳輸用于由指令執行系統、裝置或者器件使用或者與其結合使用的程序。
計算機可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括——但不限于——無線、電線、光纜、rf等等,或者上述的任意合適的組合。
可以以一種或多種程序設計語言或其組合來編寫用于執行本發明操作的計算機程序代碼,所述程序設計語言包括面向對象的程序設計語言—諸如java、smalltalk、c++,還包括常規的過程式程序設計語言—諸如”c”語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執行、部分地在用戶計算機上執行、作為一個獨立的軟件包執行、部分在用戶計算機上部分在遠程計算機上執行、或者完全在遠程計算機或服務器上執行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡——包括局域網(lan)或廣域網(wan)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網服務提供商來通過因特網連接)。
在本發明所提供的幾個實施例中,應該理解到,所揭露的裝置和方法等,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用硬件加軟件功能單元的形式實現。
上述以軟件功能單元的形式實現的集成的單元,可以存儲在一個計算機可讀取存儲介質中。上述軟件功能單元存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)或處理器(processor)執行本發明各個實施例所述方法的部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。