Importa datos y crea conjuntos de datos

Un conjunto de datos contiene muestras representativas del tipo de contenido que deseas clasificar, con las etiquetas de categoría que quieres que use tu modelo personalizado. El conjunto de datos sirve como entrada para entrenar un modelo.

Los pasos principales para compilar un conjunto de datos son:

  1. Crear un recurso de conjuntos de datos
  2. Importar datos de entrenamiento al conjunto de datos.
  3. Etiquetar los documentos o identificar las entidades.

Para la clasificación y el análisis de opiniones, a menudo se combinan los pasos 2 y 3: puedes importar documentos con sus etiquetas ya asignadas.

Crea un conjunto de datos

El primer paso cuando se crea un modelo personalizado es crear un conjunto de datos vacío que finalmente tendrá los datos de entrenamiento para el modelo. El conjunto de datos recién creado no contendrá ningún dato hasta que importes elementos en él.

IU web

Sigue estos pasos para crear un conjunto de datos:

  1. Abre la IU de AutoML Natural Language y selecciona Comenzar en el cuadro correspondiente al tipo de modelo que planeas entrenar.

    Aparece la página Conjuntos de datos, que muestra el estado de los conjuntos de datos creados anteriormente para el proyecto actual.

    Para agregar un conjunto de datos a un proyecto diferente, selecciona el proyecto de la lista desplegable en la esquina superior derecha de la barra de título.

  2. Haz clic en el botón Conjunto de datos nuevo en la barra de título.

  3. Escribe un nombre para el conjunto de datos y especifica en qué ubicación geográfica se almacenará.

    Consulta la información sobre ubicaciones para obtener más detalles.

  4. Selecciona el objetivo del modelo, que especifica qué tipo de análisis realizará el modelo entrenado con este conjunto de datos.

    • La clasificación con una sola etiqueta asigna una sola etiqueta a cada documento clasificado.
    • La clasificación con varias etiquetas permite asignar varias etiquetas a un documento.
    • La extracción de entidades consiste en identificar entidades en los documentos.
    • El análisis de opiniones consiste en analizar las actitudes de los autores de los documentos.
  5. Haga clic en Crear conjunto de datos.

    Aparecerá la página de importación para el conjunto de datos nuevo. Consulta Importar datos a un conjunto de datos.

Ejemplos de código

Clasificación

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: el ID de tu proyecto
  • location-id: la ubicación del recurso; us-central1 para la ubicación global o eu para la Unión Europea

Método HTTP y URL:

POST https://automl.googleapis.com/v1/projects/project-id/locations/location-id/datasets

Cuerpo JSON de la solicitud:

{
  "displayName": "test_dataset",
  "textClassificationDatasetMetadata": {
    "classificationType": "MULTICLASS"
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/434039606874/locations/us-central1/datasets/356587829854924648",
  "displayName": "test_dataset",
  "createTime": "2018-04-26T18:02:59.825060Z",
  "textClassificationDatasetMetadata": {
    "classificationType": "MULTICLASS"
  }
}

Python

Para aprender a instalar y usar la biblioteca cliente de AutoML Natural Language, consulta Bibliotecas cliente de AutoML Natural Language. Para obtener más información, consulta la documentación de referencia de la API de Python de AutoML Natural Language.

Para autenticarte en AutoML Natural Language, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

from google.cloud import automl

# TODO(developer): Uncomment and set the following variables
# project_id = "YOUR_PROJECT_ID"
# display_name = "YOUR_DATASET_NAME"

client = automl.AutoMlClient()

# A resource that represents Google Cloud Platform location.
project_location = f"projects/{project_id}/locations/us-central1"
# Specify the classification type
# Types:
# MultiLabel: Multiple labels are allowed for one example.
# MultiClass: At most one label is allowed per example.
metadata = automl.TextClassificationDatasetMetadata(
    classification_type=automl.ClassificationType.MULTICLASS
)
dataset = automl.Dataset(
    display_name=display_name,
    text_classification_dataset_metadata=metadata,
)

# Create a dataset with the dataset metadata in the region.
response = client.create_dataset(parent=project_location, dataset=dataset)

created_dataset = response.result()

# Display the dataset information
print(f"Dataset name: {created_dataset.name}")
print("Dataset id: {}".format(created_dataset.name.split("/")[-1]))

Java

Para aprender a instalar y usar la biblioteca cliente de AutoML Natural Language, consulta Bibliotecas cliente de AutoML Natural Language. Para obtener más información, consulta la documentación de referencia de la API de Java de AutoML Natural Language.

Para autenticarte en AutoML Natural Language, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.automl.v1.AutoMlClient;
import com.google.cloud.automl.v1.ClassificationType;
import com.google.cloud.automl.v1.Dataset;
import com.google.cloud.automl.v1.LocationName;
import com.google.cloud.automl.v1.OperationMetadata;
import com.google.cloud.automl.v1.TextClassificationDatasetMetadata;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

class LanguageTextClassificationCreateDataset {

  public static void main(String[] args)
      throws IOException, ExecutionException, InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    String displayName = "YOUR_DATASET_NAME";
    createDataset(projectId, displayName);
  }

  // Create a dataset
  static void createDataset(String projectId, String displayName)
      throws IOException, ExecutionException, InterruptedException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (AutoMlClient client = AutoMlClient.create()) {
      // A resource that represents Google Cloud Platform location.
      LocationName projectLocation = LocationName.of(projectId, "us-central1");

      // Specify the classification type
      // Types:
      // MultiLabel: Multiple labels are allowed for one example.
      // MultiClass: At most one label is allowed per example.
      ClassificationType classificationType = ClassificationType.MULTILABEL;

      // Specify the text classification type for the dataset.
      TextClassificationDatasetMetadata metadata =
          TextClassificationDatasetMetadata.newBuilder()
              .setClassificationType(classificationType)
              .build();
      Dataset dataset =
          Dataset.newBuilder()
              .setDisplayName(displayName)
              .setTextClassificationDatasetMetadata(metadata)
              .build();
      OperationFuture<Dataset, OperationMetadata> future =
          client.createDatasetAsync(projectLocation, dataset);

      Dataset createdDataset = future.get();

      // Display the dataset information.
      System.out.format("Dataset name: %s\n", createdDataset.getName());
      // To get the dataset id, you have to parse it out of the `name` field. As dataset Ids are
      // required for other methods.
      // Name Form: `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`
      String[] names = createdDataset.getName().split("/");
      String datasetId = names[names.length - 1];
      System.out.format("Dataset id: %s\n", datasetId);
    }
  }
}

Node.js

Para aprender a instalar y usar la biblioteca cliente de AutoML Natural Language, consulta Bibliotecas cliente de AutoML Natural Language. Para obtener más información, consulta la documentación de referencia de la API de Node.js de AutoML Natural Language.

Para autenticarte en AutoML Natural Language, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';
// const displayName = 'YOUR_DISPLAY_NAME';

// Imports the Google Cloud AutoML library
const {AutoMlClient} = require('@google-cloud/automl').v1;

// Instantiates a client
const client = new AutoMlClient();

async function createDataset() {
  // Construct request
  const request = {
    parent: client.locationPath(projectId, location),
    dataset: {
      displayName: displayName,
      textClassificationDatasetMetadata: {
        classificationType: 'MULTICLASS',
      },
    },
  };

  // Create dataset
  const [operation] = await client.createDataset(request);

  // Wait for operation to complete.
  const [response] = await operation.promise();

  console.log(`Dataset name: ${response.name}`);
  console.log(`
    Dataset id: ${
      response.name
        .split('/')
        [response.name.split('/').length - 1].split('\n')[0]
    }`);
}

createDataset();

Go

Para aprender a instalar y usar la biblioteca cliente de AutoML Natural Language, consulta Bibliotecas cliente de AutoML Natural Language. Para obtener más información, consulta la documentación de referencia de la API de Go de AutoML Natural Language.

Para autenticarte en AutoML Natural Language, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import (
	"context"
	"fmt"
	"io"

	automl "cloud.google.com/go/automl/apiv1"
	"cloud.google.com/go/automl/apiv1/automlpb"
)

// languageTextClassificationCreateDataset creates a dataset for text classification.
func languageTextClassificationCreateDataset(w io.Writer, projectID string, location string, datasetName string) error {
	// projectID := "my-project-id"
	// location := "us-central1"
	// datasetName := "dataset_display_name"

	ctx := context.Background()
	client, err := automl.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("NewClient: %w", err)
	}
	defer client.Close()

	req := &automlpb.CreateDatasetRequest{
		Parent: fmt.Sprintf("projects/%s/locations/%s", projectID, location),
		Dataset: &automlpb.Dataset{
			DisplayName: datasetName,
			DatasetMetadata: &automlpb.Dataset_TextClassificationDatasetMetadata{
				TextClassificationDatasetMetadata: &automlpb.TextClassificationDatasetMetadata{
					// Specify the classification type:
					// - MULTILABEL: Multiple labels are allowed for one example.
					// - MULTICLASS: At most one label is allowed per example.
					ClassificationType: automlpb.ClassificationType_MULTICLASS,
				},
			},
		},
	}

	op, err := client.CreateDataset(ctx, req)
	if err != nil {
		return fmt.Errorf("CreateDataset: %w", err)
	}
	fmt.Fprintf(w, "Processing operation name: %q\n", op.Name())

	dataset, err := op.Wait(ctx)
	if err != nil {
		return fmt.Errorf("Wait: %w", err)
	}

	fmt.Fprintf(w, "Dataset name: %v\n", dataset.GetName())

	return nil
}

Idiomas adicionales

C# : Sigue las Instrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de AutoML Natural Language para .NET.

PHP : Sigue las Instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de AutoML Natural Language para PHP.

Ruby : Sigue las Instrucciones de configuración de Ruby en la página de bibliotecas cliente y, luego, visita la documentación de referencia de AutoML Natural Language para Ruby.

Extracción de entidades

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: el ID de tu proyecto
  • location-id: la ubicación del recurso; us-central1 para la ubicación global o eu para la Unión Europea

Método HTTP y URL:

POST https://automl.googleapis.com/v1/projects/project-id/locations/location-id/datasets

Cuerpo JSON de la solicitud:

{
  "displayName": "test_dataset",
  "textExtractionDatasetMetadata": {
   }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  name: "projects/000000000000/locations/us-central1/datasets/TEN5582774688079151104"
  display_name: "test_dataset"
  create_time {
     seconds: 1539886451
     nanos: 757650000
   }
   text_extraction_dataset_metadata {
   }
}

Python

Para aprender a instalar y usar la biblioteca cliente de AutoML Natural Language, consulta Bibliotecas cliente de AutoML Natural Language. Para obtener más información, consulta la documentación de referencia de la API de Python de AutoML Natural Language.

Para autenticarte en AutoML Natural Language, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

from google.cloud import automl

# TODO(developer): Uncomment and set the following variables
# project_id = "YOUR_PROJECT_ID"
# display_name = "YOUR_DATASET_NAME"

client = automl.AutoMlClient()

# A resource that represents Google Cloud Platform location.
project_location = f"projects/{project_id}/locations/us-central1"
metadata = automl.TextExtractionDatasetMetadata()
dataset = automl.Dataset(
    display_name=display_name, text_extraction_dataset_metadata=metadata
)

# Create a dataset with the dataset metadata in the region.
response = client.create_dataset(parent=project_location, dataset=dataset)

created_dataset = response.result()

# Display the dataset information
print(f"Dataset name: {created_dataset.name}")
print("Dataset id: {}".format(created_dataset.name.split("/")[-1]))

Java

Para aprender a instalar y usar la biblioteca cliente de AutoML Natural Language, consulta Bibliotecas cliente de AutoML Natural Language. Para obtener más información, consulta la documentación de referencia de la API de Java de AutoML Natural Language.

Para autenticarte en AutoML Natural Language, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.automl.v1.AutoMlClient;
import com.google.cloud.automl.v1.Dataset;
import com.google.cloud.automl.v1.LocationName;
import com.google.cloud.automl.v1.OperationMetadata;
import com.google.cloud.automl.v1.TextExtractionDatasetMetadata;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

class LanguageEntityExtractionCreateDataset {

  static void createDataset() throws IOException, ExecutionException, InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    String displayName = "YOUR_DATASET_NAME";
    createDataset(projectId, displayName);
  }

  // Create a dataset
  static void createDataset(String projectId, String displayName)
      throws IOException, ExecutionException, InterruptedException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (AutoMlClient client = AutoMlClient.create()) {
      // A resource that represents Google Cloud Platform location.
      LocationName projectLocation = LocationName.of(projectId, "us-central1");

      TextExtractionDatasetMetadata metadata = TextExtractionDatasetMetadata.newBuilder().build();
      Dataset dataset =
          Dataset.newBuilder()
              .setDisplayName(displayName)
              .setTextExtractionDatasetMetadata(metadata)
              .build();
      OperationFuture<Dataset, OperationMetadata> future =
          client.createDatasetAsync(projectLocation, dataset);

      Dataset createdDataset = future.get();

      // Display the dataset information.
      System.out.format("Dataset name: %s\n", createdDataset.getName());
      // To get the dataset id, you have to parse it out of the `name` field. As dataset Ids are
      // required for other methods.
      // Name Form: `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`
      String[] names = createdDataset.getName().split("/");
      String datasetId = names[names.length - 1];
      System.out.format("Dataset id: %s\n", datasetId);
    }
  }
}

Node.js

Para aprender a instalar y usar la biblioteca cliente de AutoML Natural Language, consulta Bibliotecas cliente de AutoML Natural Language. Para obtener más información, consulta la documentación de referencia de la API de Node.js de AutoML Natural Language.

Para autenticarte en AutoML Natural Language, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';
// const displayName = 'YOUR_DISPLAY_NAME';

// Imports the Google Cloud AutoML library
const {AutoMlClient} = require('@google-cloud/automl').v1;

// Instantiates a client
const client = new AutoMlClient();

async function createDataset() {
  // Construct request
  const request = {
    parent: client.locationPath(projectId, location),
    dataset: {
      displayName: displayName,
      textExtractionDatasetMetadata: {},
    },
  };

  // Create dataset
  const [operation] = await client.createDataset(request);

  // Wait for operation to complete.
  const [response] = await operation.promise();

  console.log(`Dataset name: ${response.name}`);
  console.log(`
    Dataset id: ${
      response.name
        .split('/')
        [response.name.split('/').length - 1].split('\n')[0]
    }`);
}

createDataset();

Go

Para aprender a instalar y usar la biblioteca cliente de AutoML Natural Language, consulta Bibliotecas cliente de AutoML Natural Language. Para obtener más información, consulta la documentación de referencia de la API de Go de AutoML Natural Language.

Para autenticarte en AutoML Natural Language, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import (
	"context"
	"fmt"
	"io"

	automl "cloud.google.com/go/automl/apiv1"
	"cloud.google.com/go/automl/apiv1/automlpb"
)

// languageEntityExtractionCreateDataset creates a dataset for text entity extraction.
func languageEntityExtractionCreateDataset(w io.Writer, projectID string, location string, datasetName string) error {
	// projectID := "my-project-id"
	// location := "us-central1"
	// datasetName := "dataset_display_name"

	ctx := context.Background()
	client, err := automl.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("NewClient: %w", err)
	}
	defer client.Close()

	req := &automlpb.CreateDatasetRequest{
		Parent: fmt.Sprintf("projects/%s/locations/%s", projectID, location),
		Dataset: &automlpb.Dataset{
			DisplayName: datasetName,
			DatasetMetadata: &automlpb.Dataset_TextExtractionDatasetMetadata{
				TextExtractionDatasetMetadata: &automlpb.TextExtractionDatasetMetadata{},
			},
		},
	}

	op, err := client.CreateDataset(ctx, req)
	if err != nil {
		return fmt.Errorf("CreateDataset: %w", err)
	}
	fmt.Fprintf(w, "Processing operation name: %q\n", op.Name())

	dataset, err := op.Wait(ctx)
	if err != nil {
		return fmt.Errorf("Wait: %w", err)
	}

	fmt.Fprintf(w, "Dataset name: %v\n", dataset.GetName())

	return nil
}

Idiomas adicionales

C# : Sigue las Instrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de AutoML Natural Language para .NET.

PHP : Sigue las Instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de AutoML Natural Language para PHP.

Ruby : Sigue las Instrucciones de configuración de Ruby en la página de bibliotecas cliente y, luego, visita la documentación de referencia de AutoML Natural Language para Ruby.

Análisis de opiniones

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: el ID de tu proyecto
  • location-id: la ubicación del recurso; us-central1 para la ubicación global o eu para la Unión Europea

Método HTTP y URL:

POST https://automl.googleapis.com/v1/projects/project-id/locations/location-id/datasets

Cuerpo JSON de la solicitud:

{
  "displayName": "test_dataset",
  "textSentimentDatasetMetadata": {
    "sentimentMax": 4
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  name: "projects/000000000000/locations/us-central1/datasets/TST8962998974766436002"
  display_name: "test_dataset_name"
  create_time {
    seconds: 1538855662
    nanos: 51542000
  }
  text_sentiment_dataset_metadata {
    sentiment_max: 7
  }
}

Python

Para aprender a instalar y usar la biblioteca cliente de AutoML Natural Language, consulta Bibliotecas cliente de AutoML Natural Language. Para obtener más información, consulta la documentación de referencia de la API de Python de AutoML Natural Language.

Para autenticarte en AutoML Natural Language, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

from google.cloud import automl

# TODO(developer): Uncomment and set the following variables
# project_id = "YOUR_PROJECT_ID"
# display_name = "YOUR_DATASET_NAME"

client = automl.AutoMlClient()

# A resource that represents Google Cloud Platform location.
project_location = f"projects/{project_id}/locations/us-central1"

# Each dataset requires a sentiment score with a defined sentiment_max
# value, for more information on TextSentimentDatasetMetadata, see:
# https://cloud.google.com/natural-language/automl/docs/prepare#sentiment-analysis
# https://cloud.google.com/automl/docs/reference/rpc/google.cloud.automl.v1#textsentimentdatasetmetadata
metadata = automl.TextSentimentDatasetMetadata(
    sentiment_max=4
)  # Possible max sentiment score: 1-10

dataset = automl.Dataset(
    display_name=display_name, text_sentiment_dataset_metadata=metadata
)

# Create a dataset with the dataset metadata in the region.
response = client.create_dataset(parent=project_location, dataset=dataset)

created_dataset = response.result()

# Display the dataset information
print(f"Dataset name: {created_dataset.name}")
print("Dataset id: {}".format(created_dataset.name.split("/")[-1]))

Java

Para aprender a instalar y usar la biblioteca cliente de AutoML Natural Language, consulta Bibliotecas cliente de AutoML Natural Language. Para obtener más información, consulta la documentación de referencia de la API de Java de AutoML Natural Language.

Para autenticarte en AutoML Natural Language, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.automl.v1.AutoMlClient;
import com.google.cloud.automl.v1.Dataset;
import com.google.cloud.automl.v1.LocationName;
import com.google.cloud.automl.v1.OperationMetadata;
import com.google.cloud.automl.v1.TextSentimentDatasetMetadata;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

class LanguageSentimentAnalysisCreateDataset {

  static void createDataset() throws IOException, ExecutionException, InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    String displayName = "YOUR_DATASET_NAME";
    createDataset(projectId, displayName);
  }

  // Create a dataset
  static void createDataset(String projectId, String displayName)
      throws IOException, ExecutionException, InterruptedException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (AutoMlClient client = AutoMlClient.create()) {
      // A resource that represents Google Cloud Platform location.
      LocationName projectLocation = LocationName.of(projectId, "us-central1");
      // Specify the text classification type for the dataset.
      TextSentimentDatasetMetadata metadata =
          TextSentimentDatasetMetadata.newBuilder()
              .setSentimentMax(4) // Possible max sentiment score: 1-10
              .build();
      Dataset dataset =
          Dataset.newBuilder()
              .setDisplayName(displayName)
              .setTextSentimentDatasetMetadata(metadata)
              .build();
      OperationFuture<Dataset, OperationMetadata> future =
          client.createDatasetAsync(projectLocation, dataset);

      Dataset createdDataset = future.get();

      // Display the dataset information.
      System.out.format("Dataset name: %s\n", createdDataset.getName());
      // To get the dataset id, you have to parse it out of the `name` field. As dataset Ids are
      // required for other methods.
      // Name Form: `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`
      String[] names = createdDataset.getName().split("/");
      String datasetId = names[names.length - 1];
      System.out.format("Dataset id: %s\n", datasetId);
    }
  }
}

Node.js

Para aprender a instalar y usar la biblioteca cliente de AutoML Natural Language, consulta Bibliotecas cliente de AutoML Natural Language. Para obtener más información, consulta la documentación de referencia de la API de Node.js de AutoML Natural Language.

Para autenticarte en AutoML Natural Language, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';
// const displayName = 'YOUR_DISPLAY_NAME';

// Imports the Google Cloud AutoML library
const {AutoMlClient} = require('@google-cloud/automl').v1;

// Instantiates a client
const client = new AutoMlClient();

async function createDataset() {
  // Construct request
  const request = {
    parent: client.locationPath(projectId, location),
    dataset: {
      displayName: displayName,
      textSentimentDatasetMetadata: {
        sentimentMax: 4, // Possible max sentiment score: 1-10
      },
    },
  };

  // Create dataset
  const [operation] = await client.createDataset(request);

  // Wait for operation to complete.
  const [response] = await operation.promise();

  console.log(`Dataset name: ${response.name}`);
  console.log(`
    Dataset id: ${
      response.name
        .split('/')
        [response.name.split('/').length - 1].split('\n')[0]
    }`);
}

createDataset();

Go

Para aprender a instalar y usar la biblioteca cliente de AutoML Natural Language, consulta Bibliotecas cliente de AutoML Natural Language. Para obtener más información, consulta la documentación de referencia de la API de Go de AutoML Natural Language.

Para autenticarte en AutoML Natural Language, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import (
	"context"
	"fmt"
	"io"

	automl "cloud.google.com/go/automl/apiv1"
	"cloud.google.com/go/automl/apiv1/automlpb"
)

// languageSentimentAnalysisCreateDataset creates a dataset for text sentiment analysis.
func languageSentimentAnalysisCreateDataset(w io.Writer, projectID string, location string, datasetName string) error {
	// projectID := "my-project-id"
	// location := "us-central1"
	// datasetName := "dataset_display_name"

	ctx := context.Background()
	client, err := automl.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("NewClient: %w", err)
	}
	defer client.Close()

	req := &automlpb.CreateDatasetRequest{
		Parent: fmt.Sprintf("projects/%s/locations/%s", projectID, location),
		Dataset: &automlpb.Dataset{
			DisplayName: datasetName,
			DatasetMetadata: &automlpb.Dataset_TextSentimentDatasetMetadata{
				TextSentimentDatasetMetadata: &automlpb.TextSentimentDatasetMetadata{
					SentimentMax: 4, // Possible max sentiment score: 1-10
				},
			},
		},
	}

	op, err := client.CreateDataset(ctx, req)
	if err != nil {
		return fmt.Errorf("CreateDataset: %w", err)
	}
	fmt.Fprintf(w, "Processing operation name: %q\n", op.Name())

	dataset, err := op.Wait(ctx)
	if err != nil {
		return fmt.Errorf("Wait: %w", err)
	}

	fmt.Fprintf(w, "Dataset name: %v\n", dataset.GetName())

	return nil
}

Idiomas adicionales

C# : Sigue las Instrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de AutoML Natural Language para .NET.

PHP : Sigue las Instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de AutoML Natural Language para PHP.

Ruby : Sigue las Instrucciones de configuración de Ruby en la página de bibliotecas cliente y, luego, visita la documentación de referencia de AutoML Natural Language para Ruby.

Importar datos de entrenamiento a un conjunto de datos

Después de haber creado un conjunto de datos, puedes importar los URI de documentos y etiquetas para documentos desde un archivo CSV almacenado en un bucket de Cloud Storage. Si deseas obtener detalles sobre cómo preparar tus datos y crear un archivo CSV para importar, consulta Preparar los datos de entrenamiento.

Puedes importar documentos a un conjunto de datos vacío o importar documentos adicionales a un conjunto de datos existente.

IU web

Para importar documentos a un conjunto de datos, sigue estos pasos:

  1. Selecciona el conjunto de datos al que deseas importar documentos en la página Conjuntos de datos.

  2. En la pestaña Importar, especifica dónde encontrar los documentos de entrenamiento.

    Puede hacer lo siguiente:

    • Carga un archivo .csv que contenga los documentos de entrenamiento y sus etiquetas de categoría asociadas desde tu computadora local o desde Cloud Storage.

    • Carga una colección de archivos .txt, .pdf, .tif o .zip que contengan los documentos de entrenamiento de tu computadora local.

  3. Selecciona los archivos por importar y la ruta de Cloud Storage para los documentos importados.

  4. Haga clic en Import.

Muestras de código

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: el ID de tu proyecto
  • location-id: la ubicación del recurso; us-central1 para la ubicación global o eu para la Unión Europea
  • dataset-id: ID del conjunto de datos
  • bucket-name: tu bucket de Cloud Storage
  • csv-file-name: archivo de datos de entrenamiento en formato CSV

Método HTTP y URL:

POST https://automl.googleapis.com/v1/projects/project-id/locations/location-id/datasets/dataset-id:importData

Cuerpo JSON de la solicitud:

{
  "inputConfig": {
    "gcsSource": {
      "inputUris": ["gs://bucket-name/csv-file-name.csv"]
      }
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías ver un resultado similar al siguiente. Puedes usar el ID de operación para obtener el estado de la tarea. Para ver un ejemplo, consulta Obtener el estado de una operación.

{
  "name": "projects/434039606874/locations/us-central1/operations/1979469554520650937",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1beta1.OperationMetadata",
    "createTime": "2018-04-27T01:28:36.128120Z",
    "updateTime": "2018-04-27T01:28:36.128150Z",
    "cancellable": true
  }
}

Python

Para aprender a instalar y usar la biblioteca cliente de AutoML Natural Language, consulta Bibliotecas cliente de AutoML Natural Language. Para obtener más información, consulta la documentación de referencia de la API de Python de AutoML Natural Language.

Para autenticarte en AutoML Natural Language, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

from google.cloud import automl

# TODO(developer): Uncomment and set the following variables
# project_id = "YOUR_PROJECT_ID"
# dataset_id = "YOUR_DATASET_ID"
# path = "gs://YOUR_BUCKET_ID/path/to/data.csv"

client = automl.AutoMlClient()
# Get the full path of the dataset.
dataset_full_id = client.dataset_path(project_id, "us-central1", dataset_id)
# Get the multiple Google Cloud Storage URIs
input_uris = path.split(",")
gcs_source = automl.GcsSource(input_uris=input_uris)
input_config = automl.InputConfig(gcs_source=gcs_source)
# Import data from the input URI
response = client.import_data(name=dataset_full_id, input_config=input_config)

print("Processing import...")
print(f"Data imported. {response.result()}")

Java

Para aprender a instalar y usar la biblioteca cliente de AutoML Natural Language, consulta Bibliotecas cliente de AutoML Natural Language. Para obtener más información, consulta la documentación de referencia de la API de Java de AutoML Natural Language.

Para autenticarte en AutoML Natural Language, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.automl.v1.AutoMlClient;
import com.google.cloud.automl.v1.DatasetName;
import com.google.cloud.automl.v1.GcsSource;
import com.google.cloud.automl.v1.InputConfig;
import com.google.cloud.automl.v1.OperationMetadata;
import com.google.protobuf.Empty;
import java.io.IOException;
import java.util.Arrays;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

class ImportDataset {

  public static void main(String[] args)
      throws IOException, ExecutionException, InterruptedException, TimeoutException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    String datasetId = "YOUR_DATASET_ID";
    String path = "gs://BUCKET_ID/path_to_training_data.csv";
    importDataset(projectId, datasetId, path);
  }

  // Import a dataset
  static void importDataset(String projectId, String datasetId, String path)
      throws IOException, ExecutionException, InterruptedException, TimeoutException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (AutoMlClient client = AutoMlClient.create()) {
      // Get the complete path of the dataset.
      DatasetName datasetFullId = DatasetName.of(projectId, "us-central1", datasetId);

      // Get multiple Google Cloud Storage URIs to import data from
      GcsSource gcsSource =
          GcsSource.newBuilder().addAllInputUris(Arrays.asList(path.split(","))).build();

      // Import data from the input URI
      InputConfig inputConfig = InputConfig.newBuilder().setGcsSource(gcsSource).build();
      System.out.println("Processing import...");

      // Start the import job
      OperationFuture<Empty, OperationMetadata> operation =
          client.importDataAsync(datasetFullId, inputConfig);

      System.out.format("Operation name: %s%n", operation.getName());

      // If you want to wait for the operation to finish, adjust the timeout appropriately. The
      // operation will still run if you choose not to wait for it to complete. You can check the
      // status of your operation using the operation's name.
      Empty response = operation.get(45, TimeUnit.MINUTES);
      System.out.format("Dataset imported. %s%n", response);
    } catch (TimeoutException e) {
      System.out.println("The operation's polling period was not long enough.");
      System.out.println("You can use the Operation's name to get the current status.");
      System.out.println("The import job is still running and will complete as expected.");
      throw e;
    }
  }
}

Node.js

Para aprender a instalar y usar la biblioteca cliente de AutoML Natural Language, consulta Bibliotecas cliente de AutoML Natural Language. Para obtener más información, consulta la documentación de referencia de la API de Node.js de AutoML Natural Language.

Para autenticarte en AutoML Natural Language, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';
// const datasetId = 'YOUR_DISPLAY_ID';
// const path = 'gs://BUCKET_ID/path_to_training_data.csv';

// Imports the Google Cloud AutoML library
const {AutoMlClient} = require('@google-cloud/automl').v1;

// Instantiates a client
const client = new AutoMlClient();

async function importDataset() {
  // Construct request
  const request = {
    name: client.datasetPath(projectId, location, datasetId),
    inputConfig: {
      gcsSource: {
        inputUris: path.split(','),
      },
    },
  };

  // Import dataset
  console.log('Proccessing import');
  const [operation] = await client.importData(request);

  // Wait for operation to complete.
  const [response] = await operation.promise();
  console.log(`Dataset imported: ${response}`);
}

importDataset();

Go

Para aprender a instalar y usar la biblioteca cliente de AutoML Natural Language, consulta Bibliotecas cliente de AutoML Natural Language. Para obtener más información, consulta la documentación de referencia de la API de Go de AutoML Natural Language.

Para autenticarte en AutoML Natural Language, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import (
	"context"
	"fmt"
	"io"

	automl "cloud.google.com/go/automl/apiv1"
	"cloud.google.com/go/automl/apiv1/automlpb"
)

// importDataIntoDataset imports data into a dataset.
func importDataIntoDataset(w io.Writer, projectID string, location string, datasetID string, inputURI string) error {
	// projectID := "my-project-id"
	// location := "us-central1"
	// datasetID := "TRL123456789..."
	// inputURI := "gs://BUCKET_ID/path_to_training_data.csv"

	ctx := context.Background()
	client, err := automl.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("NewClient: %w", err)
	}
	defer client.Close()

	req := &automlpb.ImportDataRequest{
		Name: fmt.Sprintf("projects/%s/locations/%s/datasets/%s", projectID, location, datasetID),
		InputConfig: &automlpb.InputConfig{
			Source: &automlpb.InputConfig_GcsSource{
				GcsSource: &automlpb.GcsSource{
					InputUris: []string{inputURI},
				},
			},
		},
	}

	op, err := client.ImportData(ctx, req)
	if err != nil {
		return fmt.Errorf("ImportData: %w", err)
	}
	fmt.Fprintf(w, "Processing operation name: %q\n", op.Name())

	if err := op.Wait(ctx); err != nil {
		return fmt.Errorf("Wait: %w", err)
	}

	fmt.Fprintf(w, "Data imported.\n")

	return nil
}

Idiomas adicionales

C# : Sigue las Instrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de AutoML Natural Language para .NET.

PHP : Sigue las Instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de AutoML Natural Language para PHP.

Ruby : Sigue las Instrucciones de configuración de Ruby en la página de bibliotecas cliente y, luego, visita la documentación de referencia de AutoML Natural Language para Ruby.

Etiquetar documentos de entrenamiento

Para que resulte útil en el entrenamiento de un modelo, cada documento de un conjunto de datos debe estar etiquetado de la misma forma en que quieres que AutoML Natural Language etiquete otros documentos similares. La calidad de los datos de entrenamiento tiene un gran impacto en la eficacia del modelo que creas y, por extensión, en la calidad de las predicciones que muestra ese modelo. AutoML Natural Language ignora los documentos no etiquetados durante el entrenamiento.

Puedes proporcionar etiquetas a los documentos de entrenamiento de tres maneras:

  • Incluir etiquetas en el archivo .csv (solo para clasificación y análisis de opiniones)
  • Etiquetar los documentos en la IU de AutoML Natural Language
  • Solicitar el etiquetado a personas mediante el Servicio de etiquetado de datos de AI Platform

La API de AutoML no incluye métodos de etiquetado.

Para obtener detalles sobre cómo etiquetar documentos en tu archivo .csv, consulta Preparar los datos de entrenamiento.

Etiquetado para clasificación y análisis de opiniones

Para etiquetar documentos en la IU de AutoML Natural Language, selecciona el conjunto de datos de la página del listado a fin de ver los detalles. El nombre visible del conjunto de datos seleccionado aparece en la barra de título y, en la página, se muestran sus documentos individuales junto con sus etiquetas asignadas. La barra de navegación a la izquierda resume el número de documentos etiquetados y no etiquetados, y te permite filtrar la lista de documentos por etiqueta o valor de opinión.

Página de elementos de texto

Página de elementos de texto

Para asignar etiquetas o valores de opinión a documentos sin etiquetar o cambiar etiquetas de documentos, selecciona los documentos que deseas actualizar y las etiquetas que quieres asignarles. Hay dos maneras de actualizar la etiqueta de un documento:

  • Haz clic en la casilla de verificación ubicada junto a los documentos que deseas actualizar y, luego, selecciona las etiquetas que deseas aplicar en la lista desplegable Etiqueta que aparece en la parte superior de la lista de documentos.

  • Haz clic en la fila del documento que deseas actualizar y, luego, selecciona las etiquetas o el valor que quieres aplicar de la lista que aparece en la página Detalles del texto.

Identificar entidades para la extracción de entidades

Antes de entrenar tu modelo personalizado, debes anotar los documentos de entrenamiento en el conjunto de datos. Puedes anotar los documentos de entrenamiento antes de importarlos o puedes agregar anotaciones en la IU de AutoML Natural Language.

Para realizar anotaciones en la IU de AutoML Natural Language, selecciona el conjunto de datos de la página del listado para ver los detalles. El nombre visible del conjunto de datos seleccionado aparece en la barra de título, y en la página, se muestran los documentos individuales del conjunto junto con las anotaciones que tengan. La barra de navegación ubicada a la izquierda resume las etiquetas y la cantidad de veces que aparece cada una. También puedes filtrar la lista de documentos por etiqueta.

Lista de anotaciones

Para agregar o borrar anotaciones dentro de un documento, haz doble clic en el documento que deseas actualizar. En la página Editar, se muestra el texto completo del documento seleccionado, con todas las anotaciones anteriores destacadas.

Editor de entidades

En el caso de los documentos de entrenamiento en formato PDF o los importados con información de diseño, la página Editar tiene dos pestañas: Texto sin formato y Texto estructurado. En la pestaña Texto sin formato, se muestra el contenido sin procesar del documento de entrenamiento sin ningún formato. En la pestaña Texto estructurado, se recrea el diseño básico del documento de entrenamiento. (La pestaña Texto sin formato también tiene un vínculo al archivo PDF original).

Editor de texto estructurado

Para agregar una anotación nueva, destaca el texto que representa la entidad, selecciona la etiqueta del cuadro de diálogo Anotar y haz clic en Guardar. Cuando agregas anotaciones en la pestaña Texto estructurado, AutoML Natural Language captura la posición de la anotación en la página como un factor para tener en cuenta durante el entrenamiento.

Agregar anotación

Para quitar una anotación, busca el texto en la lista de etiquetas de la derecha y haz clic en el ícono de la papelera que aparece junto a ella.