Audiencia
Este tutorial se ha diseñado para que puedas empezar a explorar y desarrollar aplicaciones rápidamente con la API Cloud Natural Language. 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 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 muestras en otros idiomas (incluida la muestra de este tutorial).
Requisitos previos
Este tutorial tiene varios requisitos previos:
- Has configurado un proyecto de Cloud Natural Language en la Google Cloud consola.
- Has configurado tu entorno con credenciales predeterminadas de la aplicación en la consola Google Cloud .
- Tienes experiencia con Python en la programación de la consola Google Cloud .
- 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.
Información general
En este tutorial se explica cómo usar una aplicación básica de Natural Language mediante solicitudes classifyText
, que clasifica el contenido en categorías junto con una puntuación de confianza, como las siguientes:
category: "/Internet & Telecom/Mobile & Wireless/Mobile Apps & Add-Ons"
confidence: 0.6499999761581421
Para ver la lista de todas las etiquetas de categorías disponibles, consulta Categorías.
En este tutorial, crearás una aplicación para realizar las siguientes tareas:
- Clasifica varios archivos de texto y escribe el resultado en un archivo de índice.
- Procesa el texto de la consulta de entrada para encontrar archivos de texto similares.
- Procesa las etiquetas de categoría de la consulta de entrada para encontrar archivos de texto similares.
En este tutorial se usa contenido de Wikipedia. Podrías crear una aplicación similar para procesar artículos de noticias, comentarios online, etc.
Archivos de origen
Puedes encontrar el código fuente del tutorial en los ejemplos de la biblioteca de cliente de Python de GitHub.
En este tutorial se usa texto de origen de ejemplo de Wikipedia. Puedes encontrar los archivos de texto de ejemplo en la carpeta resources/texts del proyecto de GitHub.
Importar bibliotecas
Para usar la API Cloud Natural Language, debes importar el módulo language
de la biblioteca google-cloud-language
. El módulo language.types
contiene las clases necesarias para crear solicitudes. El módulo language.enums
se usa para especificar el tipo del texto de entrada. En este tutorial se clasifica contenido de texto sin formato (language.enums.Document.Type.PLAIN_TEXT
).
Para calcular la similitud entre textos en función de la clasificación de contenido resultante, en este tutorial se usa numpy
para los cálculos vectoriales.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Natural Language, consulta el artículo sobre las bibliotecas de cliente de Natural Language. Para obtener más información, consulta la documentación de referencia de la API Natural Language Python.
Para autenticarte en Natural Language, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Paso 1. Clasificar contenido
Puedes usar la biblioteca de cliente de Python para enviar una solicitud a la API Natural Language y clasificar contenido. La biblioteca de cliente de Python encapsula los detalles de las solicitudes y respuestas de la API Natural Language.
La función classify
del tutorial llama al método classifyText
de la API Natural Language. Para ello, primero crea una instancia de la clase LanguageServiceClient
y, después, llama al método classify_text
de la instancia LanguageServiceClient
.
La función classify
del tutorial solo clasifica el contenido de texto en este ejemplo. También puede clasificar el contenido de una página web si envía el código HTML de origen de la página web como text
y define el parámetro type
como language.enums.Document.Type.HTML
.
Para obtener más información, consulta el artículo Clasificar contenido. Para obtener información sobre la estructura de las solicitudes a la API Natural Language, consulta la referencia de Natural Language.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Natural Language, consulta el artículo sobre las bibliotecas de cliente de Natural Language. Para obtener más información, consulta la documentación de referencia de la API Natural Language Python.
Para autenticarte en Natural Language, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
El resultado devuelto es un diccionario con las etiquetas de categoría como claves y las puntuaciones de confianza como valores, como se muestra a continuación:
{
"/Computers & Electronics": 0.800000011920929,
"/Internet & Telecom/Mobile & Wireless/Mobile Apps & Add-Ons": 0.6499999761581421
}
El script de Python del tutorial está organizado de forma que se pueda ejecutar desde la línea de comandos para hacer experimentos rápidos. Por ejemplo, puedes ejecutar lo siguiente:
python classify_text_tutorial.py classify "Google Home enables users to speak voice commands to interact with services through the Home's intelligent personal assistant called Google Assistant. A large number of services, both in-house and third-party, are integrated, allowing users to listen to music, look at videos or photos, or receive news updates entirely by voice. "
Paso 2: Indexar varios archivos de texto
La función index
de la secuencia de comandos del tutorial toma como entrada un directorio que contiene varios archivos de texto y la ruta a un archivo en el que almacena la salida indexada (el nombre de archivo predeterminado es index.json
). La función index
lee el contenido de cada archivo de texto del directorio de entrada y, a continuación, pasa los archivos de texto a la API Cloud Natural Language para que se clasifiquen en categorías de contenido.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Natural Language, consulta el artículo sobre las bibliotecas de cliente de Natural Language. Para obtener más información, consulta la documentación de referencia de la API Natural Language Python.
Para autenticarte en Natural Language, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Los resultados de la API Cloud Natural Language de cada archivo se organizan en un solo diccionario, se serializan como una cadena JSON y, a continuación, se escriben en un archivo. Por ejemplo:
{
"android.txt": {
"/Computers & Electronics": 0.800000011920929,
"/Internet & Telecom/Mobile & Wireless/Mobile Apps & Add-Ons": 0.6499999761581421
},
"google.txt": {
"/Internet & Telecom": 0.5799999833106995,
"/Business & Industrial": 0.5400000214576721
}
}
Para indexar archivos de texto desde la línea de comandos con el nombre de archivo de salida predeterminado index.json
, ejecuta el siguiente comando:
python classify_text_tutorial.py index resources/texts
Paso 3: Consultar el índice
Consulta con etiquetas de categoría
Una vez que se haya creado el archivo de índice (nombre de archivo predeterminado = index.json
), podremos hacer consultas al índice para recuperar algunos de los nombres de archivo y sus puntuaciones de confianza.
Una forma de hacerlo es usar una etiqueta de categoría como consulta, lo que se consigue en el tutorial con la función query_category
. La implementación de las funciones auxiliares, como similarity
, se puede encontrar en el archivo classify_text_tutorial.py
. En tus aplicaciones, la puntuación y la clasificación de similitud deben diseñarse cuidadosamente en función de casos de uso específicos.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Natural Language, consulta el artículo sobre las bibliotecas de cliente de Natural Language. Para obtener más información, consulta la documentación de referencia de la API Natural Language Python.
Para autenticarte en Natural Language, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Para ver una lista de todas las categorías disponibles, consulta Categorías.
Como antes, puedes llamar a la función query_category
desde la línea de comandos:
python classify_text_tutorial.py query-category index.json "/Internet & Telecom/Mobile & Wireless"
Debería aparecer lo siguiente:
Query: /Internet & Telecom/Mobile & Wireless
Most similar 3 indexed texts:
Filename: android.txt
Similarity: 0.665573579045
Filename: google.txt
Similarity: 0.517527175966
Filename: gcp.txt
Similarity: 0.5
Consultar con texto
También puedes hacer consultas con texto que no forme parte del texto indexado. La función del tutorial query
es similar a la función query_category
, con el paso adicional de hacer una solicitud classifyText
para la entrada de texto y usar los resultados para consultar el archivo de índice.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Natural Language, consulta el artículo sobre las bibliotecas de cliente de Natural Language. Para obtener más información, consulta la documentación de referencia de la API Natural Language Python.
Para autenticarte en Natural Language, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Para hacerlo desde la línea de comandos, ejecuta lo siguiente:
python classify_text_tutorial.py query index.json "Google Home enables users to speak voice commands to interact with services through the Home's intelligent personal assistant called Google Assistant. A large number of services, both in-house and third-party, are integrated, allowing users to listen to music, look at videos or photos, or receive news updates entirely by voice. "
Se imprimirá algo similar a lo siguiente:
Query: Google Home enables users to speak voice commands to interact with services through the Home's intelligent personal assistant called Google Assistant. A large number of services, both in-house and third-party, are integrated, allowing users to listen to music, look at videos or photos, or receive news updates entirely by voice.
Category: /Internet & Telecom, confidence: 0.509999990463
Category: /Computers & Electronics/Software, confidence: 0.550000011921
Most similar 3 indexed texts:
Filename: android.txt
Similarity: 0.600579500049
Filename: google.txt
Similarity: 0.401314790229
Filename: gcp.txt
Similarity: 0.38772339779
Siguientes pasos
Con la API de clasificación de contenido, puedes crear otras aplicaciones. Por ejemplo:
Clasifica cada párrafo de un artículo para ver la transición entre temas.
Clasifica el contenido con marcas de tiempo y analiza la tendencia de los temas a lo largo del tiempo.
Compara las categorías de contenido con el sentimiento del contenido mediante el método
analyzeSentiment
.Compara las categorías de contenido con las entidades mencionadas en el texto.
Además, puedes usar otros productos de Google Cloud Platform para optimizar tu flujo de trabajo:
En la aplicación de ejemplo de este tutorial, hemos procesado archivos de texto locales, pero puedes modificar el código para procesar archivos de texto almacenados en un segmento de Google Cloud Storage. Para ello, debes pasar un URI de Google Cloud Storage al método
classify_text
.En la aplicación de ejemplo de este tutorial, hemos almacenado el archivo de índice de forma local y cada consulta se procesa leyendo todo el archivo de índice. Esto implica una latencia alta si tienes una gran cantidad de datos indexados o si necesitas procesar numerosas consultas. Datastore es una opción natural y cómoda para almacenar los datos de índice.