Procesamiento del lenguaje natural para la plataforma de Messenger

El procesamiento del lenguaje natural (NLP) te permite comprender y extraer información relevante (fechas, hora y mucho más) de los mensajes que recibe tu empresa. Puedes utilizar esta información para identificar la intención de implementar la experiencia de mensajería necesaria para la conversación.

El uso del NLP integrado de Meta reduce las llamadas a la API que cuentan para los límites de frecuencia de mensajes.

Cómo funciona

Antes de que un mensaje se entregue a tu empresa, el NLP integrado de Meta analiza primero los mensajes para ayudar a detectar el significado y extraer información utilizando Wit.ai de Meta, así como el nivel de confianza que indica qué probabilidades hay de que la información facilitada por el analizador sea correcta. El mensaje se transmitirá entonces a tu empresa de la forma habitual, junto con la información relevante, las entidades y características detectados en el mensaje. Por ejemplo, si un mensaje contiene una frase como "hola, mañana a las 14:00", recibirás una característica que incluya el saludo y una entidad que incluya la marca de tiempo real.

La identificación del idioma se activa automáticamente con el NLP integrado, y la fecha y la hora se adaptan automáticamente a la configuración regional del perfil de la persona.

Wit.ai

Wit.ai es la aplicación que analiza el mensaje y crea las entidades a partir del mensaje de una persona. Puedes utilizar la aplicación Wit.ai predeterminada para los idiomas admitidos o crear tu propia aplicación Wit.ai para cada idioma que quieras que se admita. Cuando la plataforma de Messenger recibe un mensaje, buscará primero el idioma principal detectado y utilizará la aplicación Wit.ai asociada para extraer las entidades. Si no hay ninguna aplicación Wit.ai vinculada al idioma principal detectado, se utilizará el modelo de idioma predeterminado.

Visita la documentación de Wit.ai para obtener más información sobre las aplicaciones Wit.ai y crear y probar tu propia aplicación Wit.ai personalizada así como una lista de idiomas admitidos.

Añadir el NLP a tu página

Existen dos formas de añadir el NLP a la página de tu empresa: utilizando el panel de aplicaciones de Meta o mediante programación.

Panel de aplicaciones

Para añadir el NLP integrado utilizando el panel de aplicaciones, en Productos ve a Messenger > Configuración y desplázate hasta la sección NLP integrado. Selecciona la página de Facebook en el menú desplegable y actívala. Selecciona el modelo de idioma, que incluye una opción para añadir varios idiomas. La configuración avanzada te permite seleccionar la versión del NLP, la marca detallada para obtener más información sobre las entidades y los valores n-best para cada intención y característica que quieras recibir. Esta configuración también determina el número de configuraciones regionales detectadas devueltas.

Se recopilarán muestras aleatorias de conversaciones anteriores en la bandeja de entrada de la página, y se mostrarán en una aplicación Wit recién creada. Las muestras estarán disponibles para etiquetar tu aplicación Wit.ai inmediatamente.

Mediante programación

Para añadir el NLP mediante programación, necesitarás:

  • Un identificador de acceso a la página solicitado por una persona que pueda realizar la tarea MESSAGING en la página
  • El identificador de la página
  • Los permisos pages_messaging y pages_manage_metadata

Envía una solicitud POST al extremo /PAGE-ID/nlp_configs con el parámetro nlp_enabled configurado en true para activar el NLP para la página. También puedes incluir el parámetro model para configurar un idioma distinto del predeterminado, que es el inglés.

Consulta la referencia del NLP de la página para obtener más información.

Ejemplo de solicitud

Se ha aplicado formato para mejorar la legibilidad.
curl -i -X POST "https://graph.facebook.com/LATEST-GRAPH-API-VERSION/me/nlp_configs
      ?nlp_enabled=true
      &model=PORTUGUESE 
      &access_token=PAGE-ACCESS-TOKEN"

Puedes utilizar el parámetro custom_token para usar la aplicación Wit.ai personalizada y actualizar los parámetros del NLP con solicitudes POST. Para desactivar el NLP, envía una solicitud POST con el parámetro nlp_enabled configurado en false.

Notificación de webhooks

Si el NLP integrado está activado, las entidades y características relevantes del NLP se incluirán en la notificación de webhooks message para cada objeto de mensaje.

Entidades y atributos

La plataforma de Messenger devuelve las siguientes entidades de forma predeterminada.

InformaciónEntidad

Cantidad de dinero

wit$amount_of_money:amount_of_money

Fecha/hora

wit$datetime:$datetime

Distancia

wit$distance:distance

Duración

wit$duration:duration

Dirección de correo electrónico

wit$email:email

Ubicación

wit$location:location

Número de teléfono

wit$phone_number:phone_number

Cantidad

wit$quantity:quantity

Temperatura

wit$temperature:temperature

URL

wit$url:url

Volumen

wit$volume:volume

Características integradas

La plataforma de Messenger devuelve las siguientes características de forma predeterminada.

InformaciónCaracterística

Adiós (solo inglés)

wit$bye

Saludos (solo inglés)

wit$greetings

Percepción

wit$sentiment

Gracias (solo inglés)

wit$thanks

Visita nuestra documentación en Wit.ia para obtener más información sobre entidades y características disponibles, así como otra información.

Notificación de ejemplo

El siguiente ejemplo es para un mensaje con la frase "nos vemos mañana a las 16:00" e incluiría las entidades wit$datetime y wit$sentiment después del análisis:

{...,
  "entities": {
    "wit$datetime:datetime": [
      {
        "id": "340464963587159",
        "name": "wit$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": {
    "wit$sentiment": [
      {
        "id": "5ac2b50a-44e4-466e-9d49-bad6bd40092c",
        "value": "neutral",
        "confidence": 0.6162
      }
    ]
  }

Analizar un mensaje con NLP

En los webhooks messages, puedes responder a un mensaje utilizando el NLP predeterminado. Por ejemplo, si tienes una función handleMessage() que responde a cada mensaje recibido, podrás utilizar la entidad greetings para enviar una respuesta adecuada:

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, 'wit$greetings');
  if (greeting && greeting.confidence > 0.8) {
    sendResponse('Hi there!');
  } else { 
    // default logic
  }
}