GSP063
Descripción general
La API de Cloud Natural Language te permite extraer entidades de textos,
realizar análisis de opiniones y sintácticos, y clasificar texto en
categorías. En este lab, el enfoque es la clasificación de texto, una función
de la API que facilita clasificar grandes conjuntos de datos de texto a través
de una base de datos que tiene más de 700 categorías.
Objetivos
En este lab, aprenderás a hacer lo siguiente:
-
Crear una solicitud a la API de Natural Language y llamar a la API con curl
-
Usar la función de clasificación de texto de la API de Natural Language
-
Usar la clasificación de texto para comprender el conjunto de datos de
artículos de noticias
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.
Para completar este lab, necesitarás lo siguiente:
- Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome.
Nota: Usa una ventana del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
- Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo).
Nota: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
-
Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago.
A la derecha, se encuentra el panel Configuración del lab y acceso, que tiene los siguientes elementos:
- El botón Abrir la consola de Google Cloud
- Las credenciales temporales (nombre de usuario y contraseña) que debes usar para este lab
- Otra información para completar el lab (si es necesaria)
Ten en cuenta que el cronómetro del lab se encuentra cerca de la parte superior de la página y muestra el tiempo restante.
-
Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).
El lab inicia los recursos y abre otra pestaña, en la que se muestra la página de acceso.
Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.
Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usa otra cuenta.
-
De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.
{{{user_0.username | "Username"}}}
También puedes encontrar el nombre de usuario en el panel Configuración del lab y acceso.
-
Haz clic en Siguiente.
-
Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.
{{{user_0.password | "Password"}}}
También puedes encontrar la contraseña en el panel Configuración del lab y acceso.
-
Haz clic en Siguiente.
Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud.
Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
-
Haz clic para avanzar por las páginas siguientes:
- Acepta los Términos y Condiciones.
- No agregues opciones de recuperación ni autenticación de dos factores, ya que esta cuenta es temporal.
- No te registres para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.
Nota: Para acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar.
Activa Cloud Shell
Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
-
Haz clic en Activar Cloud Shell
en la parte superior de la consola de Google Cloud.
-
Haz clic para avanzar por las siguientes ventanas:
- Continúa en la ventana de información de Cloud Shell.
- Autoriza a Cloud Shell para que use tus credenciales para realizar llamadas a la API de Google Cloud.
Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu Project_ID, . El resultado contiene una línea que declara el Project_ID para esta sesión:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
- Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
- Haz clic en Autorizar.
Resultado:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project
Resultado:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Nota: Para obtener toda la documentación de gcloud, en Google Cloud, consulta la guía con la descripción general de gcloud CLI.
Tarea 1: Habilita la API de Cloud Natural Language
-
Expande el menú de navegación (
) en la parte superior izquierda de la pantalla.
-
Selecciona APIs y servicios >
APIs y servicios habilitados.
- Haz clic en Habilitar APIs y servicios.
-
Luego, busca language en el cuadro de búsqueda.
-
Haz clic en API de Cloud Natural Language:
Si la API no está habilitada, verás el botón Habilitar.
- Haz clic en Habilitar para habilitarla.
Cuando la API está habilitada, Google Cloud muestra información sobre ella
como sigue:
Tarea 2: Crea una clave de API
Dado que estás usando curl para enviar una solicitud a la API de
Natural Language, tendrás que generar una clave de API para pasar la URL de la
solicitud.
-
En la consola, haz clic en el menú de navegación >
APIs y servicios > Credenciales para
crear una clave de API.
-
Luego, haz clic en Crear credenciales.
-
En el menú desplegable, selecciona Clave de API.
-
A continuación, copia la clave que acabas de generar y, luego, haz clic en
Cerrar.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear una clave de API
Ahora que tienes una clave de API, guárdala como una variable de entorno para
no tener que ingresar el valor de esta clave en cada solicitud.
Para realizar los próximos pasos, conéctate a través de SSH a la instancia que
se te aprovisionó.
-
Abre el menú de navegación y selecciona
Compute Engine > Instancias de VM. Debes
ver una
linux-instance aprovisionada.
-
Haz clic en el botón SSH. Se te redireccionará a una
shell interactiva.
-
En la línea de comandos, reemplaza <YOUR_API_KEY> por la
clave que acabas de copiar:
export API_KEY=<YOUR_API_KEY>
Tarea 3: Clasifica un artículo de noticia
Puedes ordenar datos de texto en distintas categorías con una sola llamada a
la API mediante el método classifyText de la API de Natural Language. Este
método devuelve una lista de categorías de contenido que corresponden a un
documento de texto.
La especificidad de la clasificación es variada, desde categorías generales,
como /Computers & Electronics, hasta otras muy específicas,
como
/Computers & Electronics/Programming/Java (Programming Language). En la página de
categorías de contenido, se puede encontrar una lista completa de más de 700 posibles categorías.
Comenzarás por clasificar un solo artículo y, luego, verás cómo puedes usar
este método para comprender un corpus de noticias de gran tamaño.
-
Para empezar, toma este titular y esta descripción de un artículo del New
York Times en la sección culinaria:
A Smoky Lobster Salad With a Tapa Twist. This spin on the Spanish pulpo a
la gallega skips the octopus, but keeps the sea salt, olive oil, pimentón
and boiled potatoes.
-
Crea un archivo llamado
request.json y agrega el código que se
encuentra a continuación. Puedes crear el archivo con uno de tus editores de
línea de comandos preferidos (nano, vim o emacs).
{ "document":{ "type":"PLAIN_TEXT", "content":"A Smoky Lobster Salad With a
Tapa Twist. This spin on the Spanish pulpo a la gallega skips the octopus, but
keeps the sea salt, olive oil, pimentón and boiled potatoes." } }
Crear una solicitud para clasificar un artículo de noticia
-
Ahora, puedes enviar este texto al método
classifyText de la
API de Natural Language con el siguiente comando curl:
curl
"https://language.googleapis.com/v1/documents:classifyText?key=${API_KEY}" \
-s -X POST -H "Content-Type: application/json" --data-binary @request.json
Mira la respuesta:
{ categories: [ { name: '/Food & Drink/Cooking & Recipes', confidence:
0.85 }, { name: '/Food & Drink/Food/Meat & Seafood', confidence: 0.63
} ] }
Creaste una solicitud a la API de Speech y, luego, llamaste a la API de
Speech.
-
Ejecuta el siguiente comando para guardar la respuesta en un archivo
result.json:
curl
"https://language.googleapis.com/v1/documents:classifyText?key=${API_KEY}" \
-s -X POST -H "Content-Type: application/json" --data-binary @request.json >
result.json
Verificar la respuesta del análisis de entidades
La API devolvió 2 categorías para este texto:
/Food & Drink/Cooking & Recipes
/Food & Drink/Food/Meat & Seafood
El texto no menciona de manera explícita que se trata de una receta ni que
incluye mariscos; sin embargo, la API es capaz de categorizarlo. Clasificar un
solo artículo es genial; sin embargo, para que realmente veas el poder de esta
función, deberás clasificar muchos datos de texto.
Tarea 4: Clasifica un conjunto de datos de texto de gran tamaño
Para ver cómo el método classifyText puede ayudarte a entender un
conjunto de datos con mucho texto, usa este
conjunto de datos público de
artículos de noticias de la BBC. El conjunto de datos consta de 2,225
artículos de cinco áreas temáticas (negocios, entretenimiento, política,
deportes y tecnología) publicados entre 2004 y 2005. Hay un subconjunto de
estos artículos ubicado en un bucket público de Cloud Storage. Cada uno de
estos artículos está en un archivo .txt.
Para examinar los datos y enviarlos a la API de Natural Language, deberás
escribir una secuencia de comandos de Python para leer cada archivo de texto
desde Cloud Storage, enviarlo al extremo de classifyText y
almacenar los resultados en una tabla de BigQuery. BigQuery es la herramienta
de almacén de macrodatos de Google Cloud, que te permite almacenar y analizar
conjuntos de datos de gran tamaño fácilmente.
-
Si quieres ver el tipo de texto con el que trabajarás, ejecuta el siguiente
comando para ver un artículo (
gsutil ofrece una interfaz de
línea de comandos para Cloud Storage):
gsutil cat gs://spls/gsp063/bbc_dataset/entertainment/001.txt
A continuación, crearás una tabla de BigQuery para tus datos.
Tarea 5: Crea una tabla de BigQuery para datos de texto categorizados
Antes de enviar el texto a la API de Natural Language, necesitas un lugar para
almacenarlo junto con su categoría.
-
Ve al menú de navegación > BigQuery en
la consola.
-
Haz clic en Listo.
-
Para crear un conjunto de datos, haz clic en el ícono de
Ver acciones junto al ID del proyecto y selecciona
Crear conjunto de datos:
-
Asigna el nombre news_classification_dataset al conjunto de
datos y, luego, haz clic en Crear conjunto de datos.
-
Para crear una tabla, haz clic en el ícono
Ver acciones junto al elemento
news_classification_dataset y selecciona
Crear tabla.
-
Usa la siguiente configuración para la tabla nueva:
- Crea una tabla desde: Tabla vacía.
- Asígnale un nombre a tu tabla: article_data.
-
En Esquema, haz clic en Agregar campo y agrega los
siguientes 3 campos:
| Nombre del campo |
Tipo |
Modo |
article_text |
STRING |
NULLABLE |
category |
STRING |
NULLABLE |
confidence |
FLOAT |
NULLABLE |
- Haz clic en Crear tabla.
En este momento, la tabla está vacía. En el siguiente paso, leerás los
artículos desde Cloud Storage, los enviarás a la API de Natural Language para
clasificarlos y almacenarás el resultado en BigQuery.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear un conjunto de datos y una tabla nuevos para datos de texto
categorizados
Tarea 6: Clasifica datos de noticias y almacena el resultado en BigQuery
Para realizar los próximos pasos, conéctate a Cloud Shell. Si
se te solicita, haz clic en Continuar.
Antes de crear una secuencia de comandos para enviar los datos de noticias a
la API de Natural Language, tendrás que crear una cuenta de servicio. Esta se
usará para autenticar la API de Natural Language y BigQuery desde la secuencia
de comandos de Python.
- Exporta el ID de tu proyecto como una variable de entorno:
export PROJECT={{{project_0.project_id | Project ID}}}
- Ejecuta los siguientes comandos para crear una cuenta de servicio:
gcloud iam service-accounts create my-account --display-name my-account gcloud
projects add-iam-policy-binding $PROJECT
--member=serviceAccount:my-account@$PROJECT.iam.gserviceaccount.com
--role=roles/bigquery.admin gcloud projects add-iam-policy-binding $PROJECT
--member=serviceAccount:my-account@$PROJECT.iam.gserviceaccount.com
--role=roles/serviceusage.serviceUsageConsumer gcloud iam service-accounts
keys create key.json --iam-account=my-account@$PROJECT.iam.gserviceaccount.com
export GOOGLE_APPLICATION_CREDENTIALS=key.json
Ya tienes todo listo para enviar los datos de texto a la API de Natural
Language.
-
Escribe una secuencia de comandos de Python usando el módulo correspondiente
para Google Cloud.
Puedes hacer lo mismo con cualquier lenguaje; hay muchas bibliotecas cliente
de Cloud.
-
Crea un archivo llamado
classify-text.py y copia allí el
siguiente código. Puedes crear un archivo con uno de tus editores de línea
de comandos preferidos (nano, vim o emacs).
from google.cloud import storage, language, bigquery # Configura los clientes
de GCS, NL y BigQuery storage_client = storage.Client() nl_client =
language.LanguageServiceClient() bq_client =
bigquery.Client(project='{{{project_0.project_id | Project ID}}}') dataset_ref
= bq_client.dataset('news_classification_dataset') dataset =
bigquery.Dataset(dataset_ref) table_ref = dataset.table('article_data') table
= bq_client.get_table(table_ref) # Envía el texto de los artículos al método
classifyText de la API de NL def classify_text(article): response =
nl_client.classify_text( document=language.Document( content=article,
type=language.Document.Type.PLAIN_TEXT ) ) return response rows_for_bq = []
files = storage_client.bucket('qwiklabs-test-bucket-gsp063').list_blobs()
print("Got article files from GCS, sending them to the NL API (this will take
~2 minutes)...") # Envía los archivos a la API de NL y guarda el resultado
para enviarlo a BigQuery for file in files: if file.name.endswith('txt'):
article_text = file.download_as_bytes().decode('utf-8') # Decodifica los bytes
en una cadena nl_response = classify_text(article_text) if
len(nl_response.categories) > 0: rows_for_bq.append((article_text,
nl_response.categories[0].name, nl_response.categories[0].confidence))
print("Writing NL API article data to BigQuery...") # Escribe el texto de los
artículos y los datos de las categorías en BigQuery if rows_for_bq: errors =
bq_client.insert_rows(table, rows_for_bq) if errors: print("Encountered errors
while writing to BigQuery:", errors) else: print("No articles found in the
specified bucket.")
Ya tienes todo listo para comenzar la clasificación de artículos y su
importación a BigQuery.
- Ejecuta la siguiente secuencia de comandos:
python3 classify-text.py
La secuencia de comandos demora dos minutos en completarse, por lo que
mientras se ejecuta, puedes leer sobre lo que ocurre.
Usas la biblioteca
cliente de Python
de Google Cloud para acceder a Cloud Storage, la API de Natural Language y
BigQuery. Primero, se crea un cliente para cada servicio. Luego, se crean
referencias a la tabla de BigQuery. files es una referencia a
cada archivo del conjunto de datos de la BBC incluido en el bucket público. Se
revisan los archivos, se descargan los artículos como cadenas y, luego, cada
uno se envía a la API de Natural Language en la función
classify_text. Cuando la API de Natural Language devuelve una
categoría, el artículo y los datos de su categoría se guardan en la lista
rows_for_bq. Una vez que se completa la clasificación de cada
artículo, los datos se insertan en BigQuery con insert_rows().
Nota: La API de Natural Language puede devolver más de una
categoría para un documento; sin embargo, para este lab, solo almacenarás la
primera categoría para evitar complicaciones.
Cuando se haya terminado de ejecutar la secuencia de comandos, habrá que
verificar si los datos del artículo se guardaron en BigQuery.
-
En BigQuery, navega a la tabla
article_data en la pestaña
Explorador y haz clic en Consulta para consultar la tabla:
-
Edita los resultados en el cuadro Consulta no guardada y
agrega un asterisco entre SELECT y FROM:
SELECT * FROM `{{{project_0.project_id | Project
ID}}}.news_classification_dataset.article_data`
- Ahora haz clic en Ejecutar.
Verás tus datos cuando se complete la consulta.
- Desplázate hacia la derecha para ver la columna de categoría.
La columna de categoría tiene el nombre de la primera categoría que la API de
Natural Language devolvió para el artículo, mientras que la
confianza es un valor entre 0 y 1 que indica el grado de seguridad
con el que la API categorizó el artículo correctamente.
Aprenderás cómo realizar consultas más complejas sobre los datos en el
siguiente paso.
Tarea 7: Analiza los datos de noticias categorizados en BigQuery
Primero, ve qué categorías fueron las más comunes en el conjunto de datos.
-
En la consola de BigQuery, haz clic en + Consulta en SQL.
-
Ingresa la siguiente consulta:
SELECT category, COUNT(*) c FROM `{{{project_0.project_id | Project
ID}}}.news_classification_dataset.article_data` GROUP BY category ORDER BY c
DESC
- Ahora haz clic en Ejecutar.
En los resultados de la consulta, deberías ver algo como esto:
Si quisieras buscar el artículo que se devolvió para una categoría más
específica, como
/Arts & Entertainment/Music & Audio/Classical Music,
podrías escribir la siguiente consulta:
SELECT * FROM `{{{project_0.project_id | Project
ID}}}.news_classification_dataset.article_data` WHERE category = "/Arts &
Entertainment/Music & Audio/Classical Music"
Otra opción sería obtener únicamente los artículos en los que la API de
Natural Language devolvió un puntaje de confianza superior al 90%:
SELECT article_text, category FROM `{{{project_0.project_id | Project
ID}}}.news_classification_dataset.article_data` WHERE cast(confidence as
float64) > 0.9
Para realizar más consultas sobre tus datos, revisa la
documentación de BigQuery. BigQuery también se integra en varias herramientas de visualización. Para
crear visualizaciones de tus datos de noticias categorizados, consulta
Data Studio
para BigQuery.
¡Felicitaciones!
Aprendiste a usar el método de clasificación de texto de la API de Natural
Language para clasificar artículos de noticias. Comenzaste por clasificar un
artículo y, luego, clasificaste y analizaste un conjunto de datos de noticias
de gran tamaño a través de la API de NL con BigQuery. También aprendiste a
crear una tabla de BigQuery y ejecutar consultas en tus datos.
Próximos pasos y más información
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Última actualización del manual: 21 de marzo de 2025
Prueba más reciente del lab: 21 de marzo de 2025
Copyright 2026 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.