RASA-1-基礎說明

摘要

本文內容基於RASA官網

  • Rasa是一個基於多輪對話的框架,其中包含兩個模塊Rasa coreRasa nlu
  • Rasa nlu是用來理解語義的,包括意圖識別、實體識別,它會把用戶的輸入轉換爲結構化的數據。

安裝Rasa

pip3 install rasa_core
pip3 install rasa_nlu[tensorflow]

Rasa Core

core包含兩個內容,stories和domain。

Stories

  • stories可以理解爲對話的場景流程,即告訴機器多輪場景是怎樣的。如:用戶問好 -> 機器問用戶今天過得怎麼樣 -> 用戶反饋情緒 -> 機器根據不同的情緒進行回覆;其中包含兩個流程:一個正面情緒的流程與一個負面情緒的流程,因此我們需要編寫兩個story。
符號 說明
## story標題
* 意圖
- 動作

Domain

  • domain可以理解爲機器的知識庫,其中定義了意圖、動作以及對應動作所反饋的內容。
  • Rasa Core的任務是在獲取到用戶的意圖之後,選擇正確的action,這些action就是定義在domain中以utter_開頭的內容,每一個action會根據templates中的情況來返回對應的內容。
標識 說明
intents 意圖
actions 動作
templates 回答模板
entities 實體
slots 詞槽

訓練對話模型

  • 下一步就是用神經網絡訓練我們的Core模型,可以直接執行下列命令。訓練模型將會存儲在models/dialogue文件夾下。
python -m rasa_core.train -d domain.yml -s stories.md -o models/dialogue
  • 可以發現,訓練過程中採用了一個神經網絡,結構爲:masking -> lstm -> dense -> activation。masking層:在Nlu領域,輸入的內容可能不是一樣長的,爲了能統一處理數據需要定長,因此某些值需要補0或者截取多餘內容,但是補0的部分其實是沒有意義的,masking層能讓這些補0的部分不參與之後的計算,從而提升運算效率。

嘗試交流

  • 可以執行指令
python -m rasa_core.run -d models/dialogue

Rasa NLU

添加nlu模塊

  • 目前機器人可以通過輸入意圖來獲取答案,NLU模塊負責讓機器理解真正的語言,任務是解析消息,能把自然語言解釋稱我們需要的結構化數據。

RASA安裝2

安裝方式

  • Rasa另一個推薦安裝方式是通過pip,這種方式將同時安裝Rasa和Rasa X:
pip3 install rasa-x --extra-index-url https://pypi.rasa.com/simple

NLU管道依賴項

  • Rasa NLU有用於識別意圖和實體的不同組件,其中大多數有一些額外的依賴項。
  • 當訓練nlu時,Rasa將檢查是否安裝了所有必須的依賴項,並告知缺少哪個依賴項。如果想確保爲你可能需要的任何組件安裝了依賴項,而且不介意有其他依賴項存在,可以使用:
pip3 install -r alt_requirements/requirements_full.txt
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章