Introducción a la API de NLP Cloud

NLP Cloud es una API que facilita el uso del NLP en producción. La API se basa en los mejores modelos de código abierto. También puede utilizar sus propios modelos o entrenar modelos en la plataforma. NLP Cloud la mayoría de las funciones de comprensión y generación de textos: extracción de entidades (NER), análisis de sentimientos clasificación de textos, resumen de textos, respuesta a preguntas, generación de textos y etiquetado de parte del habla (POS). y mucho más.

La API está disponible de forma gratuita hasta 3 peticiones por minuto, lo que es una buena forma de probar fácilmente la calidad de los modelos. Después, los primeros planes de pago cuestan 29 dólares al mes (para 15 peticiones por minuto).

Veamos cómo utilizar la API en este tutorial.

¿Por qué NLP Cloud?

El despliegue de modelos de IA en producción es una fuente frecuente de fracaso en los proyectos. Los modelos de NLP consumen muchos recursos recursos, y garantizar una alta disponibilidad de estos modelos en producción, al tiempo que se obtienen buenos tiempos de respuesta, es un reto. de respuesta, es un reto. Se necesita una infraestructura costosa y habilidades avanzadas de DevOps, programación e IA. y de IA.

El objetivo de NLP Cloud es ayudar a las empresas a aprovechar rápidamente sus modelos en producción, sin comprometer calidad y a precios asequibles.

Crear una cuenta

La inscripción es muy rápida. Sólo tienes que visitar la página de registro y rellenar su correo electrónico y contraseña (regístrese aquí).

Regístrese en NLP Cloud

Ahora está en su panel de control y puede ver su token de API. Guarde este token de forma segura, lo necesitará para todas las llamadas a la API que realice.

En el panel de control se ofrecen varios fragmentos de código para que pueda ponerse al día rápidamente. Para más detalles, puede leer la documentación (ver la documentación aquí).

Documentación de NLP Cloud

Liberalidades del cliente de la API de NLP Cloud

NLP Cloud le proporciona, de forma inmediata, la mayoría de las funciones típicas del NLP, ya sea gracias a modelos spaCy o Hugging Face preentrenados, o cargando sus propios modelos spaCy.

Para facilitar el uso de la API, NLP Cloud pone a su disposición bibliotecas cliente en varios lenguajes (Python, Ruby, PHP, Go, Node.js). En el resto de este tutorial, vamos a utilizar la librería de Python.

Utilice PIP para instalar la librería Python:

pip install nlpcloud

Extracción de entidades (NER)

La extracción de entidades se realiza a través de spaCy. Todos los modelos preentrenados de spaCy "grandes" están disponibles, lo que significa que hay 15 idiomas disponibles (más detalles sobre todos estos modelos en el sitio web de spaCy). También puede cargar modelos modelos spaCy personalizados que haya desarrollado usted mismo para utilizarlos en la producción. Si eso es lo que Si eso es lo que quieres, sólo tienes que ir a la sección "Modelos personalizados" de tu panel de control:

Cargar modelos NLP personalizados

Ahora imaginemos que quiere extraer entidades de la frase "John Doe ha estado trabajando para Microsoft en Seattle desde 1999" gracias al modelo spaCy preentrenado para el inglés ("en_core_web_lg"). Así es como debe proceder:

import nlpcloud

client = nlpcloud.Client("en_core_web_lg", "")
client.entities("John Doe has been working for Microsoft in Seattle since 1999.")

Devolverá el contenido de cada entidad extraída y su posición en la frase.

Análisis del sentimiento

El análisis del sentimiento se consigue gracias a los transformadores Hugging Face y Distilbert Base Uncased Finetuned SST 2 English. He aquí un ejemplo:

import nlpcloud

client = nlpcloud.Client("distilbert-base-uncased-finetuned-sst-2-english", "")
client.sentiment("NLP Cloud proposes an amazing service!")

Le dirá si el sentimiento general de este texto es más bien positivo o negativo, y su probabilidad.

Clasificación del texto

La clasificación del texto se consigue gracias a los transformadores Hugging Face y Facebook's Bart Large MNLI. He aquí un ejemplo:

import nlpcloud

client = nlpcloud.Client("bart-large-mnli", "")
client.classification("""John Doe is a Go Developer at Google. 
    He has been working there for 10 years and has been 
    awarded employee of the year.""",
    ["job", "nature", "space"],
    True)

Como puede ver, estamos pasando un bloque de texto que estamos tratando de clasificar, junto con las posibles categorías. El último argumento es un booleano que define si se puede aplicar una sola categoría o varias.

Devolverá la probabilidad para cada categoría.

Resumir el texto

El resumen del texto se consigue gracias a los transformadores Hugging Face y Facebook's Bart Large CNN. He aquí un ejemplo:

import nlpcloud

client = nlpcloud.Client("bart-large-cnn", "")
client.summarization("""The tower is 324 metres (1,063 ft) tall, 
about the same height as an 81-storey building, and the tallest structure in Paris. 
Its base is square, measuring 125 metres (410 ft) on each side. During its construction, 
the Eiffel Tower surpassed the Washington Monument to become the tallest man-made 
structure in the world, a title it held for 41 years until the Chrysler Building 
in New York City was finished in 1930. It was the first structure to reach a 
height of 300 metres. Due to the addition of a broadcasting aerial at the top of 
the tower in 1957, it is now taller than the Chrysler Building by 5.2 metres (17 ft). 
Excluding transmitters, the Eiffel Tower is the second tallest free-standing structure 
in France after the Millau Viaduct.""")

Devolverá un resumen de lo anterior. Se trata de un resumen "abstracto" y no "extractivo", lo que significa que lo que significa que se pueden generar nuevas frases y se eliminan las que no son importantes. Sin embargo, las frases no esenciales se eliminan, por supuesto.

Respuesta a las preguntas

La respuesta a las preguntas se consigue gracias a los transformadores Hugging Face y Deepset's Roberta Base Squad 2. Este es un ejemplo:

import nlpcloud

client = nlpcloud.Client("roberta-base-squad2", "")
client.question("""French president Emmanuel Macron said the country was at war
    with an invisible, elusive enemy, and the measures were unprecedented,
    but circumstances demanded them.""",
    "Who is the French president?")

Aquí se trata de responder a una pregunta gracias a un contexto.

Por ejemplo, el ejemplo anterior devolverá "Emmanuel Macron".

Etiquetado de parte del discurso (POS)

El etiquetado de puntos de venta se consigue gracias a los mismos modelos de spaCy que se utilizan para la extracción de entidades. Así, por ejemplo, si quieres utilizar el modelo preentrenado del inglés, debes hacer lo siguiente

import nlpcloud

client = nlpcloud.Client("en_core_web_lg", "")
client.dependencies("John Doe is a Go Developer at Google")

Devolverá la parte del discurso de cada token en la frase, y su dependencia de otros tokens.

Conclusión:

NLP Cloud es una API para NLP que es fácil de usar y que le ayuda a ahorrar mucho tiempo en la producción.

Hay más modelos disponibles, como la traducción, la detección de idiomas, la generación de textos... Y mucho más.

También hay que tener en cuenta que, para las necesidades críticas de rendimiento, también se proponen planes de GPU.

Espero que este artículo haya sido útil para algunos de ustedes. Si tienes alguna pregunta, no dudes en hacérmela llegar saber.

Julien Salinas
CTO en NLP Cloud