Le traitement automatique du langage naturel Watson fournit des modèles préformés dans plus de 20 langues. Ils sont gérés par une équipe d'experts et évalués en fonction de la qualité de chaque langue. Ces modèles préformés peuvent être utilisés dans des environnements de production sans que vous ayez à vous soucier des infractions de licence ou de propriété intellectuelle.
Chargement et exécution d'un modèle
Pour charger un modèle, vous devez d'abord connaître son nom. Les noms de modèle suivent une convention standard codant le type de modèle (comme la classification ou l'extraction d'entité), le type d'algorithme (comme SVM ou les transformateurs), le code de langue et les détails du système de types.
Pour trouver le modèle qui correspond à vos besoins, utilisez le catalogue des tâches. Voir Watson NLP task catalog.
Vous pouvez trouver l'entrée attendue pour une classe de bloc donnée (par exemple, dans le modèle Mentions d'entités) à l'aide de help()
sur la méthode run()
de la classe de bloc :
import watson_nlp
help(watson_nlp.blocks.keywords.TextRank.run)
Watson Natural Language Processing encapsule les fonctionnalités du langage naturel via des blocs et des flux de travaux. Chaque bloc ou flux de travaux prend en charge les fonctions suivantes:
load()
: charger un modèlerun()
: exécuter le modèle sur les arguments d'entréetrain()
: entraînez le modèle sur vos propres données (tous les blocs et flux de travaux ne prennent pas en charge l'entraînement)save()
: sauvegardez le modèle qui a été entraîné sur vos propres données
Blocs
Il existe deux types de blocs:
Les flux de travaux exécutent un bloc supplémentaire sur le document d'entrée, dans un pipeline.
Blocs qui agissent directement sur le document d'entrée
Un exemple de bloc qui fonctionne directement sur le document d'entrée est le bloc Syntaxe, qui effectue des opérations de traitement du langage naturel telles que le marquage sémantique, la lemmatisation, le balisage de la partie du discours ou l'analyse syntaxique des dépendances.
Exemple: exécution de l'analyse de syntaxe sur un fragment de texte:
import watson_nlp
# Load the syntax model for English
syntax_model = watson_nlp.load('syntax_izumo_en_stock')
# Run the syntax model and print the result
syntax_prediction = syntax_model.run('Welcome to IBM!')
print(syntax_prediction)
Blocs qui dépendent d'autres blocs
Les blocs qui dépendent d'autres blocs ne peuvent pas être appliqués directement sur le document d'entrée. Ils sont appliqués sur la sortie d'un ou plusieurs blocs précédents. Par exemple, le bloc d'extraction de mot clé dépend du bloc de syntaxe et de phrases du nom.
Ces blocs peuvent être chargés mais ne peuvent être exécutés que dans un ordre particulier du document d'entrée. Par exemple :
import watson_nlp
text = "Anna went to school at University of California Santa Cruz. \
Anna joined the university in 2015."
# Load Syntax, Noun Phrases and Keywords models for English
syntax_model = watson_nlp.load('syntax_izumo_en_stock')
noun_phrases_model = watson_nlp.load('noun-phrases_rbr_en_stock')
keywords_model = watson_nlp.load('keywords_text-rank_en_stock')
# Run the Syntax and Noun Phrases models
syntax_prediction = syntax_model.run(text, parsers=('token', 'lemma', 'part_of_speech'))
noun_phrases = noun_phrases_model.run(text)
# Run the keywords model
keywords = keywords_model.run(syntax_prediction, noun_phrases, limit=2)
print(keywords)
Flux de travaux
Les flux de travaux sont des pipelines de bout en bout prédéfinis entre un document brut et un bloc final, où tous les blocs nécessaires sont chaînés dans le cadre du pipeline de flux de travaux.
Pour un exemple d'appel du flux de travail Mentions d'entité, voir cet exemple :
import watson_nlp
# Load the workflow model
mentions_workflow = watson_nlp.load('entity-mentions_transformer-workflow_multilingual_slate.153m.distilled')
# Run the entity extraction workflow on the input text
mentions_workflow.run('IBM announced new advances in quantum computing', language_code="en")
Rubrique parent : Watson Bibliothèque de traitement de langage naturel