專利名稱:用戶字和用戶操作的上下文預(yù)測的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用戶在帶有一個輸入裝置的系統(tǒng)之內(nèi)信息的輸入,特別地,本發(fā)明涉及對用戶所計劃的輸入和操作進(jìn)行上下文預(yù)測。
背景技術(shù):
多年來,便攜式計算機(jī)已經(jīng)變得越來越小。鍵盤已經(jīng)成為在制造一個更小的便攜式計算機(jī)的努力中的基本尺寸限制元件了。如果使用標(biāo)準(zhǔn)打字機(jī)尺寸的鍵盤,那么該便攜式計算機(jī)起碼有鍵盤那么大。小型鍵盤已經(jīng)用在便攜式計算機(jī)上,但是發(fā)現(xiàn)小型鍵盤太小而導(dǎo)致用戶無法輕易或快速地操作。在一個便攜式計算機(jī)中結(jié)合一個真實尺寸的鍵盤也阻礙了計算機(jī)真正的便攜式使用。不把計算機(jī)放在一個平工作面上以允許用戶用雙手進(jìn)行輸入,就無法執(zhí)行大部分的便攜式計算機(jī)。用戶在站著或移動時不能輕易地使用一個便攜式計算機(jī)。
在最新產(chǎn)生的稱為個人數(shù)字助理(PDA)的小型便攜式計算機(jī)中,公司已經(jīng)試圖通過在PDA中結(jié)合手寫識別軟件來解決該問題。用戶可以通過在一個觸感面和觸感屏上進(jìn)行書寫而直接輸入文本。然后由識別軟件將手寫體文本轉(zhuǎn)換成數(shù)字?jǐn)?shù)據(jù)。令人遺憾的是,用筆印跡或書寫通常比打字慢,除了上述情況以外,在目前為止,手寫體識別軟件的精確度和速度都不令人滿意。而且還存在存儲限制。識別軟件通常需要的存儲器多于裝置上有效的存儲器。對于作為移動電話的裝置而言就更是這樣了。
目前,無線工業(yè)中的一個驚人發(fā)展產(chǎn)生了可靠的,便利的,并可以為普通消費(fèi)者獲得的受歡迎的移動通信裝置,諸如網(wǎng)絡(luò)電話,雙向傳呼機(jī),PDA等。這些需要文本輸入的手持無線通訊和計算機(jī)裝置還變得更小。在雙向傳呼,移動電話,和其他便攜式無線技術(shù)中的新發(fā)展已經(jīng)產(chǎn)生了一種對小型便攜式雙向信息傳遞系統(tǒng)的需求,尤其是對能夠發(fā)送并接收電子郵件(“e-mail”)的系統(tǒng)的需求。某些無線通信裝置的制造商還希望提供給消費(fèi)者這種裝置,消費(fèi)者可以用握住裝置的手來操作該裝置。
消除多義性的背景資料在開發(fā)工作之前就已經(jīng)考慮使用一個縮小按鍵數(shù)的鍵盤。正如一個按鍵音電話機(jī)的鍵區(qū)布局所提示的,許多縮小的鍵盤使用3×4的系列鍵。系列鍵內(nèi)的每一個鍵都包含多個字符。因為每一次按鍵可表示多個字母中的一個,因此在用戶輸入一系列的鍵時存在多義性。已經(jīng)提供了一些用于消除按鍵次序多義性的解決方案,稱為消除多義性。
提供一種解決方案用以清楚地確定在縮小的鍵盤上輸入的字符,該解決方案需要用戶平均輸入兩次或多次按鍵來確定每一個字母??梢酝瑫r輸入按鍵(和弦)或逐一輸入按鍵(多筆劃規(guī)范)。和弦和多筆劃規(guī)范都不產(chǎn)生一個具有足夠簡易性和使用效率的鍵盤。多筆劃規(guī)范效率低,和弦復(fù)雜而難以學(xué)習(xí)和使用。
提供其它解決方案用以確定與一個多義性按鍵序列對應(yīng)的正確字符序列,John L.Arnott和Muhammad Y.Javad在國際學(xué)會學(xué)報上刊登的關(guān)于用來增強(qiáng)詞義的語句和選擇性通訊的論文″Probabilistic Character Disambiguation for Reduced Keyboards Using Small Text Samples,″中對該解決方案進(jìn)行概括(以下的″Arnott論文″)。Arnott論文認(rèn)為大部分消除多義性解決方案使用有關(guān)的語言中已知的字符序列的統(tǒng)計來消除給定上下文中的字符多義性。
提供另一種以字級消除多義性為基礎(chǔ)的解決方案,在I.H.Witten編著的并于1982年由學(xué)術(shù)出版社出版的題為Principles of Computer Speech的教科書中公開了該解決方案(以下的“Witten解決方案”)。Witten論述一種從使用電話機(jī)觸摸墊輸入的文本中減少多義性的系統(tǒng)。Witten承認(rèn)對于一個24,500字的字典中大約92%的字而言,在對按鍵序列和字典進(jìn)行比較的時侯將不會產(chǎn)生多義性。然而當(dāng)產(chǎn)生多義性時,Witten認(rèn)為必須通過系統(tǒng)向用戶遞交該多義性并請求用戶在多個多義性詞條之間做出一個選擇來進(jìn)行交互地消除。用戶因此必須答復(fù)系統(tǒng)在每一個字末端的預(yù)測。這樣一種答復(fù)降低系統(tǒng)效率并增加輸入一個給定文本段的按鍵數(shù)。
2000年6月15日公開了H.A.Gutowitz的名稱為Touch-Typable Devices Based onAmbiguous Codes and Methods to Design Such Devices的專利文獻(xiàn)WO 00/35091,WO00/35091公開了可打字裝置的結(jié)構(gòu),尤其是包含有多義性代碼的盲打裝置的結(jié)構(gòu)帶來大量人機(jī)控制之間的問題,并提出一些解決這些問題的方法。Gutowitz教導(dǎo)一種用于從強(qiáng)觸摸可打字多義性代碼和對觸摸可打字裝置實質(zhì)上是最佳的多義性代碼的類別中選擇多義性代碼的方法,其中該觸摸可打字裝置諸如計算機(jī),PDA等,以及其他信息設(shè)備,該信息設(shè)備賦予了諸如大小,形狀,裝置計算能力,裝置的特殊運(yùn)用那樣的設(shè)計約束條件和諸如字母表序列或標(biāo)準(zhǔn)打字機(jī)鍵盤序列那樣的通用約束條件。
Eatoni人機(jī)工程學(xué)公司提供一種修改自常規(guī)鍵盤的稱為WordWise的系統(tǒng)(Eatoni人機(jī)工程學(xué)公司版權(quán)2001),其中在一個常規(guī)鍵盤上鍵入一個大寫字母,使諸如換檔鍵那樣的一個多義性的鍵保持向下,并與此同時按壓帶有預(yù)定字母的鍵。在WordWise背后此按鍵的想法是從電話機(jī)鍵區(qū)每個鍵上每個字母組中選擇一個字母。通過使一個多義性的鍵保持向下并與此同時按壓帶有預(yù)定字母的鍵來鍵入該選擇的字母。WordWise不使用詞匯數(shù)據(jù)庫/字典來查找字以消除多義性詞條,清楚的詞條或其中一個組合詞條。
Zi公司公布一種后繼字預(yù)測eZiText(R)(Zi公司2002年),但是據(jù)我們所知,并非無論何處都提供該多重預(yù)測的陳述,或者為了把匹配上下文的字放在前面而重新排序選擇表。
已知的其他后繼字產(chǎn)生系統(tǒng)包括由摩托羅拉公司的詞法區(qū)提供的iTAP(http:∥www.motorola.com/lexicus/),以及由AIRTX提供的自適應(yīng)識別技術(shù)(http:∥www.airtx.com/)。
消除一個多義性按鍵序列的多義性仍然是一個急待解決的問題。例如,已知的消除多義性的解決方案的焦點(diǎn)主要集中在完成一個不完全輸入的序列,而不是預(yù)測一個至今為止還未輸入的序列。而且,在消除一個輸入的序列的多義性時,一般不考慮用戶的上下文,消除一個輸入的序列的多義性并不導(dǎo)致測定一個代表用戶的操作,而僅僅集中在完成并顯示給用戶一個預(yù)定序列。
提供一種解決方案來處理用戶輸入將會是有益的,該用戶輸入導(dǎo)致檢測一個還未輸入的序列。而且,提供這樣一種解決方法將會是有益的,其中在消除一個輸入的序列的多義性時考慮用戶上下文。另外,提供這樣一種解決方案將會是有益的,其中消除一個輸入的序列的多義性導(dǎo)致測定一個代表用戶的操作。
發(fā)明內(nèi)容
本發(fā)明涉及用戶在一個帶有輸入裝置的系統(tǒng)中輸入信息。提供一種方案,其中在用戶輸入諸如空格符那樣的一個特殊符號之后,預(yù)測用戶想要輸入的一個完整字。如果用戶此后按壓一個多義性的鍵,則重新排序選擇表而不是接受該預(yù)測。例如,用戶輸入短語“Lets runto school.Better yet,lets drive to“.”””。當(dāng)用戶按壓空格鍵后,系統(tǒng)在首先輸入的第二次出現(xiàn)的字“to,”之后,基于用戶過去已經(jīng)輸入過該字,預(yù)測用戶將要輸入字“school”。如果用戶以前輸入過具有相同上下文的文本(例如“to work”,“to camp”),那么其他預(yù)測也可能存在。如果用戶按壓“next”鍵,則遞交這些預(yù)測;該鍵規(guī)定為從頭至尾翻滾列表。用戶應(yīng)該在空格符后輸入一個多義性的鍵,然后重新排序一個字表來把匹配上下文的字放在前面。例如,如果用戶按壓包含字母‘a(chǎn)’,‘b’和‘c’的多義性的鍵,則把字“camp”放在列表的前面。
本發(fā)明還可以預(yù)測其他形式的上下文,諸如發(fā)送信息給誰,編寫信息的人,一周的日子,一周的時間等。
本發(fā)明的其他實施例的目的在于預(yù)測用戶操作和字,諸如與菜單項有關(guān)的用戶操作,或與表格填充有關(guān)的用戶操作。
用戶操作或輸入可以基于上下文影響裝置狀態(tài)的自動改變。例如,在日程表顯示用戶正在開會的時間期間,系統(tǒng)可以使用上下文把移動電話從“響鈴”變?yōu)椤罢駝印薄A硪粋€實施例在用戶處于戶外或電話檢測到高電平背景噪音時,使用特定區(qū)域上下文提高移動電話的音量。
在另一個實施例中,系統(tǒng)學(xué)習(xí)用戶的習(xí)慣。例如,基于所學(xué)的用戶操作,系統(tǒng)能夠提供給用戶他可能沒有察覺到的服務(wù)。
在另一個實施例中,以前一個字的上下文(雙字母上下文)為基礎(chǔ)進(jìn)行字預(yù)測,還可以使用前“n”個字(三字母上下文)進(jìn)行字預(yù)測。
圖1是一個具有一個顯示器和用戶信息輸入機(jī)制的裝置的略圖,而且它包含按照本發(fā)明所述的后繼字預(yù)測技術(shù);圖2是一個本發(fā)明關(guān)于T9執(zhí)行過程的縮小鍵盤消除多義性系統(tǒng)的優(yōu)選實施例的框圖;圖3是一個顯示按照本發(fā)明所述一種后繼字預(yù)測方法的流程圖;以及圖4是一個顯示按照本發(fā)明所述一種后繼字預(yù)測方法中的字處理過程的流程圖。
具體實施例方式
本發(fā)明涉及用戶在一個帶有輸入裝置的系統(tǒng)中輸入信息。提供一種方案,其中在用戶輸入諸如空格符那樣的一個特殊符號之后,預(yù)測用戶想要輸入的一個整個字。如果用戶此后按壓一個多義性的鍵,則重新排序選擇表而不是接受該預(yù)測。例如,用戶輸入短語“Lets runto school.Better yet,lets drive to“.”””。當(dāng)用戶按壓空格鍵后,系統(tǒng)在首先輸入的第二次出現(xiàn)的字“to,”之后,基于用戶過去已經(jīng)輸入過該字,預(yù)測用戶將要輸入字“school”。如果用戶以前輸入過具有相同上下文的文本(例如“to work”,“to camp”),那么其他預(yù)測也可能存在。如果用戶按壓“next”鍵,則遞交這些預(yù)測;該鍵規(guī)定為從頭至尾翻滾列表。用戶應(yīng)該在空格符后輸入一個多義性的鍵,然后重新排序一個字表來把匹配上下文的字放在前面。例如,如果用戶按壓包含字母‘a(chǎn)’,‘b’和‘c’的多義性的鍵,則把字“camp”放在列表的前面。
本發(fā)明還可以預(yù)測其他形式的上下文,諸如發(fā)送信息給誰,編寫信息的人,一周的日子,一周的時間等。
在本發(fā)明另一個實施例中,由裝置傳遞一系列可能相關(guān)或不相關(guān)的參數(shù)給系統(tǒng),系統(tǒng)學(xué)習(xí)哪些參數(shù)與預(yù)測相關(guān)且哪些是不相關(guān)的,而不是明確地定義諸如發(fā)件人/收件人/電子郵件/SMS/回復(fù)/轉(zhuǎn)寄/新電子郵件等那樣的上下文參數(shù)。
在本發(fā)明其他實施例中,預(yù)測可以超過字并預(yù)測短語。預(yù)測還可以依賴語法和語義等。
本發(fā)明其他實施例的目的在于預(yù)測用戶操作以及字和短語,諸如一個與菜單項有關(guān)的用戶操作,或者一個與表格填充有關(guān)的用戶操作。
在進(jìn)一步實施例中,可以加載/下載該從用戶模式獲得的知識,和/或從一個服務(wù)器提供該知識,該知識允許在裝置和應(yīng)用程序之間共享信息。
討論在此為了討論關(guān)于上下文的字實現(xiàn),其中術(shù)語‘后繼字預(yù)測’(NWP)意味著1)輸入一個空格符之后,預(yù)測用戶想要輸入的整個下一個字,以及2)如果用戶按壓一個多義性的鍵,重新排序選擇表而不接受預(yù)測。
圖1是一個具有顯示器10和用戶信息輸入機(jī)制12的裝置14的略圖,裝置14包括按照本發(fā)明所述的預(yù)測后繼字的技術(shù)。在圖1中,用戶輸入了短語“Lets run to school.Better yet,lets driveto.”。用戶在輸入“to”字之后按壓空格符,系統(tǒng)以用戶過去往其中輸入過字“school”的上下文為基礎(chǔ)預(yù)測用戶接下來打算輸入“school”字。這樣的話,僅僅在上下文中查找以前的字。上一次用戶輸入字“to”,之后它直接輸入字“school”。在圖1的實例中,用戶再一次輸入了字“to”,然后預(yù)測字“school”出現(xiàn)。例如,如果用戶過去在“to”字之后輸入了其他字,那么列表中也提供那些附加的預(yù)測。在此實例中,上下文信息僅來自于以前在該信息中輸入的文本。在一個優(yōu)選實施例中,同樣根據(jù)在先前信息/對話中輸入的文本來編輯上下文信息。
在當(dāng)前信息中的上下文與用戶以前輸入的文本中的上下文匹配時進(jìn)行預(yù)測。上下文的概念可以是非常通用的。上下文可以意味著所輸入文本的特性。還可以把上下文與其他上下文相結(jié)合,例如a)發(fā)送信息給誰;b)編寫信息的人;c)一周中的日子;d)一天中的時間。
最后,預(yù)測系統(tǒng)可能不知道對上下文最重要的因素是什么,例如,他們是●文本和信息收件人?●文本和信息發(fā)件人?
●所有的三個?一個進(jìn)一步實施例從一組范圍很大的可能因素開始并執(zhí)行用戶行為的運(yùn)行時因素分析來確定最有效因素以包括為上下文。系統(tǒng)不僅僅基于諸如記錄的文本,收件人,作者,日期那樣的推理確定因素來適應(yīng)用戶行為,而且其智能還足以確定哪一個因素是最重要的并加強(qiáng)它們。這為更好的預(yù)測作好準(zhǔn)備。
本發(fā)明期待的另一個預(yù)測實例是以一天的時間為基礎(chǔ)的。例如,當(dāng)在午餐時間輸入信息“Let's meet for”時,自動預(yù)測“l(fā)unch”字為該短語中的下一個字。晚一些的話就預(yù)測“dinner”字。存儲的短語還可以包含相關(guān)的一天中的時間作為它們的一個屬性。當(dāng)用戶輸入文本時,可以用它來決定哪一個短語是相關(guān)的。
預(yù)測用戶操作預(yù)測同時還可以適用于其他方案,諸如菜單和用戶操作。當(dāng)用戶點(diǎn)擊菜單時,為上下文模塊提供一個關(guān)于該菜單的關(guān)鍵字作為優(yōu)先上下文字。上下文模塊于是產(chǎn)生以前從該菜單中選擇的詞條,因為他們在上下文數(shù)據(jù)庫中是作為關(guān)鍵字放在前面的詞條,而且可以將這些字重新排序到菜單的頂部。當(dāng)選擇菜單項時,上下文模塊自動記錄該帶有菜單標(biāo)記的已經(jīng)發(fā)生了的菜單項作為上下文用于下一次重新排序到前面。
例如,當(dāng)用戶點(diǎn)擊“編輯”菜單時,把“編輯”提供給上下文模塊作為上下文。如果上一次用戶點(diǎn)擊“編輯”選擇了“查找”,則在菜單前面顯示“查找”。如果用戶從它移動到“替換”,則標(biāo)記在“編輯”的上下文中使用了一次“替換”,因此下一次用戶選擇“編輯”菜單時,“替換”變成第一項,其后跟著“查找”和其他低頻率使用的項。
注意,對帶有有限屏幕空間的網(wǎng)絡(luò)電話而言,把常使用項移到菜單的前面可以使它們立即可見,否則不滾動就無法看見他們。
在一個實施例中,在單一情況上下文和重新排序中使用學(xué)習(xí)來預(yù)測用戶期望執(zhí)行的后繼高級用戶界面(UI)操作。通過為用戶希望進(jìn)行的后繼狀態(tài)/應(yīng)用程序而重新排序緊接著的選項來完全取代常規(guī)菜單格式,而且如果需要的話能夠自動執(zhí)行最合適的選項,而不是基于以前的應(yīng)用而重新排序。
例如,考慮這種情況,其中系統(tǒng)知道無論何時用戶都在電話機(jī)的模式設(shè)置中,而且他們選擇一種輸入方法或語言,他們很可能移動下一個他們喜愛的信息應(yīng)用程序。然后系統(tǒng)執(zhí)行以下操作,而不是向用戶遞交常規(guī)菜單樹來獲得信息傳遞應(yīng)用程序a)自動前往,或者如果發(fā)現(xiàn)那是不可行的;b)和后繼最可能的選項一起,作為正好位于設(shè)置窗中的一個可見的突出選項而出現(xiàn)。
最后的選項將會是“go to standard menu tree”。以這樣方式,遞交給用戶最可能的后繼結(jié)束狀態(tài),而不是直接來自這里的最可能的行為,在一個常規(guī)電話機(jī)中這將返回到菜單樹。用戶根本不必操縱菜單樹,而是作出一個點(diǎn)擊(或不點(diǎn)擊)來進(jìn)行到下一個任務(wù)。
本發(fā)明附加的實施例應(yīng)用上下文,例如,該上下文提出以下任何一個問題●在一個信息傳遞應(yīng)用程序后用戶最可能立即處于什么結(jié)束狀態(tài)?●在電話本中進(jìn)行輸入后用戶最可能處于什么結(jié)束狀態(tài)?●提供了用戶所位于的最后兩個地方之后,用戶最可能處于什么結(jié)束狀態(tài)?●所提供一天的時間?●應(yīng)該執(zhí)行閑時因素分析來隔離涉及決定后繼操作應(yīng)該是什么的最相關(guān)因素嗎?表格本發(fā)明執(zhí)行的另一個有效功能是表格填充。字段屬性決定上下文靈敏度,例如,日期僅預(yù)測月,日子切換到數(shù)字模式等。這可以類似地適用于表格輸入。瀏覽器或其他表格輸入軟件可以提供關(guān)于輸入單元的提示作為關(guān)于該單元的文本項的上下文。因此,例如,當(dāng)表格提示“名字”時,幾乎不需要按鍵就可獲得用戶名,而且使他可能在表格上填充的其他名字易于輸入。
TegicT9技術(shù)中的上下文字預(yù)測的執(zhí)行過程在此公開的后繼字預(yù)測方法已經(jīng)應(yīng)用于Tegic公司的T9技術(shù)(見www.tegic.com andwww.t9.com)。T9技術(shù)結(jié)合以輸入裝置的每一個鍵(例如每一個電話鍵)為基礎(chǔ)的字母組合和字的一個快速存取程序庫,并識別用戶想要輸入的與其鍵入文本相同的內(nèi)容是什么。T9為默認(rèn)輸入的每一個鍵序列提供最常用字并讓用戶通過一個或多次按壓NEXT鍵或空格鍵來存取其他選擇。
在圖2中提供本發(fā)明關(guān)于T9執(zhí)行過程的縮小鍵盤消除多義性系統(tǒng)的優(yōu)選實施例的一個框圖。通過適當(dāng)?shù)耐鈬娐穼㈡I盤54和顯示器53連接到處理器100??梢赃x擇地將揚(yáng)聲器102也連接到處理器。在該實施例中,處理器100接收來自鍵盤的輸入,并操縱所有到顯示器和揚(yáng)聲器的輸出。處理器100連接到存儲器104。該存儲器包括臨時存儲器介質(zhì)的一個組合,例如隨機(jī)存取存儲器(RAM),以及諸如只讀存儲器(ROM),軟盤,硬盤或光盤那樣的永久存儲器介質(zhì)。優(yōu)選的存儲器104包含所有為操縱系統(tǒng)操作所必需的軟件例程。最好是,該存儲器包含一個操作系統(tǒng)106,消除多義性軟件108,相關(guān)的過濾多義性文本項的軟件和/或擴(kuò)展和解釋軟件110,以及一個上下文數(shù)據(jù)庫116,以下對其以補(bǔ)充細(xì)節(jié)進(jìn)行討論。該存儲器還包括一個詞匯數(shù)據(jù)庫30??蛇x地,該存儲器可以包括一個或多個應(yīng)用程序112,114。應(yīng)用程序的實例包括字處理器,軟件程序庫,和外語翻譯器。還可以提供語音合成軟件作為一個應(yīng)用程序,從而允許該縮小鍵盤消除多義性系統(tǒng)起通訊輔助的作用。因此,在這種情況下,可以從揚(yáng)聲器輸出聲音輸出。
本領(lǐng)域普通技術(shù)人員應(yīng)該理解并明白在此的討論適用于符號和符號序列,當(dāng)結(jié)合時,它們成為一個對象或?qū)ο蟮囊徊糠?。符號的一個典型實例是任何語言中的一個字符,諸如字母,數(shù)字,標(biāo)點(diǎn)符號,或者來自一種語言的其他任何符號。一個對象或?qū)ο蟮囊徊糠值囊粋€典型實例是一個字或字的一部分。然而,在此的討論同樣地適用于日文假名和韓文(jamos)。而且還應(yīng)該注意到對象不必是語言上的,因為只要存在一種符號的字符串表示,在此請求的消除多義性系統(tǒng)就可以用來預(yù)測圖標(biāo),電話號碼,或庫存記錄。因此,還應(yīng)該理解到使用諸如字母,字,詞干等那樣的術(shù)語并不僅僅局限于那些應(yīng)用程序,它們用于促進(jìn)輕松閱讀并理解在此的討論。
在此為了討論,T9系統(tǒng)包含至少三個組成部件·一個集成層。該組成部件包括用戶接口(UI)并處理在裝置與T9核心之間的通信。通信可以通過一個基于事件的或基于特征函數(shù)的API而發(fā)生,以下進(jìn)行討論。
·一個核心引擎,例如由Tegic提供的以T9核心著稱的核心引擎。
·一個或多個語言數(shù)據(jù)庫(LDB)。每一個LDB包含與一種特定語言有關(guān)的信息。T9用此信息來產(chǎn)生關(guān)于該語言的字列表。例如,LDB可以包括字母表的T9LDB,中文的T9LDB,和韓文的T9LDB。
追加數(shù)據(jù)庫字母表的T9LDB和中文的T9LDB的執(zhí)行過程可以包括以下追加數(shù)據(jù)庫·用戶數(shù)據(jù)庫(字母表的T9)。一個字母表的T9UDB包含用戶輸入的慣用字。一般地,這些慣用字是LDB無法產(chǎn)生的字,諸如名字,電子郵件地址,和瞬時信息傳遞ID。該數(shù)據(jù)庫還包含與用戶選擇字的頻率有關(guān)的信息,包括慣用字和來自LDB的字。
·上下文數(shù)據(jù)庫(字母表的T9)。一個字母表的T9CDB包含與用戶以前已經(jīng)輸入的字有關(guān)的信息。T9需要該信息用于其后繼字預(yù)測和CDB字實現(xiàn)特性。該上下文數(shù)據(jù)庫包含近來輸入的字。字母表的T9用該信息在選擇表中提供預(yù)測的和完成的字,并在選擇表中重新排序全部的和完成的字。
·制造商數(shù)據(jù)庫(字母表的T9)。一個字母表的T9MDB包含希望為T9用戶所獲得的但一般無法由LDB產(chǎn)生的字。MDB詞條可以包括地理位置,證券報價機(jī)符號和URL。
·中文用戶數(shù)據(jù)庫(中文的T9)。一個中文的T9CUDB包含用戶輸入的字符短語,例如,共同形成一個短語的中文字符串。
·中文自動重新排序用戶數(shù)據(jù)庫(中文的T9)。一個中文的T9CAUDB包含近來從一個中文的T9LDB輸入的字符。
產(chǎn)生選擇表字當(dāng)用戶輸入一個有效鍵序列,字母表的T9為了匹配該鍵序列的字而查找其數(shù)據(jù)庫(LDB,UDB,CDB和MDB)。
將字母表的T9的選擇表設(shè)計為提供用戶最可能需要的字,基于1)用戶輸入該字的頻率,2)在字在語言中如何通用以及3)以前在其中輸入該鍵的上下文,因此該字出現(xiàn)在選擇表的開頭。
啟用選擇表的項的相關(guān)序列,該相關(guān)序列取決于激活的數(shù)據(jù)庫以及諸如重新排序選擇表和完成字和預(yù)測字那樣的特征。
字母表的T9的選擇表中第一個字是默認(rèn)有效的。該術(shù)語有效字指的是目前有效的選擇表字。
以下提供選擇表序列的一個實例。假設(shè)已經(jīng)輸入鍵,并激活T9數(shù)據(jù)庫和數(shù)掘庫特征。
1)具有鍵序列長度的CDB字。
2)重新排序的(最常用的)LDB和具有鍵序列長度的慣用字。
3)最上面的具有鍵序列長度的LDB字。
4)較少使用的具有鍵序列長度的慣用字。
5)較少使用的具有鍵序列長度的制造商字(MDB)。
6)具有鍵序列長度的剩余LDB字。
7)比輸入的鍵序列長的CDB字(這由T9來完成)。
8)比輸入的鍵序列長的慣用字和制造商字(這由T9來完成)。
9)多個數(shù)據(jù)庫的查找結(jié)果的字。這些字試圖匹配URL和其他長序列。
處理一個接受的字當(dāng)用戶通過移走字的光標(biāo)來接受該有效字時(按壓與T9鍵值T9KEYRIGHT和T9KEYLEFT相關(guān)的鍵),字母表的T9●如果該字在UDB中作為一個慣用字,校正該字的選擇頻率值。
●如果該字在LDB中,校正該字的選擇頻率值和仍未激活的字母表的T9的選擇表重新排序特征。
當(dāng)用戶通過輸入一個空格來接受該有效時(按壓與T9鍵值T9KEYSPACE相關(guān)的鍵),字母表的T9執(zhí)行以上的操作和以下的操作●如果UDB和LDB還沒有包含該字,把最近輸入的空格及其之前的一個鍵之間的所有字符添加到UDB作為一個慣用字。
●把最近輸入的空格及其之前的一個鍵之間的所有字符添加到CDB。
預(yù)測后繼字圖3是一個顯示按照本發(fā)明所述的一種后繼字預(yù)測方法的流程圖。當(dāng)輸入文本時,以用戶輸入字的順序在CDB中存儲這些字。當(dāng)用戶輸入一個字(300)時,如果該執(zhí)行過程包括一個CDB,字母表的T9試圖預(yù)測所需要的后繼字(302)。字母表的T9查找CDB,為了找到最近輸入的字在以前的第一次出現(xiàn)。如果字母表的T9找到該字(306),把它提供給用戶作為一個預(yù)測的字(308),無論在數(shù)據(jù)庫中它后面出現(xiàn)了什么字。如果沒有找到該字(306),則結(jié)束處理過程,T9等待下一個鍵輸入(314)。如果用戶接受該預(yù)測的字并處理該字;T9重新排序字的使用(316)。如果用戶不接受該字(310),但是按壓了“下一個”鍵(312),查找CDB,為了找到剛輸入的字在下一次最近的出現(xiàn)。如果找到,遞交數(shù)據(jù)庫中跟隨它的字作為一個預(yù)測(306和308)。如果用戶不接受該字(310),而且沒有按壓“下一個”鍵,則繼續(xù)進(jìn)行處理,而T9等待下一個輸入。連同圖4進(jìn)行進(jìn)一步的描述。
字母表的T9創(chuàng)建一個預(yù)測字的選擇表。選擇表中預(yù)測字的最大數(shù)取決于#define constantT9MAXCDBMATCHES字面上的值。除非分配一個不同值,否則設(shè)置constant為6.
用戶使用在T9中用于選擇和接受一個字的相同處理來選擇并接受一個預(yù)測字。在用戶接受一個預(yù)測字之后(310),字母表的T9處理該字(312)。本領(lǐng)域技術(shù)人員將會理解到本發(fā)明可以適用于區(qū)別于T9的其他消除多義性系統(tǒng),以及區(qū)別于字母表的T9的其他形式的T9。
字處理圖4是一個顯示按照本發(fā)明所述一種后繼字預(yù)測方法中的字處理過程的流程圖。當(dāng)用戶按壓空格鍵來指示開始一個新字時(400),字母表的T9●如果UDB和LDB還沒有包含該字(402),把最近輸入的空格及其之前的一個鍵之間的所有字符添加到UDB作為一個慣用字(404)。
●把最近輸入的空格及其之前的一個鍵之間的所有字符添加到CDB。
●如果該字在UDB中作為一個慣用字(408),校正該字的選擇頻率值(410)。
●如果該字在LDB中(414),校正該字的選擇頻率值(410)。
●如果該字在LDB中,而且還沒有激活字母表的T9選擇表的重新排序和LDB字的完成特征(412),把該字添加到UDB作為LDB重新排序的字(416)。
字母表的T9上下文數(shù)據(jù)庫以下的討論描述了如何執(zhí)行并操作一個字母表的T9上下文數(shù)據(jù)庫(CDB)。CDB包含與最近輸入的字有關(guān)的信息。字母表的T9用該信息來把預(yù)測的和完成的字包括在選擇表中。盡管字母表的T9查找它的其他數(shù)據(jù)庫,僅僅是為了找到匹配目前有效的鍵序列的字,字母表的T9還查找CDB,為了找到最近接受的字,列最近輸入的無效字。CDB字不必匹配將要包括在選擇表內(nèi)的有效字。對于僅僅在沒有有效鍵序列時才出現(xiàn)在優(yōu)選實施例中的預(yù)測的字而言,該CDB匹配取決于該有效字之前的字。對于完成了的CDB字而言,該匹配取決于有效字之前的字和有效字的鍵序列。
如果字母表的T9在CDB中找到用戶已經(jīng)輸入的字,字母表的T9提供該立即跟隨在CDB中的字作為一個預(yù)測的字。例如,如果CDB包含字對“text message”,而且用戶輸入該字“text”并按壓空格鍵,字母表的T9設(shè)置選擇表中的“message”作為一個預(yù)測的字。
而且,如果字母表的T9在CDB中找到用戶已經(jīng)輸入的字,如果該字匹配該有效鍵序列,則字母表的T9提供該立即跟隨在CDB中的字作為一個完成的字,盡管該完成的字包含附加字符。例如,如果CDB包含字對“text message”,而且用戶輸入該字“text”并添加一個空格,然后輸入與字“message”中前四個字母相關(guān)的鍵序列6-3-7-7,則字母表的T9設(shè)置選擇表中的“message”作為一個完成的字。
在優(yōu)選實施例中,CDB字實現(xiàn)獨(dú)立地操作UDB慣用字實現(xiàn),LDB字實現(xiàn),以及MDB字實現(xiàn)。
執(zhí)行CDB為了執(zhí)行一個字母表的T9CDB,集成層應(yīng)該1.為數(shù)據(jù)庫分配永久存儲器。
2.調(diào)用T9AWCdbActivate來激活CDB。
3.指定CDB的大小。
4.如果需要的話,重置該數(shù)據(jù)庫。
5.如果必要的話,指定集成層向數(shù)據(jù)庫寫數(shù)據(jù)。
6.如果需要的話,使后繼字預(yù)測無效。
7.如果需要的話,使CDB字實現(xiàn)無效。
8.由T9提交處理請求。
9.當(dāng)T9結(jié)束后,復(fù)制數(shù)據(jù)庫到永久存儲器。
以上描述的執(zhí)行過程假定該CDB存儲在非易失性存儲器中,而且在激活CDB操作之前將CDB數(shù)據(jù)復(fù)制到RAM。如果使用一種不同的存儲模式,以上的某些步驟可以不用。
分配永久存儲器該集成層必須分配永久存儲器來存儲CDB,當(dāng)集成層通過調(diào)用T9AWCdbActivate來激活CDB操作時,它把CDB從永久存儲器復(fù)制到RAM。引用該數(shù)據(jù)庫作為一種CDB數(shù)據(jù)結(jié)構(gòu)的實例(T9AWCdbActivate)。
激活CDB操作如果沒有現(xiàn)有的CDB,例如在裝置上第一次激活CDB操作,集成層必須將所有TgAWCdbActivate結(jié)構(gòu)域值初始化為0。如果集成層已經(jīng)從CDB復(fù)制了一個現(xiàn)有的CDB到RAM,那么不應(yīng)修改任何T9AWCdbActivate結(jié)構(gòu)域值。
集成層通過調(diào)用T9AWCdbActivate來激活CDB操作。當(dāng)集成層調(diào)用該功能時,它為CDB數(shù)據(jù)結(jié)構(gòu)(T9AWCdbActivate)的一個實例提供一個指示字,它已經(jīng)為該指示字分配了存儲器。
在集成層激活有效的CDB操作之后,字母表的T9自動查找CDB,所要找到的信息類型取決于是否存在一個有效的鍵序列●如果存在一個有效鍵序列,字母表的T9查找CDB,為了找到匹配該鍵序列的字。
●如果不存在有效鍵序列,字母表的T9查找CDB,為了找到最近輸入的字。字母表的T9需要該信息用于后繼字預(yù)測。
指定CDB的大小由T9AWCdbInfo.wDataSize的值指定CDB的大小。wDataSize域表示T9AWCdbInfo的總體大小。這包括其中存儲了CDB數(shù)據(jù)的數(shù)據(jù)區(qū)域,T9所使用的多個相關(guān)變量,以及任何由編譯器環(huán)境添加的結(jié)構(gòu)填充字節(jié)。
如果使用T9的功能API,就不需要直接設(shè)置T9AWCdbInfo.wDataSize的值。相反地,提供該CDB數(shù)據(jù)區(qū)域的大小作為功能T9AWCdbActivate的一個自變量。在處理該功能的同時,T9設(shè)置T9AWCdbInfo.wDataSize的值。
可以按需要設(shè)置CDB區(qū)域的大小,但是它必須至少為T9MINCDBDATABYTES字節(jié)。然而,推薦CDB的大小為1800*T9SYMBOLWIDTH字節(jié)。
重置CDB當(dāng)集成層激活CDB操作時,字母表的T9通過以下操作來確保數(shù)據(jù)庫的統(tǒng)一性
●確保CDB與T9期望的大小相同。
●驗證CUDB的大小至少為T9MINCDBDATABYTES字節(jié),而且它是偶數(shù)字節(jié)。
●驗證CDB使用與LDB想用的字符譯碼。
如果字母表的T9發(fā)現(xiàn)一個問題,他重置CDB,這刪除所有的CDB數(shù)據(jù)。該處理過程發(fā)生時集成層沒有進(jìn)行任何操作,而且字母表的T9不通知集成層已經(jīng)重置了CDB。集成層可以通過調(diào)用T9AWCdbReset來清楚地重置CDB。在大多數(shù)情況下,集成層并不需要調(diào)用該功能。
指定集成層向數(shù)據(jù)庫寫數(shù)據(jù)。
如果CDB存儲在這樣一個存儲器區(qū)域中,字母表的T9可以向其寫數(shù)據(jù),那么集成層必須向數(shù)據(jù)庫寫數(shù)據(jù)。而且,如果需要監(jiān)視往數(shù)據(jù)庫中寫了什么,或者在非易失性存儲器中保持CDB的一個靜態(tài)副本,則可能希望集成層向CDB寫數(shù)據(jù)。
集成層通過調(diào)用T9AWSetCdbWriteByOEM來通知字母表的T9——它寫數(shù)據(jù)。
在集成層調(diào)用該事件之后,字母表的T9通過調(diào)用T9REQCDBWRITE來請求集成層寫數(shù)據(jù)。如果對于集成層而言不再需要向CDB寫數(shù)據(jù),則集成層調(diào)用T9AWSetCdbWriteByOEM來表示字母表的T9可以直接寫數(shù)據(jù)。
使后繼字預(yù)測失效當(dāng)激活CDB操作時,T9以用戶已經(jīng)輸入的字為基礎(chǔ)默認(rèn)地提供預(yù)測字,例如用戶可以想要輸入的字。以多義性模式和多重文本輸入模式都可以獲得后繼字預(yù)測。
當(dāng)在CDB中找到用戶剛剛輸入的字時,字母表的T9在選擇表中設(shè)置預(yù)測字作為一個或多個字對的第一部分。無論之后什么字出現(xiàn)在CDB中,都提供用戶剛剛輸入的字的每一個實例作為一個預(yù)測字。
在字母表的T9執(zhí)行過程中,如果有人想要僅使用CDB字實現(xiàn)而不使用后繼字預(yù)測,則可能使該功能失效。為了使CDB字實現(xiàn)失效,集成層調(diào)用T9AWClrCdbPrediction。為了重新激活后繼字預(yù)測,集成層調(diào)用T9AWSetCdbPrediction。
使CDB字實現(xiàn)無效當(dāng)激活CDB操作時,如果緊接著在有效字前面的字位于緊接著完成的字前面的CDB中,則字母表的T9默認(rèn)地在選擇表中設(shè)置匹配有效序列的完成的CDB字。在字母表的T9執(zhí)行過程中,如果有人想要僅使用后繼字預(yù)測而不使用CDB字實現(xiàn),則可能使該功能失效。為了使CDB字實現(xiàn)失效,集成層調(diào)用T9AWClrCdbCompletion。為了重新激活后繼字預(yù)測,集成層調(diào)用T9AWSetCdbCompletion。
注意,CDB字實現(xiàn)獨(dú)立地操作UDB慣用字實現(xiàn),LDB字實現(xiàn),以及MDB字實現(xiàn)。在一個CDB中的許多字還可以存在于其他字母表的T9數(shù)據(jù)庫之內(nèi)。字母表的T9抑制這些來自選擇表的復(fù)制。然而,還應(yīng)該注意到該復(fù)制在其他API事件功能上的潛在效果。例如,一個從數(shù)據(jù)庫中刪除的UDB慣用字仍然出現(xiàn)在選擇表中,如果該字還在CDB中的話。同樣地,如果有人打算使LDB字實現(xiàn)失效,LDB中的字仍然作為完成的字出現(xiàn)在選擇表中,如果它們還在CDB中并激活CDB字實現(xiàn)。
處理T9請求取決于怎樣執(zhí)行CDB,集成層也許需要處理以下的T9請求●T9REQCDBWRITE——請求集成層向CDB寫數(shù)據(jù)。T9僅僅在集成層通知T9它寫數(shù)據(jù)到CDB(而不是T9寫數(shù)據(jù)到CDB)的時侯提交該請求。
復(fù)制一個更新的CDB到永久存儲器如果在T9對話期間內(nèi)已經(jīng)修改了數(shù)據(jù)庫,那么集成層在其終止字母表的T9時,應(yīng)該復(fù)制CDB數(shù)據(jù)到永久存儲器。無論什么時候T9修改該數(shù)據(jù)庫,它都增加T9AWCdbInfo.wUpdateCounter的值。集成層可以確定是否已經(jīng)通過比較對話后wUpdateCounter的值和對話前wUpdateCounter的值來修改了數(shù)據(jù)庫。如果該值不同,集成層必須將更新的CDB數(shù)據(jù)復(fù)制到永久存儲器。注意,這類似于T9在每一個對話期間修改CDB。
操作一個字母表的T9CDB字母表的T9CDB操作由以下任務(wù)組成●添加數(shù)據(jù)到一個CDB。
●從一個CDB中檢索數(shù)據(jù)。
●從一個CDB中刪除數(shù)據(jù)。
添加數(shù)據(jù)到一個CDB字母表的T9自動添加數(shù)據(jù)到CDB。注意,如果CDB存儲在T9無法向其寫數(shù)據(jù)的一個存儲區(qū)域中,該集成層必須寫數(shù)據(jù)到CDB。
從一個CDB中檢索數(shù)據(jù)字母表的T9自動從CDB中檢索數(shù)據(jù)。
從一個CDB中刪除數(shù)據(jù)字母表的T9不容許用戶或集成層從數(shù)據(jù)庫中刪除數(shù)據(jù)。相反地,字母表的T9在它快滿時自動開始刪除數(shù)據(jù)庫的老數(shù)據(jù)。這種刪除處理被認(rèn)為是垃圾回收,而且它的發(fā)生不需要用戶或集成層進(jìn)行任何操作。
操作在本發(fā)明目前優(yōu)選實施例中,所保存的上下文數(shù)據(jù)用于在以按壓空格鍵之后就返回一個后繼字預(yù)測,并且在輸入按鍵后過濾字實現(xiàn)。原則上,這通過快速檢索以前一個字或以前的字為基礎(chǔ)的正確預(yù)測的字來允許用戶減少按鍵數(shù)。目前通過保存用戶在一個上下文數(shù)據(jù)庫(CDB)中輸入的文本并返回這些匹配上下文和按鍵的字來執(zhí)行該完成特征。
NWP保存近來輸入的用戶文本并使用該文本來預(yù)測用戶輸入的下一個字。例如,如果用戶在過去已經(jīng)鍵入了短語“hello Leslie”,“hello Inger”和“Hello Helena”,那么當(dāng)用戶通過敲擊空格來鍵入并接受字“hello”時,本發(fā)明提供以下的字作為可能的后繼字LeslieIngerHelena如果用戶不接受這些字中任何一個,而是繼續(xù)鍵入,本發(fā)明使用上下文來按優(yōu)先次序列出遞交給用戶的完成。在一個執(zhí)行12鍵輸入裝置的實施例中,如果上述用戶在敲擊空格后鍵入鍵4,則遞交給用戶以下選擇表ihg4IngerHelena如果上述用戶在敲擊空格后鍵入鍵43,則遞交給用戶以下選擇表heifidiegegfHelena在一個空格后,上下文數(shù)據(jù)庫(CDB)對象組成整個選擇表。在按壓多義性鍵之后,CDB對象如下出現(xiàn)●如果CDB對象具有有效鍵序列的長度,那么這些對象出現(xiàn)在選擇表的頂部。
●如果CDB對象的長度大于有效鍵序列的長度,那么這些對象出現(xiàn)在該列表的完成部分的頂部。
系統(tǒng)狀態(tài)跟蹤空格后的完成,帶有pFieldInfo->nWordLen =0;pFieldInfo->nComplLen=上下文的字長。
在用戶選擇多義性鍵之后,系統(tǒng)狀態(tài)以先前存在的方式跟蹤C(jī)DB完成pFieldInfo->nWordLen =有效鍵序列的長度;pFieldInfo->nComplLen=完成的長度。
APIT9API由一個總體結(jié)構(gòu)組成,該總體結(jié)構(gòu)保持字,詞表和顧客使用的緩存信息,以及用于創(chuàng)建,接受和刪除字,滾動詞表等的一組事件或功能。在字母表的T9中,認(rèn)為API結(jié)構(gòu)為T9AWFieldinfo結(jié)構(gòu)(經(jīng)常稱為pAWFieldInfo)。T9AWFieldinfo結(jié)構(gòu)字母表的T9特有的數(shù)據(jù)。T9AWFieldinfo結(jié)構(gòu)包含另一個結(jié)構(gòu)T9AWFieldinfo(經(jīng)常稱為pAWFieldInfo),該結(jié)構(gòu)包含還用在日文T9,中文T9和韓文T9中的通用字?jǐn)?shù)據(jù)。
把新的API結(jié)構(gòu)數(shù)據(jù)和功能添加到T9來執(zhí)行NWP。如果主機(jī)為上下文數(shù)據(jù)庫進(jìn)行了區(qū)間分配,并將pFieldInfo->pCdbInfo設(shè)置為一個非零值,則NWP特征是有效的。
添加以下功能API事件來激活CDBT9AWCdbActivate(T9AWFieldInfo*pAWFieldInfo,T9AWCdbInfo T9FARUDBPOINTER*pCdbInfo,T9UINT nDataSize,T9U8 bSymbolClass);添加以下功能API事件來設(shè)置寫配置T9EVTCDBT9CTRLSETCDBWRITEBYOEMFunction API-T9AWSetCdbWriteByOEM(T9AWFieldInfo*pAWFieldInfo)添加以下功能API事件來清除寫配置T9CTRLCLRCDBWRITEBYOEMFunction API-T9AWClrCdbWriteByOEM(T9AWFieldInfo*pAWFieldInfo)
添加以下功能API事件來重置CDBT9EVTCDBT9CTRLCDBRESET(Function API callT9AWUdbReset(T9AWFieldInfo*pAWFieldInfo)添加以下功能API事件來終止CDB上下文T9EVTCDBT9CTRLCDBBREAKCONTEXTFunction API-T9AWBreakCdbContext(T9AWFieldInfo*pAWFieldInfo)添加以下功能API事件來填充上下文緩存T9EVTCDBT9CTRLCDBFILLCONTEXTBUFFERbuffer pEvent->data.sCDBData.psBufbuffer lengthpEvent->data.sCDBData.nBufLenFunction API-T9AWFillContextBuffer(T9AWFieldInfo*pAWFieldInfo,T9SYMB*psBuf,T9UINT nBufLen)添加以下功能API事件來獲得字預(yù)測T9EVTCDBT9CTRLCDBGETWORDPREDICTIONFunction API-T9AWGetWordPrediction(T9AWFieldInfo*pAWFieldInfo)添加以下功能API事件來清除緩存,但保持上下文T9EVTCLEARBUFFEFunction API-T9AWClearBuffer(T9AWFieldInfo*pAWFieldInfo)添加以下功能API事件來關(guān)閉CDB操作T9CTRLCLRCDBCOMPLETIONFunction API-T9AWClrCdbCompletion(T9AWFieldInfo*pAWFieldInfo)添加以下功能API事件來開啟CDB操作T9CTRLSETCDBCOMPLETIONFunction API-T9AWSetCdbCompletion(T9AWFieldInfo*pAWFieldInfo)添加以下功能API事件來關(guān)閉CDB操作T9CTRLCLRCDBPREDICTIONFunction API-T9AWClrCdbPrediction(T9AWFieldInfo*pAWFieldInfo)添加以下功能API事件來開啟CDB操作T9CTRLSETCDBPREDICTIONFunction API-T9AWSetCdbPrediction(T9AWFieldInfo*pAWFieldInfo)
添加以下請求類型T9REQCDBWRITE這用于在外部寫操作執(zhí)行的情況下請求對CDB的寫操作。
沒有附加的直接存取通過API寫到CDB。
內(nèi)部CDB接口本發(fā)明T9實施例中存在兩個對CDB的接口AddCdbText(pFieldInfo,psWordBuf,nLen)其中pfieldInfo=T9字段信息成分psWordBuf =緩存保持文本nLen =字長以及GetCdbObject(pFieldInfo,nUdbObjNum,nWordLen,nCursor,psBuildTxtBuf,nBuildTxtBufSize,pnComplLen,pnUdbObjCnt)其中pfieldInfo =T9字段信息成分nUdbObjNum =CDB對象數(shù)(1對應(yīng)第一匹配,2對應(yīng)第二匹配等)nWordLen=字長(在空格鍵后為0,在一個鍵后為1,在兩個鍵后為2等)nCursor =光標(biāo)位置psBuildTxtBuf =指向創(chuàng)建緩存的指示字nBuildTxtBufSize=創(chuàng)建緩存大小pnComplLen =指向完成長度保持的指示字pnUdbObjCnt =指向?qū)ο笥嬎惚3值闹甘咀止δ躎9STATUS T9FARCALL T9AW_SaveAndAddToCdb(T9AWFieldInfo*pAWFieldInfo)添加保存字到上下文緩存并添加到上下文數(shù)據(jù)庫.僅僅在輸入了一個空格符之后調(diào)用該功能。
T9UINT T9FARCALL T9AW_GetCdbObject(T9AWFieldInfo*pAWFieldInfo,T9UINTnCdbObjNum,T9UINT nWordLen,T9UINT nCursor,T9U8bObjectType,T9UINT*pnTerminal,T9U8 bRightMost,T9SYMB *psBuildTxtBuf,T9UINT nBuildTxtBufSize,T9UINT*pnComplLen,T9UINT*pnCdbObjCnt)該功能從CDB中檢索匹配的上下文.
T9STATUS T9FARCALL T9AWCdbReset(T9AWFieldInfo*pAWFieldInfo)該功能重置CDB.
T9STATUS T9FARCALL T9AWCdbActivate(T9AWFieldInfo *pAWFieldInfo,T9AWCdbInfo T9FARUDBPOINTER*pCdbInfo,T9U8bSymbolClass)該功能激活CDB.
數(shù)據(jù)庫現(xiàn)有最小數(shù)據(jù)庫的尺寸規(guī)格是1800*符號寬度(300字*6字符數(shù)/字*符號寬度字節(jié)數(shù)/字符數(shù))。這對于單字節(jié)系統(tǒng)是1800,對于雙字節(jié)系統(tǒng)是3600。
CDB保存近來輸入的文本,用戶以相同的形式輸入文本。在環(huán)形緩存中存儲該文本。新的字覆蓋CDB中最新近的字。
CDB在自己的標(biāo)題中具有總體信息T9U16wDataSize;/*該結(jié)構(gòu)在字節(jié)上的總體大小*/T9U16wUpdateCounter;/*每次用戶修改數(shù)據(jù)庫時的增量計算*/T9U16wSymbolClass;/*T9enum值表示映射CDB的符號表*/T9U16wDataBeginOffset;/*偏移到數(shù)據(jù)開始*/T9U16wDataEndOffset;/*偏移到數(shù)據(jù)結(jié)束*/T9U16wSavedOffset;/*指向數(shù)據(jù)庫中上一次存取的位置的指示字*/T9U32dwOffsetSaver;/*關(guān)于上次保存的偏移量的進(jìn)程的標(biāo)識符*/T9U8bDataArea[1];/*真正的一個變量大小數(shù)據(jù)數(shù)組*/讀當(dāng)從CDB請求一個字時,系統(tǒng)字生成器傳遞一個上下文緩存。使用該上下文緩存,CDB以最新序列檢索匹配的上下文。
寫當(dāng)敲擊空格鍵或明確地輸入空白間隔時,把創(chuàng)建字寫到CDB。這偶然發(fā)生在多義性和多抽頭模式(MT)中。該字也經(jīng)歷自己的常規(guī)RUDB處理。在CDB中無垃圾清除。
上下文緩存保持一個上下文緩存。當(dāng)按壓空格鍵時更新上下文緩存并以任何傾向于丟失上下文的動作來清除上下文緩存,例如光標(biāo)移動和清除。在一個字API中,這附屬于一個單獨(dú)確認(rèn)功能的沖洗字功能。
功能描述在T9實施例中,NWP特征有效,如果a)該編譯包括用于該特征的代碼;以及b)字段信息成分pFieldInfo->pCdbinfo指向有效的存儲器。
以下列出當(dāng)T9中的后繼字預(yù)測特征有效時,應(yīng)用的功能性元件FD100.T9核心在CDB中保存每一個所使用的最近的字。保存的字?jǐn)?shù)取決于由OEM分配到CDB的大小。
FD200如果存在一個有效字,或者以前敲擊的鍵是T9數(shù)字鍵,那么T9多義性和MT模式在一個空格符后返回后繼字預(yù)測。
FD300如果在按壓右箭頭之前存在一個有效字,那么T9多義性和MT模式在右箭頭和空格符后返回后繼字預(yù)測。
FD301FD300和FD200的結(jié)果意味著當(dāng)光標(biāo)從一個字上移開并繞著緩存移動之后,敲擊一個空格鍵后,T9不顯示一個預(yù)測.
“光標(biāo)繞著緩存移動”意味著按壓左箭頭或右箭頭,并以光標(biāo)指向字的右邊結(jié)束。唯一的異常是在敲擊右箭頭來僅僅清除(使無效)一個字。
如果一個預(yù)測有效,而且用戶敲擊空格鍵來清除該預(yù)測,并再一次敲擊清除來清除該空格鍵,然后再一次敲擊空格鍵,則T9顯示一個預(yù)測。
FD400T9總是當(dāng)開始一個字時產(chǎn)生上下文匹配,如果該字放在一個空格鍵和另一個字之前。例如,在光標(biāo)繞著緩存移動到一個字的右邊并敲擊鍵盤空格之后,不傳遞預(yù)測。然而,如果用戶繼續(xù)鍵入多義性數(shù)字鍵,則在選擇列中傳遞上下文匹配。
FD500以最新次序檢索CDB預(yù)測/執(zhí)行.
FD600CDB是獨(dú)立的語言。
FD700敲擊空格鍵之后,由編譯時大量的T9MAXCDBMATCHES來確定CDB匹配的數(shù)目限定。在用戶按壓數(shù)字鍵之后,對從CDB傳遞到發(fā)生期的CDB匹配數(shù)沒有限制。
FD800不越過句子標(biāo)點(diǎn)傳遞CDB預(yù)測/完成。將句子標(biāo)點(diǎn)定義為一個非圖釋上的軌跡標(biāo)點(diǎn).見FD1200關(guān)于圖釋的定義。
FD900在按壓帶有一個字有效的清除鍵之后消除CDB預(yù)測/完成,但是當(dāng)用戶再一次開始鍵入時傳遞完成。
FD1000CDB不會遲滯;由最新輸入的字替代最早以前的字。
FD1100如果沒有一個有效字,或者以前敲擊的鍵是一個T9數(shù)字鍵,則在按壓空格鍵時在CDB中重新排序上下文雙字母。如果光標(biāo)從一個字上移開,則在CDB內(nèi)中止上下文。
FD1200上下文預(yù)測的候補(bǔ)者以下列處理為條件如果字沒有指示標(biāo)點(diǎn),那么去除軌跡標(biāo)記,除非它看起來像一個圖釋。T9假定如果一個字超過一個字符,而且該字中非字母的字符(標(biāo)點(diǎn)和數(shù)字)數(shù)量至少是字符總量的一半,則該帶有軌跡標(biāo)點(diǎn)和指示標(biāo)點(diǎn)的字是一個圖釋。
如果字具有指示標(biāo)點(diǎn),則拒絕該字,除非它看上去像是一個圖釋。
FD1300如果用戶已經(jīng)按壓了多個T9鍵,那么在選擇列的開頭傳遞具有鍵序列長度的上下文選擇表的項。在該列完成部分的頂部傳遞帶有完成的上下文選擇表的項,后面跟著以先前指定順序的MDB,UDB和LDB。
FD1400如果敲擊空格時,大寫字母鎖定是激活的,則預(yù)測的字完全是在大寫字母里。
FD1500指示字對情況是不可知的,但是軌跡字是區(qū)分大小寫的。所以如果有人鍵入“cabfee”,然后開啟大寫字母鎖定并鍵入“CAB”和空格,該系統(tǒng)預(yù)測“FEE.”。如果有人鍵入“cab fee”,然后使用換檔而不是大寫字母鎖定來輸入“CAB”,于是選擇空格,系統(tǒng)預(yù)測“fee”。否則,如果有人鍵入“cab fee”并鍵入“cab”和空格,系統(tǒng)檢測“fee”。
FD1600可以采用開關(guān)來開啟/關(guān)閉上下文預(yù)測,并開啟/關(guān)閉上下文完成。
T9中的上下文預(yù)測和完成使用情況1)用戶最近已經(jīng)以這里所編寫的序列輸入了雙字母‘my money,’’my time,’和‘mymarriage’。
2)用戶輸入并接受字‘my.’3)敲擊空格鍵。
4)預(yù)期選擇表marriagetimemoney5)用戶輸入鍵6。
6)預(yù)期選擇表om
n6marriagemoney7)用戶再一次輸入鍵6。
8)預(yù)期選擇表onnommmooomoney使用情況1)用戶最近輸入了雙字母‘bow tie’。
2)用戶輸入并接受字‘bow.’。
3)敲擊空格鍵。
4)預(yù)期選擇表tie5)用戶輸入鍵843。
6)預(yù)期選擇表tiethevievidtidNOTE盡管字‘the’是英文中最通用的字,但是在該上下文中,‘tie’首先出現(xiàn)在表中。當(dāng)放在字‘bow.’之前時,它是最可能的候補(bǔ)者。
多抽頭模式中的上下文預(yù)測和完成使用情況1)用戶最近已經(jīng)以這里所編寫的序列輸入了雙字母‘my money,’’my time,’和‘mymarriage’。
2)用戶輸入字‘my.’。
3)敲擊空格鍵。
4)預(yù)期選擇表marriagetimemoney5)用戶輸入一個‘m.’。
6)用戶按壓下一個鍵。
7)預(yù)期選擇表mmarriagemoney8)用戶輸入‘o.’。
9)用戶按壓下一個鍵。
10)預(yù)期選擇表momoneyT9中的上下文預(yù)測和完成(消除之前的空格)使用情況1)用戶最近已經(jīng)以這里所編寫的序列輸入了雙字母‘my money,’’my time,’和‘mymarriage’。
2)用戶輸入字‘my.’。
3)敲擊右箭頭4)敲擊空格鍵。
5)預(yù)期無上下文預(yù)測6)用戶輸入鍵6。
7)預(yù)期選擇表
mn6marriagemoney8)用戶再一次輸入鍵6。
9)預(yù)期選擇表onnommmooomoneyT9中的上下文預(yù)測和帶有UDB完成的完成CDB完成出現(xiàn)在UDB完成的前面。
使用情況1)用戶最近已經(jīng)以這里所編寫的序列輸入了雙字母‘my money,’’my time,’和‘mymarriage’,以及單字母‘mobetterblues’。
2)用戶輸入并接受字‘my.’3)敲擊空格鍵。
4)預(yù)期選擇表marriagetimemoney5)用戶輸入鍵6。
6)預(yù)期選擇表omn6
marriagemoneymobetterblues7)用戶再一次輸入鍵6。
8)預(yù)期選擇表onnommmooomoneymobetterbluesT9中的上下文預(yù)測和完成(區(qū)分大寫字母)使用情況1)用戶最近已經(jīng)以這里所編寫的序列輸入了雙字母‘my MONEY,’’MY time,’和‘mymarriage’。
2)用戶輸入字‘my.’。
3)敲擊空格鍵。
4)預(yù)期選擇表marriagetimeMONEY5)用戶輸入清除鍵。
6)用戶輸入并接受不激活大寫字母鎖定的字‘MY’。
7)預(yù)期選擇表marriagetimeMONEY8)用戶輸入清除鍵。
9)用戶輸入并接受激活大寫字母鎖定的字‘MY’。
10)預(yù)期選擇表MARRIGETIMEMONEY多抽頭模式中的上下文預(yù)測和帶有UDB完成的完成CDB完成出現(xiàn)在UDB完成的前面。
使用情況1)用戶最近已經(jīng)以這里所編寫的序列輸入了雙字母‘my money,’’my time,’和‘mymarriage’,以及單字母‘mobetterblues’。
2)用戶輸入并接受字‘my.’3)敲擊空格鍵。
4)預(yù)期選擇表marriagetimemoney5)用戶輸入‘m’。
6)用戶按壓下一個鍵。
7)預(yù)期選擇表mmarriagemoneymobetterblues8)用戶輸入‘o’。
9)用戶按壓下一個鍵。
10)預(yù)期選擇表momoneymobetterbluesT9中的上下文預(yù)測和帶有UDB完成的完成(中止上下文)
CDB完成出現(xiàn)在UDB完成的前面。
使用情況1)用戶最近已經(jīng)以這里所編寫的序列輸入了雙字母‘my money,’’my time,’和‘mymarriage’,以及單字母‘mobetterblues’。
2)用戶輸入并接受字‘my.’。
3)敲擊空格鍵。
4)敲擊清除。
5)再一次敲擊清除或進(jìn)行其他任何的光標(biāo)移動來直接以‘my.’右邊的光標(biāo)結(jié)束。
6)輸入空格。
7)預(yù)期無上下文預(yù)測(功能的描述FD200)。
8)用戶輸入鍵6。
9)預(yù)期帶有上下文的選擇表(功能的描述FD400)。
10)預(yù)期選擇表omn6marriagemoneymobetterblues11)用戶再一次輸入鍵6。
12)預(yù)期選擇表onnommmooomoneymobetterbluesT9中的上下文預(yù)測和完成(最新超過的頻率)
CDB完成出現(xiàn)在UDB完成的前面。
使用情況1)用戶最近已經(jīng)以這里所編寫的序列輸入了雙字母‘my money,’’my time,’和‘mymarriage’。
2)用戶輸入并接受字‘my.’。
3)敲擊空格鍵。
4)預(yù)期選擇表(更多新近的‘marriage’在更多頻繁的‘money,’之上)marriagemoney5)用戶輸入鍵6。
6)預(yù)期選擇表omn6marriagemoney語言CDB是一種獨(dú)立的語言。
重新排序未完成字關(guān)于重新排序未完成字的RUDB處理保持不變。
清除在清除一個當(dāng)前字之后不傳遞上下文預(yù)測,但是當(dāng)用戶開始重新鍵入時,傳遞上下文預(yù)測。
標(biāo)點(diǎn)符號不超過句子標(biāo)點(diǎn)符號來傳遞上下文預(yù)測。
遲滯CDB不遲滯,由最新輸入的字替代最早以前的字。
垃圾收集當(dāng)需要空間來輸入一個新字到CDB中時,刪除CDB中最早以前的字來讓出空間。
在MT中輸入字在MT中收集關(guān)于CDB的數(shù)據(jù)的同時,在MT中傳遞上下文預(yù)測/完成。
我的字盡管在此參考優(yōu)選實施例來描述本發(fā)明,但是本領(lǐng)域技術(shù)人員將容易理解到其他申請可以被這里所闡明的不偏離本發(fā)明的精神和范圍的申請代替。例如,用戶操作或輸入可以基于上下文來影響裝置狀態(tài)的自動改變。例如,在日程表顯示用戶正在開會的時間期間,系統(tǒng)可以使用上下文把移動電話從“響鈴”變?yōu)椤罢駝印?。另一個實施例使用特定區(qū)域上下文在用戶處于戶外或電話檢測到高電平背景噪音時提高移動電話的音量。
在另一個實施例中,系統(tǒng)學(xué)習(xí)用戶的習(xí)慣。例如,基于所學(xué)的用戶操作,系統(tǒng)能夠提供給用戶他可能沒有察覺到的服務(wù)。
在另一個實施例中,以先前的字上下文(雙字母上下文)為基礎(chǔ)進(jìn)行字預(yù)測,還可以使用前“n”個字(三字母上下文等)。
另外,本發(fā)明應(yīng)該僅由以下包括的權(quán)利要求所限定。
權(quán)利要求
1.一種用于預(yù)測任何用戶字或這些字和用戶操作的裝置,連同用戶提示,控制輸入,或多義性文本輸入,所述裝置包括一個輸入裝置和一個顯示器,它們每一個都通過外圍接口電路連接到一個處理器,其中所述處理器接收來自輸入裝置的輸入字符和符號,并且操縱對象輸出到所述顯示器和所述裝置之內(nèi)的操作的確定;一個連接到所述處理器的存儲器,其中所述存儲器包括一個操作系統(tǒng);消除多義性軟件;以及一個對象數(shù)據(jù)庫;其中在一個用戶提示之后,預(yù)測用戶想要輸入的一個完整的字或那些字,或用戶想要執(zhí)行的一個操作,其中所述用戶輸入一個特有符號給所述輸入裝置或者執(zhí)行一個與改變所述輸入裝置的任何或狀態(tài)相關(guān)的特殊操作;以及其中經(jīng)由所述顯示器向所述用戶描述所述預(yù)測的字,或者執(zhí)行的一個關(guān)于所述裝置的操作。
2.根據(jù)權(quán)利要求1所述的裝置,進(jìn)一步包括經(jīng)由所述顯示器向所述用戶描述的一個選擇表,所述選擇表包括任何的多個預(yù)測的字和操作;以及一個裝置,在所述用戶輸入所述特有符號或提供一個特有控制輸入之后,如果所述用戶進(jìn)行一個多義性輸入,該裝置重新排序所述選擇表。
3.根據(jù)權(quán)利要求1所述的裝置,進(jìn)一步包括一個上下文數(shù)據(jù)庫,該數(shù)據(jù)庫連同所述處理器在一個上下文基礎(chǔ)上進(jìn)行預(yù)測。
4.根據(jù)權(quán)利要求3所述的裝置,其中所述上下文預(yù)測基于發(fā)送信息給誰,編寫信息的人,一個日期,一個時間和一個地點(diǎn)。
5.根據(jù)權(quán)利要求1所述的裝置,其中基于用戶輸入或操作來預(yù)測一個短語。
6.根據(jù)權(quán)利要求1所述的裝置,其中基于任何語法或語義來進(jìn)行預(yù)測。
7.根據(jù)權(quán)利要求3所述的裝置,其中所述上下文預(yù)測對用戶操作進(jìn)行預(yù)測。
8.根據(jù)權(quán)利要求7所述的裝置,其中連同任何菜單項和表格填充可以執(zhí)行所述用戶操作。
9.根據(jù)權(quán)利要求1所述的裝置,進(jìn)一步包括用于存儲任何用戶輸入模式和操作的裝置;以及用于加載任何所述存儲的用戶輸入模式和/或操作到一個服務(wù)器的裝置。
10.根據(jù)權(quán)利要求1所述的裝置,其中所執(zhí)行的操作包括以所述裝置的上下文為基礎(chǔ)自動改變所述裝置狀態(tài)。
11.根據(jù)權(quán)利要求1所述的裝置,其中所述裝置進(jìn)一步包括用于學(xué)習(xí)用戶操作的裝置,而且該裝置用于使用所述學(xué)習(xí)的操作來進(jìn)行預(yù)測。
12.根據(jù)權(quán)利要求3所述的裝置,其中所述上下文基于一個先前字的上下文或者先前多個字的上下文。
13.一種用于預(yù)測任何用戶字或用戶操作的方法,包括以下步驟用戶在一個輸入裝置中輸入一個輸入序列或執(zhí)行關(guān)于所述輸入裝置的一個特殊操作;以及對此進(jìn)行響應(yīng),預(yù)測所述用戶想要輸入的一個完整的字或這些字,或者用戶想要由所述裝置執(zhí)行的一個操作。
14.根據(jù)權(quán)利要求13所述的方法,進(jìn)一步包括以下步驟提供一個選擇表,該選擇表包含任何大量的預(yù)測字和操作;以及在用戶輸入所述特有符號或執(zhí)行一個特殊操作之后,如果所述用戶進(jìn)行一個多義性輸入,則重新排序所述選擇表。
15.根據(jù)權(quán)利要求13所述的方法,進(jìn)一步包括以下步驟在當(dāng)前輸入序列中的一個上下文匹配所述用戶最近輸入的一個輸入序列中的一個上下文或最近所執(zhí)行的一個操作的時侯,預(yù)測所述用戶想要輸入的一個完整后繼字或這些字,或者用戶想要由所述裝置執(zhí)行的一個操作。
16.根據(jù)權(quán)利要求15所述的方法,其中所述上下文基于輸入的文本輸入序列的上下文。
17.根據(jù)權(quán)利要求16所述的方法,進(jìn)一步包括以下步驟結(jié)合所述上下文與至少一個其他的上下文。
18.根據(jù)權(quán)利要求17所述的方法,其中所述上下文包括發(fā)送信息給誰;編寫信息的人;一個日期;一個時間;以及一個地點(diǎn)。
19.根據(jù)權(quán)利要求15所述的方法,進(jìn)一步包括以下步驟執(zhí)行用戶行為的運(yùn)行時因素分析來確定一個最有效的因素以包括為上下文。
20.根據(jù)權(quán)利要求13所述的方法,所述預(yù)測步驟進(jìn)一步包括以下步驟所述用戶輸入一個特有符號或執(zhí)行一個特殊操作;對此進(jìn)行響應(yīng),以立即放在用戶輸入序列或操作前面的上下文為基礎(chǔ)提供關(guān)于一個菜單的一個關(guān)鍵字;向所述用戶描述最近從所述菜單中選出的詞條,它們作為根據(jù)所述關(guān)鍵字而優(yōu)先的詞條存儲在一個上下文數(shù)據(jù)庫中;重新排序所述菜單中的詞條;當(dāng)選擇一個菜單項時,自動地注意到已經(jīng)選擇了帶有一個菜單標(biāo)記的它在將來重新排序時用作上下文。
21.根據(jù)權(quán)利要求13所述的方法,所述預(yù)測步驟進(jìn)一步包括以下步驟所述用戶輸入一個特有符號或執(zhí)行一個特殊操作;對此進(jìn)行響應(yīng),以一個緊接著放在前面的用戶輸入序列或操作的上下文為基礎(chǔ),為了所預(yù)測的一個用戶將要進(jìn)行到的下一個狀態(tài)/應(yīng)用,通過重新排序緊接著的選擇來替代常規(guī)菜單格式。
22.根據(jù)權(quán)利要求21所述的方法,進(jìn)一步包括以下步驟自動執(zhí)行一個最可能的選項。
23.根據(jù)權(quán)利要求13所述的方法,所述預(yù)測步驟進(jìn)一步包括以下步驟所述用戶輸入一個特有符號或執(zhí)行一個特殊操作;對此進(jìn)行響應(yīng),以一個緊接著放在前面的用戶輸入序列或操作的上下文為基礎(chǔ),填充表格中之后一個字段。
24.根據(jù)權(quán)利要求23所述的方法,其中由當(dāng)前字段屬性來確定上下文的閱讀權(quán)限。
25.一種用于連同多義性文本輸入來預(yù)測任何的用戶字和用戶操作的裝置,所述裝置包括一個輸入裝置和一個顯示器,它們每一個都通過外圍接口電路連接到一個處理器,其中所述處理器接收來自輸入裝置的輸入字符和符號,并且操縱對象輸出到所述顯示器和所述裝置之內(nèi)的操作的確定;一個包括一個用戶接口(UI)的集成層;一個核心引擎,用于結(jié)合基于所述帶有一個相關(guān)字程序庫的輸入裝置上每一個按鍵的字母組,用于確定用戶輸入為所述用戶輸入所述輸入,而且在所述用戶輸入一個用戶提示或執(zhí)行一個特殊操作之后,用于預(yù)測用戶想要輸入的一個整個的字或其他字或者用戶想要執(zhí)行的操作,其中該用戶提示包含一個關(guān)于所述輸入裝置的特有符號,該特出操作與改變關(guān)于所述用戶裝置的任務(wù)的狀態(tài)有關(guān);以及一個包含有關(guān)用戶以前輸入的字的信息的上下文數(shù)據(jù)庫,所述上下文數(shù)據(jù)庫配合所述核心引擎來進(jìn)行預(yù)測,這是基于任何的所述用戶輸入的上下文和/或操作以及所述裝置操作模式的。其中經(jīng)由所述顯示器向所述用戶描述所述預(yù)測的字或所述操作。
26.根據(jù)權(quán)利要求25所述的裝置,進(jìn)一步包括經(jīng)由所述顯示器向所述用戶描述的一個選擇表,所述選擇表包括任何的多個預(yù)測的字和操作;以及一個裝置,在所述用戶輸入所述特有符號或執(zhí)行一個特出操作之后,如果所述用戶進(jìn)行一個多義性輸入,該裝置重新排序所述選擇表。
27.根據(jù)權(quán)利要求25所述的裝置,其中所述上下文預(yù)測基于發(fā)送信息給誰,編寫信息的人,一個日期,一個時間和一個地點(diǎn)。
28.根據(jù)權(quán)利要求25所述的裝置,其中基于用戶輸入或操作來預(yù)測一個短語。
29.根據(jù)權(quán)利要求25所述的裝置,其中基于任何語法或語義來進(jìn)行預(yù)測。
30.根據(jù)權(quán)利要求25所述的裝置,其中所述上下文預(yù)測對用戶操作進(jìn)行預(yù)測。
31.根據(jù)權(quán)利要求30所述的裝置,其中連同任何菜單項和表格填充可以執(zhí)行所述用戶操作。
32.根據(jù)權(quán)利要求25所述的裝置,進(jìn)一步包括用于存儲任何用戶輸入模式和操作的裝置;以及用于加載任何所述存儲的用戶輸入模式和/或操作到一個服務(wù)器的裝置。
33.根據(jù)權(quán)利要求25所述的裝置,其中所述上下文基于所輸入的一個文本輸入序列的上下文。
34.根據(jù)權(quán)利要求25所述的裝置,進(jìn)一步包括用于結(jié)合一個上下文和至少一個其他上下文的裝置。
35.根據(jù)權(quán)利要求25所述的裝置,進(jìn)一步包括用于執(zhí)行用戶行為的運(yùn)行時因素分析來確定一個最有效的因素以包括為上下文的裝置
36.根據(jù)權(quán)利要求25所述的裝置,進(jìn)一步包括用于自動執(zhí)行一個最可能的選項的裝置。
37.根據(jù)權(quán)利要求25所述的裝置,進(jìn)一步包括對任何所述用戶輸入一個特有符號或執(zhí)行一個特出操作其反應(yīng)的裝置,而且該裝置以緊接著放在前面的用戶輸入序列的上下文為基礎(chǔ)填充一個表格內(nèi)至少一個字段。
38.根據(jù)權(quán)利要求25所述的裝置,其中由當(dāng)前字段屬性來確定上下文的閱讀權(quán)限。
全文摘要
本發(fā)明涉及用戶在一個帶有輸入裝置的系統(tǒng)中輸入信息。提供一種方案,其中在用戶輸入諸如空格符那樣的一個特殊符號之后,預(yù)測用戶想要輸入的一個整個字。如果用戶此后按壓一個多義性的鍵,則重新排序選擇表而不是接受該預(yù)測。例如,用戶輸入短語“Lets run to school.Better yet,lets drive to“.”””。當(dāng)用戶按壓空格鍵后,系統(tǒng)在首先輸入的該出現(xiàn)了第二次的字“to,”之后預(yù)測用戶將要輸入字“school”,基于用戶過去已經(jīng)輸入過該字。用戶應(yīng)該在空格符后輸入一個多義性鍵,然后重新排序一個包含了字“school”的字表,并使用戶可以獲得其他選項。本發(fā)明還可以預(yù)測諸如發(fā)送信息給誰,編寫信息的人,一周的日子,一周的時間等那樣的上下文。其他實施例的目的在于預(yù)測用戶操作和字,諸如與菜單項有關(guān)的用戶操作,或與表格填充有關(guān)的用戶操作。
文檔編號G06F17/27GK1707409SQ20041005681
公開日2005年12月14日 申請日期2004年8月20日 優(yōu)先權(quán)日2003年9月19日
發(fā)明者大衛(wèi)·喬·凱, 艾森·R·布萊德弗德, 皮姆·凡·莫爾斯, 皮特·C·派蒂爾 申請人:美國在線服務(wù)公司