使用上下文生成字符串預測的製作方法
2023-12-08 16:25:56 5
使用上下文生成字符串預測的製作方法
【專利摘要】在行動裝置中,為行動裝置確定上下文。基於行動裝置環境的多種特性來確定上下文,所述特性包括例如正在使用的當前應用、行動裝置的用戶正在與其交互或者與其對話的任何聯繫人、當前日期和/或時間、對話的當前話題、對話的當前風格等等。基於與所確定的上下文相關聯的一組字符串和用戶生成的文本,為用戶生成的文本生成一個或者多個字符串預測。字符串預測可以作為用戶生成的文本的所建議的完成向用戶呈現。
【專利說明】使用上下文生成字符串預測
【背景技術】
[0001]鍵入是行動裝置上許多場景的一部分,包括例如寫文本消息、寫電子郵件、搜索聯繫人、和鍵入URL (統一資源定位符)。行動裝置上的鍵入可能是緩慢和令人沮喪的。這在使用屏幕上的軟體鍵盤時可能尤為真實。
[0002]對於這個問題的一個解決方案被熟知為軟體輸入面板。在軟體輸入面板中,基於用戶到目前為止已經輸入到文本輸入欄中的字符,屏幕的區域可以顯示所建議的字預測。隨著用戶繼續輸入字符到該欄中,所建議的字改變。當用戶看到與用戶正在輸入的字相匹配的字預測時,用戶可以選擇所述字預測,並且所選擇的字作為對於由用戶輸入的字符的替換,被放置在文本輸入欄中。
[0003]典型地,通過將輸入的字符與字典中的字相匹配並且隨後基於每個字是用戶打算輸入的字的可能性呈現匹配字的經排序的子集,來生成向用戶展示的字預測。所述可能性可能是基於每個匹配字被普通人群使用的總概率的。
[0004]這樣的用於提供字預測的方法的一個缺陷是:其未能考慮到與正輸入的字符相關聯的上下文。上下文可以包括用戶正在使用的應用(即,短消息服務(SMS)或者電子郵件應用)、以及用戶正在與其通信的參與者、用戶的位置、日期或者一天中的時間、用戶較早與其通信的人、或者甚至是與用戶相關聯的情緒。典型地,用戶使用可以依據對話的上下文而變化的一組詞彙。例如,與當與朋友進行對話時相比,用戶在與商務聯繫人進行對話時可以使用不同的一組短語,或者與當使用字處理應用時相比,用戶在使用SMS應用時可以使用不同的一組短語。由於在生成預測時未考慮上下文,該用戶可能接收到過於寬泛的、或者對於特定上下文而言是不合適的字預測。
【發明內容】
[0005]在行動裝置中,為行動裝置確定上下文。上下文基於行動裝置環境的特性被確定,並可以包括例如正被使用的當前應用、行動裝置的用戶正在與其交互的或者與其進行對話的任何聯繫人、當前日期和/或時間、對話的當前話題、對話的當前風格等等。基於與所確定的上下文相關聯的一組字符串和用戶生成的文本,為用戶生成的文本生成一個或者多個字符串預測。字符串預測可以作為用戶生成文本的所建議的完成來呈現給用戶。可替換地或者附加地,可以基於所確定的上下文來生成語音注釋或者表情符號。
[0006]在一個實施方案中,由計算設備接收字符串。所接收的字符串與應用相關聯。針對所接收的字符串的上下文由計算設備確定。基於所接收的字符串和所確定的上下文來生成字符串預測。每個字符串預測包括字符串。字符串預測中的字符串中的一個或者多個由計算設備提供。所提供的字符串中的一個的選擇的指示由計算設備接收。響應於選擇的指示,所選擇的字符串由計算設備提供給應用。
[0007]在一個實施方案中,為所接收的字符串確定上下文。確定所接收的字符串是否滿足標準。如果所接收的字符串滿足標準,則將所接收的字符串添加到與上下文相關聯的多個字符串中。
[0008]提供本
【發明內容】
,以便以簡化的形式引入概念的選擇,將在下文的【具體實施方式】中進一步描述所述概念。本
【發明內容】
不打算標識所要求保護的主題的關鍵特徵或者本質特徵,也不打算用來限制所要求保護的主題的範圍。
【專利附圖】
【附圖說明】
[0009]當連同附圖進行閱讀時,前述
【發明內容】
以及下文的說明性實施例的詳細描述被更好地理解。出於圖示實施例的目的,在圖中示出了實施例的示例構造;然而,實施例不限於所公開的具體方法和手段。在圖中:
圖1是用於使用上下文選擇和呈現字符串預測的示例環境的圖示;
圖2是示例候選預測發生器的圖示;
圖3是用於使用上下文提供字符串預測的方法的實施方案的操作流程;
圖4是用於更新上下文的方法的實施方案的操作流程;以及圖5示出其中可以實施示例實施例和方面的示例性計算環境。
【具體實施方式】
[0010]圖1是用於基於上下文選擇和呈現字符串預測的示例環境100的圖示。環境100可以包括多個計算設備115 (例如,計算設備115a-n)。計算設備115可以是包括行動裝置的多種計算設備,行動裝置例如是蜂窩電話、智慧型電話、可攜式媒體播放器、遊戲控制臺等等。計算設備115可以通過網絡180彼此通信。網絡180可以是多種網絡類型,包括公共交換電話網絡(PSTN)、蜂窩電話網絡和分組交換網絡(例如,網際網路)。適當的計算設備115的示例包括關於圖5描述的計算系統500。
[0011]計算設備115中的每個可以包括作業系統125和用戶接口 120。作業系統125可以包括多種眾所周知的作業系統。計算設備115的用戶可以使用用戶接口 120來向作業系統125輸入一個或者多個字符。用戶接口 120可以包括多種接口,包括例如軟體鍵盤或者硬體鍵盤。
[0012]計算設備115中的每個還可以執行一個或者多個應用135(例如,應用135a_n)。應用135可以在應用層130中執行。應用135可以包括例如電子郵件應用、短消息服務(SMS)或者文本應用、聊天應用、社交網絡應用和字處理應用。計算設備115可以使用應用135來交換基於文本的消息。例如,每個計算設備可以執行SMS應用並且可以通過應用發送和接收SMS消息。有關的基於文本的消息的序列在本文中被稱為對話。
[0013]計算設備的每次使用可以通過用戶接口 120和作業系統125與應用135進行交互。在一個實施方案中,用戶可以通過用戶接口 120的軟輸入面板輸入字符。所輸入的字符可以由作業系統125來接收,並且可以被提供給應用135中的一個或者多個。
[0014]對於計算設備115的用戶而言,逐字符地將文本輸入到用戶接口 120中可能是令人沮喪的。相應地,計算設備115還可以包括候選預測發生器140。候選預測發生器140可以生成一個或者多個字符串預測。字符串預測可以包括候選預測發生器140預測用戶打算輸入到用戶接口 120中的字符串。字符串預測可以包括字符串的置信度值。可替換地或者附加地,候選預測發生器140可以生成語音注釋、表情符號、或者其它通信或者消息類型。所預測的字符串可以包括一個或者多個字符的任何序列,包括但不限於字、短語、句、表情符號、標點記號或者其它符號、或者其組合。
[0015]如關於圖2進一步描述的,字符串預測可以部分地基於與所輸入的字符或者字符串相關聯的一個或者多個上下文。如本文所使用的上下文可以包括與所輸入的字符或者字符串相關聯的對話或者環境的一個或者多個特性、特徵或者屬性。上下文的特性或者特徵可以例如包括:所接收的文本所針對的特定應用;正在參加對話的參與者、聯繫人、或者其它用戶;當前日期和/或時間;對話的氣氛(即,悲傷或者快樂);對話的話題;和對話的風格(即,正式或者非正式);用戶的位置;用戶較早與其通信的用戶;和用戶的情緒。
[0016]每個上下文可以與一組字符串相關聯。與上下文相關聯的該組字符串可以包括由用戶在上下文期間使用或者提供的字符串、或者以其他方式已知為與上下文相關聯的字符串。例如,與SMS應用相關聯的上下文可以與頻繁用於文本消息的字符串(諸如「L0L」)相關聯。與諸如I月I日的日期相關聯的上下文可以包括與新年假期相關聯的字符串,諸如「新年快樂」。與用戶的特定聯繫人相關聯的上下文可以包括當用戶與該聯繫人進行交互時輸入過的一個或者多個字符串。與上下文相關聯的該組字符串中的字符串可以與概率相關聯。字符串的概率可以基於由用戶或者其他用戶針對該上下文提供字符串的次數。
[0017]在一些實施方案中,當用戶輸入字符串的一個或者多個字符時,候選預測發生器140可以確定所輸入的字符串的上下文,並且可以基於所輸入的字符串和所確定的上下文來生成一組字符串預測。在一些實施方案中,字符串預測可以包括來自與上下文相關聯的該組字符串中的將所輸入的字符串作為前綴的一個或者多個字符串,或者以其他方式與所輸入的字符串相似的一個或者多個字符串。附加地,字符串預測也可以例如包括基於一個或者多個模型(諸如詞典)而生成的字符串預測。
[0018]通過基於上下文生成字符串預測,而不是唯一地基於詞典或者模型生成字符串預測,所生成的字符串預測不限於在詞典或者模型中使用的字和短語。而且,因為基於上下文的字符串預測可以比基於詞典或者模型的字符串預測更精細地定製,所以字符串可以比基於詞典或者模型的字符串預測中的字符串更準確地代表用戶打算輸入的字符串。
[0019]圖2是示例候選預測發生器140的圖示。如所示出的,候選預測發生器140可以包括數個組件,包括但不限於上下文引擎240和預測模型205。候選預測發生器140的組件中的一些或者全部可以由計算系統來實施,所述計算系統例如是圖5中所圖示的計算系統500。
[0020]候選預測發生器140可以從作業系統125接收所輸入的文本230。所輸入的文本230可以包括字符串或者字符,並且可以是由計算設備115的用戶提供給應用135的文本。所輸入的文本230可以與用戶打算或者曾打算提供給應用135的字符串有關,或者可以是其一部分。例如,所輸入的文本230可以是用戶打算輸入的字符串的第一個字符,或者所輸入的文本230可以是用戶曾打算輸入的字符串的拼寫錯誤。因此,如可以領會的,候選預測發生器140可以用來向一個或者多個應用135提供短語預測和拼寫建議兩者。
[0021]上下文引擎240可以為所輸入的文本230確定一個或者多個上下文210,並且可以從上下文存儲裝置260中獲取所確定的一個或者多個上下文210。在一些實施方案中,每個上下文210可以包括多個字符串或者可以與多個字符串相關聯。與上下文210相關聯的多個字符串可以包括由計算設備115的用戶或者由其它計算設備115的其他用戶輸入的針對上下文210的字符串。例如,對於與字處理應用相關聯的上下文210而言,多個字符串可以包括由用戶頻繁輸入到字處理應用中的一個或者多個字符串。對於與正式的對話風格相關聯的上下文而言,多個字符串可以包括在正式對話期間由用戶或者其他用戶典型地使用的一個或者多個字符串。在一些實施方案中,與上下文210相關聯的多個字符串中的字符串可以基於由計算設備的一個或者多個其他用戶使用的字符串,並且可以由外部管理員收集並提供給上下文引擎240。可替換地或者附加地,如下文將進一步描述的,與上下文210相關聯的字符串可以由上下文引擎240確定。
[0022]如上文所描述的,上下文可以包括用戶通過其提供所輸入的文本230的對話220或者環境的一個或者多個特性、特徵或者屬性。在一些實施方案中,上下文引擎240可以通過確定與所輸入的文本230相關聯的特性並且確定與所確定的特性相匹配的上下文存儲裝置260中的一個或者多個上下文210,來為所輸入的文本230確定一個或者多個上下文210。
[0023]上下文210的特性可以包括與所輸入的文本230相關聯的應用135的類型。與所輸入的文本230相關聯的應用135可以是用戶正向其提供所輸入的文本230的應用135。應用135的類型可以包括例如SMS應用、字處理應用、電子郵件應用、和社交網絡應用。其它類型的應用可以被支持。上下文引擎240可以例如從作業系統120確定應用135的類型。
[0024]上下文210的特性可以包括與時間和/或日期有關的特性。如可以領會的,由用戶提供的字或者短語的類型可以基於例如一天中的時間、一周中的一天、或者一個月中的一天而變化。例如,用戶可能在下午使用短語「下午好」並且在早上使用短語「早上好」。用戶在周末期間使用的字或者短語可能與其在工作日期間使用的字或者短語是不同的。類似地,用戶可能更可能在圍繞相應假期的一段時間期間使用某些與假期有關的字和短語,諸如「聖派屈克(St.Patrick)節快樂」或者「母親節快樂」。上下文引擎240可以例如從作業系統120確定與時間或者日期有關的特性。
[0025]上下文210的特性還可以根據與所輸入的文本230相關聯的對話220來確定。在一些實施方案中,對話220可以包括來自由用戶和作為對話220的參與者的一個或者多個其他用戶生成的基於文本的消息的一個或者多個字符串。例如,對話220可以是在計算設備115的用戶和其它計算設備115的一個或者多個其他用戶之間發送的一系列文本、電子郵件、或者社交網絡消息。附加地,上下文的特性可以包括在對話期間提到或者提出的實體或者參與者。
[0026]可以由上下文引擎240根據與所輸入的文本230相關聯的對話220確定的上下文210的特性的示例可以包括,與對話220相關聯的一個或者多個參與者。例如,用戶可以與兩個朋友進行電子郵件對話。朋友可以是對話220的參與者。用戶可以根據他們正在與其通信的參與者(例如,他們的母親對朋友)而使用不同的字或者短語。上下文引擎240可以根據與所輸入的文本230相關聯的應用135確定對話220的參與者。
[0027]可以由上下文引擎240根據與所輸入的文本230相關聯的對話220確定的上下文210的特性的另外的示例可以包括,對話220的風格或者氣氛。對話220的風格的示例可以包括正式的、非正式的、或者商務的。氣氛的示例可以包括嚴肅的、悲傷的、快樂的、和激動的。其它語氣或者風格可以被支持。典型地,用戶使用與對話220的風格或者氣氛相匹配的對話220中的一組字或者短語。
[0028]上下文引擎240可以基於在對話220中使用的字或者短語確定對話220的風格或者氣氛。在一些實施方案中,上下文引擎240可以尋找對話220中指示對話的風格或者氣氛的字或者短語,並且可以基於所確定的字來確定對話220的風格或者氣氛。例如,諸如「LOL」那樣的非正式字的使用可以指示對話220的風格是非正式的,並且感嘆詞記號的使用可以指示對話的氣氛很可能是快樂的或者激動的。在一些實施方案中,上下文引擎240可以連續監測對話220,並且可以隨著對話220的進行,更新或者改變對話220的風格或者氣氛。
[0029]可以由上下文引擎240根據與所輸入的文本230相關聯的對話220確定的上下文210的特性的另外的示例可以包括,對話220的話題。與上文描述的風格和氣氛類似,上下文引擎240可以通過尋找對話220中的特定字或者短語來確定對話的話題。例如,對話220中的「紐約」和「旅行」的多次出現可以指示對話220是關於紐約或者休假的。上下文引擎240可以連續監測對話220,並且可以隨著對話220的進行,更新或者改變對話220的話題。
[0030]在一些實施方案中,上下文引擎240可以從上下文存儲裝置260中獲取與所確定的特性中的每個相匹配的上下文210。因此,如果上下文引擎240確定與所輸入的文本230相關聯的上下文210具有正式氣氛的特性,並且對話的參與者是用戶的父母,則上下文引擎240可以從上下文存儲裝置260中獲取具有正式氣氛的特性的上下文210,並且對話的參與者是用戶的父母。如果沒有這樣的上下文210存在於上下文存儲裝置260中,則上下文引擎240可以選擇具有與所確定的特性最接近或者最相似的特性的上下文210。可替換地或者附加地,上下文引擎240可以從上下文存儲裝置260中為每個特性獲取具有該特性的上下文210,而不是從上下文存儲裝置260中獲取具有所確定的所有特性的單個上下文210。[0031 ] 候選預測發生器140可以基於所輸入的文本230和所確定的一個或者多個上下文210來生成一個或者多個字符串預測215。在一些實施方案中,字符串預測215可以由候選預測發生器140通過從與一個或者多個上下文210中的每個相關聯的多個字符串中確定將所輸入的文本230作為前綴的字符串來生成。所確定的字符串的置信度值可以例如通過包括該所確定的字符串的一個或者多個上下文210的數量和與所述一個或者多個上下文210中的每個字符串相關聯的概率來確定。
[0032]在字符串預測215用作拼寫建議的實施方案中,候選預測發生器140可以從所述多個字符串中確定與所輸入的文本230相似的字符串,而不是從與一個或者多個上下文210中的每個相關聯的所述多個字符串中確定將所輸入的文本230作為前綴的字符串。用於確定字符串的相似性的任何方法可以被使用。可替換地,候選預測發生器140可以從與一個或者多個上下文210中的每個相關聯的多個字符串中確定所輸入的文本230是否包括任何可能的字符串拼寫錯誤,並且可以使用所確定的字符串來生成字符串預測215。
[0033]候選預測發生器140可以提供所生成的字符串預測215中的一個或者多個。其中存在許多字符串預測215,候選預測發生器140可以基於與每個字符串預測215相關聯的置信度值來選擇將提供哪些字符串預測215。置信度值可以基於與關聯於所確定的一個或者多個上下文210的字符串中的每個相關聯的概率。對於短語預測實施方案而言,所提供的字符串預測215中的字符串可以在用戶接口 120的軟輸入面板中向用戶顯示。如果用戶選擇了所顯示的字符串,則該字符串可以作為輸入提供給應用135。
[0034]對於拼寫建議實施方案而言,所提供的字符串預測215中的字符串可以靠近所輸入的文本230或者作為菜單選擇來顯示。如果用戶選擇了所顯示的字符串,則所選擇的字符串可以在應用135中替換所輸入的文本230。
[0035]除了上下文210之外,候選預測發生器140也可以使用預測模型205生成一個或者多個字符串預測215。在一個實施方案中,預測模型205可以包括詞典,並且可以包括多種字符串(例如,字或者短語)以及用於每個字符串的概率。每個字符串的概率可以反映例如一般使用時每個字符串的普及性。概率可以通過對由用戶經過一段時間為一個或者多個應用135在一個或者多個對話220中提供的字符串進行收集和分析來確定,或者可以基於對來自例如報紙、雜誌、或者其它語言源的字符串的分析。模型的其它類型可以被使用。
[0036]在一些實施方案中,候選預測發生器140可以將使用一個或者多個上下文210生成的字符串預測215與由預測模型205生成的字符串預測215組合。例如,候選預測發生器140可以選擇使用一個或者多個上下文210生成的最前面的字符串預測(B卩,具有最高的置信度值)以及預測模型205的最前面的字符串預測,並且組合所選擇的字符串預測。
[0037]在其它的實施方案中,候選預測發生器140可以使用一個或者多個上下文210和預測模型205生成一個或者多個字符串預測215。例如,與一個或者多個上下文210相關聯的多個字符串中的字符串可以被合併到模型205中,或者與模型205中的字符串相關聯的概率可以基於與一個或多個上下文210相關聯的字符串來調整。由候選預測發生器140對預測模型205做出的任何改變或者調整可以是暫時的,並且可以在上下文引擎240確定一個或者多個不同上下文210的情況下被反轉。
[0038]上下文引擎240可以基於所輸入的文本230來保持或者更新所確定的上下文210。上下文引擎240可以從應用135接收字符串。該字符串可以是被提供給應用的字符串,或者作為與應用135相關聯的對話220的一部分的字符串。例如,計算設備115的用戶可以將所輸入的文本230 「願力量與你同在」提供到SMS應用中,作為具有特定參與者的對話220的一部分。與所輸入的文本230相關聯的(多個)上下文可以由上下文引擎240使用SMS應用和與對話220相關聯的參與者的特性來確定。
[0039]上下文引擎240可以確定所輸入的文本230的字符串是否已經是與一個或者多個上下文210相關聯的字符串的一部分。可替換地或者附加地,上下文引擎240可以確定與所輸入的文本230的字符串相似的字符串是否已經是與一個或者多個上下文210中的每個相關聯的字符串的一部分。用於確定相似字符串的任何方法可以被使用。如果所輸入的文本230的字符串(或者相似的字符串)已經是與一個或者多個上下文210相關聯的字符串的一部分,則在與一個或者多個上下文210相關聯的多個字符串中的每個中的字符串(或者相似的字符串)的概率可以增加。例如概率可以增加固定量。
[0040]如果所輸入的文本230的字符串(或者相似的字符串)不是與一個或者多個上下文210相關聯的字符串的一部分,則上下文引擎240可以確定是否將所輸入的文本230的字符串添加到與一個或者多個上下文210相關聯的多個字符串中。在一些實施方案中,如果所輸入的文本230的字符串滿足與上下文210相關聯的標準,則其可以被添加到與上下文210相關聯的多個字符串中。例如,標準可以是字符串作為所輸入的文本230的一部分多於閾值次數,比如三次。其它閾值次數或者標準可以被使用。每個上下文210可以有其自身的標準,或者對於上下文存儲裝置260中的每個上下文210而言,標準可以是相同的。因此,繼續上文的示例,如果對於上下文210中的每個而言,字符串「願力量與你同在」被接收到超過三次,則字符串「願力量與你同在」可以被添加到用於SMS應用的上下文210和用於與對話220相關聯的參與者的上下文210中。
[0041 ] 圖3是用於使用一個或者多個上下文提供字符串預測的方法300的實施方案的操作流程。方法300可以由例如計算設備115的候選預測發生器140來實施。
[0042]在301處,接收字符串。字符串可以由候選預測發生器140通過用戶接口 120從用戶接收,作為所輸入的文本230。例如,用戶可能已經使用軟體鍵盤將一個或者多個字符輸入到文本欄中。所接收的字符串可以是用戶打算作為具有一個或者多個參與者的對話220的一部分向應用135提供的字符串的前綴。應用135可以是例如SMS應用、社交網絡應用和電子郵件應用中的一個或者多個。
[0043]在303處,為字符串確定上下文。上下文210可以通過候選預測發生器140的上下文引擎240來確定。上下文引擎240可以針對所接收的字符串確定單個上下文210,或者可以確定多個上下文210。上下文210可以根據存儲在上下文存儲裝置260中的上下文210來確定。每個上下文210可以與多個字符串相關聯,所述多個字符串是在特定上下文210期間由用戶或者其他用戶所頻繁提供的字符串。所述多個字符串中的每個字符串也可以包括一種概率,該概率是對該字符串在該上下文210期間被多麼頻繁地提供的度量。
[0044]在一些實施方案中,確定上下文可以包括基於與所接收的字符串相關聯的應用135或者與所接收的字符串相關聯的日期或者時間來確定上下文。可替換地或者附加地,例如,上下文可以基於與所接收的字符串相關聯的對話220,並且上下文可以基於對話的參與者、對話的話題、或者對話的風格來確定。對話的話題或者風格可以由上下文引擎240通過尋找對話220中指示特定風格或者話題的字符串來確定。
[0045]在305處,基於所接收的字符串和所確定的上下文,生成多個字符串預測。多個字符串預測可以包括字符串預測215並且可以由候選預測發生器140使用所接收的字符串和與所確定的上下文210相關聯的多個字符串來生成。在一些實施方案中,字符串預測215中的每個可以包括來自與所確定的上下文210相關聯的多個字符串中的字符串,並且可以通過從所述多個字符串中確定包括所接收的字符串作為前綴的字符串來生成。可替換地,字符串預測215可以通過從所述多個字符串中確定與所接收的字符串相似的字符串來生成。字符串預測215中的每個還可以包括基於多個字符串中的字符串的概率的置信度值。
[0046]在一些實施方案中,多個字符串預測215也可以通過候選預測發生器140使用預測模型205和所確定的上下文210來生成。預測模型205可以包括或者基於例如詞典。
[0047]在307處,提供所述多個字符串預測中的一個或者多個字符串。可以由候選預測發生器140按照字符串預測215的置信度值來提供所述一個或者多個字符串。在一些實施方案中,可以提供字符串預測215中的具有最高置信度值的字符串。可以通過例如在用戶接口 120的軟輸入面板中顯示字符串來提供字符串。當字符串作為針對所接收的字符串的拼寫建議而提供時,字符串可以通過作業系統125臨近所接收的字符串來顯示。
[0048]在309處,接收所提供的一個或者多個字符串中的一個的選擇的指示。選擇的指示可以由作業系統125從用戶接口 125接收,並可被提供給候選預測發生器140。例如,用戶可以在用戶接口 120的軟輸入面板中選擇或者觸摸字符串中的一個。
[0049]在311處,所選擇的字符串作為輸入提供給應用。所選擇的字符串可以由候選預測發生器140作為對話220的一部分提供給應用135,或者作為針對所接收的字符串的拼寫替換提供給應用135。
[0050]在一些實施方案中,所選擇的字符串也可以用來通過候選預測發生器140的上下文引擎240來更新所確定的上下文210。例如,與關聯於所確定的上下文210的多個字符串中的所選擇字符串相關聯的概率可以通過候選預測發生器140的上下文引擎240來增加。
[0051]圖4是用於更新上下文的方法400的實施方案的操作流程。方法400可以通過例如候選預測發生器140來實施。
[0052]在401處,接收字符串。字符串可以由候選預測發生器140從作業系統125接收。字符串可能已經由應用135的用戶輸入或者選擇。字符串可以包括一個或者多個字或者短語。
[0053]在403處,為所接收的字符串確定上下文。上下文210可以通過候選預測發生器140的上下文引擎240來確定。上下文210可以與多個字符串相關聯,該多個字符串是由用戶或者其他用戶在特定上下文210期間頻繁提供的字符串。該多個字符串中的每個字符串也可以包括概率,該概率是對在該上下文210期間該字符串被多麼頻繁地提供的度量。
[0054]在405處,確定與所確定的上下文相關聯的多個字符串是否包括所接收的字符串。可以由候選預測發生器140的上下文引擎240做出確定。如果所述多個字符串包括該字符串,則方法400可以在407處繼續。否則,方法400可在409處繼續。
[0055]在407處,所述多個字符串中的該字符串的概率增加。該概率可以由候選預測發生器140的上下文引擎240來增加。例如,上下文引擎240可以通過將固定量添加到所述多個字符串中的所接收的字符串的概率來增加該概率。
[0056]在409處,確定該字符串是否滿足標準。可以通過候選預測發生器140的上下文引擎240做出確定。在一些實施方案中,標準可以是字符串被接收了多於閾值次數。例如,在字符串已經由用戶向應用135輸入或者提供了多於三次(或者另一個預先確定的次數,這取決於實施方案)之後,該字符串可以被添加到與所確定的上下文210相關聯的多個字符串中。其它的標準可以被使用。如果標準得以滿足,那麼方法400可以在411處繼續。否貝U,方法400可以在413處退出。
[0057]在411處,字符串被添加到與上下文相關聯的多個字符串中。字符串可以通過候選預測發生器140的上下文引擎240來添加。在一些實施方案中,與所添加的字符串相關聯的概率可以被設定成例如針對新添加的字符串的默認值。
[0058]圖5示出其中可以實施示例實施例和方面的示例性計算環境。計算系統環境僅是適當的計算環境的一個示例,並且不打算建議關於用途或者功能性的範圍的任何限制。
[0059]可以使用若干其它通用或者專用計算系統環境或者配置。可以適用於使用的眾所周知的計算系統、環境和/或配置的示例包括但不限於個人計算機、伺服器計算機、手持式或者膝上型設備、多處理器系統、基於微處理器的系統、網絡PC、小型計算機、大型計算機、嵌入式系統、包括上文的系統或者設備中的任何一個的分布式計算環境等等。
[0060]可以使用由計算機執行的計算機可執行指令,諸如程序模塊。一般地,程序模塊包括執行特定任務或者實施特定抽象數據類型的例程、程序、對象、組件、數據結構等等。可以使用分布式計算環境,其中任務由通過通信網絡或者其它數據傳輸介質連結的遠程處理設備來執行。在分布式計算環境中,程序模塊和其它數據可以位於本地和遠程計算機存儲介質(包括存儲器存儲設備)兩者中。
[0061]參考圖5,用於實施本文描述的方面的示例性系統包括計算設備,諸如計算系統500。在其最基本的配置中,計算系統500典型地包括至少一個處理單元502和存儲器504。取決於計算設備的確切配置和類型,存儲器504可以是易失性(諸如隨機存取存儲器(RAM))、非易失性(諸如只讀存儲器(ROM)、閃速存儲器等等)或者這兩者的某組合。這個最基本的配置在圖5中由虛線506圖示出。
[0062]計算系統500可以具有附加的特徵/功能性。例如,計算系統500可以包括附加存儲裝置(可移除和/或不可移除的),包括但不限於,磁性或者光學盤或者帶。這樣的附加存儲裝置在圖5中通過可移除存儲裝置508和不可移除存儲裝置510圖示出。
[0063]計算系統500典型地包括多種計算機可讀介質。計算機可讀介質可以是可以由計算系統500訪問的任何可用介質,並且包括易失性和非易失性介質、可移除和不可移除介質兩者。
[0064]計算機存儲介質包括以用於信息(諸如計算機可讀指令、數據結構、程序模塊或者其它數據)的存儲的任何方法或者技術實施的易失性和非易失性、以及可移除和不可移除介質。存儲器504、可移除存儲裝置508、和不可移除存儲裝置510都是計算機存儲介質的示例。計算機存儲介質包括但不限於RAM、R0M、電可擦除程序只讀存儲器(EEPR0M)、閃速存儲器或者其它存儲器技術、CD-ROM、數字萬能盤(DVD)或者其它光學存儲裝置、磁盒、磁帶、磁碟存儲裝置或者其它磁存儲設備、或者可以用來存儲合期望的信息並且可以由計算系統500訪問的任何其它介質。任何這樣的計算機存儲介質可以是計算系統500的一部分。
[0065]計算系統500可以含有允許設備與其它設備和/或接口進行通信的(多個)通信連接512。計算系統500也可以具有(多個)輸入設備514,諸如鍵盤(軟體或者硬體)、滑鼠、筆、語音輸入接口、觸摸接口等等。也可以包括(多個)輸出設備516,諸如顯示器、揚聲器、印表機等等。所有這些設備都在本領域是眾所周知的,並且不需要在此處詳盡地討論。
[0066]應該理解的是,本文描述的各種技術可以連同硬體或者軟體或者在適當情況下兩者的組合來實施。因此,本公開主題的方法和裝置或者其某些方面或者部分可以採用在有形介質中具體實現的程序代碼(即,指令)的形式,所述有形介質諸如是軟盤、CD-ROM、硬驅動器、或者任何其它機器可讀存儲介質,其中當程序代碼被載入機器(諸如計算機)並且由該機器執行時,該機器變成用於實踐本公開主題的裝置。
[0067]雖然示例性實施方案可能涉及在一個或者多個單獨計算機系統的上下文中利用本公開主題的方面,但是主題不如此受限,相反可以連同任何計算環境(諸如網絡或者分布式計算環境)實施。更進一步地,本公開主題的方面可以在多個處理晶片或者設備中或者跨多個處理晶片或者設備實施,並且相似地,存儲裝置可以跨多個設備實現。這樣的設備可以包括例如個人計算機、網絡伺服器、和手持式設備。
[0068]雖然主題已經以具體於結構特徵和/或方法論動作的語言進行了描述,但是將理解的是,在所附權利要求中定義的主題不必受限於上文描述的具體特徵或者動作。相反地,上文描述的具體特徵和動作作為實施權利要求的示例形式而公開。
【權利要求】
1.一種方法,包括: 由計算設備接收字符串,其中所接收的字符串與對話相關聯; 由計算設備基於對話來為所接收的字符串確定上下文; 由計算設備基於所接收的字符串和所確定的上下文來生成多個字符串預測,其中每個字符串預測包括字符串; 由計算設備提供所述多個字符串預測中的字符串中的一個或者多個; 由計算設備接收所述多個字符串預測中的所提供的一個或者多個字符串中的一個的選擇的指示;以及 響應於選擇的指示,由計算設備向應用提供所選擇的字符串。
2.如權利要求1的方法,其中為所接收的字符串確定上下文包括,基於應用確定上下文。
3.如權利要求1的方法,其中上下文與多個字符串相關聯,並且所生成的字符串預測中的至少一個包括,來自與上下文相關聯的所述多個字符串中的字符串。
4.如權利要求1的方法,其中所接收的字符串是字符。
5.如權利要求1的方法,其中對話具有一個或者多個參與者,並且為所接收的字符串確定上下文包括,基於所述一個或者多個參與者確定上下文。
6.如權利要求1的方法,其中為所接收的字符串確定上下文包括,確定對話的話題,並且基於對話為所接收的字符串確定上下文進一步包括基於所確定的話題為所接收的字符串確定上下文。
7.如權利要求1的方法,其中為所接收的字符串確定上下文包括,確定對話的風格並且基於所確定的風格為所接收的字符串確定上下文。
8.一種系統,包括: 至少一個計算設備;以及 候選預測發生器,被適配於: 接收字符串,其中所接收的字符串與一個或者多個參與者相關聯; 基於所述一個或者多個參與者為所接收的字符串確定上下文; 基於所接收的字符串和所確定的上下文生成多個字符串預測,其中每個字符串預測包括字符串;以及 提供所述多個字符串預測中的字符串中的一個或者多個。
9.如權利要求8的系統,其中所述候選預測發生器進一步被適配為: 接收所述多個字符串預測中的所提供的一個或者多個字符串中的一個的選擇的指示;以及 響應於選擇的指示,向應用提供所選擇的字符串。
10.如權利要求8的系統,其中所接收的字符串是對話的一部分,並且為所接收的字符串確定上下文進一步包括確定對話的話題,並且為所接收的字符串確定上下文是基於所確定的話題的。
【文檔編號】G06F3/023GK104508604SQ201380040756
【公開日】2015年4月8日 申請日期:2013年7月30日 優先權日:2012年7月30日
【發明者】格裡夫斯 J., 克裡沃希夫 G., 魯欽科 D., 森達拉拉彥 P., 佩克 T., 阿爾莫格 I. 申請人:微軟公司