Mit Natural Language Understanding filtern

Auf dieser Seite wird erläutert, wie Sie Natural Language Understanding anwenden, um automatisch Filter für Suchanfragen zu erstellen und so die Qualität der zurückgegebenen Ergebnisse zu verbessern.

Du kannst diese Funktion für Such-Apps verwenden, die mit strukturierten Daten verknüpft sind Geschäften.

Über Natural Language Query Understanding

Wenn Sie eine allgemeine Such-App mit strukturierten Daten haben, können die Suchanfragen Ihrer Nutzer in natürlicher Sprache in gefilterte Suchanfragen umgewandelt werden. Dies kann zu Suchergebnissen mit höherer Qualität führen als die Suche nach Wörtern im Suchstring.

Die Verwendung von Suchanfragen in natürlicher Sprache ist einfacher und flexibler als das Erstellen eigener Filterausdrücke. Informationen zum Schreiben von Filterausdrücken finden Sie unter Allgemeine Suche nach strukturierten oder unstrukturierten Daten filtern

Diese Funktion lässt sich am besten anhand von Beispielen erklären:

Beispiel: Feldextraktion aus Abfragen

Diese Natural Language-Query Understanding-Funktion wird anhand des Beispiels der Suche nach einem Hotel.

Betrachten Sie die folgende Abfrage an einen strukturierten Datenspeicher für eine Hotelwebsite: „Suchen Sie mir ein familienfreundliches Hotel mit mindestens vier Sternen, das weniger als 300 € pro Nacht kostet, in dem ich meinen Hund mitbringen kann und das kostenloses WLAN hat.“

Ohne Natural Language Understanding sucht die Such-App nach Dokumenten, die die Wörter enthalten in die Abfrage ein.

Durch das Verständnis von Abfragen in natürlicher Sprache und die Verwendung von richtig strukturierten Daten wird die Suche effektiver, da ein Teil der natürlichen Sprache in der Abfrage durch Filter ersetzt wird. Wenn die strukturierten Daten Felder für star_rating (Zahlen), price (Zahlen) und amenities (Strings) enthalten, kann die Abfrage in die folgenden Filter und eine Restabfrage umgeschrieben werden:

  • Aus der Suchanfrage in natürlicher Sprache extrahierte Filter:

    {
        "star_rating": ≥4,
        "price": ≤300,
        "amenities": "Wifi", "Pets Allowed"
    }
    
  • Restliche Abfrage, nach dem Entfernen der Filter neu formuliert:

    family-friendly

Beispiel: Mit einem geografischen Filter

Dieses Beispiel ähnelt dem vorherigen, mit dem Unterschied, dass es einen Geolocation-Filter enthält, eine spezielle Art von extrahierten Filtern. Vertex AI Search kann Standorte in einer Abfrage erkennen und Umgebungsfilter für die Standorte erstellen.

Angenommen, eine Person stellt auf einer landesweiten Unternehmenswebsite folgende Suchanfrage: „Suchen Sie mir ein elegantes und stilvolles Hotel mit mindestens 4 Sternen in San Francisco.“

Mithilfe der Analyse von Suchanfragen in natürlicher Sprache und dem geografischen Standortfilter wird die Suche in Form von Filtern und einer Restabfrage neu formuliert:

  • Aus der Suchanfrage in natürlicher Sprache extrahierte Filter für Hotels mit mindestens 4 Sternen und in einem Umkreis von 10 km um San Francisco:

    {
        "star_rating": ≥4,
        "location": GEO_DISTANCE(\"San Francisco, CA\", 10000)
    }
    

    In diesem Beispiel ist GEO_DISTANCE eine Adresse. In anderen Abfragen kann es sich aber auch um eine geografische Breite und Länge handeln, auch wenn die ursprüngliche Abfrage eine Adresse enthielt.

  • Residualabfrage, umformuliert nach dem Extrahieren von Filtern:

    chic and stylish in San Francisco

    Obwohl der Geolokalisierungsfilter angewendet wird, bleibt der Ortsname in der Restabfrage erhalten. Das unterscheidet ihn von anderen Filtern wie dem star_rating.

Beschränkungen

Für das Verständnis natürlicher Abfragen gelten die folgenden Einschränkungen:

  • Das Verständnis natürlicher Sprache kann nicht auf zusammengeführte Suchanwendungen angewendet werden. Wenn Sie versuchen, die Verarbeitung von Suchanfragen in natürlicher Sprache mit einer App für die gemischte Suche zu verwenden, erhalten Sie eine Fehlermeldung.

  • Die Verarbeitung von Suchanfragen in natürlicher Sprache funktioniert für jede allgemeine Such-App, die strukturierte Daten verwendet. Google empfiehlt jedoch nicht, diese Funktion für die folgenden Arten von strukturierten Daten zu verwenden:

    • Unstrukturierte Daten mit Metadaten
    • Websitedaten mit strukturierten Daten

    Bei diesen Arten von strukturierten Daten ist die Wahrscheinlichkeit gering, dass gute Ergebnisse erzielt werden, da diese Daten in der Regel keine Inhalte, sondern Informationen zur Art der Inhalte enthalten.

  • Die Verwendung von Natural Language Query Understanding erhöht die Latenz, sodass Sie es möglicherweise nicht verwenden. ob Latenz ein Problem ist.

  • Bei der Standortermittlung muss der Standort explizit beschrieben werden. Sie können keine Orte wie „in meiner Nähe“ oder „Zuhause“ verwenden.

  • Der Radius für die Standortermittlung beträgt 10 km und kann nicht konfiguriert werden.

Hinweis

Bevor Sie Natural Language Query Understanding verwenden können, müssen Sie es für Datenspeicher aktivieren mit den Apps verbunden, die Sie verwenden möchten.

So aktivieren Sie das Verständnis natürlicher Abfragen:

REST

  1. Suchen Sie Ihre Datenspeicher-ID. Wenn Sie bereits einen Datenspeicher haben ID verwenden, fahren Sie mit dem nächsten Schritt fort.

    1. Rufen Sie in der Google Cloud Console die Seite Agent Builder auf. Klicken Sie im Navigationsmenü auf Datenspeicher.

      Zur Seite „Datenspeicher“

    2. Klicken Sie auf den Namen des Datenspeichers.

    3. Rufen Sie auf der Datenseite Ihres Datenspeichers die Datenspeicher-ID ab.

  2. Führen Sie den folgenden curl-Befehl aus:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID?update_mask=natural_language_query_understanding_config.mode" \
    -d '{
          "naturalLanguageQueryUnderstandingConfig": {
            "mode": "ENABLED"
          }
        }'
    
    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts.
    • DATA_STORE_ID: die ID des Vertex AI Search-Datenspeichers.
  3. Wiederholen Sie die Schritte 1 und 2 für jeden Datenspeicher.

  4. Warten Sie etwa 24 Stunden.

    Wenn Sie versuchen, Query Understanding in natürlicher Sprache zu verwenden, bevor der Datenspeicher bereit ist, wird die Antwort erhalten Sie dasselbe Ergebnis, als wäre filterExtractionCondition auf DISABLED gesetzt.

Suchen und Abfragen in natürlicher Sprache in Filter umwandeln

Um eine Suchanfrage in natürlicher Sprache zu durchsuchen und Ergebnisse zu erhalten, die für Abfragen in natürlicher Sprache verwenden, gehen Sie so vor:

REST

  1. Führen Sie den folgenden curl-Befehl aus, der die Methode search aufruft:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
      -d '{
            "query": "QUERY",
            "naturalLanguageQueryUnderstandingSpec": {
              "filterExtractionCondition": "ENABLED"
            }
          }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts.
    • APP_ID: Die ID der Vertex AI Search-App, die Sie abfragen möchten. Die App muss die mit einem Datenspeicher verbunden sind, der strukturierte Daten oder Metadaten enthält. Die App darf kein kombinierte Such-App.
    • QUERY: Die Abfrage ist in natürlicher Sprache.

Suchanfragen, bei denen Standorte in Geolokalisierungsfilter umgewandelt werden

Um eine Suchanfrage in natürlicher Sprache zu durchsuchen und Ergebnisse zu erhalten, die für bei Abfragen in natürlicher Sprache, einschließlich der Nähe zu Standorten, führen Sie Folgendes aus:

REST

  1. Führen Sie den folgenden curl-Befehl aus, um den search aufzurufen. :

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
      -d '{
            "query": "QUERY",
            "naturalLanguageQueryUnderstandingSpec": {
              "filterExtractionCondition": "ENABLED",
              "geoSearchQueryDetectionFieldNames": ["GEO_FIELD_NAME_1", "GEO_FIELD_NAME_N"]"
            }
          }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts.
    • APP_ID: Die ID der Vertex AI Search-App, die Sie abfragen möchten. Die App muss die mit einem Datenspeicher verbunden sind, der strukturierte Daten oder Metadaten enthält. Die App darf kein kombinierte Such-App.
    • QUERY: Die Suchanfrage ist in natürlicher Sprache verfasst.
    • GEO_FIELD_NAME_1, GEO_FIELD_NAME_N: eine Liste von Werten vom Typ geolocation. Wenn der Werttyp nicht geolocation – wird dieses Feld ignoriert.