Creazione di set di dati e importazione di dati

Un set di dati contiene campioni rappresentativi del tipo di contenuti da classificare, etichettati con le etichette di categoria che vuoi utilizzare nel modello personalizzato. Il set di dati funge da input per l'addestramento di un modello.

I passaggi principali per creare un set di dati sono:

  1. Crea una risorsa del set di dati.
  2. Importa i dati di addestramento nel set di dati.
  3. Etichetta i documenti o identifica le entità.

Per la classificazione e l'analisi del sentiment, i passaggi 2 e 3 vengono spesso combinati: puoi importare i documenti con le relative etichette già assegnate.

Creazione di un set di dati

Il primo passaggio nella creazione di un modello personalizzato consiste nel creare un set di dati vuoto che alla fine conterrà i dati di addestramento per il modello. Il set di dati appena creato non contiene dati finché non importi documenti al suo interno.

UI web

Per creare un set di dati:

  1. Apri l'interfaccia utente di AutoML Natural Language e seleziona Inizia nella casella corrispondente al tipo di modello che prevedi di addestrare.

    Viene visualizzata la pagina Set di dati, che mostra lo stato dei set di dati creati in precedenza per il progetto corrente.

    Per aggiungere un set di dati per un progetto diverso, seleziona il progetto dall'elenco a discesa in alto a destra della barra del titolo.

  2. Fai clic sul pulsante Nuovo set di dati nella barra del titolo.

  3. Inserisci un nome per il set di dati e specifica in quale posizione geografica archiviare il set di dati.

    Per ulteriori informazioni, consulta la sezione Località.

  4. Seleziona l'obiettivo del tuo modello, che specifica il tipo di analisi che eseguirai con il modello addestrato utilizzando questo set di dati.

    • La classificazione di etichetta singola assegna una singola etichetta a ogni documento classificato
    • La classificazione multi-etichetta consente di assegnare più etichette a un documento
    • L'estrazione delle entità identifica le entità nei documenti
    • L'analisi del sentiment analizza gli atteggiamenti nei documenti
  5. Fai clic su Crea set di dati.

    Viene visualizzata la pagina Importa per il nuovo set di dati. Consulta Importazione di dati in un set di dati.

Esempi di codice

Classificazione

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: il tuo ID progetto
  • location-id: la località della risorsa, us-central1 per la località globale o eu per l'Unione Europea

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Python

Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Python.

Per eseguire l'autenticazione ad AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Java.

Per eseguire l'autenticazione ad AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Node.js.

Per eseguire l'autenticazione ad AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

/**
 * 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

Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Go.

Per eseguire l'autenticazione ad AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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
}

Linguaggi aggiuntivi

C#: segui le istruzioni per la configurazione di C# nella pagina delle librerie client e poi consulta la documentazione di riferimento di AutoML Natural Language per .NET.

PHP: segui le istruzioni per la configurazione di PHP nella pagina delle librerie client e poi consulta la documentazione di riferimento di AutoML Natural Language per PHP.

Ruby: segui le istruzioni per la configurazione di Ruby nella pagina delle librerie client e poi visita la documentazione di riferimento di AutoML Natural Language per Ruby.

Estrazione di entità

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: il tuo ID progetto
  • location-id: la località della risorsa, us-central1 per la località globale o eu per l'Unione Europea

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Python

Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Python.

Per eseguire l'autenticazione ad AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Java.

Per eseguire l'autenticazione ad AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Node.js.

Per eseguire l'autenticazione ad AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

/**
 * 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

Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Go.

Per eseguire l'autenticazione ad AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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
}

Linguaggi aggiuntivi

C#: segui le istruzioni per la configurazione di C# nella pagina delle librerie client e poi consulta la documentazione di riferimento di AutoML Natural Language per .NET.

PHP: segui le istruzioni per la configurazione di PHP nella pagina delle librerie client e poi consulta la documentazione di riferimento di AutoML Natural Language per PHP.

Ruby: segui le istruzioni per la configurazione di Ruby nella pagina delle librerie client e poi visita la documentazione di riferimento di AutoML Natural Language per Ruby.

Analisi del sentiment

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: il tuo ID progetto
  • location-id: la località della risorsa, us-central1 per la località globale o eu per l'Unione Europea

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  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

Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Python.

Per eseguire l'autenticazione ad AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Java.

Per eseguire l'autenticazione ad AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Node.js.

Per eseguire l'autenticazione ad AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

/**
 * 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

Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Go.

Per eseguire l'autenticazione ad AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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
}

Linguaggi aggiuntivi

C#: segui le istruzioni per la configurazione di C# nella pagina delle librerie client e poi consulta la documentazione di riferimento di AutoML Natural Language per .NET.

PHP: segui le istruzioni per la configurazione di PHP nella pagina delle librerie client e poi consulta la documentazione di riferimento di AutoML Natural Language per PHP.

Ruby: segui le istruzioni per la configurazione di Ruby nella pagina delle librerie client e poi visita la documentazione di riferimento di AutoML Natural Language per Ruby.

Importazione dei dati di addestramento in un set di dati

Dopo aver creato un set di dati, puoi importare URI ed etichette dei documenti da un file CSV archiviato in un bucket Cloud Storage. Per maggiori dettagli sulla preparazione dei dati e sulla creazione di un file CSV per l'importazione, consulta Preparare i dati di addestramento.

Puoi importare documenti in un set di dati vuoto o importare documenti aggiuntivi in un set di dati esistente.

UI web

Per importare documenti in un set di dati:

  1. Seleziona il set di dati in cui vuoi importare i documenti dalla pagina Set di dati.

  2. Nella scheda Importa, specifica dove trovare i documenti di addestramento.

    Puoi:

    • Carica un file .csv contenente i documenti di addestramento e le etichette di categoria associate dal tuo computer locale o da Cloud Storage.

    • Carica una raccolta di file .txt, .pdf, .tif o .zip contenenti i documenti di addestramento dal computer locale.

  3. Seleziona i file da importare e il percorso Cloud Storage dei documenti importati.

  4. Fai clic su Importa.

Esempi di codice

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: il tuo ID progetto
  • location-id: la località della risorsa, us-central1 per la località globale o eu per l'Unione Europea
  • dataset-id: l'ID del tuo set di dati
  • bucket-name: il tuo bucket Cloud Storage
  • csv-file-name: il tuo file CSV di dati di addestramento

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti vedere un output simile al seguente. Puoi usare l'ID operazione per conoscere lo stato dell'attività. Ad esempio, consulta Ottenere lo stato di un'operazione.

{
  "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

Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Python.

Per eseguire l'autenticazione ad AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Java.

Per eseguire l'autenticazione ad AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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

Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Node.js.

Per eseguire l'autenticazione ad AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

/**
 * 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

Per scoprire come installare e utilizzare la libreria client per AutoML Natural Language, consulta Librerie client di AutoML Natural Language. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Go.

Per eseguire l'autenticazione ad AutoML Natural Language, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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
}

Linguaggi aggiuntivi

C#: segui le istruzioni per la configurazione di C# nella pagina delle librerie client e poi consulta la documentazione di riferimento di AutoML Natural Language per .NET.

PHP: segui le istruzioni per la configurazione di PHP nella pagina delle librerie client e poi consulta la documentazione di riferimento di AutoML Natural Language per PHP.

Ruby: segui le istruzioni per la configurazione di Ruby nella pagina delle librerie client e poi visita la documentazione di riferimento di AutoML Natural Language per Ruby.

Etichettatura dei documenti di addestramento

Per essere utile per l'addestramento di un modello, ogni documento in un set di dati deve essere etichettato nel modo in cui vuoi che AutoML Natural Language etichetti documenti simili. La qualità dei dati di addestramento influisce notevolmente sull'efficacia del modello creato e, di conseguenza, sulla qualità delle previsioni restituite da quel modello. AutoML Natural Language ignora i documenti senza etichetta durante l'addestramento.

Puoi fornire etichette per i documenti di addestramento in tre modi:

  • Includi etichette nel file .csv (solo per classificazione e analisi del sentiment)
  • Etichetta i documenti nell'interfaccia utente di AutoML Natural Language
  • Richiedi l'etichettatura da etichettatori umani utilizzando il servizio di etichettatura dei dati di AI Platform

L'API AutoML non include metodi per l'etichettatura.

Per maggiori dettagli sull'etichettatura dei documenti nel file .csv, vedi Preparare i dati di addestramento.

Etichettatura per classificazione e analisi del sentiment

Per etichettare i documenti nella UI di AutoML Natural Language, seleziona il set di dati dalla pagina di elenco del set di dati per visualizzarne i dettagli. Il nome visualizzato del set di dati selezionato viene riportato nella barra del titolo e la pagina elenca i singoli documenti nel set di dati insieme alle etichette correnti. La barra di navigazione a sinistra riassume il numero di documenti etichettati e non etichettati e ti consente di filtrare l'elenco dei documenti per etichetta o valore di sentiment.

Pagina Elementi di testo

Pagina Elementi di testo

Per assegnare etichette o valori di sentiment a documenti senza etichetta o modificare le etichette dei documenti, seleziona i documenti da aggiornare e le etichette o il valore da assegnare. Esistono due modi per aggiornare l'etichetta di un documento:

  • Fai clic sulla casella di controllo accanto ai documenti da aggiornare, quindi seleziona le etichette da applicare dall'elenco a discesa Etichetta che appare in cima all'elenco dei documenti.

  • Fai clic sulla riga del documento da aggiornare, poi seleziona le etichette o il valore da applicare dall'elenco visualizzato nella pagina Dettagli testo.

Identificazione delle entità per l'estrazione delle entità

Prima di addestrare il modello personalizzato, devi annotare i documenti di addestramento nel set di dati. Puoi annotare i documenti di addestramento prima di importarli oppure aggiungere annotazioni nella UI di AutoML Natural Language.

Per aggiungere annotazioni nella UI di AutoML Natural Language, seleziona il set di dati dalla pagina di elenco del set di dati per visualizzarne i dettagli. Il nome visualizzato del set di dati selezionato viene visualizzato nella barra del titolo e la pagina elenca i singoli documenti nel set di dati insieme alle eventuali annotazioni al loro interno. La barra di navigazione a sinistra riassume le etichette e il numero di volte in cui ciascuna viene visualizzata. Puoi anche filtrare l'elenco dei documenti per etichetta.

Elenco di annotazioni

Per aggiungere o eliminare annotazioni all'interno di un documento, fai doppio clic sul documento che vuoi aggiornare. La pagina Modifica mostra il testo completo del documento selezionato, con tutte le annotazioni precedenti evidenziate.

Editor entità

Per i documenti di addestramento PDF o i documenti importati con informazioni di layout, la pagina Modifica ha due schede: Testo normale e Testo strutturato. La scheda Testo normale mostra i contenuti non elaborati del documento di addestramento senza formattazione. La scheda Testo strutturato ricrea il layout di base del documento di addestramento. La scheda Testo normale contiene anche un link al file PDF originale.

Editor di testo strutturato

Per aggiungere una nuova annotazione, evidenzia il testo che rappresenta l'entità, seleziona l'etichetta nella finestra di dialogo Annota e fai clic su Salva. Quando aggiungi annotazioni alla scheda Testo strutturato, AutoML Natural Language acquisisce la posizione dell'annotazione sulla pagina come fattore considerato durante l'addestramento.

Aggiungi annotazione

Per rimuovere un'annotazione, individua il testo nell'elenco delle etichette a destra e fai clic sull'icona del cestino accanto a quest'ultima.