Filtern von Batch-Empfehlungen und Benutzersegmenten (benutzerdefinierte Ressourcen) - Amazon Personalize

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Filtern von Batch-Empfehlungen und Benutzersegmenten (benutzerdefinierte Ressourcen)

Das Filtern von Batch-Empfehlungen und Benutzersegmenten funktioniert fast genauso wie das Filtern von Empfehlungen in Echtzeit. Es folgt dem gleichen Arbeitsablauf, der unter beschrieben istBatch-Empfehlungen und Benutzersegmente (benutzerdefinierte Ressourcen). Gehen Sie wie folgt vor, um Batch-Empfehlungen oder Benutzersegmente zu filtern:

  1. Erstellen Sie einen Filter, genau wie Sie es für Empfehlungen in Echtzeit tun würden. Weitere Informationen finden Sie unter Empfehlungen in Echtzeit filtern.

  2. Bereiten Sie Ihre Eingabedaten vor und laden Sie sie wie unter Vorbereiten der Eingabedaten für Batch-Empfehlungen oder beschrieben auf Amazon S3 hochVorbereiten von Eingabedaten für Benutzersegmente. Wenn Ihr Filter Platzhalterparameter verwendet, müssen Sie ein zusätzliches filterValues Objekt hinzufügen. Weitere Informationen finden Sie unter Bereitstellung von Filterwerten in Ihrem Eingabe-JSON. Wenn Ihr Filter keine Platzhalterparameter verwendet, können Ihre Eingabedaten den Beispielen unter folgen JSON-Beispiele für die Eingabe und Ausgabe von Batch-Inferenzjobs Beispiele für Batch-Segment-Auftragseingaben und -ausgabe-JSON

  3. Erstellen Sie einen separaten Speicherort für Ihre Ausgabedaten, entweder einen Ordner oder einen anderen Amazon S3 S3-Bucket.

  4. Erstellen Sie einen Batch-Inferenzjob oder einen Batch-Segment-Job. Wenn Sie den Job erstellen, geben Sie den Amazon-Ressourcennamen (ARN) Ihres Filters an.

  5. Wenn der Batch-Inferenz- oder Batch-Segment-Job abgeschlossen ist, rufen Sie die Empfehlungen oder Benutzersegmente von Ihrem Ausgabespeicherort in Amazon S3 ab.

Bereitstellung von Filterwerten in Ihrem Eingabe-JSON

Für Filter mit Platzhalterparametern$GENRE, z. B. müssen Sie die Werte für die Parameter in einem filterValues Objekt in Ihrem Eingabe-JSON angeben. Bei einem filterValues Objekt ist jeder Schlüssel ein Parametername. Jeder Wert ist das Kriterium, das Sie als Parameter übergeben. Umgeben Sie jeden Wert mit maskierten Anführungszeichen:"filterValues":{"GENRES":"\"drama\""}. Trennen Sie bei mehreren Werten jeden Wert durch ein Komma: "filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}

JSON-Beispiel für die Eingabe eines Batch-Inferenz-Jobs

Im Folgenden finden Sie ein Beispiel für die ersten Zeilen einer JSON-Eingabedatei für einen Batch-Inferenzjob. Das Beispiel beinhaltet das filterValues Objekt. Der GENRES Schlüssel entspricht einem $GENRES Platzhalter im Filterausdruck. Der Job in diesem Beispiel verwendet das Rezept für Benutzerpersonalisierung. Geben Sie für RELATED_ITEMS-Rezepte eine ItemId anstelle der UserID an. Geben Sie für PERSONALIZED_RANKING-Rezepte die UserID und eine ItemList an.

{"userId": "5","filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}} {"userId": "3","filterValues":{"GENRES":"\"horror\",\"comedy\""}} {"userId": "34","filterValues":{"GENRES":"\"drama\""}}

Weitere Beispiele für die Eingabe von Daten für Batch-Inferenz-Jobs nach Rezept finden Sie unter. JSON-Beispiele für die Eingabe und Ausgabe von Batch-Inferenzjobs Sie können diese Beispiele als Ausgangspunkt verwenden und das filterValues Objekt aus dem obigen Beispiel hinzufügen.

JSON-Beispiel für die Eingabe eines Batchsegmentjobs

Im Folgenden finden Sie ein Beispiel für die ersten Zeilen einer JSON-Eingabedatei mit Filterwerten für einen Batch-Segment-Job. Der GENRES Schlüssel entspricht einem $GENRES Platzhalter im Filterausdruck.

{"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\""}}

Weitere Beispiele für Eingabedaten von Batch-Inferenz-Jobs nach Rezept finden Sie unter. Beispiele für Batch-Segment-Auftragseingaben und -ausgabe-JSON Sie können diese Beispiele als Ausgangspunkt verwenden und das filterValues Objekt aus dem obigen Beispiel hinzufügen.

Batch-Workflows filtern (Konsole)

Um Batch-Workflows mit der Amazon Personalize-Konsole zu filtern, erstellen Sie einen Filter und anschließend einen Batch-Inferenz-Job oder Batch-Segment-Job und wählen den Filter aus. Vollständige Anweisungen Schritt für Schritt finden Sie unter Erstellen eines Batch-Inferenzauftrags (Konsole) und. Erstellen eines Batch-Segmentauftrags (Konsole)

Filtern von Batch-Workflows (AWS SDKs)

Um Batch-Empfehlungen mit den AWS SDKs zu filtern, erstellen Sie einen Filter und fügen Sie den FilterArn Parameter in die Oder-Anfrage CreateBatchInferenceJob ein. CreateBatchSegmentJob

Der folgende Code zeigt, wie Sie mithilfe von einen Batch-Inferenzjob mit einem Filter erstellen. AWS SDK for Python (Boto3) Wir empfehlen, einen anderen Speicherort für Ihre Ausgabedaten zu verwenden (entweder einen Ordner oder einen anderen Amazon S3 S3-Bucket). Eine vollständige Erläuterung aller Felder finden Sie unterErstellen eines Batch-Inferenzauftrags (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 = e {"S3DataDestination": {"path": "S3 output path"}} )