Udostępnij przez


Użyj ai.extract z PySpark

Funkcja używa sztucznej inteligencji generacyjnej ai.extract do skanowania tekstu wejściowego i wyodrębniania określonych typów informacji oznaczonych przez wybrane etykiety (na przykład lokalizacje lub nazwy). Używa tylko jednego wiersza kodu.

Uwaga / Notatka

Przegląd

Funkcja ai.extract jest dostępna dla ramek danych platformy Spark. Musisz określić nazwę istniejącej kolumny wejściowej jako parametr wraz z listą typów jednostek do wyodrębnienia z każdego wiersza tekstu.

Funkcja zwraca nową ramkę danych z oddzielną kolumną dla każdego określonego typu jednostki, która zawiera wyodrębnione wartości dla każdego wiersza wejściowego.

Składnia

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

Parametry

Name Description
labels
Required
Tablicaciągów reprezentujących zestaw typów jednostek do wyodrębniania z wartości tekstowych w kolumnie wejściowej.
input_col
Required
Ciąg zawierający nazwę istniejącej kolumny z wartościami tekstowymi wejściowymi do skanowania pod kątem jednostek niestandardowych.
aifunc.ExtractLabel
Opcjonalnie
Co najmniej jedna definicja etykiety opisująca pola do wyodrębnienia. Aby uzyskać więcej informacji, zapoznaj się z tabelą "ExtractLabel Parameters".
error_col
Opcjonalnie
Ciąg zawierający nazwę nowej kolumny do przechowywania wszelkich błędów OpenAI, które wynikają z przetwarzania każdego wejściowego wiersza tekstu. Jeśli nie ustawisz tego parametru, domyślna nazwa zostanie wygenerowana dla kolumny błędu. Jeśli wiersz wejściowy nie zawiera błędów, wartość w tej kolumnie jest null.

Parametry ExtractLabel

Name Description
label
Required
Ciąg reprezentujący jednostkę do wyodrębnienia z wartości tekstowych wejściowych.
description
Opcjonalnie
Tekst, który dodaje dodatkowy kontekst dla modelu sztucznej inteligencji. Może zawierać wymagania, kontekst lub instrukcje dotyczące sztucznej inteligencji, które należy wziąć pod uwagę przy wyodrębnianiu.
max_items
Opcjonalnie
Wartość typu int określająca maksymalną liczbę elementów do wyodrębnienia dla tej etykiety.
type
Opcjonalnie
Typ schematu JSON dla wyodrębnionej wartości. Obsługiwane typy dla tej klasy to string, number, integer, boolean, object i array.
properties
Opcjonalnie
Więcej właściwości schematu JSON dla typu jako słownika. Może zawierać obsługiwane właściwości, takie jak "items" dla tablic, "properties" dla obiektów, "enum" dla typów wyliczeniowych i nie tylko. Zobacz przykładowe użycie w tym artykule.
raw_col
Opcjonalnie
Ciąg, który ustawia nazwę kolumny dla nieprzetworzonej odpowiedzi LLM. Odpowiedź nieprzetworzona zawiera listę par słowników dla każdej etykiety jednostki, w tym "reason" i "extraction_text".

Zwraca

Funkcja zwraca ramkę danych platformy Spark z nową kolumną dla każdego określonego typu jednostki. Kolumna lub kolumny zawierają jednostki wyodrębnione dla każdego wiersza tekstu wejściowego. Jeśli funkcja identyfikuje więcej niż jedno dopasowanie dla jednostki, zwraca tylko jedną z tych dopasowań. Jeśli nie zostanie znalezione dopasowanie, wynik to null.

Domyślny typ zwracany to lista ciągów dla każdej etykiety. Jeśli użytkownicy zdecydują się określić inny typ w konfiguracji aifunc.ExtractLabel, na przykład "type=integer", dane wyjściowe będą listą liczb całkowitych (int) języka Python. Jeśli użytkownicy określą "max_items=1" w konfiguracji aifunc.ExtractLabel, zwracany jest tylko jeden element określonego typu dla tej etykiety.

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)

Ta przykładowa komórka kodu udostępnia następujące dane wyjściowe:

Zrzut ekranu przedstawiający nową ramkę danych z kolumnami