Skip to main content

No project description provided

Project description

Berna TJGO DIACDE Lib

Biblioteca desenvolvida pelo TJGO (Diretoria de Inteligência Artificial, Ciência de Dados e Estatística). Este pacote oferece ferramentas robustas para pré-processamento de texto e cálculo de similaridade textual, essenciais para processamento de linguagem natural (NLP) e preparação de dados para LLMs.

O núcleo das operações de texto é fornecido pela classe TextUtils, acessível através de duas interfaces:

  1. Interface Fluente (ProcessLinked): Para aplicações diretas e encadeadas.
  2. Processador Baseado em Pipeline (ProcessPipeline): Para workflows configuráveis e reprodutíveis.

Para cálculo de similaridade textual, a biblioteca disponibiliza a classe Berna.

Nota: Este repositório público contém uma seleção de ferramentas usadas internamente pelo TJGO.


Instalação

Para instalar a biblioteca, utilize o gerenciador de pacotes pip:

pip install berna-tjgo-diacde-lib

Dependências

O projeto utiliza as seguintes bibliotecas:

  • spacy
  • nltk
  • beautifulsoup4
  • snowballstemmer

Nota: Alguns modelos do spaCy (como pt_core_news_sm) podem precisar ser baixados separadamente.


Módulo de Pré-Processamento

1. Interface Fluente com ProcessLinked

Ideal para transformações rápidas de forma legível.

from berna_tjgo_diacde_lib import ProcessLinked

text = "  Olá, mundo! Este é um teste com números 123. E e-mail: test@example.com.  "

processed_text = (
    ProcessLinked(text)
    .filter_email()              # Remove e-mails
    .filter_spaces()             # Remove múltiplos espaços
    .filter_special_characters() # Remove pontuações
    .filter_numbers()            # Remove números
    .stemming()                  # Reduz palavras à raiz (ex: 'correndo' -> 'corr')
    .as_str()                    # Obtém a string final
)

print(processed_text)
# Saída: Olá mund Este é um test com númer E email

2. Pipeline Declarativo com ProcessPipeline

Ideal para definir fluxos complexos via configuração de lista, reutilizando pipelines.

from berna_tjgo_diacde_lib import ProcessPipeline

text = "  Olá, mundo! Este é um teste com números 123. E e-mail: test@example.com.  "

pipeline_config = [
    {"name": "filter_email"},
    {"name": "filter_spaces"},
    {"name": "filter_special_characters"},
    {"name": "filter_numbers"},
    {"name": "remove_stopwords", "language": "portuguese"},
    {"name": "stemming"}
]

processor = ProcessPipeline(pipeline_config)
processed_text = processor.process(text)

print(processed_text)

Métodos Disponíveis (via TextUtils)

Método Descrição
filter_special_characters Remove pontuação e caracteres especiais.
filter_spaces Padroniza múltiplos espaços para um único espaço.
filter_numbers Remove caracteres numéricos.
filter_links Remove URLs e links.
filter_email Remove endereços de e-mail.
filter_cnpj/cpf/rg Filtros específicos para documentos brasileiros.
filter_cep/oab Filtros para códigos postais e registros da OAB.
remove_stopwords Remove palavras comuns (ex: "e", "de", "o").
remove_html Remove tags HTML via BeautifulSoup.
lemmatize Reduz palavras à forma base (lema) usando spaCy.
stemming Reduz palavras à raiz usando snowballstemmer.
tokenize Divide o texto em uma lista de tokens (palavras ou sentenças, dependendo da implementação interna do NLTK).

Módulo de Cálculo de Similaridade

Este módulo oferece funcionalidades para calcular a similaridade textual entre dois documentos utilizando diferentes métricas. A classe Berna é o ponto de entrada para estas operações, utilizando internamente o método TextUtils.tokenize para preparar o texto antes da comparação.

Classe Berna

A classe Berna permite comparar duas strings e retorna o percentual de similaridade com base em métricas comuns:

  • Similaridade de Cosseno (sim_cosseno): Mede o cosseno do ângulo entre dois vetores não nulos em um espaço multidimensional.
  • Índice de Jaccard (sim_jaccard): Mede a similaridade entre dois conjuntos finitos, sendo definida como o tamanho da interseção dividido pelo tamanho da união dos conjuntos.

Exemplo de Uso:

from berna_tjgo_diacde_lib import Berna

doc1 = "Este é o primeiro documento para teste de similaridade."
doc2 = "Este documento é o segundo para testar a similaridade textual."

similarity_calculator = Berna(doc1, doc2)

cosine_similarity = similarity_calculator.sim_cosseno
jaccard_similarity = similarity_calculator.sim_jaccard

print(f"Similaridade de Cosseno: {cosine_similarity:.2f}%")
print(f"Similaridade de Jaccard: {jaccard_similarity:.2f}%")

# Saída esperada (aproximada):
# Similaridade de Cosseno: XX.XX%
# Similaridade de Jaccard: YY.YY%

Note também o uso dos métodos estaticos calc_jaccard e calc_cosseno:

Berna.calc_jaccard(doc1, doc2)

Licença

Este projeto está licenciado sob a MIT License. Você é livre para usar, modificar e distribuir o software, desde que mantenha os avisos de copyright.


Créditos e Desenvolvedores

Desenvolvido pelo Tribunal de Justiça do Estado de Goiás - Diretoria de Inteligência Artificial, Ciência de Dados e Estatística.

Time de Desenvolvimento:


*Contato oficial: estatistica@tjgo.jus.br*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

berna_tjgo_diacde_lib-1.2.2.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

berna_tjgo_diacde_lib-1.2.2-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

Details for the file berna_tjgo_diacde_lib-1.2.2.tar.gz.

File metadata

  • Download URL: berna_tjgo_diacde_lib-1.2.2.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.4

File hashes

Hashes for berna_tjgo_diacde_lib-1.2.2.tar.gz
Algorithm Hash digest
SHA256 f674c4773e0273e891616ab63b9207d1eceac0529ac7c5c7d88a6d4ce16740e1
MD5 75c749758fb11a2e9b6c8430289824bb
BLAKE2b-256 94dc5071e0b8b092f53bddb4a6a0f32a27d26ce445c19a80eb8b91154c51c389

See more details on using hashes here.

File details

Details for the file berna_tjgo_diacde_lib-1.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for berna_tjgo_diacde_lib-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f311df00eb2b1fbd4ef1bd696bdcf7167a7d5fcf42e70e8b5edab74cde1b5945
MD5 298ace1a6d1d76b9519badddb891902d
BLAKE2b-256 226b68607a3f8add8989ac39112f365787ac0e31760c35e1f32e3c17496765cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page