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%

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.tar.gz (13.8 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-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: berna_tjgo_diacde_lib-1.2.tar.gz
  • Upload date:
  • Size: 13.8 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.tar.gz
Algorithm Hash digest
SHA256 f862ff4fedb839f9267ec6cf0f8fe6abd2a73841651ad8d404bd25f123b375de
MD5 19bded567cf231bd0f50b724ae59723d
BLAKE2b-256 cc80acdc20d7b54dad2a164f20c35ef6f44b832b4532fad6293a017cf2b2c6de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for berna_tjgo_diacde_lib-1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4b345e914f03b18999772d563b62f47f5970b365851cb02b7f6d8e699c21044a
MD5 f98ebe298a66376cf0dc93f160f3b0b0
BLAKE2b-256 36091e148f18943757f1eb5501d6a8e0240322a2a817ae9bbffd26e4894580f5

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