TWI676902B - 使用聊天機器人來分析對話內容的方法與系統 - Google Patents
使用聊天機器人來分析對話內容的方法與系統 Download PDFInfo
- Publication number
- TWI676902B TWI676902B TW107103424A TW107103424A TWI676902B TW I676902 B TWI676902 B TW I676902B TW 107103424 A TW107103424 A TW 107103424A TW 107103424 A TW107103424 A TW 107103424A TW I676902 B TWI676902 B TW I676902B
- Authority
- TW
- Taiwan
- Prior art keywords
- intent
- response
- state
- link
- function
- Prior art date
Links
Landscapes
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一種使用聊天機器人來分析對話內容的方法與系統,其中,聊天機器人係與分析裝置、意圖訓練語句庫、回應訓練語句庫之協作來分析其與使用者的對話內容。藉此,在無需具備許多專業知識及花費大量時間的情況下,完成其所欲進行的資料研究任務。
Description
本發明係關於一種分析對話內容的技術,特別是指一種使用聊天機器人來分析對話內容的方法與系統。
在凡事都講求大數據的資訊時代,人們取得資料的難度比以往容易了許多,因此收集大量資料並加以儲存不再是特定少數人才能做的事情。
雖然,大量資料的收集不再是件難事,但是要對於如此大量且資料型態不同(如:資料格式不一樣、資料欄位不一樣)的資料進行整理、分析、研究是很不容易的。姑且不說這樣繁雜的整理、分析、研究任務對於一般人而言是極具難度的,即便是對於專業資料分析師而言,也是需要花費許多時間。更別說要完成一個完整的分析流程,分析者還需要進行根據分析的問題去選擇適當的演算法、調整模型參數、產生分析報表、解釋分析結果等步驟。
基於前述問題,著實有必要提供一有效的智能型分析方法,能有效協助想要進行資料整理、分析、研究的使用
者能在無需具備許多專業知識及花費大量時間的情況下,完成其所欲進行的資料研究任務。
基於先前技術所存在的問題,本發明揭示了使用聊天機器人來分析對話內容的方法與系統。相較於先前技術,本發明之一實施例揭示了利用聊天機器人與使用者進行溝通,以了解使用者所欲研究的主題與資料。爾後,智能地進行資料整理與分析、並將分析結果提供給使用者,來提升使用者在進行主題研究與分析問題時的效率。
本發明之一實施例提供了一種使用聊天機器人來分析對話內容的系統,包含:一聊天機器人裝置,該聊天機器人裝置係經配置以進行以下操作:接收一或多個輸入語句;存取一意圖訓練語句庫中的意圖訓練語句資料,以使用該等意圖訓練語句資料來分析該一或多個輸入語句,進而獲得一意圖分析結果;基於一分析裝置所提供的一系統功能之中繼資料及參數來源之中繼資料,且根據該意圖分析結果,執行該系統功能以分析該一或多個輸入語句,進而產生一對話回應內容;存取一回應訓練語句庫中的回應訓練語句資料,以使用該等回應訓練語句資料將該對話回應內容轉換為一輸出回應。
在另一實施例中,該聊天機器人裝置包含:一意圖語意模組,其分析該一或多個輸入語句以獲得該意圖分析結果;一自然語言處理模組,其係經配置以自該意圖語意模組接收該一或多個輸入語句,以分析該一或多個輸入語
句,進而獲得一語意分析結果;其中,該意圖語意模組根據該意圖分析結果及該語意分析結果來更新一狀態鏈結表,該狀態鏈結表記錄當前分析過程的鏈結狀態;一系統功能執行模組,其比對該狀態鏈結表與該系統功能之中繼資料以決定是否執行該分析裝置所提供的該系統功能,進而分析該一或多個輸入語句以產生該對話回應內容,且將該對話回應內容傳送至該自然語言處理模組,其中,該自然語言處理模組基於該對話回應內容產生一或多個回覆語句;及一回應模組,其根據該等回應訓練語句資料以將該一或多個回覆語句轉換為該輸出回應。
在另一實施例中,該意圖語意模組包含:一意圖訓練單元,其將一詞彙型多元分類演算法應用於該意圖訓練語句庫中的意圖訓練語句資料以建構一意圖模型;一意圖轉換單元,其將該參數來源之中繼資料轉換為一意圖影響表;及一意圖語意分析單元,其使用該意圖模型分析該一或多個輸入語句以獲得該意圖分析結果,且使用該意圖影響表以更新該狀態鏈結表。
在另一實施例中,該系統功能執行模組包含:一功能轉換單元,其將該系統功能之中繼資料轉換為一狀態轉換表,該狀態轉換表記錄執行該系統功能所需要滿足的鏈結狀態;一功能執行單元,其從該狀態鏈結表得知目前的鏈結狀態,及使用該狀態轉換表以確認是否需要執行該系統功能,若是,該功能執行單元執行該系統功能;及一功能執行追溯堆疊,其記錄該功能執行單元執行該系統功能之
過程。
在另一實施例中,該回應模組包含:一回應訓練單元,其將一時序型語句生成演算法應用於該回應訓練語句庫中的資料,以產生一回應模型;及一回應產生單元,其根據該回應模型,並基於該狀態鏈結表,產生該輸出回應。
在另一實施例中,該系統功能之中繼資料包含以下中之一者或多者:該系統功能之種類、執行該系統功能之所需參數、以及執行該系統功能後的回傳值。
在另一實施例中,該參數來源之中繼資料包含執行該系統功能之所需參數及/或該等所需參數的參數來源。
在另一實施例中,該執行該系統功能來分析該一或多個輸入語句之操作包含以下中之一者或多者:針對該一或多個輸入語句進行特徵分析、針對該一或多個輸入語句進行演算法驗證、針對該一或多個輸入語句進行模型佈署、及針對該對話回應內容進行預測。
在另一實施例中,該時序型語句生成演算法包含以下中之一者或多者:序列對序列遞迴神經網路(sequence to sequence RNN)、遞迴神經網路語言模型(Recurrent Neural Network Language Model,RLM)、動態情境生成模型(Dynamic-Context Generative Model,DCGM)、或階層式遞迴編解碼器(Hierarchical Recurrent Encoder-Decoder,HRED)。
本發明之再一實施例亦提供一種使用聊天機器人來分析對話內容的方法,包含以下步驟:接收一或多個輸入語
句;執行一系統功能以分析該一或多個輸入語句,進而產生一對話回應內容,包含:分析該一或多個輸入語句以獲得一意圖分析結果及一語意分析結果;根據該意圖分析結果及該語意分析結果以更新一狀態鏈結表,該狀態鏈結表記錄當前分析過程的鏈結狀態;及比對該狀態鏈結表與該系統功能之中繼資料以決定是否執行該分析裝置所提供的該系統功能,進而分析該一或多個輸入語句以產生該對話回應內容。
應理解,以上描述的標的可實施為電腦控制的設備、電腦程式、計算系統,或作為製品,諸如,電腦可讀取儲存媒體。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明。在以下描述內容中將部分闡述本發明之額外特徵及優點,且此等特徵及優點將部分自所述描述內容顯而易見,或可藉由對本發明之實踐習得。本發明之特徵及優點借助於在申請專利範圍中特別指出的元件及組合來認識到並達到。應理解,前文一般描述與以下詳細描述兩者均僅為例示性及解釋性的,且不欲約束本發明所主張之範圍。
1‧‧‧使用者裝置
2‧‧‧聊天機器人
3‧‧‧分析裝置
4‧‧‧意圖訓練語句庫
5‧‧‧回應訓練語句庫
6‧‧‧系統功能之中繼資料
7‧‧‧參數來源之中繼資料
21‧‧‧意圖語意模組
22‧‧‧狀態鏈結表
23‧‧‧系統功能執行模組
24‧‧‧自然語言處理模組
25‧‧‧回應模組
211‧‧‧意圖訓練單元
212‧‧‧意圖模型
213‧‧‧意圖轉換單元
214‧‧‧意圖影響表
215‧‧‧意圖語意分析單元
231‧‧‧功能轉換單元
232‧‧‧狀態轉換表
233‧‧‧功能執行單元
234‧‧‧功能執行追溯堆疊
251‧‧‧回應訓練單元
252‧‧‧回應模型
253‧‧‧回應產生單元
S100~S1100‧‧‧步驟
第1圖為本發明之聊天機器人的操作環境示意圖;第2圖為本發明之聊天機器人的系統架構示意圖;第3圖為本發明之一實施例的意圖語意模組架構圖;第4圖為本發明之一實施例的系統功能執行模組架構
圖;第5圖為本發明之一實施例的回應模組架構圖;及第6圖為本發明之使用聊天機器人來分析對話內容的示意流程圖。
以下藉由特定的具體實施形態說明本發明之實施方式,熟悉此技術之人士可由本說明書所揭示之內容輕易地了解本發明之其他優點與功效,亦可藉由其他不同的具體實施形態加以施行或應用。
現在參閱第1圖,其係本發明之聊天機器人的操作環境示意圖。
其中,聊天機器人(亦可稱為聊天機器人裝置)2可經配置以和使用者裝置1、分析裝置3、意圖訓練語句庫4、回應訓練語句庫5進行通訊。另外,聊天機器人2亦可經配置以存取系統功能之中繼資料6和參數來源之中繼資料7。
聊天機器人2藉由與分析裝置3通訊,當使用者透過使用者裝置1與聊天機器人2互動時,聊天機器人2可將互動內容傳送給分析裝置3進行分析。
另外,聊天機器人2可使用意圖訓練語句庫4中的資料以分辨使用者輸入語句之意圖。而且,藉由使用系統功能之中繼資料6與參數來源之中繼資料7,聊天機器人2可以改變鏈結狀態及釐清對話參數,從而執行分析裝置3所提供之系統功能以分析使用者輸入語句,進而產生對話回應內容。之後,聊天機器人2可使用回應訓練語句庫5
中的資料以將對話回應內容轉換為與使用者對話時的輸出回應。
在一實施例中,聊天機器人2可以與各種使用者裝置1通訊以完成對話內容的分析,其中使用者裝置1包含但不限於桌上型電腦、筆記型電腦、智能手機、家用電話。因此,即使是肢體障礙無法操作鍵盤滑鼠的人也可以使用無鍵盤滑鼠之使用者裝置1來與聊天機器人2進行對話。
本領域具通常知識者應瞭解,聊天機器人2可以依照軟體、硬體、及韌體的方式來實施,包括但不限於系統、裝置、常式、程式、元件、資料結構及執行特定任務或實施特定抽象資料類型之其他類型的結構。
請參看第2圖,其係本發明之聊天機器人的系統架構示意圖。聊天機器人2可包含意圖語意模組21、狀態鏈結表22、系統功能執行模組23、自然語言處理模組24、及回應模組25。
在一實施例中,意圖語意模組21可接收來自使用者裝置1中使用者的輸入語句,並進一步分析來得到使用者的意圖分析結果。接著,意圖語意模組21可與自然語言處理模組24通訊並獲得語意分析結果,之後更新狀態鏈結表22以決定後續要產生的輸出回應。
為使聊天機器人2具有分辨意圖的能力,意圖語意模組21可存取意圖訓練語句庫4的資料。而意圖語意模組21在根據意圖分析結果來更新狀態鏈結表22中的規則時,意圖語意模組21亦會存取參數來源之中繼資料7。
在一實施例中,狀態鏈結表22可記錄當前的鏈結狀態,並根據意圖語意模組21所傳來的意圖分析結果及系統功能執行模組23的功能執行結果以改變狀態鏈結。
此外,若狀態鏈結表22中的當前狀態鏈結顯示需要更進一步釐清使用者意圖時,則回應模組25會將釐清使用者意圖的語句回應給使用者裝置1。
系統功能執行模組23透過比對狀態鏈結表22和系統功能之中繼資料6以決定是否執行對應的動作。為了提供使用者建議,系統功能執行模組23可與分析裝置3進行通訊,並將分析結果傳送至自然語言處理模組24以進行轉換,之後再由回應模組25將轉換後的內容傳送給使用者。
在一實施例中,為了分析使用者輸入語句以及將對話內容轉換成口語化語彙內容,自然語言處理模組24可將轉換後的內容傳送給意圖語意模組21、系統功能執行模組23、及回應模組25。爾後,回應模組25可根據狀態鏈結表22的鏈結狀態來產生對應的語句以回應使用者。為了產生語句,回應模組25可存取回應訓練語句庫5中的資料及自然語言處理模組24的輸出。
應注意,自然語言處理模組24可以硬體、軟體或韌體形式來實施,其可以主機、電腦裝置、手持式裝置、軟硬體模組、程式、常式、元件、資料結構等方式中之一者或二者以上之結合來呈現。
請參看第3圖,其係本發明之一實施例的意圖語意模組架構圖。
在一實施例中,意圖語意模組21係利用分類的概念,透過事先訓練好的語言模型來預測使用者意圖。其中,意圖語意模組21可包含意圖訓練單元211、意圖模型212、意圖轉換單元213、意圖影響表214、及意圖語意分析單元215。
首先,意圖訓練單元211可接收意圖訓練語句庫4中的資料,並將詞彙型多元分類演算法應用於已接收的資料以建構意圖模型212。
接著,可將意圖模型212提供給意圖語意分析單元215來進行意圖分析。而意圖轉換單元213可接收參數來源之中繼資料7,爾後將其轉換為意圖影響表214,並將意圖影響表214提供給意圖語意分析單元215。應注意,意圖影響表214描述依照系統功能之所有參數的可能來源以轉換成各種意圖所造成的狀態鏈結改變。
此外,意圖語意分析單元215收到使用者輸入的語句後,可使用意圖模型212來判斷使用者意圖,並且搭配意圖影響表214以更新狀態鏈結表22的鏈結狀態。同時,意圖語意分析單元215可呼叫自然語言處理模組24來進行語意分析決定之後輸出回應的產生及系統功能的執行。
請參看第4圖,其係本發明之一實施例的系統功能執行模組架構圖。其中,系統功能執行模組23包含功能轉換單元231、狀態轉換表232、功能執行單元233、及功能執行追溯堆疊234。
其中,功能轉換單元231可接收系統功能之中繼資料
6,然後轉換出狀態轉換表232,而狀態轉換表232可記錄執行系統功能所需要滿足的鏈結狀態。
此外,功能執行單元233從狀態鏈結表22得知目前的狀態,再透過使用狀態轉換表232以確認是否需要執行系統功能。待功能執行單元233完成執行系統功能後,可呼叫自然語言處理模組24將結果和建議轉換成口語化語彙,並將過程記錄於功能執行追溯堆疊234。如此一來,當使用者想要更改已經設定好的動作時,系統功能執行模組23能夠透過查詢功能執行追溯堆疊234的內容,得知要重新執行之系統功能,從而達成「錯誤可以隨時修改,不需要來回更正」的技術功效。
在一實施例中,使用者亦可透過口語對話來進行前述修正錯誤對話之操作,例如:直接說出「我剛剛講錯了」之類的話。
請參看第5圖,其係本發明之一實施例的回應模組架構圖。回應模組25包含回應訓練單元251、回應模型252、及回應產生單元253。
回應訓練單元251可以存取回應訓練語句庫5中之資料,其包含各種情境下可能出現的答覆語句。之後,回應訓練單元251可透過自然語言處理模組24,並採用一種時序型語句生成演算法以建立回應模型252。爾後,回應訓練單元251再將此回應模型252提供給回應產生單元253。
接著,回應產生單元253可根據狀態鏈結表22內容產生輸出回應。其中,根據鏈結強度狀態的不同,回應模型
252會產生對應的回覆語句。
以下請參閱第6圖,其係本發明之使用聊天機器人來分析對話內容的示意流程圖。
在步驟S100中,功能轉換單元231可將系統功能之中繼資料6,轉換成狀態轉換表232。
在一實施例中,系統功能之中繼資料6之內容包含但不限於分析裝置3所提供之系統功能、所需參數、以及執行完成後之回傳值。此外,轉換出來的狀態轉換表232之內容包含但不限於執行功能、執行前狀態確認條件、與執行後狀態之改變。
此外,功能轉換單元231用以將系統功能之中繼資料6轉換成狀態轉換表232的規則為:狀態轉換表232中之執行功能即為系統功能之中繼資料6中之系統功能,因此狀態轉換表232中的執行前狀態確認條件即為系統功能之中繼資料6的各參數皆已確認;狀態轉換表232中的執行後狀態之影響即為系統功能之中繼資料6的系統功能狀態改為已執行;以及其回傳值可以包括執行結果、預先評估得到的建議等。
本領域具通常知識者應瞭解:可在狀態轉換表232中加入已知的狀態改變模式,例如:在剛接觸使用者時改變為歡迎狀態,以促使聊天機器人對於使用者致上歡迎詞等。
接下來,在步驟S200中,意圖轉換單元213將參數來源之中繼資料7轉換成意圖影響表214。
在一實施例中,參數來源之中繼資料7中的參數來源
係為系統功能之中繼資料6中所列之參數可能來源。而意圖影響表214中的內容,包含各種可能的意圖分析結果,以及由意圖分析結果所造成的狀態鏈結改變。
此外,意圖影響表214可用以:在辨識出使用者部分意圖後,依據該部分意圖逐漸引導使用者去使用可執行的功能;當可以確認各參數的來源時,便滿足了狀態轉換表232中的執行前確認條件,從而可直接執行該功能;若無法確認某些參數來源時,由於存在待確認部分,因此可以提醒使用者再次確認,以便執行後續的系統功能。
舉例來說,若系統提供可使用多種演算法以進行分析功能,則此時部分參數內容為演算法。作為示例目的,系統功能之中繼資料6中的演算法包含但不限於羅吉斯迴歸、支持向量機、決策樹等分類演算法、及線性迴歸、加速失效迴歸、保序迴歸等迴歸演算法。
進一步地,當使用者想分析股市時,如果使用者僅僅想要預測會漲或會跌,則系統可選用分類演算法;而使用者若要預測股價的值,則系統可選用迴歸演算法。
另一方面,在對話過程中,除非使用者明確選擇想要使用哪一種演算法,不然可以先詢問使用者想要使用的是分類演算法還是迴歸演算法。之後,若使用者選擇的是分類種類的演算法,則可以進一步詢問其想要選擇羅吉斯迴歸、或支持向量機、或決策樹演算法;及若使用者選擇的是迴歸種類的演算法,則可以詢問其想要選擇線性迴歸、加速失效迴歸、或保序迴歸演算法。
應注意的是,根據意圖影響表214中所列不同的意圖,會造成後續選擇與決定之狀態的改變。本領域具通常知識者應瞭解,亦可在意圖影響表214中加入已知的狀態改變模式,例如:基於接收建議的意圖,造成決定的狀態改變;基於心意改變的意圖,造成決定的狀態改變;基於恢復原狀的意圖,造成決定的狀態改變;及基於結束使用的意圖,造成結束狀態的改變等。
在步驟S300中,意圖訓練單元211可使用詞彙型多元分類演算法來對意圖訓練語句庫4中的資料進行分類,以建立意圖模型212。
在一實施例中,意圖訓練語句庫4的資料包含但不限於各種意圖下可能會出現的語句。本領域具通常知識者應瞭解,可將各種意圖依意圖主題進行分類,之後再根據意圖主題於網路或線上系統先行大量蒐集關於各意圖主題的語句;或者,亦可先大量蒐集各種意圖之語句,之後再以自然語言處理(NLP,Natual Language Processing)來分析以獲得各語句的意圖主題。
另一方面,詞彙型多元分類演算法可採用以意圖作為類標(classification lable)的監督式學習(supervised learning)演算法。例如在預測階段輸入「不行,這樣不好」語句時,預測出來的類標「拒絕建議」的可能性最高,而其它類標的可能性皆相對較低。
本領域具通常知識者應瞭解,可利用詞袋(bag of words)作為特徵來訓練該詞彙型分類演算法,或直接利用
遞迴神經網路(Recurrent Neural Network,RNN)、長短期記憶神經網路(Long Short Time Memory,LSTM)等深度學習模型來完成意圖模型212之建立。
接下來,在步驟S400中,回應訓練單元251可將時序型語句生成演算法應用於回應訓練語句庫5中的資料,以產生回應模型252。
其中,回應訓練語句庫5中的資料係描述在各種情境下可能出現的答覆語句。應注意,可事先於網路或實際對話中蒐集大量的對話來建構回應訓練語句庫5。
此外,時序型語句生成演算法在訓練階段可依據訓練語句中的隱含主題及語彙間的關連,以加強特定狀態鏈結的權重。之後,在生成階段時,可以基於外部調整狀態鏈結的權重,並在考量語彙關聯取代作用的情況下,影響生成回應的結果。
本領域具通常知識者應瞭解,可使用序列對序列遞迴神經網路(sequence to sequence RNN)、遞迴神經網路語言模型(Recurrent Neural Network Language Model,RLM)、動態情境生成模型(Dynamic-Context Generative Model,DCGM)、或階層式遞迴編解碼器(Hierarchical Recurrent Encoder-Decoder,HRED)來產生回應模型252。
接下來,在步驟S500中,功能執行單元233會檢查狀態轉換表232中,哪些狀態轉換資料(項目)的執行前狀態確認條件被滿足了,就執行該些項目的系統功能。爾後,再將過程記錄於功能執行追溯堆疊234,以便將來使用者
改變心意時能回溯系統功能的執行。
接著,在步驟S600中,功能執行單元233會根據狀態轉換資料中執行後狀態之影響來更新狀態鏈結表22。
倘若在步驟S500中,狀態轉換表232中並無任何新項目之執行前狀態確認條件被滿足,則功能執行單元233不會執行任何功能;且在步驟600中,亦不會有任何狀態鏈結被更動。
另外,狀態轉換表232中各項目的執行後狀態之影響包含執行功能之回傳值(如:執行結果、預先評估得到的建議等)。且在更新狀態鏈結前,會先呼叫自然語言處理模組24以將結果和建議轉換成口語化語彙,使得在產生輸出回應時,能藉由狀態鏈結的取代性以產生口語化的回應。本領域具通常知識者應瞭解,亦可事先套用模板(template)來將數值性結果或符號性建議等轉換成口語化語彙。
接下來,於步驟S700中,回應產生單元253可根據回應模型252內容、並參照狀態鏈結表22以產生輸出回應,並透過使用者裝置1將回應傳達給使用者。
接下來,在步驟S800中,檢查狀態鏈結表22中的結束狀態來決定流程是否結束。其中,狀態鏈結表22中的結束狀態可表示使用者是否表達了要結束使用的意圖。因此,當使用者表達了要結束對話的意圖,聊天機器人可將告別語回應給使用者,再結束對話與流程。否則,會繼續執行步驟S900。
在步驟S900中,使用者可以透過使用者裝置1來輸入
語句。作為示例目的,使用者可以藉由手機裝置來語音輸入語句、透過網頁輸入文字、透過麥克風輸入聲音、以點字機或打字機輸入內容、或使用腦機介面或虛擬實境等各種使用者裝置來完成語句的輸入,其中凡不脫離本發明技藝精神之各種使用者裝置的使用皆可視為等價實施。
之後,在步驟S1000中,意圖語意分析單元215可使用意圖模型212分析輸入語句,以獲得意圖分析結果。同時,意圖語意分析單元215會呼叫自然語言處理模組24分析輸入語句,以獲得語意分析結果。
意圖分析結果可用以表示所有已知意圖中個別意圖的可能性。舉例而言,當使用者輸入「好了,沒別的事了」的語句時,該語句的意圖分析結果可能是「結束使用之意圖機率為90%;接收建議之意圖機率為8%;寒暄之意圖機率為2%;其他意圖機率為0%」。
在另一實施例中,為加強意圖分析效果,可在限定選擇性的情境下提高候選意圖的權重。例如:當聊天機器人向使用者提出「您要結束使用?還是繼續?」之詢問時,在此限定選擇性的情境下,對於提高「結束使用」意圖和「繼續」意圖的權重能獲得更佳的效果。
此外,語意分析結果可為自然語言處理對於輸入語句結構上的分析結果。以輸入語句結構上的動詞分析結果為例,在針對輸入語句「我想預測股市」進行結構分析時,可發現結構中的動詞係為「預測」。
另一方面,可使用上述意圖分析結果和語意分析結果
以更新狀態鏈結表22,藉此使得回應模組25能隨著狀態的改變而產生不同的回應,且系統功能執行模組23亦能隨著不同的狀態來執行不同的系統功能。
接下來,在步驟S1100中,意圖語意分析單元215根據上述意圖分析結果及語意分析結果以更新狀態鏈結表22。其中,意圖語意分析單元215將意圖分析結果中各種意圖的強度與意圖影響表214進行對照,來找到各種意圖造成的狀態鏈結改變,之後再根據意圖的強度來更新狀態鏈結。應注意,意圖分析結果中強度最強的意圖對於與其相關的狀態鏈結改變也最大。
此外,在步驟S1100中,選擇性的意圖會造成參數來源之選擇、決定的狀態改變。因此,倘若參數來源存在不明確用語,則意圖影響表214會通知回應產生單元253以產生可用以釐清不明確用語之回應語句;而倘若參數來源不存在不明確用語(即,用語明確),則意圖影響表214會通知功能執行單元233檢查存在哪些狀態確認條件被滿足而執行相應系統功能。
另一方面,在語意分析結果中,可藉由語彙關聯的取代作用來影響後續生成回應的用語。舉例而言,「verb:預測」形式的語彙關聯的取代會影響在後續生成回應時,傾向用「預測」來取代目前動詞,而將訓練語句庫中的回應語句「您要吃什麼嗎」及「您有想分析的問題嗎」生成如「您有想預測什麼嗎」的回應語句。
應注意的是,不論是不明確用語的釐清或是系統功能
的執行,都是由當時強度較強的狀態鏈結來發生作用;或是當強度相同時,所隨機選到的狀態鏈結。因此,聊天機器人2的對話和分析流程將因此而更具彈性,從而即便沒有事先套用固定的回應模式,但仍能選出適合的狀態鏈結。
在步驟S1100後,會回到步驟S500來進行下一輪的流程。如此一來,聊天機器人可循環式接收使用者的輸入語句、執行系統功能、及產生回應,直至最後使用者表達結束使用的意圖而造成結束狀態的改變。爾後,聊天機器人會以最後告別語作為對於使用者的回應,並於步驟S800檢查對話是否結束後,才結束此一流程。
以下列舉幾個實例來說明本發明之聊天機器人與使用者對話過程,及聊天機器人分析使用者對話內容之分析流程。作為示例而非窮舉目的,本文中僅舉一些簡單對話為例。
本領域具通常知識者應瞭解,聊天機器人與使用者實際對話內容可依不同情境而有所改變,可能比本文例示之對話內容簡單,亦可能更為複雜,然而熟習該項技藝者仍能依照本文中所揭露之方法及原則來完成不同對話內容之分析。
請參考表格1,其舉例說明使用者與聊天機器人的對話過程,其中使用者透過使用者裝置1與聊天機器人2進行對話。過程中,聊天機器人2可分析使用者的談話內容來產生相應的回應。
表格1、使用者與聊天機器人的對話過程
接著,請參考表格2,其舉例說明意圖訓練語句庫4中的意圖訓練語句,包含各種意圖下可能使用的語句。意圖訓練語句可用在步驟S300中,即意圖訓練單元211可使用意圖訓練語句庫4中的意圖訓練語句內容來建構意圖模型212。
應注意的是,有些意圖訓練語句中包含具變數性質的意圖,如:表格2中「選擇X」之意圖,其中能表示該意圖的用語有「X」、「我選X」、「X好了」等。
舉例而言,如要判斷「選擇蘋果」或「選擇香蕉」之意圖。在步驟S1000中,當意圖語意分析單元215產生意圖語意分析結果時,可將語音辨識結果為「蘋果」的可能性加上「我選蘋果」的可能性加上「蘋果好了」的可能性,對比辨識結果為「香蕉」的可能性加上「我選香蕉」的可能性加上「香蕉好了」的可能性,視何者的可能性較大以作為意圖分析的結果。
進一步地,如果將「蘋果」帶入各語句的語音辨識中,獲得可能性的總和為70%;而將「香蕉」帶入而獲得的可能性總和為30%。則表示「選擇蘋果」的意圖可能性為70%,而「選擇香蕉」的意圖可能性為30%。
上述說明僅為提供一種計算意圖可能性的方式,熟習該項技藝者可以其它方式來表示帶變數的意圖及其結果,凡其原理未脫離本發明之技藝精神者,均應視為等效實施。
接著,請參照表格3,其舉例說明回應訓練語句庫5中的回應訓練語句,包含在各種情境下可能出現的答覆語句。回應訓練語句庫5可用在步驟S400中,即回應訓練單元251可將時序型語句生成演算法應用於回應訓練語句庫5中的資料,來產生回應模型252。
請參考表格4,其舉例說明系統功能之中繼資料6,包含分析裝置3提供之系統功能、所需之參數、以及執行完
成後之回傳值。
系統功能之中繼資料6可用在步驟S100中,即功能轉換單元231可使用系統功能之中繼資料6來建立狀態轉換表232。
在一實施例中,表格4中編號為1的系統功能為「特徵分析」,在確知所使用之分析資料data的情況下,可以分析各種特徵組合與資料的相關性,因此建議使用某特徵組合features較佳。
此外,表格4中編號為2之系統功能為「演算法驗證」,在確知所使用之分析資料data、使用哪種特徵組合features、及演算法類別algorithmType的情況下,可以分
析屬於該演算法類別的各種演算法之驗證正確性,而建議使用驗證正確性最高之演算法algorithm。
表格4中編號為3之系統功能為「模型佈署」,須在確知所使用之分析資料data、使用哪種特徵組合features、演算法algorithm的情況下,才能進行功能執行,且執行後無回傳值。
表格4中編號為4之系統功能為「預測」,在確知所使用之分析資料data、使用哪種特徵組合features、演算法algorithm的情況下,執行後可以得到預測結果。
接著,請參照表格5,其舉例說明參數來源之中繼資料7,包含表格4中所列各參數的可能來源。參數來源之中繼資料7可用在步驟S200中,即輸入意圖轉換單元213可使用參數來源之中繼資料7來建立意圖影響表214。
在一實施例中,表格5中編號1~9中參數欄位為「data」的資料,其參數來源欄位用以表示資料data的參數來源。其中,可將資料data儲存在樹狀結構的子目錄中。
表格5的內容包含可用於分析股市或分析天氣的資料,其中分析股市的資料可區分為大盤或個股,而大盤資料可區分為台指期貨或台灣五十的資料。
應注意,表格5的內容僅為示例性而非限制性,參數來源之中繼資料7亦可以非樹狀結構的其他資料結構方式來進行儲存。熟習該項技藝者仍可依循本原則瞭解用以儲存參數來源之中繼資料7的其他資料結構,凡其原理未脫離本發明之技藝精神者,均應視為等效實施。
另外,表格5中編號為10~11中參數欄位為「features」的資料,其參數來源欄位用以表示特徵features的參數來源。而表格5中編號為12~15中參數欄位為「algorithmType」的資料,其參數來源欄位用以表示演算法類別algorithmType的參數來源。
以股市分析為例,由口語「預測會漲或會跌」或「預測股價」,可以推斷應該選用分類演算法或迴歸演算法。但
在預測天氣時,則可由不同類型的口語,如:「預測天氣型態」或「預測氣溫值」等,來推斷應該選用分類演算法或迴歸演算法。
表格5中編號16~21中參數欄位為「algorithm」的資料,其參數來源欄位用以表示演算法algorithm的參數來源。其中,以分類演算法為例,可以使用羅吉斯迴歸、支持向量機、決策樹三種演算法;而以迴歸演算法而言,則可以使用線性迴歸、加速失效迴歸、保序迴歸等三種演算法。
以下實施例內容可對照第6圖中使用聊天機器人來分析對話內容的流程及步驟,其簡單示例表格1中聊天機器人是如何根據使用者的談話內容來產生相應的對話內容。
在步驟S100中,功能轉換單元231可將如表格4所列系統功能之中繼資料6中的每一筆中繼資料(項目),轉換成如表格6所列之狀態轉換表232。其中,轉換操作可依照底下的(a)~(d)規則:
(a)規則:項目中之系統功能,轉換成加強狀態鏈結done:[系統功能]。
(b)規則:項目中之各參數param,轉換成須確認條件decision(param),且各條件之間為AND關係。
(c)規則:項目中回傳結果者,轉換成加強狀態鏈結result:[結果]。
(d)規則:項目中回傳建議參數param者,轉換成加強狀態鏈結suggest:[建議]、accept:([param]=建議)。
以表格4中編號為2之中繼資料為例,其系統功能欄位為「演算法驗證」。依照(a)規則,將其轉換成加強done:演算法驗證。爾後,參數data、features、algorithmType將依(b)規則,轉換成須確認條件decision(data)AND decision(features)AND decision(algorithmType)。接著,回傳驗證結果將依(c)規則,轉換成加強狀態鏈結result:[驗證結果];而回傳建議演算法algorithm則依(d)規則,轉換成加強狀態鏈結suggest:[建議演算法]、accept:(algorithm=建議演算法)。最後,即可轉換為表格6中編號為2之資料。
待所有系統功能之中繼資料6都轉換完畢後,可在表格6所示之狀態轉換表232末端再新增兩筆資料:編號5之資料-「在無任何鏈結的狀態下,加強state:welcome之鏈結,以便在對話一開始時致歡迎詞」;以及編號6之資料-「在decision(call UNDO)的條件下啟動UNDO功能,以便當使用者決定要恢復原狀時,能啟動UNDO的功能」。
接著,在步驟S200中,意圖轉換單元213可依照以下的(A)~(F)規則,來把如表格5所列之參數來源之中繼資料7轉換成如表格7所列之意圖影響表214。
(A)規則:在無其它任何條件下的最高層參數來源,依其第一層選項,建立一個「無->choose:(各第一層選項)」,且將該些第一層選項向下展開至無下一層之選項為止。
(B)規則:向下展開某一上層選項,依其下一層選項,建立一個「某上層選項->select:某上層選項、choose:(各
下一層選項)」,且將該些下一層選項向下展開至其無下一層選項為止。
(C)規則:若某選項展開後項目過多,聊天機器人無法逐項念出的情形下,改成只產生「某選項->select:某選項」,且將該些下一層選項向下展開至其無下一層選項為止。
(D)規則:展開某選項時,若其無下一層選項,則產生「某選項->decision:(param=某選項),並清除選擇param相關之鏈結」,其中param為其所屬參數。
(E)規則:將具有其它參數條件的中繼資料,依其相同參數條件下之不同參數來源以(B)規則展開,其中以該相同參數條件作為(B)規則之上層選項、該些不同參數來源作為(B)規則之各下一層選項。
(F)規則:將具有口語化條件的中繼資料,依其相同條件下之不同口語化條件以(B)規則展開,其中以該相同條件作為(B)規則之上層選項、該些不同口語化條件作為(B)規則之各下一層選項。
以表格5為例,符合(A)規則者,無其它任何條件下的最高層參數來源為data參數,其第一層選項分別為「股市」和「天氣」,因此產生了表格7中編號為1的資料-由無意圖加強狀態鏈結choose:(股市、天氣)。
接下來,依(B)規則將「股市」選項向下展開,分別得到表格7中編號為2~7的資料,其中編號為2及3的資料係依循(B)規則向下展開;編號為4及5的資料係依循(D)
規則,其無下一層選項且其所屬參數為data;其中編號為6的資料係依循(C)規則,個股項目上千支以至於聊天機器人無法逐項唸出;編號為7的資料代表為每支個股stock皆依循(D)規則建立了一筆資料。
接下來,依(B)規則將「天氣」選項向下展開,分別得到表格7中編號為8~11的資料,其中編號為11的資料代表為每個縣市city皆依循(D)規則建立了一筆資料。
接下來,依(E)規則將表格5中編號為10之中繼資料展開為表格7中編號為12的資料,並繼續將features向下展開為表格7中編號為13的資料,其代表每種股市欄位組合皆建立了一筆資料。
接下來,依(E)規則將表格5中編號為11之中繼資料展開為表格7中編號為14的資料,並繼續將features向下展開為表格7中編號為15的資料,其代表為每種天氣欄位組合皆建立了一筆資料。
接下來,依(F)規則將表格5編號11及12之中繼資料展開為表格7編號17及18的規則,並相同地依(F)規則將表格5編號13及14之中繼資料展開為表格7編號19及20的規則。
接下來,依(E)規則將表格5中編號為15~17之中繼資料展開為表格7中編號為21的資料,並將各分類演算法繼續向下展開為編號為22~24的資料。
接下來,依(E)規則將表格5中編號為18~20之中繼資料展開為表格7中編號為25的資料,並將各迴歸演算法
繼續向下展開為編號為26~28的資料。
最後,須在意圖影響表214的最後加上如編號為29~33所示的資料:「接收建議=>decision:[accept]」、「拒絕建議=>無」、「改變心意=>decision:[change]」、「恢復原狀=>decision:(call UNDO)」、「結束使用=>state:bye」。
熟習該項技藝者應瞭解,表格7中編號為1~28的資料係用以促使回應產生單元253持續產生釐清意圖的回應,直到意圖明確且無其它分歧為止,此時則促使回應產生單元253產生完成決定的回應。
而表格7中編號為29~33的資料係用以促使回應產生單元253產生對應使用者表示接收建議、拒絕建議、改變心意、恢復原狀、結束使用等意圖時之回應。
接下來,在步驟S300中,意圖訓練單元211可使用詞彙型多元分類演算法來對如表格2所示的意圖訓練語句庫4內容進行分類,以建立意圖模型212。其中,詞彙型多元分類演算法可採用以意圖作為之類標(classification lable)的監督式學習(supervised learning)演算法。舉例而言,在預測階段輸入「不行,這樣不好」語句時,預測出來之類標「拒絕建議」的可能性最高,而其它類標之可能性皆相對較低。
熟習該項技藝者可利用詞袋(bag of words)作為特徵來
訓練該詞彙型分類演算法,或直接利用遞迴神經網路(Recurrent Neural Network,RNN)、長短期記憶神經網路(Long Short Time Memory,LSTM)等深度學習模型來完成意圖模型212之建立。
接下來,在步驟S400中,回應訓練單元251可將時序型語句生成演算法應用於如表格3所示之回應訓練語句庫5內容,來產生回應模型252。該演算法在訓練階段會依訓練語句中的隱含主題及語彙間的關連,來加強特定狀態鏈結的權重。而在生成階段,則可以由外部調整狀態鏈結的權重,並在考量語彙關聯取代作用的情況下,來影響生成回應的結果。
請參考表格8,其為回應模型252內部狀態鏈結強度之示意表。
以表格8中編號為8~10之資料為例,由於訓練語句「請問您有想購買的特定商品嗎?」、「有好多電視節目,我不知道您喜歡哪一個?」、及「您想要複製全部的檔案嗎?還是複製某一個就好?」中含有隱含主題select及verb,在訓練階段各自使得「select:商品、verb購買」、「select:電視節目、verb:喜歡」、「select:檔案、verb:複製」的狀態鏈結被強化了。
另一方面,在生成階段,如果我們額外加強了「select:軟體、verb:安裝」的狀態鏈結。此舉,除了使得select與verb相關狀態鏈結的影響力較高之外,由於狀態鏈結強度亦較容易將「軟體」代入原本select關聯的語彙中,並將「安裝」代入原本verb關聯的語彙中,因而產生取代作用。最後,將生成如「有好多軟體,請問您想要安裝全部,還是某一個就好?」之回應。
熟習該項技藝者可用序列對序列遞迴神經網路(sequence to sequence RNN)、遞迴神經網路語言模型
(Recurrent Neural Network Language Model,RLM)、動態情境生成模型(Dynamic-Context Generative Model,DCGM)、或階層式遞迴編解碼器(Hierarchical Recurrent Encoder-Decoder,HRED)來作為時序型語句生成演算法。
接下來,在步驟S500中,功能執行單元233發現一開始的狀態執行功能中並無任何流程狀態,因此功能執行單元233確認係符合表格中6編號為5的資料;並在步驟S600中,功能執行單元233更新了狀態鏈結表22,並依照該筆資料來加強state:welcome的狀態鏈結。
接著,在步驟S700中,回應產生單元253依照狀態鏈結表22內容來產生輸出回應。
回應產生單元253因應於目前狀態鏈結「state:welcome」強度較高,而得知表格8中編號為1、2、3、4的語句「有什麼我可以協助的嗎?」、「您好,請問您想做什麼?」、「您想分析什麼?」、「您有什麼想預測的嗎?」其影響力也較高。因此,回應產生單元253可產生如表格1中編號為1的歡迎句「有什麼我可以協助的嗎?」來作為回應。
在步驟S800中,倘若並未檢查到對話結束的狀態,則對話會繼續。
在步驟S900中,使用者可透過使用者裝置1來輸入對話內容。例如:使用者可透過使用者裝置1來輸入如表格1中編號為2的輸入語句「我想預測股市。」
接下來,在步驟S1000中,意圖語意分析單元215可
產生意圖語意分析結果。舉例而言,當使用者輸入語句「我想預測股市」時,意圖語意分析單元215可運用意圖模型212來分析該語句。
此時,與語句「我想預測股市」相關的語句為「我想預測股市」、「分析一下股票市場」、「想預測股市會漲還是會跌」、「我想預測明天會不會下雨」、「分析這幾天的天氣」。
可看出,大部分的相關語句是屬於表格2中「分析股市」意圖之範疇,只有少部分是屬於表格2中「分析天氣」意圖之範疇,因此得知「分析股市」的意圖可能性最高;「分析天氣」的意圖可能性次高;而其它的意圖可能性則幾乎為0%。
此外,意圖語意分析單元215亦會呼叫自然語言處理模組24。藉由自然語言處理模組24,可以分析出「我想預測股市」的語句結構中之動詞為「預測」。
接下來,在步驟S1100中,意圖語意分析單元215根據意圖分析結果結果來更新狀態鏈結表22。其中,意圖可能性最高的「分析股市」使得表格7中編號為2、12、16的狀態鏈結欄位「select:股市、choose:(大盤、個股)」、「select:特徵欄位、choose(開盤價、最高價、最低價、收盤價、成交筆數、成交金額、五日均價、二十日均價、五日均量、二十日均量)」、及「choose:(預測會漲或會跌、預測股價)」被強化了。此外,依據前述語意分析結果,亦針對「verb:預測」的狀態鏈結進行強化。
因此,聊天機器人2下一次的回應可能是關於要釐清選擇大盤或個股;或是要釐清特徵欄位;或是要釐清選擇預測漲跌或股價。
倘若此時選擇大盤或個股的狀態鏈結比較強;或是選擇大盤或個股的狀態鏈結與其他狀態鏈結的強度相當,但隨機選取到選擇大盤或個股的狀態鏈結時,則下一次的回應會傾向釐清選擇大盤或個股。
接著,在步驟S500中,由於沒有任何新的項目之執行前狀態確認條件符合表格6中的執行前狀態確認條件,因此未執行任何功能。而且在步驟S600中,亦無任何狀態鏈結被更動。
接下來,在步驟S700中,回應產生單元253因目前狀態鏈結「choose:(大盤、個股)、verb:預測」的強度較高,因此受到表格8中編號為5、6、7的語句「請問您想吃飯還是聊天?」、「您要塗紅色還是綠色?」、「水果有香蕉和蘋果,您想吃哪一個?」之影響較大。加上「choose:(大盤、個股)、verb:預測」之取代性,回應產生單元253產生如表格1中編號為3的輸出回應「請問您想預測大盤還是個股?」。
接下來,在步驟S800中,並未檢查到對話結束狀態而流程繼續。而在步驟S900中,使用者透過使用者裝置1來輸入如表格1中編號為4所示的語句「個股」。
之後,在步驟S1000中,意圖語意分析單元215使用意圖模型212來分析該輸入語句「個股」。此處,「choose:(大
盤、個股)」提高了帶變數意圖「選擇X」的權重,其中X為「大盤」或「個股」。
經過語音辨識,使用者輸入語句為「大盤」的可能性加上「我選大盤」的可能性加上「大盤好了」的可能性為20%。使用者輸入語句為「個股」的可能性加上「我選個股」的可能性加上「個股好了」的可能性為80%。因此,得到「選擇大盤」的意圖為20%;「選擇個股」的意圖為80%;而其它意圖則為0%。
接下來,在步驟S1100中,意圖語意分析單元215依照上述意圖分析結果來更新狀態鏈結表22。其中,意圖可能性最高的「選擇個股」使得表格7中編號為6的「select:個股」狀態鏈結被強化了。
接下來,在步驟S500中,由於沒有任何新的項目之執行前狀態確認條件符合表格6中的執行前狀態確認條件,因此功能執行單元233並未執行任何功能。且在步驟S600中,亦無任何狀態鏈結被更動。
接下來,在步驟S700中,由於目前狀態鏈結「select:個股、verb:預測」的強度較高,回應產生單元253受到表格8中編號為8、9、10語句「請問您有想購買的特定商品嗎?」、「有好多電視節目,我不知道您喜歡哪一個?」、「您想要複製全部的檔案嗎?還是複製某一個就好?」之影響較深。此外,加上「select:個股、verb:預測」之取代性,回應產生單元253產生如表格1中編號為5的輸出回應「請問您有想預測的特定個股嗎?」。
接下來,在步驟S800中,並未檢查到對話結束狀態而流程繼續。
在步驟S900中,使用者透過使用者裝置1輸入如表格1中編號為6的輸入語句「中華電信」。
接著,在步驟S1000中,意圖語意分析單元215使用意圖模型212來分析該輸入語句「中華電信」。此處,「select:個股」提高了帶變數意圖「選擇X」的權重,其中X為各個股的名稱。
經過語音辨識,使用者輸入語句為「中華電信」的可能性加上「我選中華電信」的可能性加上「中華電信好了」的可能性為60%,而其它個股名稱的可能性皆比60%更低。因此,「選擇中華電信」的意圖可能性最高,而「選擇其它個股」的意圖可能性及其他種類意圖的可能性皆較低。
接下來,在步驟S1100中,意圖語意分析單元215依照上述意圖分析結果來更新狀態鏈結表22,其中意圖可能性最高的「選擇中華電信」使得表格7中編號為7的「decision:(data=中華電信)」狀態鏈結被強化了,並清除了原本待選擇的狀態鏈結。釐清了個股後,此時尚有強度較強的釐清特徵欄位、釐清選擇預測漲跌或股價等相關的狀態鏈結。
接下來,在步驟S500中,由於「decision:(data=中華電信)」滿足了表格6中編號為1的執行前狀態確認條件,功能執行單元233執行「特徵分析」的執行功能,並得到特徵分析的結果和建議。之後,再將「特徵分析」記錄於
功能執行追溯堆疊234,並呼叫自然語言處理模組24將結果和建議轉換成口語化語彙。
在步驟S600中,依前述規則來強化「done:特徵分析、result:開盤價、最高價、最低價、收盤價、成交筆數、成交金額、五日均價、二十日均價、五日均量、二十日均量,這些特徵欄位的相關係數都很高、suggest:採用全部特徵欄位、accept:(features=ALL)」狀態鏈結的強度。
接下來,在步驟S700中,由於目前狀態鏈結「decision:(data=中華電信)、done:特徵分析、result:開盤價、最高價、最低價、收盤價、成交筆數、成交金額、五日均價、二十日均價、五日均量、二十日均量,這些特徵欄位的相關係數都很高、suggest:採用全部特徵欄位」的強度較高,回應產生單元253受到表格8中編號為11、12、13、14、15、16、17語句「好的,就這麼辦。」、「我會用油漆來上色。」、「經過分析,九點左右會開始塞車。您要提早出門嗎?」、「我們事先做了一下比較,走省道會比高速公路快。」、「打掃完成,清出三包垃圾。」等的影響較深。
之後,加上「verb:預測、done:特徵分析、result:開盤價、最高價、最低價、收盤價、成交筆數、成交金額、五日均價、二十日均價、五日均量、二十日均量,這些特徵欄位的相關係數都很高、suggest:採用全部特徵欄位」之取代性,回應產生單元253產生了如表格1編號為7所示的輸出回應「好的。經過特徵分析,開盤價、最高價、最低
價、收盤價、成交筆數、成交金額、五日均價、二十日均價、五日均量、二十日均量,這些特徵欄位的相關係數都很高。您要採用全部特徵欄位嗎?」
接下來,在步驟S800中,並未檢查到對話結束狀態而流程繼續。接下來,在步驟S900中,使用者透過使用者裝置1來輸入表格1中編號為8的輸入語句「試試看」。
接著,在步驟S1000中,意圖語意分析單元215使用意圖模型212來分析該輸入語句「試試看」。由於受到表格2中「我試試看」等語句的影響,因此,「接收建議」的意圖可能性為90%,「拒絕建議」的意圖可能性為10%,而其它意圖可能性則幾乎為0%。
之後,在步驟S1100中,意圖語意分析單元215依照上述意圖分析結果來更新狀態鏈結表22。其中,意圖可能性最高的「接收建議」加上「accept:(features=ALL)」的取代性,使得表格7中編號為29的「decision:(features=ALL)」狀態鏈結被強化。由於此時尚有強度較強的釐清特徵欄位、釐清選擇預測漲跌或股價等相關的狀態鏈結,因此倘若選擇預測漲跌或股價相關的狀態鏈結比其他狀態鏈結強,或是強度相當時,則會選取選擇預測漲跌或股價相關的狀態鏈結來處理。
接下來,在步驟S500中,由於並無任何新的項目之執行前狀態確認條件符合表格6中之執行前狀態確認條件,因此並未執行任何功能,而且,在步驟S600中,亦無任何狀態鏈結被更動。
接下來,在步驟S700中,由於目前狀態鏈結「decision:(features=ALL)、choose:(預測會漲或會跌、預測股價)」的強度較高,回應產生單元253受到表格8中編號為11、12、5、6、7之語句「好的,就這麼辦。」、「我會用油漆來上色。」、「請問您想吃飯還是聊天?」、「您要塗紅色還是綠色?」、「水果有香蕉和蘋果,您想吃哪一個?」的影響較深。加上「choose:(預測會漲或會跌、X:預測股價)」的取代性,回應產生單元253產生了表格1編號為9的輸出回應「好的。您要預測會漲或會跌,還是要預測股價?」
接下來,在步驟S800中,並未檢查到對話結束狀態而流程繼續。接下來,在步驟S900中,使用者透過使用者裝置1輸入表格1編號為10的輸入語句「預測漲跌就好了。」
接下來,在步驟S1000中,意圖語意分析單元215使用意圖模型212來分析該輸入語句「預測漲跌就好了」。此處,「choose:(會漲或會跌、X:股價)」提高了帶變數意圖「選擇X」的權重,其中X為「預測會漲或會跌」或「預測股價」。
經過語音辨識,使用者輸入語句為「預測會漲或會跌」的可能性加上「我選預測會漲或會跌」的可能性加上「預測會漲或會跌好了」的可能性為70%;使用者輸入語句為「預測股價」的可能性加上「我選預測股價」的可能性加上「預測股價好了」的可能性為30%。因此,「選擇預測
會漲或會跌」的意圖可能性最高,而「選擇預測股價」的意圖可能性及其他種類意圖的可能性皆較低。
接下來,在步驟S1100中,意圖語意分析單元215依照上述意圖分析結果來更新狀態鏈結表22。其中,意圖可能性最高的「選擇預測會漲或會跌」使得表格7中編號為17的「decision:(algorithmType=分類演算法)」狀態鏈結被強化了。加上「分類演算法」的決定,使得表格7中編號為21的「select:分類演算法、choose:(羅吉斯迴歸、支持向量機、決策樹)」狀態鏈結被強化了。
接下來,在步驟S500中,由於「decision:(data=中華電信)、decision:(features=ALL)、decision(algorithmType=分類演算法)」滿足了表格6中編號為2的執行前狀態確認條件,功能執行單元233執行了「演算法驗證」的執行功能,並得到演算法驗證的結果和建議。爾後,將「演算法驗證」記錄於功能執行追溯堆疊234,並呼叫自然語言處理模組24來將結果和建議轉換成口語化語彙。
此外,在步驟S600中,依前述規則來強化「done:演算法驗證、result:各演算法的驗證正確率如下,以支持向量機的驗證正確率74%為最高、suggest:使用支持向量機、accept:(algorithm=支持向量機)」狀態鏈結的強度。
接下來,在步驟S700中,由於目前狀態鏈結「decision:分類演算法、select:分類演算法、choose:(羅吉斯迴歸、支持向量機、決策樹)、verb:預測、done:演算法驗證、result:各演算法的驗證正確率如下,以支持向量機的驗證正確率
74%為最高、suggest:使用支持向量機」的強度較高,回應產生單元253受到表格8中編號為7、11、12、13、14、15、16、17之語句「水果有香蕉和蘋果,您想吃哪一個?」、「好的,就這麼辦。」、「我會用油漆來上色。」、「經過分析,九點左右會開始塞車。您要提早出門嗎?」、「我們事先做了一下比較,走省道會比高速公路快。」、「打掃完成,清出三包垃圾。」、「建議使用低鈉鹽來調味。」、「推薦您搭捷運板南線在台北車站下車。」等的影響較深。加上「select:分類演算法、choose:(羅吉斯迴歸、支持向量機、決策樹)、verb:預測、done:演算法驗證、result:各演算法的驗證正確率如下,以支持向量機的驗證正確率74%為最高、suggest:使用支持向量機」的取代性,回應產生單元253產生了表格1中編號為11的輸出回應「好的,我會用分類演算法來預測。分類演算法有羅吉斯迴歸、支持向量機、決策樹,我們事先做了一下演算法驗證,各演算法的驗證正確率如下,以支持向量機的驗證正確率74%為最高,您要使用支持向量機嗎?」。
接下來,在步驟S800中,並未檢查到對話結束狀態而流程繼續。而在步驟S900中,使用者透過使用者裝置1來輸入如表格1中編號為12所示的語句「好的。」。
接下來,在步驟S1000中,意圖語意分析單元215使用意圖模型212來分析該輸入語句「好的」。主要受到表格2中的「好」、「不好」、「是的」等語句的影響,得到「接收建議」的意圖可能性為90%;得到「拒絕建議」的意圖
可能性為10%;而其它意圖可能性則幾乎為0%。
接下來,在步驟S1100中,意圖語意分析單元215依照上述意圖分析結果來更新狀態鏈結表22。其中,意圖可能性最高的「接收建議」加上「accept:(algorithm=支持向量機)」的取代性,使得表格7中編號為29的「decision:(algorithm=支持向量機)」狀態鏈結被強化了。
接下來,在步驟S500中,由於「decision:(data=中華電信)、decision:(features=ALL)、decision:(algorithm=支持向量機)」滿足了表格6中編號為3和4的執行前狀態確認條件,功能執行單元233執行「模型佈署功能」和「預測」執行功能,並得到預測的結果。爾後,將「模型佈署」和「預測」記錄於功能執行追溯堆疊234,並呼叫自然語言處理模組24將預測結果轉換成口語化語彙。
在步驟S600中,依前述規則加強了「done:模型佈署」、「done:預測」、「result:中華電信明天會漲」等狀態鏈結的強度。
接下來,在步驟S700中,由於目前狀態鏈結「done:模型佈署、done:預測、result:中華電信明天會漲」的強度較高,意圖語意分析單元215受到表格8中編號為13、14、15之語句「經過分析,九點左右會開始塞車。您要提早出門嗎?」、「我們事先做了一下比較,走省道會比高速公路快。」、「打掃完成,清出三包垃圾。」影響較深。加上「done:模型佈署、done:預測、result:中華電信明天會漲」之取代性,回應產生單元253產生了表格1中編號為13的輸出回
應「模型佈署完成。我們事先做了一下預測,中華電信明天會漲。」。
接下來,在步驟S800中,並未檢查到對話結束狀態而流程繼續。而在步驟S900中,使用者透過使用者裝置1來輸入如表格1中編號為14所示的語句「我改一下,不要用五日均價和五日均量,改用十日均價和十日均量試試看。」。
接下來,在步驟S1000中,意圖語意分析單元215使用意圖模型212來分析該輸入語句「我改一下,不要用五日均價和五日均量,改用十日均價和十日均量試試看」。主要受到表格2中的「我改變心意了」、「我改一下」、「不要用這個,改用那個」等語句的影響,得到「改變心意」的意圖可能性為95%,其它意圖可能性則都小得多。
同時,意圖語意分析單元215呼叫自然語言處理模組24來分析出該語句「我改一下,不要用五日均價和五日均量,改用十日均價和十日均量試試看」結構中之改變內容為「改用十日均價和十日均量」。
接下來,在步驟S1100中,意圖語意分析單元215依前述語意分析結果來強化「change:(features=改用十日均價和十日均量)」的狀態鏈結;並依照前述意圖分析結果來更新狀態鏈結表22。
其中,意圖可能性最高的「改變心意」加上「change:(features=改用十日均價和十日均量)」之取代性,使得表格7中編號為31的「decision:(features=改用
十日均價和十日均量)」狀態鏈結被強化了。
接下來,在步驟S500中,由於狀態鏈結「decision:(features=改用十日均價和十日均量)」被強化,使得表格6中編號為2、3、4的執行前狀態確認條件features皆發生改變。
此外,功能執行單元233根據功能執行追溯堆疊234中的內容「特徵分析、演算法驗證、模型佈署、預測」,而得知最先被影響的流程為「演算法驗證」。因此,功能執行單元233重新執行「演算法驗證」的執行功能來獲得演算法驗證的結果和建議,並呼叫自然語言處理模組24來將結果和建議轉換成口語化語彙。
在步驟S600中,依前述規則強化「done:演算法驗證、result:各演算法的驗證正確率如下,以決策樹的驗證正確率67%為最高、suggest:使用決策樹」及「accept:(algorithm=決策樹)」等狀態鏈結的強度。
接下來,在步驟S700中,由於目前狀態鏈結「decision:改用十日均價和十日均量、done:演算法驗證、result:各演算法的驗證正確率如下,以決策樹的驗證正確率67%為最高、suggest:使用決策樹」的強度較高,回應產生單元253受到表格8中編號為11、12、13、14、15、16、17之語句「好的,就這麼辦。」、「我會用油漆來上色。」、「經過分析,九點左右會開始塞車。您要提早出門嗎?」、「我們事先做了一下比較,走省道會比高速公路快。」、「打掃完成,清出三包垃圾。」、「建議使用低鈉鹽來調味。」、「推
薦您搭捷運板南線在台北車站下車。」等語句之影響較深。
此外,加上「done:分析、result:各演算法的驗證正確率如下,以決策樹的驗證正確率67%為最高、suggest:使用決策樹」之取代性,回應產生單元253產生了表格1中編號為15的輸出回應「好的,就這麼辦,我會改用十日均價和十日均量。分析完成,各演算法的驗證正確率如下,以決策樹的驗證正確率67%為最高。建議使用決策樹。」。
接下來,在步驟S800中,並未檢查到對話結束狀態而流程繼續。而在步驟S900中,使用者透過使用者裝置1來輸入如表格1中編號為16所示的語句「還是用原來的好了。」。
接下來,在步驟S1000中,意圖語意分析單元215使用意圖模型212來分析該輸入語句「還是用原來的好了」。主要受到表格2中的「還是恢復原狀好了」、「用原來的吧」、「不要用這個,改用那個」等語句的影響,得到「恢復原狀」的意圖可能性為80%,「改變心意」的意圖可能性為20%,而其它意圖可能性幾乎為0%。
接下來,在步驟S1100中,意圖語意分析單元215依照前述意圖分析結果來更新狀態鏈結表22。其中,意圖可能性最高的「恢復原狀」使得表格7中編號為32的「decision:(call UNDO)」狀態鏈結被強化了。
接下來,在步驟S500中,由於「decision:(call UNDO)」滿足了表格6中編號為6的執行前狀態確認條件,功能執行單元233執行了UNDO功能,從而將decision:(features=
改用十日均線和十日均量)回復成(features=ALL),並重新執行「模型佈署功能」和「預測」功能來得到預測結果。此外,亦會呼叫自然語言處理模組24來把預測結果轉換成口語化語彙。
在步驟S600中,依前述規則強化「done:恢復原狀」狀態鏈結的強度,並依重新執行規則強化「done:模型佈署、done:預測、result:中華電信明天會漲」狀態鏈結的強度。
接下來,在步驟S700中,由於目前狀態鏈結「decision:(call UNDO)、done:恢復原狀、done:模型佈署、done:預測、result:中華電信明天會漲」的強度較高,回應產生單元253受到表格8中編號為11、12、13、14、15之語句「好的,就這麼辦。」、「我會用油漆來上色。」、「經過分析,九點左右會開始塞車。您要提早出門嗎?」、「我們事先做了一下比較,走省道會比高速公路快。」、「打掃完成,清出三包垃圾。」的影響較深。加上「done:模型佈署」、「done:預測」、「result:中華電信明天會漲」之取代性,回應產生單元253產生了表格1中編號為17的輸出回應「好的。模型佈署完成。經過預測,中華電信明天會漲。」。
接下來,在步驟S800中,並未檢查到對話結束狀態而流程繼續。而在步驟S900中,使用者透過使用者裝置1來輸入如表格1中編號為18所示的語句「謝謝,沒別的事了。」。
接下來,在步驟S1000中,意圖語意分析單元215使
用意圖模型212來分析該輸入語句「謝謝,沒別的事了」。主要受到表格2中的「可以結束了」、「沒有別的要分析了」、「我事情都做完了」、「我改變心意了」、「還是恢復原狀好了」等語句的影響,得到「結束使用」的意圖可能性為70%,「改變心意」的意圖可能性為20%,「恢復原狀」的意圖可能性為10%,其它意圖可能性則幾乎為0%。
接下來,在步驟S1100中,意圖語意分析單元215依照前述意圖分析結果來更新狀態鏈結表22。其中,意圖可能性最高的「結束使用」使得表格7中編號為33的「state:bye」狀態鏈結被強化了。
接下來,在步驟S500中,由於沒有任何新的項目之執行前狀態確認條件符合表格6中的執行前狀態確認條件,因此並未執行任何功能。而且,在步驟S600中,亦無任何狀態鏈結被更動。
接下來,在步驟S700中,由於目前狀態鏈結「state:bye」的強度較高,使得回應產生單元253受到表格8中的編號18及19之語句「非常感謝您的使用,歡迎下次再來!」及「謝謝,再見!」的影響較深。之後,回應產生單元253產生表格1中編號為19的輸出回應「謝謝您的使用,歡迎下次再來,再見!」
最後,在步驟S800中,檢查到狀態為「state:bye」,而結束了聊天機器人與使用者之對話過程。
上述實施形態僅例示性說明本發明之原理、特點及其功效,並非用以限制本發明之可實施範疇,任何熟習此項
技藝之人士均可在不違背本發明之精神及範疇下,對上述實施形態進行修飾與改變。任何運用本發明所揭示內容而完成之等效改變及修飾,均仍應為申請專利範圍所涵蓋。因此,本發明之權利保護範圍,應如申請專利範圍所列。
Claims (9)
- 一種使用聊天機器人來分析對話內容的系統,包含:一聊天機器人裝置,該聊天機器人裝置係經配置以進行以下操作:接收一或多個輸入語句;存取一意圖訓練語句庫中的意圖訓練語句資料,以使用該等意圖訓練語句資料分析該一或多個輸入語句,進而獲得一意圖分析結果;基於一分析裝置所提供的一系統功能之中繼資料及參數來源之中繼資料,且根據該意圖分析結果,執行該系統功能以分析該一或多個輸入語句,進而產生一對話回應內容;及存取一回應訓練語句庫中的回應訓練語句資料,以使用該等回應訓練語句資料將該對話回應內容轉換為一輸出回應;其中,該聊天機器人裝置具有一意圖語意模組,該意圖語意模組包含:一意圖訓練單元,其將一詞彙型多元分類演算法應用於該意圖訓練語句庫中的意圖訓練語句資料,以建構一意圖模型;一意圖轉換單元,其將該參數來源之中繼資料轉換為一意圖影響表;及一意圖語意分析單元,其使用該意圖模型分析該一或多個輸入語句以獲得該意圖分析結果,且使用該意圖影響表更新該狀態鏈結表。
- 如申請專利範圍第1項所述之系統,其中,該聊天機器人裝置之該意圖語意模組係分析該一或多個輸入語句以獲得該意圖分析結果,且該聊天機器人裝置具有:一自然語言處理模組,其係經配置以自該意圖語意模組接收該一或多個輸入語句,以分析該一或多個輸入語句,進而獲得一語意分析結果;其中,該意圖語意模組係根據該意圖分析結果及該語意分析結果來更新一狀態鏈結表,再由該狀態鏈結表記錄當前分析過程的鏈結狀態;一系統功能執行模組,其比對該狀態鏈結表與該系統功能之中繼資料以決定是否執行該分析裝置所提供的該系統功能,進而分析該一或多個輸入語句以產生該對話回應內容,以將該對話回應內容傳送至該自然語言處理模組,其中,該自然語言處理模組基於該對話回應內容產生一或多個回覆語句;及一回應模組,其根據該等回應訓練語句資料以將該一或多個回覆語句轉換為該輸出回應。
- 如申請專利範圍第2項所述之系統,其中,該系統功能執行模組包含:一功能轉換單元,係將該系統功能之中繼資料轉換為一狀態轉換表,以由該狀態轉換表記錄執行該系統功能所需要滿足的鏈結狀態;一功能執行單元,其從該狀態鏈結表得知目前的鏈結狀態,及使用該狀態轉換表以確認是否需要執行該系統功能,若是,該功能執行單元執行該系統功能;及一功能執行追溯堆疊,其記錄該功能執行單元執行該系統功能之過程。
- 如申請專利範圍第2項所述之系統,其中,該回應模組包含:一回應訓練單元,其將一時序型語句生成演算法應用於該回應訓練語句庫中的資料,以產生一回應模型;及一回應產生單元,其根據該回應模型,並基於該狀態鏈結表,產生該輸出回應。
- 如申請專利範圍第1-4項中任一項所述之系統,其中,該系統功能之中繼資料包含以下中之一者或多者:該系統功能之種類、執行該系統功能之所需參數、以及執行該系統功能後的回傳值。
- 如申請專利範圍第1-4項中任一項所述之系統,其中,該參數來源之中繼資料包含執行該系統功能之所需參數或該等所需參數的參數來源。
- 如申請專利範圍第1-4項中任一項所述之系統,其中,該執行該系統功能來分析該一或多個輸入語句之操作包含以下中之一者或多者:針對該一或多個輸入語句進行特徵分析、針對該一或多個輸入語句進行演算法驗證、針對該一或多個輸入語句進行模型佈署、及針對該對話回應內容進行預測。
- 如申請專利範圍第4項所述之系統,其中,該時序型語句生成演算法包含以下中之一者或多者:序列對序列遞迴神經網路(sequence to sequence RNN)、遞迴神經網路語言模型(Recurrent Neural Network Language Model,RLM)、動態情境生成模型(Dynamic-Context Generative Model,DCGM)、或階層式遞迴編解碼器(Hierarchical Recurrent Encoder-Decoder,HRED)。
- 一種使用聊天機器入來分析對話內容的方法,包含以下步驟:接收一或多個輸入語句;以及執行一系統功能以分析該一或多個輸入語句,進而產生一對話回應內容,包含:分析該一或多個輸入語句以獲得一意圖分析結果及一語意分析結果;根據該意圖分析結果及該語意分析結果以更新一狀態鏈結表,該狀態鏈結表記錄當前分析過程的鏈結狀態;及比對該狀態鏈結表與該系統功能之中繼資料以決定是否執行該分析裝置所提供的該系統功能,進而分析該一或多個輸入語句以產生該對話回應內容;其中,該方法更包含:由一意圖訓練單元將一詞彙型多元分類演算法應用於一意圖訓練語句庫中的意圖訓練語句資料,以建構一意圖模型;由一意圖轉換單元將參數來源之中繼資料轉換為一意圖影響表;及由一意圖語意分析單元使用該意圖模型分析該一或多個輸入語句以獲得該意圖分析結果,且使用該意圖影響表更新該狀態鏈結表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107103424A TWI676902B (zh) | 2018-01-31 | 2018-01-31 | 使用聊天機器人來分析對話內容的方法與系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107103424A TWI676902B (zh) | 2018-01-31 | 2018-01-31 | 使用聊天機器人來分析對話內容的方法與系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201935270A TW201935270A (zh) | 2019-09-01 |
TWI676902B true TWI676902B (zh) | 2019-11-11 |
Family
ID=68618389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107103424A TWI676902B (zh) | 2018-01-31 | 2018-01-31 | 使用聊天機器人來分析對話內容的方法與系統 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI676902B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI828086B (zh) * | 2022-03-18 | 2024-01-01 | 中華電信股份有限公司 | 利用遞歸神經網路之對話回應語句生成系統、方法及電腦可讀媒介 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160094490A1 (en) * | 2014-09-29 | 2016-03-31 | International Business Machines Corporation | Personalizing data system components and data sources as chatbots in a group chat session |
CN105512228A (zh) * | 2015-11-30 | 2016-04-20 | 北京光年无限科技有限公司 | 一种基于智能机器人的双向问答数据处理方法和系统 |
TWM554612U (zh) * | 2017-10-05 | 2018-01-21 | 國泰人壽保險股份有限公司 | 智能線上客戶服務系統 |
-
2018
- 2018-01-31 TW TW107103424A patent/TWI676902B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160094490A1 (en) * | 2014-09-29 | 2016-03-31 | International Business Machines Corporation | Personalizing data system components and data sources as chatbots in a group chat session |
CN105512228A (zh) * | 2015-11-30 | 2016-04-20 | 北京光年无限科技有限公司 | 一种基于智能机器人的双向问答数据处理方法和系统 |
TWM554612U (zh) * | 2017-10-05 | 2018-01-21 | 國泰人壽保險股份有限公司 | 智能線上客戶服務系統 |
Also Published As
Publication number | Publication date |
---|---|
TW201935270A (zh) | 2019-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200251091A1 (en) | System and method for defining dialog intents and building zero-shot intent recognition models | |
US9081411B2 (en) | Rapid development of virtual personal assistant applications | |
WO2021138020A1 (en) | Systems and methods for artificial intelligence enhancements in automated conversations | |
US20230395075A1 (en) | Human-machine dialogue system and method | |
US20200143115A1 (en) | Systems and methods for improved automated conversations | |
Guo et al. | Conversational bootstrapping and other tricks of a concierge robot | |
US11720759B2 (en) | Electronic apparatus, controlling method of thereof and non-transitory computer readable recording medium | |
WO2020139865A1 (en) | Systems and methods for improved automated conversations | |
US11355122B1 (en) | Using machine learning to correct the output of an automatic speech recognition system | |
KR102697095B1 (ko) | Qa 모델을 이용하여 지식 그래프를 구축하는 방법, 장치 및 컴퓨터 프로그램 | |
Irissappane et al. | Leveraging GPT-2 for classifying spam reviews with limited labeled data via adversarial training | |
KR20200041199A (ko) | 챗봇 구동 방법, 장치 및 컴퓨터 판독가능 매체 | |
US11355120B1 (en) | Automated ordering system | |
TWI676902B (zh) | 使用聊天機器人來分析對話內容的方法與系統 | |
EP4141696A1 (en) | Method of generating conversation information using examplar-based generation model and apparatus for the same | |
US20240005912A1 (en) | Acoustic model for multilingual speech recognition | |
Kavitha et al. | Emotion recognition in tweets using optimized ensemble classifiers | |
Malhotra et al. | An efficient FTS-BERT based fake news detection using CKH_GANs classification technique | |
US20240127026A1 (en) | Shallow-deep machine learning classifier and method | |
Angara | Towards a deeper understanding of current conversational frameworks through the design and development of a cognitive agent | |
McLevey et al. | Machine Learning and Neural Network Language Models for Sentiment Analysis | |
US20240194178A1 (en) | Adaptive, individualized, and contextualized text-to-speech systems and methods | |
WO2023144872A1 (ja) | 文書分類装置、文書分類方法、および文書分類プログラム | |
Perez | Dialog state tracking, a machine reading approach using a memory-enhanced neural network | |
US20230244989A1 (en) | Intent-based task representation learning using weak supervision |