Público
Este instructivo está diseñado para que comiences a explorar y desarrollar aplicaciones rápidamente con la API de Google Cloud Natural Language. Está pensado para los usuarios familiarizados con la programación básica, aunque deberías poder entenderlo sin tener muchos conocimientos sobre programación. Una vez que completes este instructivo, debería poder usar la Documentación de referencia para crear tus propias aplicaciones básicas.
En este instructivo se explica paso a paso cómo crear una aplicación con la API de Natural Language con el código de Python. La finalidad no es explicar las bibliotecas cliente de Python, sino cómo hacer llamadas a la API de Natural Language. En esencia, las aplicaciones en Java y Node.js son similares. Consulta las Aplicaciones de muestra de la API de Natural Language para ver muestras en otros lenguajes (incluida la muestra de este instructivo).
Requisitos previos
Este instructivo tiene varios requisitos previos:
- Tienes una cuenta de Google Cloud. Si eres nuevo en la plataforma, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
- Haber configurado un proyecto de la API de Cloud Natural Language en la consola de Google Cloud.
- Haber configurado tu entorno con las credenciales predeterminadas de la aplicación
- Estar familiarizado con los aspectos básicos de la programación en Python.
- Haber configurado tu entorno de desarrollo de Python. Recomendamos que tengas instalada la versión más reciente de Python,
pip
yvirtualenv
en tu sistema. A fin de conocer las instrucciones, consulta la guía de configuración del entorno de desarrollo en Python para Google Cloud Platform. - Haber instalado la biblioteca cliente de Google Cloud para Python.
Analiza opiniones en documentos
En este instructivo, se explica una aplicación básica de la API de Natural Language, mediante una solicitud analyzeSentiment
que realiza análisis de opiniones en textos.
El análisis de opiniones intenta determinar la actitud general (positiva o negativa) y se representa mediante valores numéricos de score
y magnitude
(para obtener más información sobre estos conceptos, consulta Conceptos básicos de Natural Language).
Te mostraremos el código completo primero. (Ten en cuenta que quitamos la mayoría de los comentarios de este código para mostrarte lo breve que es. Proporcionaremos más comentarios a medida que repasemos el código).
Esta aplicación simple ejecuta las siguientes tareas:
- Importa las bibliotecas necesarias para ejecutar la aplicación.
- Toma un archivo de texto y lo pasa a la función
main()
. - Lee el archivo de texto y realiza una solicitud al servicio.
- Analiza la respuesta del servicio y se lo muestra al usuario.
Repasaremos estos pasos con más detalle a continuación.
Importa 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 de Cloud Natural Language, también debes importar el módulo language
de la biblioteca google-cloud-language
. El módulo types
contiene clases que son necesarias para crear solicitudes.
Ejecuta tu aplicación
Aquí, simplemente analizamos el argumento que se pasó para el nombre de archivo de texto y lo pasamos a la función analyze()
.
Autenticación de la API
Antes de comunicarse con el servicio de API de Natural Language, debes autenticar su servicio con las credenciales adquiridas previamente. Dentro de un
la forma más sencilla de obtener credenciales es usar
Credenciales predeterminadas de la aplicación
(ADC). De forma predeterminada, las ADC intentarán obtener credenciales del archivo de entorno GOOGLE_APPLICATION_CREDENTIALS
, el cual debe configurarse para que apunte al archivo de claves JSON de tu cuenta de servicio. (Debes haber configurado tu cuenta de servicio y tu entorno para usar las ADC en la Guía de inicio rápido. Consulta
Cómo configurar una cuenta de servicio
para obtener más información.
La biblioteca cliente de Google Cloud para Python utiliza automáticamente las credenciales predeterminadas de la aplicación.
Realiza la solicitud
Una vez que el servicio de la API de Natural Language está listo, podemos acceder al servicio mediante una llamada al método analyze_sentiment
de la instancia LanguageServiceClient
.
La biblioteca cliente encapsula los detalles para las solicitudes y respuestas a la API. Consulta la referencia de la API de Natural Language para obtener la información completa sobre la estructura específica de esta solicitud.
Este fragmento de código realiza las siguientes tareas:
- Crea una instancia de
LanguageServiceClient
como cliente. - Lee el nombre de 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.
Analiza la respuesta
Repasamos la respuesta para extraer el valor score
de las opiniones para cada oración, y los valores score
y magnitude
generales para toda la revisión, y se los muestra al usuario.
Ejecuta la muestra
Para ejecutar la muestra, la probamos en un conjunto de reseñas (falsas) de la película "Bladerunner".
Descarga las muestras desde 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 Documentación de la CLI de gcloud.
Descomprime las muestras, lo cual creará la carpeta "reseñas":
gunzip sentiment-samples.tgz tar -xvf sentiment-samples.tar
Ejecuta nuestro análisis de opiniones 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
El ejemplo anterior indicaría que una reseña fue, relativamente, positiva (puntuación de 0.5
) y emotiva (magnitud de 5.5
).
La ejecución del análisis en los otros ejemplos debería producir 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 todas las magnitudes son similares (lo que indica una cantidad relativamente similar de opiniones emocionalmente significativas), excepto en el caso "neutro", que indica una reseña con poca opinión emotiva, ya sea positiva o negativa. (Para obtener más información sobre las puntuaciones y magnitud de las opiniones, y cómo interpretar esos valores, consulta Interpretar los valores de análisis de opiniones).
Si deseas explorar el análisis de opiniones con más datos, Stanford proporciona un conjunto de datos de reseñas de películas de IMDB. Para recuperar estas reseñas de películas:
- Descarga el conjunto de datos de Large Movie Review.
- 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
, y cada archivo de texto contiene una reseña de película. - Ejecuta la herramienta
sentiment_analysis.py
en cualquiera de los archivos de texto de reseñas de películas.
¡Felicitaciones! ¡Has realizado tus primeras tareas de inferencia usando la API de Google Cloud Natural Language!