Verwenden Sie ai.extract mit Pandas

Die ai.extract Funktion extrahiert Felder wie Namen, Speicherorte oder benutzerdefinierte Entitäten aus jeder Eingabezeile.

Hinweis

Überblick

Die ai.extract-Funktion erweitert die Klasse der Pandas-Serie. Um benutzerdefinierte Entitätstypen aus jeder Eingabezeile zu extrahieren, rufen Sie die Funktion in einer Pandas DataFrame-Textspalte auf.

Im Gegensatz zu anderen KI-Funktionen gibt ai.extract statt einer Series ein pandas-DataFrame zurück, mit einer separaten Spalte für jeden angegebenen Entitätstyp, die die extrahierten Werte für jede Eingabezeile enthält.

Syntax

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

Die Parameter

Name Description
labels
Erforderlich
Eine oder mehrere Zeichenfolgen, die den Satz von Entitätstypen darstellen, die aus den Eingabetextwerten extrahiert werden sollen.
aifunc.ExtractLabel
Wahlfrei
Mindestens eine Etikettendefinition zur Beschreibung der Felder, die extrahiert werden sollen. Siehe ExtractLabel-Parameter.

ExtractLabel-Parameter

Name Description
label
Erforderlich
Eine Zeichenfolge , die die Entität darstellt, die aus den Eingabetextwerten extrahiert werden soll.
description
Wahlfrei
Eine Zeichenfolge , die zusätzlichen Kontext für das KI-Modell hinzufügt. Sie kann Anforderungen, Kontext oder Anweisungen für die KI enthalten, die beim Ausführen der Extraktion berücksichtigt werden sollen.
max_items
Wahlfrei
Ein Int , das die maximale Anzahl von Elementen angibt, die für diese Bezeichnung extrahiert werden sollen.
type
Wahlfrei
JSON-Schematyp für den extrahierten Wert. Unterstützte Typen für diese Klasse umfassen string, , number, integer, boolean, , objectund array.
properties
Wahlfrei
Zusätzliche JSON-Schema-Eigenschaften für den Typ, wie z. B. items, properties und enum. Siehe strukturierte Ausgaben: Unterstützte Schemas.
raw_col
Wahlfrei
Eine Zeichenfolge , die den Spaltennamen für die unformatierte LLM-Antwort festlegt. Die unformatierte Antwort enthält eine Liste von Wörterbuchpaaren für jede Entitätsbezeichnung, einschließlich "Reason" und "extraction_text".

Tipp

Verwenden Sie ai.infer_schema, um aus dem Dateiinhalt ein Beschriftungsschema abzuleiten und die zurückgegebenen aifunc.ExtractLabel-Objekte direkt an ai.extract zu übergeben. Beispiele finden Sie unter "Verwenden von multimodalen Eingaben mit KI-Funktionen".

Rückkehr

Die Funktion gibt einen Pandas DataFrame mit einer Spalte für jeden angegebenen Entitätstyp zurück. Die Spalte oder Spalten enthalten die Entitäten, die für jede Zeile mit Eingabetext extrahiert wurden. Wenn die Funktion mehrere Übereinstimmungen für eine Entität identifiziert, gibt sie nur eine dieser Übereinstimmungen zurück. Wenn keine Übereinstimmung gefunden wird, lautet nulldas Ergebnis .

Der Standardmäßige Rückgabetyp ist eine Liste der Zeichenfolgen für jede Bezeichnung. Wenn Sie in aifunc.ExtractLabel einen Typ festlegen, wie type="integer", ist die Ausgabe eine Liste von Python-int-Werten. Wenn Sie festlegen max_items=1, gibt die Funktion einen Wert für diese Bezeichnung zurück.

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)

Ausgabe:

Screenshot eines neuen Datenrahmens mit den Spalten

Multimodale Eingabe

Um Felder aus Bildern, PDF-Dateien oder Textdateien zu extrahieren, setzen Sie column_type="path", wenn die Eingabespalte einfache Dateipfade als Zeichenfolgen enthält. Von aifunc.list_file_paths() zurückgegebene Dateipfade werden automatisch erkannt. Informationen zum Einrichten finden Sie unter "Verwenden von multimodalen Eingaben mit KI-Funktionen".

# 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)