Guida introduttiva: Uso dell'API REST di Python per chiamare il servizio cognitivo Analisi del testoQuickstart: Using the Python REST API to call the Text Analytics Cognitive Service

Usare questo argomento di avvio rapido per iniziare ad analizzare la lingua con l'API REST Analisi del testo e Python.Use this quickstart to begin analyzing language with the Text Analytics REST API and Python. Questo articolo illustra come rilevare la lingua, analizzare il sentiment, estrarre le frasi chiave e identificare le entità collegate.This article shows you how to detect language, analyze sentiment, extract key phrases, and identify linked entities.

Per la documentazione tecnica delle API, vedere le definizioni delle API.Refer to the API definitions for technical documentation for the APIs.

PrerequisitiPrerequisites

  • Python 3.xPython 3.x

  • La libreria di richieste di Python.The Python requests library

    È possibile installare la libreria con questo comando:You can install the library with this command:

    pip install --upgrade requests
    

Una chiave e un endpoint per una risorsa di Analisi del testo.A key and endpoint for a Text Analytics resource. I Servizi cognitivi di Azure sono rappresentati dalle risorse di Azure a cui si effettua la sottoscrizione.Azure Cognitive Services are represented by Azure resources that you subscribe to. Creare una risorsa per Analisi del testo usando il portale di Azure o l'interfaccia della riga di comando di Azure nel computer locale.Create a resource for Text Analytics using the Azure portal or Azure CLI on your local machine. È anche possibile:You can also:

Creare una nuova applicazione PythonCreate a new Python application

Creare una nuova applicazione Python nell'editor preferito o nell'ambiente di sviluppo integrato.Create a new Python application in your favorite editor or IDE. Aggiungere le istruzioni import seguenti al file.Add the following imports to your file.

import requests
# pprint is used to format the JSON response
from pprint import pprint

Creare le variabili per l'endpoint e la chiave della sottoscrizione di Azure della risorsa.Create variables for your resource's Azure endpoint and subscription key. Ottenere questi valori dalle variabili di ambiente TEXT_ANALYTICS_SUBSCRIPTION_KEY e TEXT_ANALYTICS_ENDPOINT.Obtain these values from the environment variables TEXT_ANALYTICS_SUBSCRIPTION_KEY and TEXT_ANALYTICS_ENDPOINT. Se queste variabili di ambiente sono state create dopo aver iniziato a modificare l'applicazione, sarà necessario chiudere e riaprire l'editor, l'IDE o la shell in uso per accedervi.If you created these environment variables after you began editing the application, you will need to close and reopen the editor, IDE, or shell you are using to access the variables.

import os

key_var_name = 'TEXT_ANALYTICS_SUBSCRIPTION_KEY'
if not key_var_name in os.environ:
    raise Exception('Please set/export the environment variable: {}'.format(key_var_name))
subscription_key = os.environ[key_var_name]

endpoint_var_name = 'TEXT_ANALYTICS_ENDPOINT'
if not endpoint_var_name in os.environ:
    raise Exception('Please set/export the environment variable: {}'.format(endpoint_var_name))
endpoint = os.environ[endpoint_var_name]

Le sezioni successive descrivono come chiamare ciascuna delle funzionalità dell'API.The following sections describe how to call each of the API's features.

Rilevamento delle lingueDetect languages

Aggiungere /text/analytics/v2.1/languages all'endpoint di base di Analisi del testo per formare l'URL di rilevamento delle lingue.Append /text/analytics/v2.1/languages to the Text Analytics base endpoint to form the language detection URL. Ad esempio: https://<your-custom-subdomain>.cognitiveservices.azure.com/text/analytics/v2.1/languagesFor example: https://<your-custom-subdomain>.cognitiveservices.azure.com/text/analytics/v2.1/languages

language_api_url = endpoint + "/text/analytics/v2.1/languages"

Il payload dell'API è costituito da un elenco di documents, che sono tuple contenenti un id e un attributo text.The payload to the API consists of a list of documents, which are tuples containing an id and a text attribute. Nell'attributo text viene memorizzato il testo da analizzare, mentre l'id può essere un valore qualsiasi.The text attribute stores the text to be analyzed, and the id can be any value.

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": "这是一个用中文写的文件"}
]}

Usare la libreria di richieste per inviare i documenti all'API.Use the Requests library to send the documents to the API. Aggiungere la chiave di sottoscrizione all'intestazione Ocp-Apim-Subscription-Key e inviare la richiesta con requests.post().Add your subscription key to the Ocp-Apim-Subscription-Key header, and send the request with requests.post().

headers = {"Ocp-Apim-Subscription-Key": subscription_key}
response = requests.post(language_api_url, headers=headers, json=documents)
languages = response.json()
pprint(languages)

OutputOutput

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

Analizzare la valutazioneAnalyze sentiment

Per rilevare il sentiment (che può essere positivo o negativo) di un set di documenti, aggiungere /text/analytics/v2.1/sentiment all'endpoint di base di Analisi del testo per formare l'URL di rilevamento delle lingue.To detect the sentiment (which ranges between positive or negative) of a set of documents, append /text/analytics/v2.1/sentiment to the Text Analytics base endpoint to form the language detection URL. Ad esempio: https://<your-custom-subdomain>.cognitiveservices.azure.com/text/analytics/v2.1/sentimentFor example: https://<your-custom-subdomain>.cognitiveservices.azure.com/text/analytics/v2.1/sentiment

sentiment_url = endpoint + "/text/analytics/v2.1/sentiment"

Come nell'esempio del rilevamento delle lingue, creare un dizionario con una chiave documents costituita da un elenco di documenti.As with the language detection example, create a dictionary with a documents key that consists of a list of documents. Ogni documento è una tupla costituita da id, text da analizzare e language del testo.Each document is a tuple consisting of the id, the text to be analyzed and the language of the text.

documents = {"documents": [
    {"id": "1", "language": "en",
        "text": "I had a wonderful experience! The rooms were wonderful and the staff was helpful."},
    {"id": "2", "language": "en",
        "text": "I had a terrible time at the hotel. The staff was rude and the food was awful."},
    {"id": "3", "language": "es",
        "text": "Los caminos que llevan hasta Monte Rainier son espectaculares y hermosos."},
    {"id": "4", "language": "es",
     "text": "La carretera estaba atascada. Había mucho tráfico el día de ayer."}
]}

Usare la libreria di richieste per inviare i documenti all'API.Use the Requests library to send the documents to the API. Aggiungere la chiave di sottoscrizione all'intestazione Ocp-Apim-Subscription-Key e inviare la richiesta con requests.post().Add your subscription key to the Ocp-Apim-Subscription-Key header, and send the request with requests.post().

headers = {"Ocp-Apim-Subscription-Key": subscription_key}
response = requests.post(sentiment_url, headers=headers, json=documents)
sentiments = response.json()
pprint(sentiments)

OutputOutput

Il punteggio del sentiment per un documento è compreso tra 0,0 e 1,0, con il punteggio più alto che indica un sentiment più positivo.The sentiment score for a document is between 0.0 and 1.0, with a higher score indicating a more positive sentiment.

{
  "documents":[
    {
      "id":"1",
      "score":0.9708490371704102
    },
    {
      "id":"2",
      "score":0.0019068121910095215
    },
    {
      "id":"3",
      "score":0.7456425428390503
    },
    {
      "id":"4",
      "score":0.334433376789093
    }
  ],
  "errors":[]
}

Estrarre le frasi chiaveExtract key phrases

Per estrarre le frasi chiave da un set di documenti, aggiungere /text/analytics/v2.1/keyPhrases all'endpoint di base di Analisi del testo per formare l'URL di rilevamento delle lingue.To extract the key phrases from a set of documents, append /text/analytics/v2.1/keyPhrases to the Text Analytics base endpoint to form the language detection URL. Ad esempio: https://<your-custom-subdomain>.cognitiveservices.azure.com/text/analytics/v2.1/keyPhrasesFor example: https://<your-custom-subdomain>.cognitiveservices.azure.com/text/analytics/v2.1/keyPhrases

keyphrase_url = endpoint + "/text/analytics/v2.1/keyphrases"

La raccolta di documenti è la stessa usata per l'esempio di analisi del sentiment.This collection of documents is the same used for the sentiment analysis example.

documents = {"documents": [
    {"id": "1", "language": "en",
        "text": "I had a wonderful experience! The rooms were wonderful and the staff was helpful."},
    {"id": "2", "language": "en",
        "text": "I had a terrible time at the hotel. The staff was rude and the food was awful."},
    {"id": "3", "language": "es",
        "text": "Los caminos que llevan hasta Monte Rainier son espectaculares y hermosos."},
    {"id": "4", "language": "es",
     "text": "La carretera estaba atascada. Había mucho tráfico el día de ayer."}
]}

Usare la libreria di richieste per inviare i documenti all'API.Use the Requests library to send the documents to the API. Aggiungere la chiave di sottoscrizione all'intestazione Ocp-Apim-Subscription-Key e inviare la richiesta con requests.post().Add your subscription key to the Ocp-Apim-Subscription-Key header, and send the request with requests.post().

headers = {"Ocp-Apim-Subscription-Key": subscription_key}
response = requests.post(keyphrase_url, headers=headers, json=documents)
key_phrases = response.json()
pprint(key_phrases)

OutputOutput

{
  "documents":[
    {
      "keyPhrases":[
        "wonderful experience",
        "staff",
        "rooms"
      ],
      "id":"1"
    },
    {
      "keyPhrases":[
        "food",
        "terrible time",
        "hotel",
        "staff"
      ],
      "id":"2"
    },
    {
      "keyPhrases":[
        "Monte Rainier",
        "caminos"
      ],
      "id":"3"
    },
    {
      "keyPhrases":[
        "carretera",
        "tráfico",
        "día"
      ],
      "id":"4"
    }
  ],
  "errors":[]
}

Identificare le entitàIdentify Entities

Per identificare entità note (persone, luoghi e cose) in documenti di testo, aggiungere /text/analytics/v2.1/entities all'endpoint di base di Analisi del testo per formare l'URL di rilevamento delle lingue.To identify well-known entities (people, places, and things) in text documents, append /text/analytics/v2.1/entities to the Text Analytics base endpoint to form the language detection URL. Ad esempio: https://<your-custom-subdomain>.cognitiveservices.azure.com/text/analytics/v2.1/entitiesFor example: https://<your-custom-subdomain>.cognitiveservices.azure.com/text/analytics/v2.1/entities

entities_url = endpoint + "/text/analytics/v2.1/entities"

Creare una raccolta di documenti, come negli esempi precedenti.Create a collection of documents, like in the previous examples.

documents = {"documents": [
    {"id": "1", "text": "Microsoft was founded by Bill Gates and Paul Allen on April 4, 1975, to develop and sell BASIC interpreters for the Altair 8800."}
]}

Usare la libreria di richieste per inviare i documenti all'API.Use the Requests library to send the documents to the API. Aggiungere la chiave di sottoscrizione all'intestazione Ocp-Apim-Subscription-Key e inviare la richiesta con requests.post().Add your subscription key to the Ocp-Apim-Subscription-Key header, and send the request with requests.post().

headers = {"Ocp-Apim-Subscription-Key": subscription_key}
response = requests.post(entities_url, headers=headers, json=documents)
entities = response.json()
pprint(entities)

OutputOutput

{
   "documents" : [
      {
         "id" : "1",
         "entities" : [
            {
               "name" : "Microsoft",
               "matches" : [
                  {
                     "wikipediaScore" : 0.49897989655674446,
                     "entityTypeScore" : 1.0,
                     "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" : "Bill Gates",
               "matches" : [
                  {
                     "wikipediaScore" : 0.58357497243368983,
                     "entityTypeScore" : 0.999847412109375,
                     "text" : "Bill Gates",
                     "offset" : 25,
                     "length" : 10
                  }
               ],
               "wikipediaLanguage" : "en",
               "wikipediaId" : "Bill Gates",
               "wikipediaUrl" : "https://en.wikipedia.org/wiki/Bill_Gates",
               "bingId" : "0d47c987-0042-5576-15e8-97af601614fa",
               "type" : "Person"
            },
            {
               "name" : "Paul Allen",
               "matches" : [
                  {
                     "wikipediaScore" : 0.52977533244176866,
                     "entityTypeScore" : 0.99884098768234253,
                     "text" : "Paul Allen",
                     "offset" : 40,
                     "length" : 10
                  }
               ],
               "wikipediaLanguage" : "en",
               "wikipediaId" : "Paul Allen",
               "wikipediaUrl" : "https://en.wikipedia.org/wiki/Paul_Allen",
               "bingId" : "df2c4376-9923-6a54-893f-2ee5a5badbc7",
               "type" : "Person"
            },
            {
               "name" : "April 4",
               "matches" : [
                  {
                     "wikipediaScore" : 0.37220990924571939,
                     "entityTypeScore" : 0.8,
                     "text" : "April 4",
                     "offset" : 54,
                     "length" : 7
                  }
               ],
               "wikipediaLanguage" : "en",
               "wikipediaId" : "April 4",
               "wikipediaUrl" : "https://en.wikipedia.org/wiki/April_4",
               "bingId" : "52535f87-235e-b513-54fe-c03e4233ac6e",
               "type" : "Other"
            },
            {
               "name" : "April 4, 1975",
               "matches" : [
                  {
                     "entityTypeScore" : 0.8,
                     "text" : "April 4, 1975",
                     "offset" : 54,
                     "length" : 13
                  }
               ],
               "type" : "DateTime",
               "subType" : "Date"
            },
            {
               "name" : "BASIC",
               "matches" : [
                  {
                     "wikipediaScore" : 0.35686239324548041,
                     "entityTypeScore" : 0.8,
                     "text" : "BASIC",
                     "offset" : 89,
                     "length" : 5
                  }
               ],
               "wikipediaLanguage" : "en",
               "wikipediaId" : "BASIC",
               "wikipediaUrl" : "https://en.wikipedia.org/wiki/BASIC",
               "bingId" : "5b16443d-501c-58f3-352e-611bbe75aa6e",
               "type" : "Other"
            },
            {
               "name" : "Altair 8800",
               "matches" : [
                  {
                     "wikipediaScore" : 0.868324676465041,
                     "entityTypeScore" : 0.8,
                     "text" : "Altair 8800",
                     "offset" : 116,
                     "length" : 11
                  }
               ],
               "wikipediaLanguage" : "en",
               "wikipediaId" : "Altair 8800",
               "wikipediaUrl" : "https://en.wikipedia.org/wiki/Altair_8800",
               "bingId" : "7216c654-3779-68a2-c7b7-12ff3dad5606",
               "type" : "Other"
            },
            {
               "name" : "Altair",
               "matches" : [
                  {
                     "entityTypeScore" : 0.52505272626876831,
                     "text" : "Altair",
                     "offset" : 116,
                     "length" : 6
                  }
               ],
               "type" : "Organization"
            },
            {
               "name" : "8800",
               "matches" : [
                  {
                     "entityTypeScore" : 0.8,
                     "text" : "8800",
                     "offset" : 123,
                     "length" : 4
                  }
               ],
               "type" : "Quantity",
               "subType" : "Number"
            }
         ]
      }
   ],
   "errors" : []
}

Passaggi successiviNext steps

Vedere ancheSee also

Panoramica di Analisi del testoText Analytics overview
Domande frequentiFrequently asked questions (FAQ)