IBM Watson Natural Language Understanding получает только английские фразы

Небольшой для IBM Watson Natural Language Understanding получает только фразы на английском языке при получении POST (в php). Когда я POST французский, испанский или португальский не работают.

Мой код:

include_once('JSON.php'); $json = новые службы_JSON();

// Получить параметр $protocol = utf8_decode(($_GET['протокол']) ? $_GET['протокол'] : $_POST['протокол']); $report = utf8_decode(($_GET['отчет']) ? $_GET['отчет'] : $_POST['отчет']); $class = utf8_decode(($_GET['классифицированный']) ? $_GET['классифицированный'] : $_POST['классифицированный']);

//Позвонить Ватсону

    $report = strtoupper($report);         

    $username = 'xxxxxxx';
    $password = 'XXXXX';
    $url = 'https://gateway.watsonplatform.net/natural-language-understanding/api/v1/analyze?version=2017-02-27&text=Helloethics&features=entities,sentiment,keywords';

    // Set post arguments for call
    $post_args = array(
        'text' => $report
    );

  // Set header arguments for call
    $header_args = array(
        'Content-Type: text/plain',
        'Accept: application/json'
    );

  // Set options for REST call via curl
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);   
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_USERPWD, "xxxxxxxx:XXXXXXX");        
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header_args);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $post_args);

    $status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);

    // Actual REST call via curl and cleanup (closing) of curl call
    $result = curl_exec($curl);
    print_r($result);
    curl_close($curl);

POST/GET работает, только если используется английский язык, но другие языки возвращают Watson:

POST работает только в том случае, если используется английский язык, но другие языки возвращают Watson:

{ "язык": "pt", "сущности": [], "предупреждения": [ "ключевые слова: внутренняя ошибка сервера", "настроение: внутренняя ошибка сервера" ] }

Но когда я использую ЛОКАЛЬНУЮ ПЕРЕМЕННУЮ, хорошо, работает. Пожалуйста помогите! Спасибо!


person Vanessa Chad    schedule 21.06.2017    source источник


Ответы (1)


Решено!

В строке $report = utf8_decode(($_GET['отчет']) ? $_GET['отчет'] : $_POST['отчет']);

Просто удалите utf8_decode.

Работает!

person Vanessa Chad    schedule 22.06.2017