Está a ter dificuldades com a IA ou com o desenvolvimento full-stack? Os nossos especialistas estão aqui para o orientar: aconselhamento personalizado, integração técnica e muito mais. Entre em contacto com [email protected].

Introdução à NLP Cloud API

NLP Cloud é uma API que facilita a utilização do Processamento de Linguagem Natural na produção. O API é baseado no melhor código aberto modelos pré-treinados. Pode também utilizar os seus próprios modelos ou modelos de comboio na plataforma. NLP Cloud mais da compreensão do texto e características de geração de texto: extracção de entidades (NER), análise dos sentimentos, classificação de texto, sumário de texto, resposta a perguntas, geração de texto, e parte da fala (POS) etiquetagem... e mais!

O API está disponível gratuitamente até 3 pedidos por minuto, o que é uma boa forma de testar facilmente a qualidade dos modelos. Depois os primeiros planos pagos custam $29 por mês (para 15 pedidos por minuto).

Vamos ver como utilizar o API neste tutorial.

Porquê a NLP Cloud?

A implementação de modelos de IA na produção é uma fonte frequente de fracasso do projecto. Os modelos de Processamento de Linguagem Natural são muito recursos intensiva, e assegurando uma elevada disponibilidade destes modelos na produção, tendo ao mesmo tempo uma boa resposta vezes, é um desafio. É necessária e dispendiosa infra-estrutura e DevOps avançados, programação e IA competências.

O objectivo da NLP Cloud é ajudar as empresas a alavancar rapidamente os seus modelos na produção, sem qualquer compromisso na qualidade, e a preços acessíveis.

Criar uma conta

A inscrição é muito rápida. Basta visitar o registo e preencha o seu e-mail + palavra-passe (registe-se aqui).

Registo na NLP Cloud

Está agora no seu painel de instrumentos e pode ver a sua ficha API. Guarde este token em segurança, vai precisar dele para todas as chamadas API que fizer.

Vários trechos de código são fornecidos no seu painel de instrumentos, para que possa rapidamente actualizar-se. Para mais detalhes, pode então ler o documentação (ver a documentação aqui).

Documentação NLP Cloud

NLP Cloud API Client Libs

NLP Cloud oferece-lhe, de forma imediata, a maioria das características típicas do Processamento de Linguagem Natural, quer graças a modelos pré-treinados spaCy ou Hugging Face, ou carregando os seus próprios modelos spaCy.

A fim de tornar a API fácil de usar, a NLP Cloud fornece-lhe bibliotecas clientes em várias línguas (Python, Ruby, PHP, Go, Node.js). No resto deste tutorial, vamos utilizar a Python lib.

Utilizar o PIP para instalar a Python lib:

pip install nlpcloud

Extracção da entidade (NER)

A extracção das entidades é feita via spaCy. Todos os modelos "grandes" pré-treinados da spaCy estão disponíveis, os quais significa que estão disponíveis 15 línguas (mais detalhes sobre todos estes modelos no site da spaCy). Também pode fazer o upload personalizado modelos internos spaCy que desenvolveu por si próprio para os utilizar na produção. Se é isso que Se quiser, basta ir à secção "Modelos Personalizados" no seu painel de instrumentos:

Carregar modelos personalizados de Processamento de Linguagem Natural

Agora vamos imaginar que quer extrair entidades da frase "John Doe tem trabalhado para Microsoft em Seattle desde 1999", graças ao modelo spaCy pré-formado para inglês ("en_core_web_lg"). Eis como se deve proceder:

import nlpcloud

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

Devolverá o conteúdo de cada entidade extraída e a sua posição na frase.

Análise de Sentimento

A análise dos sentimentos é conseguida graças aos transformadores Hugging Face e Distilbert Base Uncased Finetuned SST 2 English. Aqui está um exemplo:

import nlpcloud

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

Dir-lhe-á se o sentimento geral neste texto é bastante positivo ou negativo, e se o seu probabilidade.

Classificação do texto

A classificação do texto é conseguida graças aos transformadores Hugging Face e Facebook's Bart Large MNLI. Aqui está um exemplo:

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 podem ver, estamos a passar um bloco de texto que estamos a tentar classificar, juntamente com possíveis categorias. O último argumento é um booleano que define se uma única categoria ou várias podem ser aplicadas.

Retornará a probabilidade para cada categoria.

Sumário de texto

O resumo do texto é conseguido graças aos transformadores Hugging Face e Facebook's Bart Large CNN. Aqui está um exemplo:

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á um resumo do acima exposto. Este é um resumo "abstracto", e não um "extractivo". uma, o que significa que podem ser geradas novas frases, e as não importantes são removidas. No entanto as frases não essenciais são retiradas, é claro.

Respostas a perguntas

A resposta às perguntas é conseguida graças aos transformadores Hugging Face e Deepset's Roberta Base Squad 2. Aqui está um exemplo:

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?")

Aqui trata-se de responder a uma pergunta graças a um contexto.

Por exemplo, o exemplo acima devolverá "Emmanuel Macron".

Marcação de Parte de Fala (POS)

A etiquetagem Part-Of-Speech é conseguida graças aos mesmos modelos spaCy que o utilizado para a extracção de entidades. Assim, para exemplo, se quiser utilizar o modelo inglês pré-formado, eis como se deve proceder:

import nlpcloud

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

Devolverá a parte de fala de cada ficha da frase, e a sua dependência de outras fichas.

Conclusão

NLP Cloud é uma API para Processamento de Linguagem Natural que é fácil de usar e que o ajuda a poupar muito tempo na produção.

Estão disponíveis mais modelos, como tradução, detecção de línguas, geração de textos... E muito mais.

Note-se também que, para necessidades críticas de desempenho, são também propostos planos de GPU.

Espero que este artigo tenha sido útil para alguns de vós! Se tiverem alguma pergunta, por favor não hesitem em deixar-me saiba.

Julien Salinas
CTO em NLP Cloud