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 фраз намерений и, следовательно, в каком намерении инициируется или они существуют только для предоставления "бэкэнду" (после того, как намерения инициируются независимо от их) какая-то конкретная информация по вопросу о пользователе?

0 ответов

Другие вопросы по тегам