對滑動輸入軌跡進行識別的系統及其識別方法
【技術領域】
[0001]本發明涉及滑動輸入技術領域,具體涉及一種對滑動輸入軌跡進行識別的系統及其識別方法。
【背景技術】
[0002]隨著電子設備的流行,越來越多的技術方案被提出來用于解決觸摸屏上基于軟鍵盤的輸入問題。傳統的輸入法通常在觸摸屏幕上模擬出一個完整的鍵盤,讓用戶通過按壓屏幕上的虛擬鍵位完成輸入。但是由于屏幕大小的限制,虛擬按鍵所占據的區域十分有限,用戶輸入的時候容易發生誤觸,同時這種輸入方式需要用戶依次準確的點擊單詞的每一個字母,用戶輸入的速度受到限制。后來發展出的另一種輸入方法是讓用戶在觸摸屏上使用手指依次劃過單詞的每一個字母所在的位置,這一過程中用戶的手指不需要離開屏幕,根據所使用的算法的不同,也不需要用戶精確的定位到每一個字母,所以可以極大的提高用戶的輸入速度,改善了用戶的輸入體驗。
[0003]現有的滑動輸入法的思想通常繼承于手勢識別算法,記錄用戶滑動的軌跡,并和單詞庫中的標準軌跡進行相似度的對比,從而選出相似度最高的結果。這種方法的缺點在于限制了用戶滑動的方式,比如對于單詞“right”,用戶可以按照最短的軌跡,如圖1所示,劃出單詞,也可能由于某些原因,按照圖2的方式劃出單詞,如果基于軌跡相似度來判斷,第二種方式的相似度是非常低的,從而無法給出正確的預測。其次,如果用戶在輸入較長的單詞時,有可能會漏掉個別字母,從而導致軌跡變形,預測失敗。最后軌跡相似度的比對會消耗較大的計算量,其實現方法也非常復雜,需要做抽樣和坐標變化等預處理操作。
【發明內容】
[0004]為解決上述技術問題,本發明提供了一種更快速,自由度更高,更易于實現的對滑動輸入軌跡進行識別的系統及其識別方法。
[0005]本發明一種對滑動輸入軌跡進行識別的系統,其技術方案是:包括
[0006]輸入模塊:用于向用戶提供虛擬鍵位的坐標信息,輔助用戶完成輸入和滑動操作;
[0007]滑動軌跡記錄模塊:用于采集輸入模塊內的滑動軌跡,并對滑動軌跡進行預處理,將軌跡序列轉換為鍵位序列發送至搜索模塊;
[0008]搜索模塊:根據輸入的鍵位序列,從詞庫存儲模塊內搜索有可能為用戶輸入目標的單詞,生成單詞集合,并將單詞集合發送給排序模塊;
[0009]排序模塊:綜合滑動軌跡的匹配得分和詞頻得分,對單詞集合內的單詞進行排序,并將多余單詞刪除,將排序后新形成的單詞集合發送給輸出模塊;
[0010]輸出模塊:用于將接收到的排序后的單詞集合顯示輸出;
[0011]詞庫存儲模塊:用于存儲常用單詞。
[0012]本發明一種對滑動輸入軌跡進行識別的方法,其技術方案是,包括以下步驟,
[0013]步驟S1:采集用戶滑動輸入的軌跡,生成軌跡序列;
[0014]步驟S2:將軌跡序列轉化為鍵位序列,同時記錄軌跡與各個鍵位相交的坐標以及相交點與相鄰鍵位相交點連線夾角;
[0015]步驟S3:根據鍵位序列從詞庫中搜索有可能為用戶輸入目標的單詞,生成單詞集合,并依據評分標準對單詞集合內的各個單詞進行評分;
[0016]步驟S4:依據各個單詞的評分高低對單詞集合內的各個單詞進行排序,并將多余單詞刪除;
[0017]步驟S5:將排序后的單詞集合顯示輸出;
[0018]進一步的,所述步驟S2中,滑動軌跡記錄模塊將軌跡序列與輸入模塊上的鍵盤布局進行對照,依據軌跡與鍵盤上不同鍵位相交的順序將軌跡序列轉換成由各個鍵位組成的鍵位序列;
[0019]記錄并存儲軌跡與鍵位序列中各個鍵位的相交坐標、鍵位序列中各個鍵位中心點坐標、相交點與相鄰鍵位相交點連線夾角;
[0020]記錄軌跡滑動時手指停留在各個鍵位上的時長,并與鍵位序列中每個鍵位停留的平均時長進行比對,若某個鍵位停留時長與鍵位序列中每個鍵位停留的平均時長的比值超過閾值,則認為該輸入鍵位為重疊鍵位。
[0021]進一步的,所述步驟S3中,搜索模塊對詞庫存儲模塊內的單詞查找樹進行多輪遍歷,遍歷過程中將匹配到的單詞進行存儲;
[0022]所述遍歷過程根據鍵位序列中的鍵位順序依次進行,遍歷過程中將每輪遍歷得到的所有中間狀態進行存儲,所述中間狀態內保存的信息包括本輪遍歷起始節點和待匹配鍵位,所述遍歷過程如下:
[0023]步驟a,對所有中間狀態進行匹配操作和刪除操作;
[0024]匹配操作,以起始節點為起點,待匹配鍵位為遍歷目標,在起始節點的子節點中尋找可與待匹配鍵位匹配的目標子節點,若找到可與待匹配鍵位匹配的目標子節點,則生成新中間狀態并將原中間狀態刪除,更新后的中間狀態內包括目標子節點和新的待匹配鍵位;
[0025]刪除操作,從鍵位序列中與起始節點對應的鍵位開始依次刪除i個鍵位,i依次取
1、2、3......n,依次以第i+Ι個鍵位為遍歷目標,在起始節點的子節點中尋找可與之匹配的目標子節點,生成新中間狀態并將原中間狀態刪除,更新后的中間狀態數量與可匹配目標子節點數量相對應,每個更新后的中間狀態內包括一個可匹配目標子節點和新的待匹配鍵位,所述新的待匹配鍵位為可匹配目標子節點對應鍵位的下一個鍵位;
[0026]步驟b,對所有新的中間狀態進行新一輪的匹配與刪除操作;
[0027]重復步驟b,直至鍵位序列中所有鍵位遍歷完成;
[0028]所述遍歷過程中,匹配目標節點后可形成一個單詞時,則將該單詞進行存儲。
[0029]進一步的,所述步驟S3中,搜索模塊對詞庫存儲模塊內的單詞查找樹進行多輪遍歷,遍歷過程中將匹配到的單詞進行存儲;
[0030]所述遍歷過程根據鍵位序列中的鍵位順序依次進行,遍歷過程中將每輪遍歷得到的所有中間狀態進行存儲,所述中間狀態內保存的信息包括本輪遍歷起始節點和待匹配鍵位,所述遍歷過程如下:
[0031]步驟a,對所有中間狀態進行匹配操作和刪除操作;
[0032]匹配操作,以起始節點為起點,待匹配鍵位為遍歷目標,在起始節點的子節點中尋找可與待匹配鍵位或鍵盤上與待匹配鍵位相鄰其它鍵位匹配的目標子節點,若找到可與待匹配鍵位以及鍵盤上與其相鄰其它鍵位匹配的目標子節點,則生成新中間狀態并將原中間狀態刪除,更新后的中間狀態內包括目標子節點和新的待匹配鍵位;
[0033]刪除操作,從鍵位序列中與起始節點對應的鍵位開始依次刪除i個鍵位,i依次取
1、2、3......n,依次以第i+Ι個鍵位為遍歷目標,在起始節點的子節點中尋找可與之匹配或可與其鍵盤上相鄰鍵位匹配的目標子節點,生成新中間狀態并將原中間狀態刪除,更新后的中間狀態數量與可匹配目標子節點數量相對應,每個更新后的中間狀態內包括一個可匹配目標子節點和新的待匹配鍵位,所述新的待匹配鍵位為可匹配目標子節點對應鍵位的下一個鍵位;
[0034]步驟b,對所有新的中間狀態進行新一輪的匹配與刪除操作;
[0035]重復步驟b,直至鍵位序列中所有鍵位遍歷完成;
[0036]所述遍歷過程中,匹配目標節點后可形成一個單詞時,則將該單詞進行存儲。
[0037]進一步的,所述匹配操作過程中,若起始節點的子節點中存在與起始節點相同的節點,則將該節點自動匹配,在該節點的子節點中尋找可與待匹配鍵位匹配的目標子節點,同時以起始節點為起點,在起始節點的子節點中尋找可與待匹配鍵位匹配的目標子節點。
[0038]進一步的,所述每輪遍歷均對中間狀態進行評分,所述評分過程考慮匹配得分與懲罰得分,所述匹配得分與懲罰得分綜合運算后生成該中間狀態的狀態得分,每次遍歷的中間狀態得分進行疊加形成遍歷所得的每個單詞的得分,將最終生成的單詞得分進行存儲;
[0039]所述匹配得分用于匹配操作,根據軌跡與鍵位序列中各個鍵位的相交坐標、鍵位序列中各個鍵位中