Condividi tramite


Usare ai.extract con PySpark

La ai.extract funzione usa l'intelligenza artificiale generativa per analizzare il testo di input ed estrarre tipi specifici di informazioni designate dalle etichette scelte, ad esempio posizioni o nomi. Usa solo una singola riga di codice.

Annotazioni

Informazioni generali

La ai.extract funzione è disponibile per i dataframe Spark. È necessario specificare il nome di una colonna di input esistente come parametro, insieme a un elenco di tipi di entità da estrarre da ogni riga di testo.

La funzione restituisce un nuovo dataframe, con una colonna separata per ogni tipo di entità specificato che contiene valori estratti per ogni riga di input.

Sintassi

df.ai.extract(labels=["entity1", "entity2", "entity3"], input_col="input")

Parametri

Nome Description
labels
Obbligatorio
Matrice di stringhe che rappresenta il set di tipi di entità da estrarre dai valori di testo nella colonna di input.
input_col
Obbligatorio
Stringa contenente il nome di una colonna esistente con valori di testo di input da analizzare per le entità personalizzate.
aifunc.ExtractLabel
Opzionale
Una o più definizioni di etichetta che descrivono i campi da estrarre. Per ulteriori informazioni, vedere la tabella Parametri ExtractLabel.
error_col
Opzionale
Stringa contenente il nome di una nuova colonna per archiviare eventuali errori OpenAI risultanti dall'elaborazione di ogni riga di testo di input. Se non si imposta questo parametro, viene generato un nome predefinito per la colonna di errore. Se una riga di input non contiene errori, il valore in questa colonna è null.

Parametri di ExtractLabel

Nome Description
label
Obbligatorio
Stringa che rappresenta l'entità da estrarre dai valori di testo di input.
description
Opzionale
Stringa che aggiunge un contesto aggiuntivo per il modello di intelligenza artificiale. Può includere requisiti, contesto o istruzioni per l'intelligenza artificiale da considerare durante l'esecuzione dell'estrazione.
max_items
Opzionale
Valore int che specifica il numero massimo di elementi da estrarre per questa etichetta.
type
Opzionale
Tipo di schema JSON per il valore estratto. I tipi supportati per questa classe includono string, numberinteger, boolean, , objecte array.
properties
Opzionale
Altre proprietà dello schema JSON per il tipo come dizionario. Può includere proprietà supportate come "items" per array, "proprietà" per oggetti, "enum" per i tipi enumerati e altro ancora. Vedere l'utilizzo di esempio in questo articolo.
raw_col
Opzionale
Stringa che imposta il nome della colonna per la risposta LLM non elaborata. La risposta non elaborata fornisce un elenco di coppie di dizionario per ogni etichetta di entità, tra cui "reason" e "extraction_text".

Restituzioni

La funzione restituisce un dataframe Spark con una nuova colonna per ogni tipo di entità specificato. La colonna o le colonne contengono le entità estratte per ogni riga di testo di input. Se la funzione identifica più corrispondenze per un'entità, restituisce solo una di queste corrispondenze. Se non viene trovata alcuna corrispondenza, il risultato è null.

Il tipo restituito predefinito è un elenco di stringhe per ogni etichetta. Se gli utenti scelgono di specificare un tipo diverso nella aifunc.ExtractLabel configurazione, ad esempio "type=integer", l'output sarà un elenco di python int. Se gli utenti specificano "max_items=1" nella aifunc.ExtractLabel configurazione, viene restituito solo un elemento del tipo per tale etichetta.

Example

# This code uses AI. Always review output for mistakes. 

df = spark.createDataFrame([
        ("MJ Lee lives in Tuscon, AZ, and works as a software engineer for Contoso.",),
        ("Kris Turner, a nurse at NYU Langone, is a resident of Jersey City, New Jersey.",)
    ], ["descriptions"])

df_entities = df.ai.extract(labels=["name", "profession", "city"], input_col="descriptions")
display(df_entities)

Questa cella di codice di esempio fornisce l'output seguente:

Screenshot che mostra un nuovo frame di dati con le colonne 'name', 'profession' e 'city', contenenti i dati estratti dal frame di dati originale.