Usare ai.extract con pandas

La ai.extract funzione estrae campi come nomi, posizioni o entità personalizzate da ogni riga di input.

Annotazioni

Informazioni generali

La ai.extract funzione estende la classe Pandas Series . Per estrarre tipi di entità personalizzati da ogni riga di input, chiamare la funzione in una colonna di testo Pandas DataFrame .

A differenza di altre funzioni di intelligenza artificiale, ai.extract restituisce un dataframe pandas, invece di una serie, con una colonna separata per ogni tipo di entità specificato che contiene valori estratti per ogni riga di input.

Sintassi

df_entities = df["text"].ai.extract("entity1", "entity2", "entity3")

Parametri

Nome Description
labels
Obbligatorio
Una o più stringhe che rappresentano il set di tipi di entità da estrarre dai valori di testo di input.
aifunc.ExtractLabel
Opzionale
Una o più definizioni di etichetta che descrivono i campi da estrarre. Vedi i parametri di ExtractLabel.

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
Proprietà aggiuntive dello schema JSON per il tipo, ad esempio items, propertiese enum. Consulta Structured Outputs: schemi supportati.
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".

Suggerimento

Usare ai.infer_schema per dedurre uno schema di etichetta dal contenuto del file e passare gli oggetti restituiti aifunc.ExtractLabel direttamente a ai.extract. Per esempi, vedere Usare l'input multimodale con funzioni di IA.

Restituzioni

La funzione restituisce un dataframe pandas con una 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 si imposta un tipo in aifunc.ExtractLabel, ad esempio type="integer", l'output è un elenco di valori Pythonint. Se si imposta max_items=1, la funzione restituisce un valore per tale etichetta.

Example

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

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

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

Risultato:

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

Input multimodale

Per estrarre campi da immagini, PDF o file di testo, impostare column_type="path" quando la colonna di input contiene percorsi di file di stringa normale. I percorsi dei file restituiti da aifunc.list_file_paths() vengono rilevati automaticamente. Per la configurazione, vedere Usare l'input multimodale con Funzioni di intelligenza artificiale.

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

extracted = custom_df["file_path"].ai.extract(
    aifunc.ExtractLabel(
        "name",
        description="The full name of the candidate, first letter capitalized.",
        max_items=1,
    ),
    "companies_worked_for",
    aifunc.ExtractLabel(
        "year_of_experience",
        description="The total years of professional work experience the candidate has, excluding internships.",
        type="integer",
        max_items=1,
    ),
    column_type="path",
)
display(extracted)