Partager via


Utiliser ai.extract avec PySpark

La fonction utilise l’IA ai.extract générative pour analyser le texte d’entrée et extraire des types d’informations spécifiques désignés par les étiquettes que vous choisissez (par exemple, emplacements ou noms). Elle n’utilise qu’une seule ligne de code.

Note

Aperçu

La ai.extract fonction est disponible pour les DataFrames Spark. Vous devez spécifier le nom d’une colonne d’entrée existante en tant que paramètre, ainsi qu’une liste de types d’entités à extraire de chaque ligne de texte.

La fonction retourne un nouveau DataFrame, avec une colonne distincte pour chaque type d’entité spécifié qui contient des valeurs extraites pour chaque ligne d’entrée.

Syntaxe

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

Paramètres

Nom Descriptif
labels
Obligatoire
Tableau de chaînes qui représente l’ensemble de types d’entités à extraire des valeurs de texte dans la colonne d’entrée.
input_col
Obligatoire
Chaîne qui contient le nom d’une colonne existante avec des valeurs de texte d’entrée à analyser pour les entités personnalisées.
aifunc.ExtractLabel
Optional
Une ou plusieurs définitions d’étiquette décrivant les champs à extraire. Pour plus d’informations, reportez-vous à la table Paramètres ExtractLabel.
error_col
Optional
Chaîne qui contient le nom d’une nouvelle colonne pour stocker les erreurs OpenAI résultant du traitement de chaque ligne de texte d’entrée. Si vous ne définissez pas ce paramètre, un nom par défaut est généré pour la colonne d’erreur. Si une ligne d’entrée n’a aucune erreur, la valeur de cette colonne est null.

Paramètres d'ExtractLabel

Nom Descriptif
label
Obligatoire
Une chaîne qui représente l’entité à extraire des valeurs de texte entrant.
description
Optional
Chaîne qui ajoute un contexte supplémentaire pour le modèle IA. Il peut inclure des exigences, un contexte ou des instructions pour que l’IA puisse prendre en compte lors de l’extraction.
max_items
Optional
Int qui spécifie le nombre maximal d’éléments à extraire pour cette étiquette.
type
Optional
Type de schéma JSON pour la valeur extraite. Les types pris en charge pour cette classe incluent string, , numberinteger, boolean, object, et array.
properties
Optional
Autres propriétés de schéma JSON pour le type en tant que dictionnaire. Il peut inclure des propriétés prises en charge telles que « items » pour les tableaux, « properties » pour les objets, « enum » pour les types d’énumération, etc. Consultez des exemples d’utilisation dans cet article.
raw_col
Optional
Chaîne qui définit le nom de colonne pour la réponse LLM brute. La réponse brute fournit une liste de paires de dictionnaires pour chaque étiquette d’entité, y compris « raison » et « extraction_text ».

Retours

La fonction retourne un DataFrame Spark avec une nouvelle colonne pour chaque type d’entité spécifié. La colonne ou les colonnes contiennent les entités extraites pour chaque ligne de texte d’entrée. Si la fonction identifie plusieurs correspondances pour une entité, elle ne retourne qu’une seule de ces correspondances. Si aucune correspondance n’est trouvée, le résultat est null.

Le type de retour par défaut est une liste de chaînes pour chaque étiquette. Si les utilisateurs choisissent de spécifier un type différent dans la aifunc.ExtractLabel configuration, par exemple « type=integer », la sortie est une liste d’int Python. Si les utilisateurs spécifient « max_items=1 » dans la aifunc.ExtractLabel configuration, un seul élément du type est retourné pour cette étiquette.

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)

Cet exemple de cellule de code fournit la sortie suivante :

Capture d’écran montrant une nouvelle trame de données avec les colonnes « name », « profession » et « city », contenant les données extraites du cadre de données d’origine.