ML培训,实体和意图触发

时间:2018-04-25 14:35:22

标签: machine-learning dialogflow

我在Dialogflow上创建了一个非常简单的代理,它只包含两个额外的意图以及Default Welcome IntentDefault Fallback Intent。第一个意图称为Car_size,它仅包含训练短语Do you know that I have a big car?。第二个意图称为Car_colour,它仅包含培训短语I have a blue car。我还定义了两个实体。

第一个名为@size,其中包含bigsmall等词语,第二个名称为@colour,其中包含{{1}等字词}},blueblack等。因此,在green意图中,Car_size一词被标识为big实体的参数,并且在{ {1}}意图单词@size被标识为Car_colour实体的参数。我已根据需要设置了这两个参数,以便通过webhook在后端获取正确的信息。

从Dialogflow接收POST请求(webhook)的php脚本如下:

blue

在这个简单的演示中使用webhook可能没用,但我的最终目标明显大于此,并且使用webhook连接数据库对此至关重要。

我的问题如下。当我对代理@colour说,那么这会触发<?php $dbServername = 'localhost'; $dbUsername = 'root'; $dbPassword = ''; $dbName = 'Questions'; $conn = mysqli_connect($dbServername, $dbUsername, $dbPassword, $dbName); header('Content-Type: application/json'); $method = $_SERVER['REQUEST_METHOD']; if($method == 'POST'){ $requestBody = file_get_contents('php://input'); $json = json_decode($requestBody, TRUE); $action = $json["result"]["action"]; $sql = "SELECT * FROM cars WHERE id = $action;"; $result = mysqli_query($conn, $sql); $resultCheck = mysqli_num_rows($result); if ($resultCheck > 0) { while ($row = mysqli_fetch_assoc($result)) { $answer = $row["answer"]; } } else { $speech = "Sorry, no answer for this."; } $response = new \stdClass(); $response->speech = $answer; $response->displayText = $answer; $response->source = "agent"; echo json_encode($response); } else { echo "Method not allowed"; } ?> 意图而不是I have a big car意图。显然,短语Car_colour在语法上更接近于Car_size意图的I have a big car训练短语,而不是I have a blue car意图的Car_colour训练短语。但是,我认为完全是因为我定义了不同的实体Do you know that I have a big car?Car_size,并将它们设置为上述两种意图中的必需参数,然后这将优先考虑@size和{{ 1}}用于训练然后触发时各自的意图。因此,我认为启动意图的Dialogflow ML训练和算法将首先关注这些词(@colourbig)以决定触发哪个意图,然后决定触发意图的整体语法和形式每个意图的训练短语。

因此,我的问题如下:参数和实体在意图短语的ML训练中起任何作用,因此触发了意图或者它们只存在以提供给“后端”(之后)意图是独立于它们触发的)关于用户问题的一些具体信息吗?

0 个答案:

没有答案