Biblioteca Spacy para Python

8 de julho de 2023 Off Por Marcelo Martins

Spacy é uma biblioteca de processamento de linguagem natural, desenvolvida para auxiliar na analise e identificação do contexto de textos.

Ela pode ser utilizada, quando há necessidade de entender o que foi escrito.

A lib é mantida pelo site:

https://spacy.io/

Muito utilizada em NLP (Natural Linguage Process) Processamento de Linguagem Natural.

A biblioteca tenta analisar texto, sobre os aspectos de sua estrutura morfológica e sintática.

Identificando o sujeito da frase, os verbos e etc. Traçando também uma relação de dependência entre as diversas partes.

Todos os exemplos aqui descritos, estão em meu repositório:

Github

https://github.com/marcelomaurin/ExSpacy

Instalação do Spacy

Estarei usando o python 3, e o procedimento de instalação é relativamente simples.

Instalando a biblioteca

pip3 install spacy

No nosso repositório na pasta src/install, inclui um script ./install.sh que automatiza a instalação.

Porem considero que o usuário tenha instalado o python 3 previamente.

Para rodar o procedimento de instalação rode:

> /src/install/install.sh

Modelos

Modelos são treinados para reconhecer aspectos de diversos idiomas, tais como o portugues.

Existem diversos modelos em diversos idiomas, voce pode escolher o modelo que deseja instalar através do link:

https://spacy.io/models

Os modelos em português não destoam do português Brasil, pois as regras ortográficas são as mesmas em qualquer pais com a língua.

Ao rodar nosso install o padrão do modelo com melhor acurácia, já será instalado automáticamente.

Primeiro Exemplo

Agora iremos colocar a mão na massa!

Neste primeiro modelo, apresentamos um texto e analisamos o mesmo de forma sintática.

Esterei apresentando o Ex01 do nosso git:

import spacy

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

nlp = pt_core_news_lg.load()

doc = nlp("O Marcelo pegou COVID-19 em setembro de 2019, porem não teve problemas com isso")

for token in doc:
    print("Token:"+token.text)
    print("Pos:"+token.pos_)

Nele importamos a lib spacy, e em seguida carregamos a rede treinada pt_core_news_lg. Após isso identificamos o texto alvo através da variável doc.

E em seguida mostramos alguns resultados tokenizados.

O POS faz a analise do que significa o token.

Maior informação sobre a morfologia aplicada ao spacy pode ser vista no link abaixo:

https://spacy.io/api/morphologizer

Pudemos ver neste artigo os primeiros fundamentos da lib spaCy, espero que tenham gostado.