一種字符輸入的方法、輸入法系統及詞庫更新的方法
2023-04-28 03:03:56 3
專利名稱:一種字符輸入的方法、輸入法系統及詞庫更新的方法
技術領域:
本發明涉及字符信息的輸入領域,特別是涉及一種字符輸入的方法、輸入法系統以及一種詞庫更新的方法和一種詞庫發布系統。
背景技術:
隨著計算機技術以及網際網路技術的普及與發展,不同專業領域、不同興趣以及使用習慣的用戶對於輸入法系統的智能性要求越來越高。
在評價輸入法智能性時,首選詞的準確率是一個非常重要的評價標準,同時,候選項的排序也非常的重要,而記載有詞條信息和詞頻信息的輸入法詞庫是影響二者重要因素之一。因為用戶所需的目標詞在詞庫中存在,以及其相應的詞頻信息非常符合用戶的使用習慣,則針對該用戶的首選詞準確率及候選項排序就會比較符合需求。
但是,目前輸入法的詞庫一般只能夠覆蓋人們使用的詞彙的一部分,通常主要包括一些人們普遍的常用詞彙,還有一部分詞彙輸入法詞庫是不可能全部包括進來的。因為現有的輸入法詞庫都是標準的,針對是所有用戶,如果把所有用戶用的詞彙都加入進來,那麼輸入法的詞庫容量將在數百萬的量級。詞庫過大,同音字過多,候選項增加,不需要使用這些詞的用戶會受到幹擾,並且,這樣一個超大的詞庫勢必大幅佔用CPU、內存等計算設備資源,對個人電腦來說是不能接受的。
例如,每個人在使用輸入法時除了輸入許多常用詞彙之外(例如「現在」、「時間」、「多少」等),還會輸入一小部分人用的詞彙,例如一些遊戲名詞「艾澤拉斯」「德魯伊」,最新的電影「雲水謠」等等。這些詞彙對非常小的群體來說會經常輸入,例如魔獸世界玩家,化學專業的工程師,生物學的教師等等。但是這些詞彙在總體用戶中的使用比例特別低,現有模式下的輸入法詞庫是不可能把這些詞彙全部包括進去,這樣就會導致現有技術下,用戶輸入上述這些小群體的常用詞彙時的首選詞準確率非常低,嚴重影響用戶的使用體驗以及其思想的表達。
總之,需要本領域技術人員迫切解決的一個技術問題就是如何改進輸入法詞庫,使得其既可以滿足現有計算設備的資源分配,又可以大大提高各個用戶的輸入效率。
發明內容
本發明所要解決的技術問題是提供一種新型的輸入法詞庫模式以及整套的輸入解決方案,能夠滿足現有計算設備的資源分配,不會佔用更多計算資源,並且可以顯著提高各個用戶的輸入效率。
為了解決上述問題,本發明公開了一種輸入法系統,包括輸入接口單元、信息轉換單元和顯示輸出單元,還包括系統詞庫,用於記錄基礎字詞及其相關信息;細胞詞集,用於記錄擴展字詞及其相關信息;所述細胞詞集由從伺服器端所存儲的多個細胞詞庫中獲取的至少一個細胞詞庫得到;每個細胞詞庫中的字詞至少具有一個共同屬性。
優選的,所述的輸入法系統還可以包括自動更新模塊,用於依據已有細胞詞庫列表,從伺服器端獲取所需的更新數據。
優選的,所述細胞詞集中存儲的相關信息類型少於或等於所述系統詞庫中存儲的相關信息類型;所述多個細胞詞庫中至少存在一個細胞詞庫由人工手動生成。
進一步,所述的輸入法系統還可以包括用戶詞庫。
進一步,所述的輸入法系統還可以包括添加模塊,用於將獲取的細胞詞庫詞條信息添加至所述細胞詞集中;所述細胞詞集為一個獨立的詞庫或者為多個詞庫並列存在的詞庫集合。優選的,所述添加過程在一獨立的緩存詞庫中進行。
進一步,所述的輸入法系統還可以包括細胞詞庫停用模塊,用於接收用戶指令,從細胞詞集中去除屬於用戶所選細胞詞庫的詞條記錄。
根據本發明的實施例,還公開了一種字符輸入的方法,包括加載系統詞庫和細胞詞集;所述細胞詞集用於記錄擴展字詞及其相關信息;所述細胞詞集由從伺服器端所存儲的多個細胞詞庫中獲取的至少一個細胞詞庫得到;每個細胞詞庫中的字詞至少具有一個共同屬性;接收用戶的輸入信息;
依據所接收的輸入信息,在所述系統詞庫和細胞詞集中進行檢索,得到相應的候選項;接收用戶的選擇信息,將指定的候選項上屏輸出。
其中,所述加載為將細胞詞集與系統詞庫合併為一個詞庫,置於緩存中;或者,所述加載為將細胞詞集與系統詞庫作為兩個或多個獨立詞庫置於緩存中,並依據預置規則設定詞庫優先級;所述優先級用於候選項的顯示排序。
優選的,所述細胞詞集中記載有各詞條所屬的細胞詞庫以及相應的細胞詞庫優先級;所述優先級用於候選項的顯示排序。
進一步,所述的方法還可以包括在加載過程中,依據輸入法的使用環境動態調整細胞詞庫優先級。
依據本發明的另一實施例,還公開了一種詞庫更新的方法,所更新的詞庫涉及用於記錄擴展字詞及其相關信息的細胞詞集,所述細胞詞集由從伺服器端所存儲的多個細胞詞庫中選取的至少一個細胞詞庫得到;每個細胞詞庫中的字詞至少具有一個共同屬性;所述方法包括接受觸發,比較已有細胞詞庫列表和伺服器端細胞詞庫列表,得到所需更新的詞庫列表;下載所需更新的細胞詞庫詞條信息,並添加至細胞詞集中。
進一步,所述的方法還可以包括手動或者自動升級伺服器端所存儲的細胞詞庫,並更改相應的版本信息。優選的,所述添加過程在一獨立的緩存詞庫中進行。
依據本發明的另一實施例,還公開了一種詞庫發布系統,包括細胞詞庫生成單元,包括接口模塊,用於接收輸入信息;生成模塊,用於依據所接收的信息生成細胞詞庫;標識模塊,用於為每個細胞詞庫指定標識和版本信息;其中,每個細胞詞庫中的字詞至少具有一個共同屬性;通信單元,用於接受觸發,傳輸相應的細胞詞庫詞條信息至客戶端。
進一步,所述細胞詞庫生成單元還可以包括修改更新模塊,用於修改更新細胞詞庫已存信息,並通知所述標識模塊針對該細胞詞庫生成新的版本信息。
進一步,所述的詞庫發布系統還可以包括識別模塊,用於比較伺服器端的細胞詞庫列表和客戶端的細胞詞庫列表,所得到的比較結果用於傳輸所需的更新數據至客戶端。
優選的,依據所接收的信息得到的細胞詞庫中存儲有多個詞條信息;或者,依據所接收的信息得到的細胞詞庫中存儲有索引信息,所述索引信息對應其他細胞詞庫。
進一步,所述的詞庫發布系統還可以包括合併模塊,用於將多個細胞詞庫詞條信息合併為一個下載詞庫,並通知通信單元將該下載詞庫傳輸至客戶端。
與現有技術相比,本發明具有以下優點本發明將現有技術中面向所有用戶的標準輸入法詞庫改進為由系統詞庫和細胞詞集兩部分構成,其中,系統詞庫仍面向所有用戶,以通用詞彙為主,而細胞詞集部分則通過伺服器端提供多個細胞詞庫,由用戶選擇最合適自己的,然後合併得到。因此,可以保證最後該用戶使用的輸入法詞庫仍然在現有的詞庫容量級別上,而又通過每個人的個性化的選擇和使用,使得其基本能夠覆蓋一個用戶幾乎所有的詞彙,並具有相對更準確的詞頻信息,從而可以大大提高首選詞準確率,也可以實現更符合用戶使用習慣的候選項排序。
本發明在現有的輸入法的詞庫容量級別上實現了動態的細胞式詞庫,用戶通過手動或者由電腦自動添加小詞庫,通過每個人的個性化的選擇或定製,通過自動更新,和系統詞庫的聯合使用,就能夠覆蓋一個用戶幾乎所有的詞彙。這樣就使用戶可以輸入幾乎所有的詞彙或句子,能夠大幅提升輸入法的首選詞準確率。在理論上將個人的詞庫覆蓋面擴大到最大,從而使打字的準確率有一個較大的提升。
本發明通過多個細胞詞庫的使用,並可以通過自動升級的方式來更新細胞詞庫,能夠使個人的詞庫與時代同步。個人無需動手就能夠保持詞彙的新鮮度,從而在網際網路日新月異的發展情況下,提高打字的首選詞準確率,從而較明顯的提高打字速度,降低生詞的出現,降低翻頁次數。
並且,本發明還提供了一個詞庫發布系統,用於幫助各用戶手動生成自己所屬群體的細胞詞庫,以及更新、修改該細胞詞庫;在客戶端又增加了自動更新功能,從而可以得到分類準確的細胞詞庫以及實現細胞詞庫的自動更新,使用戶與世界保持一致,永不落伍。
圖1是一種輸入法系統的實施例的結構框圖;圖2是一種用於完成字符輸入的方法實施例的步驟流程圖;圖3是一種詞庫發布系統實施例的結構框圖;圖4是一種詞庫自動更新的方法實施例的步驟流程圖。
具體實施例方式
為使本發明的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實施方式
對本發明作進一步詳細的說明。
本發明可以應用於各種輸入方式的輸入法平臺,包括鍵盤符號、手寫信息以及語音輸入等等。即所述輸入信息可以包括編碼字符串,也可以包括手寫輸入信息以及語音輸入的信息,因為這些輸入方式也都需要用到詞庫進行候選項排序。由於這些輸入方式中的信息轉換都屬於公知技術,在此就不詳述了。下面僅僅以編碼字符串輸入為例進行詳細說明。
參照圖1,示出了本發明一種輸入法系統的實施例,具體可以包括輸入接口單元101,用於接收用戶輸入的輸入信息;信息轉換單元102,用於根據用戶輸入的輸入信息,例如,接收鍵盤字符,進行編碼轉換,得到相應的候選項;顯示輸出單元103,用於顯示候選項,並接收用戶選擇,上屏輸出。
系統詞庫104,用於記錄基礎字詞及其相關信息;細胞詞集105,表示細胞詞庫的集合,用於記錄擴展字詞及其相關信息;所述細胞詞集由從伺服器端所存儲的多個細胞詞庫中選取的至少一個細胞詞庫得到;每個細胞詞庫中的字詞至少具有一個共同屬性。
在字符輸入的過程中,採用預置策略,檢索系統詞庫和細胞詞集,即可完成符合該用戶個性化需求的輸入過程。
所述細胞詞庫,具體含義為某一特定群體、某一個人或一部分人使用的具有某一共性的詞庫(即每個細胞詞庫中的字詞至少具有一個共同屬性),例如最新電影詞庫、最新歌名詞庫、魔獸世界詞庫、生物學詞庫、清華大學所有人名詞庫、某某公司全體人名詞庫、海澱區地名詞庫等。獲得細胞詞庫的方式可以為通過一個管理機構或者伺服器群來自動分類、解析獲得細胞詞庫;也可以為提供一伺服器平臺,由用戶自發的手動生成自己所述的群體的細胞詞庫,以更好的滿足個性化群體的需求。即優選的,本實施例中的所述多個細胞詞庫中至少存在一個細胞詞庫由用戶手動生成。
在現有技術中,輸入法平臺可以運行在多種計算設備上,例如,個人電腦、個人數字助理、移動終端設備等等,本發明也可以適用在上述各種計算設備中,對其運行環境並不需要加以限制。
下面簡單介紹一下漢字、韓文、日文等需要編碼轉換的字符輸入的過程,以中文輸入為例在中文裡,作為基本語言單位的漢字並不與鍵盤上的按鍵存在對應關係。因此需要輸入法進行輸入轉換。首先需要通過漢字編碼將漢字轉換成能夠直接輸入的字母、數字等。通常是用的編碼就是拼音(包括簡拼、雙拼、模糊音等各種形式)。用戶將漢字的編碼字符串通過鍵盤輸入計算機(某些情況下也可能使用滑鼠,比如軟鍵盤)。用戶的鍵盤輸入通過作業系統交給輸入法,輸入法進行解碼。由於不同的漢字序列(詞、句)可能具有相同的編碼,因此輸入法通常提供一個候選列表供用戶從中選擇。例如,對於拼音輸入法可能包含以下步驟a、拼音解析切分輸入字符串得到拼音,比如zhuanli→[zhuan][li]。當然,有時候這種切分不是唯一的,比如fangan→[fang][an]或者[fan][gan](分別對應「方案」「反感」)。優選的,輸入法可以支持簡拼,允許用戶以以下形式輸入zl,zhl,zhuanl,zhli,...。考慮到某些用戶發音不標準,也可以支持模糊音zuanli。另外還可以採用雙拼等形式。
b、漢字解碼。根據切分得到的拼音序列到詞庫中查找對應的字詞,或者通過一定的算法生成對應的句子。
c、用戶選擇所需要的內容,上屏(可能還有造詞、造句的過程)。
由於不同的漢字序列可能對應相同的編碼,對於特定的編碼字符串,輸入法需要猜測用戶真實的意圖。而要做到這一點,需要詞庫的支持。
對於本發明而言,詞庫可以包含各種語言信息,例如(1)詞條雖然也可以在字的基礎上構建輸入法,但由於詞才是漢語中的最小表義單位,因此現代輸入法大量使用了詞條信息。例如用戶分別輸入「zhuan」這個拼音的時候,很難確定他究竟想輸入「轉專賺磚......」中的哪一個字。同樣,用戶輸入「li」的時候,也很難確定他想輸入的是「裡李力利......」中的哪一個字。但是,如果用戶連續輸入「zhuanli」這兩個音節,基本上可以斷定用戶想輸入的就是「專利」這個詞。這可以大大提高輸入法首選的準確度。
(2)詞頻同音字大量存在,同音詞也仍然是存在的。遇到這種情況,只能把所有選項列出來供用戶選擇。但候選位置對輸入法的易用性有很大影響。一般而言,把較常用的詞放到靠前的位置會對用戶更有利,即詞頻是候選排序的重要依據。
另外,現有的很多輸入法中都集成了自動構造句子的功能。此時,詞頻信息也是句子構造的重要依據。
上面兩種語言信息是輸入法詞庫中不可或缺的,而本發明的輸入法詞庫還可以包括其他一些對提高輸入法準確度有利的信息,例如語言連接關係。輸入法在構造句子的過程中,除了需要考慮詞頻,還需要考慮詞和詞之間的連接關係。例如「的」常出現在形容詞、名詞、代詞等後面,而「地」則常出現在副詞後面。在這種情況下,如果用戶輸入了「de」,是不能只看「的」「地」哪個詞頻更高的。
在詞庫中存放了輸入法所需的語言信息。用戶就可以完成字符輸入了。但是,不同用戶所需的語言信息並不相同。比如(1)詞條不同。幾乎每個行業都有自己特殊的詞彙,這些詞在其他領域是很少用到的,在構造輸入法詞庫的時候可以不必考慮。例如計算機詞彙「緩存」等等。
(2)詞條重要程度不同。不同的用戶可能需要用到相同的詞,但其重要性卻隨用戶的不同而不同。比如同音詞「研究」和「菸酒」,前者在學術領域使用較多,而後者則在日常生活中使用較多。但兩者都是可能用到的,因此當用戶輸入拼音「yanjiu」時,都會出現在用戶的候選列表中。由於重要性不同,候選位置的相對大小會影響用戶的直觀感受。
對於詞條相對於用戶的重要程度,可以通過各種方式單獨使用或者組合應用,在詞庫中加以體現,例如詞頻信息。詞頻信息通常用一個數字表示,用來表示這個詞的使用頻繁程度;一般使用越頻繁的詞詞頻越高。
詞序信息。詞序信息通常也是一個數字,但只用於表示該詞條重要程度的相對含義。
或者,位置信息。為了方便,也可以省略這個數據,而用詞條在詞庫中的相對位置來表達詞條的重要程度。例如,可以認為排在詞庫前面的詞比排在後面的詞更重要,從而將前者放在候選列表的前面。
由於輸入法詞庫不可能針對每一個用戶生成一個專用的詞庫,因此,本發明提出,將輸入法詞庫劃分為系統詞庫和細胞詞集兩部分。系統詞庫用於記載常用詞彙,以滿足大多數人在大多數情況下的輸入需求,而對於某個用戶的個性化需求,則通過細胞詞集進行記載。為了提高細胞詞集與每個用戶的貼合度,通過手動或者自動的方式生成大量的細胞詞庫,然後由各個用戶自行選擇自己所需的細胞詞庫,得到細胞詞集,這樣的細胞詞集與每一個用戶的貼合度都是非常好的,因為個性化的部分是其自行選擇的。
對於用戶選擇了一個細胞詞庫的情況,則該細胞詞庫可以直接構成細胞詞集。
對於用戶選擇了多個細胞詞庫時,則細胞詞集可以具有多種表現形式。例如(1)在客戶端,將所述的多個細胞詞庫合併成為一個詞庫,即細胞詞集以一個獨立詞庫的形式存在;該詞庫中可以存儲各詞條的來源(即所屬細胞詞庫)信息,也可以不存儲。(2)在客戶端,將所述的多個細胞詞庫並列存儲,即細胞詞集以多個獨立詞庫並存的形式存在,依次掃描該多個細胞詞庫即可。(3)在客戶端,將所述的多個細胞詞庫中的一部分詞庫合併(例如,某些屬性比較相近的詞庫),即細胞詞集以多個獨立詞庫並存的形式存在,但是其中某些獨立詞庫是由多個細胞詞庫合併得到的。
對於細胞詞集而言,由於某些語言信息比較複雜,例如,語言連接關係等等,一是難以獲得,二是難以存儲,所以優選的,對於細胞詞集而言(實際上包括各個細胞詞庫),其中存儲的語言信息的類型要少於系統詞庫中所存儲的語言信息的類型。當然,細胞詞集中所存儲的語言信息的類型也有可能多於系統詞庫中所存儲的語言信息的類型,例如,對於詞序信息或者位置信息,一般存儲在細胞詞庫中,而系統詞庫中一般沒有。
進一步,本實施例的輸入法系統中還可以包括用戶詞庫106,用於記錄該用戶的輸入習慣,以更好的滿足該用戶的個性化需求。
在伺服器提供的平臺上,存在大量的細胞詞庫,並且也會有大量的用戶為了完善這些細胞詞庫,對其進行修改和更新,因此,如何將最新最好的細胞詞庫提供給選擇該細胞詞庫的輸入法用戶使用,也是本發明需要解決的技術問題之一。
優選的,本實施例還可以包括自動更新模塊107,用於接受觸發,依據已有細胞詞庫列表,從伺服器端下載所需的更新數據。例如,該用戶的輸入法系統中存儲有正在應用的細胞詞庫的信息列表,然後與伺服器端的信息進行比較,如果需要更新,則根據預置的更新策略,完成下載更新。所述的更新數據可以為整個細胞詞庫,例如,得知該細胞詞庫需要更新,則直接下載該細胞詞庫的所有詞條信息;所述的更新數據也可以為一細胞詞庫中的部分詞條信息,例如,得知該細胞詞庫需要更新,則通過詞條比對,僅僅下載發生變化的詞條信息。當然,伺服器端還可以將多個細胞詞庫中發生變化的詞條信息合併成為一個新詞庫作為更新數據。
如果用戶選擇了多個細胞詞庫,則伺服器端可以將這多個細胞詞庫合併成為一個詞庫,然後發送至客戶端作為細胞詞集,即細胞詞庫的數據添加任務由伺服器端完成。
如果用戶選擇了多個細胞詞庫,則對於細胞詞庫的數據添加由輸入法系統自行完成的情況下,本實施例還可以包括添加模塊108,用於將下載的細胞詞庫詞條信息添加至所述細胞詞集中。該添加模塊108可以採用各種可行的添加策略,例如,所述添加方式為完成更新下載一個細胞詞庫,則添加該細胞詞庫至所述細胞詞集中;或者,所述添加方式為完成所有待更新細胞詞庫的下載後,才添加至所述細胞詞集中。
該添加模塊108可以用於細胞詞集第一次形成的時候,或者其詞庫更新的時候。該添加模塊108可以用於下載整個細胞詞庫的情況,也可以用於下載一細胞詞庫中的部分詞條信息的情況。
優選的,如果詞庫添加過程能夠在較短時間內完成(比如不超過1秒),由於影響不大,則可以直接將添加過程插入用戶的輸入過程中。但如果在較短時間內無法完成以致可能影響用戶的使用感受,則詞庫添加過程應當在一個獨立的緩存詞庫中進行。這個過程中輸入法原來的詞庫不受影響,用戶可以正常使用。當緩存詞庫創建完畢後,直接替換輸入法原來的詞庫即可。由於這個替換過程可以很快,因此可以做到對用戶的正常使用幹擾降到最低。
優選的,為了進一步提高用戶對詞庫的管理,本實施例還可以包括細胞詞庫停用模塊109,用於接收用戶指令(例如,通過點選菜單項等方式),從細胞詞集中去除屬於用戶所選細胞詞庫的詞條記錄,達到將某個或者某些細胞詞庫停用的目的。
其中,所述的去除過程可以為接收用戶指令,將用戶所選的細胞詞庫從列表中刪除,並重新添加列表中的細胞詞庫,得到新的細胞詞集。由於被刪除的細胞詞庫已經不在列表中存在,新得到的細胞詞集將不包含其中的詞,效果上等價於該詞庫已經被刪除。對於在細胞詞集中獨立存在的細胞詞庫而言,直接刪除或者加上刪除標記即可達到停用的目的。
或者,所述去除過程也可以為接收用戶指令,從所述細胞詞集中刪除屬於用戶所選細胞詞庫的詞條記錄,所述細胞詞集中記載有各詞條所屬的細胞詞庫。或者,所述去除過程也可以為接收用戶指令,在所述細胞詞集中,向屬於用戶所選細胞詞庫的詞條記錄添加刪除標記,所述細胞詞集中記載有各詞條所屬的細胞詞庫。
即作為細胞詞集的大詞庫中記載了每個詞條的來源,當用戶指定刪除某個細胞詞庫時通知輸入法系統(或者其主動)將來自該詞庫的詞條從詞庫中移除。這種移出可以是直接將該詞條從數據結構中刪除並釋放其對應的空間,也可以通過一個刪除標記實現。具有刪除標記的詞條在後續使用中將被忽略(不釋放空間,但實現起來會容易些)。這種方式的好處是,當細胞詞庫很多時刪除少量詞庫而引起的系統開銷會比較小。
參照圖2,示出了一種用於完成字符輸入的方法實施例,具體可以包括步驟201、加載系統詞庫和細胞詞集;所述細胞詞集由從伺服器端所存儲的多個細胞詞庫中選取的至少一個細胞詞庫得到;每個細胞詞庫中的字詞至少具有一個共同屬性;步驟202、接收用戶的輸入信息;步驟203、依據所接收的輸入信息,在所述系統詞庫和細胞詞集中進行檢索,得到相應的候選項;步驟204、接收用戶的選擇信息,將指定的候選項上屏輸出。
本實施例中比較重要的一個問題是,當多個詞庫並存時,如何完成候選項的檢出。步驟201中所述的加載過程可以為將細胞詞集與系統詞庫合併為一個詞庫,置於緩存中。
輸入法在啟動的時候,掃描輸入法系統中具有的系統詞庫和細胞詞集,將二者合併為一個詞庫後載入緩存中,這樣用戶在後續操作中可以按照系統詞庫的使用方式直接使用。其中,系統詞庫的加載和細胞詞集的加載可以分開進行,例如,簡單情況下,用戶僅需要加載系統詞庫即可,在某些情況下,用戶選擇或者輸入法系統自動啟動(例如,符合預置策略的情況下)觸發啟動細胞詞集的加載,然後將細胞詞集合併至系統詞庫,置於緩存中,用於用戶輸入時的檢索。
進一步,步驟201中所述的加載過程也可以為將細胞詞集與系統詞庫作為兩個或多個獨立詞庫置於緩存中,並依據預置規則設定的詞庫優先級;所述優先級用於候選項的顯示排序。
即在加載過程中,將細胞詞集放到系統詞庫以外指定的空間,並在檢索系統詞庫的同時也檢索細胞詞集。優選的,此時需要指定系統詞庫和細胞詞集的優先級,例如,默認細胞詞集的優先級高於系統詞庫,則輸出候選項時,將所有屬於細胞詞集的詞都強制放在屬於系統詞庫的詞的前面。
對於細胞詞集為一個大詞庫存在時,即緩存中存在兩個獨立的詞庫。而對於細胞詞集也由多個細胞詞庫獨立組成時,則緩存中可能存在多個獨立的詞庫。當然,此時需要設定各個詞庫的優先級;所述優先級用於候選項的顯示排序。
優選的,對於細胞詞集為一個大詞庫存在時,為了體現各個細胞詞庫的不同,也可以在細胞詞集中記載有各詞條所屬的細胞詞庫以及相應的細胞詞庫優先級。
對於針對各個細胞詞庫設置有優先級的情況(包括各個細胞詞庫獨立存在和合併為一個大詞庫存在的情況),則優選的,在加載過程中,可以依據輸入法的使用環境動態調整細胞詞庫優先級。例如,細胞詞集包括有「辦公用語」和「網絡用語」兩個細胞詞庫,正常情況下它們的優先級是相同的。但當輸入法系統識別當前應用程式為Word字處理程序時,可以給「辦公用語」細胞詞庫加權,而當用戶切換到QQ聊天程序時,則可以給「網絡用語」細胞詞庫加權。
參照圖3,示出了一種適用於前述輸入法系統(為了清楚說明,採用輸入法客戶端一詞進行描述)的詞庫發布系統實施例,該詞庫發布系統可以用於輸入法客戶端首次從伺服器端下載細胞詞庫得到細胞詞集的過程,也可以用於對已有細胞詞庫進行更新的過程。
圖3所示的詞庫發布系統具體可以包括細胞詞庫生成單元301,包括用於接收輸入信息的接口模塊3011,用於依據所接收的信息得到細胞詞庫的生成模塊3012,以及用於為每個細胞詞庫指定標識和版本信息的標識模塊3013;每個細胞詞庫中的字詞至少具有一個共同屬性;通信單元302,一般位於伺服器端,用於接受觸發信息,傳輸相應的細胞詞庫詞條信息至客戶端。
細胞詞庫生成單元301中一般位於伺服器端,用於統一管理和維護細胞詞庫。當然,細胞詞庫生成單元301中的部分或者全部模塊也可以位於客戶端(可以為獨立於輸入法客戶端的其他客戶端)中,例如,接口模塊3011和生成模塊3012位於客戶端,用戶可以直接將生成的細胞詞庫文件發送至伺服器端即可,由伺服器端完成指定標識和版本信息的工作。
所述的觸發信息可以為用戶的選擇操作等,也可以是輸入法系統客戶端自動發送的觸發信息,還可以為伺服器端的自動檢測觸發。例如,伺服器或者客戶端檢索用戶IP位址或者當前輸入環境,而自動推薦相應的細胞詞庫給用戶;或者,客戶端發送的更新消息也屬於觸發信息的一種。
細胞詞庫的生成可以採用手動、自動等方式,下面對手動生成細胞詞庫的過程進行簡單說明詞庫生成人員需要通過接口模塊3011(例如,包括以詞庫編輯頁面)提供以下信息名稱、類別、條數、版本、說明、詞庫作者、詞條舉例、詞條(包括讀音信息)等等。當點擊提交按鈕後,這些信息被保存到資料庫中。然後立即啟用詞庫生成程序。最簡單的,詞庫生成程序直接將這些信息以文本的方式保存到一個文件中供用戶下載。
例如,一個細胞詞庫為一個文件,其中包含的數據可能有
為了提高細胞詞庫添加的效率,還可以對細胞詞庫的格式進行必要處理。例如對其內部的詞條進行排序,當然,這些工作都可以在生成模塊3012中完成,然後將詞條排序後的數據文件作為細胞詞庫文件提供給用戶下載。
出於版權資訊保護等目的,還可以對細胞詞庫進行加密處理。對應的,需要在安裝細胞詞庫時對其進行解密。即優選的,伺服器端還可以包括一加密模塊,輸入法客戶端還可以包括一解密模塊。
為了便於更新,標識模塊3013同時會為每一個細胞詞庫指定一個唯一ID和一個版本號。
圖3所示實施例中的細胞詞庫可以具有多種表現形式,例如一般情況下,細胞詞庫中直接存儲多個詞條信息;或者,細胞詞庫中也可以僅僅存儲索引信息,所述索引信息對應其他細胞詞庫。存儲索引信息的細胞詞庫一般可以應用於伺服器端存儲有多個依據所接收的信息得到的細胞詞庫,然後根據這些細胞詞庫的某個共性,生成一個新的細胞詞庫(即間接利用所接收的信息),為了實現簡便,則可以僅僅在該新細胞詞庫中存儲索引信息即可,用戶需要該詞庫時,再由伺服器端合併各相應詞庫後進行傳輸。
進一步,為了滿足細胞詞庫的快速更新,則本實施例中詞庫發布系統的細胞詞庫生成單元301還可以包括修改更新模塊3014,用於修改更新細胞詞庫已存信息,並通知所述標識模塊針對該細胞詞庫生成新的版本信息。所述修改可以為人工完成,也可以為依據一定的預置策略對細胞詞庫進行調整而完成,例如其他用戶向某個細胞詞庫中添加新的詞條;或者,依據預置策略,將兩個細胞詞庫中的詞條合併為一個細胞詞庫;或者,依據網際網路詞頻統計結果,將某個細胞詞庫中網際網路詞頻不符合預置條件的詞條進行刪除或者進行排序調整。
圖3所示的實施例至少可以通過以下兩種方式完成細胞詞庫的數據添加。
一是先將細胞詞庫下載至本地,然後通過雙擊打開這個文件,完成數據的添加。細胞詞庫是帶有某一特定後綴名的文件,例如.scd後綴。當輸入法系統在安裝的時候,會通過註冊表將.scd後綴與一個特定的應用程式關聯。當用戶雙擊後綴為.scd文件的時候,作業系統會根據這個關聯規則啟動對應的應用程式模塊(例如,圖1所示實施例中的添加模塊),完成細胞詞庫數據的添加。
二是通過點擊頁面上的連結,直接在線完成細胞詞庫數據的添加。用戶點擊頁面上的細胞詞庫連結後,有兩種方式保存和執行。如果用戶保存了細胞詞庫文件,同前一種方式。如果用戶選擇了執行,系統會將細胞詞庫文件保存在系統的臨時文件夾中,然後運行它。其內部實現機制和第一種方式也是相同的,區別在於文件被下載到了系統臨時文件夾,因此不需要用戶指定下載位置。同時,系統會在必要時對臨時目錄進行清理,因此雖然細胞詞庫已經被下載到臨時目錄中,但實際對用戶而言是不可見的。
優選的,將所下載的細胞詞庫添加至細胞詞集的過程,還可以包含一個轉換步驟,例如對詞庫中原來無序的詞條進行排序以便提高添加的效率。如果存在這個轉換步驟,將使用轉換後的詞庫文件;否則直接使用原詞庫文件。當然,如果伺服器端在詞庫生成過程中已經完成了轉換排序的工作,則客戶端在數據添加時就不需要重複了。
在數據添加過程中,輸入法系統(即輸入法客戶端)需要維護一個當前所應用的細胞詞庫的列表。所述細胞詞庫列表可以採用各種可行的形式,例如,將所有活動的細胞詞庫拷貝到一個指定的目錄中,或者保存一個文件名的列表(這個列表可以放在本地磁碟文件中,也可以存放在註冊表中,或者存放在遠程,例如網絡上)。
對於將細胞詞庫的數據添加至細胞詞集的過程,可以在下載完成之後立即操作(例如,通知輸入法客戶端開始添加操作);也可以等待輸入法主動發現更新(例如用戶下次啟動輸入法)的時候,再開始添加操作掃描細胞詞庫列表,依次讀入並將每個細胞詞庫添加到細胞詞集中。
以細胞詞集的表現形式為一個獨立存在的大詞庫為例進行說明,具體的添加過程可以有兩種方式增量、批量。
批量方式是一次性將所有細胞詞庫中的詞合併成一個大的臨時詞庫,然後一次性加入細胞詞集。這種方式實現起來會比較簡單,但用戶必須等待所有詞庫都合併完成後才能使用新加入的細胞詞庫。增量方式為當讀入若干個詞條就將其加入細胞詞集,如果合併時間很長的話,用戶可以邊合併邊使用,但這對系統設計的要求較高。
對於增量合併方式,在合併過程中就可以使用,因此當合併完成後不需要通知輸入法系統。但對於批量合併方式,需要在合併完成後通知輸入法系統新的詞庫已經可以使用了。一種替代的做法是,直接訪問輸入法的存儲空間並對數據進行更新,這樣雖然輸入法沒有得到通知,但數據已經被更新,因此實際已經可以使用新的數據了。
優選的,在數據添加的過程中,還可以包括優化步驟,用於對詞庫中重複的詞進行優化,例如,將重複的詞條合併。當然,為了準確記錄該詞,可以在其來源屬性中記錄其所述的多個細胞詞庫的標識等信息。進一步,還可以記錄該詞所述的多個細胞詞庫的不同的優先級,用於對於不同的輸入環境,採用不同的細胞詞庫的優先級進行候選項排序。
為了幫助輸入法客戶端更好的完成更新任務,則本實施例中的詞庫發布系統可以將更新的識別工作設置在伺服器端完成。即優選的,本實施例中的詞庫發布系統還可以包括識別模塊303,用於比較伺服器端保存的細胞詞庫列表和客戶端發送的細胞詞庫列表,所得到的比較結果用於傳輸所需的更新數據至客戶端。例如,可以將發生變化的細胞詞庫形成列表發送給客戶端,由客戶端確定和發起下載請求;或者,也可以直接由伺服器將發生變化的細胞詞庫推送給客戶端,完成更新。所述的更新數據可以為整個細胞詞庫,例如,識別得知該細胞詞庫需要更新,則傳輸該細胞詞庫的所有詞條信息;所述的更新數據也可以為一細胞詞庫中的部分詞條信息,例如,識別得知該細胞詞庫需要更新,則進一步通過詞條比對,僅僅傳輸發生變化的詞條信息即可。
進一步提高詞庫發布的效率,本實施例還可以包括合併模塊304,用於將多個細胞詞庫詞條信息合併為一個下載詞庫,並通知通信單元302將該下載詞庫傳輸至客戶端。所述合併單元可以用於各種可能的場景,例如,將用戶所選的多個細胞詞庫合併為一個詞庫後進行傳輸;或者,將多個需要更新的細胞詞庫中的發生變化的詞條信息進行合併,得到一個新詞庫,然後進行傳輸;或者,將細胞詞庫中索引信息相應的細胞詞庫進行合併,得到一個新詞庫,然後進行傳輸。
參照圖4,示出了一種詞庫更新的方法實施例,所需更新的詞庫涉及到在輸入法系統中記錄擴展字詞及其相關信息的細胞詞集,所述細胞詞集由從伺服器端所存儲的多個細胞詞庫中選取的至少一個細胞詞庫得到;每個細胞詞庫中的字詞至少具有一個共同屬性;所述方法實施例具體可以包括步驟401、接受觸發,比較已有細胞詞庫列表和伺服器端細胞詞庫列表,得到所需更新的詞庫列表;所述觸發可以手動觸發,也可以自動觸發;步驟402、下載所需更新的細胞詞庫詞條信息,並添加至細胞詞集中。
優選的,所述方法實施例還可以包括步驟403手動或者自動升級伺服器端所存儲的細胞詞庫,並更改相應的版本信息。所述升級可以為人工完成,也可以為依據一定的預置策略對細胞詞庫進行調整而完成,例如其他用戶向某個細胞詞庫中添加新的詞條;或者,依據預置策略,將兩個細胞詞庫中的詞條合併為一個細胞詞庫;或者,依據網際網路詞頻統計結果,將某個細胞詞庫中網際網路詞頻不符合預置條件的詞條進行刪除或者進行排序調整。
為了便於更新,每個細胞詞庫都具有一個唯一的ID,這個唯一ID可以是一個自然增長的整數,也可以是一個網絡地址或者其他信息(只要保證兩個不同的細胞詞庫具有不同的ID就可以)。每個細胞詞庫還可以具有一個版本信息,這個版本信息可以是一個流水號,也可以是最後一次修改的時間。該版本信息發生了改變,則表明該詞庫文件需要更新。例如,採用客戶端最後一次更新時間作為版本信息,如果與伺服器上保存的文件更新時間相比前者有變化,那麼該詞庫文件需要更新。
對於步驟401中的比較過程的實現可以採用多種實現方式,例如(1)輸入法客戶端將現有細胞詞庫列表發送給伺服器,可以通過TCP/IP協議發送,或者通過HTTP協議發送;由伺服器判斷與列表中的ID相應的細胞詞庫是否需要更新。
(2)輸入法客戶端發起更新請求,伺服器將所有的細胞詞庫的列表信息發回,由輸入法客戶端判斷哪些已有詞庫需要更新。
(3)輸入法客戶端將現有細胞詞庫列表發送給伺服器,伺服器將列表中的ID相應的細胞詞庫的版本信息發回,由輸入法客戶端判斷哪些已有詞庫需要更新。
上述幾種方式對於帶寬和設備計算壓力各有所不同,本領域技術人員根據實際需要選用即可。
對於由伺服器完成識別過程的情況而言,伺服器可以將發生變化的細胞詞庫形成列表發送給客戶端,由客戶端確定和發起下載請求(例如,從中選擇部分詞庫進行更新);或者,也可以直接由伺服器將發生變化的細胞詞庫推送給客戶端,完成更新。
對於步驟402中所下載的數據,可以為整個詞庫,也可以為一細胞詞庫中的部分詞條信息,例如,發生變化的詞條信息。
對於步驟402中的數據添加過程,可以採用增量模式、批量模式或者二者的結合。例如,所述添加方式為完成更新下載一個細胞詞庫,則添加該細胞詞庫詞條信息至所述細胞詞集中;或者,所述添加方式為完成所有待更新細胞詞庫的下載後,才添加至所述細胞詞集中。
對於增量模式,可以更新一個詞庫就安裝一個詞庫,其優點是已下載的詞庫不受未下載詞庫的影響,可以立即生效。但當下載詞庫較多時可能導致頻繁的詞庫添加操作,加重系統負擔。而批量模式則要求所有詞庫都下載到本地後才進行添加。由於添加操作較少,系統負荷較低。但當下載過程較長,特別是中間還可能發生下載失敗的情況時,就會出現已下載的詞庫長期無法使用的問題。實際使用中可以將兩種模式進行結合,比如每下載成功一個詞庫就檢查距上次添加操作是否已經過了一個預定義的時間間隔。如果超過,就執行詞庫添加操作。
如果詞庫添加過程能夠在較短時間內完成(比如不超過1秒),由於影響不大,可以直接插入用戶的輸入過程中。但如果在較短時間內無法完成以致可能影響用戶的使用感受,則詞庫添加過程應當在一個獨立的緩存詞庫中進行。這個過程中輸入法原來的詞庫不受影響,用戶可以正常使用。當緩存詞庫創建完畢後,直接替換輸入法原來的詞庫。由於這個替換過程可以很快,因此可以做到避免對用戶的正常使用構成幹擾。
以上對本發明所提供的一種輸入法系統、一種字符輸入的方法以及一種詞庫更新的方法和一種詞庫發布系統,進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式
及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。
權利要求
1.一種輸入法系統,包括輸入接口單元、信息轉換單元和顯示輸出單元,其特徵在於,還包括系統詞庫,用於記錄基礎字詞及其相關信息;細胞詞集,用於記錄擴展字詞及其相關信息;所述細胞詞集由從伺服器端所存儲的多個細胞詞庫中獲取的至少一個細胞詞庫得到;每個細胞詞庫中的字詞至少具有一個共同屬性。
2.如權利要求1所述的輸入法系統,其特徵在於,還包括自動更新模塊,用於依據已有細胞詞庫列表,從伺服器端獲取所需的更新數據。
3.如權利要求1所述的輸入法系統,其特徵在於,所述細胞詞集中存儲的相關信息類型少於或等於所述系統詞庫中存儲的相關信息類型;所述多個細胞詞庫中至少存在一個細胞詞庫由人工手動生成。
4.如權利要求1所述的輸入法系統,其特徵在於,還包括用戶詞庫。
5.如權利要求1所述的輸入法系統,其特徵在於,還包括添加模塊,用於將獲取的細胞詞庫詞條信息添加至所述細胞詞集中;所述細胞詞集為一個獨立的詞庫或者為多個詞庫並列存在的詞庫集合。
6.如權利要求5所述的輸入法系統,其特徵在於,所述添加方式為完成更新下載一個細胞詞庫,則添加該細胞詞庫詞條信息至所述細胞詞集中;或者,所述添加方式為完成所有待更新細胞詞庫的下載後,才添加至所述細胞詞集中。
7.如權利要求6所述的輸入法系統,其特徵在於,所述添加過程在一獨立的緩存詞庫中進行。
8.如權利要求1所述的輸入法系統,其特徵在於,還包括細胞詞庫停用模塊,用於接收用戶指令,從細胞詞集中去除屬於用戶所選細胞詞庫的詞條記錄。
9.如權利要求8所述的輸入法系統,其特徵在於,所述去除過程為接收用戶指令,將用戶所選的細胞詞庫從列表中刪除,並重新添加列表中的細胞詞庫,得到新的細胞詞集;或者,所述去除過程為接收用戶指令,從所述細胞詞集中刪除屬於用戶所選細胞詞庫的詞條記錄,所述細胞詞集中記載有各詞條所屬的細胞詞庫;或者,所述去除過程為接收用戶指令,在所述細胞詞集中,向屬於用戶所選細胞詞庫的詞條記錄添加刪除標記,所述細胞詞集中記載有各詞條所屬的細胞詞庫。
10.一種字符輸入的方法,其特徵在於,包括加載系統詞庫和細胞詞集;所述細胞詞集用於記錄擴展字詞及其相關信息;所述細胞詞集由從伺服器端所存儲的多個細胞詞庫中獲取的至少一個細胞詞庫得到;每個細胞詞庫中的字詞至少具有一個共同屬性;接收用戶的輸入信息;依據所接收的輸入信息,在所述系統詞庫和細胞詞集中進行檢索,得到相應的候選項;接收用戶的選擇信息,將指定的候選項上屏輸出。
11.如權利要求10所述的方法,其特徵在於,所述加載為將細胞詞集與系統詞庫合併為一個詞庫,置於緩存中;或者,所述加載為將細胞詞集與系統詞庫作為兩個或多個獨立詞庫置於緩存中,並依據預置規則設定詞庫優先級;所述優先級用於候選項的顯示排序。
12.如權利要求10所述的方法,其特徵在於,所述細胞詞集中記載有各詞條所屬的細胞詞庫以及相應的細胞詞庫優先級;所述優先級用於候選項的顯示排序。
13.如權利要求12所述的方法,其特徵在於,還包括在加載過程中,依據輸入法的使用環境動態調整細胞詞庫優先級。
14.一種詞庫更新的方法,其特徵在於,所更新的詞庫涉及用於記錄擴展字詞及其相關信息的細胞詞集,所述細胞詞集由從伺服器端所存儲的多個細胞詞庫中選取的至少一個細胞詞庫得到;每個細胞詞庫中的字詞至少具有一個共同屬性;所述方法包括接受觸發,比較已有細胞詞庫列表和伺服器端細胞詞庫列表,得到所需更新的詞庫列表;下載所需更新的細胞詞庫詞條信息,並添加至細胞詞集中。
15.如權利要求14所述的方法,其特徵在於,還包括手動或者自動升級伺服器端所存儲的細胞詞庫,並更改相應的版本信息。
16.如權利要求14所述的方法,其特徵在於所述添加方式為完成下載一個細胞詞庫,則添加該細胞詞庫詞條信息至所述細胞詞集中;或者,所述添加方式為完成所有待更新細胞詞庫的下載後,才添加至所述細胞詞集中。
17.如權利要求16所述的方法,其特徵在於,所述添加過程在一獨立的緩存詞庫中進行。
18.一種詞庫發布系統,其特徵在於,包括細胞詞庫生成單元,包括接口模塊,用於接收輸入信息;生成模塊,用於依據所接收的信息生成細胞詞庫;標識模塊,用於為每個細胞詞庫指定標識和版本信息;其中,每個細胞詞庫中的字詞至少具有一個共同屬性;通信單元,用於接受觸發,傳輸相應的細胞詞庫詞條信息至客戶端。
19.如權利要求18所述的詞庫發布系統,其特徵在於,所述細胞詞庫生成單元還包括修改更新模塊,用於修改更新細胞詞庫已存信息,並通知所述標識模塊針對該細胞詞庫生成新的版本信息。
20.如權利要求18所述的詞庫發布系統,其特徵在於,還包括識別模塊,用於比較伺服器端的細胞詞庫列表和客戶端的細胞詞庫列表,所得到的比較結果用於傳輸所需的更新數據至客戶端。
21.如權利要求18所述的詞庫發布系統,其特徵在於,依據所接收的信息得到的細胞詞庫中存儲有多個詞條信息;或者,依據所接收的信息得到的細胞詞庫中存儲有索引信息,所述索引信息對應其他細胞詞庫。
22.如權利要求18所述的詞庫發布系統,其特徵在於,還包括合併模塊,用於將多個細胞詞庫詞條信息合併為一個下載詞庫,並通知通信單元將該下載詞庫傳輸至客戶端。
全文摘要
本發明提供了一種輸入法系統,包括輸入接口單元、信息轉換單元和顯示輸出單元,還包括系統詞庫,用於記錄基礎字詞及其相關信息;細胞詞集,用於記錄擴展字詞及其相關信息;所述細胞詞集由從伺服器端所存儲的多個細胞詞庫中獲取的至少一個細胞詞庫得到;每個細胞詞庫中的字詞至少具有一個共同屬性。本發明在現有的輸入法的詞庫容量級別上實現了動態的細胞式詞庫,用戶通過手動或者由電腦自動添加小詞庫,通過每個人的個性化的選擇或定製,通過自動更新和系統詞庫的聯合使用,就能夠覆蓋一個用戶幾乎所有的詞彙。從而能夠大幅提升輸入法的首選詞準確率,在理論上將個人的詞庫覆蓋面擴大到最大,從而使打字的準確率有一個較大的提升。
文檔編號G06F17/30GK101051323SQ20071009947
公開日2007年10月10日 申請日期2007年5月22日 優先權日2007年5月22日
發明者馬佔凱, 楊磊 申請人:北京搜狗科技發展有限公司