Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
El filtrado de recomendaciones por lotes y segmentos de usuarios funciona casi igual que el filtrado de recomendaciones en tiempo real. Sigue el mismo flujo de trabajo descrito en Obtención de recomendaciones de elemento por lotes o Obtención de segmentos de usuarios por lotes. Para filtrar recomendaciones por lotes o segmentos de usuarios, haga lo siguiente:
-
Cree un filtro como lo haría para las recomendaciones en tiempo real. Para obtener más información, consulte Filtrado de recomendaciones en tiempo real.
-
Prepare los datos de entrada y súbalos a Amazon S3 tal y como se describe en Preparación de los datos de entrada para las recomendaciones por lotes o Preparación de los datos de entrada para los segmentos de usuarios. Si el filtro utiliza parámetros de marcadores de posición, debe añadir un objeto
filterValues
adicional. Para obtener más información, consulte Proporcionar valores de filtro en su JSON de entrada. Si el filtro no usa parámetros de marcadores de posición, los datos de entrada pueden seguir los ejemplos de Ejemplos de JSON de entrada y salida de trabajos de inferencia por lotes Ejemplos de JSON de entrada y salida de trabajos de segmentos por lotes -
Cree una ubicación independiente para sus datos de salida, ya sea una carpeta o un bucket de Amazon S3 diferente.
-
Cree un trabajo de inferencia por lotes o un trabajo de segmento por lotes. Al crear el volumen, especifique el nombre de recurso de Amazon (ARN) del filtro.
-
Cuando se complete el trabajo segmento de lotes o inferencia por lotes, recupere las recomendaciones o los segmentos de usuarios de su ubicación de salida en Amazon S3.
Temas
Proporcionar valores de filtro en su JSON de entrada
En el caso de los filtros con parámetros de marcadores de posición, como $GENRE
, debe proporcionar los valores de los parámetros de un objeto filterValues
en el JSON de entrada. En el caso de un objeto filterValues
, cada clave es un nombre de parámetro. Cada valor es el criterio que se pasa como parámetro. Rodee cada valor con comillas con caracteres de escape: "filterValues":{"GENRES":"\"drama\""}
. Para varios valores, separe cada valor con una coma: "filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}
Ejemplo de JSON de entrada de trabajo de inferencia por lotes
El siguiente es un ejemplo de las primeras líneas de un archivo de entrada JSON para un trabajo de inferencia por lotes. El ejemplo incluye el objeto filterValues
. La clave GENRES
corresponde a un marcador de posición $GENRES
en la expresión del filtro. El trabajo de este ejemplo utiliza la receta User-Personalization. Para las recetas RELATED_ITEMS, proporcione un itemId en lugar del userId. Para las recetas PERSONALIZED_RANKING, proporcione el userID y una itemList.
{"userId": "5","filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}}
{"userId": "3","filterValues":{"GENRES":"\"horror\",\"comedy\""}}
{"userId": "34","filterValues":{"GENRES":"\"drama\""}}
Para ver más ejemplos de datos de entrada de trabajos de inferencia por lotes según la receta, consulte Ejemplos de JSON de entrada y salida de trabajos de inferencia por lotes. Puede utilizar estos ejemplos como punto de partida y añadir el objeto filterValues
del ejemplo anterior.
Ejemplo de JSON de entrada de trabajo de segmento por lotes
El siguiente es un ejemplo de las primeras líneas de un archivo de entrada JSON con valores de filtro para un trabajo de segmento por lotes. La clave GENRES
corresponde a un marcador de posición $GENRES
en la expresión del filtro.
{"itemAttributes": "ITEMS.genres = \"Comedy\" AND ITEMS.genres = \"Action\"","filterValues":{"COUNTRY":"\"Japan\""}}
{"itemAttributes": "ITEMS.genres = \"Horror\"","filterValues":{"COUNTRY":"\"United States\"\""}}
{"itemAttributes": "ITEMS.genres = \"Action\" AND ITEMS.genres = \"Adventure\"","filterValues":{"COUNTRY":"\"England\""}}
Para ver más ejemplos de datos de entrada de trabajos de inferencia por lotes según la receta, consulte Ejemplos de JSON de entrada y salida de trabajos de segmentos por lotes. Puede utilizar estos ejemplos como punto de partida y añadir el objeto filterValues
del ejemplo anterior.
Filtrado de flujos de trabajo por lotes (consola)
Para filtrar los flujos de trabajo por lotes con la consola de Amazon Personalize, debe crear un filtro y, a continuación, crear un trabajo de inferencia por lotes o un trabajo de segmento por lote y elegir el filtro. Para obtener instrucciones paso a paso, consulte Creación de un trabajo de inferencia por lotes (consola) y Creación de un trabajo de segmento por lotes (consola).
Filtrar flujos de trabajo por lotes (AWS
SDKs)
Para filtrar las recomendaciones de lotes con el AWS SDKs, cree un filtro e incluya el FilterArn
parámetro en la CreateBatchSegmentJob solicitud CreateBatchInferenceJob o.
En el siguiente código se muestra cómo crear un trabajo de inferencia por lotes con un filtro mediante AWS SDK para Python (Boto3). Recomendamos que utilice una ubicación diferente para sus datos de salida (ya sea una carpeta o un bucket de Amazon S3 diferente). Para obtener una explicación completa de todos los campos, consulte Creación de un trabajo de inferencia por lotes (AWS SDKs).
import boto3
personalize = boto3.client("personalize")
personalize_rec.create_batch_inference_job (
solutionVersionArn = "Solution version ARN
",
jobName = "Batch job name
",
roleArn = "IAM role ARN
",
filterArn = "Filter ARN
",
jobInput =
{"s3DataSource": {"path": "S3 input path
"}},
jobOutput =
{"S3DataDestination": {"path": "S3 output path
"}}
)