Cómo usar la API de Natural Language con C#

1. Descripción general

En este codelab, te enfocarás en el uso de la API de Natural Language con C#. Aprenderás a realizar análisis de opiniones, entidades y sintaxis.

La API de Natural Language de Google Cloud proporciona a los desarrolladores tecnologías de comprensión del lenguaje natural, incluidos el análisis de opiniones, el análisis de entidades y el análisis sintáctico.

Qué aprenderás

  • Cómo usar Cloud Shell
  • Cómo habilitar la API de Natural Language
  • Cómo autenticar solicitudes a la API
  • Cómo instalar la biblioteca cliente de Google Cloud para C#
  • Cómo realizar un análisis de opiniones
  • Cómo realizar un análisis de entidades
  • Cómo realizar un análisis sintáctico

Requisitos

  • Un proyecto de Google Cloud Platform
  • Un navegador como Chrome o Firefox
  • Conocimientos de C#

Encuesta

¿Cómo usarás este instructivo?

Ler Leer y completar los ejercicios

¿Cómo calificarías tu experiencia con C#?

Principiante Intermedio Avanzado

¿Cómo calificarías tu experiencia en el uso de los servicios de Google Cloud Platform?

Principiante Intermedio Avanzado .
.

2. Configuración y requisitos

Configuración del entorno de autoaprendizaje

  1. Accede a Google Cloud Console y crea un proyecto nuevo o reutiliza uno existente. Si aún no tienes una cuenta de Gmail o de Google Workspace, debes crear una.

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • El Nombre del proyecto es el nombre visible de los participantes de este proyecto. Es una cadena de caracteres que no se utiliza en las APIs de Google. Puedes actualizarla cuando quieras.
  • El ID del proyecto es único en todos los proyectos de Google Cloud y es inmutable (no se puede cambiar después de configurarlo). La consola de Cloud genera automáticamente una cadena única. Por lo general, no importa cuál sea. En la mayoría de los codelabs, deberás hacer referencia al ID de tu proyecto (suele identificarse como PROJECT_ID). Si no te gusta el ID que se generó, podrías generar otro aleatorio. También puedes probar uno propio y ver si está disponible. No se puede cambiar después de este paso y se usa el mismo durante todo el proyecto.
  • Recuerda que hay un tercer valor, un número de proyecto, que usan algunas APIs. Obtén más información sobre estos tres valores en la documentación.
  1. A continuación, deberás habilitar la facturación en la consola de Cloud para usar las APIs o los recursos de Cloud. Ejecutar este codelab no costará mucho, tal vez nada. Para cerrar recursos y evitar que se generen cobros más allá de este instructivo, puedes borrar los recursos que creaste o borrar el proyecto. Los usuarios nuevos de Google Cloud son aptos para participar en el programa Prueba gratuita de $300.

Inicia Cloud Shell

Si bien Google Cloud y Spanner se pueden operar de manera remota desde tu laptop, en este codelab usarás Google Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube.

Activar Cloud Shell

  1. En la consola de Cloud, haz clic en Activar Cloud Shelld1264ca30785e435.png.

cb81e7c8e34bc8d.png

Si es la primera vez que inicias Cloud Shell, verás una pantalla intermedia que describe en qué consiste. Si apareció una pantalla intermedia, haz clic en Continuar.

d95252b003979716.png

El aprovisionamiento y la conexión a Cloud Shell solo tomará unos minutos.

7833d5e1c5d18f54.png

Esta máquina virtual está cargada con todas las herramientas de desarrollo necesarias. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud, lo que mejora considerablemente el rendimiento de la red y la autenticación. Gran parte de tu trabajo en este codelab, si no todo, se puede hacer con un navegador.

Una vez que te conectes a Cloud Shell, deberías ver que estás autenticado y que el proyecto está configurado con tu ID del proyecto.

  1. En Cloud Shell, ejecuta el siguiente comando para confirmar que tienes la autenticación:
gcloud auth list

Resultado del comando

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. Ejecuta el siguiente comando en Cloud Shell para confirmar que el comando de gcloud conoce tu proyecto:
gcloud config list project

Resultado del comando

[core]
project = <PROJECT_ID>

De lo contrario, puedes configurarlo con el siguiente comando:

gcloud config set project <PROJECT_ID>

Resultado del comando

Updated property [core/project].

3. Habilita la API de Natural Language

Antes de comenzar a usar la API de Natural Language, debes habilitarla. En Cloud Shell, puedes habilitar la API con el siguiente comando:

gcloud services enable language.googleapis.com

4. Instala la biblioteca cliente de la API de Google Cloud Natural Language para C#

Primero, crea una aplicación sencilla de consola de C# que usarás para ejecutar muestras de la API de Natural Language:

dotnet new console -n NaturalLanguageApiDemo

Deberías ver que se creó la aplicación y que se resolvieron las dependencias:

The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.

Luego, navega a la carpeta NaturalLanguageApiDemo:

cd NaturalLanguageApiDemo/

Además, agrega el paquete NuGet Google.Cloud.Language.V1 al proyecto:

dotnet add package Google.Cloud.Language.V1
info : Adding PackageReference for package 'Google.Cloud.Language.V1' into project '/home/atameldev/NaturalLanguageApiDemo/NaturalLanguageApiDemo.csproj'.
log  : Restoring packages for /home/atameldev/NaturalLanguageApiDemo/NaturalLanguageApiDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.Language.V1' version '1.1.0' added to file '/home/atameldev/NaturalLanguageApiDemo/NaturalLanguageApiDemo.csproj'.

Ahora, ya tienes todo listo para usar la API de Natural Language.

5. Análisis de opiniones

En esta sección, realizarás un análisis de opiniones en una cadena y descubrirás la Score y Magnitude con la API de Natural Language.

El Score de las opiniones varía entre -1.0 (negativo) y 1.0 (positivo), y corresponde a la opinión general de la información dada.

La magnitud de las opiniones varía de 0.0 a +infinito y, además, indica la solidez general de la opinión a partir de la información dada. Cuanta más información se proporcione, mayor será la magnitud.

Abre el editor de código desde la parte superior derecha de Cloud Shell:

fd3fc1303e63572.png

Navega al archivo Program.cs dentro de la carpeta NaturalLanguageApiDemo y reemplaza el código por lo siguiente:

using System;
using Google.Cloud.Language.V1;

namespace NaturalLanguageApiDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var text = "Yukihiro Matsumoto is great!";
            var client = LanguageServiceClient.Create();
            var response = client.AnalyzeSentiment(Document.FromPlainText(text));
            var sentiment = response.DocumentSentiment;
            Console.WriteLine($"Score: {sentiment.Score}");
            Console.WriteLine($"Magnitude: {sentiment.Magnitude}");
        }
    }
}

Tómate unos minutos para estudiar el código y ver cómo se usa el fragmento para realizar el análisis de opiniones en la string "Yukihiro Matsumoto es genial".

En Cloud Shell, ejecuta la app:

dotnet run

Deberías ver el siguiente resultado:

Score: 0.9
Magnitude: 0.9

Resumen

En este paso, pudiste realizar un análisis de opiniones en una cadena de texto y, luego, imprimir la puntuación y la magnitud. Obtén más información sobre el análisis de opiniones.

6. Análisis de entidades

El análisis de entidades inspecciona la información proporcionada para las entidades a través de sustantivos propios como figuras públicas, puntos de referencia, etc., y muestra información sobre esas entidades.

Para realizar un análisis de entidades, navega al archivo Program.cs dentro de la carpeta NaturalLanguageApiDemo y reemplaza el código por lo siguiente:

using System;
using Google.Cloud.Language.V1;

namespace NaturalLanguageApiDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var text = "Yukihiro Matsumoto is great!";
            var client = LanguageServiceClient.Create();
            var response = client.AnalyzeEntitySentiment(Document.FromPlainText(text));

            foreach (var entity in response.Entities)
            {
                Console.WriteLine($"Entity: \"{entity.Name}\" ({entity.Type})");
                if (entity.Metadata.ContainsKey("wikipedia_url"))
                {
                    Console.WriteLine($"URL: {entity.Metadata["wikipedia_url"]}");
                }
            }
        }
    }
}

Dedica uno o dos minutos a estudiar el código y observa cómo se usa el fragmento para realizar el análisis de entidades en la string "Yukihiro Matsumoto es genial".

En Cloud Shell, ejecuta la app:

dotnet run

Deberías ver el siguiente resultado:

Entity: "Yukihiro Matsumoto" (Person)
URL: https://en.wikipedia.org/wiki/Yukihiro_Matsumoto

Resumen

En este paso, pudiste realizar un análisis de entidades en una cadena de texto y, luego, imprimir sus entidades. Obtén más información sobre el análisis de entidades.

7. Análisis sintáctico

El análisis sintáctico extrae información lingüística mediante la división del texto dado en una serie de oraciones y tokens (generalmente, límites de palabras), y proporciona un análisis más detallado sobre esos tokens.

En este ejemplo, se imprimirá la cantidad de oraciones y tokens, y se proporcionará la categoría gramatical de cada token.

Para realizar un análisis sintáctico, navega al archivo Program.cs dentro de la carpeta NaturalLanguageApiDemo y reemplaza el código por lo siguiente:

using System;
using Google.Cloud.Language.V1;
using static Google.Cloud.Language.V1.AnnotateTextRequest.Types;

namespace NaturalLanguageApiDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var text = "Yukihiro Matsumoto is great!";
            var client = LanguageServiceClient.Create();
            var response = client.AnnotateText(Document.FromPlainText(text), 
                new Features { ExtractSyntax = true });

            var sentences = response.Sentences;
            var tokens = response.Tokens;

            Console.WriteLine($"Sentences: {sentences.Count}");
            Console.WriteLine($"Tokens: {tokens.Count}");

            foreach (var token in tokens)
            {
                Console.WriteLine($"{token.PartOfSpeech.Tag} {token.Text.Content}");
            }
        }
    }
}

Dedica unos minutos a estudiar el código y observa cómo se usa el fragmento para realizar el análisis sintáctico en la cadena "Yukihiro Matsumoto is Great!".

En Cloud Shell, ejecuta la app:

dotnet run

Deberías ver el siguiente resultado:

Sentences: 1
Tokens: 5
Noun Yukihiro
Noun Matsumoto
Verb is
Adj great
Punct !

A continuación, se muestra una interpretación visual.

297dbabf1a723bad.png

Resumen

En este paso, pudiste realizar un análisis sintáctico en una simple cadena de texto e imprimiste la cantidad de oraciones, de tokens y de la información lingüística de cada token. Obtén más información acerca del análisis sintáctico.

8. ¡Felicitaciones!

Aprendiste a usar la API de Natural Language con C# para realizar diferentes tipos de análisis de la información.

Limpia

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud Platform por los recursos de esta guía de inicio rápido:

  • Ve a la consola de Google Cloud.
  • Selecciona el proyecto que deseas cerrar y haz clic en “Borrar”. en la parte superior: esta opción programa la eliminación del proyecto.

Más información

Licencia

Este trabajo cuenta con una licencia Atribución 2.0 Genérica de Creative Commons.