2017-06-20 28 views
0

我正在構建一個帶有botkit的信使機器人,語言處理是通過api.ai完成的。如何僅使用NLP從字符串中提取非意圖的實體?

Apiai的意圖是引導用戶體驗機器人的好方法。我使用預定義的意圖來理解用戶想要做什麼,並使用botkit的convo對象與他開始對話。在這一點上,我有預定義的問題,用戶需要回答。

例如,其中一個問題是「這是什麼時候發生的?」用戶可以用純文本回答。我不需要apiai告訴我意圖(以及我不想爲此花時間培訓),因爲我已經知道該期待什麼。

所以我正在尋找一種方法來簡單地從字符串中提取系統和開發人員定義的實體。所以如果用戶提供的答案是「我昨天發生過」,我可以驗證我有日期的實體,但時間實體是空的,所以我會承諾給予時間。

我已閱讀apiai和其他競爭對手的文檔,並沒有找到辦法做到這一點。它總是關於定義意圖。

所以基本上 - 從字符串中找到並提取實體。是否有可能,如果是 - 如何?目前apiai是我的工具,但如果有必要,我願意改變它。

+0

你檢查了嗎? https://docs.api.ai/docs/concept-entities#section-date-and-time這是你正在尋找的,還是它有一些限制,不適合你的使用情況? – jgranstrom

+0

是的,有限制。用戶可以用多種不同的方式來回答,比如「昨天」,「我是昨天」,「它昨天發生了」,...。並形成我的理解我有義務爲此問題創建意圖,併爲所有這些可能的用戶答案培訓代理。但這對我來說似乎是愚蠢的,因爲我已經知道了這個意圖。這些系統實體是非常強大的,所以我想知道爲什麼開發者不能簡單地爲他們搜索字符串。 –

+0

我明白了,您是在尋找一個託管的服務來做這件事嗎,還是使用開源工具來設置您自己的API? – jgranstrom

回答

1

您可以使用必需的參數來確保從用戶那裏獲得必要的信息。要製作一個參數,只需在動作部分下面的意圖中選中參數名稱左側的框(在下面的屏幕截圖中指向一個箭頭)。要爲參數創建一個自定義提示(「?它是如何發生什麼時間」,即)(在截圖中紅色框下方),點擊提示欄標題下的參數名稱的權利:

如果您需要進一步驗證,您需要爲Api.ai設置履行webhook。 Api.ai會向你的webhook發送請求,這些請求將包含JSON數據,包括實體的值(這在包含在你的webhook請求中的結果對象的parameters屬性中)。然後,您可以驗證任何必要的數據並相應地對用戶作出響應。文檔履行webhooks在這裏:https://docs.api.ai/docs/webhook#webhook-requirements

相關問題