Natürliche Sprachverarbeitung für die Messenger-Plattform

Durch NLP (Natural Language Processing, Natürliche Sprachverarbeitung) kannst du wichtige Informationen (Termine, Zeiten und mehr) aus gesendeten Nachrichten verstehen und extrahieren. Anhand dieser Informationen kannst du die Absicht ermitteln, das für die Unterhaltung erforderliche Nachrichtenerlebnis zu implementieren.

Durch integriertes NLP von Meta werden API-Aufrufe reduziert, die auf die Ratenbegrenzungen für Nachrichten angerechnet werden.

So funktioniert’s

Bevor eine Nachricht an dein Unternehmen ausgeliefert wird, wird sie zuerst durch das integrierte NLP von Meta analysiert, um die Bedeutung zu erkennen und Informationen zu extrahieren. Dazu wird sowohl Wit.ai von Meta als auch ein Zuverlässigkeitsgrad verwendet, der die Wahrscheinlichkeit angibt, mit welcher der Parser korrekt ist. Die Nachricht wird dann wie gewöhnlich an dein Unternehmen zugestellt, zusammen mit relevanten Informationen, Entitäten und Eigenschaften, die in der Nachricht erkannt wurden. Wenn eine Nachricht beispielsweise einen Satz wie „Hallo, morgen um 14 Uhr“ enthält, erhältst du eine Eigenschaft, die die Begrüßung enthält, und eine Entität, die den tatsächlichen Zeitstempel enthält.

Die Spracherkennung wird automatisch mit integriertem NLP aktiviert und Datum und Uhrzeit werden automatisch auf Basis des Gebietsschemas im Profil der Person lokalisiert.

Wit.ai

Wit.ai ist die App, mit der die Nachricht analysiert wird und welche die Entitäten aus der Nachricht einer Person erstellt. Du kannst für unterstützte Sprachen die Standard-Wit.ai-App verwenden oder für jede Sprache, die unterstützt werden soll, deine eigene Wit.ai-App erstellen. Wenn die Messenger-Plattform eine Nachricht erhält, wird zuerst die erste erkannte Sprache gesucht. Anschließend werden die Einheiten mithilfe der verknüpften Wit.ai-App extrahiert. Wenn mit der ersten erkannten Sprache keine Wit.ai-App verknüpft ist, wird das Standardsprachmodell verwendet.

Weitere Informationen zu Wit.ai-Apps und Erstellen und Testen deiner eigenen Wit.ai-App sowie eine Liste der unterstützten Sprachen findest du in unserer Wit.ai-Dokumentation.

Hinzufügen von NLP zu deiner Seite

Es gibt zwei Möglichkeiten, NLP zu deiner Unternehmensseite hinzuzufügen: über das Meta-App-Dashboard oder programmgesteuert.

App-Dashboard

Um integriertes NLP über das App-Dashboard hinzuzufügen, navigiere unter Produkte zu Messenger > Einstellungen und scrolle nach unten zum Abschnitt Integriertes NLP. Wähle im Dropdown-Menü die Facebook-Seite aus und schalte um auf EIN. Wähle dann das Sprachmodell aus, das eine Option zum Hinzufügen mehrerer Sprachen enthält. Anhand der erweiterten Einstellungen kannst du die NLP-Version, die Kennzeichnung „verbose“ (ausführlich) für mehr Informationen zu Entitäten sowie n-beste Werte für jede Ansicht und jede Eigenschaft auswählen, die du erhalten möchtest. Diese Einstellung bestimmt auch die Anzahl der erkannten Gebietsschemata, die zurückgegeben werden.

Zufällige Ausschnitte vergangener Unterhaltungen im Seitenpostfach werden zusammengetragen und in einer neu erstellten Wit-App angezeigt. Du kannst diese Beispiele sofort in deiner Wit.ai-App markieren.

Programmgesteuert

Um NLP programmatisch hinzuzufügen, benötigst du Folgendes:

  • Einen von einer Person angeforderten Seiten-Zugriffsschlüssel, welche auf der Seite die Aufgabe MESSAGING ausführen kann
  • Die Seiten-ID
  • Die Berechtigungen pages_messaging und pages_manage_metadata

Sende eine POST-Anfrage an den /PAGE-ID/nlp_configs-Endpunkt, wobei der Parameter nlp_enabled auf true festgelegt ist, um NLP für die Seite zu aktivieren. Du kannst auch den Parameter model einschließen, um eine andere Sprache als die Standardsprache Englisch festzulegen.

Weitere Informationen findest du in der Referenz zu Seiten-NLP.

Beispielanfrage

Für bessere Lesbarkeit formatiert.
curl -i -X POST "https://graph.facebook.com/v21.0/me/nlp_configs
      ?nlp_enabled=true
      &model=PORTUGUESE 
      &access_token=PAGE-ACCESS-TOKEN"

Du kannst den Parameter custom_token verwenden, um deine personalisierte Wit.ai-App zu verwenden, und NLP-Parameter mit POST-Anfragen aktualisieren. Um NLP zu deaktivieren, sende eine POST-Anfrage, in welcher der Parameter nlp_enabled auf false festgelegt ist.

Webhook-Benachrichtigung

Der Nachrichten-Webhook enthält jetzt zwei NLP-Felder, wenn integriertes NLP aktiviert ist: nlp und nlpv2. Das nlp-Feld ist ein Legacy-Feld, das eine veraltete Namenskonvention für Entitäts- und Eigenschaftsnamen verwendet. Das nlpv2-Feld verwendet vereinfachte Entitäts- und Eigenschaftsnamen, wie nachfolgend gezeigt.

Das nlp-Feld wird am 18. Juni 2024 entfernt.

Wenn integriertes NLP aktiviert ist, werden die entsprechenden NLP-Entitäten und -Eigenschaften in die message-Webhooks-Benachrichtigung für jedes Nachrichtenobjekt eingeschlossen.

Entitäten und Eigenschaften

Die Messenger-Plattform gibt standardmäßig die folgenden Entitäten zurück.

InformationenEntität

Geldbetrag

amount_of_money

Datum/Uhrzeit

datetime

Entfernung

distance

Dauer

duration

E-Mail-Adresse

email

Standort

location

Telefonnummer

phone_number

Menge

quantity

Temperatur

temperature

URL

url

Lautstärke

volume

Integrierte Eigenschaften

Die Messenger-Plattform gibt standardmäßig die folgenden Eigenschaften zurück.

InformationenEigenschaft

Bye (nur auf Englisch)

bye

Greetings (nur auf Englisch)

greetings

Stimmung

sentiment

Thanks (nur auf Englisch)

thanks

In unserer Wit.ai-Dokumentation findest du weitere Informationen zu verfügbaren Entitäten, Eigenschaften und mehr.

Beispielbenachrichtigung

Es folgt ein Beispiel für eine Nachricht, die den Ausdruck „bis morgen um 16 Uhr“ enthält und nach der Analyse die Entitäten wit$datetime und wit$sentiment enthalten würde:

{...,
  "entities": {
    "datetime:datetime": [
      {
        "id": "340464963587159",
        "name": "datetime",
        "role": "datetime",
        "start": 8,
        "end": 23,
        "body": "tomorrow at 4pm",
        "confidence": 0.9704,
        "entities": [],
        "type": "value",
        "grain": "hour",
        "value": "2020-06-16T16:00:00.000-07:00",
        "values": [
          {
            "type": "value",
            "grain": "hour",
            "value": "2020-06-16T16:00:00.000-07:00"
          }
        ]
      }
    ]
  },
  "traits": {
    "sentiment": [
      {
        "id": "5ac2b50a-44e4-466e-9d49-bad6bd40092c",
        "value": "neutral",
        "confidence": 0.6162
      }
    ]
  }

Analysieren einer NLP-Nachricht

In deinen messages-Webhooks kannst du über Standard-NLP auf eine Nachricht antworten. Beispiel: Wenn eine handleMessage()-Funktion auf jede empfangene Nachricht antwortet, kannst du über die greetings-Entität eine entsprechende Antwort senden:

function firstTrait(nlp, name) {
  return nlp && nlp.entities && nlp.traits[name] && nlp.traits[name][0];
}

function handleMessage(message) {
  // check greeting is here and is confident
  const greeting = firstTrait(message.nlp, 'greetings');
  if (greeting && greeting.confidence > 0.8) {
    sendResponse('Hi there!');
  } else { 
    // default logic
  }
}