0
本文作者: 楊文 | 2018-02-16 11:38 |
雷鋒網(wǎng)AI研習(xí)社按:對話系統(tǒng)是自然語言處理的一個熱門話題,而自然語言理解則是對話系統(tǒng)的關(guān)鍵組成部分,現(xiàn)有的很多自然語言理解工具往往以服務(wù)的方式獲?。℅oogle 的 API.ai, Facebook 的 Wit.ai 等),使用這些服務(wù)往往需要向服務(wù)提供商提供自己的數(shù)據(jù),并且根據(jù)自己業(yè)務(wù)調(diào)試模型很不方便。本文為大家介紹了一種新方法,即如何基于 rasa 搭建一個中文對話系統(tǒng)。
在近期雷鋒網(wǎng)AI研習(xí)社舉辦的線上免費公開課上,來自北京郵電大學(xué)網(wǎng)絡(luò)技術(shù)研究院的張慶恒分享了基于 rasa nlu 構(gòu)建自己的自然語言理解工具,并結(jié)合 rasa core 搭建對話系統(tǒng)框架的一些經(jīng)驗,方便初學(xué)者入門,加深對對話系統(tǒng)的理解。本文根據(jù)分享者的直播視頻內(nèi)容整理而成。(推薦觀看直播回放)
張慶恒,北京郵電大學(xué)網(wǎng)絡(luò)技術(shù)研究院,網(wǎng)絡(luò)與交換技術(shù)國家重點實驗室碩士,主要研究方向為機(jī)器學(xué)習(xí)與自然語言處理。曾在百度實習(xí)且多次參加機(jī)器學(xué)習(xí)、深度學(xué)習(xí)比賽,獲阿里云安全算法挑戰(zhàn)賽獲冠軍,中文標(biāo)注開源項目Chinese-Annotator主要開發(fā)成員。
分享主題:基于 rasa 搭建中文對話系統(tǒng)
分享提綱:
1. 對話系統(tǒng)的分類和關(guān)鍵技術(shù)介紹
2. 結(jié)合電信業(yè)務(wù)查詢辦理場景,借助開源框架 rasa 實現(xiàn)任務(wù)導(dǎo)向型聊天機(jī)器人 demo。
2.1 rasa nlu 中文自然語言理解實現(xiàn),及其背后的原理
2.2 rasa core 對話管理實現(xiàn),結(jié)合源碼介紹其實現(xiàn)方法
主要內(nèi)容:
大家好,今天的分享內(nèi)容首先是為大家介紹基于任務(wù)型對話系統(tǒng)的主要概念和它的幾個模塊。第二部分是基于Rasa搭建電信領(lǐng)域任務(wù)型對話系統(tǒng)的實操訓(xùn)練。分別是基于Rasa nlu實現(xiàn)自然語言理解和基于rasa core實現(xiàn)對話管理。
自然語言理解(NLU)和對話管理是任務(wù)型對話的主要模塊。自然語言理解是問答系統(tǒng)、聊天機(jī)器人等更高級應(yīng)用的基石。下面列舉三個典型的問答系統(tǒng):
第一個是檢索型問答系統(tǒng),主要針對問答系統(tǒng),提一個問題,給一個答案,不需要參考上下文內(nèi)容的形式。
第二個是任務(wù)型對話系統(tǒng),針對買票,訂票之類的任務(wù)型對話。
第三個是閑聊系統(tǒng),像微軟小冰,主要陪聊天等。
任務(wù)型對話系統(tǒng)示意圖
任務(wù)型對話主要包括四部分 ,語音識別,自然語言理解,對話管理,最后是自然語言生成。
下面是一個訂餐應(yīng)用的例子。
接下來分別來看每個模塊具體實現(xiàn)的方式
首先是自然語言理解。做自然語言理解首先要有一種表示自然語言含義的形式,一般用傳統(tǒng)的三元組方式即:action, slot , value。action就是意圖,slot是需要填充的槽值,value是對應(yīng)的值。
具體可以用哪些技術(shù)做這些事情呢?下面列出了三個方法。
第一個是語法分析,可以通過語法規(guī)則去分析一句話,得到這句活是疑問句還是肯定句,繼而分析出用戶意圖。相應(yīng)的也可以通過語法結(jié)構(gòu)中找到對應(yīng)的槽值。
第二種方法是生成模式,主要兩個代表性的HMM,CRF, 這樣就需要標(biāo)注數(shù)據(jù)。
第三種方法是分類思想,先對一句話提取特征,再根據(jù)有多少個槽值或意圖訓(xùn)練多少個分類器,輸入一句話分別給不同的分類器,最終得到包含槽值的概率有多大,最終得到這個槽值。
還有一種采用深度學(xué)習(xí)方式,使用LSTM+CRF兩種組合的方式進(jìn)行實體識別,現(xiàn)在也是首選的方法 ,但有一個問題是深度學(xué)習(xí)的速度比較慢 ,一般輕量型的對話系統(tǒng)還是通過語法分析或分類方式或序列標(biāo)注來做。
對話狀態(tài)應(yīng)該包含持續(xù)對話所需要的各種信息。DST的主要作用是記錄當(dāng)前對話狀態(tài),作為決策模塊的訓(xùn)練數(shù)據(jù)。
系統(tǒng)如何做出反饋動作?
下面是自然語言生成部分。自然語言生成也有多種方法。這里舉三個方法:基于模板,基于語法規(guī)則和基于生成模型方法; 具體可觀看視頻回放。
任務(wù)型對話其他模塊
第二部分是用Rasa實現(xiàn)任務(wù)型對話系統(tǒng)。Rasa nlu是自然語言理解框架,主要實現(xiàn)實體識別,意圖識別等。Rasa core是對話管理框架,主要實現(xiàn)狀態(tài)跟蹤、policy訓(xùn)練,在線學(xué)習(xí)等。
實操部分使用rasa nlu和 rasa core 實現(xiàn)一個電信領(lǐng)域?qū)υ捪到y(tǒng)demo,實現(xiàn)簡單的業(yè)務(wù)查詢辦理功能‘’具體代碼實現(xiàn)過程推薦觀看AI慕課學(xué)院提供的視頻回放。
雷鋒網(wǎng)更多公開課直播預(yù)告敬請關(guān)注微信公眾號【AI研習(xí)社】)。如果錯過了直播課程,還可到AI慕課學(xué)院查找該期的視頻回放。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。