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 las muestras de la API Natural Language para ver ejemplos en otros idiomas (incluida esta muestra del tutorial).
Requisitos previos
Este tutorial tiene varios requisitos previos:
- Tienes una cuenta de Google Cloud . Si es la primera vez que utilizas la plataforma, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los nuevos clientes también reciben 300 USD en crédito gratuito para ejecutar, probar y desplegar cargas de trabajo.
- Has configurado un proyecto de la API Cloud Natural Language en la Google Cloud consola.
- Has configurado tu entorno con credenciales predeterminadas de aplicación.
- Tener conocimientos básicos en la programación de Python.
- Has configurado tu entorno de desarrollo de Python. Te recomendamos que tengas instaladas en tu sistema las versiones más recientes de Python,
pip
yvirtualenv
. Para obtener instrucciones, consulta la guía de configuración del entorno de desarrollo de Python para Google Cloud Platform. - Has instalado la biblioteca de cliente de Google Cloud para Python.
Analizar el sentimiento de un documento
En este tutorial se explica cómo usar 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.
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
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 la aplicación
Aquí, simplemente analizamos el argumento transferido para el nombre de 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.
Este fragmento de código realiza las siguientes tareas:
- Crea una instancia de
LanguageServiceClient
como cliente. - Lee el nombre del archivo que contiene los datos de texto en una variable.
- Crea una instancia de un objeto
Document
con el contenido del archivo. - Llama al método
analyze_sentiment
del cliente.
Analizar la respuesta
Recorremos la respuesta para extraer los valores de score
de cada frase y los valores generales de score
y magnitude
de toda la reseña, y se los mostramos al usuario.
Ejecutar la muestra
Para ejecutar nuestra muestra, la probaremos con un conjunto de reseñas de películas (falsas) de la película "Blade Runner".
Descarga las muestras de Google Cloud Storage:
gcloud storage cp gs://cloud-samples-tests/natural-language/sentiment-samples.tgz .
Para instalar la versión más reciente de Google Cloud CLI, consulta la documentación de gcloud CLI.
Descomprime esas muestras para crear una carpeta llamada "reviews":
gunzip sentiment-samples.tgz tar -xvf sentiment-samples.tar
Ejecuta nuestro análisis de sentimiento en uno de los archivos especificados:
python sentiment_analysis.py reviews/bladerunner-pos.txt Sentence 0 has a sentiment score of 0.8 Sentence 1 has a sentiment score of 0.9 Sentence 2 has a sentiment score of 0.8 Sentence 3 has a sentiment score of 0.2 Sentence 4 has a sentiment score of 0.1 Sentence 5 has a sentiment score of 0.4 Sentence 6 has a sentiment score of 0.3 Sentence 7 has a sentiment score of 0.4 Sentence 8 has a sentiment score of 0.2 Sentence 9 has a sentiment score of 0.9 Overall Sentiment: score of 0.5 with magnitude of 5.5
En el ejemplo anterior, se indica que la reseña es relativamente positiva (puntuación de 0.5
) y relativamente emocional (magnitud de 5.5
).
Si analizas los otros ejemplos, deberías obtener valores similares a los que se muestran a continuación:
python sentiment_analysis.py reviews/bladerunner-neg.txt ... Overall Sentiment: score of -0.6 with magnitude of 3.3 python sentiment_analysis.py reviews/bladerunner-mixed.txt ... Overall Sentiment: score of 0 with magnitude of 4.7 python sentiment_analysis.py reviews/bladerunner-neutral.txt ... Overall Sentiment: score of -0.1 with magnitude of 1.8
Ten en cuenta que las magnitudes son similares (lo que indica una cantidad relativamente igual de sentimiento significativo desde el punto de vista emocional), excepto en el caso de "neutro", que indica una reseña con poco sentimiento emocional, ya sea positivo o negativo. Para obtener más información sobre las puntuaciones y la magnitud del sentimiento, así como sobre cómo interpretar estos valores, consulta el artículo Interpretar los valores del análisis de sentimiento.
Si quieres explorar el análisis de sentimientos con más datos, Stanford ofrece un conjunto de datos de reseñas de películas de IMDb. Para recuperar estas reseñas de películas, sigue estos pasos:
- Descarga el conjunto de datos de reseñas de películas grandes.
- Descomprime el archivo en tu directorio de trabajo. Las reseñas de películas se dividen en los directorios
pos
yneg
dentro de los directorios de datostrain
ytest
. Cada archivo de texto contiene una reseña de una película. - Ejecuta la herramienta
sentiment_analysis.py
en cualquiera de los archivos de texto de reseñas de películas.
¡Enhorabuena! Has realizado tus primeras tareas de inferencia con la API Natural Language de Google Cloud.