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