O Processamento de Linguagem Natural (NLP) é uma das áreas mais fascinantes da Inteligência Artificial, permitindo que máquinas compreendam, interpretem e gerem texto de maneira semelhante aos humanos. Uma das bibliotecas mais poderosas para NLP em Python é o spaCy. Vamos dar uma olhada nos conceitos básicos para quem está começando! 👇

🔹 Criando um Pipeline de NLP
O spaCy trabalha com pipelines de processamento, que são sequências de operações para transformar texto bruto em informação estruturada. O primeiro passo é criar um objeto nlp, que atua como o "cérebro" do processamento:

import spacy
# Criando um pipeline vazio para português
nlp = spacy.blank("pt")

🔹 Trabalhando com Documentos (Doc)
Ao processar um texto com nlp, criamos um objeto Doc, que representa o texto de forma estruturada. Isso significa que podemos acessar palavras (tokens), pontuações e outras informações de maneira organizada:

doc = nlp("O conhecimento é a única riqueza que ninguém pode tirar de você.")
# Iterando sobre os tokens do documento
for token in doc:
    print(token.text)

✅ Saída:

O conhecimento é a única riqueza que ninguém pode tirar de você .

🔹 Tokens: As Unidades de Texto
Cada palavra (ou símbolo) em um texto é chamada de token. Podemos acessar tokens diretamente pelo índice:

token_1 = doc[1]
print(token_1.text)  # Saída: conhecimento

🔹 Extraindo Partes do Texto (Span)
Se quisermos obter uma parte do texto, podemos usar um Span, que representa uma sequência contínua de tokens:

span = doc[1:4]  # Pegando tokens da posição 1 até a 3
print(span.text)  # Saída: conhecimento é a

🔹 Identificando Tipos de Palavras
Com o spaCy, podemos analisar se um token é uma palavra, um número ou pontuação. Vamos testar com um exemplo:

doc = nlp("Em 2024, o preço médio da gasolina foi de R$ 6,50.")

print(f"Tokens: {[token.text for token in doc]}")
print(f"É número? {[token.like_num for token in doc]}")

✅ Saída:

Tokens: ['Em', '2024', ',', 'o', 'preço', 'médio', 'da', 'gasolina', 'foi', 'de', 'R$', '6,50', '.']
É número? [False, True, False, False, False, False, False, False, False, False, False, True, False]

Perceba que 2024 e 6,50 foram reconhecidos como números! Isso pode ser útil para extrair datas, valores e percentuais de um texto.

🔹 Encontrando Percentuais no Texto 📊
Que tal detectar automaticamente percentuais mencionados em um texto?

doc = nlp("Em 1990, mais de 60% da população vivia na pobreza. Agora, menos de 4%.")

for token in doc:
    if token.like_num:  # Se for um número
        next_token = doc[token.i + 1]  # Pegamos o próximo token
        if next_token.text == "%":
            print(f"Percentual encontrado: {token.text}%")

✅ Saída:

Percentual encontrado: 60%
Percentual encontrado: 4%

🚀 Conclusão
O spaCy é uma ferramenta poderosa para análise de texto, e esses são apenas os primeiros passos no mundo do Processamento de Linguagem Natural. Desde a tokenização até a extração de informações, há muito mais para explorar!
Se você quer aprender mais sobre NLP, siga-me e compartilhe este post com quem também está começando nessa área! 😉🔍

NLP #InteligênciaArtificial #Python #MachineLearning #spaCy