¡Participa de la Maratón Behind the Code, la competencia de programación más desafiante! Inscríbete aqui

Observar detalladamente la función Syntax API en Watson Natural Language Understanding

Este artículo forma parte de la ruta de aprendizaje Introducción al procesamiento del lenguaje natural.

Nivel Tema Tipo
100 Introducción al procesamiento del lenguaje natural de Watson Artículo
101 Observar detalladamente la función Syntax API en Watson Natural Language Understanding Artículo
201 Visualizar datos no estructurados utilizando Watson Natural Language Understanding Code pattern

¿Qué es el procesamiento del lenguaje natural?

El procesamiento del lenguaje natural es el análisis e interpretación semántica del texto, lo que le permite a las computadoras aprender, analizar y comprender el lenguaje humano. Estas capacidades se pueden aplicar a casos de uso como la minería de texto, reconocimiento individual de personas por su escritura y análisis de sentimientos. Watson™ Natural Language Understanding ofrece análisis de texto avanzado.

Watson Natural Language Understanding puede analizar texto y devolver una taxonomía de cinco niveles del contenido, así como conceptos, emociones, sentimientos, entidades y relaciones. La nueva versión de su función syntax API te permite extraer mucha más información semántica mediante el uso de tokenización, clases de palabras, lematización y división de oraciones. Veamos cada una de esas subfunciones.

Tokenización

La tokenización es el proceso en el que las oraciones se segmentan en palabras, frases o símbolos llamados tokens. Este es un paso crucial y necesario que ocurre antes de cualquier procesamiento de datos. La tokenización consiste esencialmente en preprocesar los datos de a uno, identificando las unidades básicas necesarias para su procesamiento. Sin estas unidades básicas, es difícil realizar un análisis de contenido.

Ejemplo de tokenización

En la mayoría de los idiomas, las palabras suelen estar divididas por espacios en blanco. La tokenización divide las palabras y los símbolos de puntuación y entrega los componentes básicos del texto.

Lematización

Los documentos van a tener varias versiones de una palabra dentro del contenido, por ejemplo, ejecutar y ejecución. Estas palabras y sus diferentes formas tienen significados similares solo en su forma más simple. El objetivo de la lematización es reducir la complejidad de estas palabras y descomponer la palabra en su forma más simple.

Ejemplo de lematización

A través de la lematización, vemos que la versión más compleja de las palabras se dividió en significados más simples sin dejar de transmitir la misma idea. La lematización permite a los usuarios reducir la complejidad de sus algoritmos reduciendo las palabras a su forma más simple.

Clases de palabras

Una vez que se ha tokenizado una frase, cada token se clasifica según una determinada clase de palabras. Watson Natural Language Understanding utiliza las clases de palabras universales en todos los idiomas, incluidos el sustantivo, verbo, adjetivo, pronombre, puntuación y nombre propio. Las clases de palabras son sumamente importantes cuando se trata del procesamiento del lenguaje natural. Se puede usar para definir el sentido de las palabras y comprender el significado de cada una de ellas en una oración.

Ejemplo de parte del habla

División de oraciones

Habrá varias situaciones en las que los usuarios tendrán que saber cuándo termina una oración y cuándo comienza la siguiente sin confundirse con un nombre propio como «Sr.» o «Sra.» en la oración. Watson Natural Language Understanding determina cuándo se ha expresado una idea completa en una oración y puede definir cuándo termina esa oración y comienza la siguiente.

Ejemplo de división de oraciones

Ejemplo de solicitud de Syntax API

Para activar syntax API mediante comandos curl, copia y pega el siguiente código con tu token de autorización de API. Si has olvidado cómo crear un token de autorización de API, puedes seguir estas instrucciones.

curl --request POST \
  --url 'https://api.us-south.natural-language-understanding.watson.cloud.ibm.com/api/v1/analyze?version=2019-01-27' \
  --header "Authorization: Bearer {your token here}" \
  --header 'content-type: application/json' \
  --data '{
        "text": "Mr. Earl wasn't looking for his wallet. He's searching for his new scarf to fit his look.",
        "features": {
                "syntax": {
                        "sentences": true,
                        "tokens": {
                                "lemma": true,
                                "part_of_speech": true
                        }
                }
        },
        "language": "en"
}'

La API muestra el siguiente resultado:

{
  "usage": {
    "text_units": 1,
    "text_characters": 89,
    "features": 0
  },
  "syntax": {
    "tokens": [
      {
        "text": "Mr.",
        "part_of_speech": "PROPN",
        "location": [
          0,
          3
        ],
        "lemma": "Mr."
      },
      {
        "text": "Earl",
        "part_of_speech": "PROPN",
        "location": [
          4,
          8
        ],
        "lemma": "earl"
      },
      {
        "text": "was",
        "part_of_speech": "AUX",
        "location": [
          9,
          12
        ],
        "lemma": "be"
      },
      {
        "text": "n't",
        "part_of_speech": "PART",
        "location": [
          12,
          15
        ],
        "lemma": "not"
      },
      {
        "text": "looking",
        "part_of_speech": "VERB",
        "location": [
          16,
          23
        ],
        "lemma": "look"
      },
      {
        "text": "for",
        "part_of_speech": "ADP",
        "location": [
          24,
          27
        ],
        "lemma": "for"
      },
      {
        "text": "his",
        "part_of_speech": "PRON",
        "location": [
          28,
          31
        ],
        "lemma": "his"
      },
      {
        "text": "wallet",
        "part_of_speech": "NOUN",
        "location": [
          32,
          38
        ],
        "lemma": "wallet"
      },
      {
        "text": ".",
        "part_of_speech": "PUNCT",
        "location": [
          38,
          39
        ]
      },
      {
        "text": "He",
        "part_of_speech": "PRON",
        "location": [
          40,
          42
        ],
        "lemma": "he"
      },
      {
        "text": "'s",
        "part_of_speech": "AUX",
        "location": [
          42,
          44
        ],
        "lemma": "be"
      },
      {
        "text": "searching",
        "part_of_speech": "VERB",
        "location": [
          45,
          54
        ],
        "lemma": "search"
      },
      {
        "text": "for",
        "part_of_speech": "ADP",
        "location": [
          55,
          58
        ],
        "lemma": "for"
      },
      {
        "text": "his",
        "part_of_speech": "PRON",
        "location": [
          59,
          62
        ],
        "lemma": "his"
      },
      {
        "text": "new",
        "part_of_speech": "ADJ",
        "location": [
          63,
          66
        ],
        "lemma": "new"
      },
      {
        "text": "scarf",
        "part_of_speech": "NOUN",
        "location": [
          67,
          72
        ],
        "lemma": "scarf"
      },
      {
        "text": "to",
        "part_of_speech": "PART",
        "location": [
          73,
          75
        ],
        "lemma": "to"
      },
      {
        "text": "fit",
        "part_of_speech": "VERB",
        "location": [
          76,
          79
        ],
        "lemma": "fit"
      },
      {
        "text": "his",
        "part_of_speech": "PRON",
        "location": [
          80,
          83
        ],
        "lemma": "his"
      },
      {
        "text": "look",
        "part_of_speech": "NOUN",
        "location": [
          84,
          88
        ],
        "lemma": "look"
      },
      {
        "text": ".",
        "part_of_speech": "PUNCT",
        "location": [
          88,
          89
        ]
      }
    ],
    "sentences": [
      {
        "text": "Mr. Earl wasn't looking for his wallet.",
        "location": [
          0,
          39
        ]
      },
      {
        "text": "He's searching for his new scarf to fit his look.",
        "location": [
          40,
          89
        ]
      }
    ]
  },
  "language": "en"
}

Conclusión

Syntax API es compatible con otras funciones de Watson Natural Language Understanding, como entidades, categorías, etc. Es posible centrarse más en la necesidad empresarial de implementar el procesamiento del lenguaje natural, en lugar de centrarse en la complejidad de los modelos de lenguaje. Syntax API se encuentra actualmente bajo una versión experimental. Actualmente, esta función es de uso gratuito.

Obtén más información sobre syntax API en Documentos de API, luego prueba la nueva función de sintaxis para Watson Natural Language Understanding.

Este artículo forma parte de la ruta de aprendizaje Introducción al procesamiento del lenguaje natural. Para continuar, prueba el Code pattern de Visualizar datos no estructurados utilizando Watson Natural Language Understanding.