Este é o cliente Python para a API NLP Cloud. Consulte a documentação para obter mais detalhes.
NLP Cloud oferece modelos pré-treinados ou personalizados de alto desempenho para NER, análise de sentimento, classificação, resumo, resumo de diálogos, paráfrase, classificação de intenção, descrição de produto e geração de anúncios, chatbot, correção gramatical e ortográfica, extração de palavras-chave e frases-chave, geração de texto , geração de imagens, geração de código-fonte, resposta a perguntas, reconhecimento automático de fala, tradução automática, detecção de idioma, pesquisa semântica, similaridade semântica, tokenização, marcação de PDV, incorporações e dependência análise. Está pronto para produção, servido por meio de uma API REST.
Você pode usar os modelos pré-treinados do NLP Cloud, ajustar seus próprios modelos ou implantar seus próprios modelos.
Se você enfrentar um problema, não hesite em abordá-lo como um problema do Github. Obrigado!
Instale via pip.
pip install nlpcloud
Aqui está um exemplo completo que resume um texto usando o modelo Bart Large CNN do Facebook, com um token falso:
import nlpcloud
client = nlpcloud . Client ( "bart-large-cnn" , "4eC39HqLyjWDarjtT1zdp7dc" )
client . summarization ( """One month after the United States began what has become a
troubled rollout of a national COVID vaccination campaign, the effort is finally
gathering real steam. Close to a million doses -- over 951,000, to be more exact --
made their way into the arms of Americans in the past 24 hours, the U.S. Centers
for Disease Control and Prevention reported Wednesday. That s the largest number
of shots given in one day since the rollout began and a big jump from the
previous day, when just under 340,000 doses were given, CBS News reported.
That number is likely to jump quickly after the federal government on Tuesday
gave states the OK to vaccinate anyone over 65 and said it would release all
the doses of vaccine it has available for distribution. Meanwhile, a number
of states have now opened mass vaccination sites in an effort to get larger
numbers of people inoculated, CBS News reported.""" )
Aqui está um exemplo completo que faz a mesma coisa, mas em uma GPU:
import nlpcloud
client = nlpcloud . Client ( "bart-large-cnn" , "4eC39HqLyjWDarjtT1zdp7dc" , True )
client . summarization ( """One month after the United States began what has become a
troubled rollout of a national COVID vaccination campaign, the effort is finally
gathering real steam. Close to a million doses -- over 951,000, to be more exact --
made their way into the arms of Americans in the past 24 hours, the U.S. Centers
for Disease Control and Prevention reported Wednesday. That s the largest number
of shots given in one day since the rollout began and a big jump from the
previous day, when just under 340,000 doses were given, CBS News reported.
That number is likely to jump quickly after the federal government on Tuesday
gave states the OK to vaccinate anyone over 65 and said it would release all
the doses of vaccine it has available for distribution. Meanwhile, a number
of states have now opened mass vaccination sites in an effort to get larger
numbers of people inoculated, CBS News reported.""" )
Aqui está um exemplo completo que faz a mesma coisa, mas em um texto em francês:
import nlpcloud
client = nlpcloud . Client ( "bart-large-cnn" , "4eC39HqLyjWDarjtT1zdp7dc" , True , "fra_Latn" )
client . summarization ( """Sur des images aériennes, prises la veille par un vol de surveillance
de la Nouvelle-Zélande, la côte d’une île est bordée d’arbres passés du vert
au gris sous l’effet des retombées volcaniques. On y voit aussi des immeubles
endommagés côtoyer des bâtiments intacts. « D’après le peu d’informations
dont nous disposons, l’échelle de la dévastation pourrait être immense,
spécialement pour les îles les plus isolées », avait déclaré plus tôt
Katie Greenwood, de la Fédération internationale des sociétés de la Croix-Rouge.
Selon l’Organisation mondiale de la santé (OMS), une centaine de maisons ont
été endommagées, dont cinquante ont été détruites sur l’île principale de
Tonga, Tongatapu. La police locale, citée par les autorités néo-zélandaises,
a également fait état de deux morts, dont une Britannique âgée de 50 ans,
Angela Glover, emportée par le tsunami après avoir essayé de sauver les chiens
de son refuge, selon sa famille.""" )
Um objeto JSON é retornado:
{
"summary_text" : " Over 951,000 doses were given in the past 24 hours. That's the largest number of shots given in one day since the rollout began. That number is likely to jump quickly after the federal government gave states the OK to vaccinate anyone over 65. A number of states have now opened mass vaccination sites. "
}
Passe o modelo que deseja usar e o token NLP Cloud para o cliente durante a inicialização.
O modelo pode ser um modelo pré-treinado como en_core_web_lg
, bart-large-mnli
... mas também um de seus modelos personalizados, usando custom_model/
(por exemplo, custom_model/2568
). Consulte a documentação para obter uma lista abrangente de todos os modelos disponíveis.
Seu token pode ser recuperado no painel do NLP Cloud.
import nlpcloud client = nlpcloud . Client ( "" , "" )
Se você quiser usar uma GPU, passe gpu=True
.
import nlpcloud client = nlpcloud . Client ( "" , "" , gpu = True )
Se você quiser usar o complemento multilíngue para processar textos que não sejam em inglês, passe lang="
. Por exemplo, se você deseja processar texto em francês, você deve definir lang="fra_Latn"
.
import nlpcloud client = nlpcloud . Client ( "" , "" , lang = "" )
Se você quiser fazer solicitações assíncronas, passe asynchronous=True
.
import nlpcloud client = nlpcloud . Client ( "" , "" , asynchronous = True )
Se você estiver fazendo solicitações assíncronas, sempre receberá uma resposta rápida contendo uma URL. Você deve então pesquisar esse URL com async_result()
regularmente (a cada 10 segundos, por exemplo) para verificar se o resultado está disponível. Aqui está um exemplo:
client . async_result ( "https://api.nlpcloud.io/v1/get-async-result/21718218-42e8-4be9-a67f-b7e18e03b436" )
O comando acima retorna um objeto JSON quando a resposta está pronta. Ele retorna None
caso contrário.
Chame o método asr()
e passe os seguintes argumentos:
url
: uma URL onde seu arquivo de áudio ou vídeo está hospedadoencoded_file
: uma versão codificada em base 64 do seu arquivoinput_language
: o idioma do seu arquivo como código ISO client . asr ( "Your url" )
O comando acima retorna um objeto JSON.
Chame o método chatbot()
e passe sua entrada. Como opção, você também pode passar um contexto e histórico de conversas que é uma lista de dicionários. Cada dicionário é composto por uma input
e uma response
do chatbot.
client . chatbot ( "Your input" , "You context" , [{ "input" : "input 1" , "response" : "response 1" }, { "input" : "input 2" , "response" : "response 2" }, ...])
O comando acima retorna um objeto JSON.
Chame o método classification()
e passe os seguintes argumentos:
multi_class
: se a classificação deve ser multiclasse ou não, como booleano. O padrão é verdadeiro. client . classification ( "" , [ "label 1" , "label 2" , "..." ])
O comando acima retorna um objeto JSON.
Chame o método code_generation()
e passe a instrução para o programa que deseja gerar:
client . code_generation ( "" )
O comando acima retorna um objeto JSON.
Chame o método dependencies()
e passe o texto no qual deseja realizar a marcação de classes gramaticais (POS) + arcos.
client . dependencies ( "" )
O comando acima retorna um objeto JSON.
Chame o método embeddings()
e passe uma lista de blocos de texto dos quais você deseja extrair os embeddings.
client . embeddings ([ "" , "" , "" , ...])
O comando acima retorna um objeto JSON.
Chame o método entities()
e passe o texto no qual deseja realizar o reconhecimento de entidade nomeada (NER).
client . entities ( "" )
O comando acima retorna um objeto JSON.
Chame o método generation()
e passe os seguintes argumentos:
max_length
: Opcional. O número máximo de tokens que o texto gerado deve conter. Máximo de 256 tokens para GPT-J na CPU, máximo de 1.024 tokens para GPT-J e GPT-NeoX 20B na GPU e máximo de 2.048 tokens para Fast GPT-J e Finetuned GPT-NeoX 20B na GPU. Se length_no_input
for falso, o tamanho do texto gerado será a diferença entre max_length
e o comprimento do texto de entrada. Se length_no_input
for verdadeiro, o tamanho do texto gerado será simplesmente max_length
. O padrão é 50.length_no_input
: se min_length
e max_length
não devem incluir o comprimento do texto de entrada, como um booleano. Se for falso, min_length
e max_length
incluem o comprimento do texto de entrada. Se for verdade, min_length e max_length
não incluem o comprimento do texto de entrada. O padrão é falso.end_sequence
: um token específico que deve ser o final da sequência gerada, como uma string. Por exemplo, se poderia ser .
ou n
ou ###
ou qualquer outra coisa abaixo de 10 caracteres.remove_input
: se você deseja remover o texto de entrada do resultado, como um booleano. O padrão é falso.num_beams
: Número de feixes para pesquisa de feixes. 1 significa que não há busca de feixe. Este é um número inteiro. O padrão é 1.num_return_sequences
: o número de sequências retornadas calculadas independentemente para cada elemento do lote, como um número inteiro. O padrão é 1.top_k
: o número de tokens de vocabulário de maior probabilidade a serem mantidos para filtragem top-k, como um número inteiro. Máximo de 1000 tokens. O padrão é 0.top_p
: se definido como float <1, apenas os tokens mais prováveis com probabilidades que somam top_p ou superior são mantidos para geração. Isto é um carro alegórico. Deve estar entre 0 e 1. O padrão é 0,7.temperature
: O valor usado para modular as probabilidades do próximo token, como um valor flutuante. Deve estar entre 0 e 1. O padrão é 1.repetition_penalty
: O parâmetro para penalidade de repetição, como float. 1,0 significa sem penalidade. O padrão é 1.0.bad_words
: Lista de tokens que não podem ser gerados, como uma lista de strings. O padrão é nulo.remove_end_sequence
: Opcional. Se você deseja remover a string end_sequence
do resultado. O padrão é falso. client . generation ( "" )
O comando acima retorna um objeto JSON.
Chame o método gs_correction()
e passe o texto que deseja corrigir:
client . gs_correction ( "" )
O comando acima retorna um objeto JSON.
Chame o método image_generation()
e passe a instrução de texto para a nova imagem que deseja gerar:
client . image_generation ( "" )
O comando acima retorna um objeto JSON.
Chame o método intent_classification()
e passe o texto do qual deseja extrair as intents:
client . intent_classification ( "" )
O comando acima retorna um objeto JSON.
Chame o método kw_kp_extraction()
e passe o texto do qual deseja extrair palavras-chave e frases-chave:
client . kw_kp_extraction ( "" )
O comando acima retorna um objeto JSON.
Chame o método langdetection()
e passe o texto que deseja analisar para detectar os idiomas.
client . langdetection ( "" )
O comando acima retorna um objeto JSON.
Chame o método paraphrasing()
e passe o texto que deseja parafrasear.
client . paraphrasing ( "" )
O comando acima retorna um objeto JSON.
Chame o método question()
e passe o seguinte:
client . question ( "" , "" )
O comando acima retorna um objeto JSON.
Chame o método semantic_search()
e passe sua consulta de pesquisa.
client . semantic_search ( "Your search query" )
O comando acima retorna um objeto JSON.
Chame o método semantic_similarity()
e passe uma lista composta por 2 blocos de texto que deseja comparar.
client . semantic_similarity ([ "" , "" ])
O comando acima retorna um objeto JSON.
Chame o método sentence_dependencies()
e passe um bloco de texto composto por diversas sentenças nas quais você deseja realizar arcos POS +.
client . sentence_dependencies ( "" )
O comando acima retorna um objeto JSON.
Chame o método sentiment()
e passe o seguinte:
client . sentiment ( "" , "" )
O comando acima retorna um objeto JSON.
Chame o método speech_synthesis()
e passe o texto que deseja converter em áudio:
client . speech_synthesis ( "" )
O comando acima retorna um objeto JSON.
Chame o método summarization()
e passe o texto que deseja resumir.
client . summarization ( "" )
O comando acima retorna um objeto JSON.
Chame o método tokens()
e passe o texto que deseja tokenizar.
client . tokens ( "" )
O comando acima retorna um objeto JSON.
Chame o método translation()
e passe o texto que deseja traduzir.
client . translation ( "" )
O comando acima retorna um objeto JSON.