ML обучение, сущности и запуск намерений
Я создал очень простой агент в Dialogflow, который содержит только два дополнительных намерения вместе с Default Welcome Intent
и Default Fallback Intent
, Первое намерение называется Car_size
и включает в себя только обучающую фразу Do you know that I have a big car?
, Второе намерение называется Car_colour
и включает в себя только обучающую фразу I have a blue car
, Я также определил две сущности.
Первый называется @size
и включает в себя такие слова, как big
, small
и т.д., а второй называется @colour
и включает в себя такие слова, как blue
, black
, green
и т.д. Поэтому в Car_size
намерение слово big
идентифицируется как параметр @size
сущность и в Car_colour
намерение слово blue
это идентифицируется как параметр @colour
юридическое лицо. Я установил оба этих параметра по мере необходимости, чтобы получить правильную информацию в бэкэнде с помощью webhook.
PHP-скрипт, который получает запрос POST (webhook) от Dialogflow, выглядит следующим образом:
<?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
а также @colour
и установите их в качестве обязательных параметров в обоих вышеупомянутых намерениях, тогда это даст приоритет таким словам, как big
а также blue
для соответствующих намерений, когда они обучены и затем запущены. Поэтому я подумал, что обучение и алгоритм Dialogflow ML, который вызывает намерения, в первую очередь обратят внимание на эти слова ( big
, blue
) решить, какое намерение инициировать, а затем к общему синтаксису и форме обучающих фраз каждого намерения.
Поэтому мой вопрос заключается в следующем: играют ли параметры и сущности какую-либо роль в обучении ML фраз намерений и, следовательно, в каком намерении инициируется или они существуют только для предоставления "бэкэнду" (после того, как намерения инициируются независимо от их) какая-то конкретная информация по вопросу о пользователе?