Compartir a través de


Uso de ai.extract con PySpark

La ai.extract función usa ia generativa para examinar el texto de entrada y extraer tipos específicos de información designada por etiquetas que elija (por ejemplo, ubicaciones o nombres). Solo usa una sola línea de código.

Nota:

Información general

La ai.extract función está disponible para DataFrames de Spark. Debe especificar el nombre de una columna de entrada existente como parámetro, junto con una lista de tipos de entidad que se van a extraer de cada fila de texto.

La función devuelve un nuevo DataFrame, con una columna independiente para cada tipo de entidad especificado que contiene valores extraídos para cada fila de entrada.

Syntax

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

Parámetros

Nombre Description
labels
Obligatorio
Matriz decadenas que representa el conjunto de tipos de entidad que se van a extraer de los valores de texto de la columna de entrada.
input_col
Obligatorio
Cadena que contiene el nombre de una columna existente con valores de texto de entrada para buscar las entidades personalizadas.
aifunc.ExtractLabel
Opcional
Una o más definiciones de etiqueta que describen los campos que se van a extraer. Para obtener más información, consulte la tabla ExtractLabel Parameters (Parámetros de ExtractLabel).
error_col
Opcional
Cadena que contiene el nombre de una nueva columna para almacenar los errores de OpenAI que se producen al procesar cada fila de texto de entrada. Si no establece este parámetro, se genera un nombre predeterminado para la columna de error. Si una fila de entrada no tiene errores, el valor de esta columna es null.

Parámetros de ExtraerEtiqueta

Nombre Description
label
Obligatorio
Cadena que representa la entidad que se va a extraer de los valores de texto introducidos.
description
Opcional
Un string que proporciona contexto adicional para el modelo de IA. Puede incluir requisitos, contexto o instrucciones para que la inteligencia artificial tenga en cuenta al realizar la extracción.
max_items
Opcional
Un valor int que especifica el número máximo de elementos que se van a extraer para esta etiqueta.
type
Opcional
Tipo de esquema JSON para el valor extraído. Los tipos admitidos para esta clase incluyen string, number, integer, boolean, objecty array.
properties
Opcional
Más propiedades de esquema JSON para el tipo como diccionario. Puede incluir propiedades admitidas como "items" para arrays, "propiedades" para objetos, "enum" para tipos enum, etc. Consulte el uso de ejemplo en este artículo.
raw_col
Opcional
Cadena que establece el nombre de columna para la respuesta LLM sin procesar. La respuesta sin procesar proporciona una lista de pares de diccionario para cada etiqueta de entidad, incluidos "razón" y "texto_extraído".

Devoluciones

La función devuelve un DataFrame de Spark con una nueva columna para cada tipo de entidad especificado. La columna o columnas contienen las entidades extraídas para cada fila de texto de entrada. Si la función identifica más de una coincidencia para una entidad, devuelve solo una de esas coincidencias. Si no se encuentra ninguna coincidencia, el resultado es null.

El tipo de valor devuelto predeterminado es una lista de cadenas para cada etiqueta. Si los usuarios eligen especificar un tipo diferente en la aifunc.ExtractLabel configuración, como "type=integer", la salida será una lista de int de Python. Si los usuarios especifican "max_items=1" en la aifunc.ExtractLabel configuración, solo se devuelve un elemento del tipo para esa etiqueta.

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)

Esta celda de código de ejemplo proporciona la siguiente salida:

Captura de pantalla que muestra una nueva trama de datos con las columnas