影片教學 > NLI管理系統

答案中的上下文處理

olami     2017-09-06 16:05



大家好,歡迎使用OLAMI人工智慧開放平台。

今天這節課我們要講的是答案中的上下文處理。

上下文的處理主要可以分為三大內容:


  1. 在答案中使用變數
  2. 關聯選擇
  3. 基礎上下文處理


一、在答案中使用變數

開發者在編輯 Grammar 選擇輸出答案時,可以在答案中使用變數或者選擇根據不同的情況輸出對應的值。

在答案中配合變數的引用,還可以達成基礎的上下文處理支持效果。


在答案文本描述中引用一個變數,需要用 < > 包住變數的名稱,如下示範:

現在時間是<variable_name>


1.1   內建變數列表


1.2示範

Grammar:現在幾點了
答案:現在時間是<time>


以 「現在幾點了」 例句語料來測試,假如現在時間是 10 點 42 分,則系統會回傳「現在是10點42分」 這個答案,返回結果詳情如下圖:


1.3與Slot重名時的優先級

答案變數也可以是對應 Grammar 中的某一個 Slot,但這時 Slot 的優先級較低;

也就是說如果在系統中設定了一個答案變數,且那個變數的名稱與您自訂的某個 Slot 的名稱相同時,輸出的會是答案變數的值而非 Slot 對應值。


例:

Slot:<time>
Grammar:現在<time>了
答案:現在時間是<time>


當輸入語料「現在幾點了」,Slot的提取值為「幾點」,但<time>同時也是系統內建的變數,因為答案變數優先級高於 Slot,因此結果不會是「現在時間是幾點」,而是回傳現在的時間,例如「現在時間是10點42分」。


二、關聯選擇

開發者可以在答案中以 JSON 格式,再結合變數的引用,設置一個相當於 switch-case 概念的關聯選擇性答案組合,答案的 JSON 數據撰寫規則如下示範:

例:

Grammar:你好


對此 Grammar 設置一個答案,內容如下(為方便檢視,以下為展開後的表示方式):

因此,我們收到回傳的結果如下:


時間為7:32時:吃早飯了嗎?

時間為11:15時:時間到,該午睡了!

時間為20:00時:早點睡身體好!

時間為23:18時:你好!

……


三、基礎上下文處理

有了關聯選擇的功能,就可以通過判斷 lastmodifier 變數值,且結合此次所匹配的 grammar 的語意來實現基礎的上下文處理。

例:

Grammar :你吃飯了嗎<{@=eat}>


我們設定:

此時,當我們第一次輸入語料「你吃飯了嗎」,得到的結果如下:

第二次輸入語料「你吃飯了嗎」,由於lastmodifier為「eat」,所以得到的回傳結果如下:

以上為答案中的上下文處理這節課的全部內容,感謝您的觀看!




Copyright © 2017 威盛电子股份有限公司. All rights reserved   |   意见反馈