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 delle categorie che vuoi che vengano utilizzate dal modello personalizzato. Il set di dati serve da input per l'addestramento di un modello.

Di seguito sono riportati i passaggi principali per la creazione di un set di dati:

  1. Crea una risorsa del set di dati.
  2. Importare 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 sono spesso combinati. Puoi importare documenti con le relative etichette già assegnate.

Creazione di un set di dati

Il primo passaggio nella creazione di un modello personalizzato è creare un set di dati vuoto che conserverà alla fine i dati di addestramento del modello. Il set di dati appena creato non contiene dati fino a quando 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 intendi addestrare.

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

    Per aggiungere un set di dati per un altro progetto, seleziona il progetto dall'elenco a discesa in alto a destra nella 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 la Località geografica in cui archiviare il set di dati.

    Per ulteriori informazioni, consulta la sezione Località.

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

    • La classificazione con etichetta singola assegna una singola etichetta a ciascun documento classificato
    • La classificazione con più etichette consente di assegnare più etichette a un documento
    • L'estrazione delle entità identifica le entità nei documenti
    • L'analisi del sentiment analizza gli atteggiamenti all'interno dei 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à per la 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 di queste 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 maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Python.

Per eseguire l'autenticazione in 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 maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Java.

Per eseguire l'autenticazione in 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 maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Node.js.

Per eseguire l'autenticazione in 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 maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Go.

Per eseguire l'autenticazione in 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 di 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 dei file PHP nella pagina delle librerie client e poi consulta la documentazione di riferimento di AutoML Natural Language per PHP.

Ruby: segui le istruzioni di configurazione di Ruby nella pagina delle librerie client e consulta 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à per la 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 di queste 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 maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Python.

Per eseguire l'autenticazione in 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 maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Java.

Per eseguire l'autenticazione in 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 maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Node.js.

Per eseguire l'autenticazione in 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 maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Go.

Per eseguire l'autenticazione in 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 di 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 dei file PHP nella pagina delle librerie client e poi consulta la documentazione di riferimento di AutoML Natural Language per PHP.

Ruby: segui le istruzioni di configurazione di Ruby nella pagina delle librerie client e consulta 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à per la 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 di queste 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 maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Python.

Per eseguire l'autenticazione in 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 maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Java.

Per eseguire l'autenticazione in 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 maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Node.js.

Per eseguire l'autenticazione in 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 maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Go.

Per eseguire l'autenticazione in 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 di 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 dei file PHP nella pagina delle librerie client e poi consulta la documentazione di riferimento di AutoML Natural Language per PHP.

Ruby: segui le istruzioni di configurazione di Ruby nella pagina delle librerie client e consulta 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 gli URI e le 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 Preparazione dei 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 delle categorie associate dal computer locale o da Cloud Storage.

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

  3. Seleziona i file da importare e il percorso Cloud Storage per i 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à per la 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 di dati di addestramento CSV

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 di queste opzioni:

Dovresti vedere un output simile al seguente. Puoi utilizzare l'ID operazione per conoscere lo stato dell'attività. Per un esempio, consulta Recupero dello 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 maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Python.

Per eseguire l'autenticazione in 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 maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Java.

Per eseguire l'autenticazione in 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 maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Node.js.

Per eseguire l'autenticazione in 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 maggiori informazioni, consulta la documentazione di riferimento dell'API AutoML Natural Language Go.

Per eseguire l'autenticazione in 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 di 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 dei file PHP nella pagina delle librerie client e poi consulta la documentazione di riferimento di AutoML Natural Language per PHP.

Ruby: segui le istruzioni di configurazione di Ruby nella pagina delle librerie client e consulta 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 AutoML Natural Language deve etichettare 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 non etichettati 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 agli etichettatori umani utilizzando AI Platform Data Labeling Service

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

Per maggiori dettagli su come etichettare i documenti nel file .csv, consulta Preparazione dei dati di addestramento.

Etichettatura per classificazione e analisi del sentiment

Per etichettare i documenti nell'interfaccia utente 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 del set di dati insieme alle relative 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 sentiment.

Pagina Elementi di testo

Pagina Elementi di testo

Per assegnare etichette o valori di sentiment ai 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 visualizzato nella parte superiore dell'elenco dei documenti.

  • Fai clic sulla riga del documento che vuoi 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 nell'interfaccia utente di AutoML Natural Language.

Per aggiungere annotazioni all'interfaccia utente 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 del set di dati insieme alle eventuali annotazioni. La barra di navigazione a sinistra riassume le etichette e il numero di volte in cui compare. Puoi anche filtrare l'elenco di documenti per etichetta.

Elenco annotazioni

Per aggiungere o eliminare annotazioni all'interno di un documento, fai doppio clic sul documento da 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 sul layout, la pagina Modifica contiene due schede: Testo normale e Testo strutturato. La scheda Testo normale mostra i contenuti non elaborati del documento di addestramento senza alcuna 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 di etichette a destra e fai clic sull'icona a forma di cestino della spazzatura accanto.