Tutorial sobre el análisis de sentimiento

Audiencia

Este tutorial se ha diseñado para que puedas empezar rápidamente a explorar y desarrollar aplicaciones con la API Natural Language de Google Cloud. Está diseñado para personas que tengan conocimientos básicos de programación, aunque también podrás seguirlo si no tienes mucha experiencia en este campo. Después de haber seguido este tutorial, podrás utilizar la documentación de referencia para crear tus propias aplicaciones básicas.

En este tutorial se explica paso a paso una aplicación de la API Natural Language con código Python. El objetivo de este artículo no es explicar las bibliotecas de cliente de Python, sino mostrar cómo hacer llamadas a la API Natural Language. Las aplicaciones en Java y Node.js son esencialmente similares. Consulta los ejemplos de la API Natural Language para ver ejemplos en otros idiomas (incluido este ejemplo del tutorial).

Requisitos previos

Este tutorial tiene varios requisitos previos:

Analizar el sentimiento de un documento

En este tutorial se explica cómo crear una aplicación básica de la API Natural Language mediante una solicitud analyzeSentiment, que realiza un análisis de sentimiento en el texto. El análisis de sentimiento intenta determinar la actitud general (positiva o negativa) y se representa mediante valores numéricos score y magnitude. Para obtener más información sobre estos conceptos, consulta el artículo Conceptos básicos del lenguaje natural.

Primero mostraremos todo el código. Ten en cuenta que hemos eliminado la mayoría de los comentarios de este código para mostrarte lo breve que es. Añadiremos más comentarios a medida que analicemos el código.

Para obtener más información sobre cómo instalar y usar la biblioteca de cliente de Cloud Natural Language de Google para Python, consulta Bibliotecas de cliente de la API Natural Language.
"""Demonstrates how to make a simple call to the Natural Language API."""

import argparse

from google.cloud import language_v1



def print_result(annotations):
    score = annotations.document_sentiment.score
    magnitude = annotations.document_sentiment.magnitude

    for index, sentence in enumerate(annotations.sentences):
        sentence_sentiment = sentence.sentiment.score
        print(f"Sentence {index} has a sentiment score of {sentence_sentiment}")

    print(f"Overall Sentiment: score of {score} with magnitude of {magnitude}")
    return 0




def analyze(movie_review_filename):
    """Run a sentiment analysis request on text within a passed filename."""
    client = language_v1.LanguageServiceClient()

    with open(movie_review_filename) as review_file:
        # Instantiates a plain text document.
        content = review_file.read()

    document = language_v1.Document(
        content=content, type_=language_v1.Document.Type.PLAIN_TEXT
    )
    annotations = client.analyze_sentiment(request={"document": document})

    # Print the results
    print_result(annotations)




if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter
    )
    parser.add_argument(
        "movie_review_filename",
        help="The filename of the movie review you'd like to analyze.",
    )
    args = parser.parse_args()

    analyze(args.movie_review_filename)

Esta sencilla aplicación realiza las siguientes tareas:

  • Importa las bibliotecas necesarias para ejecutar la aplicación
  • Toma un archivo de texto y lo transfiere a la función main()
  • Lee el archivo de texto y envía una solicitud al servicio.
  • Analiza la respuesta del servicio y la muestra al usuario.

A continuación, repasaremos estos pasos con más detalle.

Importar bibliotecas

Para obtener más información sobre cómo instalar y usar la biblioteca de cliente de Cloud Natural Language de Google para Python, consulta Bibliotecas de cliente de la API Natural Language.
import argparse

from google.cloud import language_v1

Importamos argparse, una biblioteca estándar, para permitir que la aplicación acepte nombres de archivos de entrada como argumentos.

Para usar la API Cloud Natural Language, también importaremos el módulo language de la biblioteca google-cloud-language. El módulo types contiene las clases necesarias para crear solicitudes.

Ejecutar tu aplicación

if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter
    )
    parser.add_argument(
        "movie_review_filename",
        help="The filename of the movie review you'd like to analyze.",
    )
    args = parser.parse_args()

    analyze(args.movie_review_filename)

Aquí, simplemente analizamos el argumento transferido para obtener el nombre del archivo de texto y lo transferimos a la función analyze().

Autenticar a la API

Antes de comunicarte con el servicio de la API Natural Language, debes autenticar tu servicio con las credenciales que hayas obtenido previamente. En una aplicación, la forma más sencilla de obtener credenciales es usar las credenciales predeterminadas de la aplicación (ADC). De forma predeterminada, ADC intentará obtener las credenciales del archivo de entorno GOOGLE_APPLICATION_CREDENTIALS, que debe configurarse para que apunte al archivo JSON de la clave de tu cuenta de servicio. (Deberías haber configurado tu cuenta de servicio y tu entorno para usar ADC en la guía de inicio rápido. Para obtener más información, consulta el artículo Configurar una cuenta de servicio.

La biblioteca de cliente de Google Cloud para Python usa automáticamente las credenciales predeterminadas de la aplicación.

Enviar la solicitud

Ahora que nuestro servicio de la API Natural Language está listo, podemos acceder a él llamando al método analyze_sentiment de la instancia LanguageServiceClient.

La biblioteca de cliente encapsula los detalles de las solicitudes y respuestas a la API. Consulta la referencia de la API Natural Language para obtener información detallada sobre la estructura concreta de estas solicitudes.

Para obtener más información sobre cómo instalar y usar la biblioteca de cliente de Cloud Natural Language de Google para Python, consulta Bibliotecas de cliente de la API Natural Language.
def analyze(movie_review_filename):
    """Run a sentiment analysis request on text within a passed filename."""
    client = language_v1.LanguageServiceClient()

    with open(movie_review_filename) as review_file:
        # Instantiates a plain text document.
        content = review_file.read()

    document = language_v1.Document(
        content=content, type_=language_v1.Document.Type.PLAIN_TEXT
    )
    annotations = client.analyze_sentiment(request={"document": document})

    # Print the results
    print_result(annotations)

Este fragmento de código realiza las siguientes tareas:

  1. Crea una instancia de LanguageServiceClient como cliente.
  2. Lee el nombre del archivo que contiene los datos de texto en una variable.
  3. Crea una instancia de un objeto Document con el contenido del archivo.
  4. Llama al método analyze_sentiment del cliente.

Analizar la respuesta

def print_result(annotations):
    score = annotations.document_sentiment.score
    magnitude = annotations.document_sentiment.magnitude

    for index, sentence in enumerate(annotations.sentences):
        sentence_sentiment = sentence.sentiment.score
        print