Il s'agit du client Python pour l'API NLP Cloud. Voir la documentation pour plus de détails.
NLP Cloud propose des modèles pré-entraînés ou personnalisés de haute performance pour le NER, l'analyse des sentiments, la classification, le résumé, le résumé des dialogues, la paraphrase, la classification des intentions, la description du produit et la génération d'annonces, le chatbot, la correction grammaticale et orthographique, l'extraction de mots-clés et d'expressions clés, la génération de texte. , génération d'images, génération de code source, réponse aux questions, reconnaissance vocale automatique, traduction automatique, détection de langue, recherche sémantique, similarité sémantique, tokenisation, marquage POS, intégrations et analyse des dépendances. Il est prêt pour la production, servi via une API REST.
Vous pouvez soit utiliser les modèles pré-entraînés NLP Cloud, affiner vos propres modèles ou déployer vos propres modèles.
Si vous rencontrez un problème, n'hésitez pas à le signaler comme un problème Github. Merci!
Installer via pip.
pip install nlpcloud
Voici un exemple complet qui résume un texte utilisant le modèle Bart Large CNN de Facebook, avec un faux token :
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.""" )
Voici un exemple complet qui fait la même chose, mais sur un 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.""" )
Voici un exemple complet qui fait la même chose, mais sur un texte français :
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.""" )
Un objet json est renvoyé :
{
"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. "
}
Transmettez le modèle que vous souhaitez utiliser et le jeton NLP Cloud au client lors de l'initialisation.
Le modèle peut être soit un modèle pré-entraîné comme en_core_web_lg
, bart-large-mnli
... mais aussi l'un de vos modèles personnalisés, en utilisant custom_model/
(par exemple custom_model/2568
). Consultez la documentation pour une liste complète de tous les modèles disponibles.
Votre token peut être récupéré à partir de votre tableau de bord NLP Cloud.
import nlpcloud client = nlpcloud . Client ( "" , "" )
Si vous souhaitez utiliser un GPU, transmettez gpu=True
.
import nlpcloud client = nlpcloud . Client ( "" , "" , gpu = True )
Si vous souhaitez utiliser le module complémentaire multilingue afin de traiter des textes non anglais, transmettez lang="
. Par exemple, si vous souhaitez traiter du texte français, vous devez définir lang="fra_Latn"
.
import nlpcloud client = nlpcloud . Client ( "" , "" , lang = "" )
Si vous souhaitez effectuer des requêtes asynchrones, transmettez asynchronous=True
.
import nlpcloud client = nlpcloud . Client ( "" , "" , asynchronous = True )
Si vous effectuez des requêtes asynchrones, vous recevrez toujours une réponse rapide contenant une URL. Vous devez ensuite interroger cette URL avec async_result()
de manière régulière (toutes les 10 secondes par exemple) afin de vérifier si le résultat est disponible. Voici un exemple :
client . async_result ( "https://api.nlpcloud.io/v1/get-async-result/21718218-42e8-4be9-a67f-b7e18e03b436" )
La commande ci-dessus renvoie un objet JSON lorsque la réponse est prête. Sinon, il renvoie None
.
Appelez la méthode asr()
et transmettez les arguments suivants :
url
: une URL où votre fichier audio ou vidéo est hébergéencoded_file
: une version codée en base 64 de votre fichierinput_language
: la langue de votre fichier en code ISO client . asr ( "Your url" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode chatbot()
et transmettez votre entrée. En option, vous pouvez également transmettre un contexte et un historique de conversation qui est une liste de dictionnaires. Chaque dictionnaire est constitué d'une input
et d'une response
du chatbot.
client . chatbot ( "Your input" , "You context" , [{ "input" : "input 1" , "response" : "response 1" }, { "input" : "input 2" , "response" : "response 2" }, ...])
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode classification()
et transmettez les arguments suivants :
multi_class
: indique si la classification doit être multi-classe ou non, sous forme booléenne. La valeur par défaut est vrai. client . classification ( "" , [ "label 1" , "label 2" , "..." ])
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode code_generation()
et transmettez l'instruction du programme que vous souhaitez générer :
client . code_generation ( "" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode dependencies()
et transmettez le texte sur lequel vous souhaitez effectuer une partie du marquage vocal (POS) + des arcs.
client . dependencies ( "" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode embeddings()
et transmettez une liste de blocs de texte dont vous souhaitez extraire les intégrations.
client . embeddings ([ "" , "" , "" , ...])
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode entities()
et transmettez le texte sur lequel vous souhaitez effectuer la reconnaissance d'entité nommée (NER).
client . entities ( "" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode generation()
et transmettez les arguments suivants :
max_length
: Facultatif. Le nombre maximum de jetons que le texte généré doit contenir. 256 jetons maximum pour GPT-J sur CPU, 1 024 jetons maximum pour GPT-J et GPT-NeoX 20B sur GPU et 2 048 jetons maximum pour Fast GPT-J et Finetuned GPT-NeoX 20B sur GPU. Si length_no_input
est faux, la taille du texte généré est la différence entre max_length
et la longueur de votre texte saisi. Si length_no_input
est vrai, la taille du texte généré est simplement max_length
. La valeur par défaut est 50.length_no_input
: indique si min_length
et max_length
ne doivent pas inclure la longueur du texte d'entrée, sous forme booléenne. Si faux, min_length
et max_length
incluent la longueur du texte saisi. Si c'est vrai, min_length et max_length
n'incluent pas la longueur du texte saisi. La valeur par défaut est false.end_sequence
: Un jeton spécifique qui doit être la fin de la séquence générée, sous forme de chaîne. Par exemple, si cela pourrait être le cas .
ou n
ou ###
ou tout autre élément de moins de 10 caractères.remove_input
: indique si vous souhaitez supprimer le texte d'entrée du résultat, sous forme booléenne. La valeur par défaut est false.num_beams
: Nombre de faisceaux pour la recherche de faisceaux. 1 signifie pas de recherche de faisceau. C'est un entier. La valeur par défaut est 1.num_return_sequences
: nombre entier de séquences renvoyées calculées indépendamment pour chaque élément du lot. La valeur par défaut est 1.top_k
: Le nombre de jetons de vocabulaire avec la probabilité la plus élevée à conserver pour le filtrage top-k, sous forme d'entier. Maximum 1000 jetons. La valeur par défaut est 0.top_p
: s'il est défini sur float < 1, seuls les jetons les plus probables avec des probabilités qui totalisent top_p ou plus sont conservés pour la génération. C'est un flotteur. Doit être compris entre 0 et 1. La valeur par défaut est 0,7.temperature
: La valeur utilisée pour moduler les probabilités du prochain jeton, sous forme de flotteur. Doit être compris entre 0 et 1. La valeur par défaut est 1.repetition_penalty
: Le paramètre pour la pénalité de répétition, sous forme de flottant. 1.0 signifie aucune pénalité. La valeur par défaut est 1.0.bad_words
: Liste des jetons dont la génération n'est pas autorisée, sous forme de liste de chaînes. La valeur par défaut est null.remove_end_sequence
: Facultatif. Si vous souhaitez supprimer la chaîne end_sequence
du résultat. La valeur par défaut est false. client . generation ( "" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode gs_correction()
et transmettez le texte que vous souhaitez corriger :
client . gs_correction ( "" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode image_generation()
et transmettez l'instruction texte pour la nouvelle image que vous souhaitez générer :
client . image_generation ( "" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode intent_classification()
et transmettez le texte dont vous souhaitez extraire les intentions :
client . intent_classification ( "" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode kw_kp_extraction()
et transmettez le texte dont vous souhaitez extraire les mots-clés et les phrases clés :
client . kw_kp_extraction ( "" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode langdetection()
et transmettez le texte que vous souhaitez analyser afin de détecter les langues.
client . langdetection ( "" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode paraphrasing()
et transmettez le texte que vous souhaitez paraphraser.
client . paraphrasing ( "" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode question()
et transmettez ce qui suit :
client . question ( "" , "" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode semantic_search()
et transmettez votre requête de recherche.
client . semantic_search ( "Your search query" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode semantic_similarity()
et transmettez une liste composée de 2 blocs de texte que vous souhaitez comparer.
client . semantic_similarity ([ "" , "" ])
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode sentence_dependencies()
et transmettez un bloc de texte composé de plusieurs phrases sur lesquelles vous souhaitez effectuer des arcs POS +.
client . sentence_dependencies ( "" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode sentiment()
et transmettez ce qui suit :
client . sentiment ( "" , "" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode speech_synthesis()
et transmettez le texte que vous souhaitez convertir en audio :
client . speech_synthesis ( "" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode summarization()
et transmettez le texte que vous souhaitez résumer.
client . summarization ( "" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode tokens()
et transmettez le texte que vous souhaitez tokeniser.
client . tokens ( "" )
La commande ci-dessus renvoie un objet JSON.
Appelez la méthode translation()
et transmettez le texte que vous souhaitez traduire.
client . translation ( "" )
La commande ci-dessus renvoie un objet JSON.