Pipelines do spaCy

Processamento de Linguagem Natural com spaCy

Azadeh Mobasher

Principal Data Scientist

Pipelines do spaCy

 

  • spaCy primeiro tokeniza o texto para gerar um objeto Doc
  • O Doc é processado em várias etapas da pipeline de processamento

 

import spacy
nlp = spacy.load("en_core_web_sm")

doc = nlp(example_text)
Processamento de Linguagem Natural com spaCy

Pipelines do spaCy

  • Uma pipeline é uma sequência de pipes, ou atores sobre os dados
  • Uma pipeline de NER no spaCy:
    • Tokenização
    • Identificação de entidades nomeadas
    • Classificação de entidades nomeadas  

Exemplo de uma pipeline do spaCy para NER

print([ent.text for ent in doc.ents])
Processamento de Linguagem Natural com spaCy

Adicionando pipes

 

  • sentencizer: componente da pipeline do spaCy para segmentação de sentenças.
text = " ".join(["This is a test sentence."]*10000)

en_core_sm_nlp = spacy.load("en_core_web_sm") start_time = time.time() doc = en_core_sm_nlp(text)
print(f"Finished processing with en_core_web_sm model in {round((time.time() - start_time)/60.0 , 5)} minutes")
>>> Finished processing with en_core_web_sm model in 0.09332 minutes
Processamento de Linguagem Natural com spaCy

Adicionando pipes

 

  • Crie um modelo em branco e adicione um sentencizer:
blank_nlp = spacy.blank("en")

blank_nlp.add_pipe("sentencizer")
start_time = time.time() doc = blank_nlp(text) print(f"Finished processing with blank model in {round((time.time() - start_time)/60.0 , 5)} minutes")
>>> Finished processing with blank model in 0.00091 minutes
Processamento de Linguagem Natural com spaCy

Analisando componentes da pipeline

  • nlp.analyze_pipes() analisa uma pipeline do spaCy para identificar:
    • Atributos que os componentes definem
    • Pontuações que um componente gera durante o treino
    • Presença de todos os atributos obrigatórios

 

  • Definir pretty como True imprime uma tabela em vez de só retornar os dados estruturados.
import spacy

nlp = spacy.load("en_core_web_sm")
analysis = nlp.analyze_pipes(pretty=True)
Processamento de Linguagem Natural com spaCy

Analisando componentes da pipeline

Resultado do método analyze_pipes

Processamento de Linguagem Natural com spaCy

Vamos praticar!

Processamento de Linguagem Natural com spaCy

Preparing Video For Download...