Краткое руководство. Использование Node.js для вызова API анализа текста Cognitive ServicesQuickstart: Using Node.js to call the Text Analytics Cognitive Service

В этой статье содержатся сведения о том, как распознавать язык, анализировать тональность, извлекать ключевые фразы и идентифицировать связанные сущности, используя  API анализа текста и Node.js.This article shows you how to detect language, analyze sentiment, extract key phrases, and identify linked entities using the Text Analytics APIs with Node.JS.

Техническую документацию по API-интерфейсам см. в разделе API definitions (Определения API).Refer to the API definitions for technical documentation for the APIs.

Предварительные требованияPrerequisites

Ключ и конечная точка для ресурса Анализа текста.A key and endpoint for a Text Analytics resource. Ресурсами Azure, на которые вы подписаны, будет представлено семейство служб Azure Cognitive Services.Azure Cognitive Services are represented by Azure resources that you subscribe to. Создайте ресурс для Аналитики текста с помощью портала Azure или интерфейса командной строки Azure (CLI) на локальном компьютере.Create a resource for Text Analytics using the Azure portal or Azure CLI on your local machine. Также можно:You can also:

Определение языкаDetect language

API распознавания языка определяет язык текстового документа, используя метод определения языка.The Language Detection API detects the language of a text document, using the Detect Language method.

  1. Создайте проект на Node.js в используемой вами интегрированной среде разработки или в папке на рабочем столе.Create a new Node.JS project in your favorite IDE or a folder on your desktop.
  2. Добавьте в новый файл .js указанный ниже код.Add the code provided below to a new .js file.
  3. Замените значение accessKey ключом подписки из ресурса службы "Анализ текста" в Azure.Replace the accessKey value with a subscription key from your Text Analytics resource in Azure.
  4. Замените расположение в uri (в настоящее время westus) на свой регион регистрации.Replace the location in uri (currently westus) to the region you signed up for.
  5. Запустите программу из IDE или командной строки, например npm start или node detect.js.Run the program from your IDE or command line, for example npm start or node detect.js.
'use strict';

let https = require ('https');

// **********************************************
// *** Update or verify the following values. ***
// **********************************************

// Replace the accessKey string value with your valid access key.
let accessKey = 'enter key here';

// Replace or verify the region.

// You must use the same region in your REST API call as you used to obtain your access keys.
// For example, if you obtained your access keys from the westus region, replace 
// "westcentralus" in the URI below with "westus".

// NOTE: Free trial access keys are generated in the westcentralus region, so if you are using
// a free trial access key, you should not need to change this region.
let uri = 'westus.api.cognitive.microsoft.com';
let path = '/text/analytics/v2.1/languages';

let response_handler = function (response) {
    let body = '';
    response.on ('data', function (d) {
        body += d;
    });
    response.on ('end', function () {
        let body_ = JSON.parse (body);
        let body__ = JSON.stringify (body_, null, '  ');
        console.log (body__);
    });
    response.on ('error', function (e) {
        console.log ('Error: ' + e.message);
    });
};

let get_language = function (documents) {
    let body = JSON.stringify (documents);

    let request_params = {
        method : 'POST',
        hostname : uri,
        path : path,
        headers : {
            'Ocp-Apim-Subscription-Key' : accessKey,
        }
    };

    let req = https.request (request_params, response_handler);
    req.write (body);
    req.end ();
}

let documents = { 'documents': [
    { 'id': '1', 'text': 'This is a document written in English.' },
    { 'id': '2', 'text': 'Este es un document escrito en Español.' },
    { 'id': '3', 'text': '这是一个用中文写的文件' }
]};

get_language (documents);

Ответ функции распознавания языкаLanguage detection response

Успешный ответ возвращается в формате JSON, как показано в примере ниже.A successful response is returned in JSON, as shown in the following example:


{
   "documents": [
      {
         "id": "1",
         "detectedLanguages": [
            {
               "name": "English",
               "iso6391Name": "en",
               "score": 1.0
            }
         ]
      },
      {
         "id": "2",
         "detectedLanguages": [
            {
               "name": "Spanish",
               "iso6391Name": "es",
               "score": 1.0
            }
         ]
      },
      {
         "id": "3",
         "detectedLanguages": [
            {
               "name": "Chinese_Simplified",
               "iso6391Name": "zh_chs",
               "score": 1.0
            }
         ]
      }
   ],
   "errors": [

   ]
}


Анализ тональностиAnalyze sentiment

API анализа тональности определяет тональность набора текстовых записей с помощью метода определения тональности.The Sentiment Analysis API detects the sentiment of a set of text records, using the Sentiment method. Анализ тональности высказываний можно использовать, чтобы узнать, что клиенты думают о вашем бренде или торговой марке, анализируя необработанный текст для получения сведений о тональности выражений (положительная или отрицательная).Sentiment analysis can be used to find out what customers think of your brand or topic by analyzing raw text for clues about positive or negative sentiment. В следующем примере приведены оценки двух документов — на английском и на испанском языках.The following example provides scores for two documents, one in English and another in Spanish.

  1. Создайте проект на Node.js в используемой вами интегрированной среде разработки или в папке на рабочем столе.Create a new Node.JS project in your favorite IDE or a folder on your desktop.
  2. Добавьте в новый файл .js указанный ниже код.Add the code provided below to a new .js file.
  3. Замените значение accessKey ключом подписки из ресурса службы "Анализ текста" в Azure.Replace the accessKey value with a subscription key from your Text Analytics resource in Azure.
  4. Замените расположение в uri (в настоящее время westus) на свой регион регистрации.Replace the location in uri (currently westus) to the region you signed up for.
  5. Запустите программу из IDE или командной строки, например npm start или node sentiment.js.Run the program from your IDE or command line, for example npm start or node sentiment.js.
'use strict';

let https = require ('https');

// **********************************************
// *** Update or verify the following values. ***
// **********************************************

// Replace the accessKey string value with your valid access key.
let accessKey = 'enter key here';

// Replace or verify the region.

// You must use the same region in your REST API call as you used to obtain your access keys.
// For example, if you obtained your access keys from the westus region, replace 
// "westcentralus" in the URI below with "westus".

// NOTE: Free trial access keys are generated in the westcentralus region, so if you are using
// a free trial access key, you should not need to change this region.
let uri = 'westus.api.cognitive.microsoft.com';
let path = '/text/analytics/v2.1/sentiment';

let response_handler = function (response) {
    let body = '';
    response.on ('data', function (d) {
        body += d;
    });
    response.on ('end', function () {
        let body_ = JSON.parse (body);
        let body__ = JSON.stringify (body_, null, '  ');
        console.log (body__);
    });
    response.on ('error', function (e) {
        console.log ('Error: ' + e.message);
    });
};

let get_sentiments = function (documents) {
    let body = JSON.stringify (documents);

    let request_params = {
        method : 'POST',
        hostname : uri,
        path : path,
        headers : {
            'Ocp-Apim-Subscription-Key' : accessKey,
        }
    };

    let req = https.request (request_params, response_handler);
    req.write (body);
    req.end ();
}

let documents = { 'documents': [
    { 'id': '1', 'language': 'en', 'text': 'I really enjoy the new XBox One S. It has a clean look, it has 4K/HDR resolution and it is affordable.' },
    { 'id': '2', 'language': 'es', 'text': 'Este ha sido un dia terrible, llegué tarde al trabajo debido a un accidente automobilistico.' },
]};

get_sentiments (documents);

Ответ функции анализа тональностиSentiment analysis response

Результат определяется как положительный, если его значение близко к 1,0, и отрицательный — если значение близко к 0,0.The result is measured as positive if it's scored closer to 1.0 and negative if it's scored closer to 0.0. Успешный ответ возвращается в формате JSON, как показано в примере ниже.A successful response is returned in JSON, as shown in the following example:

{
   "documents": [
      {
         "score": 0.99984133243560791,
         "id": "1"
      },
      {
         "score": 0.024017512798309326,
         "id": "2"
      },
   ],
   "errors": [   ]
}

Извлечение ключевых фразExtract key phrases

API извлечения ключевых фраз извлекает ключевые фразы из текстового документа с помощью метода ключевых фраз.The Key Phrase Extraction API extracts key-phrases from a text document, using the Key Phrases method. Извлечение ключевых фраз используется для быстрого определения основных идей документа или текста.Key phrase extraction is used to quickly identify the main points of a document or text. Следующий пример извлекает ключевые фразы в документах на английском и испанском языках.The following example extracts key phrases for both English and Spanish documents.

  1. Создайте проект на Node.js в используемой вами интегрированной среде разработки или в папке на рабочем столе.Create a new Node.JS project in your favorite IDE or a folder on your desktop.
  2. Добавьте в новый файл .js указанный ниже код.Add the code provided below to a new .js file.
  3. Замените значение accessKey ключом подписки из ресурса службы "Анализ текста" в Azure.Replace the accessKey value with a subscription key from your Text Analytics resource in Azure.
  4. Замените расположение в uri (в настоящее время westus) на свой регион регистрации.Replace the location in uri (currently westus) to the region you signed up for.
  5. Запустите программу из IDE или командной строки, например npm start или node key-phrases.js.Run the program from your IDE or command line, for example npm start or node key-phrases.js.
'use strict';

let https = require ('https');

// **********************************************
// *** Update or verify the following values. ***
// **********************************************

// Replace the accessKey string value with your valid access key.
let accessKey = 'enter key here';

// Replace or verify the region.

// You must use the same region in your REST API call as you used to obtain your access keys.
// For example, if you obtained your access keys from the westus region, replace 
// "westcentralus" in the URI below with "westus".

// NOTE: Free trial access keys are generated in the westcentralus region, so if you are using
// a free trial access key, you should not need to change this region.
let uri = 'westus.api.cognitive.microsoft.com';
let path = '/text/analytics/v2.1/keyPhrases';

let response_handler = function (response) {
    let body = '';
    response.on ('data', function (d) {
        body += d;
    });
    response.on ('end', function () {
        let body_ = JSON.parse (body);
        let body__ = JSON.stringify (body_, null, '  ');
        console.log (body__);
    });
    response.on ('error', function (e) {
        console.log ('Error: ' + e.message);
    });
};

let get_key_phrases = function (documents) {
    let body = JSON.stringify (documents);

    let request_params = {
        method : 'POST',
        hostname : uri,
        path : path,
        headers : {
            'Ocp-Apim-Subscription-Key' : accessKey,
        }
    };

    let req = https.request (request_params, response_handler);
    req.write (body);
    req.end ();
}

let documents = { 'documents': [
    { 'id': '1', 'language': 'en', 'text': 'I really enjoy the new XBox One S. It has a clean look, it has 4K/HDR resolution and it is affordable.' },
    { 'id': '2', 'language': 'es', 'text': 'Si usted quiere comunicarse con Carlos, usted debe de llamarlo a su telefono movil. Carlos es muy responsable, pero necesita recibir una notificacion si hay algun problema.' },
    { 'id': '3', 'language': 'en', 'text': 'The Grand Hotel is a new hotel in the center of Seattle. It earned 5 stars in my review, and has the classiest decor I\'ve ever seen.' }
]};

get_key_phrases (documents);

Ответ функции извлечения ключевых фразKey phrase extraction response

Успешный ответ возвращается в формате JSON, как показано в примере ниже.A successful response is returned in JSON, as shown in the following example:

{
   "documents": [
      {
         "keyPhrases": [
            "HDR resolution",
            "new XBox",
            "clean look"
         ],
         "id": "1"
      },
      {
         "keyPhrases": [
            "Carlos",
            "notificacion",
            "algun problema",
            "telefono movil"
         ],
         "id": "2"
      },
      {
         "keyPhrases": [
            "new hotel",
            "Grand Hotel",
            "review",
            "center of Seattle",
            "classiest decor",
            "stars"
         ],
         "id": "3"
      }
   ],
   "errors": [  ]
}

Идентификация связанных сущностейIdentify linked entities

API сущностей определяет известные сущности в текстовом документе, используя метод Entities.The Entities API identifies well-known entities in a text document, using the Entities method. Сущности извлекают слова из текста (например, "США"), а затем предоставляют вам тип и/или ссылки на Википедию для таких слов.Entities extract words from text, like "United States", then give you the type and/or Wikipedia link for this word(s). Слово "США" имеет тип location, ссылка на Википедию для него следующая: https://en.wikipedia.org/wiki/United_States.The type for "United States" is location, while the link to Wikipedia is https://en.wikipedia.org/wiki/United_States. Следующий пример определяет сущности в документах на английском языке.The following example identifies entities for English documents.

  1. Создайте проект на Node.js в используемой вами интегрированной среде разработки или в папке на рабочем столе.Create a new Node.JS project in your favorite IDE or a folder on your desktop.
  2. Добавьте в новый файл .js указанный ниже код.Add the code provided below to a new .js file.
  3. Замените значение accessKey ключом подписки из ресурса службы "Анализ текста" в Azure.Replace the accessKey value with a subscription key from your Text Analytics resource in Azure.
  4. Замените расположение в uri (в настоящее время westus) на свой регион регистрации.Replace the location in uri (currently westus) to the region you signed up for.
  5. Запустите программу из IDE или командной строки, например npm start или node entities.js.Run the program from your IDE or command line, for example npm start or node entities.js.
'use strict';

let https = require ('https');

// **********************************************
// *** Update or verify the following values. ***
// **********************************************

// Replace the accessKey string value with your valid access key.
let accessKey = 'enter key here';

// Replace or verify the region.

// You must use the same region in your REST API call as you used to obtain your access keys.
// For example, if you obtained your access keys from the westus region, replace 
// "westcentralus" in the URI below with "westus".

// NOTE: Free trial access keys are generated in the westcentralus region, so if you are using
// a free trial access key, you should not need to change this region.
let uri = 'westus.api.cognitive.microsoft.com';
let path = '/text/analytics/v2.1/entities';

let response_handler = function (response) {
    let body = '';
    response.on ('data', function (d) {
        body += d;
    });
    response.on ('end', function () {
        let body_ = JSON.parse (body);
        let body__ = JSON.stringify (body_, null, '  ');
        console.log (body__);
    });
    response.on ('error', function (e) {
        console.log ('Error: ' + e.message);
    });
};

let get_entities = function (documents) {
    let body = JSON.stringify (documents);

    let request_params = {
        method : 'POST',
        hostname : uri,
        path : path,
        headers : {
            'Ocp-Apim-Subscription-Key' : accessKey,
        }
    };

    let req = https.request (request_params, response_handler);
    req.write (body);
    req.end ();
}

let documents = { 'documents': [
    { 'id': '1', 'language': 'en', 'text': 'Microsoft is an It company.' }
]};

get_entities (documents);

Ответ функции извлечения сущностейEntity extraction response

Успешный ответ возвращается в формате JSON, как показано в примере ниже.A successful response is returned in JSON, as shown in the following example:

{  
   "documents":[  
      {  
         "id":"1",
         "entities":[  
            {  
               "name":"Microsoft",
               "matches":[  
                  {  
                     "wikipediaScore":0.20872054383103444,
                     "entityTypeScore":0.99996185302734375,
                     "text":"Microsoft",
                     "offset":0,
                     "length":9
                  }
               ],
               "wikipediaLanguage":"en",
               "wikipediaId":"Microsoft",
               "wikipediaUrl":"https://en.wikipedia.org/wiki/Microsoft",
               "bingId":"a093e9b9-90f5-a3d5-c4b8-5855e1b01f85",
               "type":"Organization"
            },
            {  
               "name":"Technology company",
               "matches":[  
                  {  
                     "wikipediaScore":0.82123868042800585,
                     "text":"It company",
                     "offset":16,
                     "length":10
                  }
               ],
               "wikipediaLanguage":"en",
               "wikipediaId":"Technology company",
               "wikipediaUrl":"https://en.wikipedia.org/wiki/Technology_company",
               "bingId":"bc30426e-22ae-7a35-f24b-454722a47d8f"
            }
         ]
      }
   ],
    "errors":[]
}

Дополнительная информацияNext steps

Text Analytics with Power BI (Анализ текста с использованием Power BI)Text Analytics With Power BI

См. такжеSee also

Text Analytics overview (Общие сведения об анализе текста)Text Analytics overview
Часто задаваемые вопросыFrequently asked questions (FAQ)