Rasa 實戰:構建開源對話機器人

孔曉泉,王冠

  • 出版商: 電子工業
  • 出版日期: 2022-02-01
  • 售價: $534
  • 貴賓價: 9.5$507
  • 語言: 簡體中文
  • 頁數: 216
  • ISBN: 7121429381
  • ISBN-13: 9787121429385
  • 相關分類: Chatbot機器人製作 Robots
  • 立即出貨

買這商品的人也買了...

商品描述

Rasa是一款開源的對話機器人框架,能讓開發者使用機器學習技術快速創建工業級的對話機器人。得益於豐富的功能、先進的機器學習能力和可以快速上手的特性,Rasa框架是目前流行的開源對話機器人框架。 本書首先介紹Rasa的兩個核心組件——Rasa NLU和Rasa Core的工作流程;然後詳細介紹通過使用Rasa生態系統從頭開始構建、配置、訓練和服務不同類型的對話機器人的整體過程,如任務型、FAQ、知識圖譜聊天機器人等,其中包括使用基於表單(form)的對話管理、ResponseSelector來處理閑聊和FAQ,利用知識庫來回答動態查詢的問題等,以及自定義Rasa框架,使用對話驅動的開發模式和工具來開發對話機器人,探索機器人能做什麽,並通過交互式學習來輕松修復它所犯的任何錯誤;最後會介紹將Rasa系統部署到具有高性能和高可擴展性的生產環境中,從而建立一個高效和強大的聊天系統。

目錄大綱

章人機對話基礎和Rasa簡介1
1.1 機器學習基礎1
1.2 自然語言處理基礎3
1.2.1 現代自然語言處理髮展
簡史3
1.2.2 自然語言處理的基礎
任務7
1.3 人機對話流程7
1.3.1 確定對話機器人的應用
場景7
1.3.2 傳統對話機器人架構8
1.3.3 語音識別10
1.3.4 自然語言理解10
1.3.5 對話管理12
1.3.6 自然語言生成13
1.3.7 語音合成14
1.4 Rasa 簡介14
1.4.1 系統結構15
1.4.2 如何安裝Rasa 16
1.4.3 Rasa 項目的基本流程16
1.4.4 Rasa常用命令16
1.4.5 創建示例項目17
1.5 小結17
第2章Rasa NLU基礎18
2.1 功能與結構18
2.2 訓練數據19
2.2.1 意圖字段21
2.2.2 同義詞字段22
2.2.3 查找表字段23
2.2.4 正則表達式字段23
2.2.5 正則表達式和查找表的
使用24
2.3 組件25
2.3.1 語言模型組件26
2.3.2 分詞組件26
2.3.3 特徵提取組件27
2.3.4 NER組件27
2.3.5 意圖分類組件28
2.3.6 實體和意圖聯合提取
組件28
2.3.7 回複選擇器28
2.4 流水線28
2.4.1 什麼是流水線28
2.4.2 配置流水線28
2.4.3 推薦的流水線配置30
2.5 輸出格式30
2.5.1 意圖字段32
2.5.2 實體字段32
2.5.3 其他可能字段33
2.6 如何使用Rasa NLU 34
2.6.1 訓練模型34
2.6.2 從命令行測試34
2.6.3 啟動服務35
2.7 實戰:醫療機器人的NLU
模塊36
2.7.1 功能36
2.7.2 實現36
2.7.3 訓練模型38
2.7.4 運行服務39
2.8 小結40
第3章Rasa Core基礎41
3.1 功能與結構41
3.2 領域41
3.2.1 意圖與實體42
3.2.2 動作42
3.2.3 詞槽43
3.2.4 回复43
3.2.5 會話配置45
3.2.6 全局性配置45
3.3 故事45
3.3.1 用戶消息46
3.3.2 機器人動作與事件46
3.3.3 輔助符號47
3.4 動作49
3.4.1 回複動作49
3.4.2 表單49
3.4.3 默認動作49
3.4.4 自定義動作50
3.5 詞槽50
3.5.1 詞槽和對話行為51
3.5.2 詞槽的類型51
3.5.3 詞槽的映射52
3.5.4 詞槽初始化52
3.6 策略53
3.6.1 策略的配置53
3.6.2 內建的策略53
3.6.3 策略的優先級54
3.6.4 數據增強54
3.7 端點54
3.8 Rasa SDK和自定義動作55
3.8.1 安裝55
3.8.2 自定義動作55
3.8.3 tracker對象56
3.8.4 事件對象56
3.8.5 運行自定義動作57
3.9 Rasa支持的客戶端57
3.10 實戰:報時機器人59
3.10.1 功能59
3.10.2 實現60
3.10.3 運行動作服務器66
3.10.4 運行Rasa服務器和
客戶端66
3.11 小結67
第4章使用ResponseSelector
實現FAQ和閒聊功能68
4.1 如何定義用戶問題68
4.2 如何定義問題的答案69
4.3 如何訓練Rasa 69
4.4 實戰:構建FAQ機器人70
4.4.1 功能70
4.4.2 實現71
4.4.3 訓練模型77
4.4.4 運行服務78
4.5 小結78
第5章基於規則的對話管理79
5.1 fallback 79
5.1.1 NLU fallback 79
5.1.2 策略fallback 80
5.2 意圖觸發動作80
5.2.1 內建意圖觸發動作80
5.2.2 自定義意圖觸發動作81
5.3 表單81
5.3.1 定義表單82
5.3.2 激活表單82
5.3.3 執行表單任務82
5.4 實戰:天氣預報機器人83
5.4.1 功能83
5.4.2 實現86
5.4.3 客戶端/服務器97
5.4.4 運行Rasa 服務器97
5.4.5 運行動作服務器97
5.4.6 運行網頁客戶端98
5.4.7 更多可能的功能98
5.5 小結98
第6章基於知識庫的問答99
6.1 使用ActionQueryKnowledgeBase
100
6.1.1 創建知識庫100
6.1.2 NLU 數據102
6.1.3 自定義基於知識庫的
動作104
6.2 工作原理105
6.2.1 對象查詢105
6.2.2 屬性查詢105
6.2.3 解析指代106
6.3 自定義108
6.3.1 自定義
ActionQueryKnowledgeBase
108
6.3.2 自定義
InMemoryKnowledgeBase
108
6.3.3 創建自定義知識庫110
6.4 實戰:基於知識庫的音樂百科
機器人110
6.4.1 功能110
6.4.2 實現111
6.4.3 客戶端/服務器122
6.4.4 運行Rasa 服務器122
6.4.5 運行動作服務器122
6.4.6 運行網頁客戶端122
6.4.7 使用Neo4j 123
6.5 小結134
第7章實體角色和分組135
7.1 實體角色135
7.2 實體分組136
7.3 組件支持情況136
7.4 實戰:訂票機器人136
7.4.1 功能136
7.4.2 實現139
7.4.3 客戶端/服務器147
7.4.4 運行Rasa 服務器147
7.4.5 運行動作服務器147
7.4.6 運行網頁客戶端148
7.5 小結148
第8章測試和生產環境部署149
8.1 如何測試機器人的表現149
8.1.1 對NLU和故事數據
進行校驗149
8.1.2 編寫測試用的故事149
8.1.3 評估NLU模型151
8.1.4 評估對話管理模型153
8.2 在生產環境中部署機器人153
8.2.1 部署時間153
8.2.2 選擇模型存儲方式153
8.2.3 選擇tracker store 154
8.2.4 選擇lock store 156
8.2.5 單機高並發設置157
8.3 實戰:單機部署高性能Rasa
服務157
8.3.1 架設redis服務器157
8.3.2 使用redis作為
tracker store 157
8.3.3 使用redis作為
lock store 158
8.3.4 單機高並發設置158
8.3.5 性能測試158
8.4 小結159
第9章Rasa的工作原理與
擴展性160
9.1 Rasa的工作原理160
9.1.1 訓練階段161
9.1.2 推理階段162
9.2 Rasa的擴展性163
9.2.1 如何使用自定義NLU
組件和自定義策略163
9.2.2 如何自定義一個NLU
組件或策略164
9.2.3 自定義詞槽類型165
9.2.4 其他功能的擴展性166
9.3 實戰:實現自定義分詞器166
9.3.1 分詞器MicroTokenizer的
簡介166
9.3.2 代碼詳解167
9.3.3 使用自定義分詞器176
9.4 小結177
0章Rasa技巧與生態178
10.1 如何調試Rasa 178
10.1.1 預測結果不正確178
10.1.2 代碼出錯181
10.2 如何閱讀Rasa源代碼186
10.2.1 閱讀源代碼前186
10.2.2 閱讀源代碼時188
10.2.3 閱讀源代碼後188
10.3 對話驅動開發和Rasa X 189
10.3.1 對話驅動開發189
10.3.2 Rasa X 190
10.4 運行交互式學習193
10.4.1 啟動交互式學習193
10.4.2 進行交互式學習193
10.4.3 保存交互式學習的
數據196
10.4.4 對話過程可視化196
10.5 社區生態197
10.5.1 數據生成工具
Chatito 197
10.5.2 數據生成工具
Chatette 198
10.5.3 數據標註工具
Doccano 199
10.5.4 Rasa Chinese軟件包200
10.6 小結201
附錄A 中英文術語翻譯對照表202