本發(fā)明涉及提供情緒智能聊天。
背景技術:
當今的計算設備上的軟件應用已有了爆發(fā)式的流行,管理著來自工作生產力、減肥、web搜索、以及當代用戶生活的其他方面的一切事物。隨著設備大小縮小以變得更具移動性,更少的空間可用于以吸引人的方式來使用戶參與,且常規(guī)用戶接口(如鍵盤和鼠標)對于四處奔走的用戶來說是相當麻煩的。一些常規(guī)移動設備(例如智能電話和平板)配備有使用語音識別作為輸入設備指令的方式的基于軟件的虛擬助手。例如,這些虛擬助手允許用戶口述文本消息、詢問最近的燒烤餐廳位于哪里、搜索web、播放未收聽的語音郵件、以及為用戶執(zhí)行一批其他任務。
常規(guī)的虛擬助手一般通過識別并解釋用戶的話音,標識用戶命令中的任務,然后對任務進行響應來工作。但是,與僅僅識別單詞并進行響應相比,人類對話復雜得多得多。許多其他考慮因素影響了與人們進行通信的最佳方式,諸如年齡、文化、情緒狀態(tài)、以及人口統(tǒng)計學特征。例如,與兒童的對話可能需要和與成人的對話不同地進行。用戶的環(huán)境、文化、社交以及其他活動也可影響與用戶進行通信的最佳方式。從而,對于與人類用戶交互而言存在許多不同的影響。常規(guī)的數字助手僅僅搜索用戶的文本或語音的相關信息,而不考慮用戶的情緒狀態(tài)或除了語音或文本之外的各種其他因素。
技術實現要素:
參考下文列出的附圖,在下文詳細描述所揭示的示例。提供下面的概述以例示出本文所揭示的一些示例,但并不旨在將所有示例必然地限制于任何特定配置或操作順序。
一些示例針對操作被配置成保持與用戶進行情緒智能聊天對話的聊天引擎。在一些示例中,呈現給用戶的聊天引擎捕捉采用文本、視頻、音頻或圖像形式的用戶輸入數據。此外,該聊天引擎也可使用設備傳感器的集合或用戶輸入數據中的背景信息(如圖像或聲音記錄的背景)來捕捉環(huán)境數據。從用戶輸入數據和環(huán)境數據確定用戶的情緒狀態(tài)?;卮疬x擇器組件被順序地或并行地執(zhí)行,以確定對用戶輸入數據中的用戶聊天語句的一個或多個回答。然后可基于用戶的情緒狀態(tài)以及計算出的潛在聊天回答可能要么改變要么維持用戶的情緒狀態(tài)的可能性來選擇按情緒定制的聊天回答。按情緒定制的聊天回答然后可被傳送回用戶的客戶機計算設備,在用戶的客戶機計算設備處所述回答被呈現給用戶。本文所討論的技術可被用于以保持用戶參與的方式管理情緒智能聊天引擎。
附圖說明
參考下文列出的附圖,在下文詳細描述所揭示的示例:
圖1是例示出用于收集并提供用戶與環(huán)境數據的示例性計算設備的框圖。
圖2是用于在客戶機計算設備上提供情緒智能聊天引擎的聯網環(huán)境的框圖。
圖3是使用多層次選擇器組件向客戶機計算設備提供聊天回答的聊天引擎服務器的框圖。
圖4是用于為客戶機計算設備上呈現的聊天引擎提供聊天回答的工作流的流程圖。
圖5是用于為客戶機計算設備上呈現的聊天引擎提供聊天回答的工作流的流程圖。
圖6是用于為客戶機計算設備上呈現的聊天引擎提供聊天回答的工作流的流程圖。
圖7是用于客戶機計算設備上的聊天對話的用戶界面的用戶界面圖。
在全部附圖中,相應的附圖標記指示相應的部分。
具體實施方式
本文揭示的示例針對用于在智能電話、移動平板、聯網的玩具、車載計算機、或其他客戶機計算設備上提供交互式且情緒認知的聊天引擎的系統(tǒng)、設備、方法以及匯集了可執(zhí)行指令的計算機儲存存儲器。使用所揭示的方法,客戶機計算設備配備有能理解并解釋用戶的情緒狀態(tài)以及當前環(huán)境的聊天引擎。在一些示例中,可通過解釋文本、視頻、圖像、語音、音頻、觸摸、或客戶機設備上從用戶捕捉的其他信息來確定情緒狀態(tài)。例如,用戶的話音的音調可指示出用戶處于激動狀態(tài),用戶的面部表情可指示出用戶不安,用戶在文本中的選擇可指示出用戶對某一話題不感興趣,等等。為了創(chuàng)建情緒智能聊天引擎,本文所揭示的示例捕捉客戶機設備上的各種相關用戶和環(huán)境數據,將捕捉的用戶和環(huán)境數據傳達給聊天引擎服務器以用于確定用戶的情緒狀態(tài),基于用戶的情緒狀態(tài)生成聊天回答,以及將生成的聊天回答呈現給用戶。
在一些示例中,用戶的輸入數據和環(huán)境數據要么由客戶機設備(在一些示例中)要么由聊天引擎服務器(在其他示例中)分析,以確定用戶的情緒狀態(tài)。使用回答選擇組件的多層序列來選擇或生成用于以文本、口頭、動畫或視頻對話與用戶交互的聊天回答,這些回答選擇組件訪問各種信息索引以基于用戶輸入和環(huán)境數據來生成合適的聊天回答。學習模塊可被用于在考慮了用戶的檢測到的情緒狀態(tài)和/或環(huán)境的情況下,選擇將所生成的回答中的哪個回答提供給用戶。
所選擇的或生成的回答基于用戶的情緒狀態(tài)被定制,以便提供比常規(guī)數字助手所提供的更為健談且更情緒智能的聊天體驗。再次,當今的數字助手不考慮用戶的情緒狀態(tài)。使用本文所揭示的各種示例,聊天回答特別適合于用戶的情緒狀態(tài)。例如,當用戶不安時,特定的聊天回答將被使用(如“怎么了?”或“你想玩玩看并高興起來嗎?”)。提供情緒智能聊天回答通過在客戶機設備上提供與用戶通信的更準確的方式來增強用戶體驗。
同樣,通過識別用戶的情緒,本文所揭示的示例可更好地與幼兒通信,幼兒可能需要內容健康的聊天回答、簡單化的聊天回答以保持對使用客戶機設備的興趣、貫穿整個聊天體驗的鼓勵(例如對于害羞的或不安的兒童)、或者為了保持兒童參與的其他情緒刺激。例如,兒童在他們不安時常常不愿意與設備(或成人)交互。因此,所揭示的示例可首先檢測兒童的心情,然后提供聊天 回答(例如唱歌、詢問怎么了、講笑話等)以嘗試使兒童高興起來,如果成功的話將很可能保持兒童對聊天引擎的參與。除此之外,本文所揭示的其他示例提供了一種識別兒童何時失去對聊天體驗的興趣并因此簡化后續(xù)聊天回答以使兒童重新參與的方式。
盡管本文揭示了涉及兒童的一些示例,但是所揭示的示例不限于僅僅檢測情緒以及與兒童通信。所揭示的示例可確定特定于幾乎任何年齡組、階層或其他分組的人的不同情緒狀態(tài),并使用這些特定狀態(tài)來相應地定制聊天回答。例如,嘗試使年長用戶精神振奮的聊天回答可能不同于用于使中年、青少年以及少兒用戶精神振奮的那些聊天回答。從而,所揭示的示例可被用于識別并使用用戶的情緒狀態(tài)來生成將用戶保持在特定狀態(tài)(如高興)或保持與客戶機設備的交互的聊天回答。
出于本公開的目的,“聊天”或“聊天對話”指的是用戶與計算設備之間的電子交互,諸如舉例來說,但不限于,一系列交換的文本、視頻、音頻等。例如,玩具可交互式地與兒童用戶說話。計算機屏幕上呈現的化身可與用戶說話,呈現文本,或執(zhí)行動畫。聊天回答可通過汽車或其他交通工具的音頻系統(tǒng)來傳達?!傲奶煲妗敝傅氖怯糜谙蛴脩舫尸F聊天對話的整個設備和軟件組件,包括前端用戶體驗、中間聊天回答軟件、以及要被用于呈現聊天回答的數據的后端數據庫。
為了確定用戶的情緒狀態(tài),一些示例在客戶機計算設備上捕捉用戶的文本、話音、圖像、視頻或其他用戶數據,并將捕捉的用戶數據傳達給聊天引擎服務器。該捕捉的數據在本文中被統(tǒng)稱為“用戶輸入數據”,或簡稱為“用戶數據”。用戶輸入數據的示例包括但不限于:來自用戶的文本輸入、來自用戶的語音和其他音頻、用戶或用戶的環(huán)境的圖像或視頻、用戶在觸摸屏設備上的觸摸、以及由用戶輸入或從用戶和他們的環(huán)境中捕捉的任何其他信息。
如本文所提及的,“用戶簡檔”指的是電子存儲的與用戶有關的信息的集合。這樣的信息可包括用戶的姓名、年齡、性別、身高、體重、人口統(tǒng)計學特征、當前位置、居所、國籍、家庭、朋友、身高、體重、年齡、性別、學校教育、職業(yè)、愛好、技能、興趣、web搜索、健康信息、生日、周年紀念日、慶祝節(jié)日、心情、情緒狀態(tài)、以及與用戶相關聯的任何其他個性化信息。用戶簡檔包 括簡檔元素,簡檔元素可以是靜態(tài)的(如姓名、出生地等)或隨時間改變的動態(tài)的元素(如居所、年齡等)。用戶簡檔可在一個或多個客戶機計算設備上通過對用戶進行問題調查或通過分析用戶的行為來構建。
如本文所提及的,“環(huán)境數據”指的是如由計算設備的一個或多個傳感器或電子組件捕捉的與用戶的周圍環(huán)境、位置、或正被執(zhí)行的其他活動有關的信息。環(huán)境數據可包括從客戶機設備的一個或多個傳感器檢測到的信息。例如,客戶機設備中的全球定位系統(tǒng)(GPS)傳感器可確定用戶的位置,加速度計可確定用戶的移動,陀螺儀可確定用戶的定向,溫度計可確定用戶位置處的溫度,等等。環(huán)境也可包括從用戶輸入數據檢索到的信息,諸如舉例來說,但不限于,圖像或視頻的背景、音頻記錄的背景噪聲、音頻記錄中來自其他用戶的語音、或用戶輸入數據中的其他非因用戶而異的數據或部分。
而且,在一些示例中,環(huán)境數據還可或可替代地包括先前捕捉的歷史圖像、視頻、音頻文件、傳感器數據、或由其他用戶的客戶機計算設備捕捉的其他信息,所述其他用戶通過不同的web關系(如社交聯網站點、聯系人列表等)與用戶有關;詢問了與用戶類似的問題或作出了與用戶類似的語句;與用戶共享公共的用戶簡檔參數;或以某種方式另外地共生地連接到用戶。在一些示例中,由通過網絡從客戶機計算設備接收用戶輸入數據的聊天引擎服務器在用戶輸入數據中標識環(huán)境數據(如音頻中的背景噪聲、圖像或視頻的一些部分等)。在替代示例中,環(huán)境數據可由客戶機計算設備從用戶輸入數據解析并被分開地發(fā)送給聊天引擎服務器。
如下文更詳細地揭示的那樣,用戶的情緒狀態(tài)可單獨地基于用戶輸入數據或者基于用戶輸入數據與捕捉的環(huán)境數據的組合來確定。例如,用戶的話音(用戶數據)的語音識別可揭露出用戶在某一位置處(環(huán)境數據)時處于興奮且好奇的狀態(tài),在該位置處其他用戶通常感到驚奇,該用戶的情緒狀態(tài)可被確定為興奮、好奇和驚奇的某種組合。在一些示例中,聊天引擎服務器使用用戶輸入數據和/或環(huán)境數據來確定用戶的情緒狀態(tài),然后使用該情緒狀態(tài)來影響被提供給用戶的聊天回答。
情緒狀態(tài)可包括對情緒的任何指定,諸如舉例來說,但不限于各種級別的快樂(例如狂喜、興高采烈、歡樂、寧靜、愉悅);期待(警惕、好奇、感興 趣、期望、專注);害怕(恐懼、恐慌、驚駭、驚慌、擔心、膽怯);驚訝(驚異、驚愕、不確定、困惑);悲傷(悲痛、懊悔、沮喪、憂郁、哀思);厭惡(憎惡、強烈反感、反感、不喜歡、厭煩);生氣(狂怒、憤怒、敵視、煩惱);信任(贊賞、認可、容忍);或其他類型的情緒。
所揭示的示例可將情緒狀態(tài)指示為一個情緒(如沮喪)或情緒組合(如憂郁、厭煩、煩惱),情緒組合中的情緒可被均等加權(如33%憂郁、33%厭煩、33%煩惱)或不成比例地加權(如50%憂郁、10%厭煩、40%煩惱),以便表示某種情緒狀態(tài)。其他示例可確定用戶的情緒狀態(tài)只與若干情緒狀態(tài)(諸如幸福、生氣、悲傷等)之一或其某種組合有關。一些示例可基于以下來對所確定的情緒賦予權重:什么情緒看上去在用戶輸入或環(huán)境數據中更具支配性;該情緒是從用戶輸入還是環(huán)境數據指示出的(例如在一些示例中可更遵從從用戶輸入數據確定的情緒);或者通過各種其他加權方案。
在一般地提供了所揭示的示例中的一些示例的概覽之后,將注意力轉向附圖以進一步例示出一些附加細節(jié)。所例示出的配置和操作序列被提供來幫助讀者理解所揭示的示例的某些方面。附圖不意味著限制所有的示例,從而一些示例可包括不同的組件、設備或操作序列,而不背離本文所討論的所揭示的示例的范圍。換言之,一些示例可用與所示那些不同的方式來被具體化或起作用。
本公開的各方面通過根據用戶的情緒狀態(tài)定制聊天回答來創(chuàng)建更佳的聊天用戶體驗。理解用戶的情緒狀態(tài)以及相應地定制聊天消息極廣泛地擴展了常規(guī)計算設備的能力,從而提供了其中情緒認知的應用能夠存在的平臺。此外,本文所揭示的情緒檢測技術通過聊天用戶界面提高了用戶效率,增加了用戶設備交互,增加了用戶交互性能,以及減少了聊天引擎差錯(從而減少了處理和存儲器浪費)。
再次參考圖1,示例性框圖例示出被配置成捕捉并傳送用戶和環(huán)境數據的客戶機計算設備100??蛻魴C計算設備100表示執(zhí)行實現與計算設備100相關聯的本文所述的操作和功能的指令(例如,應用程序、操作系統(tǒng)功能、或兩者)的任何設備。在一些示例中,客戶機計算設備100具有至少一個處理器108、一個或多個呈現組件110、收發(fā)機112、一個或多個輸入/輸出(I/O)端口116、一個或多個I/O組件118、以及計算機儲存存儲器120。更為具體地,計算機儲 存存儲器120匯集了計算機可執(zhí)行指令,計算機可執(zhí)行指令包括通信接口組件130、用戶界面組件132、以及聊天小程序134,它們各自可由處理器108執(zhí)行以執(zhí)行下文所揭示的功能。
客戶機計算設備100可以采用移動計算設備或任何其他便攜式設備的形式,諸如舉例來說,但不限于,移動電話、膝上型計算機、平板、計算板、筆記本、游戲設備、和/或便攜式媒體播放器??蛻魴C計算設備100還可包括較不便攜的設備,諸如臺式個人計算機、自助服務終端、桌面設備、工業(yè)控制設備、無線充電站、以及電動汽車充電站。更進一步,客戶機計算設備100可替代地采用以下形式:車輛的電子組件(如配備有相機或本文所揭示的其他傳感器的車載計算機);電子裝備的玩具(如毛絨玩具、玩偶、或配備有本文所揭示的電子組件的其他兒童角色);或任何其他計算設備。其他示例可將客戶機計算設備100結合作為多設備系統(tǒng)的一部分,在多設備系統(tǒng)中兩個分開的物理設備共享或以其他方式提供對計算設備100的所例示出的組件的訪問。
處理器108可包括任意數量的處理單元,并被編程為執(zhí)行用于實現本公開的各方面的計算機可執(zhí)行指令。這些指令可由所述處理器執(zhí)行或由計算設備內的多個處理器執(zhí)行,或者由計算設備外部的處理器來執(zhí)行。在一些示例中,處理器108被編程為執(zhí)行諸如在附圖4-5中所例示出的那些指令之類的指令。附加地或替代地,一些示例可編程處理器108來在一用戶界面(“UI”)(例如圖6中所示的UI)中呈現聊天體驗。而且,在一些示例中,處理器108表示執(zhí)行本文所述的操作的模擬技術的一種實現。例如,這些操作可以由模擬客戶機計算設備100和/或數字客戶機計算設備100來執(zhí)行。
呈現組件110在計算設備100上可視地或可聽地呈現信息。顯示設備110的示例包括但不限于:計算機監(jiān)視器、電視機、投影機、觸摸屏、電話顯示器、平板顯示器、可穿戴設備屏幕、電視機、揚聲器、振動設備、以及被配置成向用戶顯示、振動地傳達或以其他方式指示聊天回答的任何其他設備。在一些示例中,如上所述,客戶機計算設備100可以是兒童的電子玩具或玩偶,該電子玩具或玩偶包括能夠向該兒童播放可聽的聊天回答的揚聲器。在其他示例中,客戶機計算設備100是具有顯示角色或助手(如說話的泰迪熊、成人的圖像等)的圖形用戶界面(GUI)的智能電話或移動平板,該角色或助手可在屏幕上向 兒童呈現文本聊天回答和/或通過揚聲器向兒童呈現可聽的聊天回答。在又一些其他示例中,客戶機計算設備100是汽車中的計算機,該計算機通過汽車揚聲器系統(tǒng)呈現音頻聊天回答,在汽車中的顯示屏(例如位于汽車的儀表板中、在頭靠內、在下拉屏幕上等等)上呈現視覺聊天回答,或者其組合。其他示例可通過各種其他顯示或音頻呈現組件110來呈現所揭示的聊天回答。
收發(fā)機112是能夠發(fā)送和接收射頻(“RF”)信號的天線。本領域的技術人員將理解并認識到各種天線和對應的芯片組可被使用以在客戶機計算設備100和其他遠程設備之間提供通信能力。然而,示例不限于RF信號收發(fā),因為可替代地使用各種其他通信模態(tài)。
I/O端口116允許客戶機計算設備100在邏輯上耦合至其他設備和I/O組件118,其中一些可被內置于客戶計算設備100中,而其他可以是外置的。特定于本文所討論的示例,I/O組件118包括話筒122、相機124、一個或多個傳感器126、以及觸摸設備128。話筒122捕捉來自用戶102的音頻。相機124捕捉用戶102的圖像或視頻。傳感器126可包括移動計算設備、電子玩具、游戲控制臺、可穿戴設備、電視機、車輛、或其他計算設備100之上或之中的任何數量的傳感器。此外,傳感器126可包括加速度計、磁力計、壓力傳感器、光度計、溫度計、全球定位系統(tǒng)(“GPS”)芯片或電路、條形碼掃描器、生物識別掃描器(如指紋、掌紋、血、眼睛等等)、陀螺儀、近場通信(“NFC”)接收器、或被配置成捕捉來自用戶102或環(huán)境的數據的任何其他傳感器。觸摸設備128可包括觸摸板、跟蹤板、觸摸屏、能夠將物理觸摸轉換成與呈現組件110上呈現的或通過呈現組件110呈現的或由呈現組件110呈現的軟件的交互的其他觸摸捕捉設備。例示出的I/O組件118僅僅是可被包括在客戶機計算設備100上的I/O組件的一個示例。其他示例可包括附加的或替代的I/O組件118,例如聲卡、振動設備、掃描儀、打印機、無線通信模塊、或用于捕捉與用戶或用戶的環(huán)境相關的信息的任何其他組件。
計算機儲存存儲器120包括任何數量的與計算設備100相關聯或可由計算設備100訪問的存儲器。存儲器區(qū)域120可以在客戶機計算設備100的內部(如圖1中所示)、在客戶機計算設備100的外部(未示出)、或兩者(未示出)。存儲器120的示例包括但不限于隨機存取存儲器(RAM);只讀存儲器(ROM); 電可擦除可編程只讀存儲器(EEPROM);閃存或其他存儲器技術;CDROM、數字多功能盤(DVD)或其他光學或全息介質;磁帶盒、磁帶、磁盤存儲或其他磁存儲設備;布線到模擬計算設備中的存儲器;或者用于編碼所希望的信息以及用于由客戶機計算設備100訪問的任何其他介質。存儲器120還可采用易失性和/或非易失性存儲器的形式;可以是可移動的、不可移動的、或其組合;且可包括各種硬件設備(如固態(tài)存儲器、硬盤驅動器、光盤驅動器等)。附加地或替代地,存儲器120可例如在虛擬化環(huán)境中跨多個客戶機計算設備100來分布,其中指令處理是在多個設備100上執(zhí)行的。出于本公開的目的,“計算機存儲介質”、“計算機儲存存儲器”、以及“存儲器”不包括載波或傳播信令。
計算機儲存存儲器120存儲當由處理器108執(zhí)行時用于執(zhí)行計算設備100上的功能的各種設備應用,以及其它數據。應用的示例包括聊天應用、即時消息通信應用、電子郵件應用程序、web瀏覽器、日歷應用程序、地址簿應用程序、消息收發(fā)程序、媒體應用、基于位置的服務、搜索程序等。應用可與對應的應用或服務(諸如經由網絡106可訪問的web服務)通信。例如,應用可包括與遠程服務器或云中的計算設備上執(zhí)行的服務器端應用對應的客戶機操作的應用。
具體來說,存儲器120中存儲的指令包括通信接口組件130、用戶界面組件132、以及聊天小程序134。在一些示例中,通信接口組件130包括網絡接口卡和/或用于操作網絡接口卡的驅動程序??蛻魴C計算設備100與其他設備之間的通信可通過有線或無線連接,或跨網絡106,使用任何協(xié)議或機制來發(fā)生。在一些示例中,通信接口組件130可與RF和使用電子標簽(諸如NFC標簽、藍牙品牌標簽等)的短距通信技術一起操作。
在一些示例中,用戶界面組件132包括用于將數據顯示給用戶以及從用戶接收數據的圖形卡。用戶界面組件132還可包括用于操作圖形卡以在呈現組件110上或通過呈現組件110顯示聊天回答以及對應的圖像或音頻的計算機可執(zhí)行指令(例如驅動程序)。用戶界面組件132還可與各種傳感器126交互來既捕捉信息又通過呈現組件110呈現信息。
聊天小程序134在被執(zhí)行時通過呈現組件110呈現聊天回答。在一些示例中,聊天小程序134在被執(zhí)行時通過I/O組件118檢索用戶數據以及環(huán)境數據, 并將檢索到的用戶和環(huán)境數據通過網絡傳達給遠程服務器。在一些示例中,遠程服務器操作服務小程序,該服務小程序被配置成從所傳達的用戶數據和環(huán)境數據中標識用戶情緒和/或環(huán)境狀態(tài),生成根據情緒狀態(tài)定制的聊天回答,以及將聊天回答傳達回客戶機計算設備100供通過呈現組件110顯示。在其他示例中,聊天小程序134可包括用于在客戶機計算設備100上確定用戶102的情緒或環(huán)境狀態(tài)的指令——而不是在遠程服務器上作出這樣的確定。用戶102的情緒狀態(tài)的確定可由聊天小程序134或服務小程序通過以下來執(zhí)行:捕捉的圖像或視頻中識別出的面部移動、對用戶的語音的音調或頻率分析、面部表情、用戶反應、眼睛移動、身體掃描、微情緒、運動、微運動等。
當情緒狀態(tài)是在客戶機計算設備100上確定時,一些示例然后可將所確定的情緒狀態(tài)單獨地或者與同樣在客戶機計算設備100上捕捉的環(huán)境數據一起通信給服務器,以供在選擇按情緒定制的聊天回答時使用。例如,指示出用戶102欣喜若狂或激動的情緒狀態(tài)(或者被加權或者不被加權)可與客戶機計算設備的當前位置(例如來自GPS電路)以及記錄的環(huán)境或背景噪聲一起傳送。作為響應,接收機服務器可基于用戶的欣喜若狂/激動的情緒狀態(tài)以及用戶的位置來生成或選擇合適的回答。
附加地或替代地,I/O組件118捕捉的環(huán)境數據也可由客戶機計算設備100或遠程服務器來分析,以確定用戶周圍發(fā)生的各種環(huán)境事件。背景音頻、圖像和視頻可被分析以收集關于用戶102的周圍環(huán)境的信息。例如,背景中電視機上播放的卡通片可被識別并用于指示出孩子正在看卡通片且處于觀看卡通片常見的情緒狀態(tài)(如高興)中。在另一示例中,用戶102的視頻可被分析且背景中奔跑的狗被識別,引發(fā)關于狗或者根據玩狗或遛狗的用戶102常見的情緒狀態(tài)定制的聊天回答。在又一示例中,用戶102的圖像可被分析以發(fā)現背景中的海灘,從而指示出用戶正在度假。許多其他示例可按不同的、替代的或附加的方式來解釋環(huán)境數據,以更好地理解用戶102的周圍環(huán)境以及情緒狀態(tài)。
盡管下文中更深入地被討論,一些示例還構建和維護用戶102的用戶簡檔。為了準備或維護最新的用戶簡檔,聊天小程序134或聊天服務小程序可被配置成周期性地、響應性地(例如在特定用戶交互之后)、自發(fā)地、或間隙性地用問題來調查用戶102以收集關于用戶102的信息。例如,聊天小程序134(單 獨地或在聊天服務小程序的指示下)可初始地詢問用戶102特定的靜態(tài)(即不改變的)信息(如生日、出生地、父母或兄弟姐妹姓名等)以及本質上更動態(tài)的當前信息(如居所、當前心情、最好的朋友、最喜歡的玩具等)。對于后者(即動態(tài)信息),聊天小程序134可在將來調查用戶102或者分析與用戶102的聊天對話以獲得對動態(tài)信息的改變——以確保這樣的信息不過時。例如,如果用戶簡檔先前指示出兩年前用戶102住在西雅圖,而聊天小程序134識別出客戶機計算設備100正在德克薩斯州休斯頓花費了比閾值時間量(例如每年天數、每周小時數等)更多的時間,則聊天小程序134可被配置成或由聊天服務小程序指示來詢問用戶102是否他或她住在新的地方。這樣的問題可由用戶輸入數據(如聊天回答)、時間流逝、檢測到的環(huán)境數據、用戶102的情緒狀態(tài)、或任何其他觸發(fā)因素來觸發(fā)。
圖2是用于在客戶機計算設備100上提供情緒智能聊天引擎的聯網環(huán)境200的框圖。聯網環(huán)境200包括通過網絡106通信的多個客戶機計算設備100、聊天引擎服務器202、以及數據庫集群204。在一些示例中,用戶和環(huán)境數據由客戶機計算設備100通過網絡106傳達給聊天引擎服務器202,而聊天引擎服務器202生成按情緒定制的聊天回答,按情緒定制的聊天回答被提供回客戶機計算設備100用于作為聊天對話的一部分呈現給它們相應的用戶102。圖2中所示的聯網環(huán)境200僅僅是一個合適的計算系統(tǒng)環(huán)境的示例,并且不旨在對本文所公開的示例的使用范圍或功能提出任何限制。也不應該將所例示的聯網環(huán)境200解釋為具有與任何單個組件、模塊、索引或其組合有關的任何依賴性或要求。
網絡106可包括任何計算機網絡,例如,因特網、專用網絡、局域網(LAN)、廣域網(WAN)等等。網絡106可包括各種網絡接口、適配器、調制解調器、以及用于通信地連接客戶機計算設備100、聊天引擎202、以及數據庫集群204的其他網絡設備。網絡106還可包括用于點對點連接的配置。計算機網絡對于本領域技術人員來說是已知的,因此不需要在本文被詳細討論。
客戶機計算設備100可以是上文參考圖1所討論的任何類型的計算設備。為了例示出本公開所考慮的各種示例的通用性,圖2中所示的示例將客戶機計算設備100描繪為汽車、移動電話、以及電子泰迪熊。每個客戶機計算設備100 可從它們相應的用戶捕捉用戶和/或環(huán)境數據,并將捕捉的用戶和環(huán)境數據通過網絡106傳達給聊天引擎服務器202和/或數據庫集群232。為此,每個設備可配備有通信接口組件132,如上參考圖1所討論的。作為響應,聊天引擎服務器202能夠在聊天體驗中將情緒智能聊天回答提供給無數種客戶機計算設備100,這些客戶機計算設備能夠通過網絡106來傳達它們各自捕捉的用戶和環(huán)境數據。換言之,聊天引擎服務器202可控制許多客戶機計算設備100上的聊天引擎對話。
客戶機計算設備100可配備有各種軟件應用以及用于向它們各自的用戶呈現接收到的聊天回答的呈現組件110。例如,汽車可在頭靠中的電視機屏幕上呈現文本或動畫,以及通過揚聲器系統(tǒng)呈現相應的音頻。移動電話可在屏幕上呈現虛擬助手或兒童友好的化身,以及通過揚聲器呈現相應的音頻。泰迪熊可通過揚聲器呈現音頻,以及可使用光或其他動物機器人技術(如泰迪熊移動)來呈現聊天回答。所例示出的客戶機計算設備以及前述的呈現機制并非是覆蓋了全部示例的窮舉列表。客戶機計算設備100和呈現技術的許多不同變型可被用于向用戶傳達聊天回答。
聊天引擎服務器202表示被配置成執(zhí)行不同的web服務計算機可執(zhí)行指令的服務器或服務器集合。聊天引擎服務器202包括處理可執(zhí)行指令的處理器206、通過網絡106通信的收發(fā)機208、以及匯集了至少以下可執(zhí)行指令的計算機儲存存儲器210:聊天服務小程序212、對話模塊220、以及回答學習模塊222。聊天服務小程序212包括用于情緒檢測模塊214、環(huán)境檢測模塊216以及回答選擇模塊218的指令。更進一步,回答選擇模塊218包括多層次選擇組件,所述多層次選擇組件包括技能選擇器224、常見問題(“FAQ”)FAQ選擇器226、知識庫選擇器228、專家選擇器230、主動調查232、因域而異的選擇器234、內容健康web選擇器236、以及通用答案選擇器240——它們的操作在下文更詳細地被討論。盡管聊天引擎服務器202被例示為單個框,但是本領域技術人員將理解聊天引擎服務器202可實際上是可伸縮的。例如,聊天引擎服務器202可實際上包括操作軟件的各種部分的多個服務器,它們一起生成聊天回答并控制客戶機計算設備100上的聊天對話。
數據庫集群204提供對可由聊天引擎服務器202或客戶機計算設備100通 過網絡106訪問的以及由聊天引擎服務器202使用來生成按情緒定制的聊天回答的Web、用戶、以及環(huán)境數據的后端存儲。存儲在數據庫集群中的Web、用戶、以及環(huán)境數據包括,例如但不限于,用戶簡檔242、常見問題(“FAQ”)244、因域而異的回答246、萬維網上的問題與答案對(“Web Q&A對”)248、遞歸神經網絡(“RNN”)回答250、通用答案252。此外,盡管為了清楚起見沒有示出,但是數據庫集群204的服務器可包括它們自己的處理器、收發(fā)機以及計算機儲存存儲器。聯網環(huán)境200還將數據庫集群232描繪為與聊天引擎服務器202分開的設備的集合;然而,一些示例可實際上將數據庫集群204中所示的所討論的Web、用戶、以及環(huán)境數據存儲在聊天引擎服務器202上。
更為具體地,用戶簡檔242可包括針對個體用戶先前所述的靜態(tài)和動態(tài)數據參數中的任何參數。用戶簡檔的示例包括但不限于:用戶的年齡、性別、種族、姓名、位置、父母、喜歡的事物、興趣、Web搜索歷史、Web評論、社交媒體聯系與交互、在線組、學校教育、位置、出生地、母語或習得語言、熟練程度、購買歷史、日常行為、工作、先前的情緒狀態(tài)、宗教信仰、醫(yī)療數據、就業(yè)數據、金融數據、或特定于用戶的幾乎任何唯一數據點。用戶簡檔242可被擴展以涵蓋實際上用戶生活的每一方面。在一些示例中,用戶簡檔242包括從各種各樣的源接收到的數據,諸如web站點(如博客、評論欄目等)、移動應用、響應于聊天引擎的主動地或反應性地詢問而與用戶的聊天對話、與用戶的在線聯系的聊天對話、與具有類似簡檔的用戶的聊天對話、或其他源。與可被包括在用戶簡檔242中的數據的類型一樣,這樣的信息的源也是可深入擴展的。
在一些示例中,FAQ 244包括與正被呈現在客戶機計算設備100上的聊天引擎或客戶機計算設備100本身相關聯的任何問題與答案(Q&A)對。例如,FAQ 244可包括具有與以下有關的問題與相應答案的Q&A對:電子玩具的名字、虛擬助手、或化身的名字(例如用于實際泰迪熊或虛擬泰迪熊的“泰迪”);聊天引擎可理解的特定語言;與聊天引擎進行更好通信的方式;或者特定于聊天引擎本身的其他Q&A對。這樣的Q&A對可由管理員上傳或基于眾多或特定用戶對聊天引擎的使用而隨著時間被收集。
在一些示例中,因域而異的回答246包括基于各種定時事件和情形的特定 聊天回答。這樣的事件和情形可計及一年的特定一天(如特定的假日)、一天中的時間、日歷季節(jié)、或其他定時事件。例如,日常來說,用戶的心情在早上可能不同于晚上;因此因域而異的回答246可基于一天中的時間來指示出特定的回答?;蛘吲c因域而異的回答246存儲在一起的數據可反映出基于各種定時事件或情形對心情的調整。例如,在早晨期間,情緒檢測模塊214檢測到的情緒狀態(tài)可從欣喜若狂被調整到愉悅的,以考慮到對于早晨用戶而言一天中的一般較低的能量部分。因域而異的回答246和伴隨的情緒狀態(tài)加權和調整數據可特定于個體用戶或一組類似的用戶。
在一些示例中,web Q&A對248包括Web上公共可獲得的問題與答案。Q&A對248可從在線信息收集,并對特定用戶進行調整或凈化內容。例如,可為兒童從Q&A對248中移除粗話或低俗語言,可從贊成另一政治團隊的政治用戶移除有政治偏見的語言,等等。針對Q&A對248收集的信息可從在線源被捕捉,在線源諸如舉例來說,但不限于web頁、web評論欄目、社交媒體站點、或示出在線用戶之間的交互的其他在線源。盡管web Q&A對248暗示出被詢問的實際問題,但是出于本公開的目的,web Q&A對248可包括Web上的兩個信息片段之間的任何關聯。例如,關于某一特定話題的社交媒體評論可與該話題相關聯并被包括作為web Q&A對248的一部分,受歡迎的博客評論可與某一特定web頁面的話題相關聯,等等。實際上在線信息的任何組合可彼此相關聯并被存儲為web Q&A對248。
在一些示例中,RNN回答250包括通過遞歸神經網絡從Web上的信息學習而準備的回答。為此,一些示例使用基于RNN的web服務來生成可在與用戶的對話中被使用的聊天回答。這樣的服務(可由聊天引擎服務器202或其他遠程服務器實現)操作上基于軟件實現的預先訓練的模型來生成用于一聊天回答的短語或句子,該模型分析用戶對話語句或問題以及基于本文中所討論的Q&A對中的信息來生成回答句子。例如,來自用戶的問題“睡覺時間是什么時候?”可使得RNN模型基于web上可獲得的信息以及對用戶的問題與Q&A對的索引的RNN分析來生成句子“睡覺時間是10:30pm”。這些RNN回答250可被存儲在數據庫集群232上供將來使用——要么用于特定用戶要么用于具有公共用戶簡檔242特征的其他用戶。
在一些示例中,通用答案252包括回答許多不同問題的預定義的聊天回答。樣本通用答案252包括例如,但不限于,“你能重復一遍嗎?”;“讓我想想”;以及“好的!”。在一些示例中,通用答案252是在其他更具體的答案不能被生成時可被呈現給用戶的預定義的回答。
在操作中,用戶參與客戶機計算設備100,客戶機計算設備100可從用戶或它們的周圍環(huán)境主動地或反應性地捕捉用戶和/或環(huán)境數據。在一些示例中,客戶機計算設備100可被配置成通過詢問關于用戶的情緒狀態(tài)、周圍環(huán)境、體驗、或可被用于構建用戶簡檔242或將用戶簡檔242保持最新的信息的問題來主動地調查用戶以獲得信息。例如,客戶機計算設備100可捕捉用戶的圖像,讀取各種傳感器,或詢問用戶調查問題。附加地或替代地,客戶機計算設備100可在參與與用戶的交互時反應性地捕捉用戶和環(huán)境數據。例如,用戶可詢問一問題,打開聊天引擎應用,或者以其他方式參與聊天小程序134,從而提示客戶機計算設備100捕捉相應的用戶和/或環(huán)境數據。不管是主動地還是反應性地獲得,客戶機計算設備100上所捕捉的用戶和環(huán)境數據可被傳送給聊天引擎服務器202以生成用于合適的聊天對話回答。附加地或替代地,所捕捉的用戶和環(huán)境數據中的一些或全部可被傳送至數據庫集群232供存儲。例如,與客戶機計算設備100上的聊天小程序134收集的用戶的簡檔有關的信息可被存儲在數據庫集群204上。
聊天引擎服務器202基于以下來控制客戶機計算設備100上的聊天對話:從客戶機計算設備100接收到的用戶和/或環(huán)境數據;數據庫集群232中的數據;用戶的情緒狀態(tài);或其組合。為此,在一些示例中,聊天服務小程序212使用情緒檢測模塊214來確定用戶的情緒狀態(tài),以及使用環(huán)境檢測模塊216來確定用戶的環(huán)境。此外,聊天服務小程序212執(zhí)行多層回答選擇模塊218來生成或選擇聊天回答以服務于客戶機計算設備100。回答選擇模塊218在選擇或生成聊天回答時可考慮所確定的用戶的情緒狀態(tài)和環(huán)境狀態(tài)。而且,在一些示例中,回答學習模塊222提供用于基于來自先前的聊天對話以及對應的情緒狀態(tài)(特定于用戶本身、有聯系的用戶(如家庭、朋友、社交聯網等)、具有類似的用戶簡檔242的用戶、或對用戶來說是陌生人)的歷史學習將用戶從一個狀態(tài)(例如抑郁)移動到另一狀態(tài)(例如高興)的規(guī)則或其他條件。使用本文所揭示的 技術、模塊和組件,聊天引擎服務器202可基于用戶的情緒狀態(tài)和/或用戶的周圍環(huán)境向客戶機計算設備100提供對話聊天。
在一些示例中,情緒檢測模塊214通過分析從客戶機計算設備100接收到的用戶數據來確定用戶的情緒狀態(tài)。為此,情緒檢測模塊214可單獨地基于用戶數據或者基于用戶數據與捕捉的環(huán)境數據的組合來確定用戶的情緒狀態(tài)。情緒檢測模塊214可執(zhí)行用于分析用戶的語音的音調、頻率、音高、幅度、顫音、混響、或其他可聽參數的指令,以便確定用戶的情緒狀態(tài)。而且,用戶的語音可由情緒檢測模塊214轉換成文本或者可聽地識別關于用戶正在說什么的內容,而用戶的經識別出的單詞或短語可由情緒檢測模塊214解釋以理解用戶的情緒狀態(tài)。
除此之外,用戶文本可類似地被情緒檢測模塊214分析以理解用戶的情緒狀態(tài)。特定名詞、動詞或其他單詞選擇可指示出用戶的情緒,標點符號、大寫、或關于文本的其他細節(jié)也可指示出用戶的情緒。附加地或替代地,情緒檢測模塊214可包括可操作的圖像識別指令以分析用戶的圖像或視頻,以便從用戶的面部特征、面部表情、動作、注視、移動、表情、或其他視覺捕捉的參數分析用戶的情緒狀態(tài)。附加地或替代地,情緒檢測模塊214可識別圖像、視頻或音頻中的其他人,并根據周圍的人來解釋用戶的情緒狀態(tài)。例如,與在陌生人面前相比,兒童在他們的父母或兄弟姐妹面前一般更舒適;因此父母或兄弟姐妹存在檢測(不管是通過文本、音頻、圖像還是視頻)可由情緒檢測模塊214解釋來指示出兒童的更高興的情緒狀態(tài)。
從而,情緒檢測模塊214是靈活的,且能夠從用戶文本、語音、圖像、視頻(單獨地或連同環(huán)境數據一起)的任何組合快速地確定用戶的情緒狀態(tài)。情緒檢測模塊214的智能可由管理員設置或可被配置成基于從客戶機計算設備100發(fā)送的用戶和環(huán)境數據而隨著時間學習。
環(huán)境檢測模塊216分析來自客戶機計算設備100的環(huán)境數據以確定用戶的環(huán)境。圖像、視頻和音頻的背景可被分析以確定用戶周圍正在發(fā)生什么。例如,隨著用戶的語音一起被捕捉的背景噪聲可向環(huán)境檢測模塊216揭露出用戶在戶外、在特定場所、或者被特定量的或可標識的人(如父親、兄弟等)圍繞。用戶正穿著的制服類型可被識別為關于用戶在上學、在工作、或在其他某處的指 示。還竟識別不僅僅限于用戶捕捉的數據。先前討論的客戶機計算設備100上的傳感器126也可揭露用戶的環(huán)境或環(huán)境狀況(如在跑步、在家、在工作等)。
對話模塊220管理位于聊天引擎服務器202遠程的客戶機計算設備100的聊天對話。就這一點而言,對話模塊220可接收來自客戶機計算設備100的用戶和環(huán)境數據,并將從回答選擇模塊218選擇的聊天回答提供回客戶機計算設備100。
在一些示例中,回答學習模塊222包括可操作來實現馬爾可夫決策過程強化學習模型的指令。在一些示例中,回答學習模塊222使用由用戶需求和情緒狀態(tài)(如積極情緒、消極情緒、或先前討論的情緒中的任何情緒)構成的不同狀態(tài);由聊天回答(例如鼓勵用戶的回答、同情用戶的回答、似乎理解用戶的回答等等)構成的動作;以及由所希望的情緒狀態(tài)的改變(例如從憂郁到愉悅)構成的回報。回答學習模塊222然后可基于過去實現對這個用戶或其他用戶的回報的狀態(tài)與動作的不同組合,計算實現回報(即情緒狀態(tài)轉換)的可能性。然后,最可能能夠實現情緒轉換的回答可由回答學習模塊222選擇。
回答選擇模塊218包括可操作以基于用戶數據、環(huán)境數據、情緒狀態(tài)以及用戶的檢測到的環(huán)境來選擇或生成聊天回答。在一些示例中,回答選擇模塊218執(zhí)行多層次選擇組件,所述多層次選擇組件包括技能選擇器224、FAQ選擇器226、知識庫選擇器228、專家選擇器230、主動調查232、因域而異的選擇器234、內容健康web選擇器236、RNN答案選擇器238、以及通用答案選擇器240。這些選擇器組件224-240表示用于客戶機計算設備100上的用戶的聊天語句或問題的不同層次的分析焦點的指令,且各種選擇器組件224-240可訪問數據庫集群232中存儲的所揭示的信息以提供本文所提及的聊天回答。所揭示的選擇器組件224-240的任何組合可被使用,附加的或替代的選擇器組件也可被使用。
對于給定用戶輸入語句,選擇器組件224-240可通過若干不同層進行以生成一個或多個可能的聊天回答。在其他示例中,選擇器組件224-240順序地執(zhí)行技能選擇器組件224、FAQ選擇器226、知識庫選擇器228、以及專家選擇器230,然后并行地執(zhí)行主動調查232、因域而異的選擇器234、內容健康web選擇器236、RNN答案選擇器238、以及通用答案選擇器240。在其他示例中, 選擇器組件224-240順序地執(zhí)行技能選擇器組件224、FAQ選擇器226、知識庫選擇器228、專家選擇器230,主動調查232、因域而異的選擇器234、內容健康web選擇器236、RNN答案選擇器238、以及通用答案選擇器240。其他示例可以順序或并行處理的任何其他組合來執(zhí)行選擇器組件224。
在一些示例中,回答選擇組件224通過各種選擇器224-240順序地處理聊天語句直到生成或標識出聊天回答為止,所生成或標識出的聊天回答被提供回客戶機計算設備100。例如,如果技能選擇器224標識出一聊天回答,則對話模塊220將該聊天回答傳送至客戶機計算設備而無需通過剩余的選擇器組件226-240來處理用戶的聊天語句。以此方式,多層選擇器組件224充當一種使用不同層來提出聊天回答的過濾模型。
附加地或替代地,回答選擇組件224-240可各自生成可能的聊天回答以用于聊天對話,然后對話模塊可基于用戶的情緒狀態(tài)、環(huán)境狀態(tài)、和/或由回答學習模塊222計算出的每個回答的回報來選擇一回答。例如,選擇器224-240可基于用戶數據和對應的情緒和環(huán)境狀態(tài)(分別由情緒檢測模塊和環(huán)境檢測模塊確定)以及用戶的用戶簡檔數據242來生成9個可能的聊天回答(例如每個選擇器一個)。在一些示例中,回答學習模塊222對每個可能的回答分級以確定該回答將要么把用戶從一個情緒狀態(tài)轉換到另一個情緒狀態(tài)(如從憂郁到高興)要么將把用戶保持在給定情緒狀態(tài)(如保持高興)的可能性?;谶@些分級,對話模塊220可選擇合適的回答來提供給用戶。
更詳細地考慮選擇器組件224-240,技能選擇器226確定用戶聊天語句是否要求特定技能。技能選擇器226可包括一組預定義的技能,諸如唱首歌、講個有趣的故事、談談當前天氣等等。用戶聊天語句由技能選擇器226分析以確定其預定義的技能之一是否可充當對該用戶數據的回答。如果是,則技能選擇器224基于該預定義的技能生成可能的聊天回答。例如,如果用戶命令“唱首歌”,則技能選擇器可生成唱某首歌的回答。
FAQ選擇器226分析用戶聊天語句并確定用戶是否正在詢問特定于正被呈現的聊天引擎的問題。例如,聊天引擎可表現為具有特定名字、性別、年齡、家庭、偏好、或其他特征的卡通人物。如果用戶正在詢問有關該卡通人物的問題,則FAQ選擇器226將基于被存儲為數據庫集群204中的FAQ 244的用于 該聊天引擎的信息的知識庫來從FAQ 244中選擇回答。從FAQ選擇器226對可能的聊天回答的選擇可使用與該聊天引擎有關的信息的知識庫的分級模型來執(zhí)行。也就是說,FAQ選擇器226可將用戶問題視為一查詢,并將FAQ 244的知識庫中的問題視為被分級的候選文檔。FAQ選擇器226然后可選擇知識庫中最相關的問題,該問題將被選為對用戶的聊天問題或語句的聊天回答。
知識庫選擇器228是包含針對目標用戶的某種專門知識庫或圖表的基于知識的索引。例如,如果用戶是兒童,則知識庫可包括根據兒童定制的100,000個聊天回答,諸如關于動物、植物、地球等的語句。如果用戶正在該范圍內詢問問題,則知識庫選擇器228從該知識庫選擇一回答作為聊天回答。而且,知識庫中的聊天回答也可被分級并根據這樣的分級來被選擇。
專家選擇器230確定用戶的聊天語句是否要求另一個人或特定專家來回復。為此,專家選擇器230可為給定用戶維護一組潛在專家,或者可訪問數據庫集群232中的用戶簡檔242來獲得這樣的信息。當用戶的聊天語句指示出用戶需要專家知識時(例如“我怎么才能防止水龍頭漏水?”),專家指示器推薦一合適的個人來聯系(例如“呼叫水管工Joe”)?;蛘撸谝恍┦纠?,如果聊天回答不能由其他選擇器組件224-228和232-240生成(之前處理或并行處理),則專家選擇器230可被配置成推薦該用戶聯系一可信的個人(如“問你父親”)。
選擇器組件224-240可在一個處理層中一起操作或者可作為多個層順序地操作。這些分層的選擇器組件224-240包括主動調查232,主動調查232包含問題以用問題或語句來調查用戶,這些問題或語句不一定回答用戶的問題但可推進聊天對話以防止用戶收到回答選擇模塊218可答復的不適當的聊天語句。有時,聊天對話可能停頓,因此主動調查232可被用于推進聊天以越過該停頓點,詢問類似于“你還好嗎?”或“今天在學校怎么樣?”的問題,這些問題不一定回復用戶的任何細節(jié)但是卻使得用戶繼續(xù)與聊天引擎說話。
因域而異的選擇器234包含針對目標用戶(諸如兒童、老年人、體育愛好者等)的某些特定行為模式或其他情形。例如,兒童通常早上醒來,晚上上床睡覺,在7:00pm左右吃飯等等。如果用戶的聊天語句或環(huán)境數據的一部分提及這些情形或模式化的行為之一,則因域而異的選擇器234可選擇或生成一回 答。為了標識這樣的模式,因域而異的選擇器234可訪問用戶簡檔242中的信息來更好地理解用戶。
內容健康web選擇器236是從因域而異的回答246、Web Q&A對248、或其他Web數據構建的。在一些示例中,這樣的Web數據可包括web論壇以及對應的在線討論線程,可挖掘它們來獲得Q&A對248。在一些示例中,對于來自一用戶的給定聊天語句,因域而異的回答246、Web Q&A對248、或其他Web數據可被分析以采用兩個步驟來標識或生成回答。首先,內容健康web選擇器236尋找用戶的聊天語句的最相似問題,其次內容健康web選擇器236尋找該最相似問題的最相關回答。對這些問題和回答的選擇可考慮用戶的簡檔242以及環(huán)境數據。而且,通過在將這樣的信息作為聊天回答提供給用戶之前從Web數據中移除或替換粗話或低俗語言,可為特定用戶(例如兒童、宗教人士等)凈化所選的回答。
RNN答案選擇器238執(zhí)行一RNN過程以從在線信息的集合生成聊天回答。給定來自用戶的聊天語句,RNN答案選擇器238可基于一預訓練的RNN模型來生成回答句子。RNN答案選擇器238可使用預定的RNN回答250或可被配置成通過分析在線信息的各種源(如web頁面、社交聯網應用等)來在進行中生成聊天回答。一些示例在聊天對話中使用預測“最佳”聊天回答以提供回用戶的RNN過程。在一些示例中,該RNN過程讀取來自用戶的輸入聊天語句,一次一個單詞或短語,并生成一RNN回答250,一次一個單詞或短語。在一些實施例中,該RNN過程可通過反向傳播在如何生成RNN回答250方面被訓練。在一些示例中,該RNN過程被訓練成基于來自用戶的輸入聊天語句將一RNN答案250的交叉熵最大化。該RNN過程可推斷RNN回答250的一些部分,然后將RNN回答250的經推斷出的部分饋送給該RNN過程作為輸入,以推斷RNN答案250的其他單詞或短語。換言之,RNN過程可以零碎方式被運行以生成整個RNN回答250的各部分。替代地,一些示例使用定向搜索來生成一RNN回答250的一些部分,然后將如此生成的各部分饋送至該RNN過程用于生成RNN答案250的其他部分。附加地或替代地,可基于RNN答案250的一系列經推斷出的或生成的部分的概率來選擇一預測的RNN答案250。例如,來自用戶的包括兩個部分的聊天對話:(1)第一人說出“ABC”,以及(2)另一 人回復“WXYZ”。該RNN過程可被訓練成將“ABC”映射或關聯到“WXYZ”。
通用答案選擇器240提供在其他聊天回答不能被生成的情況下可在幾乎任何情形中被呈現的通用答案。例如,在幾乎任何聊天語句之后,類似于“你能重復一遍嗎?”;“讓我想想”;以及“好的!”的語句可被提供給用戶。數據庫集群232上通用答案252的數據庫可被訪問以提供這樣的回答。在一些示例中,當對于給定聊天語句不能生成或標識其他聊天回答時,通用答案252被提供。
回答學習模塊222包括可操作來實現馬爾可夫決策過程強化學習模型的指令。在一些示例中,回答學習模塊222使用由用戶需求和情緒狀態(tài)(如積極情緒、消極情緒、或先前討論的情緒中的任何情緒)構成的不同狀態(tài);由聊天回答(例如鼓勵用戶的回答、同情用戶的回答、似乎理解用戶的回答等等)構成的動作;以及由所希望的情緒狀態(tài)的改變(例如從憂郁到愉悅)構成的回報?;卮饘W習模塊222然后可基于過去實現對這個用戶或其他用戶的回報的狀態(tài)與動作的不同組合,計算實現回報(即情緒狀態(tài)轉換)的可能性。在一些示例中,最可能能夠實現情緒轉換的回答可由回答學習模塊222選擇。換言之,回答學習模塊222分析由多層次選擇器組件224-240生成的潛在聊天回答的可能的有效性,并基于該組回答轉換用戶的情緒狀態(tài)或維持用戶的情緒狀態(tài)的所確定的能力來選擇一回答以提供給用戶。例如,如果回答學習模塊222具有5個或更多個可能的回答來從中選擇,且用戶被確定為處于激動情緒狀態(tài),則可選擇最可能將用戶保持在激動狀態(tài)的回答。在另一示例中,如果回答學習模塊222具有5個或更多個可能的回答且用戶處于憂郁情緒狀態(tài),則回答學習模塊222可基于計算出的轉換、調節(jié)或維持用戶的情緒狀態(tài)的可能性,促使從多層次選擇器組件選擇最可能改進用戶的心情或最可能最大程度改進用戶的心情的所生成的回答。
圖3例示出使用多層次選擇器組件向客戶機計算設備100提供聊天回答的聊天引擎服務器202的框圖??蛻魴C計算設備100向聊天引擎服務器202提供環(huán)境數據和用戶數據。在一些示例中,環(huán)境數據由環(huán)境檢測模塊216處理以標識用戶的具體環(huán)境狀況(如在家、在工作、在跑步、在車里、上床睡覺等)。用戶數據可包括來自用戶的聊天語句和/或捕捉的用戶的音頻、視覺或傳感器數據。在一些示例中,情緒檢測模塊214處理用戶數據以確定用戶的當前情緒狀 態(tài)(如高興、悲傷、憂郁、20%愉悅等)。用戶數據、環(huán)境數據、所確定的環(huán)境狀況、所確定的情緒狀態(tài)、或其任何組合可被提供給多層次選擇器組件224-240以便生成一個或多個聊天回答來提供給用戶。如果多個聊天回答由組件224-240生成,則可由對話模塊220基于這多個回答的回報來選擇一個優(yōu)選的聊天回答,所述回報是由學習模塊222針對使用戶從一個情緒狀態(tài)轉換到另一個(例如使用戶高興起來)或針對確保所提供的聊天回答符合用戶的當前情緒狀態(tài)(例如選擇最可能將欣喜若狂的用戶保持欣喜若狂或其他高興方式的回答)來計算出的。
在一些示例中,為了生成聊天回答,所例示出的示例通過各種選擇器組件224-240順序地處理聊天語句。各種選擇器組件224-240也可考慮所確定的情緒狀態(tài)和環(huán)境狀況(如分別由情緒檢測模塊214和環(huán)境檢測模塊216確定)。如所示,在一些示例中,下面的處理順序被使用以至少基于該聊天語句來標識聊天回答:技能選擇器224、FAQ選擇器226、知識庫選擇器228、專家選擇器230、主動調查232、因域而異的選擇器234、內容健康web選擇器236、以及通用答案選擇器240。在一些示例中,選擇器組件224-240進行的處理在這些組件之一標識出或生成一聊天回答時停止,然后對話模塊220將如此標識或如此生成的聊天回答提供給客戶機計算設備100。在其他示例中,從選擇器組件224-240中的多個或全部收集可能的聊天回答,對話模塊220基于由回答學習模塊222計算出的結果回報分級來選擇一個以提供給客戶機計算設備100。在任一情形中,對話模塊220所選擇的聊天回答最終被提供回客戶機計算設備100供呈現給用戶,該過程可貫穿聊天對話而被重復。
圖4是用于為客戶機計算設備100上呈現的聊天引擎提供聊天回答的工作流400的流程圖。一開始,如框402處所示,用戶數據和環(huán)境數據從客戶機計算設備100處被傳達并在聊天引擎服務器202處被接收。使用本文揭示的各種技術,聊天引擎服務器202(或者在一些示例中客戶機計算設備100)基于用戶數據(單獨地或連同環(huán)境數據一起)確定用戶的情緒狀態(tài),如框404處所示。如框406處所示,聊天引擎服務器202執(zhí)行本文所述的回答選擇器組件(彼此并行地、順序地、或其某種組合)來確定一個或多個可能的聊天回答以提供給用戶。選擇器組件可包括本文所揭示的技能選擇器224、FAQ選擇器226、知 識庫選擇器228、專家選擇器230、主動調查232、因域而異的選擇器234、內容健康web選擇器236、RNN答案選擇器238、以及通用答案選擇器240,或者能夠基于用戶的聊天語句標識聊天回答的其他選擇組件??苫谟脩舻那榫w狀態(tài)或環(huán)境數據來選擇由回答選擇器組件生成的可能的聊天回答之一,如框408處所示。聊天引擎服務器將所選擇的按情緒定制的聊天回答傳送給客戶機計算設備100,如框410處所示。而客戶機計算設備100向用戶呈現該所選的按情緒定制的回答。
圖5是用于為客戶機計算設備100上呈現的聊天引擎提供聊天回答的工作流500的流程圖。一開始,如框502處所示,用戶數據和環(huán)境數據從客戶機計算設備100處被傳達并在聊天引擎服務器202處被接收。使用本文揭示的各種技術,聊天引擎服務器202基于用戶數據(單獨地或連同環(huán)境數據一起)確定用戶的情緒狀態(tài),如框504處所示。本文揭示的回答選擇器組件224-240被執(zhí)行以確定用戶的聊天語句的一個或多個潛在的聊天回答,如框506處所示。對于每個潛在的聊天回答,回答學習模塊222計算該回答將轉換和/或保持用戶的當前情緒狀態(tài)的可能性,如框508處所示。這樣的計算可通過執(zhí)行計算機實現的馬爾可夫決策過程來被執(zhí)行,該過程分析由用戶需求和情緒狀態(tài)(如積極情緒、消極情緒、或先前討論的情緒中的任何情緒)構成的不同狀態(tài);由聊天回答(例如鼓勵用戶的回答、同情用戶的回答、似乎理解用戶的回答等等)構成的動作;以及由情緒狀態(tài)中所希望的改變(例如從憂郁到愉悅)構成的回報。其他技術可替代地被使用以確定某一潛在的聊天對話可能轉換或保持用戶的情緒狀態(tài)的可能性。在一些示例中,基于計算出的情緒狀態(tài)轉換或保持可能性,從潛在的聊天回答中選擇一個按情緒定制的聊天回答,如框510處所示。所選擇的按情緒定制的聊天回答被傳送回用戶的客戶機計算設備并被呈現給用戶,如分別在框510和512處所示。
圖6是用于為客戶機計算設備100上呈現的聊天引擎提供聊天回答的工作流600的流程圖。一開始,如框602處所示,用戶數據和環(huán)境數據從客戶機計算設備100處被傳送并在聊天引擎服務器202處被接收。使用本文揭示的各種技術,聊天引擎服務器202(或者在一些示例中客戶機計算設備100)基于用戶數據(單獨地或連同環(huán)境數據一起)確定用戶的情緒狀態(tài),如框604處所示。 在一些示例中,多層次選擇器組件被順序地執(zhí)行以確定對用戶數據中用戶的聊天語句的按情緒定制的回答。判決框606和框608示出每個選擇器組件(技能選擇器224、FAQ選擇器226、知識庫選擇器228、專家選擇器230、主動調查232、因域而異的選擇器234、內容健康web選擇器236、RNN答案選擇器238、以及通用答案選擇器240)被順序執(zhí)行—有時就以所列出的順序執(zhí)行—直到組件之一提供了一聊天回答為止。在一些示例中,當某一組件生成一回答時,選擇器組件停止被執(zhí)行(例如當FAQ選擇器226生成一回答時,組件236-240不運行),生成的回答作為按情緒定制的回答被傳送回客戶機計算設備100,如框610處所示??蛻魴C計算設備100然后可向用戶呈現該按情緒定制的回答,如框612處所示。
圖7是用于客戶機計算設備100上聊天對話702的用戶界面700的示圖。所描繪的聊天對話可被呈現在計算設備100的屏幕上,該屏幕帶有向正在響應性地提供聊天語句716-720的兒童用戶呈現文本聊天回答706-714的虛擬化身或助手704(示為泰迪熊)。其他示例可通過電子玩具(例如真是的泰迪熊)的揚聲器、通過汽車的揚聲器、或者在任何其他計算設備的呈現組件上可聽地呈現該聊天對話702。
看聊天對話702,助手704向兒童主動提供問候706以及調查問題708,以便開始對話。兒童對該問題的回答716包括用戶簡檔數據(指示出兒童的名字“Bin”的聊天語句),該簡檔數據可被傳送并與用于該兒童的新的或現有的用戶簡檔存儲在一起。在該兒童提供了他的名字之后,助手704以激動語句710回答,如感嘆號所指示的那樣,然后詢問另一調查問題以收集附加信息來構建兒童的用戶簡檔。這種來回調查可繼續(xù)直到該兒童的用戶簡檔被構建為止或者直到該兒童開始給出針對具體任務或帶有特定情緒的語句為止。如所示,一旦該兒童在語句718中提供了他的年齡,聊天引擎就識別出該兒童是不安的,并在回答712中詢問該兒童怎么了。情緒檢測和對應的聊天回答選擇可由先前討論的情緒檢測模塊214、回答選擇模塊218以及回答學習模塊222來執(zhí)行。在被詢問了兒童為何悲傷之后,該兒童以他悲傷的原因進行回答,即他的狗丟了。
聊天引擎服務器202的技能選擇器224識別出專家或許可能有幫助,并因此生成并提供指示該兒童聯系他的父親以尋求幫助的聊天回答714。該聊天對 話702然后可繼續(xù),且聊天回答可由聊天引擎通過本文所討論的不同選擇器組件224-240選擇,并且基于所選擇的回答轉換或符合兒童的情緒狀態(tài)的能力(例如由回答學習模塊222對回答進行分級來確定)來被挑選供呈現給兒童。
其他示例
一些示例針對用于提供情緒智能聊天對話的系統(tǒng)、方法和計算機可讀介質。配置有存儲器以及一個或多個處理器的聊天引擎服務器,所述存儲器具有用于檢測從呈現聊天對話的客戶機計算設備接收到的用戶數據中的情緒的指令,所述一個或多個處理器被配置成執(zhí)行所述指令以:檢測所述用戶數據中的聊天語句,從用戶數據確定所述用戶的情緒狀態(tài),執(zhí)行一系列回答選擇器組件以確定對所述聊天語句的一個或多個回答,基于所述用戶的所述情緒狀態(tài)以及所述一個或多個回答,標識一按情緒定制的聊天回答以提供給所述用戶,以及將所述按情緒定制的聊天回答傳送給所述客戶機計算設備用于呈現給所述用戶。
一些示例針對操作一聊天引擎以及通過執(zhí)行若干可執(zhí)行操作來向用戶提供按情緒定制的聊天回答。用戶數據是從與聊天引擎交互的用戶接收的;用戶數據包括來自用戶的聊天語句。基于所述用戶數據的所述用戶的情緒狀態(tài)被標識。基于所述用戶數據的所述用戶的聊天語句被標識。一系列回答選擇器組件被執(zhí)行以基于所述用戶的所述情緒狀態(tài)來確定按情緒定制的聊天回答,所述按情緒定制的聊天回答被傳送給所述客戶機計算設備以供呈現給所述用戶。
一些示例針對通過以下操作向客戶機計算設備上的用戶提供按情緒定制的聊天對話。包括用戶的聊天語句的用戶數據被接收。基于所述聊天語句,所述用戶的情緒狀態(tài)被標識。一系列回答選擇器組件被執(zhí)行以確定對所述聊天語句的一個或多個潛在聊天回答。所述潛在聊天回答能轉換或保持所述用戶的情緒狀態(tài)的可能性被計算。基于所計算出的可能性,一按情緒定制的聊天回答被選擇。所選擇的按情緒定制的聊天回答被傳送給所述客戶機計算設備以供呈現給所述用戶。
作為本文所述的其他示例的替代或補充,一些示例包括以下的任何組合:
執(zhí)行技能選擇器,所述技能選擇器被配置成確定對所述聊天語句的 回答要求預定義技能;
執(zhí)行FAQ選擇器,所述FAQ選擇器被配置成確定所述聊天語句正在詢問與提供所述聊天對話的聊天引擎有關的特定問題,以及生成包括關于所述聊天引擎的特定信息的回答;
執(zhí)行知識庫選擇器,所述知識庫選擇器被配置成訪問與目標用戶有關的信息的基于知識的索引,以及生成包括來自所述基于知識的索引的信息的回答;
執(zhí)行專家選擇器組件,所述專家選擇器組件被配置成生成推薦對專家的指定的回答;
執(zhí)行主動調查,所述主動調查被配置成生成用于使所述用戶參與以收集額外的聊天語句的調查回答;
執(zhí)行因域而異的選擇器,所述因域而異的選擇器配置成基于所述用戶的行為模式來生成回答;
執(zhí)行內容健康web選擇器,所述內容健康web選擇器被配置成基于因web域而異的數據或問題與答案對來生成內容健康的回答;
執(zhí)行RNN答案選擇器,所述RNN答案選擇器被配置成使用RNN過程來生成回答;
順序地執(zhí)行以下的回答選擇器組件:被配置成確定對所述聊天語句的回答要求預定義技能的技能選擇器,然后是被配置成確定所述聊天語句正在詢問與提供所述聊天對話的聊天引擎有關的特定問題,以及生成包括關于所述聊天引擎的特定信息的回答的FAQ選擇器,然后是被配置成訪問與目標用戶有關的信息的基于知識的索引,以及生成包括來自所述基于知識的索引的信息的回答的知識庫選擇器,然后是被配置成生成推薦對專家的指定的回答的專家選擇器組件;
基于所述用戶的所述情緒狀態(tài)確定對所述一個或多個回答的一個或多個回報,以及基于所述回報來選擇按情緒定制的聊天回答的可執(zhí)行指令;
基于所述一個或多個回答能在所述用戶中創(chuàng)建情緒轉換或保持所述用戶的情緒狀態(tài)的可能性來計算分級的可執(zhí)行指令;以及
生成基于預定義技能的第一可能聊天回答,生成特定于所述聊天引擎的第二可能聊天回答,生成包括從一web源收集的信息的第三可能聊天回答,生成指示出要聯系的專家的第四可能聊天回答,生成包括一調查問題的第五可能聊天回答,生成基于所述用戶的行為模式的第六可能聊天回答,生成包括因域而異的web數據的內容健康版本的第七可能聊天回答,以及生成包括用于回答所述用戶的所述聊天語句的通用答案的第八可能聊天回答。
盡管已經按照各種示例以及它們相關聯的操作描述了本公開的各方面,但是本領域技術人員將理解來自任何數量的不同示例的操作的組合也在本公開的各方面的范圍內。
示例性操作環(huán)境
盡管結合一示例性計算設備進行了描述,但本公開的各示例能夠用眾多其它通用或專用計算系統(tǒng)環(huán)境、配置或設備來實現??蛇m用于本公開的各方面的公知的計算系統(tǒng)、環(huán)境和/或配置的示例包括,但不限于:智能電話、移動平板、移動計算設備、個人計算機、服務器計算機、手持式或膝上型設備、多處理器系統(tǒng)、游戲控制臺、基于微處理器的系統(tǒng)、機頂盒、可編程消費電子產品、移動電話、具有可穿戴或配件形狀因子(例如,手表、眼鏡、頭戴式耳機或耳塞)的移動計算和/或通信設備、網絡PC、小型計算機、大型計算機、包括上面的系統(tǒng)或設備中的任何系統(tǒng)或設備的分布式計算環(huán)境等等。這樣的系統(tǒng)或設備可以以任何方式來接受來自用戶的輸入,包括來自諸如鍵盤或指點設備之類的輸入設備、通過姿勢輸入、鄰近度輸入(諸如通過懸浮)和/或通過語音輸入。
可以在由一臺或多臺計算機或其他設備以軟件、固件、硬件或其組合來執(zhí)行的諸如程序模塊之類的計算機可執(zhí)行的指令的一般上下文中描述本公開的各示例。計算機可執(zhí)行指令可以被組織成一個或多個計算機可執(zhí)行的組件或模塊。一般而言,程序模塊包括但不限于,執(zhí)行特定任務或實現特定抽象數據類型的例程、程序、對象、組件,以及數據結構??梢岳萌魏螖盗康倪@樣的組件或模塊以及它們的任何組織來實現本公開的各方面。例如,本公開的各方面不限于附圖中所舉例說明并且在此處所描述的特定計算機可執(zhí)行指令或特定 組件或模塊。本公開的其他示例可以包括具有比此處所示出和描述的功能更多或更少功能的不同的計算機可執(zhí)行指令或組件。在涉及通用計算機的示例中,在被配置成執(zhí)行本文所述的指令之時,本公開的各方面將通用計算機變換成專用計算設備。
示例性計算機可讀介質包括閃存驅動器、數字多功能盤(DVD)、緊致盤(CD)、軟盤以及磁帶盒。作為示例而非限制,計算機可讀介質包括計算機存儲介質和通信介質。計算機存儲介質包括以用于存儲諸如計算機可讀指令、數據結構、程序模塊或其它數據的信息的任何方法或技術實現的易失性與非易失性、可移動與不可移動介質。計算機存儲介質是有形的,且與通信介質互斥。計算機存儲介質以硬件實現,并排除載波和傳播信號。用于本公開的目的的計算機存儲介質不是信號本身。示例性計算機存儲介質包括硬盤、閃存驅動器和其它固態(tài)存儲器。作為對比,通信介質通常在諸如載波或其他傳輸機制等已調制數據信號中體現計算機可讀指令、數據結構、程序模塊或其他數據,并包括任何信息傳遞介質。
本文所例示并描述的示例以及本文沒有具體描述但是屬于本公開的各方面的范圍內的示例構成了用于向用戶呈現情緒智能聊天引擎的示例性手段。例如,圖2和3中所描述的元素,諸如在被編碼以執(zhí)行圖4和5中所例示的操作時,構成了用于以下的示例性手段:檢測用戶數據中的聊天語句以及基于用戶輸入確定所述用戶的情緒狀態(tài);執(zhí)行一系列回答選擇器組件以基于所述用戶的所述情緒狀態(tài)確定對所述聊天語句的按情緒定制的聊天回答;和/或計算潛在的聊天回答能轉換或保持所述用戶的所述情緒狀態(tài)的可能性。
本文所例示并描述的本公開的各示例中的操作的執(zhí)行或完成順序并非是必要的,而是在各種示例中可按不同的順序方式來被執(zhí)行。例如,考慮了在某一個操作之前、同時、或之后執(zhí)行或完成另一個操作也在本公開的各方面的范圍之內。
當介紹本公開的各方面的元素或其示例時,冠詞“一”、“一個”、“該”、“所述”旨在表示有元素中的一個或多個。術語“包括”、“包含”、以及“具有”旨在是包含性的,并表示除所列出的元素以外可以有額外的元素。術語“示例性”旨在表示“……的一示例”。短語“下述的一個或多個:A、B和C”是指“至少一個A 和/或至少一個B和/或至少一個C”。
已經詳細地描述了本公開的各方面,顯然,在不偏離所附權利要求書所定義的本公開的各方面的范圍的情況下,可以進行各種修改和變化。在不偏離本公開的各方面的范圍的情況下,可以在上面的構造、產品以及方法中作出各種更改,意圖是上面的描述中所包含的以及各附圖中所示出的所有主題都應該解釋為說明性的,而不是限制性的。