Watson Natural Language Processing proporciona modelos entrenados previamente en más de 20 idiomas. Un equipo dedicado de expertos los ha ordenado y evaluado para la calidad en cada idioma específico. Estos modelos entrenados previamente se pueden utilizar en entornos de producción sin que tenga que preocuparse por las infracciones de la licencia o propiedad intelectual.
Carga y ejecución de un modelo
Para cargar un modelo, primero debe conocer su nombre. Los nombres de modelo siguen un convenio estándar que codifica el tipo de modelo (como la clasificación o la extracción de entidades), el tipo de algoritmo (como SVM o transformadores), el código de idioma y los detalles del sistema de tipos.
Para buscar el modelo que se ajuste a sus necesidades, utilice el catálogo de tareas. Consulte Catálogo de tareas de NLP deWatson.
Puede encontrar la entrada esperada para una clase de bloque determinada (por ejemplo, para el modelo de Menciones de entidad) utilizando help()
en el método run()
de clase de bloque:
import watson_nlp
help(watson_nlp.blocks.keywords.TextRank.run)
Watson Natural Language Processing encapsula la funcionalidad del lenguaje natural a través de bloques y flujos de trabajo. Cada bloque o flujo de trabajo admite funciones para:
load()
: cargar un modelorun()
: ejecutar el modelo en argumentos de entradatrain()
: entrene el modelo en sus propios datos (no todos los bloques y flujos de trabajo dan soporte al entrenamiento)save()
: guardar el modelo que se ha entrenado en sus propios datos
Bloques
Existen dos tipos de bloques:
Los flujos de trabajo ejecutan un bloque más en el documento de entrada, en un conducto.
Bloques que operan directamente en el documento de entrada
Un ejemplo de un bloque que opera directamente en el documento de entrada es el bloque Sintaxis, que realiza operaciones de proceso de lenguaje natural como la tokenización, la lematización, la codificación de categoría léxica o el análisis de dependencias.
Ejemplo: ejecutar análisis de sintaxis en un fragmento de texto:
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)
Bloques que dependen de otros bloques
Los bloques que dependen de otros bloques no se pueden aplicar directamente en el documento de entrada. Se aplican en la salida de uno o más bloques anteriores. Por ejemplo, el bloque Extracción de palabras clave depende del bloque Sintaxis y Frases de nombre.
Estos bloques se pueden cargar pero sólo se pueden ejecutar en un orden determinado en el documento de entrada. Por ejemplo:
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)
Flujos de trabajo
Los flujos de trabajo son interconexiones de extremo a extremo predefinidas desde un documento en bruto a un bloque final, donde todos los bloques necesarios se encadenan como parte del conducto de flujo de trabajo.
Para ver un ejemplo de cómo llamar al flujo de trabajo de menciones de entidades, consulte este ejemplo:
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")
Tema principal: Biblioteca de Watson Natural language Processing