Analisi del sentiment

L'analisi del sentiment esamina il testo specificato e identifica la variante prevalente l'opinione emotiva all'interno del testo, soprattutto per determinare l'atteggiamento di chi scrive positiva, negativa o neutra. L'analisi del sentiment viene eseguita tramite analyzeSentiment. Per informazioni sulle lingue supportate dall'API Natural Language, consulta la sezione Supporto lingue. Per informazioni su come interpretare i valori di sentiment score e magnitude inclusi in consulta la pagina Interpretazione dei valori dell'analisi del sentiment.

Questa sezione illustra alcuni modi per rilevare il sentiment in un documento. Devi inviare una richiesta separata per ciascun documento.

Analisi del sentiment in una stringa

Ecco un esempio di esecuzione dell'analisi del sentiment su una stringa di testo inviata direttamente all'API Natural Language:

Protocollo

Per analizzare il sentiment in un documento, invia una richiesta POST al documents:analyzeSentiment il metodo REST e fornire il corpo della richiesta appropriato, come mostrato nell'esempio seguente.

L'esempio utilizza gcloud auth application-default print-access-token per ottenere un token di accesso per un account di servizio configurato utilizzando gcloud CLI della Google Cloud Platform. Per istruzioni sull'installazione di gcloud CLI, configura un progetto con un account di servizio consulta la Guida rapida.

curl -X POST \
     -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
     -H "Content-Type: application/json; charset=utf-8" \
     --data "{
  'encodingType': 'UTF8',
  'document': {
    'type': 'PLAIN_TEXT',
    'content': 'Enjoy your vacation!'
  }
}" "https://language.googleapis.com/v2/documents:analyzeSentiment"

Se non specifichi document.language_code, la lingua verrà automaticamente rilevato. Per informazioni sulle lingue supportate dall'API Natural Language, consulta la sezione Supporto lingue. Consulta: Document documentazione di riferimento per ulteriori informazioni sulla configurazione del corpo della richiesta.

Se la richiesta riesce, il server restituisce un codice di stato HTTP 200 OK e la risposta in formato JSON:

{
  "documentSentiment": {
    "magnitude": 0.8,
    "score": 0.8
  },
  "language": "en",
  "sentences": [
    {
      "text": {
        "content": "Enjoy your vacation!",
        "beginOffset": 0
      },
      "sentiment": {
        "magnitude": 0.8,
        "score": 0.8
      }
    }
  ]
}

documentSentiment.score indica un sentiment positivo con un valore maggiore di zero e un valore negativo con un valore inferiore a zero.

gcloud

Consulta le analyze-sentiment per i dettagli completi.

Per eseguire l'analisi del sentiment, utilizza gcloud CLI utilizza il flag --content per identificare i contenuti da analizzare:

gcloud ml language analyze-sentiment --content="Enjoy your vacation!"

Se la richiesta riesce, il server restituisce una risposta in formato JSON:

{
  "documentSentiment": {
    "magnitude": 0.8,
    "score": 0.8
  },
  "language": "en",
  "sentences": [
    {
      "text": {
        "content": "Enjoy your vacation!",
        "beginOffset": 0
      },
      "sentiment": {
        "magnitude": 0.8,
        "score": 0.8
      }
    }
  ]
}

documentSentiment.score indica un sentiment positivo con un valore maggiore di zero e un valore negativo con un valore inferiore a zero.

Go

Per scoprire come installare e utilizzare la libreria client per Natural Language, vedi Librerie client di Natural Language. Per ulteriori informazioni, consulta API Natural Language Go documentazione di riferimento.

Per eseguire l'autenticazione in Natural Language, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

import (
	"context"
	"fmt"
	"io"

	language "cloud.google.com/go/language/apiv2"
	"cloud.google.com/go/language/apiv2/languagepb"
)

// analyzeSentiment sends a string of text to the Cloud Natural Language API to
// assess the sentiment of the text.
func analyzeSentiment(w io.Writer, text string) error {
	ctx := context.Background()

	// Initialize client.
	client, err := language.NewClient(ctx)
	if err != nil {
		return err
	}
	defer client.Close()

	resp, err := client.AnalyzeSentiment(ctx, &languagepb.AnalyzeSentimentRequest{
		Document: &languagepb.Document{
			Source: &languagepb.Document_Content{
				Content: text,
			},
			Type: languagepb.Document_PLAIN_TEXT,
		},
		EncodingType: languagepb.EncodingType_UTF8,
	})

	if err != nil {
		return fmt.Errorf("AnalyzeSentiment: %w", err)
	}
	fmt.Fprintf(w, "Response: %q\n", resp)

	return nil
}

Java

Per scoprire come installare e utilizzare la libreria client per Natural Language, vedi Librerie client di Natural Language. Per ulteriori informazioni, consulta API Natural Language Java documentazione di riferimento.

Per eseguire l'autenticazione in Natural Language, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

// Instantiate the Language client com.google.cloud.language.v2.LanguageServiceClient
try (LanguageServiceClient language = LanguageServiceClient.create()) {
  Document doc = Document.newBuilder().setContent(text).setType(Type.PLAIN_TEXT).build();
  AnalyzeSentimentResponse response = language.analyzeSentiment(doc);
  Sentiment sentiment = response.getDocumentSentiment();
  if (sentiment == null) {
    System.out.println("No sentiment found");
  } else {
    System.out.printf("Sentiment magnitude: %.3f\n", sentiment.getMagnitude());
    System.out.printf("Sentiment score: %.3f\n", sentiment.getScore());
  }
  return sentiment;
}

Python

Per scoprire come installare e utilizzare la libreria client per Natural Language, vedi Librerie client di Natural Language. Per ulteriori informazioni, consulta API Natural Language Python documentazione di riferimento.

Per eseguire l'autenticazione in Natural Language, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

from google.cloud import language_v2


def sample_analyze_sentiment(text_content: str = "I am so happy and joyful.") -> None:
    """
    Analyzes Sentiment in a string.

    Args:
      text_content: The text content to analyze.
    """

    client = language_v2.LanguageServiceClient()

    # text_content = 'I am so happy and joyful.'

    # Available types: PLAIN_TEXT, HTML
    document_type_in_plain_text = language_v2.Document.Type.PLAIN_TEXT

    # Optional. If not specified, the language is automatically detected.
    # For list of supported languages:
    # https://cloud.google.com/natural-language/docs/languages
    language_code = "en"
    document = {
        "content": text_content,
        "type_": document_type_in_plain_text,
        "language_code": language_code,
    }

    # Available values: NONE, UTF8, UTF16, UTF32
    # See https://cloud.google.com/natural-language/docs/reference/rest/v2/EncodingType.
    encoding_type = language_v2.EncodingType.UTF8

    response = client.analyze_sentiment(
        request={"document": document, "encoding_type": encoding_type}
    )
    # Get overall sentiment of the input document
    print(f"Document sentiment score: {response.document_sentiment.score}")
    print(f"Document sentiment magnitude: {response.document_sentiment.magnitude}")
    # Get sentiment for all sentences in the document
    for sentence in response.sentences:
        print(f"Sentence text: {sentence.text.content}")
        print(f"Sentence sentiment score: {sentence.sentiment.score}")
        print(f"Sentence sentiment magnitude: {sentence.sentiment.magnitude}")

    # Get the language of the text, which will be the same as
    # the language specified in the request or, if not specified,
    # the automatically-detected language.
    print(f"Language of the text: {response.language_code}")

Linguaggi aggiuntivi

C#: Segui le Istruzioni per la configurazione di C# Nella pagina delle librerie client e poi visita Documentazione di riferimento di Natural Language per .NET.

PHP Segui le Istruzioni per la configurazione dei file PHP Nella pagina delle librerie client e poi visita Documentazione di riferimento di Natural Language per PHP.

Rubino: Segui le Istruzioni per la configurazione di Ruby Nella pagina delle librerie client e poi visita Documentazione di riferimento di Natural Language per Ruby.

Analisi del sentiment da Cloud Storage

Per comodità, l'API Natural Language può eseguire il sentiment l'analisi direttamente su un file situato in Cloud Storage, senza la di inviare i contenuti del file nel corpo della richiesta.

Ecco un esempio di esecuzione dell'analisi del sentiment su un file situato in Cloud spazio di archiviazione.

Protocollo

Per analizzare il sentiment da un documento archiviato in Cloud Storage, invia una richiesta POST a documents:analyzeSentiment il metodo REST e fornire il corpo della richiesta appropriato con il percorso del documento come mostrato nell'esempio seguente.

curl -X POST \
     -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
     -H "Content-Type: application/json; charset=utf-8" \
     --data "{
  'document':{
    'type':'PLAIN_TEXT',
    'gcsContentUri':'gs://<bucket-name>/<object-name>'
  }
}" "https://language.googleapis.com/v2/documents:analyzeSentiment"

Se non specifichi document.language_code, la lingua verrà automaticamente rilevato. Per informazioni sulle lingue supportate dall'API Natural Language, consulta la sezione Supporto lingue. Consulta: Document documentazione di riferimento per ulteriori informazioni sulla configurazione del corpo della richiesta.

Se la richiesta riesce, il server restituisce un codice di stato HTTP 200 OK e la risposta in formato JSON:

{
  "documentSentiment": {
    "magnitude": 0.8,
    "score": 0.8
  },
  "language_code": "en",
  "sentences": [
    {
      "text": {
        "content": "Enjoy your vacation!",
        "beginOffset": 0
      },
      "sentiment": {
        "magnitude": 0.8,
        "score": 0.8
      }
    }
  ]
}

documentSentiment.score indica un sentiment positivo con un valore maggiore di zero e un valore negativo con un valore inferiore a zero.

gcloud

Consulta le analyze-sentiment per i dettagli completi.

Per eseguire l'analisi del sentiment su un file in Cloud Storage, utilizza gcloud a riga di comando e usare il flag --content-file per identificare il file percorso che include i contenuti da analizzare:

gcloud ml language analyze-sentiment --content-file=gs://YOUR_BUCKET_NAME/YOUR_FILE_NAME

Se la richiesta riesce, il server restituisce una risposta in formato JSON:

{
  "documentSentiment": {
    "magnitude": 0.8,
    "score": 0.8
  },
  "language": "en",
  "sentences": [
    {
      "text": {
        "content": "Enjoy your vacation!",
        "beginOffset": 0
      },
      "sentiment": {
        "magnitude": 0.8,
        "score": 0.8
      }
    }
  ]
}

documentSentiment.score indica un sentiment positivo con un valore maggiore di zero e un valore negativo con un valore inferiore a zero.

Go

Per scoprire come installare e utilizzare la libreria client per Natural Language, vedi Librerie client di Natural Language. Per ulteriori informazioni, consulta API Natural Language Go documentazione di riferimento.

Per eseguire l'autenticazione in Natural Language, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.


func analyzeSentimentFromGCS(ctx context.Context, gcsURI string) (*languagepb.AnalyzeSentimentResponse, error) {
	return client.AnalyzeSentiment(ctx, &languagepb.AnalyzeSentimentRequest{
		Document: &languagepb.Document{
			Source: &languagepb.Document_GcsContentUri{
				GcsContentUri: gcsURI,
			},
			Type: languagepb.Document_PLAIN_TEXT,
		},
	})
}

Java

Per scoprire come installare e utilizzare la libreria client per Natural Language, vedi Librerie client di Natural Language. Per ulteriori informazioni, consulta API Natural Language Java documentazione di riferimento.

Per eseguire l'autenticazione in Natural Language, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

// Instantiate the Language client com.google.cloud.language.v2.LanguageServiceClient
try (LanguageServiceClient language = LanguageServiceClient.create()) {
  Document doc =
      Document.newBuilder().setGcsContentUri(gcsUri).setType(Type.PLAIN_TEXT).build();
  AnalyzeSentimentResponse response = language.analyzeSentiment(doc);
  Sentiment sentiment = response.getDocumentSentiment();
  if (sentiment == null) {
    System.out.println("No sentiment found");
  } else {
    System.out.printf("Sentiment magnitude : %.3f\n", sentiment.getMagnitude());
    System.out.printf("Sentiment score : %.3f\n", sentiment.getScore());
  }
  return sentiment;
}

Node.js

Per scoprire come installare e utilizzare la libreria client per Natural Language, vedi Librerie client di Natural Language. Per ulteriori informazioni, consulta API Natural Language Node.js documentazione di riferimento.

Per eseguire l'autenticazione in Natural Language, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

// Imports the Google Cloud client library
const language = require('@google-cloud/language').v2;

// Creates a client
const client = new language.LanguageServiceClient();

/**
 * TODO(developer): Uncomment the following lines to run this code
 */
// const bucketName = 'Your bucket name, e.g. my-bucket';
// const fileName = 'Your file name, e.g. my-file.txt';

// Prepares a document, representing a text file in Cloud Storage
const document = {
  gcsContentUri: `gs://${bucketName}/${fileName}`,
  type: 'PLAIN_TEXT',
};

// Detects the sentiment of the document
const [result] = await client.analyzeSentiment({document});

const sentiment = result.documentSentiment;
console.log('Document sentiment:');
console.log(`  Score: ${sentiment.score}`);
console.log(`  Magnitude: ${sentiment.magnitude}`);

const sentences = result.sentences;
sentences.forEach(sentence => {
  console.log(`Sentence: ${sentence.text.content}`);
  console.log(`  Score: ${sentence.sentiment.score}`);
  console.log(`  Magnitude: ${sentence.sentiment.magnitude}`);
});

Python

Per scoprire come installare e utilizzare la libreria client per Natural Language, vedi Librerie client di Natural Language. Per ulteriori informazioni, consulta API Natural Language Python documentazione di riferimento.

Per eseguire l'autenticazione in Natural Language, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

from google.cloud import language_v2


def sample_analyze_sentiment(
    gcs_content_uri: str = "gs://cloud-samples-data/language/sentiment-positive.txt",
) -> None:
    """
    Analyzes Sentiment in text file stored in Cloud Storage.

    Args:
      gcs_content_uri: Google Cloud Storage URI where the file content is located.
        e.g. gs://[Your Bucket]/[Path to File]
    """

    client = language_v2.LanguageServiceClient()

    # Available types: PLAIN_TEXT, HTML
    document_type_in_plain_text = language_v2.Document.Type.PLAIN_TEXT

    # Optional. If not specified, the language is automatically detected.
    # For list of supported languages:
    # https://cloud.google.com/natural-language/docs/languages
    language_code = "en"
    document = {
        "gcs_content_uri": gcs_content_uri,
        "type_": document_type_in_plain_text,
        "language_code": language_code,
    }

    # Available values: NONE, UTF8, UTF16, UTF32
    # See https://cloud.google.com/natural-language/docs/reference/rest/v2/EncodingType.
    encoding_type = language_v2.EncodingType.UTF8

    response = client.analyze_sentiment(
        request={"document": document, "encoding_type": encoding_type}
    )
    # Get overall sentiment of the input document
    print(f"Document sentiment score: {response.document_sentiment.score}")
    print(f"Document sentiment magnitude: {response.document_sentiment.magnitude}")
    # Get sentiment for all sentences in the document
    for sentence in response.sentences:
        print(f"Sentence text: {sentence.text.content}")
        print(f"Sentence sentiment score: {sentence.sentiment.score}")
        print(f"Sentence sentiment magnitude: {sentence.sentiment.magnitude}")

    # Get the language of the text, which will be the same as
    # the language specified in the request or, if not specified,
    # the automatically-detected language.
    print(f"Language of the text: {response.language_code}")

Linguaggi aggiuntivi

C#: Segui le Istruzioni per la configurazione di C# Nella pagina delle librerie client e poi visita Documentazione di riferimento di Natural Language per .NET.

PHP Segui le Istruzioni per la configurazione dei file PHP Nella pagina delle librerie client e poi visita Documentazione di riferimento di Natural Language per PHP.

Rubino: Segui le Istruzioni per la configurazione di Ruby Nella pagina delle librerie client e poi visita Documentazione di riferimento di Natural Language per Ruby.