1. 程式人生 > >Rasa NLU 聊天機器人自然語言理解

Rasa NLU 聊天機器人自然語言理解

Rasa NLU

Rasa Nlu 工作原理

智慧機器人是人工智慧一個重大分支,只能機器人包括幾大模組:自然語言識別(ASR)、自然語言處理(NLU)、對話流程(DM)、自然語言生成(TTS),目前自己的工作涉及的方面主要是 NLU 與 DM,本文主要寫一下NLU,即Rasa NLU。關於對話流程見另一篇博文。

具體流程:

  • 編寫一個檔案 intent.md 用來存放語料(需要根據意圖,進行語料擴充套件)
  • 接下來就是用上面的個檔案,訓練出 Rasa NLU 的模型。
  • 最後,這就到最後了,使用Rasa NLU 的模型就可以開啟服務。
  • 哦,這才是最後,現在就可以測試問題具體的識別準確率了,以及引數的提取準確度。

看完自己寫的工作原理,發現真的很簡練,哈哈,根本不能上手使用。總要寫的完全一些,深入一些的。

Rasa NLU 專案使用方法

github 上面搜尋 Rasa_NLU,具體安裝方式參見專案介紹。建議將整個專案原始碼拉下來,在專案的根目錄執行

python setup.py install

進行安裝。Rasa Nlu 同理。可以先根據專案裡自帶的example進行訓練執行。具體執行方式見專案及Demo中的Makefile。

Rasa NLU 深入瞭解

NLU 的難點主要在語料的準備, 接下來就自己瞭解到的經驗進行一一記錄。

  • 每個意圖要有關鍵字,意圖中的每句都要有關鍵字。
  • 每個關鍵字要擴充20左右的語句。
  • 所有語句之間要夠發散、離散(即除關鍵字外儘量不用重複的詞語)。
  • 除關鍵字之外,所有的詞字,在每個意圖中重複率要低、要低,最好不重複。
  • 整個檔案中,除關鍵字之外,所有的詞字,重複率要低、要低,最好不重複。
  • 上面兩條造成的現象就是,你我他啊是的嗎之類的詞都要去掉(語義可以稍微不通順,可接受)。
  • 句式相同,引數不同的意圖進行合併,通過後期校驗引數進行分辨。

意圖識別的準確度跟兩方面有關

  • 關鍵字在當前意圖中出現的頻率
  • 關鍵字在整個檔案中出現的頻率

有什麼錯誤歡迎指出,其他的具體問題也可以在評論中留言。